Menu Close

Обустройство хозблока внутри: Обустройство сарая на даче внутри: фото-советы

Главное — планировка. Как расположить хозпостройки на участке? | Стройка и дизайн | Дача

aif.ru

Федеральный АиФ

aif.ru

Федеральный АиФ
  • ФЕДЕРАЛЬНЫЙ
  • САНКТ-ПЕТЕРБУРГ
  • Адыгея
  • Архангельск
  • Барнаул
  • Беларусь
  • Белгород
  • Брянск
  • Бурятия
  • Владивосток
  • Владимир
  • Волгоград
  • Вологда
  • Воронеж
  • Дагестан
  • Иваново
  • Иркутск
  • Казань
  • Казахстан
  • Калининград
  • Калуга
  • Камчатка
  • Карелия
  • Киров
  • Кострома
  • Коми
  • Краснодар
  • Красноярск
  • Крым
  • Кузбасс
  • Кыргызстан
  • Мурманск
  • Нижний Новгород
  • Новосибирск
  • Омск
  • Оренбург
  • Пенза
  • Пермь
  • Псков
  • Ростов-на-Дону
  • Рязань
  • Самара
  • Саратов
  • Смоленск
  • Ставрополь
  • Тверь
  • Томск
  • Тула
  • Тюмень
  • Удмуртия
  • Украина
  • Ульяновск
  • Урал
  • Уфа
  • Хабаровск
  • Чебоксары
  • Челябинск
  • Черноземье
  • Чита
  • Югра
  • Якутия
  • Ямал
  • Ярославль
  • Спецпроекты
    • 75 лет атомной промышленности
    • 75 лет Победы
      • Битва за жизнь
      • Союз нерушимый
      • Дневники памяти
      • Лица Победы
      • Накануне
    • Герои страны
    • Герои нашего времени
    • Asus. Тонкость и легкость
    • Рак легкого — не приговор
    • Красота без шрамов
    • Клиника «Медицина»
    • Как справиться с грибком ногтей
    • Деньги: переводить мгновенно и бесплатно
    • Инновационный ультрабук ASUS
    • Как быстро найти работу?
    • Память в металле
    • Здоровый образ жизни – это…
    • Московская промышленность — фронту
    • Почта в кармане
    • Путешествие в будущее
    • GoStudy. Образование в Чехии
    • Безопасные сделки с недвижимостью
    • Перепись населения. Слушай, узнавай!
    • Новогодний миллиард в Русском лото
    • Рыба: до прилавка кратчайшим путем
    • «Кванториада» — 2019
    • Югра: нацпроекты по заказу
    • Выбор банковских продуктов
    • Работа мечты
    • МГУ — флагман образования
    • 100 фактов о Казахстане
    • Ремонт подъездов в Москве
    • Panasonic: теплицы будущего
    • Рейтинг лучших банковских продуктов
    • Лечим кашель
    • Югра удивляет
    • Возвращение иваси
    • Детская книга войны
    • Как читать Пикассо
    • Жизнь Исаака Левитана в картинах
    • Учиться в интернете
    • Пробная перепись населения–2018
    • «Летящей» походкой
    • Реновация в Москве
    • «АиФ. Доброе сердце»
    • АиФ. Космос
    • Сделай занятия эффективнее
    • Фотоконкурс «Эльдорадо»
    • Яркие моменты футбола
    • Вся правда о гомеопатии
    • Леди выбирают
    • Москва Высоцкого
    • Пресс-центр
    • Октябрь 1917-го. Буря над Россией
    • Война на Украине
      • Война на Украине онлайн
      • Репортаж
      • Прогнозы и перспективы
      • Оценки
      • Война на Украине в вопросах
    • Письма на фронт
    • Алло, цивилизация
    • Тестируй все от LG
    • Ад Беслана. Взгляд изнутри
    • Твои документы!
    • Острый угол
      • Дороги
      • Коррупция
      • ЖКХ
      • Здоровье
      • Энергетика
      • СХ
      • Строительство
      • Преступность
      • Образование
      • Промышленность
      • Миграция
      • Туризм
      • Спорт
    • Все спецпроекты
  • Все о коронавирусе
  • Мой район
    • Академический
    • Внуково
    • Гагаринский
    • Дорогомилово
    • Зюзино
    • Коньково
    • Котловка
    • Крылатское
    • Кунцево
    • Куркино
    • Ломоносовский
    • Митино
    • Можайский
    • Ново-Переделкино
    • Обручевский
    • Очаково-Матвеевское
    • Покровское-Стрешнево
    • Проспект Вернадского
    • Раменки
    • Северное Бутово
    • Северное Тушино
    • Солнцево
    • Строгино
    • Теплый стан
    • Тропарево-Никулино
    • Филевский парк
    • Фили-Давыдково
    • Хорошёво-Мнёвники
    • Черемушки
    • Щукино
    • Южное Бутово
    • Южное Тушино
    • Ясенево
  • Изменения в Конституцию
  • Антивирус
  • Казахстан сегодня
  • Общество
    • 75 лет Победе
    • Просто о сложном
    • Сеть
    • Наука
    • Здравоохранение
    • Армия
    • Безопасность
    • Образование
    • Право
    • Конкурс «Регионы России»
    • Арктика — территория развития
    • Экология
    • МЧС России
    • Мусора.нет
    • Агроновости
    • История
    • Люди
    • Религия
    • Общественный транспорт
    • СМИ
    • Природа
    • Туризм
    • Благотворительность
    • Социальное страхование
    • Измени одну жизнь
    • Галереи
    • Мнение
  • Происшествия
  • Политика
    • В России
    • Московские выборы
    • В мире
    • Итоги пятилетки. Курская область
    • Выборы в Приднестровье
    • Галереи
    • Мнения
  • Деньги
    • Экономика
    • Коррупция
    • Карьера и бизнес
    • Личные деньги
    • Компании
    • Рынок
  • Москва
  • Здоровье школьника
    • На страже зрения
    • Гигиена зрения
    • Защита иммунитета
    • Профилактика болезней горла
  • Культура
    • Кино
    • Театр
    • Книги
    • Искусство
    • Шоу-бизнес
    • Персона
    • Проблема
    • Куда пойти
    • Галереи
    • Актуальная классика
  • Спорт
    • Футбол
    • Хоккей
    • Зимние виды
    • Летние виды
    • Другие виды
    • Олимпиада
    • Инфраструктура
    • Персона
    • Фото
  • Кухня
    • Рецепты
    • Рецепты в инфографике
    • Продукты и напитки
    • Питание и диеты
    • Кулинарные хитрости
    • Мастер-классы
    • Детское питание
    • Кухни мира
    • Бытовая техника
    • Дебаты
    • журнал АиФ ПРО кухню
  • Дача
    • Огород
    • Сад
    • Стройка и дизайн

9 советов, какой сарай построить на даче, или Выбираем материал для сарая

Содержание статьи

Каждый дачник хорошо понимает, что без сарая на участке не обойтись. Эта постройка может стать местом хранения садового инвентаря или дров, небольшой мастерской, курятником или крольчатником. Нередко сарай становится первым сооружением, которое строится на только что купленном участке, но хозблок может возводиться во время строительства дома или уже после его завершения. В любом случае необходимо будет выбрать материал для сарая, и тут дачника ждет огромный ассортимент: от привычных легкобетонных блоков и досок до готовых контейнеров. Разбираемся с особенностями разных материалов, типами фундаментов и крыши и определяем, какой сарай построить на даче.

№1. Ищем место для сарая на даче

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

Сарай обычно располагают:

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

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

  • если в сарае вы собираетесь хранить садовый инвентарь, инструменты, проводить мелкие ремонтные работы, то минимальное расстояние от забора – 1 м;
  • если сарай используется для выращивания животных или складирования органических удобрений, — расстояние от него до забора должно быть минимум 4 м;
  • при использовании сарая для выращивания животных важно не только расстояние до забора, но и дистанция до соседнего жилого дома. Она должна составлять минимум 12 м.

№2. Определяемся с размерами сарая

Размеры сарая определяются целями его использования. Опыт многочисленных дачников позволяет говорить о минимально необходимых параметрах для разных целей использования:

  • для хранения садового инвентаря (грабли, лопаты, секаторы и т.д.) подойдет постройка размерами 1,5*1,5 м, в ней можно организовать систему крючков и полочек;
  • если предполагается хранить не только садовые инструменты, но и дополнительные материалы, вроде красок, удобрений и прочего, то удобно все складировать можно при размерах от 1,5*2 м;
  • если предполагается хранить технику, типа газонокосилки или насоса, то лучше расширить сарай до размера 2*3 м;
  • при использовании хозблока в качестве курятника или крольчатника его размеры зависят от того, какое количество животных вы планируете выращивать. Например, для 10-20 наседок достаточно сарая размером 2*3 м.

Часто сарай строится с запасом, но его размеры редко бывают больше 3*6 м.

№3. Материалы для сарая

Современные дачники возводят сараи из чего угодно: в ход идут как вполне традиционные материалы, так и подручные. Условно по материалу и технологии строительства сараи можно поделить на:

  • каркасные;
  • контейнерные;
  • сборные;
  • сараи из кирпича и легкобетонных блоков.

№4. Каркасный сарай для дачи

Каркасная технология строительства – одна из наиболее популярных на сегодняшний день, она позволяет обойтись небольшими вложениями, да и построить такой сарай своими руками несложно. Технология заключается в создании крепкого, надежного каркаса из деревянного бруса или профтрубы. Сверху каркас обшивается любым листовым или пагонажным материалом и при необходимости утепляется изнутри.

По используемому для внешней обшивки материалу сараи бывают:

  • деревянные сараи с обшивкой из обрезной или необрезной доски (горбыля) считаются самыми простыми в реализации и самыми дешевыми конструкциями, правда, долговечность их невысока. Постройка начинается с возведения фундамента, затем монтируют опорную раму из деревянного бруса, крепят стойки стропила для обустройства кровли. Полученный каркас обшивают обычной доской или горбылем. Идеально подходит шпунтованный материал, так как позволяет избежать щелей. Некоторые прибегают к монтажу досок елочкой. Деревянные сараи можно использовать в любых целях, но если предусмотрена зимовка в них животных, то лучше на этапе строительства применить ветрозащитные пленки и утепляющий материал. Деревянный сарай – это дешево, просто и экологично. Минусы значительны: невысокая долговечность, подверженность гниению, воспламенению, появлению насекомых, необходимость постоянной защитной обработки для продления срока службы;
  • сараи, обшитые плитками ОСБ, показывают лучшие показатели по долговечности, ведь материал практически не гниет и не коробится. Основой служит деревянный каркас, но при его возведении стоит очень точно монтировать опорные стойки, чтобы шов между плитами ОСБ приходился точно на них. По стоимости плиты ОСБ обойдутся дороже досок, но хлопот в плане монтажа и обслуживания меньше. Тем не менее, краской такой сарай все же лучше покрыть не столько из эстетических соображений, сколько для обеспечения дополнительной зашиты;
  • металлический сарай – уже более надежное и долговечное сооружение. Каркас изготавливают из профильной трубы, некоторые дачники используют старые водопроводные трубы. Их бетонируют в грунте, фиксируют с помощью болтов или сварки вертикальные прогоны и крепят облицовку, в качестве которой подойдут листы профнастила. Металл придется периодически защищать от коррозии, тогда сарай простоит очень долго. Металлический хозблок выходит холодным, и если необходимо организовать в нем мастерскую или место содержания животных, лучше провести внутреннее утепление;
  • поликарбонат традиционно используется для возведения теплиц, но применяют его при обустройстве сараев для закрытого выгула домашней птицы. Если сарай будет использоваться как мастерская или склад, прозрачные стены ему ни к чему, но за неимением других материалов и поликарбонат может сгодиться. Крепить листы материала можно на деревянный и металлический каркас, используются специальные саморезы с широкой шляпкой и уплотнительной шайбой;
  • шифер, оставшийся после замены кровли дома, можно также использовать для создания сарая. Плоские или волнистые листы лучше всего крепить на деревянный каркас. Так как размер листов большой, монтаж сильно ускоряется. Выглядят такие сараи не очень привлекательно, зато они максимально экономичны;
  • сарай из опилкобетона возводится по монолитной технологии. Понадобится создать каркас и обшить его плитами ОСБ, получив опалубку. В нее заливают смесь цементного раствора и опилок. В итоге получаются крепкие стены с неплохим показателем теплоизоляции. В таком сарае можно обустроить мастерскую, склад или курятник;
  • поддоны, они же паллеты, можно использовать как альтернативу брусу при обустройстве каркаса сарая. Достать деревянные поддоны не составит труда: если не совсем бесплатно, то за минимальную плату. Поддоны выставляют на фундамент, стягивают между собой болтами, устанавливают стропила, а готовый каркас обшивают (обычно плитами ОСБ).

№5. Сараи из кирпича и ячеистого бетона

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

Сарай из кирпича

Из кирпича сараи возводят нечасто, и обусловлено это рядом недостатков:

  • высокая стоимость;
  • высокая трудоемкость работ;
  • большой вес и необходимость закладки мощного фундамента.

  Кирпичный сарай может похвастаться и многочисленными преимуществами:

  • отличный внешний вид. Фактически, это чуть ли не единственный вариант, когда сарай и без дополнительной облицовки смотрится вполне приемлемо и не портит участок;
  • высокая долговечность и надежность;
  • пожаро- и влагостойкость;
  • устойчивость к грызунам и плесени.

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

Сарай из пеноблоков

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

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

Из минусов подобного решения возможность усадки и не самый привлекательный внешний вид. Усадка составляет около 2-4 мм на погонный метр, а проблема внешнего вида решается облицовкой штукатуркой, декоративным кирпичом или сайдингом.

Сарай из газоблоков

Газоблоки производятся по немного другой технологии, но во многом повторяют свойства пеноблоков. Они держат тепло, немного весят, устойчивы к огню, стоят недорого, но боятся воды. Водопоглощение может достигать 35%, поэтому необходима надежная гидроизоляция. Не каждый дачник готов так заморачиваться при возведении сарая, поэтому газобетон используется не очень часто в отличие от пенобетона.

Сарай из арболита

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

  • высокие теплоизоляционные качества;
  • высокая паропроницаемость;
  • большой размер блоков и легкий вес позволяют строить быстро и с минимальной нагрузкой на фундамент;
  • высокая прочность;
  • устойчивость к плесени и грызунам;
  • беспроблемный монтаж крепежных элементов.

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

№6. Готовый контейнерный сарай

Если сроки на возведение хозблока критически малы, то можно значительно упростить себе жизнь, купив готовый сарай. В основе таких конструкций металлический каркас, обшитый металлом со слоем утеплителя. В утеплителе прокладывают все необходимые коммуникации. Внешне такой сарай похож на контейнер, а его оснащение может сильно отличаться: от небольшого сарая-кладовки, то полноценного хозблока с туалетом и даже местом для отдыха и навесом для обустройства веранды. Наиболее функциональные контейнеры можно использовать как небольшой дачный домик, пока основной строится.

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

№7. Сборные сараи

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

Сборные сараи выпускаются на основе:

  • SIP-панелей;
  • сэндвич-панелей;
  • пластиковых панелей.

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

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

№8. Фундамент для сарая

Какой бы легкой ни была постройка, фундамент под сарай необходим в любом случае. Если сэкономить или поддаться на уговоры лени, и упустить этот важный этап строительства сарая на даче, то уже вскорости можно столкнуться с покосившимися стенами. Конечно, не всегда необходим мощный трудоемкий фундамент – все зависит от применяемого в строительстве материала. Как правило, используются такие виды фундамента:

  • блочный – основание для самых легких сараев, в т.ч. деревянных. Обустраивается при использовании бетонных блоков, которые устанавливаются на песчаную подушку по периметру будущего сарая с шагом 1-1,5 м. Финансовые и трудовые затраты минимальные;
  • плитный монолитный фундамент – универсальный вариант, который можно использовать даже в местности с рыхлым грунтом. Процесс обустройства несложный и заключается в подготовке песчаной подушки толщиной 15-20 см и заливке цементного раствора толщиной 10 см, для гарантии его можно дополнительно укрепить арматурой. Существенный плюс такого решение – отсутствие работ по обустройству пола;
  • столбчатый фундамент – популярный вариант для каркасных сараев, он дешев и прост в обустройстве, но не подходит для местности со сложным грунтом;
  • свайный фундамент может применяться на любых грунтах, быстро обустраивается, но отличается высокой стоимостью, поэтому к его обустройству прибегают при отсутствии альтернатив;
  • ленточный фундамент наиболее трудоемкий, но возведение тяжелых построек (сарай из кирпича, например) без него сложно представить. Ленточный фундамент возводят по монолитной технологии из бетона и по сборной технологии из бетонных блоков. Под сарай можно использовать прерывистый ленточный фундамент, его закладывают не сплошной линией.

№9. Обустройство крыши сарая на даче

Крыша сарая может быть:

  • односкатной;
  • двускатной.

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

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

Для обустройства крыши сарая обычно используют такие материалы:

  • шифер – самый бюджетный вариант, да и после строительства или ремонта других дачных построек он есть у большинства дачников. Материал отличается долговечностью, неплохой прочностью, атмосферостойкостью, но требует надежной обрешетки и излишне хрупок. Его невысокие эстетические свойства при строительстве сарая не так важны;
  • металлочерепица – легкий недорогой материал, который также часто остается после кровли дачного дома или беседки. В плюсы отнесем внешний вид, ассортимент и долговечность. Сарай, покрытый металлочерепицей, сможет стать частью архитектурного ансамбля участка. Опасаться стоит появления царапин во время монтажа, так как они запускают процесс коррозии;
  • профлист по свойствам напоминает металлочерепицу, но стоит дешевле и выглядит намного проще;
  • рубероид – мягкий рулонный материал, отличающийся низкой ценой и простотой монтажа. Эстетичность такой кровли невысока, к тому же лучше класть рубероид в несколько слоев;
  • ондулин, он же мягкий шифер, весит немного, выглядит хорошо, гибкий, легко монтируется, но отличается горючестью;
  • гибкая черепица обладает прекрасными эстетическими и эксплуатационными качествами, но из-за высокой цены для кровли сараев используется нечасто.

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

Строим сарай для дачи своими руками: варианты построек с видео

Обладая загородным домом или дачей в деревне, одним из необходимых элементов инфраструктуры является сарай, в котором можно сохранять садовый инвентарь, другие полезные в хозяйстве вещи. Сарай для дачи – это небольшое помещение, надежно закрывающееся на замок, имеющее несколько оконных проемов. Хозяйственная постройка должна быть крепкой, защитить садовые инструменты от влаги, в дождливый период, обеспечить их сохранность.

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

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

Содержание статьи

Сборный сарай для дачи: из чего выбрать

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

Пластиковый сарай

Эти сооружения появились на рынке относительно недавно. Изготавливаются из современного пластика – винила или древесно-пластикового композита, являющимися экологически чистыми материалами, не выделяющими вредных веществ в воздух, не имеющими неприятного запаха.

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

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

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

Металлический сарай для дачи

Как и предыдущее конструкции из пластика продаются в сборном виде. Сделаны изделия из оцинкованной стали, окрашены в разные цвета. Имеют достаточно демократическую цену, что, конечно, является их неоспоримым плюсом.

Хозблок для дачи своими руками

Жизнь на приусадебном участке практически невозможна без хозяйственного блока. Ведь в него обычно входят туалет с душем и помещение для хранения садового инструмента и прочих необходимых вещей.

Хозблок для дачи своими руками

Проектируем бытовку

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

Проектирование бытовки

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

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

Что взять для стройки?

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

Для строительства хозблока нужны:

  • штыковая и совковая лопаты,
  • топор,
  • рубанок,
  • ножовка,
  • отвертка,
  • электродрель с набором сверл.

Возведение основных элементов постройки

В качестве фундамента для постройки можно использовать стенки выгребной ямы (если вы планируете включать в блок туалет и душ), либо сделать небольшой полноценный фундамент.

Глубину фундамента следует планировать на уровне метра. Сам фундамент можно делать из бетона или неполого кирпича. Тип фундамента лучше выбрать свайный. Для этого в земле роют отверстия, в которые потом встанут столбики будущего фундамента. На фундамент сверху кладется двумя слоями рубероид, чтобы защитить нижние венцы стен от гниения. На угловых соединениях фундамента необходимо установить железные прутья или болты в качестве анкеров. Они будут служить креплениями для первых двух венцов и придадут устойчивости всей постройке.

Для сооружения каркаса лучше использовать деревянные бревна толщиной до 11 сантиметров или брусья такого же размера. В углы нижнего венца установите железные прутья до 1 сантиметра толщиной, чтобы на них закрепить столбы каркаса. Для установки штырей просверлите в бревнах отверстия таким образом, чтобы даметр отверстий был на 1-2 мм меньше. После чего с помощью молотка или кувалды штыри ставятся на место.

После этого по верху стоек укладывают брусья, которые будут обозначать границу стен и крыши. Поверх этих брусьев начинают ставить стропила и обрешетку будущей крыши. Для стропил используются широкие толстые доски с сечением 10 и 5 сантиметров, на обрешетку пойдут узкие – до 5 и 2 сантиметров соответственно.

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

Настилка пола и деление на зоны

Все полы в помещении делаются из толстых досок. В том месте, где будет располагаться душевая, в досках необходимо сделать небольшие вырезы или оставить небольшие зазоры. Это позволит воде спокойно стекать в яму.

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

Установка оконных и дверных проемов в хозблоке

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

Для изготовления полотна двери берутся бруски, из которых формируется рама с ребром в середине. На раму гвоздями или саморезами крепится лист ДСП или фанеры.

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

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

Хозблок

На крышу хозблока прямо над душевой устанавливается стальной бак объемом 200 литров. Для наибольшего нагревания воды бак выкрашивается со всех сторон черной краской. Возможен также вариант подведения электрического нагрева с помощью тэнов.

В конце работ внешние стены блока можно покрасить или покрыть лаком.

В результате вы получите очень простое и надежное помещение для хранения всего необходимого инструмента. Как показывает практика, строительство хозблока своими силами обходится на 60-80% дешевле, чем приобретение готового строения. А времени самостоятельная сборка требует немного: всего 2-3 дня.

Видео – строительство хозблока своими руками

 

Как построить хозблок на дачном участке

Сегодня мы продолжаем разговор о строительстве сарая на даче своими руками. 

О видах и особенностях сараев и хозблоков

О строительных вопросах

Итак, тип фундамента под возведение капитального хозблока выбирают, учитывая два главных фактора – тип грунта в данной местности и материал, из которого сооружение будет построено. Традиционно самыми надежными считаются основания ленточного, монолитного и столбчатого типа.
Если говорить о стенах, здесь оптимальный вариант – это применение блоков из газобетона. Данный материал отличается небольшим весом и очень удобен для монтажа. Другое интересное решение связано с использованием каркасных технологий. Каркас при этом чаще всего обшивается посредством сайдинга, евровагонки или декоративного профнастила.
Для покрытия крыши капитальных сараев часто используют ондулин. Данный тип кровельного покрытия имеет огромную популярность в нашей стране. Эксплуатационные характеристики ондулина достаточно высоки, к тому его производят в самых разных расцветках.
Весьма распространенный подход к строительству сарая – возведение модульных сооружений разборного типа. Обычно такие бытовки используются в ситуациях, когда основная «стройка» на участке еще продолжается. Сараи временного типа строятся в предельно короткие сроки, для их сооружения могут быть использованы практически любые стройматериалы, которые имеются «под рукой».

Как определить оптимальный размер сарая?

Здесь все будет зависеть от того, сколько инструментов и других вещей вы планируете складировать в бытовке. Стандартный размер для обычного небольшого сарая из дерева – 3х3 или 2х2 метра. В основе таких сооружений находится каркас, который обшивается сверху листами фанеры или ДСП. Таким образом, сборка и разборка хозблока могут быть выполнены максимально оперативно. Внутреннюю отделку при таком подходе можно проигнорировать, — такой сарай не рассчитан на длительные сроки пользования.

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

Один из самых простых способов возведения сарая – покупка готовой конструкции, которую затем собирают из нескольких частей. Такой хозблок, по сути, является моноблочным сооружением с каркасом из металла. Стены бытовки нуждаются в дополнительном утеплении. Внутри сарай оборудуется электрической проводкой, поэтому он может использоваться как душевая кабина, санузел, место для отдыха и т.д.
Итак, готовый хозблок – это очень выгодный вариант для дачной территории. Его сборка занимает очень мало времени, а стоимость конструкции совсем невысока (за редким исключением). Для того чтобы установить сборный сарайчик вам не придется «возиться» с фундаментом, вы легко обойдетесь установкой опорных столбов или моноблоков. Единственный серьезный технический момент – подключение внутренних коммуникаций (электрическая проводка и водяные шланги).
Для быстрой и беспроблемной установки сборного хозблока рекомендуем использовать автокран. Сараи такого типа смотрятся довольно эстетично и могут отлично вписаться в общую картину дизайна интерьера участка. За счет того, что данное сооружение по-настоящему мобильно, его можно переносить из одной точки участка в другую, а затем и вовсе продать.

Еще один интересный и популярный вариант – хозблок, выполненный из необрезных досок. В этом случае каркасную конструкцию устанавливают на специально подготовленную основу (без фундамента можно обойтись), состоящую из деревянных паллет или широких брусьев. Если говорить о размерах такого хозблока — стандартный показатель здесь 2х3 метра при высоте в 2,5 метра. Брусочные каркасы таких сараев обшиваются боковыми частями бревен (горбыль). Придать конструкции более эстетичный вид можно за счет устройства красивой односкатной крыши и высадки вьющихся растений.

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

О материалах для хозблоков

Конечно, один из наиболее популярных материалов для строительства сарая – это кирпич. Хозблок из кирпича по-настоящему долговечен, практичен и красив (при условии качественной постройки сарая).

Есть, однако, у кирпичного варианта и свои минусы:
  • далеко не каждый владелец участка способен самостоятельно выложить кирпичный сарай. В связи с этим многие дачники нанимают для строительства бытовки из кирпича профессионалов – а это связано с немалыми расходами;
  • для возведения кирпичного хозблока необходима полноценная строительная площадка. Если участок совсем маленький, процесс будет связан с определенными неудобствами;
  • кирпичное строение обойдется недешево. Кроме кирпичей вам потребуется соответствующее количество цемента, песка и щебня.

Различные виды деревянных сараев также отличаются хорошими эксплуатационными свойствами. Каркас достаточно оперативно собирают из брусьев, а в качестве обшивочного материала применяется горбыль, МДФ или ОСП-плиты. Деревянное строение обойдется дешевле кирпичного, плюс его значительно легче построить самостоятельно. Главный недостаток древесины хорошо известен – она нуждается в регулярном уходе, который в первую очередь состоит в обработке деревянных элементов защитными средствами, а также – в покраске. Так или иначе, в плане долговечности деревянный сарай значительно уступает кирпичному хозблоку.

Различные виды ячеистого бетона также нередко используются для строительства дачных сараев. Не рекомендуем делать выбор в пользу газосиликата – блоки этого материала очень быстро поглощают влагу. Поэтому газосиликатному строению необходима серьезная отделка.
Пенобетон напротив отлично подойдет для возведения хозблока, этот материал достаточно недорогой и удобный для монтажа. Для финишной отделки в данном случае можно использовать стандартную штукатурку.

