# Trendyol Email Scraper (`scrapers-hub/trendyol-email-scraper`) Actor

📧 Trendyol Email Scraper extracts seller/customer emails from Trendyol with smart automation. 🚀 Perfect for B2B prospecting, outreach & lead generation. 🔍 Fast, reliable, and easy to use—save time and boost conversions.

- **URL**: https://apify.com/scrapers-hub/trendyol-email-scraper.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Lead generation, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### Trendyol Email Scraper 📬

**Trendyol Email Scraper** is an Apify actor that scrapes emails from Trendyol using your provided keywords. If you’re looking for a **Trendyol email scraper** for lead generation, a **Trendyol customers email extraction** workflow, or a way to build a **Trendyol seller email list**, this tool helps you collect relevant contacts faster by scraping from publicly available sources—saving you hours of manual work.

Whether you’re a marketer, business developer, recruiter, or data enthusiast using a **Trendyol email harvesting tool**, this actor is designed to turn keyword ideas into a structured dataset you can export and use at scale.

---

### Why choose Trendyol Email Scraper?

| Feature | Benefit |
|---|---|
| ✅ **Keyword-driven email scraping** | Finds contact emails using your keyword list instead of manual searching |
| ✅ **Custom email-domain filtering** | Limits results to the domains you care about (e.g., Gmail or company domains) |
| ✅ **Proxy configuration support** | Helps keep runs stable, especially on larger batches |
| ✅ **Fallback behavior** | When no emails are found for a run, it can fall back to an alternative proxy approach |
| ✅ **Structured JSON output** | Produces consistent fields like `keyword`, `title`, `description`, `url`, and `email` for easy analysis |
| ✅ **Scales across keyword and domain combinations** | Iterates over each keyword and each custom domain to expand your lead coverage |

---

### Key features

- 🔍 **Trendyol email finding from keyword inputs**: Uses your `keywords` to drive results and focuses on relevant contact emails for **Trendyol business contact email scraper** use cases  
- 🧩 **Custom email domains support**: Lets you specify `customDomains` so your **Trendyol email finder** returns only emails matching your target domains  
- 🛡️ **Proxy support for reliability**: Includes built-in proxy support via the `proxyConfiguration` input for smoother scraping runs  
- 🔄 **Resilience with fallback logic**: If no emails are found under the initial proxy setup, it can switch to a fallback proxy configuration automatically  
- 📦 **Structured dataset for downstream workflows**: Outputs consistent JSON records suitable for CRM import, data enrichment, and **Trendyol contact info scraper** projects  
- 💾 **De-duplicated email results**: Avoids repeating the same email across runs using a `seen_emails` set  
- ⚙️ **Location filtering option**: Use the `location` input to narrow results to your preferred geography for **Trendyol lead generation email scraper** workflows  

---

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "keywords": ["john", "marketing"],
  "location": "",
  "platform": "Trendyol",
  "customDomains": ["@gmail.com"],
  "proxyConfiguration": {}
}
````

#### Input Fields

| Field | Required | Description |
|---|---:|---|
| `keywords` | Yes | A list of keywords to search for. The actor iterates over every keyword you provide. |
| `location` | No | Location to filter search results. Leave it empty (`""`) to not apply location filtering. |
| `platform` | No | Select platform. This actor supports `Trendyol` and defaults to `Trendyol`. |
| `customDomains` | No | A list of custom email domains to filter extracted emails. Example default is `["@gmail.com"]`. |
| `proxyConfiguration` | No | Configure proxies for this Actor. Use it to enable Apify proxy usage through the form fields provided by Apify’s proxy editor. |

> Note: `platform` is present in the input schema, but the actor logic uses it only as part of the input structure (the scraping targets Trendyol).

***

### Output

The actor saves results in JSON format to the default Apify dataset using `Actor.push_data(results)`. Each item in the dataset is a record containing keyword-context and extracted email information.

Sample output:

