02.10.2026
правила маршрутизации v2rayng
Начнем с того, что правила маршрутизации V2RayNG — это важная часть конфигурации и настройки VPN-сервиса V2RayNG. Чтобы понять и настроить правильную маршрутизацию, вам необходимо знать несколько ключевых понятий и правил.
Правила маршрутизации V2RayNG: основные принципы
В2Рей (V2Ray) — это популярный открытый VPN-сервис, который позволяет пользователям обходить географические ограничения и блокировки Интернета. V2RayNG — это графическая версия V2Ray, которая упрощает настройку и конфигурацию сервиса.
Распределение трафика в сети называется маршрутизацией. В2Рей позволяет пользователям настроить маршрутизацию для конкретных доменов, IP-адресов и URL-адресов. Это позволяет пользователям контролировать, как их трафик будет распределяться в сети.
Правила маршрутизации V2RayNG: типы маршрутов
В V2RayNG существуют три типа маршрутов:
- Маршрут «Аллоу» (Allow): этот тип маршрута разрешает трафик для конкретного домена, IP-адреса или URL-адреса. Пример:
"path": "/api/allow/*"— этот маршрут разрешит доступ к любому URL-адресу, начинающемуся с/api/allow/. - Маршрут «Денай» (Deny): этот тип маршрута запрещает трафик для конкретного домена, IP-адреса или URL-адреса. Пример:
"path": "/api/deny/*"— этот маршрут запретит доступ к любому URL-адресу, начинающемуся с/api/deny/. - Маршрут «Мета» (Meta): этот тип маршрута представляет собой группу маршрутов. Пример:
"path": "/api/meta/*"— этот маршрут представляет собой группу маршрутов, начинающихся с/api/meta/.
Правила маршрутизации V2RayNG: настройки и конфигурация
Чтобы настроить маршрутизацию в V2RayNG, вам необходимо создать файл конфигурации в формате JSON. В файле конфигурации вы можете указать различные правила маршрутизации, включая правила «Аллоу», «Денай» и «Мета».
Пример файла конфигурации:
{
"outbounds": [
{
"protocol": "shadowsocks",
"settings": {
"servers": [
{
"address": "example.com",
"port": 1080,
"method": "aes-256-cfb",
"password": "password"
}
]
},
"streamSettings": {
"wsSettings": {
"path": "/api/allow/*"
}
}
}
],
"inbounds": [
{
"protocol": "http",
"listen": "127.0.0.1",
"port": 8080,
"settings": {
"services": ["websocket"]
},
"streamSettings": {
"wsSettings": {
"path": "/api/meta/*"
}
}
}
]
}
В этом примере мы настроили один исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исходный исход