Еще один интересный вариант – сооружение сарая из поликарбоната. Листы материала крепятся на опорную раму, выполненную из брусьев. Для изготовления каркаса здесь используются пластиковые трубы или алюминиевый профиль. 

Видео: Строительство простого хозблока

С этим материалом читают так же:

Как построить сарай на дачном участке

Строительство сарая с односкатной крышей своими руками

Как самостоятельно построить сарай на дачном участке   

10 Разъяснение устройства системы распределения электроэнергии

Точная имитация символов шины отражают структуру системы распределения, которую они производят. Фото: Sage Controls, Inc.

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

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

Для распределения электроэнергии используются четыре основных схемы. Это радиальная, первичная селективная, вторичная селективная и вторичная сетевые схемы.

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

1. Радиальная система

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

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

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

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

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


2. Расширенная радиальная система

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

Фото: Простая радиальная система может быть легко расширена за счет включения дополнительных трансформаторов. Площадь Д.

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


3. Радиальная система с первичной селективностью

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

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

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

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


4. Первичная и вторичная простая радиальная система

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

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

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

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

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


5. Система первичного контура

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

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

Основное преимущество петлевой системы по сравнению с радиальным расположением состоит в том, что отказ одного трансформатора или фидерного кабеля не приведет к потере обслуживания одной части объекта, и что один фидерный кабель можно обслуживать без потери обслуживания.

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

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


6. Вторичная избирательная система

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

В схеме селективной вторичной обмотки главные вторичные выключатели и вторичные выключатели каждой блочной подстанции механически или электрически блокируются для предотвращения параллельной работы. Фотография: EATON

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


7. Первичная избирательная система

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

В сочетании с первичной селективной системой более высокая надежность может быть достигнута с вторичной селективной системой. Фото: Площадь Д.

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

Распределительное устройство

в металлической оболочке чаще всего используется с этим типом компоновки из-за ограничений выключателей прерывателя нагрузки в металлическом корпусе. Вторичные радиальные или селективные системы могут быть объединены с первичным селективным устройством для создания композитной системы.


8. Система резервного трансформатора

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

Система распределения электроэнергии с резервным трансформатором обеспечивает хорошую гибкость при переключении. Фотография: EATON

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

Все главные выключатели, включая резервный главный выключатель, нормально замкнуты; разрешающие механизмы обычно открыты. Трансформатор выключается из цепи путем размыкания вторичного главного выключателя и включения межкоммутаторного выключателя, чтобы резервный трансформатор питал свои нагрузки.

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

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


9. Система вторичной точечной сети

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

Системы вторичной точечной сети

обычно используются в зданиях, где требуется высокая степень надежности обслуживания. Фото: EATON.

Основным преимуществом вторичной сетевой системы является непрерывность обслуживания. Ни одна отдельная неисправность в первичной системе не прервет обслуживание какой-либо нагрузки системы.

Устройства защиты сети

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

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

Связано: Основы Network Protector: приложения, работа и тестирование


10. Композитные системы

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

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


Список литературы

Основы сетевых технологий | IBM

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

Что такое компьютерная сеть?

Компьютерная сеть состоит из двух или более компьютеров, которые соединены кабелем (проводным) или WiFi (беспроводным) с целью передачи, обмена или совместного использования данных и ресурсов. Вы строите компьютерную сеть, используя оборудование (например, маршрутизаторы, коммутаторы, точки доступа и кабели) и программное обеспечение (например, операционные системы или бизнес-приложения).

Географическое положение часто определяет компьютерную сеть.Например, LAN (локальная сеть) соединяет компьютеры в определенном физическом пространстве, таком как офисное здание, тогда как WAN (глобальная сеть) может соединять компьютеры на разных континентах. Интернет — крупнейший пример глобальной сети, соединяющей миллиарды компьютеров по всему миру.

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

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

Типы компьютерных сетей

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

  • LAN (локальная сеть): LAN соединяет компьютеры на относительно небольшом расстоянии, позволяя им обмениваться данными, файлами и ресурсами.Например, ЛВС может соединить все компьютеры в офисном здании, школе или больнице. Обычно локальные сети находятся в частной собственности и управляются.
  • WLAN (беспроводная локальная сеть): WLAN похожа на локальную сеть, но соединения между устройствами в сети выполняются по беспроводной сети.
  • WAN (глобальная сеть): Как следует из названия, глобальная сеть соединяет компьютеры на большой территории, например, от региона к региону или даже от континента к континенту. Интернет — это крупнейшая глобальная сеть, соединяющая миллиарды компьютеров по всему миру.Обычно вы видите модели коллективного или распределенного владения для управления WAN.
  • MAN (городская сеть): MAN обычно больше, чем LAN, но меньше, чем WAN. Города и государственные учреждения обычно владеют и управляют MAN.
  • PAN (персональная сеть): PAN обслуживает одного человека. Например, если у вас есть iPhone и Mac, вполне вероятно, что вы настроили PAN, который обменивается и синхронизирует контент — текстовые сообщения, электронные письма, фотографии и многое другое — на обоих устройствах.
  • SAN (сеть хранения данных): SAN — это специализированная сеть, которая обеспечивает доступ к хранилищу на уровне блоков — общей сети или облачному хранилищу, которое для пользователя выглядит и работает как накопитель, физически подключенный к компьютеру. Для получения дополнительной информации о том, как SAN работает с блочным хранилищем, смотрите наши видеоролики «Блочное хранилище и файловое хранилище» и «Блочное хранилище: полное руководство».
  • CAN (сеть кампуса): CAN также известна как корпоративная сеть.CAN больше LAN, но меньше WAN. CAN обслуживают такие объекты, как колледжи, университеты и бизнес-городки.
  • VPN (виртуальная частная сеть): VPN — это безопасное двухточечное соединение между двумя конечными точками сети (см. «Узлы» ниже). VPN устанавливает зашифрованный канал, по которому личность пользователя и учетные данные для доступа, а также любые передаваемые данные остаются недоступными для хакеров.

Важные термины и понятия

Ниже приведены некоторые общие термины, которые следует знать при обсуждении компьютерных сетей:

  • IP-адрес : IP-адрес — это уникальный номер, присваиваемый каждому устройству, подключенному к сети, которая использует Интернет-протокол для связи.Каждый IP-адрес идентифицирует хост-сеть устройства и местоположение устройства в хост-сети. Когда одно устройство отправляет данные другому, данные включают в себя «заголовок», который включает IP-адрес отправляющего устройства и IP-адрес устройства назначения.

  • Узлы : Узел — это точка подключения внутри сети, которая может принимать, отправлять, создавать или хранить данные. Каждый узел требует, чтобы вы предоставили некоторую форму идентификации для получения доступа, например IP-адрес.Несколько примеров узлов включают компьютеры, принтеры, модемы, мосты и коммутаторы. Узел — это, по сути, любое сетевое устройство, которое может распознавать, обрабатывать и передавать информацию любому другому сетевому узлу.

  • Маршрутизаторы : Маршрутизатор — это физическое или виртуальное устройство, которое отправляет информацию, содержащуюся в пакетах данных, между сетями. Маршрутизаторы анализируют данные в пакетах, чтобы определить наилучший способ доставки информации к месту назначения. Маршрутизаторы пересылают пакеты данных, пока они не достигнут своего узла назначения.

  • Коммутаторы : Коммутатор — это устройство, которое соединяет другие устройства и управляет межузловой связью в сети, гарантируя, что пакеты данных достигают конечного пункта назначения. Пока маршрутизатор передает информацию между сетями, коммутатор отправляет информацию между узлами в одной сети. При обсуждении компьютерных сетей «переключение» относится к тому, как данные передаются между устройствами в сети. Три основных типа переключения следующие:

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

    • Коммутация пакетов включает разбиение данных на независимые компоненты, называемые пакетами, которые из-за своего небольшого размера предъявляют меньше требований к сети. Пакеты проходят через сеть до конечного пункта назначения.

    • Коммутация сообщений отправляет сообщение целиком от исходного узла, перемещаясь от коммутатора к коммутатору, пока не достигнет своего узла назначения.

  • Порты : порт определяет конкретное соединение между сетевыми устройствами. Каждый порт обозначается номером. Если вы считаете IP-адрес сопоставимым с адресом отеля, то порты — это номера или апартаменты в этом отеле. Компьютеры используют номера портов, чтобы определить, какое приложение, служба или процесс должны получать определенные сообщения.

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

Примеры компьютерных сетей

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

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

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

The Weather Company работала над созданием одноранговой ячеистой сети, которая позволяет мобильным устройствам напрямую связываться с другими мобильными устройствами, не требуя Wi-Fi или сотовой связи.Проект Mesh Network Alerts позволит доставлять жизненно важную информацию о погоде миллиардам людей даже без подключения к Интернету.

Компьютерные сети и Интернет

Интернет — это сеть сетей, соединяющая миллиарды цифровых устройств по всему миру. Стандартные протоколы обеспечивают связь между этими устройствами. Эти протоколы включают протокол передачи гипертекста («http» перед всеми адресами веб-сайтов). Интернет-протокол (или IP-адреса) — это уникальные идентификационные номера, необходимые для каждого устройства, имеющего доступ к Интернету.IP-адреса сопоставимы с вашим почтовым адресом, предоставляя уникальную информацию о местоположении, чтобы информация могла быть доставлена ​​правильно.

Интернет-провайдеры (ISP) и сетевые сервис-провайдеры (NSP) предоставляют инфраструктуру, которая позволяет передавать пакеты данных или информации через Интернет. Не каждый бит информации, отправляемой через Интернет, попадает на все устройства, подключенные к Интернету. Это комбинация протоколов и инфраструктуры, которая сообщает информацию, куда именно нужно идти.

Как они работают?

Компьютерные сети соединяют такие узлы, как компьютеры, маршрутизаторы и коммутаторы, с помощью кабелей, волоконной оптики или беспроводных сигналов. Эти соединения позволяют устройствам в сети обмениваться информацией и ресурсами.

Сети

следуют протоколам, которые определяют способ отправки и получения сообщений. Эти протоколы позволяют устройствам обмениваться данными. Каждое устройство в сети использует Интернет-протокол или IP-адрес, строку чисел, которая однозначно идентифицирует устройство и позволяет другим устройствам распознавать его.

Маршрутизаторы

— это виртуальные или физические устройства, которые облегчают обмен данными между различными сетями. Маршрутизаторы анализируют информацию, чтобы определить наилучший способ доставки данных к месту назначения. Коммутаторы подключают устройства и управляют межузловой связью внутри сети, гарантируя, что пакеты информации, передаваемые по сети, достигают конечного пункта назначения.

Архитектура

Архитектура компьютерной сети определяет физическую и логическую структуру компьютерной сети.В нем показано, как компьютеры организованы в сети и какие задачи им назначены. Компоненты сетевой архитектуры включают оборудование, программное обеспечение, среду передачи (проводную или беспроводную), топологию сети и протоколы связи.

Основные типы сетевой архитектуры

Существует два типа сетевой архитектуры: одноранговая (P2P) и клиент / сервер . В архитектуре P2P два или более компьютера соединены как «одноранговые узлы», что означает, что они имеют равные возможности и привилегии в сети.P2P-сеть не требует центрального сервера для координации. Вместо этого каждый компьютер в сети действует как клиент (компьютер, которому требуется доступ к службе) и как сервер (компьютер, который обслуживает потребности клиента, обращающегося к службе). Каждый одноранговый узел делает некоторые из своих ресурсов доступными для сети, разделяя хранилище, память, пропускную способность и вычислительную мощность.

В сети клиент / сервер центральный сервер или группа серверов управляют ресурсами и предоставляют услуги клиентским устройствам в сети.Клиенты в сети общаются с другими клиентами через сервер. В отличие от модели P2P, клиенты в архитектуре клиент / сервер не разделяют свои ресурсы. Этот тип архитектуры иногда называют многоуровневой моделью, потому что он разработан с несколькими уровнями или уровнями.

Топология сети

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

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

  • Топология сети с шиной — это когда каждый сетевой узел напрямую подключен к основному кабелю.
  • В кольцевой топологии узлы соединены в петлю, так что каждое устройство имеет ровно два соседа. Смежные пары подключаются напрямую; несмежные пары связаны косвенно через несколько узлов.
  • В топологии сети «звезда» все узлы подключены к одному центральному концентратору, и каждый узел косвенно подключен через этот концентратор.
  • Топология сетки определяется перекрывающимися соединениями между узлами. Вы можете создать топологию полной сетки, в которой каждый узел в сети соединен со всеми остальными узлами. Вы также можете создать частичную топологию сетки, в которой только некоторые узлы подключены друг к другу, а некоторые подключены к узлам, с которыми они обмениваются наибольшим объемом данных.Полная ячеистая топология может быть дорогостоящей и трудоемкой для выполнения, поэтому ее часто резервируют для сетей, требующих высокой избыточности. Частичная сетка обеспечивает меньшую избыточность, но более экономична и проста в исполнении.

Безопасность

Безопасность компьютерной сети защищает целостность информации, содержащейся в сети, и контролирует доступ к этой информации. Политики сетевой безопасности уравновешивают потребность в предоставлении услуг пользователям с необходимостью контролировать доступ к информации.

Есть много точек входа в сеть. Эти точки входа включают оборудование и программное обеспечение, из которых состоит сама сеть, а также устройства, используемые для доступа к сети, такие как компьютеры, смартфоны и планшеты. Из-за этих точек входа сетевая безопасность требует использования нескольких методов защиты. Защита может включать брандмауэры — устройства, которые отслеживают сетевой трафик и предотвращают доступ к частям сети на основе правил безопасности.

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

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

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

Ячеистые сети

Как отмечалось выше, ячеистая сеть — это тип топологии, в котором узлы компьютерной сети соединяются с максимально возможным количеством других узлов. В этой топологии узлы взаимодействуют, чтобы эффективно направлять данные к месту назначения. Эта топология обеспечивает большую отказоустойчивость, поскольку в случае отказа одного узла существует множество других узлов, которые могут передавать данные.Ячеистые сети самонастраиваются и самоорганизуются, ища самый быстрый и надежный путь для отправки информации.

Тип ячеистых сетей

Есть два типа ячеистых сетей — полная и частичная:

  • В полносвязной топологии каждый сетевой узел подключается ко всем остальным сетевым узлам, обеспечивая высочайший уровень отказоустойчивости. Однако его выполнение стоит дороже. В топологии с частичной сеткой подключаются только некоторые узлы, обычно те, которые обмениваются данными чаще всего.
  • Беспроводная ячеистая сеть может состоять из десятков и сотен узлов. Этот тип сети подключается к пользователям через точки доступа, расположенные на большой территории. Посмотрите видео ниже, чтобы узнать, как The Weather Channel создал ячеистую сеть, которая рассылает предупреждения о суровой погоде, даже когда другие сети связи перегружены.

Балансировщики нагрузки и сети

Балансировщики нагрузки

эффективно распределяют задачи, рабочие нагрузки и сетевой трафик между доступными серверами.Думайте о балансировщиках нагрузки, как о диспетчере воздушного движения в аэропорту. Балансировщик нагрузки наблюдает за всем входящим в сеть трафиком и направляет его к маршрутизатору или серверу, лучше всего оборудованным для управления им. Цели балансировки нагрузки — избежать перегрузки ресурсов, оптимизировать доступные ресурсы, улучшить время отклика и максимизировать пропускную способность.

Полный обзор балансировщиков нагрузки см. В разделе «Балансировка нагрузки: полное руководство».

Сети доставки контента

Сеть доставки контента (CDN) — это распределенная серверная сеть, которая доставляет временно сохраненные или кэшированные копии контента веб-сайта пользователям в зависимости от географического положения пользователя.Сеть CDN хранит этот контент в распределенных местах и ​​предоставляет его пользователям, чтобы сократить расстояние между посетителями вашего веб-сайта и сервером вашего веб-сайта. Кэширование контента ближе к вашим конечным пользователям позволяет вам обслуживать контент быстрее и помогает веб-сайтам лучше охватить глобальную аудиторию. Сети CDN защищают от скачков трафика, уменьшают задержку, уменьшают потребление полосы пропускания, ускоряют время загрузки и уменьшают влияние взломов и атак, создавая слой между конечным пользователем и инфраструктурой вашего веб-сайта.

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

Главный сетевой архитектор Райан Самнер дает дальнейшее объяснение в видео «Что такое сеть доставки контента?»:

Прочтите о том, как IBM Cloud CDN улучшает качество обслуживания клиентов.

Компьютерные сетевые решения и IBM

Решения

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

Сети доставки контента (CDN), балансировщики нагрузки и сетевая безопасность — все это упомянуто выше — это примеры технологий, которые могут помочь предприятиям создавать оптимальные компьютерные сетевые решения. IBM предлагает дополнительные сетевые решения, в том числе:

  • Устройства шлюза — это устройства, которые дают вам улучшенный контроль над сетевым трафиком, позволяют повысить производительность вашей сети и повысить безопасность вашей сети.Управляйте своими физическими и виртуальными сетями для маршрутизации нескольких VLAN, брандмауэров, VPN, формирования трафика и т. Д.
  • Direct Link обеспечивает безопасность и ускорение передачи данных между частной инфраструктурой, мультиоблаком и IBM Cloud.
  • Cloud Internet Services — это возможности безопасности и производительности, разработанные для защиты общедоступного веб-контента и приложений до того, как они попадут в облако. Получите защиту от DDoS-атак, глобальную балансировку нагрузки и набор функций безопасности, надежности и производительности, предназначенных для защиты общедоступного веб-контента и приложений до того, как они попадут в облако.Посмотрите следующее видео, чтобы узнать больше о DDoS-атаках и о том, как они происходят:

Сетевые сервисы в IBM Cloud предоставляют сетевые решения для увеличения трафика, удовлетворения ваших пользователей и легкого предоставления ресурсов по мере необходимости.

Зарегистрируйтесь для IBMid и создайте свою учетную запись IBM Cloud.

Фьючерсы и обещания | Документация Scala

Авторы: Филипп Галлер, Александр Прокопец, Хизер Миллер, Виктор Кланг, Роланд Кун и Войин Йованович

Введение

Фьючерсы позволяют обосновать необходимость выполнения множества операций параллельно — эффективным и неблокирующим способом.A Future — объект-заполнитель для значения, которое может еще не существовать. Как правило, значение Future предоставляется одновременно и может использоваться впоследствии. Такое построение параллельных задач обычно приводит к более быстрому, асинхронному, неблокирующему параллельному коду.

По умолчанию фьючерсы и обещания не блокируют, используя обратные вызовы вместо типичных операций блокировки. Чтобы упростить использование обратных вызовов как синтаксически, так и концептуально, Scala предоставляет комбинаторы, такие как flatMap , foreach и filter , используемые для создания фьючерсы неблокирующим способом.Блокировка по-прежнему возможна — в тех случаях, когда она абсолютно необходимо, фьючерсы могут быть заблокированы (хотя это не рекомендуется).

Типичное будущее выглядит так:

  val inverseFuture: Future [Matrix] = Future {
  fatMatrix.inverse () // неблокирующее длительное вычисление
} (контекст исполнения)
  

Или более идиоматично:

  неявное значение ec: ExecutionContext = ...
val inverseFuture: Future [Matrix] = Future {
  fatMatrix.обратный ()
} // ec передается неявно
  

Оба фрагмента кода делегируют выполнение fatMatrix.inverse () объекту ExecutionContext и воплощают результат вычисления в inverseFuture .

Контекст выполнения

Future и Promises вращаются вокруг ExecutionContext s, отвечающих за выполнение вычислений.

Контекст выполнения похож на «Исполнитель»: свободно выполнять вычисления в новом потоке, в объединенном потоке или в текущем потоке (хотя выполнение вычислений в текущем потоке не рекомендуется — подробнее об этом ниже).

Пакет scala.concurrent поставляется с реализацией ExecutionContext , глобального статического пула потоков. Также возможно преобразовать Executor в ExecutionContext . Наконец, пользователи могут расширить черту ExecutionContext для реализации своих собственных контекстов выполнения, хотя это следует делать только в редких случаях.

Глобальный контекст выполнения

Контекст выполнения.global — это ExecutionContext , поддерживаемый ForkJoinPool. Этого должно быть достаточно для большинства ситуаций, но требует некоторой осторожности. ForkJoinPool управляет ограниченным количеством потоков (максимальное количество потоков упоминается как уровень параллелизма ). Количество одновременных блокирующих вычислений может превышать уровень параллелизма. только если каждый блокирующий вызов заключен в блокирующий вызов (подробнее об этом ниже). В противном случае существует риск того, что пул потоков в глобальном контексте выполнения будет истощен, и никакие вычисления не могут продолжаться.

По умолчанию ExecutionContext.global устанавливает уровень параллелизма своего базового пула fork-join равным количеству доступных процессоров. (Runtime.availableProcessors). Эту конфигурацию можно изменить, установив один (или несколько) из следующих атрибутов виртуальной машины:

  • scala.concurrent.context.minThreads — по умолчанию Runtime.availableProcessors
  • scala.concurrent.context.numThreads — может быть числом или множителем (N) в форме «xN»; по умолчанию — Runtime.Доступно Процессоры
  • scala.concurrent.context.maxThreads — по умолчанию Runtime.availableProcessors

Уровень параллелизма будет установлен на numThreads , пока он остается в пределах [minThreads; maxThreads] .

Как указано выше, ForkJoinPool может увеличить количество потоков сверх своего parallelismLevel при наличии блокирующих вычислений. Как объясняется в API ForkJoinPool , это возможно только в том случае, если пул явно уведомлен:

  импорт scala.одновременный. будущее
импортировать scala.concurrent.forkjoin._

// следующее эквивалентно `implicit val ec = ExecutionContext.global`
импорт ExecutionContext.Implicits.global

Будущее {
  ForkJoinPool.managedBlock (
    new ManagedBlocker {
       var done = false

       def block (): Boolean = {
         пытаться {
           myLock.lock ()
           // ...
         } наконец-то {
          сделано = правда
         }
         правда
       }

       def isReleasable: Boolean = done
    }
  )
}
  

К счастью, параллельный пакет предоставляет удобный способ сделать это:

  импорт scala.одновременный. будущее
импортировать scala.concurrent.blocking

Будущее {
  blocking {
    myLock.lock ()
    // ...
  }
}
  

Обратите внимание, что блокирует — это общая конструкция, которая будет более подробно рассмотрена ниже.

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

  неявный val ec = ExecutionContext.global

для (i <- от 1 до 32000) {
  Будущее {
    blocking {
      Thread.sleep (999999)
    }
  }
}
  

Если вам нужно обернуть длительные операции блокировки, мы рекомендуем использовать выделенный ExecutionContext , например, обернув Java Executor .

Адаптация Java Executor

Использование контекста выполнения .fromExecutor , вы можете обернуть Java Executor в ExecutionContext . Например:

  ExecutionContext.fromExecutor (новый ThreadPoolExecutor (/ * ваша конфигурация * /))
  

Контекст синхронного выполнения

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

  val currentThreadExecutionContext = ExecutionContext.fromExecutor (
  new Executor {
    // Не делайте этого!
    def выполнить (runnable: Runnable) {runnable.бегать() }
})
  

Этого следует избегать, поскольку это вносит недетерминизм в исполнение вашего будущего.

  Future {
  сделай что-нибудь
} (ExecutionContext.global) .map {
  doSomethingElse
} (currentThreadExecutionContext)
  

Вызов doSomethingElse может выполняться либо в потоке doSomething , либо в основном потоке, и, следовательно, быть асинхронным или синхронным. Как объясняется здесь, обратный вызов не должен быть обоими.

Фьючерс

A Future - это объект, содержащий значение, которое может стать доступным в какой-то момент.Это значение обычно является результатом другого вычисления:

  1. Если вычисление еще не завершено, мы говорим, что Future - это не завершено.
  2. Если вычисление завершено со значением или с исключением, мы говорим, что Future - это завершено .

Заполнение может быть одной из двух форм:

  1. Когда Future завершается со значением, мы говорим, что будущее было успешно завершено с этим значением.
  2. Когда Future завершается с исключением, созданным вычислением, мы говорим, что Future был неудачным с этим исключением.

A Future имеет важное свойство, которое может быть присвоено только один раз. Как только объекту Future присваивается значение или исключение, он становится фактически неизменяемый - он никогда не может быть перезаписан.

Самый простой способ создать объект будущего - вызвать объект Future.применить метод, который запускает асинхронное вычисление и возвращает будущее, содержащее результат этого вычисления. Результат становится доступным, когда завершится будущее.

Обратите внимание, что Future [T] - это тип, который обозначает будущие объекты, тогда как Future.apply - это метод, который создает и планирует асинхронный вычисление, а затем возвращает будущий объект, который будет завершен с результатом этого вычисления.

Лучше всего это показать на примере.

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

  импорт scala.concurrent._
импорт ExecutionContext.Implicits.global

val session = socialNetwork.createSessionFor ("пользователь", учетные данные)
val f: Будущее [Список [Друг]] = Будущее {
  session.getFriends ()
}
  

Выше мы сначала импортируем содержимое файла scala .одновременный пакет чтобы сделать видимым тип Future . Мы скоро объясним второй импорт.

Затем мы инициализируем переменную сеанса, которую будем использовать для отправки запросы к серверу, используя гипотетический createSessionFor метод. Для получения списка друзей пользователя запрос должен быть отправлен по сети, что может занять много времени. Это иллюстрируется вызовом метода getFriends , который возвращает List [Friend] .Чтобы лучше использовать ЦП до получения ответа, мы не должны заблокировать остальную часть программы - это вычисление должно быть запланировано асинхронно. Метод Future.apply делает именно это - он выполняет указанный вычислительный блок одновременно, в этом случае отправка запрос к серверу и ожидание ответа.

Список друзей станет доступен в будущем f как только сервер отвечает.

Неудачная попытка может привести к исключению.В в следующем примере значение сеанса неверно инициализировано, поэтому вычисление в блоке Future вызовет исключение NullPointerException . Этот будущий f затем завершается неудачно с этим исключением вместо успешного завершения:

  val session = null
val f: Будущее [Список [Друг]] = Будущее {
  session.getFriends
}
  

Строка import ExecutionContext.Implicits.global выше import глобальный контекст выполнения по умолчанию.Контексты выполнения выполняют переданные им задачи и вы можете рассматривать контексты выполнения как пулы потоков. Они необходимы для метода Future.apply , потому что они управляют тем, как и когда выполняется асинхронное вычисление. Вы можете определить свои собственные контексты выполнения и использовать их с Future , но пока достаточно знать, что вы можете импортировать контекст выполнения по умолчанию, как показано выше.

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

  val firstOccurrence: Future [Int] = Future {
  val source = scala.io.Source.fromFile ("myText.текст")
  source.toSeq.indexOfSlice ("myKeyword")
}
  

Обратный звонок

Теперь мы знаем, как запустить асинхронное вычисление для создания нового будущее значение, но мы не показали, как использовать результат, когда он становится доступным, чтобы мы могли сделать с ним что-нибудь полезное. Нас часто интересует результат вычисления, а не только его побочные эффекты.

