Монтаж стальных ферм (конструкций) и покрытий
Лестницы устанавливают в нескольких местах по внешнему контуру и внутри здания. Маршевая лестница состоит из секций длиной 6,9 м, сечением 1,7х3 м с фланцевыми болтовыми соединениями. В каждом отдельном случае может быть набрана необходимая длина лестницы. Нижняя секция имеет опорный башмак, позволяющий устанавливать ее на грунт, щебеночное основание или фундамент в зависимости от местных условий. Лестницу крепят к каркасу через промежутки не более 9,2 м.
Одним из резервов повышения производительности труда на монтаже зданий и сооружений значительной высоты является применение инвентарных грузопассажирских подъемников. Последние устанавливают в местах необходимого подъема рабочих и подачи мелких грузов. Использование таких подъемников обеспечивает: экономию времени (до 10% в смену), повышение производительности труда, уменьшение физических нагрузок рабочих, связанных с подъемом на высоту. Монтажные инвентарные лестницы, подвесные площадки, люльки рассчитаны на нагрузку от массы находящихся на них рабочих с инструментом. Принята следующая нормативная нагрузка для расчета: щитов — равномерно распределенная 2 кН/м, сосредоточенная 1,3 кН; лестниц, ступеней и тетив — сосредоточенная 1 кН; крючьев — 2 кН; площадок на двух рабочих — две сосредоточенных по 1 кН; люлек на одного рабочего и стремянок — сосредоточенная 1 кН; стоек перил — горизонтальная 0,25 кН.
Все конструкции необходимо испытывать в рабочем положении. Для испытания люлек, лестниц и площадок приняты нагрузки, превышающие расчетные временные в 1,25 раза, кроме элементов подвесных крючьев, которые должны испытываться на двойную расчетную временную нагрузку.
5. ОХРАНА ОКРУЖАЮЩЕЙ СРЕДЫ И ПРАВИЛА ТЕХНИКИ БЕЗОПАСНОСТИ
При производстве монтажных работ возникает необходимость в выполнении не только собственно монтажных, но и многих других процессов и операций: погрузочно-разгрузочных, электро- и газосварочных, противокоррозионных, бетонных, а также работ, связанных с устройством и эксплуатацией лесов, подмостей, лестниц и других приспособлений для выполнения работ на высоте, испытанием смонтированных конструкций и др. Для осуществления их применяют машины, оборудование, технологическую оснастку, различные приспособления и устройства. Поэтому в процессе производства монтажных работ необходимо соблюдать не только общие, но и специальные правила техники безопасности в зависимости от вида выполняемых процессов и операций и применяемых машин и оборудования.
К производству монтажных работ могут быть допущены рабочие, прошедшие специальный медицинский осмотр, обученные технологии монтажных работ и правилам техники безопасности при их выполнении, сдавшие экзамены и имеющие удостоверение на право производства работ. Монтажные работы в строительстве являются в основном верхолазными. К ним относятся все работы, которые выполняются на высоте более 5 м от поверхности грунта, перекрытия или рабочего настила. К самостоятельному выполнению верхолазных работ допускаются лица не моложе 18 и не старше 60 лет, прошедшие медицинский осмотр, имеющие стаж верхолазных работ не менее одного года и тарифный разряд не ниже третьего. Вновь поступающие рабочие могут быть допущены к работе только после прохождения ими вводного (общего) инструктажа по технике безопасности и производственной санитарии; инструктажа по технике безопасности непосредственно на рабочем месте, который следует проходить при каждом переходе на другую работу или при изменении условий работы; рабочие комплексных бригад должны быть проинструктированы и обучены безопасным приемам по всем видам работ, выполняемых ими. Повторный инструктаж следует производить для всех рабочих не реже одного раза в три месяца. Проведение инструктажа регистрируется в специальном журнале.
Для обеспечения безопасных условий труда при монтаже зданий до начала производства работ в монтажных организациях должны быть: назначены ответственные лица за организацию работ на монтажной площадке и за безопасную эксплуатацию грузоподъемных приспособлений в соответствии с требованиями Правил устройства и безопасной эксплуатации грузоподъемных кранов; выдано на руки такелажникам или вывешено в местах производства графическое изображение способов строповки монтируемых элементов; в кабине крановщика и на кране вывешен перечень перемещаемых элементов с указанием их массы; такелажники и крановщики монтажных кранов проинструктированы о последовательности подачи монтируемых элементов и порядке подачи сигналов между собой и монтажниками; установлен порядок профилактических осмотров и ремонта, обеспечивающий содержание грузозахватных приспособлений в исправном состоянии; установлен определенный порядок обучения и периодической проверки знаний рабочих-монтажников безопасным методам труда при монтаже зданий.
Территория строительно-монтажной площадки во избежание доступа посторонних лиц должна быть ограждена забором высотой не менее 2 м. Забор, расположенный на близком расстоянии (8…10 м) от возводимого здания, строят с защитным козырьком. К строительно-монтажной площадке обеспечивается свободный подъезд. По всей территории площадки вывешивают указатели проходов и проездов. На тупиковых временных дорогах устраивают петлевые объезды или площадки размером не менее 12х2 м для разворота транспортных и пожарных автомобилей. Все подъезды к площадке, дороги и территория площадки в ночное время должны быть освещены.
В зоне работ должны быть установлены предупредительные и запрещающие знаки. Опасные зоны ограждают или выставляют на их границах сигнальщиков. На границах опасных зон устанавливают знаки и надписи, хорошо видимые в дневное и ночное время, предупреждающие об опасности или запрещающие движение.
Устройство фермы для крыши. Как сделать крышу дома фермой? – ZinСo
С каждым годом мегаполисы отвоевывают все больше и больше территорий. Уже более 50% всех людей на нашей планете живут на территориях городов. Зеленых зон, которые не были застроены человеком, остается все меньше. Сокращаются площади сельскохозяйственных земель, ухудшается экология. Одной из мер, которая может противостоять этим негативным фактором, является устройство зеленых крыш. Тем более, что на их территориях можно выращивать не только декоративные растения, но и травы, овощи и фрукты.
Свежее – значит полезное и вкусное
Размещение огородов и теплиц на поверхностях кровель имеет немало преимуществ. Одно из основных среди них – максимальная близость к потребителю. Это значит, что люди могут получать свежие и вкусные плоды, а их доставка не потребует транспортировки на дальние расстояния и, как следствие, не станет причиной большого количества вредных выбросов в атмосферу. Помимо этого, любые растения очищают и охлаждают воздух, способствуя улучшению климата в городских условиях.
Инновационная система
Для того, чтобы садоводство на крыше стало возможным, необходимо обеспечить все необходимые условия для роста и жизнедеятельности растений. Именно для этого специалистами компании ZinCo была разработана специальная система «Фермы на городских крышах», предусматривающая все нюансы подобных проектов. В том числе, она предполагает использование дренажного слоя Floradrain® FD 60 neo, позволяющего отвести лишнюю влагу от корней и обеспечить сохранение дождевой воды для полива растений.
При использовании почвенного субстрата ZinCo высотой порядка 20 см на крыше можно будет выращивать лук, салат и другую зелень, баклажаны, кабачки, капусту, тыкву, клубнику, дыню и другие культуры. Если же применить слой субстрата высотой от 28 до 40 см, то на нем можно будет выращивать зеленую фасоль, помидоры, ежевику, малину, смородину, и так далее.
Особенности подкормки и полива посадок зависят от выбранных растений и климатических условий. Для зеленых кровель рекомендуется прибегать к органическим удобрениям. Не стоит перебарщивать с их использованием, чтобы не создать чрезмерное воздействие на сток. При проектировке систем «Фермы на городских крышах» обязательно должны быть учтены особенности здания и самой кровли (ветер, водоотведение, способности несущей конструкции).
Безопасность при выходе на крышу
Во всех системных решениях ZinCo предусмотрены элементы безопасности, защищающие выходящих на крышу людей от падения. Это ограждения и другие устройства, установка которых может быть выполнена без глубокого внедрения в кровлю.
1 — Фрукты и овощи, зелень
2 — Системный субстрат «Газон»
3 — Системный фильтр TG
4 — Дренажный элемент: Floradrain® FD 60 neo
5 — Изоляционный мат ISM 50
6 — Защита от прорастания корней
7 — Конструкция крыши
ПРИМЕЧАНИЕ
Детализированное описание кровельного пирога относится именно к вопросу озеленения кровли. Конструкция зеленой крыши изображена схематически. При работе над реальным заказом она проектируется и создается в полном соответствии со всеми нормами (в том числе, с требованиями гидроизоляции) и особенностями конкретного здания.
Количество городов и их площади постоянно возрастают, более 50% всех людей на планете живут в городах. Территории, покрытые растительностью, неуклонно сокращаются. Ответом на эту неутешительную тенденцию может стать организация ферм непосредственно на крышах. Технологии ZinCo позволяют создавать зеленые кровли, которые можно использовать для выращивания сельскохозяйственных культур (трав, овощей и фруктов).
Устройство фермы
- Оленеферма
- Животные
- Продажа
Основное здание предназначено для зимнего содержания поголовья и представляет собой строение с полностью изменяемой внутренней архитектурой, которое может подстраиваться под любые задачи.
Восемь загонов по 50 кв. м, расположенных симметрично в два ряда относительно прохода, могут объединяться в зависимости от количества содержащихся в них животных. Каждый из восьми блоков оборудован кормушкой для грубых кормов и подогреваемой поилкой, вода в которой даже в самый сильный мороз имеет температуру 37 ºС.
Конструкция здания такова, что полностью защищает от сквозняков зону нахождения животных, при этом обеспечивая постоянный приток свежего воздуха. Высота здания в коньке – около 10 метров, что, наряду с вентиляционными отверстиями в стенах, обеспечивает отсутствие скапливания аммиака и других вредных оленям испарений.
Пол в здании бетонный, сделанный по технологии плавающих плит. В течение всего стойлового периода олени содержатся на глубокой несменяемой травяной подстилке.
РасколКонструкция раскола аналогична зданию для зимнего содержания: открытое пространство, естественное освещение, бетонный пол по системе плавающих плит. Внутри установлена система ворот и коридоров, позволяющая отделять животных и группировать их по любым признакам. Раскол оснащен всем необходимым для полноценной работы – электронным весовым устройством и гидравлической системой иммобилизации животных, с помощью которой можно фиксировать оленей для ветеринарных мероприятий.
В расколе производятся все необходимые ветеринарные и зоотехнические процедуры: установка ушных меток, вакцинации, резка рогов перед случным периодом, а также другие необходимые обработки.
Система вольеров и прогоновПроект вольеров был создан при помощи английских специалистов с учетом рельефа российской местности. На площади 38 га было нарезано 8 вольеров площадью от 2 до 8 га каждый и разработана система прогонов с таким расчетом, чтобы оленей можно было быстро переместить из каждого вольера в любой другой, а также при необходимости прогнать через раскол.
Количество вольеров было выбрано с тем расчетом, чтобы использовать их попеременно, поскольку олени быстро съедают и вытаптывают траву там, где живут. В пустых вольерах можно перепахать землю и посеять нужные комбинации трав и дать ей вырасти до момента перегона животных.
Во времягона, примерно с начала сентября, оленей расселяют в отдельные вольеры по гаремам: на одного быка примерно 30…50 самок. Только так можно проконтролировать родословную каждого племенного животного на ферме.
Ограждение вольера сделано из толстостенных металлических труб и специализированной сетки, созданной специально для лесных животных. Высота ограждений – 2,4 м, каждый вольер оборудован минимум двумя воротами и поилкой.
Полы для ферм и животноводческих комплексов
Коровники
Курятники
Свинарники
На сельскохозяйственных объектах, где выращиваются животные и птицы, к полам предъявляются повышенные требования, поскольку от их качества зависит продуктивность и состояние здоровья поголовья. Именно поэтому при оборудовании помещений ферм особое внимание уделяют качеству напольных покрытий, обеспечению их прочности, гигиеничности, долговечности.
Полы животноводческих комплексов должны характеризоваться:
- стойкостью к механическим нагрузкам – масса животных, техники, сила трения, возникающая в результате их перемещения;
- устойчивостью к органическим и химическим соединениям – на полы для ферм постоянно попадают продукты жизнедеятельности животных, остатки корма, которые могут содержать остатки удобрений, специальные составы. При этом важно, чтобы с поверхности подобные загрязнения легко удалялись;
- стойкостью к перепадам температуры и влажности – важно, чтобы пол выдерживал подобные воздействия без образования дефектов;
- простотой ухода – полы животноводческих комплексов требуется убирать по несколько раз в день с применением специальных составов, и это должно занимать минимум времени.
Примеры работ
Наиболее полно всем вышеперечисленным требованиям отвечают наливные полимерные полы на основе полиуретановых и эпоксидных смол.
Преимущества наливных полов для ферм
Полимерный наливной пол представляет ровную бесшовную поверхность, которая не требует сложной подготовки основания, отличается простотой обслуживания и высокой скоростью высыхания. Помимо выше перечисленных качеств, наливные полы характеризуются:
- нескользящей поверхностью, не имеющей стыков – таким образом, минимизируется риск травмирования животных и персонала фермы;
- высокой прочностью поверхности, выдерживающей постоянные механические нагрузки;
- экологичностью и гигиеничностью – полимерный пол не выделяет опасных соединений, не поддерживает размножение микроорганизмов, благодаря чему сокращаются риски распространения опасной для животных инфекции;
- пожаробезопасностью – полимерная поверхность не плавится и препятствует распространению пламени;
- простотой ремонта – качественно выполненное покрытие служит долго (10-15 лет), при этом механически поврежденные участки быстро и легко ремонтируются, без привлечения спецтехники и необходимости останавливать работу сельхозкомплекса.
Укладка пола для ферм включает несколько этапов:
- Бетонное основание предварительно очищается, выравнивается, обеспыливается.
- На поверхность наносится слой грунта, при необходимости – гидроизоляция (наиболее распространенный вариант – полимочевина).
- Далее заливается полимерный состав в 1-2 слоя, разравнивается и затирается. В течение 5-10 дней покрытие набирает окончательную прочность, но приступать к эксплуатации можно уже через 2-3 дня.
Чаще всего в помещениях фермы оборудуют бетонные полы с топпингом, нанесение которого позволяет существенно повысить эксплуатационные характеристики основания. Данный вид наливных полов приобрел широкую популярность благодаря оптимальному сочетанию качества и стоимости. Устройство эпоксидного наливного пола обойдется чуть дороже, однако такое покрытие превосходит бетонный пол по техническим характеристикам, имея долговечную, бесшовную и абсолютно безопасную для животных (экологичную и нескользкую) поверхность.
В случае очень высокой нагрузки возможно устройство высоконаполненных покрытий – толщиной от 5 мм с дополнительным армированием.
Стоимость устройства пола
Наименование | Стоимость руб/кв.м. |
---|---|
Устройство подстилающего бетонного основания без армирования | 600 |
Бетонное армированное основание, с вибрированием и затиркой | 800 |
Бетонное армированное основание, с вибрированием и затиркой, с нарезкой деформационных швов | 1000 |
Бетонное армированное основание, с вибрированием и затиркой, с промежуточной полимерной гидроизоляцией, с нарезкой деформационных швов | 1350 |
Бетонное армированное основание, с вибрированием и затиркой, с упрочненным верхним слоем – топпинг (кварц), с нарезкой деформационных швов | 1380 |
Бетонное армированное основание, с вибрированием и затиркой, с упрочненным верхним слоем – топпинг (коррунд), с нарезкой деформационных швов | 1430 |
Монолитное бетонное основание с пространственным армированием с вибрированием и затиркой, с упрочненным верхним слоем – топпинг (кварц), с нарезкой деформационных швов | 1990 |
Монолитное бетонное основание с пространственным армированием с вибрированием и затиркой, с упрочненным верхним слоем – топпинг (коррунд), с нарезкой деформационных швов | 2050 |
Устройство цементно-песчаной стяжки с армированием полипропиленовым фиброволокном (толщина до 30 мм) | 800 |
Устройство цементно-песчаной стяжки с армированием полипропиленовым фиброволокном (толщина 30-60 мм) | 980 |
Устройство цементно-песчаной стяжки с армированием полипропиленовым фиброволокном (толщина от 60 мм) | 1100 |
Устройство упрочненного верхнего слоя бетонного основания (топпинг) | 400 |
Полиуретановые наливные полы | 950 |
Эпоксидные наливные полы | 1050 |
Антистатические (токопроводящие) наливные полы | 1500 |
Высоконаполненные наливные полы | 1200 |
Антискользящие наливные полы | 1100 |
Вы можете примерно оценить стоимость работы с помощью калькулятора
Специалисты Polimer-S-Group изготовят наливное напольное покрытие оптимального типа для ферм и животноводческих комплексов в кратчайшие сроки, с использованием современного оборудования и материалов.
Какое бывает оборудование для фермы улиток
Уже давно ни секрет, что улитки перекочевали из садов, лужаек, виноградников в комфортные условия обитания: квартиры, аквариумы, вольеры, фермы. И теперь человек создает им благоприятные условия содержания, поддерживая все жизненно важные процессы.
- Актуальность, применение, спрос.
- Бизнес план по улиточной ферме.
- Как открыть свою улиточную ферму.
- Разведение, вольер для виноградных улиток.
- Оборудование для фермы улиток.
Но, когда у вас один питомец, который живет в контейнере или моллюскариуме, и совсем другое, если вы решили заняться разведением улиток.
Давайте разбираться, что нужно знать, чтобыбизнеспо разведениюмоллюсков стал успешным:То, что этот бизнес актуален, сомневаться не приходиться. Ведь сейчас все больше людей задумываются о здоровом образе жизни, находя правильные продукты питания.Так как улиточное мясо, считается экологически чистым, обогащенным полезным белком, с минимальным содержанием жира, холестерина, богато комплексом аминокислот, то, как известно, спрос всегда рождает предложение.В медицине и косметологииприменяют слизь моллюсков, исследуя как лекарство от болезней дыхательных путей.Спрос, объясняется растущей популярностью, постоянным увеличением количества потребления, отсутствием большого количества конкурентов в этом бизнесе.
Бизнес план по улиточной фермеКак любое другое дело, данный вид бизнеса тоже требует внимательного подхода и изучения всех аспектов, потому что это не просто интересная идея бизнеса, но и вполне прибыльно. На следующем этапе, необходимо просчитать все возможные риски, капиталовложения, пути сбыта. Подробно изучить процесс разведения, организацию вольера или целого хозяйства. Выбрать систему налогообложения.
Как открыть свою улиточную ферму
Первоочередная задача – это поиск земли, на котором расположится будущая усадьба. Размеры напрямую зависят от количества особей, при условиях, приближенные к природным, — 1гк на 1м2 (примерно 35-40 моллюсков), либо промышленные объемы 200 штук на 1м2.Оптимальные сроки получения максимальной выгоды, составляют 1,5 года. Поэтому необходимо учесть, что зимой брюхоногое впадает в анабиоз. Но при наличии инкубатора с искусственной температурой можно сократить срок сна с 4-5 месяцев до 2-3.
Минимальные требования для фермы по разведению улиток:
- земля, с плотной растительностью
- вольер, защищающий от вредителей
- искусственный или подручный корм
- маточное стадо, готовое к размножению
Наземные брюхоногие не требуют повышенных условий содержания и организации, они спокойно существуют при температуре воздуха 23 – 250С; не прихотливы в еде, предпочитают свежие овощи, капусту, листья подорожника, винограда, смородины, одуванчика;размножаются один – двараза за сезон, откладывая кладку яиц до 80 штук; при длительном снижении температуры впадают в анабиоз до наступления потепления.Что быорганизовать улиточноехозяйствов домашних условиях этих знаний вполне достаточно. Что бы построить вольер, тоже не нужны особые затраты. Несколько брусьев, мелкая сетка и вольер готов. Условия, которым он должен соответствовать:
- надежность (чтобы питомцы не разбежались)
- защита (чтобы их не съели охотники на моллюсков)
- наличие минерального грунта (моллюски из почвы берут минералы для укрепления ракушки, в землю откладывают кладку, погружаются в анабиоз, зарывшись в почву)
- присутствие зелени, воды, воздуха, солнечных лучей.
Гелицекультура – это направление агротехнической деятельности, способной дать максимум прибыли за минимум времени. Подразумевает экологически безопасное производство, без причинения угрозы окружающей среды, без сокращения популяции биологического вида.
Если вы приняли решение создать полноценное предприятие по разведению улиток, тогда этот список необходимого оборудования пригодиться:
- помещение под маточное стадо с контролем темп (3 – 4 м2)
- помещение под выращивание молодняка (20 м2)
- стеллажи или брусья, чтобы моллюски свободно передвигались
- инкубаторы и кюветы под кладки яиц
- контейнеры для молодняка (20*30*20)
- вольер, в котором будет находиться молодое поколение
- корм, содержащий минералы (из расчета 2 кг на 40-50 особей)
- вермикультивирование (это скорее процесс, когда прибегают к услугам дождевых червей, чтобы очистить почву от продуктов жизнедеятельности моллюсков)
Фазенда по разведению виноградных улиток может быть двух типов: в помещении, по принципу теплиц, и на открытых участках, но с наличием помещений, что бы выращивать молодняк, кладки яиц.
Если не нарушать цикличности процесса, то доход будет стабильным, не подверженным к спаду.
Управление фермами — Azure for Industry: Agriculture
- Чтение занимает 2 мин
Please rate your experience
Хотите оставить дополнительный отзыв?
Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.
Отправить
Спасибо!
В этой статье
Вы можете управлять фермами в Azure FarmBeats. В этой статье рассказывается, как создать фермы, а также установить устройства, датчики и дронов, которые помогут вам управлять фермами.
Создание ферм
Выполните указанные ниже действия.
Выполните вход в ускорителе ферм, и откроется страница Фермы. На странице Фермы отображается список ферм, если они уже были созданы в подписке.
Ниже представлен образец изображения.
Нажмите Создать ферму и укажите имя, выращиваемые культуры и адрес.
В поле Определите границу фермы (оно обязательно к заполнению) выберите Отметить на карте или Вставить код GeoJSON.
Определить границу фермы можно двумя способами.
Отметить на карте. Рисование и обозначение границы фермы с помощью инструмента управления картой. Чтобы отметить границы, выберите инструмент и проведите точные границы.
Вставить код GeoJson. GeoJSON — это формат для кодирования структур географических данных с помощью нотации объектов JavaScript (JSON). При выборе этого варианта отображается текстовое поле, где можно ввести строку GeoJSON, обозначающую границы фермы. Вы также можете создать код GeoJSON на сайте GeoJSON.io. Подсказки помогут вам указать нужную информацию.
Нажмите кнопку Отправить, чтобы создать ферму. Будет создана новая ферма, которая появится на странице Фермы.
Просмотр фермы
На странице “Список ферм” отображается список созданных ферм. Выбрав ферму, вы увидите перечисленные ниже свойства.
- Количество устройств — количество и состояние устройств, установленных на ферме.
- Карта — карта фермы с установленными устройствами.
- Телеметрия — данные телеметрии с датчиков, установленных на ферме.
- Последние точные карты — карта спутниковых индексов (EVI, NDWI), тепловая карта влажности почвы и карта размещения датчиков, которые были созданы последними.
Редактирование фермы
На странице Фермы отображается список созданных ферм.
Выберите ферму, чтобы просмотреть и изменить ее.
Нажмите Изменить ферму, чтобы редактировать сведения о ферме. В окне Сведения о ферме можно редактировать поля Имя, Культуры и Адрес, а также определить границу фермы.
Нажмите кнопку Отправить, чтобы сохранить измененные сведения.
Удаление фермы
На странице Фермы отображается список созданных ферм. Чтобы удалить ферму, выполните указанные ниже действия.
Выберите ферму в списке, чтобы удалить сведения о ней.
Нажмите Удалить ферму, чтобы удалить ферму.
Примечание
При удалении фермы устройства и карты, связанные с ней, не удаляются. Никакие сведения о ферме, связанные с устройством и картами, не будут актуальными. Вы по-прежнему сможете просматривать устройства, данные телеметрии и карты в службе FarmBeats.
Дальнейшие действия
Теперь, когда вы создали ферму, узнайте, как настроить поток данных с датчиков в ферму.
Выносные фермы — Воротные системы
Я, субъект персональных данных, в соответствии с Федеральным законом от 27 июля 2006 года № 152 «О персональных данных» предоставляю ООО «Алюминиевые системы», расположенному по адресу 121596, Россия, г. Москва, ул. Горбунова, д. 2, стр. 3 согласие на обработку:
- персональных данных, сбор которых ООО «Алюминиевые системы» осуществляет при использовании сайта в сети «Интернет» https://www.vorota365.ru: IP-адрес, информация из cookie, информация о браузере пользователя (или иной программе, с помощью которой осуществляется доступ к https://www.vorota365.ru), время доступа, адрес запрашиваемой страницы сайта https://www.vorota365.ru, адрес ранее посещенной страницы сайта сети «Интернет», в целях: Маркетинговая аналитика.
- персональных данных, указанных мной на страницах сайта https://www.vorota365.ru в сети «Интернет», характер информации которых предполагает или допускает включение в них следующих персональных данных: ФИО, дата рождения, паспортные данные, адрес регистрации, контактный номер телефона, контактный адрес электронной почты, в целях: Ведение бухгалтерского учета, ведение базы данных клиентов, регистрация клиентов и потенциальных клиентов в базе данных клиентов..
Согласие предоставляется на совершение следующих действий (операций) с указанными в настоящем согласии персональными данными: сбор, систематизацию, накопление, хранение, уточнение (обновление, изменение), использование, передачу (предоставление, доступ), блокирование, удаление, уничтожение, осуществляемых как с использованием средств автоматизации (автоматизированная обработка), так и без использования таких средств (неавтоматизированная обработка).
Согласие действует по достижении целей обработки или в случае утраты необходимости в достижении этих целей, если иное не предусмотрено федеральным законом.
Согласие может быть отозвано мною в любое время на основании моего письменного заявления.
Цены наAWS Device Farm | Тестирование мобильных и веб-приложений
Тестирование на реальных мобильных устройствах
Плати как сможешь
Тестируйте на любом из наших устройств параллельно и платите только за то, что используете
Продолжительность бесплатного доступа к уровню
Ваши первые 1000 минут бесплатно *
Начать бесплатно »
Частные устройства
От 200 долларов в месяц
Тест на выделенных устройствах, развернутых исключительно для вашей учетной записи
Свяжитесь с нами »
Частные устройства
От 200 долларов в месяц.Свяжитесь с нами для индивидуального предложения.
Частные устройства позволяют указать точные конфигурации оборудования и программного обеспечения для ваших нужд тестирования. Физические устройства развертываются от вашего имени и доступны исключительно вам для автоматического тестирования и отладки
Когда вы решите прекратить подписку, оборудование будет удалено из нашей среды. Чтобы узнать больше о частных устройствах, свяжитесь с нами.
Чтобы просмотреть часто задаваемые вопросы о ценах, щелкните здесь.
* В течение ограниченного времени получите одноразовую пробную версию 1000 бесплатных минут для устройств вместо стандартных 250 минут для устройств.
Тестирование в настольных браузерах
Плати как сможешь
Тестируйте на любом из наших экземпляров браузера для настольных ПК параллельно и платите только за общую продолжительность выполнения теста.Продолжительность теста рассчитывается в минутах с момента начала выполнения ваших тестов в экземпляре браузера до момента завершения вашего теста.
Начать тестирование браузера »
Пример расценок для тестирования настольного браузера
Если вы выполняете тестовый запуск в Chrome v78, Chrome v77 и Firefox v68, и ваши тесты выполнялись в каждом из этих экземпляров браузера в течение 80 100 и 120 минут соответственно, то общая продолжительность вашего теста будет рассчитана как 300 минут.За этот тестовый запуск с вас будет взиматься плата в размере 1,50 доллара США (300 минут инстанса * 0,005 доллара США за минуту инстанса).
AWS Device Farm: часто задаваемые вопросы | Тестирование мобильных и веб-приложений
Тестирование вашего приложения
В. У меня пока нет сценариев автоматического тестирования. Что делают встроенные тесты?
Встроенный набор тестов на совместимость позволяет устанавливать, удалять, запускать и запускать Fuzz в приложении.
В: Что делает Fuzz?
Fuzz выполнит нечеткое тестирование вашего пользовательского интерфейса сразу после запуска. Он быстро передает в ваше приложение случайный пользовательский ввод (касания, смахивания, ввод с клавиатуры). Вы можете настроить количество событий, задержку между событиями и начальное число, используемое для рандомизации событий. Использование одного и того же начального числа во всех тестовых запусках приведет к одинаковой последовательности событий.
Q: Я тестирую, используя среду автоматизации.Какие фреймворки вы поддерживаете?
Для тестирования приложений iOS, Android и FireOS в настоящее время мы поддерживаем Appium Java JUnit, Appium Java TestNG, Appium Python, Calabash, Instrumentation (включая JUnit, Espresso, Robotium и любые инструментальные тесты), UI Automation, UI Automator, и XCTest (включая XCUI и KIF). Для получения дополнительной информации и обновленного списка посетите нашу документацию.
Q: Какие среды тестирования вы поддерживаете для веб-приложений?
Вы можете запускать тесты, написанные на Appium Java JUnit, Appium Java TestNG или Appium Python.
Q: Можете ли вы добавить поддержку модифицированного фреймворка или фреймворка, созданного мной?
Мы всегда оцениваем платформы, которые нужно поддерживать. Пожалуйста свяжитесь с нами.
Вопрос: Как AWS Device Farm решает, когда делать снимок экрана во время теста?
Если вы используете одну из поддерживаемых платформ автоматизации, вы полностью контролируете ситуацию и можете решить, когда делать снимки экрана.Эти скриншоты автоматически включаются в ваши отчеты.
Q: Android: Доступны ли сервисы Google Play на ваших устройствах? Какая версия установлена?
Да, сервисы Google Play установлены на устройствах, которые их поддерживают. Сервисы обновляются по мере появления новых версий.
Q: Android: есть ли на устройствах учетная запись Google по умолчанию?
Нет, на устройствах нет активной учетной записи Google.
В. Поддерживает ли AWS Device Farm автоматизацию записи и воспроизведения или мне нужно писать сценарии?
AWS Device Farm поддерживает такие платформы, как Espresso и Robotium, которые имеют инструменты сценариев записи и воспроизведения.
Q: iOS: нужно ли мне добавлять ваши UDID в мой профиль обеспечения?
Нет, AWS Device Farm автоматически заменит профиль подготовки и откажется от вашего приложения, чтобы его можно было развернуть на наших устройствах.
Q: iOS: мое приложение не содержит символов отладки. Могу ли я предоставить файл dSYM в AWS Device Farm?
Нет, но вы можете загрузить журналы и обозначить трассировки стека локально.
Q: Android: Мое приложение запутано. Могу ли я по-прежнему протестировать свое приложение на AWS Device Farm?
Да, если вы используете ProGuard. Если вы используете DexGuard с мерами по борьбе с пиратством, мы не сможем повторно подписать приложение и запустить тесты против него.
В. Мое приложение показывает рекламу. Будут ли они отображаться на ваших устройствах? Будет ли мой поставщик рекламы отмечать это как злоупотребление и блокировать мою учетную запись?
Хотя устройства имеют доступ к Интернету, мы не даем никаких гарантий, что реклама будет отображаться. Мы рекомендуем вам удалить рекламу из сборок, протестированных на AWS Device Farm.
Q: Могу ли я получить доступ к машине, на которой установлено устройство, или получить доступ к его оболочке в рамках моих тестов? Могу ли я выйти из него в Интернет?
Да.Если вы используете платформу клиент-сервер, такую как Calabash, Appium или UI Automation, вы можете получить доступ к Интернету и выполнять ограниченные команды оболочки с хоста.
В: Я хочу предоставить своему приложению мультимедийные или другие данные. Как я могу это сделать?
Вы можете предоставить архив .zip размером до 4 ГБ. На Android он будет извлечен в корень внешней памяти; на iOS в песочницу вашего приложения. Для файлов расширения Android (OBB) мы автоматически поместим файл в место, соответствующее версии ОС.Для получения дополнительной информации см. Руководство разработчика.
Q: Моему приложению требуются зависимости для тестирования всех функций. Могу ли я установить другие приложения?
Да, вы можете выбрать несколько приложений и порядок их установки. Эти зависимые приложения будут установлены до начала ваших тестов.
Вопрос: Могу ли я протестировать процесс обновления моего приложения? Как мне установить старую версию моего приложения?
Да, чтобы протестировать процесс обновления, вы можете загрузить и установить старую версию своего приложения до того, как новая версия будет установлена и протестирована.
В. Мое приложение использует службы определения местоположения. Могу я указать физическое местонахождение устройства?
Да, вы можете указать координаты широты и долготы, которые будут использоваться для отмены GPS устройства.
Q: Могу ли я проводить тесты локализации? Как изменить язык устройства?
Да, вы можете указать локаль (например, «en_US»), чтобы переопределить настройку локали по умолчанию на устройстве.
В: Сколько времени проходит до начала моего теста?
Тесты немедленно ставятся в очередь на выполнение и обычно начинаются в течение нескольких минут. Если одно или несколько устройств недоступны, выполнение теста для этих устройств будет оставаться в очереди, пока они не станут доступными. Тестирование на других устройствах будет продолжено.
В: Какое максимально допустимое время тестирования?
Максимально допустимое время — 60 минут.Если вам нужен более длительный тайм-аут, свяжитесь с нами.
Вопрос: Предоставляет ли AWS Device Farm способ запускать тесты и получать результаты через API?
Да. У нас есть плагин для среды непрерывной интеграции Jenkins и плагин Gradle, совместимый с Android Studio. AWS Device Farm также обеспечивает программную поддержку всех функций консоли, включая настройку теста и загрузку результатов тестирования через API. Дополнительную информацию см. В Справочнике по API AWS Device Farm.Помимо API, вы можете получить доступ к AWS Device Farm из пакетов AWS SDK.
Что такое AWS Device Farm?
Device Farm — это служба тестирования приложений, которую вы можете использовать для тестирования и взаимодействия с вашим Android, iOS и веб-приложения на реальных, физических телефонах и планшетах, размещенных в Amazon Web. Услуги (AWS).
Есть два основных способа использования Device Farm:
Автоматическое тестирование приложений с использованием различных сред тестирования.
Удаленный доступ к устройствам, на которые вы можете загружать, запускать и взаимодействовать с приложениями в в реальном времени.
Device Farm доступен только в регионе us-west-2
(Oregon).
Автоматизированное тестирование приложений
Device Farm позволяет загружать собственные тесты или использовать встроенную совместимость без скриптов. тесты.Поскольку тестирование выполняется параллельно, тесты на нескольких устройствах начинаются в минут.
По завершении испытаний отчет об испытаниях, содержащий результаты высокого уровня, низкоуровневый журналы, пиксельные снимки экрана и данные о производительности обновляются.
Device Farm поддерживает тестирование собственных и гибридных приложений для Android и iOS, в том числе те создан с помощью PhoneGap, Titanium, Xamarin, Unity и других фреймворков.Он поддерживает удаленный доступ к приложениям Android и iOS для интерактивного тестирования. Для дополнительной информации о поддерживаемых типах тестов см. Работа с типами тестов в AWS Device Farm.
Взаимодействие с удаленным доступом
Удаленный доступ позволяет проводить пальцем по экрану, жестикулировать и взаимодействовать с устройством через веб-браузер в реальном времени.Есть ряд ситуаций, когда взаимодействие в реальном времени с устройством пригодится. Например, представители службы поддержки клиентов могут направить клиентов через использование или настройку своего устройства. Они также могут проводить клиентов через использование приложений, работающих на определенном устройстве. Вы можете устанавливать приложения на работающее устройство в сеансе удаленного доступа, а затем воспроизвести проблемы клиентов или сообщения об ошибках.
Во время сеанса удаленного доступа Device Farm собирает сведения о предпринимаемых действиях. место когда вы взаимодействуете с устройством. Журналы с этими деталями и видеозаписью сеанс производятся в конце сеанса.
Терминология
Device Farm вводит следующие термины, определяющие способ передачи информации. организовано:
- пул устройств
Набор устройств, которые обычно имеют схожие характеристики, например в качестве платформы, производителя или модели.
- работа
Запрос к Device Farm для тестирования одного приложения на одном устройстве.Работа содержит один или несколько люксов.
- счетчик
Относится к биллингу за устройства.Вы можете увидеть ссылки на устройства с измерением. или неизмеренные устройства в документации и справочнике по API. Для большего информацию о ценах см. в разделе AWS Device Farm Ценообразование.
- проект
Логическая рабочая область, содержащая прогоны, по одному прогону для каждого теста одного приложение против одного или нескольких устройств.Вы можете использовать проекты для организации рабочих пространств каким бы способом вы ни выбрали. Например, у вас может быть один проект для каждого приложения. название или один проект на платформу. Вы можете создать столько проектов, сколько сможете необходимость.
- отчет
Содержит информацию о прогоне, который представляет собой запрос к ферме устройств для проверки одно приложение против одного или нескольких устройств.Для получения дополнительной информации см. Отчеты.
- пробег
Конкретная сборка вашего приложения с определенным набором тестов для запуска на специфический набор устройств.Прогон дает отчет о результатах. Бег содержит одно или несколько заданий. Для получения дополнительной информации см. Выполнения.
- сеанс
Взаимодействие в реальном времени с реальным физическим устройством через Интернет. браузер.Для получения дополнительной информации см. Сеансы.
- люкс
Иерархическая организация тестов в тестовом пакете.Люкс содержит один или несколько тестов.
- тест
Индивидуальный тестовый набор в тестовом пакете.
Дополнительные сведения о ферме устройств см. В разделе «Основные понятия».
Настройка
Чтобы использовать Device Farm, см. Настройка.
7 лучших ферм устройств для тестирования приложений iOS и Android | by Slava Chernikoff
Фермы облачных устройств являются важным элементом конвейера Mobile DevOps и позволяют значительно снизить трудозатраты на тестирование, а также увеличить охват устройств.
Еще в былые времена, когда рынком индустрии смартфонов правили Nokia и Microsoft, была обнаружена одна характерная проблема мобильной разработки — широкий спектр устройств по функциям и модификациям ОС.Тестировщикам приходилось тестировать приложения не только на разных версиях ОС, но и на разных физических устройствах.
После выхода iOS ассортимент моделей телефонов был невелик, поэтому проблема с ними устранилась. Однако в мире Android проблема фрагментации обострилась до максимума. На рынке представлены тысячи различных моделей, и каждый день их становится все больше, и ожидается, что приложения и игры будут работать безупречно на каждой из них.
Кроме того, на этих моделях есть разные версии прошивки… что приводит к осознанию того, что вручную вам потребуется куча человеко-часов для тестирования каждой отдельной версии.
Поскольку проблема разнообразия парка устройств возникла еще в давние времена, Nokia уже начала предлагать своим разработчикам услугу по аренде смартфонов. Можно было поставить приложение на устройство и в режиме удаленного управления пройти ключевые сценарии. Это было бесплатно, и при этом требовалось долгое время ожидания доступа к устройствам, но этот тест дал разработчикам надежду, что программное обеспечение будет правильно работать на разных смартфонах и, следовательно, никаких проблем у пользователей не возникнет.
Инициатива была хорошей, и фермы устройств получили дальнейшее развитие — сама ОС стала предоставлять инструменты для имитации действий пользователя. То есть тестировщик или разработчик пишет сценарий, который притворяется человеком. Добавьте к этому удобные инструменты DevOps для создания и автоматического запуска этих скриптов — и вы можете забыть о мрачной картине, поскольку для каждого выпуска требуется много человеко-часов.
Release CycleСегодня мы поговорим о популярных фермах облачных устройств: Firebase Test Lab, Samsungh Remote Test Lab, AWS Device Farm, Sauce Labs, Xamarin Test Cloud, Perfecto.
Встроенная автоматизация UI-тестирования появилась сравнительно недавно: iOS 9.0 (XCTest UI) и Android 4.3 (UI Automator, хотя Espresso работал с Android 2.2).
На нижнем уровне все реализовано довольно просто: вместе с приложением запускается специальный скрипт, который заставляет ОС имитировать работу реального пользователя (прикосновения, жесты пальцами и нажатие кнопок устройства) .
Существует несколько популярных подсистем для выполнения скриптов: Appium, Calabash, Espresso, Robotium, UI Automator для Android, XCTest для iOS, которые, в свою очередь, поддерживают один или несколько языков программирования — Ruby, C #, Java, Python, Swift.
Поскольку проблема с ассортиментом устройств актуальна в первую очередь для Android, сначала познакомимся с фермами Google и Samsung.
Samsung Remote Test Lab
Первой в очереди является служба Samsung Remote Test Lab.
Данная услуга технологически устарела и не стоила бы упоминания в нашей статье, если бы не одно обстоятельство. Компания Samsung является лидером и одним из законодателей рынка Android-смартфонов, поэтому ранний доступ к флагманским новинкам позволит вам протестировать работу вашего приложения еще до того, как устройства появятся на рынке.Плюс есть доступ к устройствам на базе линейки смартфонов Tizen: Z и умных часов Gear.
Работа с сервисом заключается в следующем: вы резервируете устройство и запускаете специальное Java-приложение, обеспечивающее удаленный доступ к экрану и устройствам ввода (тачскрин, кнопки). На данный момент существует 25 моделей смартфонов и планшетов, каждая из моделей в нескольких экземплярах и модификациях.
Автоматизация осуществляется на уровне ручной записи последовательности событий, и приложение необходимо устанавливать вручную.
В целом возможности ограничены, но это тоже полностью бесплатно .
И дело в том, что Samsung Remote Test Lab поддерживает удобный режим удаленной отладки! Так что смело можем рекомендовать этот сервис как дополнительную ферму для ручного тестирования на устройствах Samsung.
Firebase Test Lab для Android
Следующий сервис разработан в Google и называется Firebase Test Lab для Android. В целом Firebase хороша для команд, специализирующихся на разработке под Android, а ферма — лишь один из инструментов.
В настоящее время доступно не так много моделей устройств (около 30, список ниже на скриншоте), но также есть возможность запускать на эмуляторах.
Test Lab включена в единую подписку на сервис Firebase и может быть полностью бесплатной для начала. В отличие от сервиса Samsung, Firebase Test Lab легко интегрировать в конвейер DevOps.
Сценарии тестирования могут быть реализованы с помощью инструментов Espresso, Robotium, UI Automator 2.0 и Robo. Скриншоты делаются во время выполнения скрипта.
В целом это хорошее решение для Android-разработки небольших проектов с использованием нативных инструментов.
Samsung — не единственный вариант для Android-разработчиков, поэтому мы продолжим наш обзор профессиональными фермами, которые поддерживают iOS, имеют большой набор моделей и стоят денег.
AWS Device Farm
AWS Device Farm предлагает около 400 доступных устройств (около 100 моделей) по цене от 0,17 доллара за минуту, также есть опция «Без ограничений» (!) И 1000 бесплатных первых минут.
Зачем использовать Device Farm / Device Cloud для тестирования
Любое цифровое предложение, которое можно просматривать в браузере, должно быть доступно для просмотра во всех браузерах. То же самое касается всех устройств, находящихся в массовом обращении. Технологические продукты основаны на стремлении предоставить своим клиентам новизну, удобство и скорость. Чтобы любое веб-приложение или приложение могло обеспечить действительно универсальный опыт, они должны без проблем работать на любой комбинации устройства / ОС / браузера, которую предпочитает их клиент.
Звучит легко, но потратьте немного времени, чтобы точно подсчитать, сколько устройств работает во всем мире.Только у крупных производителей количество версий устройств исчисляется сотнями. Добавьте к этому разнообразие используемых браузеров и версий браузеров, и цифры будут ошеломляющими. Теперь представьте, что приложение / веб-сайт должны быть совместимы с каждой комбинацией, и это тоже в различных обстоятельствах, таких как низкий заряд батареи устройства, неудовлетворительное сетевое соединение и т. Д.
Если у вас нет лаборатории устройства под рукой (которая постоянно обновляется с последними версиями устройств, браузеров и ОС), возможно, придется обходиться эмуляторами и симуляторами.Хотя последнее может в некоторой степени помочь, ничто не может заменить тестирование на реальных устройствах.
Здесь на помощь приходят фермы устройств или облака реальных устройств.
Что такое ферма устройств / облако устройств?Ферма устройств или облако устройств — это среда тестирования, которая позволяет QA удаленно тестировать производительность своих веб-сайтов и мобильных приложений на значительном количестве реальных устройств. Он предлагает доступ как к современным, так и к устаревшим версиям устройств от нескольких производителей.Кроме того, на устройствах предустановлены ОС и браузеры.
Некоторые облака устройств предоставляют эмуляторы и симуляторы, но те, которые предоставляют доступ к физическим устройствам, предоставляют тестировщикам заметное преимущество. Это дает им возможность отслеживать, как их сборки работают в реальном мире. Все, что им нужно сделать, это использовать приложение или веб-сайт, как пользователь на реальном компьютере, планшете или мобильном телефоне.
При тестировании в реальном облаке устройств разработчик взаимодействует с мобильными устройствами и управляет ими, чтобы увидеть, как пользовательский интерфейс выглядит и работает на каждом устройстве.Это позволяет легко идентифицировать функциональные проблемы и недостающие элементы. Производительность приложения также можно измерить при наличии проблем с оборудованием, таких как потребление батареи, использование ЦП, мощность сети и прерывания (входящие тексты, уведомления из других приложений и т. Д.). Фермы устройств предлагают тестировщикам возможность вручную оценить работоспособность приложений и веб-сайтов с точки зрения конечного пользователя.
Попробуйте протестировать облако реального устройства бесплатно
Как фермы устройств повлияли на ландшафт тестирования?Появление облаков реальных устройств стало значительным нововведением в экосистеме тестирования программного обеспечения.Проще говоря, это сделало тестирование быстрее, проще и точнее. QA больше не должны делать никаких предположений о том, какие ошибки могут появиться, когда их приложение используется в реальном мире. Они могут просто увидеть это сами.
Фермы устройств предоставляют разработчикам доступ к устройствам, на которых должны работать их приложения и веб-сайты. Вместо того, чтобы гадать, какие проблемы могут возникнуть, QA могут просто запустить свой код на реальном устройстве и получить точные результаты. Это включает в себя наблюдение за тем, как их приложение работает, когда устройство разряжается от батареи, в автономном режиме или в зоне с низким уровнем сети и т. Д.Кроме того, они могут проводить пальцем по экрану, использовать жесты и взаимодействовать с мобильными устройствами через свои веб-браузеры, чтобы выяснить, остается ли адаптивный дизайн приложения стабильным.
Возможность доступа к реальным устройствам означает, что разработчики могут тестировать веб-сайты и приложения (как собственные, так и гибридные) на широком спектре настольных и мобильных устройств. Естественно, они могут гарантировать, что их сборки идеально работают на максимально возможном количестве устройств. Это гарантирует, что приложение сможет обслуживать как можно больше клиентов.
Для небольших фирм создание и обслуживание собственных лабораторий устройств может потребовать много времени и затрат. Намного проще получить доступ к устройствам, обслуживаемым организацией, с помощью реального облака устройств.
Поскольку новые устройства выпускаются с возрастающей частотой, обновление внутренней лаборатории устройств может, опять же, нанести ущерб организации с точки зрения времени, усилий и денег. Ферма устройств позаботится об этом, поскольку расширение ее парка новейших устройств, браузеров и ОС является ключом к ее успеху.
Для индивидуальных разработчиков фермы устройств и облака реальных устройств предлагают простой и экономичный способ тестирования реальных пользовательских возможностей сборки кода на нескольких устройствах. Облака реальных устройств дают им возможность начать тестирование из любого места в любое время. Это снижает обеспокоенность разработчиков по поводу обеспечения эффективности приложения, когда они работают без поддержки крупной корпорации.
Когда дело доходит до запуска автоматических тестов, многие облака устройств предлагают параллельное тестирование.Это позволяет кому-то выполнять тестовые сценарии на нескольких устройствах, чтобы сэкономить время. Увеличивая масштабы устройств, они могут быстрее запускать тесты, получать точные результаты и быстрее выполнять отладку. Эта функция создана для того, чтобы помочь гибким командам и позволить им выпускать продукты без ошибок в более короткие сроки.
Как работают облака реальных устройств?Обычно процесс работает следующим образом.
Тестирование браузера на настольных компьютерах / мобильных устройствах :
- Разработчики входят в свою учетную запись
- Выберите комбинацию устройство-браузер-ОС
- Введите желаемый URL-адрес
- Начните выполнять действия, необходимые для проверки работоспособности веб-сайта.Тестировщики могут видеть, появляются ли какие-либо недостатки, угрожающие бесперебойной работе их веб-сайта.
Начать тестирование браузера бесплатно
Обычно инструменты разработчика встроены в интерфейс тестирования, чтобы тестер мог мгновенно обнаруживать и отлаживать.
Для тестирования браузеров на мобильных устройствах выполните действия, указанные выше. Просто выберите мобильное устройство вместо настольного компьютера и начните выполнять тесты, необходимые для проверки требований к программному обеспечению.
Тестирование приложений на мобильных устройствах :
- Разработчики выбирают устройство
- Загрузите свое приложение или apk в Интернете
- Протестируйте, чтобы проверить, совместимо ли приложение с функциями устройства.Инструменты разработки снова встроены в пользовательский портал.
Обе версии обычно также допускают автоматическое тестирование. По сути, ферма устройств позволяет QA создавать собственные тесты с помощью надежных платформ автоматизации тестирования, таких как Selenium, Appium, Espresso, XCUITest и другие.
Облако реальных устройств в BrowserStackBrowserStack обеспечивает облачный доступ к огромному хранилищу реальных устройств. Эти устройства представлены разными производителями, моделями и версиями.Центры устройств часто обновляются новейшими устройствами, что позволяет тестировщикам отслеживать использование приложений на мобильных, планшетных и настольных гаджетах, которые клиенты, скорее всего, будут использовать.
Ниже приведены несколько основных функций, которые характеризуют облако реальных устройств BrowserStack как уникальное:
- Интерфейс особенно полезен для тестирования адаптивного дизайна. Пользователи могут тестировать макеты и дизайн в более чем 2000 комбинациях устройство-браузер. Одним щелчком мыши можно проверить, как веб-сайт выглядит на большом количестве экранов и разрешений.Кроме того, также можно создавать снимки экрана на каждом устройстве, таким образом записывая производительность программного обеспечения на нескольких конечных точках.
- В случае, если кто-то тестирует свой код на внутренних и / или частных серверах, они могут использовать функцию локального тестирования. Облако BrowserStack обеспечивает поддержку брандмауэров, прокси-серверов и Active Directory. Эта функция устанавливает безопасное соединение между компьютером разработчика и серверами BrowserStack. После запуска локального тестирования все URL-адреса работают из коробки, включая URL-адреса с HTTPS, несколькими доменами, а также URL-адреса за прокси-сервером или брандмауэром и многое другое.
- BrowserStack Automate обеспечивает мгновенный доступ к сетке Selenium из 2000+ браузеров и реальных устройств. Пользователям не нужно беспокоиться о создании и обслуживании огромной внутренней лаборатории виртуальных машин и мобильных устройств. Сетка позволяет пользователям запускать сотни тестов параллельно, ускоряя их сборку и, следовательно, приводя к более быстрым выпускам. Благодаря встроенным интеграциям с более чем 20+ языками программирования и фреймворками, интеграцию с Automate можно выполнить за считанные минуты. Automate также легко вписывается в существующий рабочий процесс CI / CD пользователя, предоставляя плагины для всех основных платформ CI / CD.
Чтобы начать тестирование на реальных устройствах и в браузерах, просто запустите бесплатную пробную версию BrowserStack. Выберите предпочтительное устройство, браузер и ОС, а также соответствующие версии, которые подходят для этого конкретного теста.
В облаке устройства можно запускать как живые, так и автоматические тесты. Воспользуйтесь преимуществами множества удобных для разработчиков функций, таких как встроенные средства разработки, которые позволяют легко отлаживать нативные, гибридные и веб-приложения на реальных устройствах.
Ферма устройств против DIY против платформы тестирования
Когда дело доходит до тестирования ваших приложений, есть много способов сделать это. Вы можете использовать ферму устройств. Вы можете попробовать собрать собственное решение своими руками. Или вы можете сотрудничать с платформой для тестирования.
У всех трех вариантов есть свои преимущества. Продолжайте читать, чтобы узнать больше о каждом из этих вариантов. И посмотрите, какой из них лучше всего подойдет вам.
Что такое ферма устройств?
Ферма устройств — это облачная среда, в которой размещаются мобильные устройства и виртуальные машины браузера, которые группы могут тестировать удаленно.Фермы устройств обычно имеют как современные устройства, так и более старые версии.
Дополнительная литература: Как выбрать облако устройств с точки зрения клиента
Фермы устройств могут иметь реальные мобильные устройства и браузеры для тестирования. У них могут быть виртуальные устройства, включая симуляторы и эмуляторы, а также виртуальные машины браузера. Или у них могло быть и то, и другое. На мобильных устройствах в ферме предварительно установлены ОС и другие характеристики.
Преимущества использования фермы устройств
Использование фермы устройств дает несколько преимуществ по сравнению с решением «сделай сам».
- Разнообразие устройств может помочь вам увеличить покрытие платформы.
- Нет необходимости управлять устройствами — об этом позаботятся фермы устройств.
- Это дешевле, чем пытаться сделать это самостоятельно без накладных расходов.
- Масштабировать тесты проще в облаке, чем в локальной среде.
- К нему можно получить доступ из любого места, что необходимо для глобальных команд.
Облачное тестирование более важно, чем когда-либо >>
Недостатки использования фермы устройств
Фермы устройств могут иметь некоторые преимущества по сравнению с решениями для самостоятельной работы.Однако есть несколько ключевых компонентов, которые отсутствуют в фермах устройств. Поскольку все дело в устройствах / браузерах, к которым вы получаете доступ в облаке, у них нет других функций, которые вы могли бы найти в решении для тестирования. К ним относятся:
- Параметры создания тестов, такие как BDD или без кода, которые позволяют большему количеству членов вашей команды участвовать в создании тестов.
- Расширенные возможности автоматизации тестирования, которые позволяют достичь более высокого уровня успешной автоматизации тестирования.
- Встроенные отчеты о тестировании, которые помогут вам быстрее продвигаться по мере масштабирования тестирования.
Сделай сам
Вы также можете попробовать собрать воедино решение для внутреннего тестирования. Если вы хотите создать собственную лабораторию для самостоятельного тестирования устройств, это возможно, но сложно. Как минимум, для цифровой лаборатории требуется семь компонентов.
Дополнительная литература: Стратегия тестирования мобильных приложений, объединяющая виртуальные и реальные устройства
- Устройства — устройства, охватывающие оборудование пользователя, ОС и версию ОС.
- Компьютеры — сочетание оборудования ПК и Mac.
- Сети — доступ к Wi-Fi, проводному Ethernet и сотовой связи.
- Автоматизация — Серверы и программное обеспечение для координации и выполнения тестов.
- SAN — сеть хранения данных для хранения журналов тестирования, отчетов, видео и снимков экрана.
- Люди — Поддерживают и контролируют работу лаборатории до желаемого уровня доступности.
Расходы на самостоятельное решение
Поддерживать собственное решение «сделай сам» может быть очень дорого. Во-первых, это предоплата за устройства и их ежемесячные тарифные планы. Срок службы устройств во время тестирования составляет 9 месяцев, поэтому их необходимо часто менять.Также необходимо учитывать затраты на оборудование — оборудование для доступа и управления устройствами.
8 Преимущества автоматизации облачного тестирования >>
Затем есть инфраструктура, которая включает точки доступа Wi-Fi, сотовые ретрансляторы и стойки для устройств и серверов. Кроме того, безопасность данных на устройствах в решениях «сделай сам» часто оказывается под угрозой, что создает огромный риск для бизнеса (устройства теряются, устройства остаются на столах тестировщиков без присмотра, устройства используются тестировщиками в личных целях).Наконец, есть также расходы на обслуживание — диагностика и устранение неисправных устройств, проблем с конфигурацией и т. Д.
Помните о решениях «сделай сам» …
● Накладные расходы на инфраструктуру и управление устройствами быстро накапливаются.
● Локальное решение не будет доступно для разрозненных команд.
● Сложнее масштабировать тестирование.
● Безопасность находится под угрозой.
● Вы рискуете выпустить версию с устраненными дефектами из-за медленного времени на поддержку новых платформ.
Дополнительная литература: Почему каждой компании нужна цифровая лаборатория
Perfecto готов помочь вам взяться за дело.Обеспечьте отсутствие дефектов в приложениях с помощью Perfecto в тот же день доступа к новым выпускам ОС и устройств, таким как Android 12 и iOS 15. Таким образом, ваши приложения готовы к официальным выпускам — без простоев или дефектов. Посмотрите эту сессию с Эраном Кинсбрунером, главным евангелистом Perfecto by Perforce, где он рассказывает о последних выпусках Apple и Android.
Платформа для тестирования
Другой вариант — полноценное решение для тестирования. Платформы для сквозного тестирования, такие как Perfecto, похожи на фермы устройств тем, что они также размещают устройства в облаке.Но они выходят за рамки того, чтобы быть просто фермой или лабораторией для устройств.
4 способа, которыми Perfecto обеспечивает рентабельность инвестиций >>
Эти платформы также предлагают другие функции на этапах создания, выполнения и анализа процесса тестирования, которые могут помочь вам сократить время тестирования и выпускать лучшие приложения.
Платформа для тестирования, такая как Perfecto …
- Повышает уровень покрытия платформы и сценария тестирования.
- Заботится об управлении устройством и его обслуживании.
- Может применять к тестам реальные пользовательские условия.
- Обеспечивает межгрупповую совместную работу из любой точки мира.
- Создан для проведения крупномасштабных испытаний на предприятиях.
- Предоставляет встроенные отчеты о тестах и аналитику.
- Может тестировать на разных платформах — как мобильных, так и веб.
- Безопасность корпоративного уровня, настройка сети и хранение данных
Существует множество решений для сквозного тестирования приложений. Вы должны найти то, что подходит вашей команде.Forrester Wave ™ недавно проанализировал рынок, чтобы найти лучшие решения в своем отчете за 2020 год, в котором Perfecto признана сильным исполнителем: 15 лучших решений для автоматизации тестирования по рейтингу Forrester.
Попробуйте протестировать с помощью Perfecto
Если вы ищете решение для тестирования, добавьте Perfecto в свой список, чтобы попробовать. Никто не знает тестирования приложений так, как Perfecto. Одна унифицированная платформа — это все, что вам нужно для масштабного тестирования веб- и мобильных приложений.
Какой пакет Perfecto выбрать? 3 фактора, которые нужно выяснить >>
В тестовом облаке Perfecto у вас также будет доступ к:
- Мобильным устройствам и браузерам для тестирования.
- Надежная безопасность корпоративного уровня.
- Расширенное тестовое покрытие.
- Эластичное масштабирование ваших тестов.
- Круглосуточный доступ к облаку.
- Надежная аналитика тестов.
Начните пользоваться бесплатной пробной версией сегодня.
Попробуйте Perfecto
Связанные ресурсы
Список устройств AWS Device Farm
:; +++ `++++ +++++ ` ++++++, +++++++; +++ +++++ +++ `+++++ ; ++: '++++ , +++, ++++ +++ `++++` +++ ++++, +++ ++++ ' +++ +++++ +++ +++++ +++.; ++++ ; ++; , ++++ . +++ `++++` +++ ++++: +++ ++++ ' +++ +++++ +++ ++++: +++; +++ ++++ +++: , +++.+++ +++: +++, ++++. +++ +++ +++, ++++. +++ `; +++++++ ++++++++;` ; +++++++++++,.++++++++++++; . +++++++++++++++ ++++++++++++++++, `+++++++++++;` `+++. +++.; +++++++++++ '' : ++++++++ '+++' +++, `'++++++++: `+++++++. '+++. +++. +++++++ ` ++++++, +++ `+++,: ++++++ +++++. ++++.+++. +++++ +++++. +++ +++, '++++ '+++. +++; , +++, +++ ' +++,: +++, +++, +++ , +++ `+++++. ++++ +++, '++: ++++++:; ++++ `: ++' '++,: +++++++.+++++, ++ ' , +++; +++++++ '; ++++++ +++, +++, +++++++++ '. , ++++++++. +++ ++++ '+++++++++++++++++++++++++, ++++ ++++; +++++++++++++++++++++ ++++ ++++, ++++++++++++. ++++ `++++; '++++ ` +++++ `` +++++ ++++++ `` ++++++ .++++++:: ++++++. ; +++++++ `` +++++++; ; ++++++++:: ++++++++; ++++++++++++:: ++++++++++ ' ++++++++++++++++++ ': ``,; +++++++++++++++++' ++++ +++, ++++++++++++++++++++++++++++++++++++++++++ +++++ ++++. , +++ +++ ++++++++++++++++++++++++++++++++++++++++++ ++ ++++ +++,.+++ +++ `, '+++++++++++++++++++++++',` +++ +++ +++. +++ '++: +++ +++ +++. +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ ++, +: +++ +++ +++ ++++ +++ +++: +++, ++++ +++ +++ +++ ' +++ :.+++ +++ ++++++++++++ +++ +++. `+++ +++++++: +++ +++++++++ '+++; ++;' ++++ ++++++ `+++, ++++++ +++, +++++++ , ++++ +++ +++. ++++++ +++ +++ `+++ +++: +++ +++: +++++++; +++ +++ `+++ +++` `+++++++++++++++ '' +++; +++ ; ++; +++: +++++++++++++++++++++++++.+++ +++ +++ `+++` '+++++++++++++. '++++++++++++, +++ +++: +++ +++++++++++++:; ++++++++++++ `+++ +++ ++++++++ '`: ++++++++ +++` +++ `+++:, +++`; +++ `+++ ;;` +++ : ++; . ;;; +++; +++.. ;;;;: +++ ++++ `;;;;;:`: ;;;;;. +++ ` ++++. ;;;;;;;;;, `;;;;;;; : +++ ++++; . ;;;;;;;;;;;;;;;;; +++ +++++, ;;;;;;;;;;;;;;;. `++++; +++++: ;;;;;;; `;;;; : ++++++. '++++ `;;;;;; : ++++++++ , ++++ `.;;; ++++++: ++++, `` ++++ '' ++++ '+++: +++++ +++ +++++ +++ ; +++. +++; , +++ +++ +++ +++ +++.'++' , +++ +++ +++. ++++ +++,. ++++++ . +++, ++++++: +++, ++++++, +++,: ++++++, .+++: ++++++. +++ ++++++. +++, +++++ ` . +++ ++++; +++ ++++, +++: `++++` `+++.++++ +++: ++++ +++: '++++ `+++ +++++ +++ +++++ +++: ++++; `++++++.+++++ ` ++++ ++
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `...```````````., .. `` `` `` `` `` `` `` `` `` `` `` `. ,,.` ` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `, ;;;;;;;` `` `` `` ;;;;;;;;;, `` `` `` `` `` `` `` `` `` `;;;;;;;;;;.` `` `` `` `` `` `` `` ` `` `` `` `` `` `` ``: ;;;;;;;;;, `` `` ``, ;;;;;;;;;;;; `` `` `` `` `` `` `` `` `: ;;;;;;;;;;;:` `` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;;;;;;;;; `` `` `` ;;;;;;;;;;;;;;: `` `` `` `` `` `` `` `;;;;;;;;;;;;;;:` `` `` `` `` `` `` ` `` `` `` `` `` `;;;;;;;;;;;;;;` `` `` `;;;;;;;;;;;;;;;;` `` `` `` `` `` `` `;;;;;;;;;;;;;;;;;` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;;;;;;;;;;; `` `` `` ;;;;;;;;;;;;;;;; ;.`` `` `` `` `` `` ;;;;;;;;;;;;;;;;; `` `` `` `` `` `` ` `` `` `` `` `` `;;;;;;;;;;;;;;;` `` `` `` `+ ;;;;;;;;;;;;;;; ;;. `` `` `` `` `` `` + ;;;;;;;;;;;;;;;;; `` `` `` `` `` ` `` `` `` `` ``, ;;;;;;;;;;;;;;; `` `` `` `+++ ';;;;;;;;;;;; ;;;. `` `` `` `` `` `` +++ ;;;;;;;;;;;;;;;; `` `` `` `` `` ` `` `` `` `` `` `;;;;;;;;,`, ;;;;; `` `` `` `+++++ ''` `: ;;;;; ;;;;; `` `` `` `` `` +++++: `` ``: ;;;;;;;;;: `` `` `` `` `` ` `` `` `` `` ``, ;;;;;;; `` ``, ;;;;; `` `` `` `+++++ ''` `` `.;;;;;;;;: `` `` `` `` +++++: `` `` `. ;;;;;;;;` `` `` `` `` ` ` `` `` `` `` `` ;;;;;;; `` ``, ;;;;; `` `` `` `+++++ ''` `` `` :; ;;;;;; `` `` `` `` `` +++++: `` `` ``: ;;;;;;; `` `` `` `` `` `` `` `` `` `` `;;;;;;` `` ``, ;;;;; `` `` `` `+++++ ''` `` `` `` , ;;;;;;; `` `` `` `` +++++: `` `` `` `: ;;;;;;` `` `` `` `` ` `` `` `` `` `` `: ;;;;;.`` `` `, ;;;;;` `` `` `+++++ ''` `` `` ``, ;;;;;; `` `` `` `` + ++++: `` `` `` `` `;;;;;;:` `` `` `` `` ` `` `` `` `` `` ;;;;;; `` `` ``, ;;;;; `` `` `` +++++ '' `` `` `` ` `` ;;;;;;, `` `` `` `+++++:` `` `` `` `` ;;;;;; `` `` `` `` `` `` `` `` `` `` ;;;;;, `` `` ``, ;;;;; `` `` `` +++++ '' `` `` `` ` `` `;;;;;;` `` `` `` +++++: `` `` `` `` `: ;;;;;` `` `` `` `` ` `` `` `` `` ``, ;;;;; `` `` `` `, ;;;;;` `` `` `+++++ ''` `` `` ` `` `: ;;;;;` `` `` `` +++++: `` `` `` `` `` ;;;;;.`` `` `` `` ` `` `` `` `` ``: ;;;;; `` `` `` `, ;;;;;` `` `` `+++++ ''` `` `` ` `` ``. ;;;;; `` `` `` `+++++:` `` `` `` `` `;;;;;:` `` `` `` ` ` `` `` `` `` `` ;;;;;; `` `` `` `, ;;;;;` `` `` `+++++ ''` `` `` ` `` `` `;;;;;.` `` `` `+++++:` `` `` `` `` `;;;;;:` `` `` `` ` ` `` `` `` `` `` `;;;;;.`` `` ``, ;;;;; `` `` `` +++++ '' `` `` `` `` `;;;;;,` `` `` ` `+++++:` `` `` `` `` `: ;;;;;` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` ``, ;;;;; `` `` `` +++++ '' `` `` `` `` `` `;;;;;:` `` `` `+++++:` `` `` `` `` `: ;;;;;` `` `` `` ` ` `` `` `` `` ``, ;;;;; `` `` `` ``, ;;;;; `` `` `` +++++ '' `` `` `` `` `` `;;;;;:` `` `` `+++++:` `` `` `` `` `, ;;;;;` `` `` `` ` ` `` `` `` `` `: ;;;;;` `` `` `` `, ;;;;;` `` `` `+++++ ''` `` `` ` `` `` `;;;;;,` `` `` `+++++:` `` `` `` `` `: ;;;;;` `` `` `` ` ` `` `` `` `` `;;;;;;` `` `` `` `, ;;;;;` `` `` `+++++ ''` `` `` ` `` `` `;;;;;,` `` `` `+++++:` `` `` `` `` `: ;;;;;` `` `` `` ` ` `` `` `` `` `` ;;;;;: `` `` `` ``, ;;;;; `` `` `` +++++ '' `` `` ` `` `` `;;;;;.`` `` `` `+++++:` `` `` `` `` `` ;;;;;: `` `` `` `` `` `` `` `` `` `` `;;;;;.` `` `` `` `, ;;;;;` `` `` `+++++ ''` `` ` `` `` `` ;;;;; `` `` `` `+++++:` `` `` `` `` `;;;;;:` `` `` ` `` '' `` `` `` `` `` `` `;;;;;.` `` `` `` `, ;;;;;` `` `` `` +++++ '' `` `` `` `` `` `, ;;;;;` `` `` `` `+++++:` `` `` `` `` `;;;;;,` `` ` `` `` ` `` `` `` `` `` `` `` `;;;;;` `` `` `` `, ;;;;;` `` `` `+++++ ' `` `` `` `` `` ;;;;;; `` `` `` `` +++++: `` `` `` `` ``.;;;;; `` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` ``, ;;;;; `` `` `` ++++ + '`` `` `` `` `. ;;;;;:` `` `` `` `+++++:` `` `` `` ``: ;;;;; ` `` `` `` `` ` `` `` `` `` `` `` `` ``. ;;;;; `` `` `` ``, ;;;;; `` `` `` +++ ++ '`` `` `` `` `;;;;;;` `` `` `` `` +++++: `` `` `` `` `;;;;;; `` `` `` `` ` `` `` `` `` `` `` `` `` ``, ;;;;; `` `` `` ``, ;;;;; `` `` `` ++ +++ '`` `` `` ``, ;;;;;; `` `` `` `` +++++: `` `` `` ``: ;;;;; : `` `` `` `` `` `` `` `` `` `` `` `` `` `` ``: ;;;;; `` `` `` ``, ;;;;; `` `` `` +++++ '`` `` `` `.;;;;;;, `` `` `` `` +++++: `` `` `` `` ;;;;;; `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;;; `` `` `` ``, ;;;;; `` `` ` `+++++ '` `` `` `` ;;;;;;; `` `` `` `` `+++++:` `` `` `;;;; ;;; `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;;: `` `` `` `` `, ;;;;;` `` `` `` +++++ '' `` `` `, ;;;;;;;,` `` `` `` `` +++++: `` `` `` ;;;; ;;;. `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` ;;;;;, `` `` `` `` `, ;;;;;` `` `` `` +++++ '' `` `` ;;;;;;;;; `` `` `` `` `+++++:` `` ``.;;;;;;;; `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` ;;;;;. `` `` `` ``, ;;;;; `` `` `` `` +++++ '' ``: ;;;;;;;;;; `` `` `` `` `` +++++: `` ``: ;;;;; ;;; `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `;;;;;` `` `` `` `` `;;;;;` `` ` `` `` +++++ '' ;;;;;;;;;;;. `` `` `` `` `` +++++: `. ;;;;;;; ;;;: `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `.: ;;;;;; ++++++++++ ';;;;; `` `` `` ;;;;;;;;;;;;;;;;;, `` `` `` `` `` `` ++ ';;;;;;;;;;;;;;; `` `` `` `` `` `` `` `` `` `` `` `` `` ``, +++++++ ;;;;; ++++++++++ ';;;;; `` `` `` `;;;;;;;;;;;;;;;;,` `` `` `` `` `` `;;;;;;;;;;;;;; ;;; `` `` `` `` `` `` `` `` `` `` `` `` ``. +++++++++ ;;;;;; ++++++++++ ';;;;; `` `` `` `;;;;;;;;;;;;;;;.` `` `` `` `` `` `;;;;;;;;;;;;;; ;; `` `` `` `` `` `` ` `` `` `` `` `` ``.+++++++++++ ;;;;;; ++++++++++ ';;;;; `` `` `` ;;;;;;;;; ;;;; `` `` `` ``; .`````` ;;;;;;;;;;;;;;: `` `` `` `` `` `` ` `` `` `` `` `` `` +++++++++++++ ;;;;;; ++++++++++ ';;;;; ` `` `` `` ;;;;;;;;;;;;. `` `` `` `, ;;` `` `` `` ;;;;;;;;;;;;; .````````````` `` `` `` `` `` `` `++++++++++++++ ;;;;;; ++++++++++ ';;;;; `` `` `` ;;;;;;;;;;, `` `` `` `` `;;;` `` `` `;;;;;;;;;;;. `` `` `` `` `` `` ` `` `` `` `` `` `+++++++++++++++ ;;;;; +++++++++++ ';;;;; `` `` `` ;;;;;;;;.`` `` `` `` `` `;;;` `` `` `;;;;;;;;:` `` `` `` `` `` `` `` `` `` `` `` `` `` `++++++++++++++++ ;;;;; ::::::::::::: ;;;;; `` `` `` ;;;;;; `` `` `` `` `` `` `, ;;;` `` `` `;;;;;,` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `: ++++++++++;` `` `: ;;;;;` `` `` `` `` `, ;;;; ; `` `` `` +++++ '' `` `` `` `` `` `` ;;;: `` `` `` +++++: `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `'++++++++` `` `` `;;;;;;` `` `` `` ``, ;;;; ; `` `` `` +++++ '' `` `` `` `` `` `;;;:` `` `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` ``; +++++++ `` `` `` `` ;;;;;: `` `` `` `` ``, ;;;; ; `` `` `` +++++ '`` `` `` `` `` `.;;;. `` `` `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` ``; ++++++ `` `` `` ``. ;;;;;. `` `` `` `` ``, ;;;; ; `` `` `` +++++ '' `` `` `` `` `` ;;;; `` `` `` `+++++:` `` `` `` `` `` `` `` ` `` `` `` `` `:; +++++` `` `` `` `` `;;;;;;` `` `` `` `` ``, ;;;; ; `` `` `` +++++ '' `` `` `` `` `` ;;;; `` `` `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` ;; ++++ `` `` `` `` `` ;;;;;; `` `` `` `` `` `, ;;; ;; `` `` `` +++++ '`` `` `` `` `` `.;;;; `` `` `` `` +++++: `` `` `` `` `` `` `` ` `` `` `` `` `` ;; +++ '`` `` `` `` ``, ;;;;;, `` `` `` `` `` `, ;;; ;; `` `` `` +++++ '`` `` `` `` `` `: ;;;;` `` `` `` +++++: `` `` `` `` `` `` ` `` `` `` `` `` ;;; ++. `` `` `` `` `` ;;;;;; `` `` `` `` `` ``, ;;; ;; `` `` `` +++++ '' `` `` `` `` `` ;;;;: `` `` `` `+++++:` `` ` `` `` `` `` ` `` `` `` `` `` ;;; ++ `` `` `` `` ``, ;;;;;; `` `` `` `` `` ``, ;;; ;; `` `` `` +++++ '' `` `` `` `` `` ;;;;, `` `` `` `+++++:` `` ` `` `` `` `` `` `` `` `` `` ;;; '+.`` `` `` `` ;;;;;;. `` `` `` `` `` `` `: ;;;;;` `` `` `` +++++ '' ` `` `` `` `` `, ;;;;.` `` `` `` `+++++:` `` `` `` `` `` `` `` `` `` `` ;;;; +; `` `` `` `` ;;;;;;; `` `` `` `` `` `` `: ;;; ;; `` `` `` +++++ '`` `` `` `` `` ;;;;; `` `` `` `` +++++: `` `` `` `` ` `` `` `` `` `` ;;;;; + `` `` `` `;;;;;;;,` `` `` `` `` `` ``: ;;; ;: `` `` `` +++++ '' `` `` `` `` `` ;;;;; `` `` `` `` +++++: `` `` `` `` ` `` `` `` `` ``: ;;;;; + `` `` `` ;;;;;;;; `` `` `` `` `` `` ``: ;;;; : `` `` `` +++++ '' `` `` `` ``, ;;;;; `` `` `` `` +++++: `` `` ` `` `` `` `` `` `` `` ;;;;;;;:, ;;;;;;;;;.`` `` `` `` `` `` `;;;;;,` `` `` `` +++++ '' `` `` `` `` ;;;;;; `` `` `` `` +++++: `` `` `` `` ` `` `` `` `` `` ;;;;;;;;;;;;;;;;;: `` `` `` `` `` `` `` ;;;;; , `` `` `` +++++ '' `` `` `` `` ;;;;;: `` `` `` `` +++++: `` `` ` `` `` `` `` `` `` ``. ;;;;;;;;;;;;;;;; `` `` `` `` `` `` `` `;;;;; .``````` +++++ '`` `` `` `` `. ;;;;;,` `` `` `` `+++++:` `` `` `` `` `` `` `` `` `` `;;;;;;;;;;;;;;;` `` `` `` `` `` `` ``.;;;;; `` `` `` `` +++++ '' `` `` `` `: ;;;;;.` ``;, `` +++++: `` `` `` `` ` `` `` `` `` `` `;;;;;;;;;;;;;` `` `` `` `` `` `` `` ;;;;;; ` `` `` `` +++++ '' `` `` `` ;;;;;; `` `, ;;;` `` +++++: `` `` `` `` '' `` `` `` `` `` `` ;;;;;;;;;;;; `` `` `` `` `` `` `` `` `+ ;;;;;` `` `` `` +++++ '' `` `` ``. ;;;;;; `;;;;;` `` +++++: `` `` `` `` '' `` `` `` `` `` `` `: ;;;;;;;.`` `` `` `` `` `` `` `` `';;;;:` `` `` `` +++++' '`` `` `` :; ;;;;;: ;;;;;; `` `+++++:` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `. ::,` `` `` `` `` `` `` `` ` `` `. ;;;;;.` `` `` `` +++++ '' `` `` `` ;;;;;;;;;;;;;; `` `+ ++++: `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` + ;;;;; `` `` `` `` +++++ '' `` `` `` ;;;;;;;;;;;;;; ` `` +++++: `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` + ;;;;; `` `` `` `` `+++++ ''` `` ``, ;;;;;;;;;;;;; , `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` ``; ';;;;, `` `` `` `` `+++++' '` `` `` ;;;;;;;;;;;; ;; `` `` +++++: `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `+ ;;;;;` `` `` `` `` `` +++++ '' `` `` `;;;;;;;;;;; ;;; `` `` +++++: `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` ++ ;;;;; `` `` `` `` `` +++++ '' `` ``, ;;;;;;;;; ;;;;: `` `` +++++: `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` ``: + ';;;;.`` `` `` `` `+++++ ''` `` `` ;;;;;;;;;;;;;;, `` `` +++++: `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` ``. ++ ;;;;; `` `` `` `` `` `+++++ ''` `` `;;;;;;;; ;;;;;; `` `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `. +++ ;;;;.` `` `` `` `` `+++++ ''` `` `. ;;;;;;;; ;;;;;; `` `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `; +++ ;;;;;` `` `` `` `` `` +++++ '' `` ``: ;;;;;;; ;;;;;;: `` `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `++++ ';;;;` `` `` `` `` `` +++++' '`` `` ;;;;;;; ;;;;;;;.`` `` `+++++:` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ++++++ ;;;;. `` `` `` `` `` `+++++ ''` `` ;;;;;; ;;;;;;;; `` `` `` +++++: `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` '+++++++ ;;;;: `` `` `` `` `` `` +++++' '`` `: ;;;;;; ;;;;;;;; `` `` `` +++++: `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `.; +++++++++++ ;;;;: `` `` `` `` `` `` `` +++++ '' `` ;;;;;;;; ;;;;;;: `` `` `` +++++: `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ``: +++++++++++++++++++++++++++++++++ +++++++++++++ ;;;;: `` `` `` `` `` `;;; +++++ ''` `;;;;;; ;;;;;;;; `` `` `` +++++ ;;;:. `` `` `` `` `` `` `` `` `` ``; +++++; `` `` `` `` `` `. ++:` `` `` `` `++:` `` `` `` `` `` `` `` `` `` `'++++++++++++++++++++++++++++++++++ +++++++++++++ ;;;;. `` `` `` `` ``; + ;;;; +++++ '' ``, ;;;;; ;;;;;;;;; `` `` `` +++++ ;;;;;;: `` `` `` `` `` `` `` `` `;; ++++++++ `` `` `` `` `++++` `` `` `` ++++.`` `` `` `` ` `` `` `` `` `` `++++++++++++++++++++++++++++++++++++ ++++++++++++ ;;;; `` `` `` `` ``. ++ ;;;;; +++++ '' `` ;;;;;; ;;;;;;;;; `` `` `` +++++ ;;;;;;;;: `` `` `` `` `` `` `` `;;; +++++++++. `` `` `` `: ++++ ''` `` ``; +++++ `` `` `` `` ` ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++000 ++++++++++: ;;; `` `` `` `` `` `` '++ ;;;;;; +++++' '`` ;;;;;; ;;. ;;;;;, `` `` `` `+++++ ;;;;;;;;;;` `` `` `` `` `` `` ;;; + ++++++++++ `` `` `` ++++++ `` `` `` ++++++ `` `` `` `` `` `` `` `` `` +++++++++++++++++++++++++++++++++++++ +++++++++: ;;; `` `` `` `` `` `` ++++ ;;;;;; +++++ '' '.;;;;;;; `. ;;;;;` `` `` `+++++ ;;;;;;;;;;;.` `` `` `` `` ` `: ;;; ++++++++++++` `` `` `++++++` `` `` `; ++++++` `` `` ` `` '' `` `` `` `` `++++++++++++++++++++++++++++++++++++++ ++++++ ';;; `` `` `` `` `` `` `; +++ ;;;;;;; +++++' '`: ;;;;; , ``, ;;;;; `` `` `` `+++++ ;;;;;;;;;;;;` `` `` `` ``. ;;;; ++++++++++++, `` `` ++++++ `` `` `++++++,` `` `` `` ` `` `` `` `` `: ++++++++++++++++++++++++++++++++++++++ ++ ;;:, `` `` `` `` `` `` `` ``. ++++ ;;;;;;; +++++ '' `: ;;;;` `` `: ;;;;;` `` `` `` +++++ ;;;;;;;;;;;;; `` `` `` `` ;;;;; +++++++++++++ `` `` `++++++` `` `'++++++` `` `` `` `` `` `` `` `` `` `++++++:;:` `` `` `` `` ;;;;; `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` ++++ ';;;;: `` +++++' '`.;;; `` `` ;;;;;, `` `` `` `+++++:` `: ;;;;;;;;;;` `` `` `` ` ;;;; +++ `` `` +++++++ `` `` `` ++++++ `` `` `++++++,` `` `` `` ` `` '' `` `` `` `` ``; +++: ;;: `` `` `` `` `` ;;;;; `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `: ++++ ;;;,` `` +++++ '' ``:, ` `` `` ;;;;; `` `` `` `+++++:` `` `` ;;;;;;;;. `` `` ``, ;;;; ++ `` `` `'+++++;` `` `++++++` `` `' ++++++` `` `` `` `` `` `` `` `` `` `` ++: ;;;: `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `+++++ ;;` `` `` +++++ '' `` `` `` `` `` ;;;;; `` `` `` `` +++++: `` `` ``: ;;;;;;; `` `` `` ;;;;; + `` `` `` `++++++` `` `++++++` `` ++++++, `` `` `` `` `` `` `` `` `` `` `+ ;;;;;` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `.++++ '; `` `` `` +++++' '`` `` `` `` ;;;;: `` `` `` `+++++: `` `` ``, ;;;;;; `` `` `` ;;;;; '`` `` `` `' +++++` `` `` ++++ ++ `` '++++++ `` `` `` `` `` `` `` `` `` ``: ;;;;;. `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` +++++ ;, `` `` `` `+++++ ''` `` `` ` `` `` ;;;;. `` `` `` `` +++++: `` `` `` ``: ;;;;;: `` `` `;;;;; .```````, +++++ `` `` ++++++ `` ++++++, `` `` `` `` `` `` `` `` `` `` + ;;;;; `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `+++++;` `` `` `` +++++ '' `` `` ` `` `. ;;;;` `` `` `` `` +++++: `` `` `` `` ;;;;;; `` `` `;;;;; `` `` `` `` `+++++` `` `++++++` `'++++++` `` `` `` `` ` `` `` `` `` `` ;;;;;: `` `` `` `` `` `` `;;;;;` `` `` `` `` `` `` `` ;;: `` `` `` `` `` `` `` +++++, `` `` `` `+++++ ''` `` `` `` ``, ;;;; `` `` `` `` +++++: `` `` `` `` `, ;;;;;` `` `` ;;;; ; `` `` `` `` +++++ `` `` ++++++ `` ++++++.`` `` `` `` `` `` `` `` `` `` ;;;;;. `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` ` `` `;;;;` `` `` `` `` `` `` `; +++++` `` `` `` `+++++ ''` `` `` `` ``: ;;;: `` `` `` `` +++++: `` `` `` `` ;;;;;, `` `` ;;;; ; `` `` `` `` `+++++` `` `++++++` +++++++ `` `` `` `` `` ` `` `` `` `` `` ;;;;;. `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` ` ``. ;;;;: `` `` `` `` `` `` `+++++ ''` `` `` `` +++++ '' `` `` ` `` `` ;;;;. `` `` `` `` +++++: `` `` `` `` `;;;;;:` `` `;;;; ; `` `` `` `` `+++++` `` `++++++` ++++++. `` `` `` `` `` ` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `` `;;;;;` `` `` `` `` `` ``, ;;;;; `` `` `` `` `` `` `+++++;` `` `` `` `+++++ ''` `` `` `` `` ;;;; `` `` `` `` `+++++:` `` `` `` ``: ;;;;; `` `` ;;;; ; `` `` `` `` `, +++:` `` `+++++++++++++` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` ` ``, ;;;;; `` `` `` `` `` `` `+++++,` `` `` `` `+++++ ''` `` `` `` `` ;;;; `` `` `` `` `+++++:` `` `` `` ``, ;;;;; `` `` ;;;; ; `` `` `` `` `` '.`` `` `` ++++++++++++. `` `` `` `` `` ` `` `` `` `` `` ;;;;;. `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` ` ``, ;;;;; `` `` `` `` `` `` `+++++` `` `` `` `+++++ ''` `` `` `` `` ;;;, `` `` `` `` `+++++:` `` `` `` ``. ;;;;; `` `` ;;;; ; `` `` `` `` `` `` `` `` `++++++++++++` `` `` `` `` ` `` `` `` `` `` ;;;;;: `` `` `` `` `` `` `;;;;;` `` `` `` `` `` ``, ;;;;; `` `` `` `` `` `` `+++++` `` `` `` `+++++ ''` `` `` `` `` ;;; `` `` `` `` `` +++++: `` `` `` `` `. ;;;;;` `` `;;;; ; `` `` `` `` `` `` `` `` `+++++++++++.` `` `` `` `` `` `` `` `` `` ``: ;;;;; `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `, ;;;;;` `` `` `` `` `` `, +++++` `` `` `` `+++++ ''` `` `` ``, ;;; `` `` `` `` `` `+++++:` `` `` `` ``.;;;;; `` `` `;;;;;` `` `` `` `` `` `` `` `` `` +++++++++++ `` `` `` `` `` ` `` `` `` `` ``: ;;;;; `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `, ;;;;;` `` `` `` `` `` `: +++++` `` `` `` `+++++ ''` `` `` ``, ;;; `` `` `` `` `` `+++++:` `` `` `` ``. ;;;;; `` `` ;;;;; `` `` `` `` `` `` `` `` ++++++++++ `` `` `` `` `` ` `` `` `` `` `` ;;;;;; `` `` `` `` `` `` `;;;;;` `` `` `` `` `` ` `, ;;;;;` `` `` `` `` `` `; +++++` `` `` `` `+++++ ''` `` `` ``: ;;, `` `` `` `` `` `+++++:` `` `` `` ``. ;;;;; `` `` ;;;;; `` `` `` `` `` `` `` `` `++++++++++` `` `` `` `` ` `` `` `` `` `` ;;;;;;, `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ` `, ;;;;;` `` `` `` `` `` `; +++++` `` `` `` `+++++ ''` `` `` ` `` ;;; `` `` `` `` `` `` +++++: `` `` `` `` ``.;;;;; `` `` ;;;;; `` `` `` `` `` `` `` `` `` +++++++++ `` `` ` `` `` `` `` `` `` `` ``: ;;;;;;. `` `` `` `` `` `;;;;;` `` `` `` `` `` ` `, ;;;;;` `` `` `` `` `` '+++++ `` `` `` `` +++++' '`` `` `` `` ;;; `` `` `` `` `` `` +++++: `` `` `` `` `. ;;;;;` `` `;;;;; `` `` `` `` `` `` `` `` `+++++++++` `` `` `` `` `` ` `` `` `` `` `` `;;;;;;;;` `` `` `` `` `;;;;;` `` `` `` `` `` ` `, ;;;;;` `` `` `` `` `` `'+++++` `` `` `` `` +++++' '`` `` `` `` ;;: `` `` `` `` `` `` +++++: `` `` `` `` `. ;;;;;` `` `;;;;; `` `` `` `` `` `` `` `` `++++++++` `` `` `` `` `` `` `` `` `` `` ``: ;;;;;;;;;;;. `` `` `;;;;;` `` `` `` `` `` `` ` , ;;;;; `` `` `` `` `` `` '+++++ `` `` `` `` `+++++' '` `` `` `` `.; .```````````` +++++: `` `` `` `` `, ;;;;;` `` `;;;;;` `` ` `` `` `` `` `` `` `` +++++++++ '' `` `` `` `` `` ` `` `` `` `` `` `;;;;;;;;;;;;,` `` `` ;;;;; `` `` `` `` `` `` `` , ;;;;; `` `` `` `` `` `` '+++++ `` `` `` `` `+++++' '` `` `` `` `` `` `` `` `` `` `` `+++++:` `` `` `` ``: ;;;;; `` `` ;;;;; ` `` `` `` `` `` `` `` `+++++++++++` `` `` `` `` `` `` `` `` `` `` `. ;;;;;;;;;;;;` `` `;;;;;` `` `` `` `` `` `` ` : ;;;;; `` `` `` `` `` `` '+++++ `` `` `` `` `+++++' '` `` `` ` `` `` `` `` `` `` `` `+++++:` `` `` `` `` ;;;;;; `` `` ;;;;; ` `` `` `` `` `` `` `` `++++++++++++` `` `` `` `` ` `` `` `` `` `` `, ;;;;;;;;;;;` `` `;;;;;` `` `` `` `` `` ``: ;;;;; `` `` `` `` `` `` '+++++ `` `` `` `` +++++' '`` `` `` ` ``.: `` `` `` `` `` +++++: `` `` `` `` `: ;;;;;;` `` `;;;;;` `` `` ` `` `` `` `` `` `` +++++++++++++ `` `` `` `` `` `` `` `` `` `` ``, ;;;;;;;;;; `` `` ;;;;; `` `` `` `` `` `` ``: ;;;;; `` `` `` `` `` `` ++++++ `` `` `` `` +++++ '' `` `` `` ` ``: ;;; `` `` `` `` `+++++:` `` `` `` `: ;;;;;;;` `` `;;;;;` ` `` `` `` `` `` `` `` `+++++++++++++.` `` `` `` `` ` `` `` `` `` `` `` `` ;;;;;;;;;; `` `` ;;;;; `` `` `` `` `` `` `; ;;;;;: `` `` `` `` `` `++++++` `` `` `` `+++++ ''` `` `` `` `` ;;;;; `` `` `` `` +++++: `` `` `` ;;;;;;;; '' `` `` ;;;;; `` `` `` `` `` `` `` `` `++++++++++++++` `` `` `` `` `` `` `` `` `` ``.;;;;;; `` `` `;;;;;` `` `` `` `` `` `;;;;;;;` `` `` `` `` ` `` ++++++ `` `` `` `` `+++++ ''` `` `` `` `: ;;;;;` `` `` `` `+ ++++: `` ``: ;;;;;;;;; + `` `` ;;;;; `` `` `` `` `` `` `` `` ` `++++++,;: +++++` `` `` `` `` ` `` `` `` `` `` `` `` `` `` .`````` ;;;;; `` `` `` `` `` `` `;; ;;;;;, `` `` `` `` `` `++++++` `` `` `` `` +++++ '' `` `` `` `` ;;;;;; '`` `` `` `` +++++: `` `` ;;;;;;;;;;; + `` `` ;;;;; `` `` `` `` `` `` `` `` `` `++++++` `;;; '++' '` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `; '; ;;;;; `` `` `` `` `` `++++++` `` `` `` `` +++++ '' `` `` `` `,; ;;;;; + `` `` `` `` +++++: ``: ;;;;;;;;;;: ++ `` `` `;;;;;` `` `` `` `` `` `` `` `` `` `++++++` `;;;: ++` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `; +; ;;;;;;, `` `` `` `` `++++++` `` `` `` `` +++++ '' `` `` `` `;; ;;;; ++, `` `` `` `+++++:` ;;;;;;;;;;;; +++ `` `` ;;;;; `` `` `` `` `` `` `` `` `` ++++++ `` `: ;;;: +` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `;;;;;` `` `` `` `` `` ``; + ;; ;;;;;;;: `` `` `` `++++++` `` `` `` `` +++++ '' `` `` ``, ;;; ;;; +++ `` `` `` +++++: ;;;;;;;;;;; '++++ `` `` ;;;;; `` `` ` `` `` `` `` `` `` `` ++++++ `` `` ;;;; +, `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; ++ ;; ;;;;;;;;;: `` `` ++++++ `` `` `` `` `` +++++ '' `` `` `` ;;;;; ; '+++ `` `` `` `+++++ ;;;;;;;;;;:.+++++ `` `` ;;;;; `` `` `` `` `` `` `` `` `` ++++++ `` `;;;;; ; `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `; ++ ;; ;;;;;;;;;;;;, `` ++++++ '' `` `` `` `` +++++ '' `` `` `. ;;;;; ; ++++ '`` `` `` ++++ ;;;;;;;;;;. `. +++++` `` `;;;;;` `` `` `` `` `` `` `` `` `++++++` `` `: ;;;; +` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `;;;;;` `` `` `` `` `` ``; +++ ;; ;;;;;;;;;;;;;, ++++++ `` `` `` `` `+++++ ''` `` `` ;;;;;; ' +++++ `` `` `+++ ;;;;;;;;;;` ``. +++++ `` `` ;;;;; `` `` `` `` `` `` `` `` `` ++++++ `` ``: ;;;; '' `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `; ++++ ;; ;;;;;;;;;;;;;; +++++ `` `` `` `` `` +++++ '' `` `` `;;;;;; ++ ++++.`` `` `++ ;;;;;;;;;.` `` `. +++++` `` `;;;;;` `` `` `` `` `` ` `` `` `` ++++++ `` ``, ;;;;: `` `` `` `` `` `` `` `` `` `` `` `` `` `` `;;;;;` `` `` `` `` `` ``; +++++ .; ;;;;;;;;;;;;;; ++++ `` `` `` `` `+++++ ''` `` `: ;;;;;,. ++ ++++ `` `` `++ ;;;;;;;;` `` `` `` +++++ `` `` `;;;;;.` `` `` `` `` `` `` `` `` ++++++ `` ``, ;;;;; `` `` `` `` ` `` `` `` `` `` `` `` `` `;;;;;` `` `` `` `` `` ``; +++++ ``: ;;;;;;;;;;;;;; +++ `` `` `` `` `+++++ ''` `` `;;;;;;` `+++ +++ `` `` `+ ;;;;;;;;` `` `` `` `+++++ ''` `` ;;;;;, `` `` `` `` `` `` `` `` `+++++ ''` `` `, ;;;;;` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `; +++++` `` `.;;;;;;;;;;;; +++ `` `` `` `` `+++++ ''` `` `: ;;;;;:`: ++++ + '`` `` + ;;;;;;; `` `` `` `` +++++' '`` `` ;;;;;; `` `` `` `` `` `` `` `` `+++++:` `` `, ;;;;;` `` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `; +++++` `` `` ` `. ;;;;;;;;;; ++` `` `` `` `` +++++ '' `` `` ;;;;;; `` `` +++++ + `` `` + ;;;;;;, `` `` `` `` +++++ `` `` `: ;;;;;` `` `` `` `` `` `` `` `` `+++++.` `` `: ;;;;;` `` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` `; +++++` `` `` `` ``, ;;;;;;; ++ `` `` `` `` +++++ '`` ``, ;;;;;; `` `` ++++++. `` `;;;;;;;` `` `` `` `+++++,` `` `. ;;;;;` `` `` `` `` `` `` `` `.+++++ `` `` `: ;;;;;` `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `;;;;;;; +` `` `` `` `` +++++ '' `` `;;;;;;` `` ``. ++++++ `` `` ;;;;;;, `` `` `` `` `+++++ ''` `` `;;;;;:` `` `` `` `` `` `` ` `; +++++` `` ``: ;;;;; `` `` `` `` ` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` ;;;;;; + `` `` `` `` `` +++++ '' ``. ;;;;;; `` `` `++++++` `;; ;;;; `` `` `` `` `` ++++++ `` `` `;;;;;;` `` `` `` `` `` `` ``; +++++ `` `` ;;;;;: `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` , ;;;;; + `` `` `` `` `` +++++ '' `` ;;;;;;.`` `` `: +++++ '` ;;;;;; `` `` `` `` `' +++++` `` `: ;;;;;, `` `` `` `` `` `` ``,; ++++; `` `` ;;;;;, `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` `;;;;; '` `` `` `` `` `+++++' '` `;;;;;;` `` `` `++++++` `;; ;;;; `` `` `` `` ``: +++++ `` `` `` ;;;;;; `` `` `` `` `` `` `;; ++++ `` `` `;;;;;.` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` `;;;;;;` `` `` `` `` `+++++ ''` ;;;;;;, `` `` `` `++++++.` ;; ;;;: `` `` `` `` `` `+++++.` `` `` ;;;;;;; `` `` `` `` `` `:; ' ++++ `` `` `;;;;;` `` `` `` `` ` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` `;;;;;;` `` `` `` `` +++++ '' `;;;;;;` `` `` `` `.++++++ `;;;;;,` `` `` `` `` `` +++++: `` ``, ;;;;;;: `` `` ` `` `` `, ;; ++++:` `` ``, ;;;;; `` `` `` `` `` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` `;;;;;:` `` `` `` `` `+++++ '': ;;;;;,` `` `` `` `` ++++++ `;; ;;;, `` `` `` `` `` `` ++++++ `` `` `` ;;;;;;;; `` `` `` ``: ;;; + +++ `` `` `: ;;;;;` `` `` `` `` ` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` `: ;;;;:` `` `` `` `` `+++++ '' ;;;;;;` `` `` `` `` `: +++++ ';; ;;;, `` `` `` `` `` `; +++++.` `` ``. ;;;;;;;;, `` ``. ;;;;; + ++: `` `` `;;;;;;` `` `` `` `` ` `` `` `` `` `` ;;;;; `` `` `` `` `` `` ``; +++++ `` `` `` `` `` `` `: ;;;;:` `` `` `` `` `+++++ ': ;;;;;:` `` `` `` `` `` ++++++ ;; ;;;, `` `` `` `` `` `` +++++; `` `` ``: ;;;;;;;;;;;;;;;;;; ++ ++ `` `` `` ;;;;;.`` `` `` `` ` `` `` `` `` `` ;;;;;. `` `` `` `` `` `` `; +++++` `` `` `` `` `` ` `: ;;;;:` `` `` `` `` `+++++ ';;;;;;` `` `` `` `` `` ++++++ ;; ;;;, `` `` `` `` `` `` +++++; `` `` `` ;;;;;;;;;;;;;;;;;; ++ + `` `` `` `: ;;;;;` `` `` `` `` ` `` `` `` `` `` ;;;;;. `` `` `` `` `` `` `'+++++` `` `` `` `` `` ` `: ;;;;:` `` `` `` `` `+++++ ;;;;;;;` `` `` `` `` `` `. ++++++; ;;;, `` `` `` `` `` ``: +++++: `` `` `` ;;;;;;;;;;;;;;;;; ++ , `` `` `` ;;;;;; `` `` `` `` `` `` `` `` `` `;;;;;;` `` `` `` `` `` `` `++++++` `` `` `` `` `` `` : ;;;;: `` `` `` `` `+++++ ;;;;;;` `` `` `` `` `` `` ++++++ ;; ;;, `` `` `` `` `` `` `+++++;` `` `` `` ;;;;;;;;;;;;;;; ++: ` `` `` ``: ;;;;;, `` `` `` `` `` `` `` `` `` ;;;;; + `` `` `` `` `` `` `` +++++ '' `` `` `` `` `` `` : ;;;;: `` `` `` `` `+++++ ;;;;;;` `` `` `` `` `` `; +++++ ;; ;;, `` `` `` `` `` `` `+++++ ;;` `` `` `` ;;;;;;;;;;;;; ++.`` `` `` `;;;;;;` `` `` `` `` `` `` `` `` `` `: ;;;; +` `` `` `` `` `` `` `+++++;` `` `` `` `` `` `` : ;;;;: `` `` `` `` `++++ ;;;;;;.` `` `` `` `` `` `` `++++++; ;;, `` `` `` `` `` `` `` +++++ ;: `` `` `` `: ;;;;;;;;;; ++` `` ` `` `` `;;;;;;;` `` `` `` `` ` `` `` `` `` `. ;;;;;,` `` `` `` `` `` `: +++++` `` `` `` `` `` `` ` : ;;;;: `` `` `` `` `++++ ;;;;;;` `` `` `` `` `` `` `++++++; ;;, `` `` `` `` `` `` `` +++++ ;; `` `` `` `` `: ;;;;;;; +` `` `` ` `` ``, ;;;;;; `` `` `` `` `` ` `` `` `` `` `` ;;;;: + `` `` `` `` `` `` ++++++ `` `` `` `` `` `` `` : ;;;;: `` `` `` `` `` +++ ;;;;;;.`` `` `` `` `` `` `` `. ++++++ ;;,` `` `` `` `` `` ``. ++++ ;;; `` `` `` `` `` `` `` `` `` `` `` ``. ;;;;;;; `` `` `` `` `` ` `` `` `` `` `` ;;;;; +: `` `` `` `` `` `: ++++++` `` `` `` `` `` `` ` : ;;;;: `` `` `` `` `` +++ ;;;;;; `` `` `` `` `` `` `` `` ++++++ ;;, `` `` `` `` `` `` `` '++++ ;;; `` `` `` `` `` `` `` `` `` `` `` `;;;;;;;.` `` `` `` `` ` `` `` `` `` ``, ;;;; ++, `` `` `` ``. ++++++: `` `` `` `` `` `` `` : ;;;;: `` `` `` `` `` `++ ;;;;;;,` `` `` `` `` `` `` `` ``; +++++ ;;, `` `` `` `` `` `` `` `++++ ;;;;` `` `` `` `` `` `` `` `` `` `. ;;;;;;;:` `` `` `` `` `` `` `` `` `` `` ;;;; +++ '' `` ``; +++++++ `` `` `` `` `` `` ``: ;;;;: `` `` `` `` `` `++ ;;;;;;` `` `` `` `` `` `` `` `` `++++++ ;, `` `` `` `` `` `` `` `.++++ ;;;;, `` `` `` `` `` `` `` `` ``, ;;;;;;;; `` `` `` `` `` ` ` `` `` `` `` ``: ;;; ++++++ ;; +++++++++ '' `` `` `` `` `` `` `: ;;;;: `` `` `` `` `` ++ ;;;;;: `` `` `` `` `` `` `` `` `` ++++++ ;, `` `` `` `` `` `` `` ``; +++ ;;;;;; `` `` `` `` `` `` `` `` ;; ;;;;;;;. `` `` `` `` `` ` `` `` `` `` `` ;;; '++++++++++++++++ `` `` `` `` `` `` `` `: ;;;;: `` `` `` `` `` + ;;;;;; `` `` `` `` `` `` `` `` `` `. +++++ ;, `` `` `` `` `` `` `` `` `++++ ;;;;;;;.` `` `` `` `` `` `;;;; ;;;;;;, `` `` `` `` `` `` `` `` `` `` `` `;;; +++++++++++++++.`` `` `` `` `` `` `` ``: ;;;;: `` `` `` `` `` + ;;;;;; `` `` `` `` ` `` `` `` `` `` `` ++++++, `` `` `` `` `` `` `` `` `` ++++ ;;;;;; ;;;, `` `` ``. ;;;;;;;;;;;;: `` `` `` `` `` ` `` `` `` `` `` `, ;; ++++++++++++++;` `` `` `` `` `` `` `` `:; ;;;: `` `` `` `` `` ;;;;;; `` `` `` `` `` `` `` `` `` ``; +++++ , `` `` `` `` `` `` `` `` `` `+++ ;;;;;;;;;;;;;;;;;;;;;;;;; ;;;: `` `` `` `` `` `` ` `` `` `` `` `` ``,;: ++++++++++++; `` `` `` `` `` `` `` `` `:; ;;;: `` `` `` `` `` ;;;;;; `` `` `` `` `` `` `` `` `` `` `+++++, `` `` `` `` `` `` `` `` `` `'++ ;;;;;;;;;;;;;;;;;;;;;;;;; ;, `` `` `` `` `` `` ` `` `` `` `` `` `` `; '++++++++++.`` `` `` `` `` `` `` `` ``, ;;;;, `` `` `` `` ``: ;;;;. `` `` `` ` `` `` `` `` `` `` `` `+++++.` `` `` `` `` `` `` `` `` `` `, ++ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;. `` `` `` `` `` `` `` `` `` `` `` `` `: '+++++++' '` `` `` `` `` `` `` `` `` `;; ;; `` `` `` `` `` `;;;;` `` `` `` `` `` `` `` `` `` `` ++++ `` `` `` `` `` `` `` `` `` `` `` `` `++ ;;;;;;;;;;;;;;;;;;;;;;;` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `: + ':` `` `` `` `` `` `` `` `` `` `` `, , `` `` `` `` `` `` `:,` `` `` `` `` `` `` `` `` `` `` `+;` `` ` `` `` `` `` `` `` `` `` `` `.++ ;;;;;;;;;;;;;;;;;;. `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `+ ;;;;;;;;;;;;;;;` `` `` `` `` ` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `;;;;;;;;;:` `` `` `` `` `` `` ` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` '' `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` ` <3 Т.