```json
[
  {
    "keyword": "marketing",
    "title": "Example Result Title",
    "description": "Example extracted text containing an email like contact@example.com",
    "url": "http://example.com/page",
    "email": "contact@example.com"
  }
]
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `keyword` | string | The keyword from your input that produced this record |
| `title` | string | null | The title text found in the source item (may be missing) |
| `description` | string | null | Extracted text associated with the result item (where the email was found) |
| `url` | string | null | The link associated with the result item |
| `email` | string | The extracted email address (must match one of your `customDomains`) |

This actor does not return a separate `success` flag or `error_message` field in the pushed dataset; records are only added to `results` when an email is extracted.

***

### How to use Trendyol Email Scraper (via Apify Console)

1. **Open Apify Console**\
   Log in at https://console.apify.com and go to the **Actors** tab.

2. **Find the actor**\
   Search for **Trendyol Email Scraper** and open the actor page.

3. **Go to the INPUT section**\
   Use the built-in form to fill in:
   - **Keywords** (`keywords`) as a list
   - **Location** (`location`) if you want geographic filtering
   - **Custom Email Domains** (`customDomains`) to restrict which emails are accepted

4. **Set proxy configuration (optional but recommended for scale)**\
   Configure **Proxy Configuration** (`proxyConfiguration`) using the Apify proxy editor if you want to control how requests are routed.

5. **Start the run**\
   Click **Run** (top-right). The actor will scrape and log progress while it processes each keyword/domain combination.

6. **Monitor logs**\
   Watch the actor logs for scraping progress and extracted items while it runs.

7. **Open the dataset output**\
   When the run finishes, open the **OUTPUT** tab and view the dataset produced by the actor.

8. **Export your data**\
   Export the dataset to your preferred format (JSON/CSV) from the Apify UI for analysis or lead workflows.

No coding required — get accurate results in minutes with **Trendyol Email Scraper**. 🚀

***

### Advanced features & SEO optimization

- 🧠 **Engineered for “Trendyol email scraper” workflows**: Designed specifically around keyword-driven extraction for **Trendyol customers email extraction** and **Trendyol seller email list** building
- 🌍 **Location-aware filtering**: Adds `location` support so **Trendyol business contact email scraper** runs can be tailored to regions
- 🧷 **Domain-restricted email harvesting**: Uses `customDomains` so the **Trendyol email harvesting tool** returns only emails matching your allowed domains
- 🔁 **Reliability-oriented execution**: Includes fallback behavior when no emails are found under the initial proxy setup, improving resilience for larger batches
- 📊 **Consistent structured output**: Each record contains `keyword`, `title`, `description`, `url`, and `email`—ideal for **Trendyol email scraping API** style pipelines

***

### Best use cases

- 📈 **Lead generation for Trendyol outreach**: Build a targeted **Trendyol lead list email tool** dataset filtered by your preferred email domains
- 🧑‍💼 **Sales ops & RevOps enrichment**: Enrich CRM records by attaching Trendyol-related emails that match your outreach domain rules
- 🎯 **Market research by keyword themes**: Validate which keyword concepts correlate with contact emails for **Trendyol email database scraper** projects
- 🗺️ **Regional business development**: Use `location` to focus **Trendyol contact info scraper** results by geography
- 🧾 **Data analysts building contact datasets**: Use the structured `keyword` + `email` records for analysis, deduping, and segmentation
- 💻 **Automation pipelines for outreach tooling**: Export JSON and integrate into your workflow for a repeatable **Trendyol email scraping software** process
- 🧠 **Competitive research for commerce roles**: Assemble seller-related email candidates to support investigatory workflows around Trendyol businesses

***

### Technical specifications

- **Supported Input Formats**
  - ✅ `input.json` matching the actor’s input schema (`keywords`, `location`, `platform`, `customDomains`, `proxyConfiguration`)

- **Proxy Support**
  - ✅ `proxyConfiguration` is supported via Apify’s proxy configuration editor
  - ✅ Includes fallback behavior when no emails are extracted under the initial proxy approach

- **Retry Mechanism**
  - ✅ Includes resilience and fallback logic for robustness (detailed retry counts are not exposed as output fields)

- **Dataset Structure**
  - ✅ JSON array of objects pushed to the dataset with fields: `keyword`, `title`, `description`, `url`, `email`

- **Rate Limits & Performance**
  - ✅ Designed for batch execution across keyword and domain combinations (actual throughput depends on runtime conditions)

- **Limitations**
  - ❌ Only emails matching your `customDomains` are returned
  - ❌ If no emails can be extracted for a keyword/domain combination, no corresponding dataset records are produced

***

### FAQ

#### Do I need to provide keywords?

✅ Yes. `keywords` is required. The actor processes every keyword in the list and attempts email extraction for each one.

#### What does `customDomains` do?

`customDomains` restricts which email addresses the actor will accept. Only extracted emails that match the provided domains are added to the output dataset.

#### Can I filter results by location?

✅ Yes. Use `location` to filter search results by a specific location. If you leave `location` empty (`""`), the actor won’t apply location filtering.

#### Is there a separate output file for each keyword?

No. The actor pushes all collected records into a single dataset run output (a JSON array of objects).

#### What fields will I get in the dataset?

Each record includes `keyword`, `title`, `description`, `url`, and `email`—useful for **Trendyol contact info scraper** and **Trendyol email finder** workflows.

#### Do I need proxy configuration to run?

❌ No. Proxy configuration is optional. However, for larger runs, using `proxyConfiguration` can improve reliability.

#### Can I use this for lead generation and outreach?

✅ You can use the exported dataset for lead generation and related business development workflows. Just make sure your usage complies with applicable laws and the relevant platform rules.

#### How do I request data removal?

For data-removal requests, contact <dataforleads@gmail.com>.

***

### Support & feature requests

Want to improve **Trendyol Email Scraper** or request enhancements to your **Trendyol email scraper** workflow? 💡

- 💡 **Feature Requests**: Examples include adding more output fields, improving export options, or enhancing filtering.
- 📧 **Contact**: Reach out at <dataforleads@gmail.com>.

Your feedback helps shape the roadmap for this **Trendyol email harvesting tool**. 🚀

***

*Trendyol Email Scraper is built to deliver SEO-friendly, structured results—so you can scale Trendyol lead sourcing with confidence.*

# Actor input Schema

## `keywords` (type: `array`):

A list of keywords to search for.

## `location` (type: `string`):

Location to filter search results.

## `platform` (type: `string`):

Select platform.

## `customDomains` (type: `array`):

List of custom email domains

## `proxyConfiguration` (type: `object`):

Configure proxies for this Actor.

## Actor input object example

```json
{
  "keywords": [
    "john",
    "marketing"
  ],
  "location": "",
  "platform": "Trendyol",
  "customDomains": [
    "@gmail.com"
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "john",
        "marketing"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/trendyol-email-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": [
        "john",
        "marketing",
    ],
    "location": "",
    "customDomains": ["@gmail.com"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/trendyol-email-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "john",
    "marketing"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ]
}' |
apify call scrapers-hub/trendyol-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers-hub/trendyol-email-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trendyol Email Scraper",
        "description": "📧 Trendyol Email Scraper extracts seller/customer emails from Trendyol with smart automation. 🚀 Perfect for B2B prospecting, outreach & lead generation. 🔍 Fast, reliable, and easy to use—save time and boost conversions.",
        "version": "0.0",
        "x-build-id": "vrkDZYmdIiLMRRjPb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~trendyol-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-trendyol-email-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers-hub~trendyol-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-trendyol-email-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers-hub~trendyol-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-trendyol-email-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "A list of keywords to search for.",
                        "default": [
                            "john",
                            "marketing"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location to filter search results.",
                        "default": ""
                    },
                    "platform": {
                        "title": "Platform",
                        "enum": [
                            "Trendyol"
                        ],
                        "type": "string",
                        "description": "Select platform.",
                        "default": "Trendyol"
                    },
                    "customDomains": {
                        "title": "Custom Email Domains",
                        "type": "array",
                        "description": "List of custom email domains",
                        "default": [
                            "@gmail.com"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Configure proxies for this Actor."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