Во многих будущих реализациях, как только клиент будущего заинтересуется в результате ему приходится блокировать свои собственные вычисления и ждать, пока не завершится будущее - только тогда он сможет использовать значение будущего для продолжения собственных вычислений.Хотя это разрешено API Scala Future , как мы покажем позже, с точки зрения производительности лучший способ сделать это - полностью неблокирующий способ, зарегистрировав обратный вызов на будущее. Этот обратный вызов вызывается асинхронно после завершения future. Если future уже было выполнено при регистрации обратного вызова, то обратный вызов может выполняться либо асинхронно, либо последовательно на та же нить.

Самая общая форма регистрации обратного вызова - использование onComplete , который принимает функцию обратного вызова типа Try [T] => U .Обратный вызов применяется к значению типа Success [T] , если будущее завершается успешно, или до значения типа Отказ [T] иначе.

Try [T] похож на Option [T] или Либо [T, S] , поскольку это монада потенциально хранящий значение некоторого типа. Однако он был специально разработан для хранения стоимости или какой-то метательный объект. Если опция [T] может быть либо значением (например, Some [T] ), либо не иметь значения вообще (т.е. Нет ), Попытка [T] - это Успех [T] , когда он содержит значение и иначе Ошибка [T] , которая содержит исключение. Отказ [T] держит больше информации, чем просто Нет , объяснив, почему значение не там. В то же время вы можете рассматривать Try [T] как специальную версию. из Либо [Throwable, T] , специализированный для случая, когда левый значение - Бросок .

Возвращаясь к нашему примеру с социальной сетью, предположим, что мы хотим получить список наших последних сообщений и отобразить их на экране.Мы делаем это, вызывая метод getRecentPosts , который возвращает a List [String] - список последних текстовых сообщений:

  import scala.util. {Success, Failure}

val f: Future [List [String]] = Future {
  session.getRecentPosts
}

f onComplete {
  case Success (posts) => for (post <- posts) println (сообщение)
  case Failure (t) => println («Произошла ошибка:» + t.getMessage)
}
  

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

  val f: Future [List [String]] = Future {
  session.getRecentPosts
}

f foreach {posts =>
  for (сообщение <- сообщений) println (сообщение)
}
  

Future s обеспечивают чистый способ обработки только неудачных результатов с использованием сбой проекция, которая преобразует сбой [Throwable] в Успех [Метательный] . Пример этого приведен в раздел о прогнозах ниже.

Возвращаясь к предыдущему примеру с поиском первого появление ключевого слова, вы можете распечатать позицию ключевого слова на экран:

  val firstOccurrence: Future [Int] = Future {
  val source = scala.io.Source.fromFile ("myText.txt")
  source.toSeq.indexOfSlice ("myKeyword")
}

firstOccurrence onComplete {
  case Success (idx) => println ("Ключевое слово сначала появляется в позиции:" + idx)
  case Failure (t) => println ("Не удалось обработать файл:" + t.getMessage)
}
  

Методы onComplete и foreach имеют тип результата Unit , который означает призывы из этих методов нельзя связать. Обратите внимание, что этот дизайн сделан намеренно, чтобы не предполагать, что прикованный вызовы могут подразумевать распоряжение об исполнении зарегистрированного обратные вызовы (обратные вызовы, зарегистрированные в одном и том же будущем, неупорядочены).

Тем не менее, теперь мы должны прокомментировать , когда точно обратный вызов называется.Поскольку для этого требуется, чтобы значение было доступно в будущем, он может быть вызван только после того, как будущее завершится. Однако нет гарантии, что он будет вызван потоком. который завершил будущее или поток, создавший обратный вызов. Вместо этого обратный вызов выполняется некоторым потоком в какой-то момент после завершения будущего объекта. Мы говорим, что обратный вызов выполняется в конечном итоге .

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

  @volatile var totalA = 0

val text = Future {
  "na" * 16 + "БЭТМЕН !!!"
}

текст foreach {txt =>
  totalA + = txt.count (_ == 'a')
}

текст foreach {txt =>
  totalA + = txt.количество (_ == 'A')
}
  

Выше два обратных вызова могут выполняться один за другим в в этом случае переменная totalA содержит ожидаемое значение 18 . Однако они также могут выполняться одновременно, поэтому всего А может в конечном итоге будет либо 16 , либо 2 , поскольку + = не является атомарным операция (т.е. состоит из этапов чтения и записи, которые могут произвольно чередовать с другими операциями чтения и записи).

Для полноты семантика обратных вызовов приведена здесь:

  1. Регистрация onComplete обратного вызова на будущее гарантирует, что соответствующее закрытие вызывается после будущее со временем завершится.

  2. Регистрация для каждого обратного вызова имеет то же семантика как onComplete , с той разницей, что закрытие вызывается только если будущее завершится успешно.

  3. Регистрация обратного вызова на будущее, которое уже выполнено в конечном итоге приведет к выполнению обратного вызова (как подразумевается 1).

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

  5. В случае, если некоторые из обратных вызовов вызывают исключение, другие обратные вызовы выполняются независимо.

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

  7. После выполнения обратные вызовы удаляются из будущего объекта, таким образом, имея право на GC.

Функциональная композиция и понимание

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

  val rateQuote = Future {
  connection.getCurrentValue (долл. США)
}

rateQuote foreach {quote =>
  val Purchase = Future {
    if (isProfitable (quote)) connection.buy (сумма, котировка)
    иначе выбросить новое исключение («невыгодно»)
  }

  купить за каждый {amount =>
    println («Куплено» + сумма + «долл. США»)
  }
}
  

Начнем с создания будущего курса Цитата , который получает текущий обмен показатель.После этого значение получено с сервера и будущее успешно завершено, вычисления продолжаются в обратном вызове foreach , и мы готов решать покупать или нет. Поэтому мы создаем еще одну фьючерсную покупку , которая принимает решение о покупке, только если это выгодно. для этого, а затем отправляет запрос. Наконец, как только покупка будет завершена, мы печатаем уведомление. на стандартный вывод.

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

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

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

Давайте перепишем предыдущий пример, используя комбинатор map :

  val rateQuote = Future {
  connection.getCurrentValue (долл. США)
}

val покупка = rateQuote map {quote =>
  if (isProfitable (quote)) connection.buy (сумма, котировка)
  иначе выбросить новое исключение («невыгодно»)
}

купить за каждый {amount =>
  println («Куплено» + сумма + «долл. США»)
}
  

Используя map на rateQuote , мы устранили один обратный вызов foreach и, что еще более важно, гнездование.Если мы теперь решим продать другую валюту, достаточно использовать карта на покупка снова.

Но что произойдет, если isProfitable вернет false , что приведет к исключение, которое нужно выбросить? В этом случае покупка не удалась за этим исключением. Кроме того, представьте, что соединение прервано и что getCurrentValue вызвал исключение, не давая rateQuote . В этом случае у нас не будет никакой ценности для сопоставления, поэтому покупка будет автоматически потерпеть неудачу с тем же исключением, что и для rateQuote .

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

Одной из целей разработки фьючерсов было обеспечение возможности их использования в for-computing.По этой причине фьючерсы также имеют flatMap и withFilter комбинаторы. Метод flatMap принимает функцию, отображающую значение в новое будущее г , а затем возвращает будущее, которое завершено однажды г укомплектован.

Предположим, мы хотим обменять доллары США на швейцарские франки. (CHF). Нам нужно получить котировки для обеих валют, а затем выбрать покупка по обеим котировкам. Вот пример использования flatMap и withFilter в for-complation:

  val usdQuote = Будущее {соединение.getCurrentValue (USD)}
val chfQuote = будущее {connection.getCurrentValue (CHF)}

val покупка = для {
  usd <- usdQuote
  chf <- chfQuote
  если isProfitable (usd, chf)
} yield connection.buy (сумма, швейцарские франки)

купить за каждый {amount =>
  println («Куплено» + сумма + «CHF»)
}
  

покупка фьючерс завершается только один раз как usdЦитата и chfQuote заполнены - это зависит от значений обоих этих фьючерсов, поэтому его собственные вычисления не могут начаться ранее.

Вышеупомянутое для понимания переведено на:

  val Purchase = usdQuote flatMap {
  usd =>
  chfQuote
    .withFilter (chf => isProfitable (usd, chf))
    .map (chf => connection.buy (сумма, chf))
}
  

, что немного труднее понять, чем понимание, но мы анализируем его, чтобы лучше понять работу flatMap . Операция flatMap отображает собственное значение в какое-то другое будущее. Как только это другое будущее будет завершено, итоговое будущее дополняется своим значением.В нашем примере flatMap использует значение usdQuote future сопоставить значение chfQuote в третьем будущем, которое отправляет запрос на покупку определенного количества швейцарских франков. В результате будущая покупка будет завершена только один раз в эту треть будущее возвращено из карта завершена.

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

Фильтр Комбинатор создает новое будущее, которое содержит значение первоначального будущего, только если оно удовлетворяет некоторому предикату. В противном случае, новое будущее терпит неудачу с NoSuchElementException . Для фьючерсов вызов фильтра имеет тот же эффект, что и вызов withFilter .

Связь между комбинатором сбора и фильтром аналогична взаимосвязи этих методов в API коллекций.

Так как признак Future концептуально может содержать два типа значений (результаты вычислений и исключения), существует потребность в комбинаторы, обрабатывающие исключения.

Предположим, что на основании курса Цитата мы решаем купить некий количество. Метод connection.buy требует суммы для покупки и ожидаемого цитата . Возвращает купленную сумму. Если Цитата тем временем изменилась, она выдаст QuoteChangedException и ничего не купит.Если мы хотим, чтобы наши future, чтобы содержать 0 вместо исключения, мы используем восстановление комбинатор:

  val покупка: Future [Int] = rateQuote map {
  quote => connection.buy (сумма, котировка)
} recovery {
  case QuoteChangedException () => 0
}
  

Комбинатор восстановления создает новое будущее, сохраняющее то же самое результат как исходное будущее, если оно выполнено успешно. Если бы это было не тогда аргумент частичной функции применяется к Throwable что подвело изначальное будущее.Если он отображает Throwable на некоторые значение, то новое будущее успешно завершено с этим значением. Если частичная функция не определена на этом Throwable , то Получившееся будущее не удалось с тем же Throwable .

Комбинатор восстановления с создает новое будущее, в котором тот же результат, что и исходное будущее, если оно выполнено успешно. В противном случае частичная функция применяется к Throwable , который провалил первоначальное будущее.Если он отображает Throwable на какое-то будущее, тогда это будущее дополняется результатом этого будущего. Его отношение к recovery аналогично тому, как у flatMap to map .

Combinator fallback К создает новое будущее, в котором хранится результат этого будущего, если он был завершен успешно, или иначе успешный результат спора будущее. В случае, если оба эти будущее и аргумент о будущем терпят неудачу, новое будущее дополняется исключение из этого будущего, как в следующем примере, который пытается напечатать стоимость в долларах США, но печатает стоимость швейцарского франка в в случае невозможности получения долларовой стоимости:

  val usdQuote = Future {
  подключение.getCurrentValue (долл. США)
} карта {
  usd => "Значение:" + usd + "$"
}
val chfQuote = Future {
  connection.getCurrentValue (швейцарский франк)
} карта {
  chf => "Значение:" + chf + "CHF"
}

val anyQuote = usdQuote fallbackTo chfQuote

anyQuote foreach {println (_)}
  

Комбинатор и затем используется исключительно для побочных эффектов. Он возвращает новое будущее с точно таким же результатом, что и текущее будущее, независимо от того, провалилось нынешнее будущее или нет. Как только текущее будущее завершается результатом, закрытие соответствует и затем вызывается , а затем новое будущее завершено с тем же результатом, что и это будущее.Это гарантирует, что несколько вызовов and Затем упорядочиваются вызовы , как в следующем примере который хранит последние сообщения из социальной сети в изменяемом наборе а затем выводит все сообщения на экран:

  val allPosts = mutable.Set [String] ()

Будущее {
  session.getRecentPosts
} а потом {
  case Success (posts) => allPosts ++ = posts
} а потом {
  case _ =>
  очистить все()
  для (сообщение <- allPosts) рендер (сообщение)
}
  

Таким образом, комбинаторы фьючерсов являются чисто функциональными.Каждый комбинатор возвращает новое будущее, связанное с будущее это было производным от.

Прогнозы

Чтобы включить for-complation для результата, возвращенного как исключение, фьючерсы также имеют прогнозы. Если первоначальное будущее терпит неудачу, сбой проекция возвращает будущее, содержащее значение типа Метательный . Если исходное будущее преуспеет, не удалась проекция завершается с ошибкой NoSuchElementException . Ниже приведен пример который выводит исключение на экран:

  val f = будущее {
  2/0
}
для (exc <- f.не удалось) println (exc)
  

Для понимания в этом примере переводится на:

  f.failed.foreach (exc => println (exc))
  

Поскольку f здесь неуспешен, закрытие регистрируется для обратный вызов foreach для недавно успешного Future [Throwable] . В следующем примере ничего не выводится на экран:

  val g = Future {
  4/2
}
for (exc <- g.failed) println (exc)
  

Расширение фьючерсов

Планируется поддержка расширения Futures API дополнительными служебными методами.Это позволит внешним фреймворкам предоставлять более специализированные утилиты.

Блокировка

Futures обычно асинхронны и не блокируют основные потоки выполнения. Однако в некоторых случаях необходимо заблокировать. Мы различаем две формы блокировки потока выполнения: вызов произвольного кода, который блокирует поток из будущего, и блокирование извне другого будущего, ожидая, пока это будущее не будет завершено.

Блокировка внутри будущего

Как видно из глобального ExecutionContext , можно уведомить ExecutionContext о блокирующем вызове с помощью блокирующей конструкции .Однако реализация находится на полное усмотрение ExecutionContext . В то время как некоторые ExecutionContext , такие как ExecutionContext.global реализовать блокировку с помощью ManagedBlocker , некоторые контексты выполнения, такие как фиксированный пул потоков:

  ExecutionContext.fromExecutor (Executors.newFixedThreadPool (x))
  

ничего не сделает, как показано ниже:

  неявное значение ec = ExecutionContext.fromExecutor (
                    Executors.newFixedThreadPool (4))
Будущее {
  блокирование {blockingStuff ()}
}
  

Имеет тот же эффект, что и

  Будущее {blockingStuff ()}
  

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

Блокировка вне будущего

Как упоминалось ранее, категорически не рекомендуется блокировать будущее. ради производительности и для предотвращения тупиковых ситуаций.Обратные вызовы и комбинаторы фьючерсов - предпочтительный способ использования их результатов. Однако в определенных ситуациях может потребоваться блокировка, которая поддерживается API Futures and Promises.

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

  импорт scala.concurrent._
импортировать scala.concurrent.duration._

def main (args: Array [String]) {
  val rateQuote = Future {
    подключение.getCurrentValue (долл. США)
  }

  val покупка = rateQuote map {quote =>
    if (isProfitable (quote)) connection.buy (сумма, котировка)
    иначе выбросить новое исключение («невыгодно»)
  }

  Await.result (покупка, 0 наносекунд)
}
  

В случае сбоя в будущем вызывающему перенаправляется исключение, с которым рушится будущее. Это включает сбойный проекция - блокировка на ней приводит к NoSuchElementException выбрасывается, если исходное будущее завершено успешно.

Также можно позвонить по номеру Await.ready ждет, пока будущее не станет завершено, но не получает результат. Таким же образом, позвонив этот метод не вызовет исключения, если будущее не удастся.

Признак Future реализует признак Awaitable с помощью методов готово () и результат () . Эти методы нельзя вызвать напрямую клиентами - они могут быть вызваны только контекстом выполнения.

Исключения

Когда асинхронные вычисления вызывают необработанные исключения, фьючерсы связанные с этими вычислениями не работают.Неудачный фьючерсный магазин экземпляр Throwable вместо значения результата. Future s обеспечивают провалил метод проецирования , который позволяет этому Throwable быть расценивается как значение успеха еще Future . Следующие специальные исключения обрабатываются по-разному:

  1. scala.runtime.NonLocalReturnControl [_] - это исключение содержит значение связанные с возвращением. Обычно возвращают конструкции в методе тела переводятся в и бросают с за этим исключением.Вместо того сохраняя это исключение, связанное значение сохраняется в будущем или в обещании.

  2. ExecutionException - сохраняется, когда вычисление не удается из-за необработанное InterruptedException , Ошибка или scala.util.control.ControlThrowable . В этом случае ExecutionException имеет в качестве причины необработанное исключение. Обоснование за этим стоит предотвращение распространения критических и связанных с потоком управления исключения обычно не обрабатываются клиентским кодом и в то же время информируют клиент, у которого в будущем вычисление не удалось.

Неустранимые исключения (как определено в NonFatal ) повторно генерируются в потоке, выполняющем неудачное асинхронное вычисление. Это информирует код, управляющий выполнением нити проблемы и позволяет при необходимости быстро выйти из строя. Увидеть Несмертельный для более точного описания семантики.

Обещания

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

Хотя фьючерсы определены как тип объекта-заполнителя, доступного только для чтения Создано для результата, которого пока не существует, можно подумать об обещании как записываемый контейнер с одним назначением, который завершает будущее. То есть обещание можно использовать для успешного завершения будущее со значением (путем «выполнения» обещания) с использованием успеха метод. И наоборот, обещание также можно использовать для завершения будущего. за исключением случаев невыполнения обещания, используя метод fail .

Обещание p. завершает будущее, возвращенное p.future . Это будущее конкретно к обещанию р . В зависимости от реализации может быть так, что p.future eq p .

Рассмотрим следующий пример производитель-потребитель, в котором одно вычисление производит значение и передает его другому вычислению, которое потребляет это значение. Эта передача значения выполняется с помощью обещания.

  импорт scala.одновременно. {Future, Promise}
импортировать scala.concurrent.ExecutionContext.Implicits.global

val p = Обещание [T] ()
val f = p.future

val Manufacturer = Future {
  val r = произвести что-то ()
  p успех r
  continueDoingSomethingUnrelated ()
}

val consumer = Future {
  startDoingSomething ()
  f foreach {r =>
    doSomethingWithResult ()
  }
}
  

Здесь мы создаем обещание и используем его метод future для получения Будущее , которое оно завершает. Затем мы начинаем два асинхронных вычисления.Первый выполняет некоторые вычисления, в результате чего получается значение r , который затем используется для завершения будущего f , выполняя Обещание р . Второй выполняет некоторые вычисления, а затем считывает результат r готового будущего ф . Обратите внимание, что потребитель может получить результат до того, как задача производителя завершит выполнение метод continueDoingSomethingUnrelated () .

Как упоминалось ранее, обещания имеют семантику однократного присваивания.В качестве такие, их можно выполнить только один раз. Вызов успеха на обещание, которое уже было выполнено (или не удалось), вызовет Исключение IllegalStateException .

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

  val p = Promise [T] ()
val f = p.future

val Manufacturer = Future {
  val r = someComputation
  если (isInvalid (r))
    p сбой (новое исключение IllegalStateException)
  else {
    val q = doSomeMoreComputation (r)
    p успех q
  }
}
  

Здесь производитель вычисляет промежуточный результат r и проверяет действительно ли это.В случае, если он недействителен, он не обещание, выполнив обещание р с исключением. В этом случае, связанное будущее f не удалось. В противном случае производитель продолжает свои вычисления и, наконец, завершает будущее f с действительный результат, выполнив обещание р .

Обещания также могут быть выполнены с помощью метода завершения , который требует потенциальное значение Попробуйте [T] - либо неудачный результат типа Failure [Throwable] , либо успешный результат типа Success [T] .

Аналогично успех , вызов неудачи и завершают по обещанию, которое уже было завершено, вызовет исключение IllegalStateException .

Одно приятное свойство программ, написанных с использованием обещаний с операциями описанные до сих пор и фьючерсы, составленные с помощью монадических операций без побочных эффектов заключается в том, что эти программы детерминированный. Детерминированный здесь означает, что при условии отсутствия исключения бросается в программу, результат программы (значения наблюдаются в фьючерсах) всегда будет одинаковым, независимо от исполнения расписание параллельной программы.

В некоторых случаях клиент может захотеть выполнить обещание, только если оно еще не завершено (например, есть несколько HTTP-запросов, выполняется из нескольких разных фьючерсов, и клиента интересует только в первом HTTP-ответе - соответствует первому будущему выполнить обещание). По этим причинам методы tryComplete , trySuccess и tryFailure существуют по обещанию. Клиент должен быть знайте, что использование этих методов приводит к программам, которые детерминированный, но зависит от графика выполнения.

Метод completeWith завершает обещание другим будущее. После того, как будущее завершено, обещание завершается с результат этого будущего тоже. Следующая программа печатает 1 :

  val f = будущее {1}
val p = Обещание [Int] ()

p в комплекте с f

p.future foreach {x =>
  println (x)
}
  

При невыполнении обещания за исключением трех подтипов Throwable s обрабатываются специально. Если Throwable , использованный для нарушения обещания, Scala.runtime.NonLocalReturnControl , то обещание завершается с соответствующее значение. Если Throwable , использованный для нарушения обещания, экземпляр Ошибка , InterruptedException или scala.util.control.ControlThrowable , Throwable обернут как причина нового ExecutionException , которое, в свою очередь, не работает обещание.

Используя обещания, конструируют метод onComplete для фьючерсов и future . вы можете реализовать любой из комбинаторов функциональной композиции, описанных ранее.Предположим, вы хотите реализовать новый комбинатор сначала , который принимает два фьючерса f и g и производит третий фьючерс, который завершается либо f или g (в зависимости от того, что наступит раньше), но только при условии, что это успешно.

Вот пример того, как это сделать:

  def first [T] (f: Future [T], g: Future [T]): Future [T] = {
  val p = Обещание [T]

  f foreach {x =>
    p.trySuccess (x)
  }

  g foreach {x =>
    п.trySuccess (x)
  }

  p.future
}
  

Обратите внимание, что в этой реализации, если ни f , ни g не завершаются успешно, то first (f, g) никогда не завершается (ни со значением, ни с исключением).

Коммунальные услуги

Для упрощения обработки времени в параллельных приложениях scala.concurrent вводит абстракцию Duration . Продолжительность не должно быть еще одним общая абстракция времени. Он предназначен для использования с библиотеками параллелизма и находится в scala.одновременный пакет .

Продолжительность - это базовый класс, представляющий отрезок времени. Он может быть как конечным, так и бесконечным. Конечная продолжительность представлена ​​классом FiniteDuration , который построен из длины Long и java.util.concurrent.TimeUnit . Бесконечная длительность, также увеличенная с Продолжительность , существуют только в двух экземплярах: Duration.Inf и Duration.MinusInf . Библиотека также предоставляет несколько подклассов Duration для целей неявного преобразования, и они должны не использоваться.

Аннотация Продолжительность содержит методы, которые позволяют:

  1. Преобразование в различные единицы времени ( в нано , в Micros , в миллис , toSeconds , toMinutes , toHours , toDays and toUnit (unit: TimeUnit) ).
  2. Сравнение длительностей ( <, <= , > и > = ).
  3. Арифметические операции ( + , - , * , / и unary_- ).
  4. Минимум и максимум между этой продолжительностью и той, которая указана в аргументе ( мин. , макс. ).
  5. Проверка, является ли продолжительность конечной ( isFinite ).

Продолжительность можно создать следующими способами:

  1. Неявно из типов Int и Long , например, val d = 100 миллис .
  2. Путем передачи длины Long и java.util.concurrent.TimeUnit , например, val d = Duration (100, МИЛЛИСЕКУНД) .
  3. Путем синтаксического анализа строки, представляющей период времени, например, val d = Duration ("1,2 мкс") .

Duration также предоставляет неприменимых методов, поэтому его можно использовать в конструкциях сопоставления с образцом. Примеры:

  импорт scala.concurrent.duration._
import java.util.concurrent.TimeUnit._

// создание экземпляра
val d1 = Duration (100, МИЛЛИСЕКУНД) // от Long и TimeUnit
val d2 = Duration (100, "миллис") // от Long и String
val d3 = 100 миллисекунд // неявно из Long, Int или Double
val d4 = Продолжительность ("1.2 мкс ") // из String

// сопоставление с образцом
val Duration (длина; единица измерения) = 5 миллисекунд
  

