Как найти картинку не баян

mlp FAQ my little pony фэндомы 

Как проверить, не баян ли вы постите?

Ни для кого не секрет, что постить баяны плохо. И тогда встает вопрос: как проверить, была ли та или иная картинка опубликована на сайте раньше или нет? 

Есть несколько вариантов проверки баянистости изображения. 

I. Ручной поиск. 

Ручной поиск оптимален для проверки баянистости свежих артов, потому как тогда он не займет много времени и даст 100%-й результат.

1. Поиск по тегам.

Чтобы проверить, был ли арт уже опубликован, можно пролистать все изображения соответствующих тегов начиная с даты публикации рисунка в первоисточнике.

2. Поиск в Бездне.

Иногда случается, что у изображения могут быть не проставлены необходимые теги. В этом случае стоит пройтись по Бездне фэндома начиная с даты публикации работы автором.

Если вы так и не нашли свою картинку в бездне, можете смело постить.

II. Автоматизированный поиск

Для старых артов ручной поиск очень трудоемок и может занять много времени, так как придется пролистать сотни страниц Бездны. И тут на помощь нам приходят товарищи-баянометры, призванные облегчить поиск картинки в пределах сайта.

1. Баянометр Джойреактора.

Один из пользователей реактора под ником malgalad, за что ему огромное спасибо, создал свой специально предназначенный для реактора Баянометр.

Он сравнивает изображения основываясь на их хэше. Подробнее о принципе работы этого баянометра можно прочитать здесь. Используемый метод сравнения представляется весьма продуктивным и оптимальным, потому как этот баянометр почти всегда распознает опубликованные ранее на реакторе изображения, даже если у них имеются более-менее заметные различия (как, например, наличие-отсутствие вотермарков авторов, небольшие детали и т.п.). Он регулярно индексирует страницы сайта и может не распознать разве что совсем недавно опубликованную картинку. У этого Баянометра есть сообщество на реакторе, где вы можете следить за обновлениями и техническими работами: #Баянометр

Принцип использования достаточно прост: вставляете ссылку на изображение либо загружаете свой файл, нажимаете кнопку «Начать поиск».

1№1
Ы!р://опд05.<1еу1атаг1.пе1/994(Л/2015/133/1/а/сотгтиззюп 1а1е_тдЬ^пГтд_Ьу_тооп5апдо-(18181Ь8.рпд
<- Начать поиск
Начать поиск
Исходное изображение:,my little pony,Мой маленький пони,фэндомы,mlp FAQ

В случае, если этот рисунок уже был, баянометр выдаст вам ссылку на страницу с этим изображением.

Исходное изображение:
Поиск завершен Найдено 1 изображение.
О бо А
Совпадения
<- Это баян
*1973219,my little pony,Мой маленький пони,фэндомы,mlp FAQ

2. Встроенный баянометр. 

В систему сайта встроен автоматический баянометр, который поможет определить, баян вы постите или нет, прямо в момент добавления поста. В случае, если вы запостили баян, он предложит вам, на выбор: 

1) Все равно опубликовать картинку на свой страх и риск 

2) Одуматься и не совершать сей чудовищный поступок 

У этого варианта есть серьезный недостаток: он может распознать баян только в случае, если ваша картинка абсолютно идентична опубликованной ранее, и то не всегда. Поэтому не стоит полагаться на один лишь этот баянометр и лучше попробовать в дополнение проверить картинку другими способами.

3. Поиск по картинкам. 

Поисковые системы, как, например, Google и Яндекс, предлагают свой сервис поиска по картинке. Этот сервис по загруженному вами изображению позволяет найти этот арт, опубликованный на различный сайтах. Если он находит изображение на Joyreactor’е, то, скорее всего, это баян. 

Для поиска по картинке, выберите свой арт из файлов на компьютере либо укажите ссылку на него (например, ссылку с Deviantart или с тематических ресурсов, где он скорее всего и был вами обнаружен), в строке поиска введите site:joyreactor.cc (можно также site:reactor.cc или сайты фэндомов, например site:mlp.reactor.cc).

Поиск по картинке	X
Используйте для поиска в Google изображения а не текст Перетащите картинку сюда
Указать ссылку U Загрузить файл
ion late_night_writingj3yjrioonsango-d8t81b8.png
Поиск по картинке,my little pony,Мой маленький пони,фэндомы,mlp FAQ

Google	png	3 site joyreactor cc	КЗ	га	^
Поиск Картинки Новости Карты Еще - Инструменты поиска
Результатов примерно 5 (0.86 се* )
Размер изображения 811 * 587
Изображения других размеров не найдены Результаты поиска по запросу s¡to:joyrcactor.cc,my little pony,Мой маленький пони,фэндомы,mlp FAQ

Если поисковая система выдает вам в результатах поиска ссылки на Реактор, то скорее всего картинка там уже была.

Страницы с подходящими изображениями
write - JoyReactor ^
joyreactor.cc > Смешные картинки -
1000 * 707 - В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме v/rite (+1000 картинок)
pony batpony - JoyReactor ф
joyreactor.cc > Смешные картинки -
1000 * 707 • my

И помните:

Баяны это плохо

my little pony,Мой маленький пони,фэндомы,mlp FAQ

Подробнее


1№1
Ы!р://опд05.<1еу1атаг1.пе1/994(Л/2015/133/1/а/сотгтиззюп 1а1е_тдЬ^пГтд_Ьу_тооп5апдо-(18181Ь8.рпд
<- Начать поиск
Начать поиск
Исходное изображение:
Исходное изображение:
Поиск завершен Найдено 1 изображение.
О бо А
Совпадения
<- Это баян
*1973219
Поиск по картинке X
Используйте для поиска в Google изображения а не текст Перетащите картинку сюда
Указать ссылку U Загрузить файл
ion late_night_writingj3yjrioonsango-d8t81b8.png
Поиск по картинке
Google png 3 site joyreactor cc КЗ га ^
Поиск Картинки Новости Карты Еще — Инструменты поиска
Результатов примерно 5 (0.86 се* )
Размер изображения 811 * 587
Изображения других размеров не найдены Результаты поиска по запросу s¡to:joyrcactor.cc
Страницы с подходящими изображениями
write — JoyReactor ^
joyreactor.cc > Смешные картинки —
1000 * 707 — В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме v/rite (+1000 картинок)
pony batpony — JoyReactor ф
joyreactor.cc > Смешные картинки —
1000 * 707 • my little pony (3) . anti ту little pony (269).. my little pony крипота (3) .. my little pony фэндомы mlp art minor (2). . my little pony mlp (2).личное my little …
pony night — JoyReactor О
joyreactor.cc > Смешные картинки »
1000 * 707 — Rose tatoo. С розою тату The pictures tell the story This life has many shades I’d wake up every morning and before I’d start each day I’d take a drag from last…
my oc — JoyReactor ^
joyreactor.cc > Смешные картинки —
1000 * 707 • My dream? May be (4) . smack my bitch up (16). .. my little pony (3).. Take my money (9)… shut up and take my money! (3)… it’s my life (7) .. My Horse is …
маленькая — JoyReactor ^
joyreactor.cc > Смешные картинки ■r
1000 * 707 — с маленьким еблом (2).,. маленький член (8) .. маленький хуй (2). .. маленький черепадла (2)… Мой Маленький Пони (19)… маленький принц (28)
my little
ту little

my little pony,Мой маленький пони,фэндомы,mlp FAQ

Еще на тему

Развернуть

Время на прочтение
6 мин

Количество просмотров 4.8K

В user-generated проектах часто приходится бороться с дубликатами, а для нас это особенно актуально, так как основной контент мобильного приложения, которое я разрабатываю, — это изображения, которые постятся десятками тысяч ежедневно. Для поиска повторов мы написали отдельную систему, чтобы облегчить процесс и сэкономить море времени.

Под катом рассмотрим используемые инструменты, а потом перейдём к примеру реализации.

Свёрточная нейронная сеть (СNN)

Существует огромное количество различных алгоритмов поисков дубликатов, каждый со своими плюсами и минусами. Один из таких — поиск наиболее похожих (близких) векторов, полученных с помощью CNN-сетей.

После классификации изображения через CNN-сеть на выходе получается вектор «того, что увидела сеть на изображении». В теории такой способ должен быть менее чувствительным к кропу, но ложных похожих изображений будет больше в сравнении с более точными методами.

Есть и другой недостаток. На выходе классификации получается большой вектор (2048 float для resnet152), который где-то нужно хранить и иметь возможность за разумный промежуток времени найти все N похожих векторов для искомого — что само по себе уже непросто.

FAISS

Поиск наиболее близких векторов — частая задача, для решения которой уже есть отличные инструменты. Здесь лидером считается библиотека FAISS от Facebook. Она использует эффективную кластеризацию векторов, позволяя организовывать поиск даже для векторов, которые не помещаются в RAM.

Но с FAISS напрямую работать не очень удобно. Это не база данных, нельзя туда просто сохранить вектор и запросить похожий (к тому же, после создания индекса его можно только пересоздать). Поэтому для промышленной эксплуатации нужно строить свою обвязку вокруг системы индексации.

Milvus

Для этого есть весьма перспективный проект Milvus, который по дизайну сильно напоминает Elasticsearch. Отличие только в том, что Elasticsearch построен вокруг индекса lucene, а в Milvus вся архитектура выстроена вокруг индекса FAISS.

Структура коллекций тоже схожа:

Для каждой коллекции можно создать несколько партиций, по которым потом будет ограничиваться поиск. Партиция состоит из сегментов, которые представляют из себя простой набор файлов с id, исходными индексами и служебными данными.

Информация о коллекциях, партициях и сегментах хранится в отдельной SQL-базе. Для standalone-запуска используется встроенный SQLite, а ещё есть возможность использовать внешнюю MySQL-базу.

Проект Milvus находится в активной разработке (текущая версия 0.11.0). Пока что в нём нет репликации данных, как и возможности использовать другие SQL (или NoSQL) базы в качестве хранилища метаинформации. Поэтому пока для HA-решений можно использовать только схему с двумя экземплярами с общим хранилищем: один будет запущен, а другой — «спать». Для масштабирования можно будет использовать Mishards, но в 0.11.0 он сломан.

Кроме того, в 0.11.0 появилась возможность вместе с самим вектором и id сохранять в коллекцию дополнительные данные. Правда, пока без дополнительных индексов для них, но с возможностью поиска.

С точки зрения использования, Milvus выглядит как обычная внешняя база данных. Есть API (gRPC-клиент и набор http-методов) для сохранения и поиска вектора, управления коллекциями и индексами, а также для получения информации обо всех сущностях.

При создании коллекции можно указать максимальное количество записей в сегменте (segment_row_limit). Если превысить этот лимит, то Milvus начнёт строить индекс FAISS. С этим связана одна из особенностей Milvus: для всех добавляемых векторов, по которым ещё не создан индекс, поиск будет работать на основе полного перебора. Поэтому при больших значениях segment_row_limit будет много записей, для которых индекс ещё не построен (он также влияет ещё и на то, сколько будет созданных сегментов для коллекции). Для поиска похожих векторов в коллекции необходимо сделать поиск в каждом сегменте — и чем их больше, тем дольше поиск.

Обратите внимание, новый созданный сегмент не набивается до лимита при добавлении новых записей. Вместо этого происходит постепенное объединение сегментов по принципу игры 2048 (до тех пор пока размер не превысит лимит). Поэтому при указании большего значения segment_row_limit может оказаться много меньших сегментов, для которых нет индекса, а значит поиск по ним будет медленным.

Несмотря на все особенности, поиск по векторам работает быстро. Архитектура индексов FAISS и самого Milvus позволяет за раз искать одновременно значения по нескольким векторам. И на практике последовательный поиск двух векторов будет существенно медленнее поиска обоих векторов за раз.

Реализация поиска дубликатов

Milvus можно запускать как в CPU-версии, так и в GPU. Первую лучше всего использовать на процессорах, которые поддерживают инструкцию AVX512. Для этого достаточно просто запустить контейнер:

docker run -d --rm --name milvusdb -p 19530:19530 -p 19121:19121 
     milvusdb/milvus:0.11.0-cpu-d101620-4c44c0

В данном случае 19530 будет портом для gRPC-клиента, а 19121 — для http API.

В качестве CNN-сети можно взять любую из предобученных (или обучить самому) — результаты могут немного отличаться. В данном примере будем использовать предобученный resnet152:

model = models.resnet152(pretrained=True)

Вектор будем снимать со слоя `avgpool`:

layer = model._modules.get('avgpool')

А сам вектор получать с помощью hook:

vector = torch.zeros(2048)
def copy_data(m, i, o):
    vector.copy_(torch.reshape(o.data, (1, 2048))[0])

hook = layer.register_forward_hook(copy_data)
model(prepared_image)
hook.remove()

Полный код получения вектора выглядит так:

import numpy as np
import torch
import torchvision.models as models
import torchvision.transforms as transforms
from torch.autograd import Variable
from PIL import Image

model = models.resnet152(pretrained=True)
layer = model._modules.get('avgpool')
model.eval()

pipeline = [
    transforms.Resize(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406],
                         std=[0.229, 0.224, 0.225]),
]


def _prepare_Image(img: Image) -> Variable:
    raw = img
    for action in pipeline:
        raw = action(raw)

    return Variable(raw.unsqueeze(0))


def image_vectorization(image_path: str) -> np.ndarray:
    img = Image.open(image_path)

    prepared_image = _prepare_Image(img)

    vector = torch.zeros(2048)

    def copy_data(m, i, o):
        vector.copy_(torch.reshape(o.data, (1, 2048))[0])

    hook = layer.register_forward_hook(copy_data)
    model(prepared_image)
    hook.remove()

    # vector normalization
    norm_vector = vector / torch.norm(vector)

    return np.array(norm_vector)

Теперь понадобится клиент для работы с Milvus. Можно взять любой из поддерживаемых (Python, Java, Go, Rest, C++). Возьмём Java-клиент и напишем пример на Kotlin. Почему? А почему бы и нет.

Подключаем Milvus SDK:

implementation("io.milvus:milvus-sdk-java:0.9.0")

Создаём подключение к Milvus:

val connectParam = ConnectParam.Builder()
        .withHost("localhost")
        .withPort(19530)
        .build()

val client = MilvusGrpcClient(connectParam)

Создаём коллекцию под 2048 вектор:

val collectionMapping = CollectionMapping.create(collectionName)
            .addVectorField("float_vec", DataType.VECTOR_FLOAT, 2048)
          //выключаем автосоздание id
            .setParamsInJson(JsonBuilder()
                  .param("auto_id", false)
                  .param("segment_row_limit", segmentRowLimit)
                  .build()
            )

        client.createCollection(collectionMapping)

Создаём IVF_SQ8 индекс:

	    Index.create(collectionName, "float_vec")
            .setIndexType(IndexType.IVF_SQ8)
            .setMetricType(MetricType.L2)
            .setParamsInJson(JsonBuilder()
                    .param("nlist", 16384)
                    .build()
            )
	
     client.createIndex(index)

Сохраняем несколько векторов в коллекцию:

InsertParam.create(collectionName)
            .setEntityIds(listOf(1L, 2L))
            .addVectorField("float_vec", DataType.VECTOR_FLOAT, listOf(vector1, vector2))

client.insert(insertParam)
client.flush(collectionName)  // чтобы сразу можно было найти  вектор

Ищем ранее сохранённый вектор:

val dsl = JsonBuilder().param(
            "bool", mapOf(
                "must" to listOf(
                    mapOf(
                        "vector" to mapOf(
                            "float_vec" to
                                mapOf(
                                    "topk" to 10,
                                    "metric_type" to MetricType.L2,
                                    "type" to "float",
                                    "query" to listOf(vector1),
                                    "params" to mapOf("nprobe" to 50)
                                )
                        )
                    )
                )
            )
        ).build()

 val searchParam = SearchParam.create(collectionName)
       .setDsl(dsl)

 val result = client.search(searchParam)
 println(result.queryResultsList[0].map { it.entityId to it.distance })

Если всё работает и правильно настроено, то вернётся похожий результат:

[(1, 0.0), (2, 0.2)]

Для первого вектора расстояние L2 с самим собой будет 0, а с другим вектором — больше 0.

Всё вышеприведённое, конечно, только наброски, но этого достаточно, чтобы попробовать создать Python-сервис для классификации и получения вектора. И либо для него накрутить API для сохранения и поиска векторов, либо сделать в отдельном сервисе (например, на Kotlin), который будет получать вектор и сохранять его уже в Milvus самостоятельно.

Спасибо всем, кто дочитал до конца, надеюсь, вы нашли для себя что-то новое. А если вас заинтересовал проект Milvus, то можете поддержать его на Github.

Небольшие хитрости для тех, кто пользуется поиском Google.

Как найти похожую картинку на смартфоне с Android или iOS

Встроенный поиск Chrome

Как найти похожую картинку на смартфоне с Android или iOS: встроенный поиск Chrome 

Тем, кто использует для сёрфинга браузер Chrome, искать похожие картинки будет проще всего:

  • Нажмите на нужный графический элемент и держите палец до тех пор, пока не появится меню.
  • Выберите в меню пункт «Найти это изображение в Google».

Это, конечно, очень удобно. Но если нужная картинка лежит в памяти телефона — такой способ не годится. Переходите к следующему.

Поиск через десктопную версию Google

Как найти похожую картинку на смартфоне с Android или iOS: поиск через десктопную версию Google 

Найти похожие картинки в десктопных браузерах через Google Images очень просто, но если вы когда-нибудь открывали мобильную версию этой страницы, то могли заметить, что она не позволяет загрузить изображение со смартфона. Есть несколько способов решения этой проблемы. Самый простой — открыть в мобильном браузере настольную версию Google Images. Для примера в Android возьмём Chrome, но и в других популярных браузерах алгоритм похожий.

  • Перейдите на страницу images.google.com в своём браузере.
  • Нажмите на троеточие в верхнем правом углу, чтобы открыть меню.
  • Активируйте опцию «Полная версия».
  • Нажмите на значок камеры в строке поиска Google.
  • Коснитесь вкладки «Загрузить файл» и выберите нужную картинку из памяти смартфона.

На iOS механизм немного отличается.

Как найти похожую картинку на смартфоне с Android или iOS: на iOS механизм немного отличается

  • Перейдите на страницу images.google.com в своём браузере.
  • Откройте меню «Поделиться».
  • Найдите там пункт «Полная версия сайта» и коснитесь его.
  • Нажмите на значок камеры в строке поиска Google.
  • Коснитесь вкладки «Загрузить файл» и выберите нужную картинку из памяти смартфона.

Поиск через сервис Search by Image

Как найти похожую картинку на смартфоне с Android или iOS: поиск через сервис Search by Image 

Не хотите ковыряться с настольной версией Google на небольшом экране? Есть ещё вариант. Сторонний сервис Search by Image умеет загружать картинки из памяти вашего смартфона прямо в поиск Google. Никаких лишних телодвижений.

  • Откройте страницу Search by Image в вашем браузере на Android или iOS.
  • Нажмите кнопку Upload и выберете нужное изображение в галерее смартфона.
  • Подождите, пока картинка загрузится, и нажмите Show Matches.

Поиск через мобильные приложения

В Google Play и App Store есть немало приложений, которые могут выполнить поиск по картинкам из вашей галереи. Вот несколько на выбор.

Photo Sherlock

Программа умеет искать по изображениям из памяти смартфона либо по сделанным в ней снимкам через Google и «Яндекс». Достаточно нажать на значок галереи или камеры, обрезать картинку, если нужно, и коснуться кнопки «Найти».

Reversee

Специальное приложение для iOS. Можно искать картинки прямо через него или загружать в Reversee изображения для поиска из других приложений, например «Фото», Safari и Chrome. Pro-версия позволяет искать сразу через несколько сервисов: Google, Bing и «Яндекс».

Search By Image

Аналог Reversee на Android. Поддерживаются поисковые системы Google, TinEye и «Яндекс». Перед загрузкой картинку можно повернуть или обрезать. Программа бесплатна, заплатить придётся, только если захотите отключить рекламу.

Читайте также 🧐

  • 10 расширений для Chrome, которые прокачают поиск Google
  • PhotoTracker Lite — поиск изображений в Google, Yandex, Bing и TinEye одновременно
  • Splash — поисковик картинок, который поймёт вас без слов

НЕ БАЯН А БАЯНИЩЕ!!!

Мем Безлимитище

-1

НЕ БАЯН А БАЯНИЩЕ!!!

Добавить свой текст

Просмотрели: 585 раз.
Опубликовано: Sunday, July 16th, 2017 в 1:44 AM MSK.

Роберт Дауни младший

-165

Создать

Яндере

106

Создать

Баке негр с большим энтузиазмом

61

Создать

Креатив

125

Создать

Тикай с городу тобi пiзда

50

Создать

Обезьяна в костюме и с бокалом

14

Создать

Фрай из Футурамы

-120

Создать

Кот стихи

42

Создать

Креатив

30

Создать

Тут

19

Создать

Баке негр с большим энтузиазмом

40

Создать

Баке негр с большим энтузиазмом

-8

Создать

Креатив

25

Создать

Ничего не понял, но очень интересно

4

Создать

Попугай в очках

33

Создать

Ебать ты лох

-7

Создать

Кличко до слез

10

Создать

Баке негр с большим энтузиазмом

-22

Создать

Остановитесь — Янукович

14

Создать

Злая кошка

27

Создать

Оби-Ван Кеноби

10

Создать

назад123456789…7253872539вперед

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Автор:

22 марта 2017 14:52

просто может кто повеселится немного в середине рабочей недели!)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Прикольные картинки с надписями и без (осторожно: баяны-бабаяны)

Источник:

Ссылки по теме:

Новости партнёров

реклама

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти свободные радикалы
  • Как по кьюар коду найти телеграмм канал
  • Как найти дешевый тариф на мегафон
  • Сырая пицца как исправить
  • Как исправить ноги крестом у ребенка

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии