Во время изучения чего-то нового, я самозабвенно выдумываю невероятные ситуации, в которых это умен / xkcd :: it-юмор :: Смешные комиксы (веб-комиксы с юмором и их переводы) :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek xkcd Комиксы 
Во время изучения чего-то нового, я самозабвенно выдумываю невероятные ситуации, в которых это умение поможет мне спасти мир
О нет! Убийца должно быть последовал за ней в отпуск!
Но чтобы узнать где он, нам нужно прочесать 200 Мб писем в поисках чего-то схожего по формату с адресом!
^ Всем
Подробнее
Во время изучения чего-то нового, я самозабвенно выдумываю невероятные ситуации, в которых это умение поможет мне спасти мир О нет! Убийца должно быть последовал за ней в отпуск! Но чтобы узнать где он, нам нужно прочесать 200 Мб писем в поисках чего-то схожего по формату с адресом! ^ Всем расступиться Я знаю регулярные^^^ выражения Г t й / & Й
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,xkcd,Смешные комиксы,веб-комиксы с юмором и их переводы
Еще на тему
Развернуть
xkcd в теги.
На перле! Да он извращуга!
MaXM00D MaXM00D 30.10.201821:29 ответить ссылка 3.4
та ладно. Вот если б на ассемблере...
OneUser OneUser 30.10.201821:36 ответить ссылка -1.4
Тогда он вообще бешенный извращуга, но респект таким извращугам.
На перле надо использовать готовый модуль Mail::RFC822::Address, потому как корректно построить регулярное выражение в соответствии со стандартом на формат адреса (RFC822) задача не сказать чтобы тривиальная, и результат некоторым может взорвать мозг:

(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
?:(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
\t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
?:\r\n)?[ \t])*))*)?;\s*)
dadv dadv 30.10.201822:13 ответить ссылка 13.9
У тебя в пятом блоке ошибка
noavatar noavatar 30.10.201822:28 ответить ссылка -2.1
Пруф в студию.
dadv dadv 30.10.201822:33 ответить ссылка 0.7
Я пиздобол, пруфов не будет. Читать эту встарую срань я даже пытаться не стану
noavatar noavatar 30.10.201822:37 ответить ссылка -5.5
Убийца последовал в отпуск за жертвой. В отпуск. По адресу. Ну, там где улица, номер дома, почтовый, мать его, индекс.
Адрес, понимаешь?
up4k up4k 30.10.201822:29 ответить ссылка 4.8
А ты думаешь, что формат адресов с номерами домов проще парсить регулярками? Хахаха, то есть мяу.
dadv dadv 30.10.201822:32 ответить ссылка -0.2
Я думаю, в оригинале шла речь о физическом географическом адресе.
О нет! Убийца должно быть последовал за ней в отпуск!
Но чтобы узнать где он. нам нужно прочесать 200 Мб писем в поисках чего-то схожего по формату с адресом!
Тогда выражение будет ещё на порядок сложнее.
dadv dadv 30.10.201822:42 ответить ссылка 1.9
Ну в общем виде адрес на естественном языке вообще не имеет какой-то заданной четкой структуры, то бишь неограниченная грамматика по Хомскому. А регулярки парсят только регулярную грамматику. Так что в общем случае, это нерешаемая задача.
Profesor Profesor 30.10.201823:56 ответить ссылка -1.3
А теперь вопрос, нахрена? Они ведь знают формат адреса, так что регулярку можно в одну строку зафигачить, так же данная регулярка офигеть какая не оптимальная, кто будет в здравом использовать адресс почты с множеством преносов строки и возратом курсора? Чтобы лучше понять регулярные выражения прочтите книгу J.E.F.Friedl "Регулярные выражения" 2-издание. Можно перевод ЗАО Издательский дом "Питер", но там много опечаток.
SinGreed SinGreed 31.10.201800:32 ответить ссылка -0.3
регэкспов без опечаток не бывает
некоторые говорят, что без опечаток они вообще не работают
villy villy 31.10.201800:51 ответить ссылка 0.0
Я не про регулярки, а про текст с пояснениями, там много повторов слов или не правильное написание. Довольно забавно, но решение проблемы повторов слов разбирается в данной книге.
А еще современные популярные почтовые сервисы не следуют строго этому стандарту. И много, что там разрешено, в них запрещено.
Есть информация, что RFC822 чутка устарел и теперь регулярное выражение раз в 20 меньше:
https://stackoverflow.com/a/201378
Cfyz Cfyz 31.10.201801:15 ответить ссылка 0.0
К сожалению, не устарел, потому что RFC822 это стандарт (конкретно, STD11), а RFC5322 не стандарт, просто RFC.
dadv dadv 31.10.201802:34 ответить ссылка 0.0
На самом деле, если внимательно вглядеться, то можно заметить, что это просто быдлокод - куча копипасты с минимальными отличиями, которую пришлось написать ее авторам из-за слабости языка регулярных выражений. Такая регулярка относительно легко пишется на основе спецификаций. Но потом значительно сложнее поддерживается.
1
2
3
4
5
б
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
(?: ( ? :\r\n)?[ \t] ) \Z| (?=[\["0 <>@, ; \Z| (?=[\["0 <>@,; \Z| (?=[\["0 <>@,; \Z| (?=[\["0 <>@,;
\z I (?=[\["(K>e,; \z| (?=[\["0 <>@, ; \z|
И еще одно - на самом деле она довольно странно работает, т.к. считает, к примеру это - валидным емейлом []-@[]
Пруф: https://codepen.io/anon/pen/OBeMKV (попробуйте ввести этот адрес в поле)

С таким же успехом можно использовать такую регулярку: ^\S+@\S+$ . Попробовать: https://codepen.io/anon/pen/YJoqKb
Твоя регулярка посчитает @@@ валидным адресом. Тогда уже просто ^[^@]+@[^@]+$
sprspr sprspr 31.10.201808:57 ответить ссылка 0.0
А твоя регулярка посчитаем валидным адресом ' @ ' (собачку с двумя пробелами вокруг). На самом деле это не так важно. Регулярка должна искать "приблизительно" емейл. Так как реально емейл адрес, пожалуй, невозможно утвердить при помощи регулярки.
Здесь что-то написано
Похоже на альфийско
о могу прочесть.
Renniw Renniw 31.10.201807:52 ответить ссылка 0.3
Зачем такие сложности?
perl -e '$??s:;s:s;;$?::s;;=]=>%-{
kosoi kosoi 31.10.201809:38 ответить ссылка -0.3
У тебя апострофы кончились, на апострофы ''''''''''' .
Допиши в конце твоего быдло кода.
Блин, почему обрезало?
kosoi kosoi 01.11.201808:19 ответить ссылка 0.0
perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
kosoi kosoi 01.11.201808:22 ответить ссылка 0.0
ЗШШ ученика 10 КЛАССА
ПОАЬЬА .для ВУ АУШ.ЕЙ
карьеры
1
X
300 часов
ШКОЛЬНЫХ
уроков
чоо «мсо&
Д0А4АШНеи РАБОТЫ
OAMU ВЫХОДНЫЕ
БАЛОВСТВА С PERLO^
ilux ilux 30.10.201822:15 ответить ссылка 7.2
Ага, и приходят потом такие инопланетяне. Программировать могут, а рассчитать пропорцию нет.
Представим, что у вас есть проблема, которую вы собираетесь решить с помощью регулярного выражения.
И так, у вас две проблемы.
noavatar noavatar 30.10.201822:30 ответить ссылка 10.9
Но это же комикс как минимум 2012 года...
pda0 pda0 30.10.201822:45 ответить ссылка 3.5
Оригинальный (англоязычный) комикс датирован десятым января 2007 года (см. хаверы на https://xkcd.com/archive/)
Вот-вот.
Сейчас бы постить классику.
кто-то смог таки вернуть нам наш 2007-й
У Рэндалла тааак удобно даты смотреть... :)
pda0 pda0 31.10.201800:03 ответить ссылка 0.0
Я так и не нашел.
По ссылке https://xkcd.com/archive/ наводитесь мышью на название комикса и в хинте появляется дата. o_O Юзер-френдли дизайн так и прёт.
pda0 pda0 31.10.201812:53 ответить ссылка 0.0
Результат: всё ещё не работает, и уже невозможно понять, почему.
xgffy xgffy 31.10.201815:33 ответить ссылка 0.0
Задолбали постить на реактор баяны десятилетней давности
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Мамочка, почему ие£о голубое?
Рассеивание Релэя! Короткие волны рассеиваются ГОРАЗДО сильнее (в пропорции 1/Лц). Синий цвет доминирует, потому что волна д.	такая короткая.
Г	[
Тогда почему оно	^
не фиолетовое? Иуу, потому что...
Эээ... \ эм...
Моё хобби: учить детей задавать вопросы с подвохо
подробнее»

xkcd geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор

Мамочка, почему ие£о голубое? Рассеивание Релэя! Короткие волны рассеиваются ГОРАЗДО сильнее (в пропорции 1/Лц). Синий цвет доминирует, потому что волна д. такая короткая. Г [ Тогда почему оно ^ не фиолетовое? Иуу, потому что... Эээ... \ эм... Моё хобби: учить детей задавать вопросы с подвохо
И это даже не самое страшное. Хуже что-
|и»2о2е
...ен ежад ино-\
.?трёч аз отч ...отэ ы^г как
.кадум...
л
подробнее»

geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор xkcd

И это даже не самое страшное. Хуже что- |и»2о2е ...ен ежад ино-\ .?трёч аз отч ...отэ ы^г как .кадум... л
РУКОВОДСТВО ПО ПЕРЕХОДУ НА МЕТРИЧЕСКУЮ 6И6ТЕМУ
ТЕМПЕРАТУРА
бо*с. жарче на земле не бы&ает
Ч5'С СИЛЬНАЯ ЖАРА Ь ДУБАЕ ЧОЧ СИЛЬНАЯ ЖАРА НА ЮГЕ 6UM 35'с СИЛЬНАЯ ЖАРА НА СЕ&ЕРЕ СИ/Л ЗО'с ПЛЯЖНАЯ ПОГОАА 25'С ТЁПЛАЯ КОМНАТА 20‘с КОМНАТНАЯ ТЕМПЕР АТУРА ю*с ПОРА НАДеТЬ КУРТКУ
о*с снег». -5*с холодный пе
подробнее»

geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор xkcd

РУКОВОДСТВО ПО ПЕРЕХОДУ НА МЕТРИЧЕСКУЮ 6И6ТЕМУ ТЕМПЕРАТУРА бо*с. жарче на земле не бы&ает Ч5'С СИЛЬНАЯ ЖАРА Ь ДУБАЕ ЧОЧ СИЛЬНАЯ ЖАРА НА ЮГЕ 6UM 35'с СИЛЬНАЯ ЖАРА НА СЕ&ЕРЕ СИ/Л ЗО'с ПЛЯЖНАЯ ПОГОАА 25'С ТЁПЛАЯ КОМНАТА 20‘с КОМНАТНАЯ ТЕМПЕР АТУРА ю*с ПОРА НАДеТЬ КУРТКУ о*с снег». -5*с холодный пе
IT'S A CHRISTY TREE UITH A HEAP OF PRESENTS UNDERNEATH!
... WE'RE NOT INVITING YOU HOME NEXT YEAR.