% PDF-1.3 % 2 0 obj > ручей BT / F1 1 Тс 17,2154 0 0 17,2154 128,16 647,22 тм 0 г / GS1 GS 0,0006 Тс 0 Tw [(On) -304.1 (the) -304 (U) 3.8 (tilit) 27.1 (y) -302.3 (o) -0.8 (f) -295.2 (P) 1.5 (riv) 46.2 (a) -0.8 (cy- Сохранение) -293,6 (H) 3,8 (изограммы)] TJ / F2 1 Тс 11,9552 0 0 11,9552 100,2 616,98 тм -0,0013 Тс [(Sh) 30,8 (uc) 32,4 (hi) -351,6 (Cha) 26,6 (w) 3,3 (la) -2302,1 (Cyn) 30,8 (t) -1,9 (hia) -344,8 (D) -6.3 (w) 33,4 (o) -3,6 (rk) -2295 (F) 75,6 (r) -1,9 (ank) -327,7 (M) 2,6 (cSherry) -2305,1 (Kunal) -331,6 (T) 83,6 (alw) 33,4 (a) -3,6 (r)] ТДж / F3 1 Тс 9,9626 0 0 9,9626 273,24 576,66 тм -0,0036 Тс [(Abs) -7,7 (t) -2 (ract)] TJ / F4 1 Тс -15,9596 -1,8308 TD -0,0008 Тс [(In) -445 (а) -440,3 (перепись,) - 469,8 (индивидуумы) -6,7 (l) -445,7 (r) -6,6 (esp) -23,4 (o) -6,7 (nden) 24,8 (t) 2,6 (s) -425,4 (g) -6,7 (iv) 21,1 (e) -435,6 (p) 0,7 (r) -6,6 (i) -0,1 (v) 57,2 (a) -6,7 (te) -447,7 (информация) -6.7 (r) -6.6 (m) 1.4 (a) -6.7 (t) 2.6 (io) -6.7 (n) -432.9 (t) 2.6 (o) -440.3 (a) -452.4 (tr) -6.6 ( usted) -432.9 (p) 0,7 (a) -6,7 (r) -6,6 (t) 26,7 (y) -436,6 (\ (the)] TJ -1,5056 -1,1925 TD -0,0007 Тс [(перепись) -256,7 (bur) -6,5 (ea) -6,6 (u \),) - 277 (w) -1,2 (ho) -259,5 (публикует) -268,7 (a) -259,5 (sa) -6,6 ( нитзированный) -252,2 (v) 21,2 (e) -1,9 (r) -6,5 (s) -3,7 (io) -6,6 (n) -240,1 (o) -6,6 (f) -261,3 (t) 2,7 (he) -266.9 (da) -6.6 (ta) -6.6 (.) - 409.5 (T) -1.2 (her) -6.5 (e) -254.9 (a) -6.6 (r) -6.5 (e) -254.9 (t) 26,8 (ш) 22,9 (о) -259,5 (фундамент) -6,6 (мужчины) 24,9 (т) 2,7 (а) -6,6 (ли)] TJ 0 -1,2045 TD -0,0005 Тс [(co) -6,4 (nicting) -259,3 (r) -6,3 (эквир) -6,3 (e) -1,7 (мужчины) 25,1 (t) 2,9 (s:) - 397,2 (pr) -6.3 (iv) 57.5 (a) -6.4 (c) -1.7 (y) -243.6 (f) 3.9 (o) -6.4 (r) -259.3 (the) -254.7 (r) -6.3 (esp) -23.1 ( о) -6,4 (ндэн) 25,1 (т) 2,9 (с) -244,4 (а) -6,4 (нд) -252 (утилит) 27 (у) -267,7 (о) -6,4 (ж) -249 (т) 2,9 (он) -266,7 (sa) -6,4 (нитзированный) -252 (da) -6,4 (ta) -6,4 (.) - 409,3 (N) 2,7 (o) -6,4 (t) 2,9 (e)] TJ 0 -1.1925 TD 0,0042 Тс [(t) 7,6 (h) 5,7 (at) -329,6 (t) 7,6 (h) 5,7 (i) 4,9 (s) -336,1 (f) 8,6 (r) -1,6 (am) 6,4 (ew) 27,8 (ork) ) -311,2 (i) 4,9 (s) -324,1 (i) 4,9 (n) 5,7 (h) 5,7 (e) 3 (ren) 29,8 (t) 7,6 (l) 4,9 (y) -323,2 (n) 5,7 ( o) -1,7 (n) 5,7 (i) 4,9 (n) 29,8 (t) 7,6 (eract) 7,6 (i) 4,9 (v) 26,1 (e) 3 (.)] TJ 1.5056 -1,2045 ТД 0,0012 Тс [(Recen) 26,8 (t) 4,6 (l) 1,9 (y) 83,3 (,) - 299,2 (Cha) 19,4 (w) 0,7 (la) -293,8 (et) -296,5 (al)] TJ 9,7566 0 TD 0,002 Тс [(.) - 430,9 (\ () 5,4 (TCC2005 \)) - 271,6 (нач.) 5,4 (iat) 5,4 (e) 0,8 (d) -297,6 (a) -305 (t) 5,4 (h) 3,5 (eoret) ) 5,4 (и) 2,7 (кал) -286,3 (с) -1 (т) 5,4 (уды) -301,3 (из) -294,7 (т) 5,4 (з) 3,5 (д) -300,4 (перепись) -290,1 (п ) 3.5 (проблема)] TJ -11,2622 -1,2045 ТД -0,0005 Тс [(a) -6.4 (n) 1 (d) -227.9 (p) 1 (r) -6.3 (e) -1.7 (sen) 25.1 (t) 2.9 (ed) -215.8 (a) -6.4 (n) -227.9 (дюйм) 25.1 (туитив) 21.4 (ely) -231.6 (a) -6.4 (pp) -23.1 (ea) -6.4 (ling) -223.2 (d) 1 (enitio) -6.4 (n) -227.9 (o) -6.4 (f) -224.9 (pr) -6.3 (iv) 57.5 (a) -6.4 (c) -1.7 (y) -219.5 ( b) 1 (r) -6,3 (e) -1,7 (a) -6,4 (c) 22,4 (h,) - 240,7 (ca) -6,4 (lled)] TJ / F5 1 Тс 31,486 0 TD -0,005 Тс [(является) -5,7 (олат) -10 (ион)] ТДж / F4 1 Тс 3.6858 0 TD 0,0031 Тс [(,) - 273.2 (t) 6.5 (oget) 6.5 (h) 4.6 (er)] TJ -35,1718 -1,1925 ТД 0,0014 Тс [(с) -370,5 (a) -353,8 (f) 5,8 (нормальный) -347,2 (s) -1,6 (p) -21,2 (ecication) -346,4 (o) -4,5 (f) -355,5 (w) 0,9 ( hat) -356,5 (i) 2,1 (s) -363 (r) -4,4 (экв.)] TJ 19,8383 0 TD 0,001 Тс [(г) -346,8 (ж) 5,4 (ром) -346,1 (а) -354,2 (данные) -366.2 (sanitiza)] TJ 9.8047 0 TD 0,0017 Тс [(тион) -346,1 (алгоритм:) - 479,4 (а) -4,2 (цесс)] TJ -29,6431 -1,2045 ТД -0,0007 Тс [(to) -392 (the) -387.4 (s) -3.7 (a) -6.6 (n) 0.8 (itized) -372.6 (da) -6.6 (ta) -380 (sho) -6.6 (u) 0.8 ( ld) -384,7 (нет) -6,6 (t) -370,7 (i) 0 (ncr) -6,5 (e) -1,9 (a) -6,6 (s) -3,7 (e) -363,3 (a) -6,6 (n ) -384,7 (а) -6,6 (дв) 21,2 (эр) -6,5 (ск) -6,6 (р) -6,5 (у) -2,9 (с) -341 (а) -6,6 (б) 0,8 (илилит) 26,8 (y) -388,3 (t) 2,7 (o) -380 (i) 0 (so) -6,6 (la) -6,6 (te) -375,3 (a) -6,6 (n) 24,9 (y) -376,3 (i) 0 (индивид) -6,6 (л.)] TJ Т * [(Они) -328 (а) -6,5 (л) 0,1 (так) -307,6 (шо) 17.6 (w) 23 (ed) -312,3 (tha) -6,5 (t) -322,4 (if) -321,4 (the) -327 (d) 0,9 (a) -6,5 (t) 2,8 (a) -319,7 (a) ) -6.5 (r) -6.4 (e) -315 (dr) -6.4 (a) 17.6 (w) -1.1 (n) -312.3 (unifo) -6.5 (r) -6.4 (m) 1.6 (ly) - 316 (фр) -6,4 (о) -6,5 (м) -323,6 (а) -319,7 (з) 0,9 (иг) -6,5 (hdimensio) -6,5 (на) -6,5 (л) -313 (з) 25 ( yp) -23,2 (er) -6,4 (куб.) -23,2 (e)] TJ 0 -1.1925 TD -0,0003 Тс [(затем) -336,1 (r) -6,1 (ecur) -6,1 (s) -3,3 (iv) 21,6 (e) -314,7 (h) 1,2 (isto) -6,2 (g) -6,2 (r) -6,1 ( а) -6,2 (м) -311,3 (sa) -6,2 (нитиза) -6,2 (tio) -6,2 (n) -324 (ca) -6,2 (n) -324 (p) 1,2 (r) -6,1 (e ) -1,5 (сер) -6,1 (в) 21,6 (д) -314,7 (п) 1.2 (r) -6,1 (i) 0,4 (v) 57,7 (a) -6,2 (cy) -327,7 (с) -336,1 (a) -331,4 (h) 1,2 (ig) -6,2 (h) -336,1 (p ) 1,2 (r) -6,1 (o) -6,2 (ba) -6,2 (билит) 27,2 (y) 81,8 (.)] TJ 1,5056 -1,2045 ТД -0,0013 Тс [(W) 87 (e) -436,1 (ex) -3,5 (тенденция) -421,4 (thes) -4,3 (e) -436,1 (r) -7,1 (es) -4,3 (ults) -425,9 (дюйм) -421,4) (s) -4,3 (e) -2,5 (v) 20,6 (e) -2,5 (r) -7,1 (a) -7,2 (l) -410,1 (w) 22,3 (a) 16,9 (y) -3,5 (s) -4,3 (.) - 711,2 (пихта) -7,1 (s) -4,3 (t,) - 446,2 (w) 22,3 (e) -424,1 (отклонение) 20,6 (e) -2,5 (lo) -7,2 (p) - 421,4 (a) -428,8 (мето) -31,3 (d) -433,4 (fo) -7,2 (r) -428,7 (c) -2,5 (o) -7,2 (м) 0,9 (установка)] TJ -1,5056 -1.1925 TD -0,0007 Тс [(a) -367,9 (p) 0,8 (r) -6,5 (i) 0 (v) 57,3 (a) -6,6 (cy -) - 4,6 (p) 0,8 (r) -6,5 (e) -1,9 (ser ) -6.5 (v) -2.9 (ing) -331.8 (h) 0.8 (isto) -6.6 (g) -6.6 (r) -6.5 (a) -6.6 (m) -347.8 (sa) -6.6 (nitiza) -6.6 (tio) -6.6 (n) -360.6 (o) -6.6 (f) -357.6 () - 6.6 (r) -6.5 (o) -6.6 (und) -355.9 (distr) -6.5 (i) 0 (butio) -6,6 (нс,) - 373,4 (s) -3,7 (uc) 22,2 (h) -360,6 (a) -6,6 (s) -353,1 (t) 2,7 (he) -375,3 (unifo) -6,6 ( r) -6,5 (м)] ТДж 0 -1,2045 TD [(distr) -6.5 (i) 0 (butio) -6.6 (n) -481 (o) 17.5 (v) 21.2 (e) -1.9 (r) -464.2 (a) -488.4 (high) -6.6 (h) ) 0,8 (-) - 4,6 (г) 0,8 (размер) -6,6 (п) 0,8 (а) -6.6 (l) -469,7 (ba) -6,6 (ll) -481,8 (o) -6,6 (r) -476,3 (сфера) -6,5 (e) -1,9 (.) - 879,2 (T) -1,2 (his) - 485,5 (p) 0,8 (r) -6,5 (o) -6,6 (blem) -468,2 (is) -485,5 (довольно) -483,7 (c) 22,2 (га) -6,6 (lleng) -6,6 (ing)] TJ Т * 0,0007 Тс [(b) -21.9 (ecause,) - 492.4 (unlik) 22.6 (e) -458.2 (f) 5.1 (or) -462.8 (the) -470.3 (h) 26.3 (yp) -21.9 (ercub) -21.9 ( e) -0,5 (,) - 492,4 (t) 4,1 (he) -470,3 (natu)] TJ 19,8624 0 TD -0,0006 Тс [(г) -6,4 (а) -6,5 (л) -445,5 (з) 0,9 (исто) -6,5 (г) -6,5 (г) -6,4 (а) -6,5 (м) -444 (о) 17,6 ( v) 21,3 (er) -452,1 (suc) 22,3 (h) -456,8 (a) -464,2 (d) 0,9 (istr) -6,4 (ibutio) -6.5 (n) -468,9 (m) 1,6 (a) 17,6 (y)] TJ -19,8624 -1,1925 TD -0,0009 Тс [(га) 17,3 (в) 21 (д) -399,6 (ло) -6,8 (нг) -404,3 (а) -6,8 (п) 0,6 (г) -409 (т) 2,5 (хин) -409 (клетки) -413,5 (tha) -6,8 (t) -407 (h) 24,7 (u) 0,6 (r) -6,7 (t) -407 (the) -411,7 (p) 0,6 (r) -6,7 (o) -30,9 ( о) -6,8 (е) -394 (о) -6,8 (е) -406 (пр) -6,7 (iv) 57,1 (а) -6,8 (в) -2,1 (у) 81,2 (.) - 662,6 (Вт) 87,4 (e) -411,7 (затем) -421 (dev) 21 (e) -2,1 (lo) -6,8 (p) -396,9 (t) 2,5 (ec) 22 (hniques) -401,4 (fo) -6,8 (r )] TJ 0 -1,2045 TD -0,0007 Тс [(r) -6,5 (a) -6,6 (ndo) -6,6 (mizing) -464,3 (the) -483,7 (h) 0,8 (isto) -6,6 (g) -6,6 (r) -6,5 (a) -6) .6 (м) -456,2 (co) -6,6 (nstr) -6,5 (uctio) -6,6 (n) 0,8 (s) -473,5 (b) -23,3 (o) -6,6 (t) 2,7 (h) -481 ( f) 3,7 (o) -6,6 (r) -476,3 (the) -471,7 (h) 24,9 (yp) -23,3 (er) -6,5 (куб) -23,3 (e) -483,7 (a) -6,6 (n) 0,8 (d) -469 (t) 2,7 (he) -483,7 (h) 24,9 (y) -2,9 (p) -23,3 (e) -1,9 (r) -6,5 (s) -3,7 (pher) -6,5 ( д) -1,9 (.)] ТДж Т * 0,004 Тс [(T) 3,5 (h) 5,5 (ese) -406,8 (p) -18,6 (erm) 6,2 (i) 4,7 (t) -414,1 (u) 5,5 (s) -408,6 (t) 7,4 (o) -411,4) (a) -1.9 (p) 5.5 (p) 5.5 (l) 4.7 (y) -407.7 (k) 1.8 (n) 5.5 (o) 22.2 (w) 3.5 (n) -392 (resu) 5.5 (l) 4,7 (t) 7,4 (s) -408,6 (f) 8,4 (или) -399,3 (ap) 5,5 (p) 5,5 (r) -1,8 (o) 22,2 (x) 1.8 (i) 4,7 (м) 6,2 (at) 7,4 (i) 4,7 (n) 5,5 (g) -387,3 (v) 62 (ari) 4,7 (o) -1,9 (u) 5,5 (s) -396,5 (qu ) 5,5 (ан) 29,6 (т) 7,4 (i) 4,7 (t) 7,4 (i) 4,7 (es) -408,6 (из) -401,1 (i) 4,7 (n) 29,6 (t) 7,4 (e) 2,8 (остальное )] TJ 0 -1.1925 TD -0,0009 Тс [(\ (например) -6,8 (.,) - 337,4 (со) -6,8 (ст) -322,7 (о) -6,8 (ж) -333,7 (т) -339,4 (м) 1,3 (дюйм) 25,4 (мкм) -335,9 (спа) -6,8 (nning) -344,1 (tr) -6,7 (ee,) - 325,4 (o) -6,8 (r) -331,9 (the) -339,4 (c) -2,1 (o) -6,8 (s) ) -3,9 (т) -322,7 (о) -6,8 (е) -333,7 (а) -6,8 (п) -324,6 (о) -6,8 (птима) -6,8 (л) -337,4 (так) -6,8 (луто) ) -6,8 (н) -324,6 (к) -344,1 (в) -339,4 (ж) 3,5 (а) -6.8 (в) -2,1 (илилит) 26,6 (у)] ТДж 0 -1,2045 TD -0,0006 Тс [(lo) -30,6 (ca) -6,5 (tio) -6,5 (n) -420,7 (pr) -6,4 (o) -6,5 (b) 0,9 (lem) -407,9 (o) 17,6 (v) 21,3 (e) ) -1,8 (r) -416 (t) 2,8 (he) -423,4 (da) -6,5 (ta) -428,1 (p) -23,2 (o) -6,5 (дюйм) 25 (ts \)) - 430,8 (f ) 3,8 (r) -6,4 (o) -6,5 (m) -407,9 (h) 0,9 (isto) -6,5 (g) -6,5 (r) -6,4 (a) -6,5 (m) -407,9 (co) - 6.5 (un) 25 (ts) -425.2 () - 416 (i) 0.1 (n) -432.7 (a) -428.1 (pr) -6.4 (iv) 57.4 (a) -6.5 (c) -1.8 (y- ) -4,5 (пр) -6,4 (эсер) -6,4 (винг)] ТДж 0 -1.1925 TD -0,0022 Тс [(fa) -8,1 (s) -5,2 (h) -0,7 (io) -8,1 (n.)] TJ ET конечный поток endobj 3 0 obj > / ExtGState> >> endobj 12 0 объект > ручей BT / F6 1 Тс 14.3462 0 0 14,3462 72 691,02 тм 0 г / GS1 GS -0,0002 Тс 0 Tw [(1) -1127,3 (I) 0,6 (n) 30,9 (t) 2,3 (ro) -31,6 (ducti) 2,8 (on)] TJ / F4 1 Тс 10,9091 0 0 10,9091 72 666,66 тм 0,004 Тс [(In) -430,5 (a) -420 (c) 8,4 (e) 8,4 (n) -1,5 (sus,) - 455,2 (i) 6,8 (ndi) 6,8 (v) 3,8 (i) 6,8 (дуа) 9 (l) -411,2 (r) -0,3 (e) 8,4 (s) 2,4 (p) -34,5 (o) 9 (nde) 8,4 (n) 31,5 (t) 7,9 (s) -426,6 (g) 9 (i) ) 6,8 (v) 36,8 (e) -442,6 (p) -1,5 (ri) 6,8 (v) 58,8 (a) 9 (t) 7,9 (e) -420,6 (i) 6,8 (n) -1,5 (fo) 9 (rma) 9 (t) 7,9 (i) 6,8 (o) 9 (n) -441,5 (t) 7,9 (o) -431 (a) -431 (t) 7,9 (ржавчина) 7,9 (e) 8,4 (d) -430,5 (год) 9 (пт) 40,9 (год) -436.2 (\ () 7,9 (t) 7,9 (h) -1,5 (e) -420,6 (c) 8,4 (e) 8,4 (n) -1,5 (sus)] TJ 0 -1,243 TD 0,0048 Тс [(bure) 9,2 (a) 9,8 (u \)) 8,7 (,) - 300,4 (w) 1 (ho) -298,2 (publ) 7,6 (i) 7,6 (s) 3,2 (he) 9,2 (s) -293,8 (a) -298,2 (sa) 9,8 (ni) 7,6 (t) 8,7 (i) 7,6 (z) 9,2 (e) 9,2 (d) -319,7 (v) 37,6 (e) 9,2 (rsi) 7,6 (o) 9,8 (n) -319,7 (o) 9,8 (f) -305,7 (t) 8,7 (he) -298,8 (da) 9,8 (t) 8,7 (a) 9,8 (.) - 443,4 (N) 6,8 (o) 9,8 (t) ) 8,7 (e) -320,8 (t) 8,7 (ha) 9,8 (t) -299,3 (t) 8,7 (hi) 7,6 (s) -304,8 (f) 2,3 (ra) 9,8 (me) 9,2 (w) 34 ( o) 9,8 (rk) -314,4 (i) 7,6 (s) -304,8 (i) 7,6 (nhe) 9,2 (re) 9,2 (n) 32,3 (t) 8,7 (l) 7,6 (y)] TJ Т * 0,0046 Тс [(нет) 9.6 (ni) 7,4 (n) 32,1 (t) 8,5 (e) 9 (r) 0,3 (a) 9,6 (c) 9 (t) 8,5 (i) 7,4 (v) 37,4 (e) 9 (.) - 454,6 (T) 0,8 (он) 9 (re) -310 (a) 9,6 (r) 0,3 (e) -310 (t) 41,5 (w) 33,8 (o) -320,4 (фундамент) 9,6 (me) 9 (n) 32,1 (т) 8,5 (а) 9,6 (л) 7,4 (л) 7,4 (у) -303,6 (в) 9 (о) 9,6 (нигде) 7,4 (в) 9 (т) 8,5 (и) 7,4 (н) - 0,9 (г) -320,4 (r) 0,3 (e) 9 (q) 4,4 (ui) 7,4 (re) 9 (me) 9 (n) 32,1 (t) 8,5 (s:) - 432,6 (pri) 7,4 (v ) 59,4 (а) 9,6 (в) 9 (у) -314,6 (е) 2,1 (о) 9,6 (г) -307,7 (т) 8,5 (з) -0,9 (д) -310 (г) 0,3 (д) 9 (s) 3 (p) -33,9 (o) 9,6 (n -)] TJ Т * -0,0035 Тс [(г) -9 (д) 0,9 (п) 24 (т) 0,4 (с) -357,1 (а) 1,5 (п) -9 (г) -350 (и) -9 (т) 0,4 (илилит) 33,4 (у) -366,7 (о) 1.5 (f) -347 (t) 0,4 (h) -9 (e) -351,1 (san) -9 (i) -0,7 (tized) -372 (d) -9 (a) 1,5 (ta.) - 495,7 (V) 86,5 (er) -7,8 (y) -355,7 (r) -7,8 (ou) -9 (gh) -9 (ly) 84,3 (,) - 352,7 (t) 0,4 (h) -9 (e) -351,1 (сан) -9 (я) -0,7 (тизация) -383 (ш) -9 (оу) -9 (лд) -339 (п) -42 (д) 0,9 (г) -7,8 (м) - 6,2 (it) -340,6 (th) -9 (e) -351,1 (d) -9 (ata)] TJ Т * 0,0051 Тс [(а) 10,1 (п) -0,4 (а) 10,1 (л) 7,9 (у) 4,9 (с) 3,5 (т) -332 (т) 9 (о) -330,9 (и) 7,9 (де) 9,5 (п) ) 32,6 (t) 9 (i) 7,9 (f) 2,6 (y) -336,1 (s) 3,5 (t) 9 (r) 0,8 (o) 10,1 (n) -0,4 (g) -330,9 (s) 3,5 ( t) 9 (e) 9,5 (re) 9,5 (o) 10,1 (t) 42 (y) 4,9 (p) -33,4 (e) 9,5 (s) 3,5 (,) - 333,1 (w) 1,3 (hi) 7.9 (l) 7,9 (e) -331,5 (pre) 9,5 (s) 3,5 (e) 9,5 (r) 0,8 (v) 4,9 (i) 7,9 (нг) -319,9 (t) 9 (h) -0,4 (e ) -320,5 (p) -0,4 (ri) 7,9 (v) 59,9 (a) 10,1 (c) 9,5 (y) -336,1 (o) 10,1 (f) -327,4 (i) 7,9 (ndi) 7,9 (v) 4,9 (i) 7,9 (дуа) 10,1 (l) 7,9 (s) 3,5 (.)] TJ 1,551 -1,243 TD -0,0043 тс [(R) -5,2 (ecen) 23,2 (tly) 83,5 (,) - 276,5 (C) -8,1 (h) -9,8 (a) 33,7 (w) -8,1 (la) -230,3 (et) -231,4 (др.) .) - 243,5 ([) - 1,5 (11) -10,3 (]) - 232,5 (i) -1,5 (n) -9,8 (i) -1,5 (связанное) -251,8 (a) -230,3 (t) -0,4 ( з) -9,8 (д) 0,1 (или) -8,6 (этикал) -254,5 (с) -5,9 (т) -0,4 (и) -9,8 (г) -9,8 (у) -213,5 (из) -237,8 (т. ) -9,8 (е) -230,9 (цент) -9.8 (с) -5,9 (u) -9,8 (с) -225,9 (p) -9,8 (r) -8,6 (o) 0,7 (б) -9,8 (l) -1,5 (em) -227 (an) -9,8 (d) -229,8 (p) -9,8 (r) -8,6 (e) 0,1 (s) -5,9 (e) 0,1 (n) 23,2 (t) -0,4 (ed)] TJ -1,551 -1,243 TD -0,0042 Тс [(а) -340,2 (г) -9,7 (д) -9,7 (п) -9,7 (и) -1,4 (тион) -339,7 (из) -347,7 (р) -9,7 (г) -8,5 (iv) 50,6 (acy) -334,4 (t) -0,3 (h) -9,7 (a) 0,8 (t) -341,3 (c) 0,2 (ap) -9,7 (tu) -9,7 (r) -8,5 (e) 0,2 (s) -346,8 (т) -0,3 (з) -9,7 (д) -329,8 (ср) -6,9 (р) -42,7 (эллин) -9,7 (г) -340,2 (в) 0,2 (в) -9,7 (белый цвет) - 9,7 (t) -352,3 (o) 0,8 (f) -336,7 (p) -9,7 (r) -8,5 (o) 0,8 (tection) -361,7 (f) -6,6 (r) -8,5 (o) 0,8 (m) ) -336.9 (b) -42,7 (ein) -9,7 (g) -329,2 (b) -9,7 (r) -8,5 (ou) -9,7 (gh) 23,3 (t)] TJ Т * -0,0038 тс [(к) -471,8 (th) -9,3 (e) -461,4 (a) 1,2 (tten) 23,7 (t) 0,1 (ион) -493,3 (o) 1,2 (f) -468,3 (o) 1,2 (th) - 9,3 (er) -8,1 (s) -5,4 (.) - 837 (As) -467,4 (th) -9,3 (e) -461,4 (p) -9,3 (h) -9,3 (ilos) -5,4 (o) 1,2 (p) -9,3 (h) -9,3 (e) 0,6 (r) -470,1 (R) -4,7 (u) -9,3 (t) 0,1 (h) -460,3 (G) -0,1 (a) 34,2 (v) -4 (is) -5,4 (on) -482,3 (p) -42,3 (o) 1,2 (дюйм) 23,7 (ts) -467,4 (ou) -9,3 (t,) - 507 (n) -9,3 (o) 1,2 (t) -461.9 (o) 1.2 (n) -9.3 (l) -1 (y) -466 (i) -1 (s) -467,4 (s) -5.4 (u) -9.3 (c) 33.6 (h )] TJ Т * -0,0036 Тс [(п) -9,1 (г) -7.9 (обнаружение) -306,1 (i) -0,8 (n) -9,1 (h) -9,1 (e) 0,8 (r) -7,9 (e) 0,8 (n) 23,9 (t) 0,3 (ly) -289,8 (v) 51,2 (а) 1,4 (lu) -9,1 (ab) -9,1 (le,) - 308,8 (b) -9,1 (u) -9,1 (t) 0,3 (,) - 297,8 (i) -0,8 (ts) -291,2 (ru) -6.3 (p) -9.1 (r) -7.9 (o) 1.4 (m) -6.3 (i) -0.8 (se) -296.2 (in) 23.9 (vites) -302.2 (f) -6.1 (u) ) -9,1 (r) -7,9 (th) -9,1 (er) -271,9 (дюйм) 23,9 (v) 51,2 (a) 1,4 (сион) -306,1 (из) -292,1 (p) -9,1 (r) -7,9 (iv) 51,2 (acy) 84,2 (,) - 308,8 (as) -291,2 (ev) 29,2 (er) -7,9 (y)] TJ 0 -1,232 TD -0,0043 тс [(действие) -306,8 (из) -292,8 (т) -9,8 (д) -285,9 (т) -0,4 (ар) -8,6 (получение) -297,4 (о) 0,7 (ж) -292,8 (а) 0.7 (tten) 23,2 (t) -0,4 (ион) -317,8 (c) 0,1 (an) -295,8 (n) -9,8 (o) 33,7 (w) -283,1 (b) -42,8 (e) -274,9 (s) ) -5,9 (кр) -8,6 (u) -9,8 (t) -0,4 (дюйм) -9,8 (измер.) -9,8 (.) - 441,5 (T) -8,1 (h) 23,2 (u) -9,8 (s) -5,9 (,) - 276,5 (дюйм) -295,8 ([11) -10,3 (]) - 287,5 (усл.) -9,8 (э) -285,9 (гол) -298,5 (из) -292,8 (усл.) -9,8 (эл. ) -285,9 (a) 0,7 (d) -9,8 (v) 28,5 (er) -8,6 (s) -5,9 (a) 0,7 (r) -8,6 (y)] TJ 0 -1,243 TD -0,0034 тс [(is) -302 (to) -306,4 (sin) -8,9 (g) 1,6 (le) -296 (ou) -8,9 (t,) - 308,6 (или)] TJ / F5 1 Тс 8,1072 0 TD -0,0037 Тс [(i) -5 (s) -1,8 (олат)] ТДж / F4 1 Тс 2,7721 0 TD 0,0044 Тс [(,) - 311.8 (a) 9,4 (n) -298,1 (i) 7,2 (ndi) 7,2 (v) 4,2 (i) 7,2 (дуа) 9,4 (l) 7,2 (.) - 421,8 (Cha) 42,4 (w) 0,6 (l) 7,2 (а) -287,6 (д) 8,8 (т) -288,7 (а) 9,4 (л) 7,2 (.) - 300,8 (а) 9,4 (л) 7,2 (с) 2,8 (о) -298,6 (г) 9,4 ( a) 42,4 (v) 37,2 (e) -310,2 (a) -287,6 (fo) 9,4 (rma) 9,4 (l) -289,8 (sp) -34,1 (e) 8,8 (c) 8,8 (i) 7,2 (c) 8,8 (a) 9,4 (t) 8,3 (i) 7,2 (o) 9,4 (n) -309,1 (o) 9,4 (f) -295 (w) 0,6 (ha) 9,4 (t)] TJ -10,8793 -1,243 TD -0,0039 Тс [(is) -302,5 (r) -8,2 (e) 0,5 (qu) -9,4 (ir) -8,2 (ed) -284,4 (f) -6,4 (r) -8,2 (om) -292,6 (a) -295,9) (г) -9,4 (ата) -295,9 (с) -5,5 (ан) -9,4 (итизация) -328,4 (а) 1,1 (lgor) -8,2 (i) -9.4 (м) -6,6 (:) - 441,1 (a) 1,1 (cces) -5,5 (s) -302,5 (t) 0 (o) -306,9 (t) 0 (h) -9,4 (e) -285,5 (s) ) -5,5 (a) 1,1 (n) -9,4 (i) -1,1 (тиз.) -317,4 (d) -9,4 (a) 1,1 (ta) -295,9 (s) -5,5 (h) -9,4 (ou) - 9,4 (ld) -284,4 (n) -9,4 (o) 1,1 (t) -297 (i) -1,1 (n) -9,4 (c) 0,5 (r) -8,2 (e) 0,5 (as) -5,5 (e )] TJ Т * -0,0034 тс [(ан) -338.9 (ад) -8.9 (в) 29.4 (д) 1 (р) -7.7 (с) -5 (ар) -7.7 (ус) -346 (а) 1.6 (б) -8.9 (илилит ) 33,5 (у) -355,6 (т) 0,5 (о) -339,4 (и) -0,6 (солат) -351 (ан) 24,1 (у) -344,6 (и) -0,6 (п) -8,9 (г) -8,9 (i) -0.6 (vid) -8.9 (u) -8.9 (a) 1.6 (l.)] TJ 1,551 -1,243 TD 0,0046 Тс [(H) 6,6 (i) 7,4 (st) 8,5 (o) 9.6 (ж) 9,6 (r) 0,3 (а) 9,6 (м) 1,9 (с) -448 (а) 9,6 (пере) -442 (на) 9,6 (t) 8,5 (u) -0,9 (ra) 9,6 (l ) -432,6 (c) 9 (a) 9,6 (ndi) 7,4 (da) 9,6 (t) 8,5 (e) 9 (s) -437 (f) 2,1 (o) 9,6 (r) -439,7 (pri) 7,4 ( v) 59,4 (a) 9,6 (c) 9 (y) 4,4 (-) 7,9 (pre) 9 (s) 3 (e) 9 (r) 0,3 (v) 4,4 (i) 7,4 (нг) -430,4 (da ) 9,6 (t) 8,5 (a) -441,4 (sa) 9,6 (ni) 7,4 (t) 8,5 (i) 7,4 (z) 9 (a) 9,6 (t) 8,5 (i) 7,4 (o) 9,6 (n) -0,9 (,) - 487,6 (a) 9,6 (nd) -429,9 (a) 9,6 (s) -437 (suc) 42 (h)] TJ -1,551 -1,243 TD -0,0039 Тс [(ар) -8,2 (д) -373,5 (е) -6,4 (г) -8,2 (д) 0,5 (qu) -9,4 (en) 23,6 (tly) -378,1 (д) 0,5 (п) -9,4 (в) ) 0,5 (оу) -9,4 (п) 23,6 (т) 0 (эр) -8,2 (ред) -383.4 (дюйм) -372,4 (o) -6,6 (cial) -386,1 (s) -5,5 (t) 0 (atis) -5,5 (tics) -5,5 (.) - 573,1 (I) -5,8 (n) -9,4 (d) -9,4 (eed) -9,4 (,) - 375,1 (t) 0 (h) -9,4 (e) 0,5 (r) -8,2 (e) -373,5 (is) -368,5 (a) -372,9 (v) ) 50,9 (as) -5,5 (t) -374 (литр) -8,2 (atu) -9,4 (r) -8,2 (e) -384,5 (o) 1,1 (n) -383,4 (m) -6,6 (eth) - 9,4 (o) -31,9 (d) -9,4 (s)] TJ Т * 0,0044 Тс [(o) 9,4 (f) -339,1 (p) -34,1 (e) 8,8 (rt) 8,3 (urbi) 7,2 (нг) -320,6 (c) 8,8 (o) 9,4 (n) 31,9 (t) 8,3 (i) ) 7,2 (н) -1,1 (ж) 9,4 (д) 8,8 (нс) 8,8 (у) -347,8 (т) 8,3 (а) 9,4 (б) -1,1 (л) 7,2 (д) 8,8 (с) -349,2 (t) 8,3 (o) -342,6 (e) 8,8 (nsure) -321,2 (p) -1,1 (ri) 7,2 (v) 59.2 (a) 9,4 (c) 8,8 (y) 92,2 (.) - 476,8 (T) 0,6 (he) 8,8 (y) -336,8 (a) 9,4 (re) -332,2 (c) 8,8 (o) 9,4 (нси) ) 7,2 (d) -1,1 (e) 8,8 (r) 0,1 (e) 8,8 (d) -342,1 (использование) 8,8 (f) 1,9 (ul) 7,2 (,) - 333,8 (e) 8,8 (sse) 8,8 ( n) 31,9 (t) 8,3 (i) 7,2 (a) 9,4 (l) 7,2 (l) 7,2 (y) -358,8 (b) 31,9 (y)] TJ Т * -0,004 Тс [(г) -9,5 (д) 0,4 () - 9,5 (п) -9,5 (я) -1,2 (тион) -9,5 (.) - 650,2 (А) -409 (цен) 23,5 (тр) -8,3 (др. ) -419,2 (r) -8,3 (e) 0,4 (s) -5,6 (u) -9,5 (lt) -407,1 (дюйм) -405,5 ([11) -10 (]) - 408,2 (s) -5,6 (t ) -0,1 (ates) -423,6 (th) -9,5 (at) -407,1 (if) -413,5 (th) -9,5 (e) -406,6 (d) -9,5 (ata) -406 (a) 1 (r) -8,3 (д) -406,6 (г) -9.5 (r) -8,3 (a) 34 (w) -7,8 (n) -405,5 (u) -9,5 (n) -9,5 (i) -1,2 (f) -6,4 (o) 1 (r) -8,3 ( m) -6,7 (ly) -400,2 (f) -6,5 (r) -8,3 (om) -402,7 (a) -406 (h) -9,5 (igh) -9,5 (-)] TJ Т * 0,0043 Тс [(ди) 7,1 (мэ) 8,7 (нси) 7,1 (о) 9,3 (на) 9,3 (л) -421,9 (з) 31,8 (у) 4,1 (п) -34,2 (д) 8,7 (г) 0 (в) 8.7 (u) -1.2 (b) -34.2 (e) 8.7 (,) - 432.9 (t) 8.2 (he) 8.7 (n) -430.2 (a) -430.7 (si) 7.1 (mpl) 7.1 (e) - 420,3 (t) 8,2 (e) 8,7 (c) 41,7 (hni) 7,1 (q) 4,1 (u) -1,2 (e) 8,7 (,)] TJ / F5 1 Тс 22.2646 0 TD -0,0014 Тс [(r) 57,2 (e) 51,6 (курсив) -454,4 (h) 3,7 (isto) 58,7 (gr) 57,3 (am) -470,7 (дезинфекция)] TJ / F4 1 Тс 13.9374 0 TD 0.0034 Tc [(,) - 477,8 (p) -2,1 (re) 7,8 (se) 7,8 (rv) 36,2 (e) 7,8 (s)] TJ -36,202 -1,243 TD -0,0035 Тс [(p) -9 (r) -7,8 (iv) 51,3 (acy) 84,3 (.) - 781,7 (Mor) -7,8 (e) -439,1 (p) -9 (r) -7,8 (ecisely) 84,3 (, ) -484,7 (w) -7,3 (iith) -449 (o) 34,5 (v) 29,3 (e) 0,9 (r) -7,8 (w) -7,3 (h) -9 (e) 0,9 (lm) -6,2 ( в) -9 (г) -449,5 (п) -9 (г) -7,8 (о) 1,5 (б) -9 (а) 1,5 (б) -9 (илилит) 33,4 (у) -454,7 (о) 34,5 (v) 29,3 (e) 0,9 (r) -469,8 (t) 0,4 (h) -9 (e) -439,1 (c) 33,9 (h) -9 (oice) -461,1 (из) -446 (th) - 9 (e) -439,1 (d) -9 (atab) -9 (ase,) - 484,7 (in)] TJ Т * -0,0038 тс [(th) -9,3 (e) -373,4 (a) 1,2 (b) -9,3 (s) -5,4 (en) -9.3 (ce) -384,4 (of) -380,3 (au) -9,3 (xiliar) -8,1 (y) -378 (дюйм) -9,3 (f) -6,3 (o) 1,2 (r) -8,1 (m) -6,5 (атион) -9,3 (,) - 397 (т) -9,3 (д) -373,4 (п) -9,3 (г) -8,1 (о) 1,2 (б) -9,3 (а) 1,2 (б) -9,3 (илилит ) 33,1 (y) -389 (t) 0,1 (h) -9,3 (a) 1,2 (t) -373,9 (t) 0,1 (h) -9,3 (e) -373,4 (ad) -9,3 (v) 29 (e ) 0,6 (r) -8,1 (s) -5,4 (ar) -8,1 (y) -389 (c) 0,6 (an) -383,3 (изолят) -395,4 (e) 0,6 (v) 29 (e) 0,6 (n ) -394,3 (o) 1,2 (n) -9,3 (e)] TJ 0 -1,232 TD -0,0029 Тс [(d) -8,4 (a) 2,1 (таб.) -8,4 (a) 2,1 (se) -471,5 (p) -41,4 (o) 2,1 (дюйм) 24,6 (t) -461 (i) -0,1 (s) -477,5 (e) 1,5 (xp) -41,4 (on) -8,4 (en) 24,6 (tially) -476.1 (см) -5,6 (все) -473,1 (i) -0,1 (n) -470,4 (t) 1 (h) -8,4 (e) -471,5 (d) -8,4 (i) -0,1 (м) -5,6 (e) 1,5 (n) -8,4 (s) -4,5 (ион) -8,4 (.) - 825,1 (T) -6,7 (h) -8,4 (e) -460,5 (p) -8,4 (r) -7,2 ( о) 2,1 (б) -8,4 (а) 2,1 (б) -8,4 (илилит) 34 (у) -476,1 (с) -4,5 (п) -8,4 (а) 2,1 (в.э.) -471,5 (из) -466,5 (o) 35,1 (v) 29,9 (er) -491,2 (th) -8,4 (e)] TJ 0 -1,243 TD -0,0042 Тс [(г) -8,5 (а) 0,8 (п) -9,7 (г) -9,7 (о) 0,8 (м) -446,9 (в) 33,2 (з) -9,7 (о) 0,8 (льды) -478,8 (м) -6,9 (а) 0,8 (г) -9,7 (д) -450,8 (б) 23,3 (у) -455,4 (т) -9,7 (д) -461,8 (с) -5,8 (ан) -9,7 (итизация) -482,7 (а) 0,8 (lgor) -8,5 (iith) -9,7 (m) -468,9 (an) -9.7 (г) -449,7 (т) -0,3 (з) -9,7 (д) -461,8 (ад) -9,7 (в) 28,6 (д) 0,2 (г) -8,5 (с) -5,8 (ар) -8,5 ( y) 83,6 (.) - 804,4 (T) -8 (h) -9,7 (e) -450,8 (p) -9,7 (r) -8,5 (o) -32,2 (из) -446,7 (is) -467,8 (q ) -4,4 (u) -9,7 (ите)] TJ Т * -0,0037 Тс [(г) -8 (о) 1,3 (б) -9,2 (и) -9,2 (с) -5,3 (т) -329,8 (а) 1,3 (п) -9,2 (г) -328,2 (кан) -350,2 ( т) 0,2 (олер) -8 (съел) -362,3 (м) -6,4 (ан) 23,8 (у) 84,1 (,) - 341,9 (б) -9,2 (и) -9,2 (т) -318,8 (п) - 9,2 (о) 1,3 (т) -340,8 (а) 1,3 (ll,) - 352,9 (кин) -9,2 (г) -9,2 (с) -324,3 (из) -336,2 (а.е.) -9,2 (ксилиар) -8 (y) -355,9 (дюйм) -9,2 (f) -6,2 (o) 1,3 (r) -8 (m) -6,4 (ation)] TJ / F7 1 Тс 7.9701 0 0 7,9701 418,92 372,54 тм 0 Тс (1) Tj / F4 1 Тс 10,9091 0 0 10,9091 423,6 368,58 тм (.) Tj -30,679 -1,243 TD 0,0044 Тс [(The) -310,2 (p) -1,1 (ro) -23,6 (o) 9,4 (f) -317,1 (e) 8,8 (x) 4,2 (t) 8,3 (e) 8,8 (nds) -327,2 (t) 8,3 (o) -320,6 (mi) 7,2 (x) 4,2 (t) 8,3 (ure) 8,8 (s) -316,2 (o) 9,4 (f) -328,1 (w) 33,6 (e) 8,8 (l) 7,2 (l) 7,2 (-) 7,7 (сек) 8,8 (па) 9,4 (ра) 9,4 (т) 8,3 (д) 8,8 (г) -342,1 (з) 31,9 (у) 4,2 (п) -34,1 (д) 8,8 (г) 0,1 (в) 8,8 (н) -1,1 (б) -34,1 (д) 8,8 (с,) - 300,8 (а) -310,7 (нет) 9,4 (т) -321,7 (т) 8,3 (о) -320,6 (г ) -1,1 (i) 7,2 (с) 2,8 (t) 8,3 (r) 0,1 (i) 7,2 (но) 8,3 (i) 7.2 (o) 9,4 (нс) -316,2 (suc) 41,8 (h)] TJ -1,551 -1,243 TD 0,0041 Тс [(a) 9,1 (s) -371,5 (hi) 6,9 (g) 9,1 (h) -1,4 (-) 7,4 (d) -1,4 (i) 6,9 (m) 1,4 (e) 8,5 (n) -1,4 ( si) 6,9 (o) 9,1 (n) -1,4 (a) 9,1 (l) -367,1 (sphe) 8,5 (re) 8,5 (s,) - 356,1 (G) 7,8 (a) 9,1 (ussi) 6,9 (a) 9,1 (н) -1,4 (с,) - 378,1 (а) 9,1 (н) -1,4 (г) -364,4 (б) -1,4 (а) 9,1 (л) 6,9 (л) 6,9 (с) 2,5 (.) -554,1 (E) 2,6 (x) 3,9 (t) 8 (e) 8,5 (ndi) 6,9 (нг) -353,9 (t) 8 (h) -1,4 (e) -365,5 (a) 9,1 (rg) 9,1 ( ume) 8,5 (n) 31,6 (t) -366 (t) 8 (o) -364,9 (s) 2,5 (uc) 41,5 (h) -375,4 () 9,1 (ro) 9,1 (und)] TJ Т * 0,0047 Тс [(di) 7,5 (st) 8,6 (ri) 7,5 (но) 8,6 (i) 7.5 (o) 9,7 (нс) -271,9 (i) 7,5 (s) -282,9 (q) 4,5 (u) -0,8 (i) 7,5 (t) 8,6 (e) -276,9 (c) 42,1 (га) 9,7 ( l) 7,5 (l) 7,5 (e) 9,1 (нг) 9,7 (i) 7,5 (n) -0,8 (g) 9,7 (.) - 443,5 (The) -276,9 (h) -0,8 (e) 9,1 (a) 9,7 (rt) -277,4 (o) 9,7 (f) -283,8 (t) 8,6 (h) -0,8 (e) -276,9 (a) 9,7 (rg) 9,7 (ume) 9,1 (n) 32,2 (t) -277,4 (i) 7,5 (n) 32,2 (v) 37,5 (o) 9,7 (l) 7,5 (v) 37,5 (e) 9,1 (s) -304,9 (s) 3,1 (ho) 42,7 (wi) 7,5 (нг) -276,3 (t) 8,6 (h) -0,8 (a) 9,7 (t) -277,4 (t) 8,6 (h) -0,8 (e) -276,9 (v) 37,5 (o) 9,7 (l) 7,5 (ume)] TJ Т * -0,0036 Тс [(из) -380,1 (th) -9,1 (e) -384,2 (i) -0,8 (n) 23,9 (t) 0,3 (er) -7,9 (раздел) -405,1 (o) 1,4 (f) -380.1 (a) -383,6 (b) -9,1 (a) 1,4 (ll) -385,8 (w) -7,4 (i) -0,8 (th) -383,1 (a) -383,6 (h) -9,1 (istogr) -7,9 (am) -391,3 (ячейка) -385,8 (g) 1,4 (r) -7,9 (o) 34,4 (w) -7,4 (s) -390,2 (exp) -42,1 (o) 1,4 (n) -9,1 (e) 0.8 (n) 23.9 (t) 0.3 (ially) -388.8 (w) -7.4 (i) -0.8 (th) -383.1 (th) -9.1 (e) -384.2 (r) -7.9 (ad) -9.1 ( iu) -9,1 (s) -368,2 (o) 1,4 (f) -391,1 (t) 0,3 (h) -9,1 (e)] TJ Т * -0,0031 Тс [(б) -8,6 (а) 1,9 (II.) - 704,3 (Т) -6,9 (з) -8,6 (д) -416,7 (п) -8,6 (г) -7,4 (о) -31,1 (из) - 412,6 (дюйм) -426,6 ([11) -9,1 (]) - 418,3 (is) -422,7 (f) -5,6 (o) 1,9 (r) -425,4 (t) 0,8 (h) -8,6 (e) -416,7 (кейс) -427,7 (th) -8.6 (at) -428.2 (клетки) -433.7 (ar) -7.4 (e) -416.7 (h) 24.4 (yp) -41.6 (er) -7.4 (cu) -8.6 (b) -41.6 (e) 1.3 ( с.) - 682,3 (Un) -8,6 (lik) 29,7 (e) -427,7 (f) -5,5 (или) -425,4 (th) -8,6 (e) -416,7 (h) 24,4 (yp) -41,6 (er ) -7,4 (у.е.) -8,6 (б) -41,6 (д) 1,3 (,)] ТДж Т * 0,0048 Тс [(т) 8,7 (з) -0,7 (д) -309,8 (н) -0,7 (а) 9,8 (т) 8,7 (ура) 9,8 (л) -322,4 (привет) 7,6 (ст) 8,7 (о) 9,8 ( ж) 9,8 (г) 0,5 (а) 9,8 (м) -327,9 (о) 42,8 (в) 37,6 (д) 9,2 (г) -329,5 (а) -320,2 (г) 0,5 (о) 9,8 (унд) - 308,7 (ди) 7,6 (ст) 8,7 (ри) 7,6 (а) 8,7 (и) 7,6 (о) 9,8 (п) -319,7 (м) 2,1 (а) 42,8 (у) -314,4 (га) 42,8 (в) 37,6 (д) -331,8 (л) 7,6 (о) 9,8 (нг) 9.8 (,) - 322,4 (t) 8,7 (hi) 7,6 (n) -319,7 (c) 9,2 (e) 9,2 (l) 7,6 (l) 7,6 (s) 3,2 (,) - 333,4 (f) 2,3 (o) ) 9,8 (r) -318,5 (whi) 7,6 (c) 42,2 (h) -319,7 (t) 8,7 (he) -320,8 (pro) -23,2 (o) 9,8 (f)] TJ Т * 0,0047 Тс [(w) 33,9 (o) 9,7 (ul) 7,5 (d) -451,8 (b) -0,8 (re) 9,1 (a) 9,7 (k) -435,5 (do) 42,7 (wn) -451,8 (\ () 8,6) (t) 8,6 (h) -0,8 (i) 7,5 (n) -0,8 (k) -446,5 (o) 9,7 (f) -448,8 (a) -441,3 (ba) 9,7 (l) 7,5 (l) -443,5 (а) 9,7 (н) -0,8 (г) -451,8 (а) -441,3 (ст) 8,6 (ра) 9,7 (б) -440,8 (о) 9,7 (ж) -448,8 (спа) 9,7 (г) 9,7 ( h) -0,8 (e) 9,1 (t) 8,6 (t) 8,6 (i) 7,5 (:) - 685,5 (i) 7,5 (nc) 9,1 (re) 9,1 (a) 9,7 (s) 3,1 (i) 7,5 ( п) -0.8 (g) -452,3 (t) 8,6 (he) -441,9 (ra) 9,7 (di) 7,5 (us) -436,9 (o) 9,7 (f) -448,7 (t) 8,6 (h) -0,8 (e)] TJ Т * -0,0033 Тс [(б) -8,8 (а) 1,7 (II) -407,5 (д) 29,5 (д) 1,1 (т) -422,9 (о) 1,7 (п) -8,8 (л) -0,5 (у) -399,5 (а) -405,3 (лин) -8,8 (ухо) -414,6 (г) 1,7 (г) -7,6 (о) 34,7 (ш) -7,1 (т) 0,6 (в) -415,8 (я) -0,5 (п) -404,8 ( t) 0,6 (h) -8,8 (e) -394,9 (v) 29,5 (o) 1,7 (lu) -8,8 (m) -6 (e) -416,9 (из) -401,8 (th) -8,8 (e) - 405.9 (i) -0.5 (n) 24.2 (t) 0.6 (er) -7.6 (section) -426.8 (w) -7.1 (iith) -404.8 (t) 0.6 (h) -8.8 (e) -405.9 (sp ) -8,8 (agh) -8,8 (etti) -407,5 (str) -7,6 (a) 1,7 (n) -8,8 (d) -8,8 (\)) 0,6 (.)] TJ 0 -1.232 TD 0,0045 Тс [(Pri) 7,3 (v) 59,3 (a) 9,5 (c) 8,9 (y) 4,3 (-) 7,8 (pre) 8,9 (s) 2,9 (e) 8,9 (r) 0,2 (v) 4,3 (i) 7,3 ( нг) -331,5 (привет) 7,3 (ст) 8,4 (о) 9,5 (г) 9,5 (г) 0,2 (а) 9,5 (м) 1,8 (с) -338,1 (ж) 2 (о) 9,5 (г) -329,8 (ro) 9,5 (und) -320 (di) 7,3 (st) 8,4 (ri) 7,3 (но) 8,4 (i) 7,3 (o) 9,5 (нс) -316,1 (a) 9,5 (r) 0,2 (e) - 332,1 (т) 8,4 (гэ) -321,1 (первый) -321,6 (в) 8,9 (о) 9,5 (н) 32 (т) 8,4 (ри) 7,3 (но) 8,4 (и) 7,3 (о) 9,5 (н) -342 (o) 9,5 (f) -339 (t) 8,4 (hi) 7,3 (s) -327,1 (w) 33,7 (o) 9,5 (r) 0,2 (k) 4,3 (.)] TJ 1,551 -1,243 TD 0,0046 Тс [(Le) 9 (t) -398,5 (u) -0,9 (s) -404 (n) -0,9 (o) 42,6 (w) -395,2 (re) 9 (t) 8.5 (u) -0.9 (rn) -396.9 (t) 8.5 (o) -408.4 (t) 8.5 (h) -0.9 (e) -398 (c) 9 (a) 9.6 (s) 3 (e) - 409 (i) 7,4 (n) -396,9 (w) 0,8 (hi) 7,4 (c) 42 (h) -407,9 (t) 8,5 (h) -0,9 (e) -398 (d) -0,9 (a) 9,6 (t) 8,5 (a) -397,4 (a) 9,6 (re) -398 (dra) 42,6 (w) 0,8 (n) -396,9 (f) 2,1 (ro) 9,6 (m) -405,1 (t) 8,5 (he) ) -398 (ед.) 7,4 (т)] ТДж / F8 1 Тс 33.3418 0 TD 0 Тс (г) Tj / F4 1 Тс 0,517 0 TD -0,0041 Тс [(-d) -9,6 (im) -6,8 (en) -9,6 (s) -5,7 (i) -1,3 (on) -9,6 (al)] TJ -35,4098 -1,243 TD -0,0034 тс [(cu) -8,9 (b) -41,9 (e) 1 (.) - 429,6 (A) -309,4 (com) -6,1 (p) -8,9 (lete) -329 (r) -7,7 (ecu) -8,9) (r) -7,7 (s) -5 (iv) 29.4 (e) -307 (h) -8,9 (истогр) -7,7 (am) -325,1 (is) -313 (com) -6,1 (p) -8,9 (u) -8,9 (t) 0,5 (ed) -316,9 (b) 24,1 (y) -311,6 (su) -8,9 (b) -41,9 (d) -8,9 (iivid) -8,9 (дюйм) -8,9 (g) -284,4 (t) 0,5 (h) -8,9 (e) ) -307 (у.е.) -8,9 (б) -41,9 (д) -296 (дюйм) 24,1 (к) -317,4 (2)] ТДж / F9 1 Тс 7,9701 0 0 7,9701 460,56 223,5 тм 0 Тс (г) Tj / F4 1 Тс 10,9091 0 0 10,9091 468,84 219,54 тм 0,0036 Тс [(суб-) 6.9 (c) 8 (u) -1.9 (b) -34.9 (e) 8 (s,)] TJ -36,377 -1,243 TD -0,0039 Тс [(из) -402,4 (экв) -9,4 (а) 1,1 (л) -408,1 (с) -5,5 (размер,) - 430,1 (дюйм) -394,4 (т) -9,4 (э) -406,5 (число) - 9,4 (ату) -9,4 (р) -8.2 (al) -397,1 (f) -6,4 (a) 1,1 (s) -5,5 (h) -9,4 (ион) -9,4 (,) - 419,1 (r) -8,2 (ecu) -9,4 (r) -8,2 (s) -5,5 (дюйм) -9,4 (g) -383,9 (u) -9,4 (n) 23,6 (t) 0 (il) -408,1 (eac) 33,5 (h) -416,4 (ячейка) -408,1 (c) 0,5 (on) 23,6 (tain) -9,4 (s) -423,5 (a) 1,1 (t) -396 (m) -6,6 (os) -5,5 (t) -407 (a) -394,9 (s) -5,5 ( i) -1,1 (n) -9,4 (g) 1,1 (le) -406,5 (d) -9,4 (a) 1,1 (ta)] TJ Т * 0,0385 Тс [(po) 43,5 (i) 41,3 (n) 66 (t)] ТДж / F7 1 Тс 7,9701 0 0 7,9701 96,84 196,38 тм 0 Тс (2) Tj / F4 1 Тс 10,9091 0 0 10,9091 101,64 192,42 Тм -0,003 Тс [(.) - 517,2 (O) -6,2 (n) -360,5 (t) 0,9 (h) -8,5 (e) -361,6 (on) -8.5 (e) -361,6 (h) -8,5 (an) -8,5 (d) -8,5 (,) - 363,2 (th) -8,5 (is) -367,6 (r) -7,3 (e) 1,4 (se) 27,3 ( б) -8,5 (ле) -367,6 (д) 1,4 (м) 27,3 (б) -41,5 (ред) -8,5 (г) -8,5 (и) -0,2 (п) -8,5 (г) -350 (дюйм) 24,5 (к) -361 (a) -372 (t) 0,9 (r) -7,3 (e) 1,4 (e) -361,6 ([) - 0,2 (25) -9 (,) - 363,2 (6) -9 ( ,) - 363,2 (5) 2 (,) - 363,2 (1) 2 (0) -9 (,) - 363,2 (23) -9 (]:) - 506,2 (вс) -8,5 (б) -41,5 (д ) -8,5 (ivision)] TJ -2,717 -1,243 TD 0,0048 Тс [(o) 9,8 (n) -440,7 (t) 8,7 (h) -0,7 (e) -441,8 (c) 9,2 (ub) -33,7 (e) -430,8 (c) 9,2 (o) 9,8 (rre) 9,2) (пр) -33,7 (о) 9,8 (нс) -425,8 (т) 8,7 (о) -441,2 (бюстгальтер) 9,8 (п) -0,7 (в) 42,2 (з) -0.7 (i) 7,6 (n) -0,7 (g) -441,2 (i) 7,6 (n) -440,7 (t) 8,7 (he) -430,8 (t) 8,7 (r) 0,5 (e) 9,2 (e) 9,2 ( ,) - 476,4 (о) 9,8 (n) -451,7 (whi) 7,6 (c) 42,2 (h) -440,7 (d) -0,7 (i) 7,6 (s) 3,2 (t) 8,7 (a) 9,8 (nc) 9,2 (e) 9,2 (s) -447,8 (a) 9,8 (r) 0,5 (e) -441,8 (d) -0,7 (e) 9,2 (ne) 9,2 (d.) - 762,4 (Thi) 7,6 (s) - 436,8 (i) 7,6 (s)] ТДж Т * 0,0045 Тс [(a) -397,5 (p) -34 (o) 9,5 (Pul) 7,3 (a) 9,5 (r) -395,8 (t) 8,4 (e) 8,9 (c) 41,9 (hni) 7,3 (q) 4,3 (u) ) -1 (д) -398,1 (б) -34 (д) 8,9 (в) 8,9 (а) 9,5 (использование) -398,1 (в) 8,9 (о) 9,5 (м) 1,8 (положено) 8,4 (а) 9,5 (t) 8,4 (i) 7,3 (o) 9,5 (n) -408 (i) 7,3 (n) -408 (a) -397,5 (t) 8,4 (r) 0,2 (e) 8,9 (e) -398.1 (мэ) 8,9 (t) 8,4 (r) 0,2 (i) 7,3 (c) -398,1 (i) 7,3 (s) -404,1 (t) 41,4 (y) 4,3 (pi) 7,3 (c) 8,9 (a) 9,5 (л) 7,3 (л) 7,3 (y) -424,7 (si) 7,3 (mpl) 7,3 (e) 8,9 (r) -395,8 (t) 8,4 (га) 9,5 (n) -397 (i) 7,3 (n) ) -408 (м) 1,8 (о) 9,5 (r) 0,2 (e)] ТДж Т * -0,0038 тс [(gen) -9,3 (e) 0,6 (r) -8,1 (a) 1,2 (l) -463 (m) -6,5 (etr) -8,1 (i) -1 (cs) -456,4 (an) -9,3 ( d) -449,3 (b) -42,3 (ecau) -9,3 (s) -5,4 (e) -450,4 (r) -8,1 (an) -9,3 (d) -9,3 (o) 1,2 (m) -6,5 (i) ) -1 (zation) -460,3 (tec) 33,6 (h) -9,3 (n) -9,3 (i) -1 (qu) -9,3 (es) -467,4 (can) -460,3 (b) -42,3 (e) -439,4 (u) -9,3 (s) -5,4 (e) 0,6 (d) -438,3 (t) 0,1 (o) -460,8 (o) 1,2 (b) -9.3 (t) 0,1 (ain) -460,3 (e) 0,6 (xp) -42,3 (ected) -460,3 (lo) 34,2 (w)] TJ Т * 0,0041 Тс [(di) 6,9 (st) 8 (o) 9,1 (r) -0,2 (t) 8 (i) 6,9 (o) 9,1 (n) -342,4 (e) 8,5 (m) 34,4 (b) -34,4 (e) ) 8,5 (ddi) 6,9 (нг) 9,1 (s.)] TJ ET q 178,56 0 0 -0,48 71,988 129,168 см / Im1 Do Q BT / F10 1 Тс 5,9776 0 0 5,9776 84,48 122,22 тм 0 Тс (1) Tj / F11 1 Тс 8,9664 0 0 8,9664 88,56 118,5 тм -0,0034 тс [(A) -343,6 (c) -1,7 (omp) -7,9 (a) 1,9 (n) -7,9 (i) 1 (on) -369,3 (p) -7,9 (a) 1,9 (p) -34,7 (e) ) -1,3 (r) -337,5 (d) -7,9 (iscu) -7,9 (sses) -360,9 (i) 1 (mp) -34,7 (ossib) -7,9 (илилит) 21,5 (y) -371,1 (r) - 2.9 (esu) -7,9 (l) 1 (t) -5,2 (s) -347,5 (для) -364,3 (p) -7,9 (riv) 43,8 (a) 1,9 (cy) -9,7 (-) - 8,8 (p ) -7,9 (резерв) -9,7 (дюйм) -7,9 (г) -332,7 (г) -7,9 (ат) -5,2 (а) -332,7 (с) 0,5 (ан) -7,9 (ит) -5,2 (изм.) -374,3 ([) 1 (12) -11,5 (].)] ТДж / F10 1 Тс 5,9776 0 0 5,9776 84,48 111,3 тм 0 Тс (2) Tj / F11 1 Тс 8,9664 0 0 8,9664 88,56 107,46 тм 0,0025 Тс [(T) 8,7 (h) -2 (e) -330 (p) -2 (ri) 6,9 (v) 49,7 (a) 7,8 (c) 4,2 (y) -3,8 (-pre) 4,6 (s) 6,4 (e) 4,6 (rvi) 6,9 (n) -2 (g) -300 (r) 3 (e) 4,6 (c) 4,2 (urs) 6,4 (i) 6,9 (v) 23 (e) -316,6 (hi) 6,9 (с) 6,4 (т) 0,7 (о) 7,8 (г) 7,8 (г) 3 (а) 7,8 (м) -345,6 (в) 4,2 (о) 7.8 (нс) 6,4 (Truc) 4,2 (ti) 6,9 (o) 7,8 (n) -323,2 (с) 6,4 (t) 0,7 (o) 7,8 (p) -2 (s) -328,2 (a) -313,4 ( bi) 6,9 (t) -320,5 (s) 6,4 (ho) 7,8 (rt) -333,9 (o) 7,8 (f) -325,9 (thi) 6,9 (s) 6,4 (,) - 327,7 (a) 7,8 (nd) -309,8 (c) 4,2 (e) 4,6 (l) 6,9 (l) 6,9 (s) -341,6 (w) 8,7 (i) 6,9 (th) -323,2 (s) 6,4 (u) -2 (c) 4,2 ( i) 6.9 (e) 4.6 (n) 24.7 (t) 0.7 (l) 6.9 (y)] TJ -1,8469 -1,2179 TD 0,0041 Тс [(s) 8 (m) 4 (a) 9,4 (l) 8,5 (l) -352,8 (p) -27,2 (o) 9,4 (Pul) 8,5 (a) 9,4 (t) 2,3 (i) 8,5 (o) 9,4 (n) -348,4 (a) 9,4 (re) -341,7 (нет) 9,4 (t) -345,7 (s) 8 (ub) -27,2 (di) 8,5 (vi) 8,5 (de) 6,2 (d)] TJ / F4 1 Тс 10,9091 0 0 10,9091 292.44 60,06 тм 0 Тс (1) Tj ET конечный поток endobj 13 0 объект > / XObject> / ExtGState> >> endobj 22 0 объект > ручей BT / F4 1 Тс 10,9091 0 0 10,9091 88,92 691,02 тм 0 г / GS1 GS -0,0039 Тс 0 Tw [(Ho) 34,1 (w) 25,3 (e) 0,5 (v) 28,9 (e) 0,5 (r) -8,2 (,) - 397,1 (ou) -9,4 (r) -360,2 (f) -6,4 (o) -) 31,9 (c) 0,5 (u) -9,4 (s) -357,5 (d) -9,4 (i) -1,1 (er) -8,2 (s) -357,5 (дюйм) -372,4 (th) -9,4 (at) -363 (w) 25,3 (e) -362,5 (ar) -8,2 (e) -362,5 (c) 33,5 (h) -9,4 (a) 1,1 (r) -8,2 (g) 1,1 (ed) -383,4 (w) - 7,7 (i) -1,1 (th) -361,4 (m) -6,6 (a) 1,1 (дюйм) 23,6 (tain) -9,4 (дюйм) -9.4 (g) -372.9 (p) -9.4 (r) -8.2 (i) -1.1 (v) 50.9 (a) 1.1 (cy) -367.1 (an) -9.4 (d) -361.4 (n) -9.4 ( ot) -363 (\ (n) -9,4 (ec -)] TJ -1,551 -1,243 TD -0,0031 Тс [(essar) -7,4 (ily \)) - 461,2 (w) -6,9 (iith) -448,6 (e) 1,3 (n) -8,6 (s) -4,7 (u) -8,6 (r) -7,4 (дюйм) -8,6 (г) -438,1 (в) 1,3 (ом) -5,8 (п) -8,6 (и) -8,6 (т) 0,8 (атион) -8,6 (а) 1,9 (л) -462,3 (с) -4,7 ( im) -5,8 (p) -8,6 (законный) 33,8 (y) 84,7 (.) - 814,3 (T) -6,9 (h) -8,6 (e) -438,7 (m) -5,8 (ain) -459,6 (d) -8,6 (i) -5,8 (у.е.) -8,6 (lt) 33,8 (y) -454,3 (i) -0,3 (s) -455,7 (t) 0,8 (o) -449,1 (e) 1,3 (n) -8,6 ( s) -4,7 (u) -8,6 (r) -7,4 (e) -438,7 (t) 0,8 (h) -8.6 (a) 1,9 (t) -461,2 (t) 0,8 (h) -8,6 (e)] ТДж Т * 0,0049 Тс [(ra) 9,9 (ndo) 9,9 (mi) 7,7 (z) 9,3 (a) 9,9 (t) 8,8 (i) 7,7 (o) 9,9 (n) -330,6 (do) -23,1 (e) 9,3 (s)) -315,7 (нет) 9,9 (t) -321,2 (p) -0,6 (ro) -23,1 (duc) 9,3 (e) -298,7 (c) 9,3 (e) 9,3 (l) 7,7 (l) 7,7 (s) - 337,7 (т) 8,8 (з) -0,6 (а) 9,9 (т) -321,2 (а) 9,9 (г) 0,6 (д) -309,7 (л) 7,7 (о) 9,9 (н) -0,6 (г) -320,1 (a) 9.9 (nd) -319.6 (t) 8.8 (h) -0.6 (i) 7.7 (n) -319.6 (\ () 8.8 (i) 7.7 (.) 7.7 (e) 9.3 (.) 7.7 (, ) -333,3 (га) 42,9 (в) 37,7 (д) -331,7 (а) -320,1 (б) -0,6 (а) 9,9 (г) -319,6 (а) 9,9 (с) 3,3 (п) -33,6 (д) ) 9,3 (в) 9,3 (т) -310,2 (ра) 9,9 (т) 8,8 (и) 7,7 (о) 9,9 (\)) 8.8 (,) - 344,3 (а) 9,9 (с)] ТДж Т * 0,0044 Тс [(t) 8,3 (h) -1,1 (e) 8,8 (s) 2,8 (e) -387,2 (i) 7,2 (n) 31,9 (t) 8,3 (e) 8,8 (r) 0,1 (fe) 8,8 (re) -398,2 (wi) 7,2 (t) 8,3 (h) -386,1 (t) 8,3 (h) -1,1 (e) -387,2 (p) -1,1 (ri) 7,2 (v) 59,2 (a) 9,4 (c) 8,8 (y) -391,8 (pro) -23,6 (o) 9,4 (f.) - 608,8 (On) -386,1 (t) 8,3 (h) -1,1 (e) -387,2 (o) 9,4 (t) 8,3 (h) -1,1 (д) 8,8 (г) -395,9 (га) 9,4 (д,) - 399,8 (ш) 33,6 (д) -387,2 (н. Э.) 8,8 (д) 8,8 (г) -386,1 (нет) 9,4 (т) -387,7 (t) 8,3 (hi) 7,2 (nk) -391,8 (o) 9,4 (n) -1,1 (l) 7,2 (y) -391,8 (i) 7,2 (n) -386,1 (t) 8,3 (e) 8,8 (среднеквадратичное значение)] TJ Т * -0,0039 Тс [(из) -446,4 (th) -9,4 (e) -450,5 (t) 0 (r) -8.2 (ee,) - 474,1 (b) -9,4 (u) -9,4 (t) -440 (ar) -8,2 (e) -439,5 (f) -6,4 (r) -8,2 (e) 0,5 (e) - 450,5 (t) 0 (o) -449,9 (e) 0,5 (m) -6,6 (p) -9,4 (lo) 34,1 (y) -455,1 (g) 1,1 (eom) -6,6 (e) 0,5 (tr) - 8,2 (ic) -461,5 (дюйм) -9,4 (f) -6,4 (o) 1,1 (r) -8,2 (м) -6,6 (движение) -9,4 (.) - 771,1 (T) -7,7 (h) -9,4 (is) -445,5 (свинец) -9,4 (s) -445,5 (t) 0 (o) -449,9 (r) -8,2 (ed) -9,4 (u) -9,4 (ced) -449,4 (exp) -42,4 ( ected)] TJ Т * 0,0047 Тс [(di) 7,5 (st) 8,6 (o) 9,7 (r) 0,4 (t) 8,6 (i) 7,5 (o) 9,7 (n) -352,8 (\ () 8,6 (a) 9,7 (t) -354,4 (t) ) 8,6 (он) -342,9 (c) 9,1 (o) 9,7 (st) -354,4 (o) 9,7 (f) -349,8 (c) 9,1 (o) 9,7 (mput) 8,6 (a) 9.7 (t) 8,6 (i) 7,5 (o) 9,7 (na) 9,7 (l) -366,5 (s) 3,1 (i) 7,5 (м) 2 (pl) 7,5 (i) 7,5 (c) 9,1 (i) 7,5 (t) 41,6 (y) 4,5 (\)) 8,6 (.) - 509,5 (D) 9,6 (e) 9,1 (s) 3,1 (pi) 7,5 (t) 8,6 (e) -353,9 (t) 8,6 (h) -0,8 (e) 9,1 (s) 3,1 (e) -342,9 (d) -0,8 (i) 7,5 () 5 (e) 9,1 (r) 0,4 (e) 9,1 (n) -0,8 (c) 9,1 (e) ) 9,1 (s) 3,1 (,) - 355,5 (o) 9,7 (ur) -340,6 (t) 8,6 (e) 9,1 (c) 42,1 (hni) 7,5 (q) 4,5 (u) -0,8 (e) 9,1 ( s)] TJ Т * 0,0045 Тс [(дра) 42,5 (ш) -329,3 (г) 8,9 (а) 42,5 (в) 4,3 (и) 7,3 (л) 7,3 (у) -347,7 (из) 9,5 (м) -328,2 (т) 8,4 (в) ) -1 (e) -321,1 (l) 7,3 (i) 7,3 (t) 8,4 (e) 8,9 (r) 0,2 (a) 9,5 (t) 8,4 (ure) -343,1 (o) 9,5 (n) -331 (t) 8,4 (пере) 8.9 (e) -332,1 (e) 8,9 (m) 34,8 (b) -34 (e) 8,9 (ddi) 7,3 (нг) 9,5 (s.)] TJ 1,551 -1,243 TD -0,0041 Тс [(T) -7,9 (h) -9,6 (дюйм) -9,6 (gs) -324,7 (ar) -8,4 (e) -329,7 (e) 0,3 (v) 28,7 (e) 0,3 (n) -339,6 (m) ) -6,8 (или) -8,4 (e) -329,7 (d) -9,6 (i) -6,8 (cu) -9,6 (lt) -319,2 (дюйм) -328,6 (th) -9,6 (e) -329,7 (c ) 0,3 (as) -5,7 (e) -340,7 (o) 0,9 (f) -325,6 (h) -9,6 (is) -5,7 (togr) -8,4 (am) -6,8 (s) -335,7 (f) - 6,6 (или) -338,4 (r) -8,4 (о) 0,9 (u) -9,6 (n) -9,6 (d) -317,6 (d) -9,6 (i) -1,3 (s) -5,7 (t) -0,2 (r) -8,4 (i) -1,3 (b) -9,6 (u) -9,6 (t) -0,2 (ион) -9,6 (s) -5,7 (,) - 320,3 (w) -7,9 (h) -9,6 (д) 0,3 (г) -8,4 (д) -318.7 (th) -9,6 (e)] TJ -1,551 -1,243 TD -0,0043 тс [(s) -5,9 (h) -9,8 (ap) -42,8 (es) -258,9 (of) -259,8 (th) -9,8 (e) -263,9 (клетки) -269,9 (ar) -8,6 (e) -) - 263,9 (i) -1,5 (r) -8,6 (r) -8,6 (e) 0,1 (gu) -9,8 (лар)] TJ / F7 1 Тс 7,9701 0 0 7,9701 216,6 586,5 тм 0 Тс (3) Tj / F4 1 Тс 10,9091 0 0 10,9091 221,4 582,54 тм -0,004 Тс [(.) - 419,2 (Вт) 88,7 (e) -274,6 (g) 1 (iv) 28,8 (e) -274,6 (t) 32,9 (w) 25,2 (o) -274 (d) -9,5 (i) - 1,2 (er) -8,3 (e) 0,4 (n) 23,5 (t) -264,1 (con) -9,5 (s) -5,6 (tr) -8,3 (u) -9,5 (c) 0,4 (тион) -9,5 (s) ) -269,6 (o) 1 (f) -259,5 (h) -9,5 (is) -5,6 (togr) -8,3 (am) -6,7 (s) -269.6 (f) -6,5 (или) -261,3 (th) -9,5 (is) -269,6 (cas) -5,6 (e)] TJ -13,695 -1,243 TD 0,0048 Тс [() -282,2 (t) 8,7 (he) -287,8 (первый) -277,3 (i) 7,6 (s) -282,8 (de) 9,2 (t) 8,7 (e) 9,2 (rmi) 7,6 (n) -0,7 ( i) 7,6 (s) 3,2 (t) 8,7 (i) 7,6 (c) -298,8 (a) 9,8 (nd) -275,7 (pre) 9,2 (s) 3,2 (e) 9,2 (r) 0,5 (v) 37,6 ( д) 9,2 (т) -293,8 (р) -0,7 (ри) 7,6 (в) 59,6 (а) 9,8 (в) 9,2 (у) 92,6 (,) - 300,4 (а) -277,3 (ду) -23,2 (д) ) 9,2 (s) -282,8 (нет) 9,8 (t) -288,3 (p) -0,7 (ro) 42,8 (v) 4,6 (i) 7,6 (de) -276,8 (t) 8,7 (h) -0,7 (e) -287,8 (r) 0,5 (e) 9,2 (q) 4,6 (ui) 7,6 (re) 9,2 (d) -286,7 (p) -0,7 (ro) 9,8 (p) -33,7 (e) 9,2 (rt) 8,7 ( и) 7.6 (e) 9,2 (s)] TJ 0 -1,232 TD [(фо) 9,8 (г) -362,5 (а) -353,2 (г) 9,8 (о) -23,2 (о) -23,2 (г) -352,7 (д) 9,2 (м) 35,1 (б) -33,7 (д) 9,2 (ddi) 7,6 (нг) 9,8 (;) - 366,4 (t) 8,7 (he) -353,8 (se) 9,2 (c) 9,2 (o) 9,8 (nd) -363,7 (a) 9,8 (c) 42,2 (hi) ) 7,6 (д) 9,2 (в) 37,6 (д) 9,2 (с) -381,8 (а) -353,2 (г) 9,8 (о) -23,2 (о) -23,2 (г) -352,7 (д) 9,2 (м) 35,1 (б) -33,7 (д) 9,2 (ddi) 7,6 (нг) 9,8 (,) - 355,4 (ш) 1 (привет) 7,6 (л) 7,6 (д) -353,8 (о) 9,8 (б) -0,7 ( t) 8,7 (a) 9,8 (i) 7,6 (n) -0,7 (i) 7,6 (n) -0,7 (g) -353,2 (s) 3,2 (l) 7,6 (i) 7,6 (g) 9,8 (h) 32,3 (t) 8,7 (l) 7,6 (y) -380,4 (w) 34 (o) 9,8 (rse)] TJ 0 -1,243 TD 0,0045 Тс [(б) -34 (о) 9.5 (unds) -305,1 (fo) 9,5 (r) -329,8 (p) -1 (ri) 7,3 (v) 59,3 (a) 9,5 (c) 8,9 (y) 92,3 (.)] TJ 1,551 -1,243 TD -0,003 Тс [(Белу) 35 (w) -358,8 (w) 26,2 (e) -339,6 (d) -8,5 (escr) -7,3 (ib) -41,5 (e) -328,6 (o) 2 (u) -8,5 (r ) -337,3 (r) -7,3 (e) 1,4 (su) -8,5 (lts) -334,6 (i) -0,2 (n) -338,5 (g) 2 (r) -7,3 (e) 1,4 (атер) -348,3 (d) -8,5 (e) 1,4 (хвост.)] TJ / F6 1 Тс 11,9552 0 0 11,9552 72 499,14 тм -0,0009 Тс [(1.1) -1124,7 (Итог) -390,8 (из) -379,8 (Результаты)] TJ / F3 1 Тс 10,9091 0 0 10,9091 72 478,62 тм -0,0016 тс [(Priv) 66,3 (a) -3,6 (c) 3,5 (y) 99,3 (.)] TJ / F4 1 Тс 5,0271 0 TD -0.0041 Tc [(C) -7,9 (h) -9,6 (a) 33,9 (w) -7,9 (la) -472,1 (et) -473,2 (al.) - 485,3 ([) - 1,3 (11) -10,1 (]) -) 474,3 (i) -1,3 (n) 23,4 (v) 28,7 (es) -5,7 (tigated) -515,6 (th) -9,6 (e) -472,7 (p) -9,6 (r) -8,4 (i) -1,3 ( v) 50,7 (a) 0,9 (cy) -477,3 (из) -479,6 (th) -9,6 (e) -472,7 (f) -6,6 (ollo) 33,9 (w) -7,9 (i) -1,3 (n) - 9,6 (г) -483,1 (r) -8,4 (экю) -9,6 (r) -8,4 (s) -5,7 (iv) 28,7 (e) -472,7 (h) -9,6 (is) -5,7 (togr) -8,4 (am)] TJ -5,0271 -1,243 ТД 0,0047 Тс [(sa) 9,7 (ni) 7,5 (t) 8,6 (i) 7,5 (z) 9,1 (a) 9,7 (t) 8,6 (i) 7,5 (o) 9,7 (n) -374,8 (pro) -23,3 (c) 9,1 (e) 9,1 (dure) 9,1 (,) - 333,5 (i) 7,5 (n) -341,8 (whi) 7.5 (c) 42,1 (h) -341,8 (t) 8,6 (he) -342,9 (da) 9,7 (t) 8,6 (a) -342,3 (l) 7,5 (i) 7,5 (e) -353,9 (i) 7,5 ( n) -341,8 (t) 8,6 (h) -0,8 (e)] ТДж / F8 1 Тс 22.6936 0 TD 0 Тс (г) Tj / F4 1 Тс 0,517 0 TD -0,0037 Тс [(-d) -9,2 (im) -6,4 (en) -9,2 (sion) -9,2 (al) -352,9 (h) 23,8 (y) -3,9 (p) -42,2 (e) 0,7 (r) -8) (c) 0,7 (u) -9,2 (b) -42,2 (e) -329,3 (o) 1,3 (f) -358,2 (s) -5,3 (id) -9,2 (e-len) -9,2 (g) 1,3 ( th) -361,2 (2,)] TJ -23,2 · 106 -1,243 ТД -0,0041 Тс [(сэн) 23,4 (тер) -8,4 (д) 0,3 (г) -350,6 (а) 0,9 (т) -341,2 (т) -0,2 (з) -9,6 (д) -340,7 (или) -8,4 (игин) ) -9,6 (.)] ТДж 1,551 -1,243 TD 0,0043 Тс [(The) -420.3 (h) -1,2 (i) 7,1 (s) 2,7 (t) 8,2 (o) 9,3 (g) 9,3 (r) 0 (a) 9,3 (m) -449,4 (sa) 9,3 (ni) 7,1 (t) 8,2 (i) 7,1 (z) 8,7 (a) 9,3 (t) 8,2 (i) 7,1 (o) 9,3 (n) -463,2 (pro) -23,7 (c) 8,7 (e) 8,7 (dure) -409,3 (w ) 0,5 (i) 7,1 (t) 8,2 (h) -441,2 (p) -1,2 (ri) 7,1 (v) 59,1 (a) 9,3 (в) 8,7 (y) -424,9 (pa) 9,3 (ra) 9,3 ( me) 8,7 (t) 8,2 (e) 8,7 (r)] TJ / F8 1 Тс 28.0618 0 ТД 0 Тс (t) Tj / F12 1 Тс 0,803 0 TD () Tj / F4 1 Тс 1,232 0 TD 0,0042 Тс [(2) -430,8 (i) 7 (s) -437,4 (e) 8,6 (a) 9,2 (s) 2,6 (i) 7 (l) 7 (y) -447 (de) 8,6 (sc) 8,6 (ri) ) 7 (b) -34,3 (e) 8,6 (d :)] TJ -31,6478 -1,243 TD -0,0035 Тс [(Пихта) -7,8 (с) -5,1 (т,) - 539.7 (у.е.) -9 (т) -494,6 (т) 0,4 (з) -9 (д) -494,1 (верх) -9 (-) - 0,2 (лев) 29,3 (д) 0,9 (л) -517,7 (ч ) 24 (yp) -42 (er) -7,8 (cu) -9 (b) -42 (e) -472,1 (дюйм) 24 (to) -504,5 (2)] TJ / F9 1 Тс 7,9701 0 0 7,9701 274,56 428,34 тм 0 Тс (г) Tj / F4 1 Тс 10,9091 0 0 10,9091 284,88 424,38 тм 0,0044 Тс [(суб-) 7,7 (c) 8,8 (u) -1,1 (b) -34,1 (e) 8,8 (s,) - 509,8 (o) 9,4 (f) -493,1 (e) 8,8 (q) 4,2 (ua) 9,4 (l) -487,8 (s) 2,8 (i) 7,2 (z) 8,8 (e) 8,8 (,) - 542,8 (b) 31,9 (y) -479,8 (spl) 7,2 (i) 7,2 (t) 8,3 (t) ) 8,3 (i) 7,2 (нг) -496,6 (a) 9,4 (l) 7,2 (o) 9,4 (n) -1,1 (g) -496,6 (t) 8,3 (he)] TJ -19,514 -1,243 TD [(ми) 7.1 (dp) -34,2 (o) 9,3 (i) 7,1 (n) 31,8 (t) -343,8 (o) 9,3 (f) -361,2 (e) 8,7 (a) 9,3 (c) 41,7 (h) -375,2 ( si) 7,1 (de) 8,7 (.) - 509,9 (R) 3,4 (e) 8,7 (c) 8,7 (u) -1,2 (rse) -343,3 (o) 9,3 (n) -364,2 (e) 8,7 (v) 37,1 (д) 8,7 (р) -358,9 (суб-) 7,6 (в) 8,7 (и) -1,2 (б) -34,2 (д) -332,3 (в) 8,7 (о) 9,3 (н) 31,8 (т) 8,2 (a) 9,3 (i) 7,1 (ni) 7,1 (нг) -364,7 (a) 9,3 (t) -365,8 (l) 7,1 (e) 8,7 (a) 9,3 (s) 2,7 (t) -365,8 (2) ] TJ / F8 1 Тс 31,2738 0 TD 0 Тс (t) Tj / F4 1 Тс 0,715 0 TD -0,0038 тс [(p) -42,3 (o) 1,2 (дюйм) 23,7 (ts) -5,4 (.) - 529 (T) -7,6 (h) -9,3 (i) -1 (s) -346,4 (p) -9,3 ( r) -8,1 (o) -31,8 (ces) -5,4 (s)] TJ -31.9888 -1,243 TD 0,0017 Тс [(re) 6,1 (результат) 5,6 (s) -329,9 (i) 4,5 (n) -333,8 (a) -334,3 (se) 6,1 (t) -335,4 (o) 6,7 (f)] TJ / F8 1 Тс 7,8762 0 TD 0 Тс (г) Tj / F4 1 Тс 0,517 0 TD -0,004 Тс [(-d) -9,5 (im) -6,7 (en) -9,5 (s) -5,6 (i) -1,2 (on) -9,5 (al) -353,2 (h) 23,5 (y) -4,2 (p) -) - 42,5 (д) 0,4 (г) -8,3 (в) 0,4 (и) -9,5 (б) -42,5 (в) -313,6 (из) -347,5 (в) 50,8 (а) 1 (г) -8,3 (у) -4,2 (дюйм) -9,5 (изб) -329 (с) -5,6 (размеры) -5,6 (.) - 452,2 (T) -7,8 (в) -9,5 (эл.) -329,6 (с) -5,6 (а) 1 (n) -9,5 (i) -1,2 (тизация) -372,5 (is) -335,6 (a) -340 (d) -9,5 (es) -5,6 (cr) -8,3 (ip) -9,5 (тион)] TJ -8,3932 -1,243 TD -0.0039 Tc [(из) -325,4 (th) -9,4 (e) -318,5 (c) 0,5 (u) -9,4 (t) 0 (s) -324,5 (m) -6,6 (ad) -9,4 (e) -318,5 ( а) 1,1 (n) -9,4 (г) -317,4 (th) -9,4 (e) -329,5 (e) 0,5 (xact) -330 (p) -42,4 (o) 1,1 (p) -9,4 (u) - 9,4 (l) -1,1 (ation) -328,4 (o) 1,1 (f) -325,4 (e) 0,5 (v) 28,9 (e) 0,5 (r) -8,2 (y) -323,1 (r) -8,2 (e) 0,5 (s) -5,5 (u) -9,4 (ltin) -9,4 (g) -317,9 (ячейка) - 463,1 (T) -7,7 (h) -9,4 (e) -307,5 ​​(a) 1,1 (d) - 9,4 (v) 28,9 (er) -8,2 (s) -5,5 (a) 1,1 (r) -8,2 (y) -323,1 (s) -5,5 (u) -9,4 (ceed) -9,4 (s) -324,5 ( w) -7,7 (iith)] TJ Т * -0,0043 тс [(r) -8,6 (e) 0,1 (s) -5,9 (p) -42,8 (ect) -418,4 (to) -428,3 (p) -9,8 (r) -8.6 (iv) 50,5 (acy) -433,5 (p) -9,8 (ar) -8,6 (am) -7 (eter) -8,6 (s)] TJ / F8 1 Тс 13.6734 0 TD 0 Тс (в) Tj / F4 1 Тс 0,858 0 TD -0,005 Тс [(ан) -10,5 (г)] ТДж / F8 1 Тс 2,0351 0 TD 0 Тс (t) Tj / F4 1 Тс 0,363 0 TD -0,0042 Тс [(,) - 441,4 (i) -1,4 (f) -424,7 (i) -1,4 (t) -429,3 (p) -9,7 (r) -8,5 (o) -32,2 (d) -9,7 (u) -) - 9,7 (ces) -412,8 (a) -428,2 (p) -42,7 (oin) 23,3 (t)] TJ / F8 1 Тс 10,7142 0 TD 0 Тс (q) Tj / F12 1 Тс 0,913 0 TD 0,4223 Тс (R) Tj / F9 1 Тс 7,9701 0 0 7,9701 404,64 374,1 тм 0 Тс (г) Tj / F4 1 Тс 10,9091 0 0 10,9091 414,12 370,14 тм (\ () Tj / F8 1 Тс 0.385 0 TD (q) Tj / F4 1 Тс 0,902 0 TD -0,0046 Тс [(п) -10,1 (еэд) -428,1 (п) -10,1 (о) 0,4 (т) -429,7 (б) -43,1 (д) -418,2 (а) -417,6 (г) -8,9 (д) -0,2 (al)] TJ -32,648 -1,232 TD -0,0038 тс [(г) -9,3 (а) 1,2 (таб.) -9,3 (а) 1,2 (с) -5,4 (д) -340,4 (р) -42,3 (о) 1,2 (дюйм) 23,7 (т \)) - 340,9 ( s) -5,4 (u) -9,3 (c) 33,6 (h) -339,3 (th) -9,3 (at) -340,9 (w) -7,6 (i) -1 (th) -9,3 (дюйм) -339,3 (a ) -339,8 (b) -9,3 (все) -331 (o) 1,2 (f) -347,3 (r) -8,1 (ad) -9,3 (iu) -9,3 (s)] TJ / F8 1 Тс 21.6266 0 TD 0 Тс (в) Tj / F4 1 Тс 0,77 0 TD -0,0042 Тс [(тим) -6,9 (д) 0,2 (с) -346,8 (т) -0,3 (ч) -9,7 (д) -329.8 (d) -9,7 (i) -1,4 (s) -5,8 (t) -0,3 (an) -9,7 (ce) -340,8 (к) -351,2 (th) -9,7 (e) -329,8 (n) - 9,7 (ухо) -8,5 (e) 0,2 (s) -5,8 (t) -341,3 (d) -9,7 (a) 0,8 (табуляция) -9,7 (a) 0,8 (s) -5,8 (e)] TJ -22,3966 -1,243 TD 0,0385 Тс [(po) 43,5 (i) 41,3 (n) 66 (t)] ТДж / F8 1 Тс 2,5961 0 TD 0 Тс (x) Tj / F4 1 Тс 0,88 0 TD -0,0039 Тс (к) Tj / F8 1 Тс 1,21 0 TD 0 Тс (q) Tj / F4 1 Тс 0,484 0 TD -0,0045 Тс [(,) - 320,7 (t) -0,6 (h) -10 (e) -0,1 (r) -8,8 (e) -319,1 (ar) -8,8 (e) -319,1 (f) -7 (ew) 24,7) (er) -327,8 (th) -10 (an)] TJ / F8 1 Тс 9,6912 0 TD 0 Тс (t) Tj / F4 1 Тс 0,682 0 TD 0,0045 Тс [(повторно) 8.9 (a) 9,5 (l) -311,7 (da) 9,5 (t) 8,4 (a) 9,5 (ba) 9,5 (se) -321,1 (p) -34 (o) 9,5 (i) 7,3 (n) 32 (t) ) 8,4 (s) -316,1 (\ () 8,4 (s) 2,9 (e) 8,9 (e) -310,1 (Se) 8,9 (c) 8,9 (t) 8,4 (i) 7,3 (o) 9,5 (n) -331 (2) -309,5 (fo) 9,5 (r) -307,8 (t) 8,4 (he) -310,1 (i) 7,3 (n) 32 (t) 8,4 (u) -1 (i) 7,3 (t) 8,4 (i) ) 7,3 (o) 9,5 (n \)) 8,4 (.) - 454,7 (T) 0,7 (привет) 7,3 (s)] TJ -15,5434 -1,243 TD -0,0041 Тс [(ev) 28,7 (en) 23,4 (t) -352,2 (i) -1,3 (s) -335,7 (c) 0,3 (alled)] TJ / F8 1 Тс 6,4792 0 TD 0 Тс (в) Tj / F5 1 Тс 0,429 0 TD 0,0033 Тс [(-is) 5,2 (o) 8,4 (l) 5,8 (a) 8,4 (t) 5,5 (i) 2 (o) 8,4 (n)] TJ / F4 1 Тс 4.0481 0 TD 0 Тс (.) Tj / F3 1 Тс -10,9563 -2,068 ТД 0,0004 Тс [(Theo) 3.4 (rem) -438.3 (1) 3.4 (.1) 3.4 (.)] TJ / F4 1 Тс 7.2052 0 TD -0,0039 Тс [([11) -20,9 (])] ТДж / F5 1 Тс 1,958 0 TD [(Su) -6.2 (pp) 56.2 (ose) -423.9 (t) -1.7 (hat)] TJ / F4 1 Тс 5.9402 0 TD 0,0009 Тс [(RD) 5.8 (B)] TJ / F5 1 Тс 2,6071 0 TD -0,053 Тс [(co) -47,9 (n) -51,8 (s) -51,1 (i) -54,3 (s) -51,1 (t) -50,8 (s) -469,1 (o) -47,9 (f)]] TJ / F8 1 Тс 4.9721 0 TD 0 Тс (n) Tj / F5 1 Тс 1,001 0 TD -0,0002 Тс [(p) 59,9 (o) 4,9 (ints) -416,3 (d) 4,9 (r) 58,4 (a) 4,9 (w) 4,2 (n) -428 (iid) 4,9 (.) - 584,5 (a) 4,9 (nd) ) -413.1 (унифо) 4,9 (среднеквадр.) -416,7 (перед) 58,4 (о) 4,9 (м)] ТДж -23,6836 -1,243 ТД -0,0007 Тс [(the) -387,7 (c) -2,7 (ub) 52,3 (e)] TJ / F4 1 Тс 3,9271 0 TD 0 Тс ([) Tj / F12 1 Тс 0,275 0 TD () Tj / F4 1 Тс 0,781 0 TD (1) Tj / F8 1 Тс 0,495 0 TD (,) Tj / F4 1 Тс 0,44 0 TD -0,005 Тс (1]) Tj / F9 1 Тс 7,9701 0 0 7,9701 144,96 297,42 тм 0 Тс (г) Tj / F5 1 Тс 10,9091 0 0 10,9091 150 293,46 тм -0,0031 Тс [(.) - 543,4 (T) -2,6 (он) -5,1 (r) 55,5 (e) -390,1 (e) -5,1 (x) -1,2 (i) -4,4 (s) -1,2 (ts) -386,2 (a) -383 (c) 49,9 (постоянно)] TJ / F8 1 Тс 11,4073 0 TD 0 Тс (в) Tj / F5 1 Тс 0.814 0 TD -0,0037 Тс [(su) -6 (c) -5.7 (h) -383.6 (that) -397.5 (the) -390.7 (p) 1.4 (r) 55 (o) 1.4 (b) 49.3 (a) 1.4 (b) -]) 5.7 (i) -5 (li) -5 (ty) -409.2 (that) -397.5 (an) -387.5 (adv) -5.7 (e) -5.7 (r) -0.1 (sary,) - ​​423 (g) -5,7 (i) -5 (v) -5,7 (e) -5,7 (n)] TJ -19,3713 -1,243 TD -0,0036 Тс [(a) -416,5 (r) 55,1 (e) 49,4 (c) -5,6 (u) -5,9 (r) 0 (si) -4,9 (v) -5,6 (e) -412,6 (hi) -4,9 (sto) ) 56,5 (г) -5,6 (г) 55 (а) 1,5 (м) -439,9 (с) -1,7 (ани) -4,9 (т) -1,4 (и) -4,9 (г) -1,7 (ати) -4,9 (o) 1,5 (n) -431,4 (a) 1,5 (s) -419,7 (d) 1,5 (e) -5,6 (s) -1,7 (c) -5,6 (r) 0,1 (i) -4,9 (b) 49,4 (д) 49,4 (г) -416,5 (ab) 49,4 (ов) -5.6 (e) -5,6 (,) - 433,9 (c) 49,4 (a) 1,5 (n)] ТДж / F8 1 Тс 25,8177 0 TD 0 Тс (в) Tj / F5 1 Тс 0,429 0 TD 0,0033 Тс [(-is) 5,2 (o) 8,4 (l) 5,8 (a) 8,4 (t) 5,5 (e) -416,7 (a) 8,4 (n)] TJ / F4 1 Тс 5.0381 0 TD 0,0009 Тс [(RD) 5.8 (B)] TJ / F5 1 Тс 2,6071 0 TD -0,0601 Тс [(po) -55 (i) -61,4 (n) -58,9 (t) -486,9 (i) -61,4 (s) -465,2 (a) -55 (t) -475,9 (m) -56,4 (o) -) - 55 (т) -58,2 (т)] ТДж / F4 1 Тс -33,8919 -1,243 TD 0 Тс (2) Tj / F13 1 Тс 7,9701 0 0 7,9701 77,4 270,3 тм () Tj / F7 1 Тс 0,8281 0 TD 0,0005 Тс (\ () Tj / F9 1 Тс 1,1745 0 TD 0 Тс (г) Tj / F7 1 Тс 0,5421 0 TD (\)) Tj / F5 1 Тс 10.9091 0 0 10,9091 101,64 266,34 тм [(,) - 353.3 (i) -1.3 (nd) 5.1 (ep) 60.1 (end) 5.1 (e) -2 (nt) -371.8 (o) 5.1 (f)] TJ / F8 1 Тс 7,3812 0 TD (n) Tj / F5 1 Тс 0,605 0 TD (.) Tj / F4 1 Тс -9,1522 -2,057 ТД -0,0041 Тс [(T) -7,9 (h) -9,6 (e) -296,7 (p) -9,6 (r) -8,4 (o) -32,1 (of) -292,6 (дюйм) -295,6 ([11) -10,1 (])) -298.3 (из) -314.6 (th) -9.6 (is) -291.7 (th) -9.6 (eor) -8.4 (e) 0.3 (m) -314.8 (r) -8.4 (elies) -302.7 (o) 0.9 (н) -306,6 (а) -296,1 (лем) -6,8 (м) -6,8 (а) -307,1 (с) -5,7 (т) -0,2 (атин) -9,6 (г) -307,1 (т) -0,2 (h) -9,6 (a) 0,9 (t) -297,2 (f) -6,6 (или) -305,4 (ap) -9,6 (p) -9,6 (r) -8.4 (op) -9,6 (r) -8,4 (i) -1,3 (ate) -296,7 (v) 50,7 (alu) -9,6 (e) 0,3 (s) -302,7 (o) 0,9 (f)] TJ / F8 1 Тс 38,611 0 TD 0 Тс (r) Tj / F4 1 Тс 0,484 0 TD (,) Tj -40,646 -1,243 TD 0,0045 Тс [(t) 8,4 (h) -1 (e) -277,1 (v) 37,3 (o) 9,5 (l) 7,3 (ume) -277,1 (o) 9,5 (f) -284 (t) 8,4 (he) -277,1) (i) 7,3 (n) 32 (t) 8,4 (e) 8,9 (rse) 8,9 (c) 8,9 (t) 8,4 (i) 7,3 (o) 9,5 (n) -309 (o) 9,5 (f) -284 (а) -276,5 (ба) 9,5 (л) 7,3 (л)] ТДж / F8 1 Тс 16.9074 0 TD 0 Тс (B) Tj / F4 1 Тс 0,814 0 TD (\ () Tj / F8 1 Тс 0,385 0 TD 0,0376 Тс [(q,) - 124,6 (r)] ТДж / F4 1 Тс 1,408 0 TD -0,0042 Тс [(\)) - 275,3 (ш) -8 (й) -295.7 (a) -285,2 (ячейка) -298,4 (i) -1,4 (n) -284,7 (t) -0,3 (h) -9,7 (e) -285,8 (h) -9,7 (i) -1,4 (s) - 5,8 (t) -0,3 (огр) -8,5 (am) -303,9 (gr) -8,5 (o) 33,8 (w) -8 (s) -291,8 (e) 0,2 (x) -4,4 (p) -42,7 ( on) -9.7 (en) 23.3 (tially)] TJ -19,5145 -1,243 TD 0,0038 Тс [(wi) 6,6 (t) 7,7 (h)] ТДж / F8 1 Тс 2,3101 0 TD 0 Тс (r) Tj / F4 1 Тс 0,836 0 TD 0,0055 Тс [(\ () 9,4 (t) 9,4 (h) 0 (e) -364,1 (вверх) -33 (e) 9,9 (r) -339,8 (b) -33 (o) 10,5 (und) -341 (o)) 10,5 (n)] TJ / F8 1 Тс 9,5702 0 TD 0 Тс (r) Tj / F4 1 Тс 0,847 0 TD 0,0046 Тс [(de) 9 (p) -33,9 (e) 9 (nds) -338 (o) 9,6 (n) -363,9 (t) 8,5 (h) -0,9 (e) -354 (d) -0.9 (i) 7,4 (a) 9,6 (me) 9 (t) 8,5 (e) 9 (r) -373,7 (o) 9,6 (f) -360,9 (t) 8,5 (he) -354 (c) 9 (e) ) 9 (l) 7,4 (l) -377,6 (i) 7,4 (n) -352,9 (q) 4,4 (ue) 9 (st) 8,5 (i) 7,4 (o) 9,6 (n \)) 8,5 (.) - 542,6 (I) 2,7 (t) -354,5 (i) 7,4 (s) -360 (f) 2,1 (o) 9,6 (r) -362,7 (t) 8,5 (h) -0,9 (i) 7,4 (s)] TJ -13,5633 -1,243 TD [(re) 9,1 (a) 9,7 (s) 3,1 (o) 9,7 (n) -341,8 (t) 8,6 (h) -0,8 (a) 9,7 (t) -332,4 (w) 33,9 (e) -320,9 ( ne) 9.1 (e) 9.1 (d) -341.8 (hi) 7,5 (st) 8.6 (o) 9.7 (g) 9.7 (r) 0.4 (a) 9.7 (m) -339 (c) 9.1 (e) 9.1 ( l) 7,5 (l) 7,5 (s) -337,9 (t) 8,6 (o) -331,3 (b) -33,8 (e) -320,9 () 9,7 (w) 33,9 (e) 9,1 (l) 7,5 (l) 7,5 (-) 8 (ro) 9,7 (unde) 9.1 (d) 9,7 (.)] ТДж 1,551 -1,243 TD -0,0043 тс [(I) -6,2 (n) -350,8 (th) -9,8 (e) -351,9 (p) -9,8 (r) -8,6 (o) -32,3 (из) -6,8 (,) - 353,5 (v) 28,5) (olu) -9,8 (м) -7 (e) -362,9 (i) -1,5 (s) -357,9 (u) -9,8 (s) -5,9 (e) 0,1 (d) -350,8 (a) 0,7 (s) ) -357,9 (а) -362,3 (с) -5,9 (и) -9,8 (r) -8,6 (r) -8,6 (огате) -351,9 (f) -6,8 (или) -360,6 (p) -9,8 (r ) -8,6 (об) -9,8 (ab) -9,8 (илилит) 32,6 (y) -356,5 (d) -9,8 (en) -9,8 (s) -5,9 (i) -1,5 (t) 32,6 (y) - 4,5 (:) - 496,5 (t) -0,4 (h) -9,8 (e) -351,9 (ad) -9,8 (v) 28,5 (e) 0,1 (r) -8,6 (s) -5,9 (ar) -8,6 ( y) -356,5 (i) -1,5 (s) -357,9 (g) 0,7 (iv) 28,5 (en)] TJ -1,551 -1,243 TD -0.004 Tc [(дюйм) -9,5 (ж) -6,5 (о) 1 (г) -8,3 (м) -6,7 (атион) -262,5 (а) 1 (б) -42,5 (о) 1 (и) -9,5 (т) ) -253,1 (th) -9,5 (e) -252,6 (n) 23,5 (u) -9,5 (m) 26,3 (b) -42,5 (e) 0,4 (r) -250,3 (o) 1 (f) -259,5 ( d) -9,5 (atab) -9,5 (as) -5,6 (e) -263,6 (p) -42,5 (oin) 23,5 (t) -0,1 (s) -258,6 (i) -1,2 (n) -251,5 (a ) -263 (ячейка,) - 287,2 (b) -9,5 (u) -9,5 (t) -242,1 (f) -6,5 (r) -8,3 (om) -248,7 (th) -9,5 (e) -252,6 ( a) 1 (d) -9,5 (v) 28,8 (er) -8,3 (s) -5,6 (a) 1 (r) -8,3 (y) -4,2 (s) -269,6 (p) -42,5 (e) 0,4 (r) -8,3 (s) -5,6 (p) -42,5 (ectiv) 28,8 (e)] TJ Т * -0,0036 Тс [(th) -9,1 (e) -230,2 (l) -0,8 (o) -31,6 (c) 0,8 (ation) -251.1 (o) 1,4 (f) -237,1 (t) 0,3 (h) -9,1 (e) 0,8 (s) -5,2 (e) -241,2 (p) -42,1 (o) 1,4 (дюйм) 23,9 (ts) - 225,2 (w) -7,4 (i) -0,8 (th) -9,1 (дюйм) -240,1 (a) -229,6 (ячейка) -242,8 (i) -0,8 (s) -236,2 (u) -9,1 (n) - 9,1 (i) -0,8 (f) -6,1 (o) 1,4 (r) -7,9 (m) -6,3 (.) - 396,8 (T) -7,4 (h) -9,1 (e) -219,2 (s) -5,2 (a) 1,4 (m) -6,3 (e) -230,2 (is) -236,2 (tr) -7,9 (u) -9,1 (e) -230,2 (f) -6,1 (o) 1,4 (r) -227,9 (a ) 1,4 (ll) -242,8 (th) -9,1 (e) -230,2 (a) 1,4 (r) -7,9 (g) 1,4 (u) -9,1 (m) -6,3 (en) 23,9 (ts) -236,2 ( in) -240,1 (th) -9,1 (e)] ТДж Т * 0,0046 Тс [(c) 9 (u) -0,9 (rre) 9 (n) 32,1 (t) -244,5 (pa) 9,6 (p) -33,9 (e) 9 (r) -241,7 (e) 9 (x) 4.4 (c) 9 (e) 9 (p) -0.9 (t) -266,5 (o) 9.6 (ne) -244 (o) 9.6 (f) -261.9 (o) 9.6 (u) -0.9 (r) - 252,7 (h) -0,9 (i) 7,4 (s) 3 (t) 8,5 (o) 9,6 (g) 9,6 (r) 0,3 (a) 9,6 (m) -262,1 (sa) 9,6 (ni) 7,4 (t) 8,5 (i) 7,4 (z) 9 (a) 9,6 (t) 8,5 (i) 7,4 (o) 9,6 (n) -0,9 (s) -272 (f) 2,1 (o) 9,6 (r) -252,7 (ro ) 9,6 (унд) -242,9 (ди) 7,4 (ст) 8,5 (ри) 7,4 (а) 8,5 (я) 7,4 (о) 9,6 (нс) -239 (\ () 8,5 (S) -0,9 (д) 9 (c) 9 (t) 8,5 (i) 7,4 (o) 9,6 (n) -275,9 (3) 9,6 (.) 7,4 (4) 9,6 (\)) 8,5 (,) - 278,6 (i) 7,4 (n) ] TJ Т * 0,0049 Тс [(whi) 7,7 (c) 42,3 (h) -308,6 (t) 8,8 (he) -298,7 (ba) 9,9 (l) 7,7 (l) -311,3 (o) 9,9 (r) -307,4 (sphe) 9,3 ( ре) -298,7 (я) 7,7 (с) -304.7 (e) 9,3 (m) 35,2 (b) -33,6 (e) 9,3 (dde) 9,3 (d) -297,6 (i) 7,7 (n) 32,4 (t) 8,8 (o) -320,1 (a) -298,1 ( c) 9,3 (u) -0,6 (b) -33,6 (e) 9,3 (.) - 421,3 (B) 9,2 (e) 9,3 (c) 9,3 (a) 9,9 (использование) -320,7 (t) 8,8 (he) -309,7 (e) 9,3 (м) 35,2 (b) -33,6 (e) 9,3 (ddi) 7,7 (нг) -287,1 (su) 5,2 (e) 9,3 (rs) -304,7 (a) -298,1 (d) - 0,6 (i) 7,7 (s) 3,3 (t) 8,8 (o) 9,9 (rt) 8,8 (i) 7,7 (o) 9,9 (n,)] TJ 0 -1,232 TD -0,004 Тс [(th) -9,5 (e) -340,6 (d) -9,5 (en) -9,5 (s) -5,6 (i) -1,2 (t) 32,9 (y) -334,2 (из) -347,5 (p) -42,5) (o) 1 (дюйм) 23,5 (ts) -335,6 (дюйм) -339,5 (th) -9,5 (e) -340,6 (c) 0,4 (u) -9,5 (b) -42,5 (e) -318,6 (i) -1,2 (с) -346.6 (n) -9,5 (ot) -330,1 (u) -9,5 (n) -9,5 (i) -1,2 (f) -6,5 (o) 1 (r) -8,3 (m) -6,7 (.)] TJ ET q 178,56 0 0 -0,48 71,988 112,848 см / Im1 Do Q BT / F10 1 Тс 5,9776 0 0 5,9776 84,48 106,02 тм 0 Тс (3) Tj / F11 1 Тс 8,9664 0 0 8,9664 88,56 102,18 тм -0,0041 Тс [(Met) -5,9 (h) -8,6 (o) -25,6 (d) -8,6 (s) -348,2 (a) 1,2 (p) -8,6 (p) -8,6 (r) -3,6 (op) -8,6) (риат) -5.9 (e) -363,3 (f) 2,1 (или) -351,6 (ou) -8,6 (r) -351,6 (n) -8,6 (eed) -8,6 (s) -334,8 (t) -5,9 ( h) -8.6 (a) 1.2 (t) -353.9 (y) -10.4 (ield) -343.2 (regu) -8.6 (larly) -371.8 (s) -0.2 (h) -8.6 (a) 1.2 (p) -35,4 (д) -2 (г) -343,2 (в) -2.4 (эл.) -361,6 (м) -4,2 (а) 28 (у) -358,4 (д) -2 (х) -10,4 (и) 0,3 (ст) -5,9 (;) - 347,6 (ш) 28,8 (эл. ) -349,9 (h) -8,6 (a) 28 (v) 16,4 (e) -336,6 (n) -8,6 (ot) -340,5 (fou) -8,6 (n) -8,6 (d) -356,6 (an) 18,1 (y) 69,9 (.)] TJ / F4 1 Тс 10,9091 0 0 10,9091 292,44 60,06 тм 0 Тс (2) Tj ET конечный поток endobj 23 0 объект > / XObject> / ExtGState> >> endobj 27 0 объект > ручей BT / F4 1 Тс 10,9091 0 0 10,9091 88,92 691,02 тм 0 г / GS1 GS 0,0041 Тс 0 Tw [(In) -397,4 (t) 8 (h) -1,4 (i) 6,9 (s) -404,5 (w) 33,3 (o) 9,1 (rk) 3,9 (,) - 411,1 (w) 33,3 (e) -409,5) (г) -1.4 (e) 8,5 (s) 2,5 (c) 8,5 (r) -0,2 (i) 6,9 (b) -34,4 (e) -387,5 (t) 8 (hre) 8,5 (e) -398,5 (me) 8,5 ( t) 8 (h) -1,4 (o) -23,9 (d) -1,4 (s) -393,5 (f) 1,6 (o) 9,1 (r) -396,2 (c) 8,5 (r) -0,2 (e) 8,5 ( a) 9,1 (t) 8 (i) 6,9 (нг) -408,9 (hi) 6,9 (st) 8 (o) 9,1 (г) 9,1 (r) -0,2 (a) 9,1 (м) 1,4 (s) -415,5 (f) 1,7 (o) 9,1 (r) -396,2 (ro) 9,1 (und) -386,4 (di) 6,9 (st) 8 (ri) 6,9 (but) 8 (i) 6,9 (o) 9,1 (ns,) ] TJ -1,551 -1,243 TD [(пр) -34,4 (д) 8,5 (в) 8,5 (и) 6,9 (в) 8,5 (а) 9,1 (л) 6,9 (л) 6,9 (у) 91,9 (,) - 345,1 (ж) 1,6 (о) 9,1 (r) -330,2 (hi) 6,9 (g) 9,1 (h) -1,4 (-) 7,4 (d) -1,4 (i) 6,9 (м) 1,4 (e) 8,5 (n) -1,4 (si) 6,9 ( о) 9,1 (п) -1,4 (а) 9.1 (l) -334,1 (ba) 9,1 (l) 6,9 (l) 6,9 (s) -338,5 (a) 9,1 (n) -1,4 (d) -331,4 (s) 2,5 (phe) 8,5 (re) 8,5 ( s,) - 323.1 (o) 9.1 (b) -1.4 (t) 8 (a) 9.1 (i) 6.9 (n) -1.4 (i) 6.9 (n) -1.4 (g) -331.9 (s) 2.5 ( i) 6.9 (m) 1.4 (i) 6.9 (l) 6.9 (a) 9.1 (r) -341.2 (b) -34.4 (o) 9.1 (unds) -305.5 (fo) 9.1 (r) -341.2 (p) -1,4 (ri) 6,9 (v) 58,9 (a) 9,1 (c) 8,5 (y) -326,1 (a) 9,1 (s) -338,5 (i) 6,9 (n)] TJ Т * -0,0035 Тс [([11) -9,5 (]) - 0,7 (,) - 374,7 (a) 1,5 (фунт) -9 (iet) -373,6 (w) -7,3 (iith) -372 (a) -372,5 (lar) - 7,8 (g) 1,5 (er) -370,8 (v) 51,3 (a) 1,5 (lu) -9 (e) -373,1 (o) 1,5 (f)] TJ / F8 1 Тс 14,8284 0 TD 0 Тс (в) Tj / F4 1 Тс 0.429 0 TD 0,004 Тс [(.) - 532,2 (I) 2,1 (n) -353,5 (S) -1,5 (e) 8,4 (c) 8,4 (t) 7,9 (i) 6,8 (o) 9 (n) -375,5 (C) -362,8 (\ () 7,9 (i) 6,8 (n) -364,5 (t) 7,9 (he) -354,6 (A) 6 (p) -1,5 (p) -34,5 (e) 8,4 (ndi) 6,8 (x) 3,8 ( \)) - 344,1 (w) 33,2 (e) -354,6 (di) 6,8 (sc) 8,4 (uss) -360,6 (e) 8,4 (x) 3,8 (t) 7,9 (e) 8,4 (n) -1,5 (si) ) 6,8 (o) 9 (n) -1,5 (s) -360,6 (t) 7,9 (o)] TJ -15,2574 -1,243 TD -0,0044 Тс [(h) -9.9 (i) -1.6 (gh) -9.9 (-d) -9.9 (im) -7.1 (en) -9.9 (s) -6 (i) -1.6 (on) -9.9 (al)] -397,6 (Gau) -9,9 (s) -6 (s) -6 (i) -1,6 (an) -9,9 (s) -6 (.) - 617,6 (O) -7,6 (u) -9,9 (r) -382,7 (в) 0 (вкл) -9,9 (с) -6 (т) -0,5 (р) -8.7 (u) -9,9 (ction) -9,9 (s)] TJ 21,3296 0 TD 0,0042 Тс [(ре) 8,6 (пл) 7 (а) 9,2 (в) 8,6 (д) -387,4 (т) 8,1 (он) -387,4 (суб) -34,3 (в) 8,6 (уб) -34,3 (д) 8,6 ( s) 2,6 (-) 7,5 (b) -1,3 (a) 9,2 (s) 2,6 (e) 8,6 (d) -364,3 (sub) -34,3 (d) -1,3 (i) 7 (v) 4 (i) 7 (s) 2,6 (i) 7 (o) 9,2 (n) -375,3 (u) -1,3 (se) 8,6 (d)] TJ -21,3296 -1,243 TD -0,0032 Тс [(f) -5.7 (o) 1.8 (r) -282.5 (h) 24.3 (yp) -41.7 (er) -7.5 (cu) -8.7 (b) -41.7 (e) 1.2 (s) -257.8 (i) ) -0,4 (п) -283,7 ([) - 0,4 (11) -20,2 (]) - 275,4 (б) 24,3 (у) -278,4 (а) 1,8 (п) -283,7 (а) 1,8 (п) -8,7 (p) -8,7 (r) -7,5 (op) -8,7 (r) -7,5 (i) -0,4 (ate) -284,8 (a) 1,8 (lgor) -7.5 (iith) -8.7 (m) -291.9 (to) -284.2 (su) -8.7 (b) -41.7 (d) -8.7 (ivid) -8.7 (e) -251.8 () 1.8 (n) -8.7 ( i) -0,4 (ce) -295,2 (клетки) -290,8 (дюйм) 24,3 (to) -295,2 (sm) -5,9 (аллергия) -293,5 () 1,8 (n) -8,7 (i) -0,4 (ce)] TJ Т * 0,0049 Тс [(c) 9,3 (e) 9,3 (l) 7,7 (l) 7,7 (s) 3,3 (.) - 498,3 (C) 1,1 (га) 42,9 (wl) 7,7 (a) -342,1 (e) 9,3 (t)] -343,2 (а) 9,9 (л) 7,7 (.) - 498,3 (про) 42,9 (в) 37,7 (д) -342,7 (т) 8,8 (га) 9,9 (т) -354,2 (и) 7,7 (ж) -338,6 (е) 2,4 (о) 9,9 (r) -351,4 (a) 9,9 (l) 7,7 (l) -344,3 (p) -33,6 (o) 9,9 (i) 7,7 (n) 32,4 (t) 8,8 (s) ] TJ / F8 1 Тс 20,7245 0 TD 0 Тс (q) Tj / F4 1 Тс 0,484 0 TD 0,3492 Тс [(, а) 354.2 (l) 352 (l) -11 (r) 344,9 (a) 354,2 (d) 343,7 (i) 352 (i)] TJ / F8 1 Тс 4.3781 0 TD 0 Тс (r) Tj / F4 1 Тс 0,484 0 TD -0,0036 Тс [(,) - 352,8 (a) 1,4 (n) -9,1 (d) -350,1 (все) -363,8 (клетки)] TJ / F8 1 Тс 6,1821 0 TD 0 Тс (C) Tj / F4 1 Тс 1,133 0 TD -0,004 Тс [(in) -350,5 (th) -9,5 (e) -351,6 (h) -9,5 (is) -5,6 (togr) -8,3 (am) -6,7 (,)] TJ -33,3858 -1,243 TD [(он) -9,5 (e) -318,6 (o) 1 (f) -325,5 (t) -0,1 (h) -9,5 (e) -318,6 (f) -6,5 (o) 1 (llo) »34 (w) ) -7,8 (i) -1,2 (n) -9,5 (g) -329 (t) 32,9 (w) 25,2 (o) -329 (c) 0,4 (on) -9,5 (d) -9,5 (i) -1,2 (тион) -9,5 (т) -324,6 (з) -9,5 (старый) -9,5 (,) - 320.2 (th) -9,5 (en) -317,5 (th) -9,5 (e) -318,6 (p) -9,5 (r) -8,3 (o) 1 (b) -9,5 (a) 1 (b) -9,5 ( илилит) 32,9 (у) -323,2 (т) -0,1 (з) -9,5 (а) 1 (т) -330,1 (т) -0,1 (з) -9,5 (д) -318,6 (ад) -9,5 (в) 28,8 (e) 0,4 (r) -8,3 (s) -5,6 (ar) -8,3 (y) -323,2 (\ ()] TJ / F8 1 Тс 35,784 0 TD -0,0037 Тс [(c,) - 165.9 (t)] ТДж / F4 1 Тс 1,232 0 TD -0,0038 тс [(\) - есть) -5,4 (олаты)] TJ -37,016 -1,243 ТД -0,0042 Тс [(ан) 23,3 (y) -345,4 (p) -42,7 (oin) 23,3 (t) -330,3 (дюйм) -339,7 (R) -5,1 (D) 0,7 (B) -340,9 (i) -1,4 (с) ) -346,8 (а) 0,8 (т) -341,3 (м) -6,9 (ос) -5,8 (т)] ТДж / F8 1 Тс 12,8813 0 TD

ER Diagram Tutorial | Полное руководство по диаграммам отношений между сущностями

Итак, вы хотите изучить диаграммы взаимоотношений сущностей? В этом руководстве по диаграмме ER будет рассказано об их использовании, истории, символах, обозначениях и о том, как использовать наше программное обеспечение для создания диаграмм ER для их рисования.Мы также добавили несколько шаблонов, чтобы вы могли быстро приступить к работе.

Что такое ER-диаграмма?

Диаграмма взаимосвязей сущностей (ERD) - это визуальное представление различных сущностей в системе и их взаимосвязи . Например, автор элементов, роман и потребитель могут быть описаны с помощью диаграмм ER следующим образом:

Диаграмма ER с основными объектами

Они также известны как модели ERD или ER. Нажмите на ссылки ниже, если вы хотите узнать что-то конкретное о диаграммах ER.

История диаграмм ER

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

Питеру Чену приписывают введение широко принятой модели ER в его статье «Модель взаимоотношений сущностей - к единому представлению данных». Основное внимание было уделено сущностям и отношениям, и он также представил схематическое представление для проектирования баз данных.

Его модель была вдохновлена ​​диаграммами структуры данных, представленными Чарльзом Бахманом. Одна из первых форм ER-диаграмм, диаграммы Бахмана, названы в его честь.

Подробную историю диаграмм ER и оценку моделирования данных см. В этой статье.

Использование диаграмм ER

Для чего нужны диаграммы ER? Где они используются? Хотя их можно использовать для моделирования практически любой системы, они в основном используются в следующих областях.

ER-модели в проектировании баз данных

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

ER-диаграммы в программной инженерии

Диаграммы взаимосвязей сущностей используются в разработке программного обеспечения на этапах планирования программного проекта. Они помогают идентифицировать различные элементы системы и их отношения друг с другом. Он часто используется в качестве основы для диаграмм потоков данных или широко известных DFD.

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

Пример диаграммы ER с сущностью, имеющей атрибуты

На схеме информация внутри овалов является атрибутами определенного объекта.

Символы и обозначения на схемах ER

Элементы в диаграммах ER

В диаграмме ER есть три основных элемента: сущность, атрибут, связь.Есть еще элементы, основанные на основных элементах. Это слабая сущность, многозначный атрибут, производный атрибут, слабая связь и рекурсивная связь. Кардинальность и порядковость - это два других обозначения, которые используются в диаграммах ER для дальнейшего определения отношений.

Организация

Сущность может быть человеком, местом, событием или объектом, относящимся к данной системе. Например, школьная система может включать студентов, учителей, основные курсы, предметы, плату и другие предметы.Сущности представлены на диаграммах ER прямоугольником и названы с использованием существительных в единственном числе.

Слабая сущность

Слабый объект - это объект, который зависит от существования другого объекта. В более технических терминах его можно определить как объект, который нельзя идентифицировать по его собственным атрибутам. Он использует внешний ключ в сочетании с его атрибутами для формирования первичного ключа. Такой объект, как элемент заказа, является хорошим примером для этого. Позиция заказа будет бессмысленной без заказа, поэтому это зависит от наличия заказа.

Пример слабой сущности на диаграммах ER
Атрибут

Атрибут - это свойство, признак или характеристика объекта, отношения или другого атрибута. Например, атрибут «Имя предмета инвентаризации» является атрибутом объекта «Предмет инвентаризации». У объекта может быть столько атрибутов, сколько необходимо. Между тем, атрибуты также могут иметь свои собственные специфические атрибуты. Например, атрибут «адрес покупателя» может иметь атрибуты номер, улица, город и штат. Они называются составными атрибутами.Обратите внимание, что некоторые диаграммы ER верхнего уровня не показывают атрибуты для простоты. Однако в тех, что есть, атрибуты представлены овальными формами.

Атрибуты в диаграммах ER, обратите внимание, что атрибут может иметь свои собственные атрибуты (составной атрибут)
Многозначный атрибут

Если атрибут может иметь более одного значения, он называется многозначным атрибутом. Важно отметить, что это отличается от атрибута, имеющего свои собственные атрибуты. Например, объект «учитель» может иметь несколько значений предмета.

Пример многозначного атрибута
Производный атрибут

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

Производный атрибут в диаграммах ER

Отношения

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

Использование отношений в диаграммах отношений сущностей
Рекурсивные отношения

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

Пример рекурсивной связи в диаграммах ER
Количество элементов и порядков

Эти два дополнительно определяют отношения между сущностями, помещая отношения в контекст чисел.Например, в системе электронной почты у одной учетной записи может быть несколько контактов. В данном случае отношения строятся по модели «один ко многим». Существует ряд обозначений, используемых для представления мощности на диаграммах ER. Chen, UML, Crow’s Foot, Bachman - вот некоторые из популярных обозначений. Creately поддерживает нотации Chen, UML и Crow’s Foot. В следующем примере используется UML для отображения количества элементов.

Количество элементов в диаграммах ER с использованием нотации UML

Как рисовать диаграммы ER

Пункты ниже показывают, как создать диаграмму ER.

  1. Определите все объекты в системе. Сущность должна появляться на конкретной диаграмме только один раз. Создайте прямоугольники для всех объектов и назовите их правильно.
  2. Определите отношения между сущностями. Соедините их линией и добавьте ромб в центре, описывающий отношения.
  3. Добавьте атрибуты для сущностей. Дайте содержательные имена атрибутов, чтобы их можно было легко понять.

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

Рекомендации по диаграмме ER
  1. Укажите точное и подходящее имя для каждого объекта, атрибута и отношения на схеме. Простые и знакомые термины всегда лучше расплывчатых, технических слов. При именовании сущностей не забывайте использовать существительные в единственном числе. Однако прилагательные могут использоваться для различения сущностей, принадлежащих к одному и тому же классу (например, работающий неполный рабочий день и сотрудник, работающий полный рабочий день). Между тем имена атрибутов должны быть значимыми, уникальными, независимыми от системы и легко понятными.
  2. Удалите расплывчатые, повторяющиеся или ненужные связи между объектами.
  3. Никогда не связывайте отношения с другими отношениями.
  4. Эффективно используйте цвета. Вы можете использовать цвета для классификации похожих объектов или для выделения ключевых областей на диаграммах.
Рисование диаграмм ER с использованием Creately

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

Шаблоны схем ER

Ниже приведены несколько шаблонов диаграмм ER, чтобы вы могли быстро начать работу. Щелкните изображение и на открывшейся новой странице нажмите кнопку «Использовать как шаблон». Дополнительные шаблоны см. В разделе «Шаблоны диаграмм ER».

Шаблон ER Diagram базы данных экзаменов (щелкните изображение, чтобы использовать его в качестве шаблона)

Базовый шаблон ER-диаграммы для быстрого старта

Базовый шаблон ER-диаграммы (Нажмите, чтобы использовать как шаблон)

Преимущества ER-диаграмм

Диаграммы

ER представляют собой очень полезную основу для создания и управления базами данных. Во-первых, диаграммы ER просты для понимания и не требуют от человека серьезного обучения, чтобы работать с ними эффективно и точно. Это означает, что дизайнеры могут использовать ER-диаграммы, чтобы легко общаться с разработчиками, клиентами и конечными пользователями, независимо от их ИТ-навыков.Во-вторых, диаграммы ER легко переводятся в реляционные таблицы, которые можно использовать для быстрого создания баз данных. Кроме того, ER-диаграммы могут напрямую использоваться разработчиками баз данных в качестве схемы для реализации данных в конкретных программных приложениях. Наконец, ER-диаграммы могут применяться в других контекстах, например, для описания различных отношений и операций внутри организации.

Отзыв об Учебном пособии по ER-диаграмме

Я приложил все усилия, чтобы охватить все, что вам нужно знать об ER-диаграммах.Если вы думаете, что я пропустил какую-то часть, обязательно укажите это в комментариях. Это хорошее место, чтобы задавать вопросы. Если вопрос задают часто, я добавлю его в раздел часто задаваемых вопросов.

Список литературы

1. Модель сущности-отношения, опубликованная в Википедии.
2. Диаграмма отношений сущностей Майка Чаппла, опубликованная на веб-сайте About.com
3. Моделирование отношений сущностей Крейга Борисовича, опубликованная на веб-сайте Toolbox.com

Что такое облачное хранилище, часть 2

26 мая 2020 г., Шивон Климер и Майк Черняк

Этот блог является второй частью руководства по облачному хранилищу из трех частей, первоначально опубликованного в июне 2018 г. и недавно обновленного.В части 1 мы изучили основы облачных вычислений. В части 3 мы обсудим, как использовать облачные вычисления для вашего бизнеса.

Часть 1: Что такое облачное хранилище?

Часть 2: Типы облачных хранилищ

Часть 3. Использование облака для бизнеса

Глубокое погружение: различные типы облачного хранилища

Недавно мы спросили: «Что такое облачное хранилище? Если вы не помните, облачное хранилище хранилище - это процесс хранения цифровых данных в онлайн-пространстве, охватывающем несколько серверов и местоположений, и обычно он поддерживается хостинговой компанией.

Изучив высокоуровневую механику облачного хранилища, мы решили, что, вероятно, остались некоторые вопросы, например:

Мы рассмотрим эти различные типы облачных хранилищ и объясним архитектуру облачных хранилищ. Этот обзор может помочь вам определить, какие облачные решения могут лучше всего работать для вас и вашего бизнеса.

Что такое архитектура облачного хранилища?

Определение: Архитектура облачного хранилища относится к взаимосвязи между компонентами, необходимыми для формирования сети облачных вычислений.Подумайте о интерфейсных платформах, серверных платформах, облачных развертываниях, базах данных, приложениях, возможностях программного обеспечения и т. Д. Эти различные элементы работают вместе, образуя фундаментальную архитектуру «облака».

Различные компоненты и подкомпоненты можно разделить на следующие четыре категории инфраструктуры:

  1. Локально
  2. Облако
  3. Программное обеспечение
  4. Промежуточное ПО

Эти различные компоненты работают вместе различными способами, образуя фундаментальные строительные блоки любой облачной службы.Облачные сервисы, такие как «Программное обеспечение как услуга» (SaaS), «Платформа как услуга» (PaaS) и «Инфраструктура как услуга» (IaaS), имеют свою собственную облачную архитектуру.

Например, SaaS предоставляет приложения пользователям через Интернет, поэтому данные, промежуточное ПО, серверы и хранилище полностью управляются поставщиком SaaS (например, MS Office 365). На другом конце спектра IaaS позволяет компаниям управлять приложениями, OpSys, промежуточным программным обеспечением и данными. Эта модель самообслуживания предлагает гибкое, основанное на потреблении решение облачных вычислений.

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

Если вы планируете миграцию в облако, начните с нашего отчета Cloud Insights.

Что такое общественное или общественное? Частный Vs. Гибридные облака?

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

Публичное облако

Вы, наверное, слышали об Amazon Web Services (AWS), IBM Cloud, Google Cloud и Microsoft Azure. Все это примеры поставщиков общедоступного облака. Практически эти поставщики владеют всей облачной архитектурой - оборудованием, программным обеспечением и прочей инфраструктурой - и управляют ею, а также предоставляют ее в виде облачной службы через Интернет.

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

  • Высокая масштабируемость
  • Экономичный
  • Высокая надежность
  • Экспертный мониторинг
  • Нет обслуживания

Частное облако

В отличие от общедоступного облака частное облако используется только одной организацией.Более крупные предприятия с критически важными данными, требующими дополнительной безопасности (например, правительственные учреждения, финансовые учреждения или медицинские организации), с большей вероятностью будут использовать решение частного облака. Инфраструктура частного облака может располагаться как локально, так и у стороннего поставщика. В любом случае, оборудование и услуги предназначены. Частное облако предлагает множество преимуществ:

  • Высокая масштабируемость
  • Высокоэффективный
  • Лучшая безопасность
  • Настраиваемый

Гибридное облако

Как следует из названия, гибридное облако объединяет общедоступные и частные облачные решения в уникальный тип облачного хранилища, который предлагает преимущества обоих.При необходимости данные и приложения могут перемещаться между публичным и частным облаками, что обеспечивает повышенную гибкость. Большинство предприятий могут использовать общедоступное облако для определенных аспектов своей работы, таких как веб-почта, но может потребоваться частное облако для хранения безопасных журналов данных. Гибридное облачное решение сочетает в себе общедоступные и частные облака для создания уникального решения. Гибридное облако предлагает множество преимуществ:

  • Большой контроль
  • Широкие возможности настройки
  • Экономичный

Что такое файловое, блочное и объектное хранилище?

Различные типы облачных хранилищ основаны на архитектуре этих систем.Но как тогда эти данные хранятся внутри?

По сути, различные типы архитектур облачных хранилищ основаны на понимании хранилища данных. Возможно, вы помните время, когда сохранение отдельных файлов в локальных файловых системах на отдельных рабочих столах было нормой. Боже, как все изменилось! Давайте рассмотрим три уровня архитектуры хранилища: файловое, блочное и объектное.

Файл

Файловое хранилище - это простой и понятный подход к хранению данных.

Ретро или нет, файловое хранилище хорошо работает для организации данных в иерархической, простой и доступной платформе. Ключом к успешному файловому хранилищу является документированная стратегия номенклатуры (именования) и регулярная очистка. Хранение файлов, также известное как общая файловая система, хорошо подходит для совместного использования файлов, архивирования и защиты данных. Однако у архитектуры есть свои недостатки; неограниченная масштабируемость означает неограниченное количество файлов, которые нужно прочесать при поиске того, что вам нужно.

Блок

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

Объект

Новое детское блочное хранилище (понимаете?), Объектно-ориентированное хранилище развернуто для обработки неструктурированных данных (видео, фотографии, аудио, файлы для совместной работы и т. Д.)). В основном, когда данные большие или общие, объектное хранилище работает, сохраняя данные в контейнерах или «корзинах». Программное обеспечение для совместной работы использует хранилище объектов, поскольку оно работает на нескольких уровнях, от уровня устройства до интерфейса.

Ввиду стремительного роста объемов данных, освещаемых в новостях практически каждый день, имеет смысл создать новый вид хранилища, обеспечивающий большую гибкость и масштабируемость. Зависимость объектного хранилища от API-интерфейсов REST обеспечивает доступ к объектам через HTTP, что упрощает доступ для аутентификации, разрешений и свойств.

Что дальше?

Теперь, когда вы понимаете основы облачных вычислений и имеете более глубокое архитектурное представление о различных типах облачных хранилищ, что дальше? Как вы можете использовать эту информацию для своего бизнеса? Мы знаем, что эти нерешенные вопросы жизненно важны для применения теории в осмысленной практике, которая приведет к победам для вас и вашей команды.

Следите за обновлениями, чтобы увидеть последнюю часть нашей серии статей «Что такое облачное хранилище», в которой мы ответим следующее:

  • Как можно защитить свои данные в облаке?
  • Как выглядит стратегия миграции в облако?
  • Как можно использовать облачные сервисы в бизнес-стратегии?
  • Какое облачное решение вам подходит?

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

Свяжитесь с нами, чтобы узнать больше.

Нравится то, что вы читаете?

О компании Mindsight

Mindsight - признанный в отрасли поставщик безопасных ИТ-решений и интеллектуальное лидерство, отвечающее потребностям вашей инфраструктуры и коммуникаций. Наши инженеры обладают только экспертным уровнем, и они известны как наиболее уважаемая и ценная команда инженеров из Чикаго, обслуживающая новые предприятия по всему миру.Вот почему клиенты доверяют Mindsight как продолжению своей ИТ-команды.

Посетите нас на http://www.gomindsight.com.

Об авторах

Майк Черняк - вице-президент Project Services в компании Mindsight, занимающейся ИТ-услугами и консультированием, расположенной в районе Чикаго. Обладая 20-летним опытом работы в области информационных технологий и облачных технологий, Майк помог сотням организаций в разработке, внедрении и развертывании облачных решений.Последние 5 лет Майк сосредоточил свои усилия на предоставлении клиентам Mindsight рекомендаций по использованию облака и управлению им. Майк имеет сертификаты AWS, Microsoft Azure, VMware и по-прежнему глубоко заинтересован в предоставлении независимой консультативной помощи организациям, находящимся на пути к облаку. В свободное время Майк любит кататься на велосипеде со своим 9-летним сыном, недавно завершившим 50-мильный велопробег!

Шивон Климер, автор статей в журнале Mindsight по науке и технологиям, пишет о технологических тенденциях в образовании, здравоохранении и бизнесе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *