From be14375c5af9c94f59a36458f4d70ab0ed42e620 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Thu, 29 Feb 2024 20:44:52 +0300 Subject: [PATCH 01/47] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/blog/2023/04/29-03-plugin-release.md | 1 - documentation/blog/2024/02/29-engine-release.md | 2 +- documentation/blog/2024/02/29-plugin-release.md | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/documentation/blog/2023/04/29-03-plugin-release.md b/documentation/blog/2023/04/29-03-plugin-release.md index d3fbfaea5..169bbf11f 100644 --- a/documentation/blog/2023/04/29-03-plugin-release.md +++ b/documentation/blog/2023/04/29-03-plugin-release.md @@ -2,7 +2,6 @@ title: EDT Test runner. Версия 23.04 authors: alkoleft tags: [releases, plugin] -image: https://github.com/bia-technologies/edt-test-runner/releases/tag/23.04 --- [Release 23.04](https://github.com/bia-technologies/edt-test-runner/releases/tag/23.04) diff --git a/documentation/blog/2024/02/29-engine-release.md b/documentation/blog/2024/02/29-engine-release.md index e7926f2c3..ecd7b2801 100644 --- a/documentation/blog/2024/02/29-engine-release.md +++ b/documentation/blog/2024/02/29-engine-release.md @@ -24,7 +24,7 @@ tags: [releases, yaxunit] ### Запуск -* Добавить запуск выделенных тестов в обработке запуска тестов по Ctrl+Enter [#251](https://github.com/bia-technologies/yaxunit/issues/251) Спасибо [@1cgh](\(https://github.com/1cgh) +* Добавить запуск выделенных тестов в обработке запуска тестов по Ctrl+Enter [#251](https://github.com/bia-technologies/yaxunit/issues/251). Спасибо [@1cgh](https://github.com/1cgh) ### Отчет о тестировании diff --git a/documentation/blog/2024/02/29-plugin-release.md b/documentation/blog/2024/02/29-plugin-release.md index 6c0f6b153..b22b9f97e 100644 --- a/documentation/blog/2024/02/29-plugin-release.md +++ b/documentation/blog/2024/02/29-plugin-release.md @@ -2,7 +2,6 @@ title: EDT Test runner. Версия 24.02 authors: alkoleft tags: [releases, plugin] -image: https://github.com/bia-technologies/edt-test-runner/releases/tag/24.02 --- [Release 24.02](https://github.com/bia-technologies/edt-test-runner/releases/tag/24.02) From 1b6d9ad94ac05ebc40a84c7501c937528c98d242 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 7 Mar 2024 00:08:02 +0300 Subject: [PATCH 02/47] #271 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Конструктор объектов XDTO --- .../Module.bsl" | 19 ++ .../src/Configuration/Configuration.mdo | 1 + .../ObjectModule.bsl" | 299 ++++++++++++++++++ ...2\320\265\320\272\321\202\320\260XDTO.mdo" | 13 + 4 files changed, 332 insertions(+) create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 97d9a2d3e..e6552baa0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -551,6 +551,25 @@ КонецФункции +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда +// Возвращает конструктор создания объекта XDTO +// +// Параметры: +// ИмяТипа - Строка - Имя типа объекта +// ПространствоИмен - Строка - Пространство имен типа +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор объекта XDTO +Функция КонструкторОбъектаXDTO(ИмяТипа, ПространствоИмен) Экспорт + + Обработка = Обработки.ЮТКонструкторОбъектаXDTO.Создать(); + Обработка.Инициализировать(ИмяТипа, ПространствоИмен); + + Возврат Обработка; + +КонецФункции +#КонецЕсли + // Удаляет переданные объекта // // Параметры: diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 9cb8293f2..099049f0f 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -121,6 +121,7 @@ DataProcessor.ЮТHTTPServiceRequest DataProcessor.ЮТHTTPСервисЗапрос DataProcessor.ЮТRecordSet + DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных DataProcessor.ЮТЮнитТесты diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" new file mode 100644 index 000000000..04de52834 --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -0,0 +1,299 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда + +#Область ОписаниеПеременных + +Перем ТекущийОбъект; +Перем ТекущийТип; +Перем СтекОбъектов; + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +// Устанавливает значение реквизита объекта. +// +// Параметры: +// ИмяРеквизита - Строка - Имя реквизита объекта +// Значение - Произвольный - Значение реквизита объекта +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор +Функция Установить(ИмяРеквизита, Значение) Экспорт + + ТекущийОбъект[ИмяРеквизита] = Значение; + + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает фиктивное значение реквизита объекта. +// +// На основании типа реквизита генерируется фиктивное значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для объектных типов создается новый объект +// * Для коллекций - генерируется случайно количество случайных элементов (на основании типа) +// +// Параметры: +// ИмяРеквизита - Строка - Имя реквизита объекта +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор +Функция Фикция(ИмяРеквизита) Экспорт + + Свойство = ТекущийТип.Свойства.Получить(ИмяРеквизита); + Значение = СлучайноеЗначениеСвойства(Свойство, 0); + Установить(ИмяРеквизита, Значение); + + Возврат ЭтотОбъект; + +КонецФункции + +// Заполняет обязательные реквизиты объекта фиктивными значениями +// +// На основании типа объекта определяются обязательные поля. +// Для них генерируются и устанавливаются фиктивные значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для объектных типов создается новый объект +// * Для коллекций - генерируется случайно количество случайных элементов (на основании типа) +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор +Функция ФикцияОбязательныхПолей() Экспорт + + Для Каждого Свойство Из ТекущийТип.Свойства Цикл + УстановитьСлучайноеЗначениеСвойства(ТекущийОбъект, Свойство, 0); + КонецЦикла; + + Возврат ЭтотОбъект; + +КонецФункции + +// Заполняет неустановленные реквизиты объекта фиктивными значениями +// +// На основании типа объекта определяются обязательные поля. +// Для них генерируются и устанавливаются фиктивные значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для объектных типов создается новый объект +// * Для коллекций - генерируется случайно количество случайных элементов (на основании типа) +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор +Функция ФикцияНезаполненных() Экспорт + + ЗаполнитьПакетСлучайнымиЗначениями(ТекущийОбъект, 0); + + Возврат ЭтотОбъект; + +КонецФункции + +// Возвращает основной объект XDTO +// +// Возвращаемое значение: +// ОбъектXDTO +Функция ДанныеОбъекта() Экспорт + + Возврат СтекОбъектов[0]; + +КонецФункции + +// Добавляет новый объект в реквизит-коллекцию +// +// Параметры: +// ИмяРеквизита - Строка - Имя реквизиты коллекции +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Добавить новый +Функция ДобавитьНовый(ИмяРеквизита) Экспорт + + Свойство = ТекущийТип.Свойства.Получить(ИмяРеквизита); + + Если НЕ ЭтоТипОбъектаXDTO(Свойство.Тип) Тогда + ВызватьИсключение СтрШаблон("Метод применяется только для свойств-объектов. Реквизит: %1 имеет тип %2", ИмяРеквизита, Свойство.Тип); + КонецЕсли; + + Коллекция = ТекущийОбъект[Свойство.Имя]; + ДобавитьНовыйОбъектВСтек(Свойство.Тип); + + Коллекция.Добавить(ТекущийОбъект); + + Возврат ЭтотОбъект; + +КонецФункции + +// Переходит на уровень выше по стеку. +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Перейти к владельцу +Функция ПерейтиКВладельцу() Экспорт + + УдалитьПоследнийИзСтека(); + + Возврат ЭтотОбъект; + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура Инициализировать(ИмяТипаОбъекта, ПространствоИмен) Экспорт + + СтекОбъектов = Новый Массив(); + ТипОбъекта = ФабрикаXDTO.Тип(ПространствоИмен, ИмяТипаОбъекта); + ДобавитьНовыйОбъектВСтек(ТипОбъекта); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ДобавитьНовыйОбъектВСтек(Тип) + + Объект = НовыйОбъект(Тип); + СтекОбъектов.Добавить(Объект); + ТекущийОбъект = Объект; + ТекущийТип = Тип; + +КонецПроцедуры + +Процедура УдалитьПоследнийИзСтека() + + ИндексПоследнего = СтекОбъектов.ВГраница(); + + ТекущийОбъект = СтекОбъектов[ИндексПоследнего - 1]; + ТекущийТип = ТекущийОбъект.Тип(); + + СтекОбъектов.Удалить(ИндексПоследнего); + +КонецПроцедуры + +Процедура УстановитьСлучайноеЗначениеСвойства(Объект, Свойство, Уровень) + + Значение = СлучайноеЗначениеСвойства(Свойство, Уровень); + Объект[Свойство.Имя] = Значение; + +КонецПроцедуры + +Функция СлучайноеЗначениеСвойства(Свойство, Уровень = 0) + + ТипСвойства = Свойство.Тип; + Если ТипЗнч(ТипСвойства) = Тип("ТипЗначенияXDTO") Тогда + Возврат СлучайноеЗначениеПримитипа(Свойство); + ИначеЕсли Уровень < 3 Тогда + Возврат СлучайноеЗначениеОбъекта(Свойство, Уровень + 1); + КонецЕсли; + +КонецФункции + +Функция СлучайноеЗначениеПримитипа(Свойство) + + Тип = Свойство.Тип; + + Если Тип.Имя = "string" И СтрНайти(НРег(Свойство.Имя), "uid") Тогда + Возврат ЮТест.Данные().УникальнаяСтрока(); + ИначеЕсли Тип.Имя = "string" Тогда + Возврат ЮТест.Данные().СлучайнаяСтрока(); + ИначеЕсли Тип.Имя = "boolean" Тогда + Возврат ЮТест.Данные().СлучайноеБулево(); + ИначеЕсли Тип.Имя = "integer" Тогда + Возврат ЮТест.Данные().СлучайноеЧисло(); + ИначеЕсли Тип.Имя = "decimal" Тогда + Возврат ЮТест.Данные().СлучайноеЧисло(, , 3); + ИначеЕсли Тип.Имя = "time" Тогда + Возврат ЮТест.Данные().СлучайноеВремя(); + ИначеЕсли Тип.Имя = "date" Тогда + Возврат НачалоДня(ЮТест.Данные().СлучайнаяДата()); + ИначеЕсли Тип.Имя = "dateTime" Тогда + Возврат ЮТест.Данные().СлучайнаяДата(); + Иначе + ВызватьИсключение "Неподдерживаемый тип примитива XDTO: " + Тип; + КонецЕсли; + +КонецФункции + +Функция СлучайноеЗначениеОбъекта(Свойство, Уровень) + + Пакет = НовыйОбъект(Свойство.Тип); + ЗаполнитьПакетСлучайнымиЗначениями(Пакет, Уровень); + + Возврат Пакет; + +КонецФункции + +Процедура ЗаполнитьПакетСлучайнымиЗначениями(Пакет, Уровень = 0) + + Тип = Пакет.Тип(); + Для Каждого Свойство Из Тип.Свойства Цикл + ЭтоСписок = Свойство.ВерхняяГраница = -1 ИЛИ Свойство.ВерхняяГраница > 1; + + Если ЭтоСписок И Пакет[Свойство.Имя].Количество() Тогда + Продолжить; + ИначеЕсли ЭтоСписок Тогда + СписокСлучайныхЗначений(Пакет[Свойство.Имя], Свойство, Уровень); + Продолжить; + КонецЕсли; + + Если ЗначениеЗаполнено(Пакет[Свойство.Имя]) Тогда + Продолжить; + КонецЕсли; + + Значение = СлучайноеЗначениеСвойства(Свойство, Уровень); + Если Значение <> Неопределено Тогда + Пакет[Свойство.Имя] = Значение; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +Процедура СписокСлучайныхЗначений(Список, Свойство, Уровень) + + Если Свойство.ВерхняяГраница = -1 Тогда + Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, 10); + Иначе + Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, Свойство.ВерхняяГраница); + КонецЕсли; + + Для Инд = 0 По Количество Цикл + Значение = СлучайноеЗначениеСвойства(Свойство, Уровень); + Список.Добавить(Значение); + КонецЦикла; + +КонецПроцедуры + +Функция НовыйОбъект(Тип) + + Возврат ФабрикаXDTO.Создать(Тип); + +КонецФункции + +Функция ЭтоТипОбъектаXDTO(ТипСвойства) + + Возврат ТипЗнч(ТипСвойства) = Тип("ТипОбъектаXDTO"); + +КонецФункции + +#КонецОбласти + +#КонецЕсли diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO.mdo" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO.mdo" new file mode 100644 index 000000000..c8450bc17 --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO.mdo" @@ -0,0 +1,13 @@ + + + + + + + ЮТКонструкторОбъектаXDTO + + ru + Конструктор объекта XDTO + + true + From 01a30c1a3580685edab2ade9e3cc91047958e8a5 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 7 Mar 2024 01:03:47 +0300 Subject: [PATCH 03/47] #271 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Тесты и правка ошибок --- .../ObjectModule.bsl" | 83 ++++++--- .../Module.bsl" | 157 ++++++++++++++++++ ...\321\202\320\260XDTO_\320\234\320\236.mdo" | 5 + tests/src/Configuration/Configuration.mdo | 1 + 4 files changed, 225 insertions(+), 21 deletions(-) create mode 100644 "tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index 04de52834..b575e41d2 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -81,7 +81,11 @@ Функция ФикцияОбязательныхПолей() Экспорт Для Каждого Свойство Из ТекущийТип.Свойства Цикл - УстановитьСлучайноеЗначениеСвойства(ТекущийОбъект, Свойство, 0); + + Если НЕ Свойство.ВозможноПустое И НеЗаполнено(Свойство, ТекущийОбъект[Свойство.Имя]) Тогда + УстановитьСлучайноеЗначениеСвойства(ТекущийОбъект, Свойство, 0); + КонецЕсли; + КонецЦикла; Возврат ЭтотОбъект; @@ -101,7 +105,13 @@ // ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор Функция ФикцияНезаполненных() Экспорт - ЗаполнитьПакетСлучайнымиЗначениями(ТекущийОбъект, 0); + Для Каждого Свойство Из ТекущийТип.Свойства Цикл + + Если НеЗаполнено(Свойство, ТекущийОбъект[Свойство.Имя]) Тогда + УстановитьСлучайноеЗначениеСвойства(ТекущийОбъект, Свойство, 0); + КонецЕсли; + + КонецЦикла; Возврат ЭтотОбъект; @@ -189,13 +199,6 @@ КонецПроцедуры -Процедура УстановитьСлучайноеЗначениеСвойства(Объект, Свойство, Уровень) - - Значение = СлучайноеЗначениеСвойства(Свойство, Уровень); - Объект[Свойство.Имя] = Значение; - -КонецПроцедуры - Функция СлучайноеЗначениеСвойства(Свойство, Уровень = 0) ТипСвойства = Свойство.Тип; @@ -227,6 +230,10 @@ Возврат НачалоДня(ЮТест.Данные().СлучайнаяДата()); ИначеЕсли Тип.Имя = "dateTime" Тогда Возврат ЮТест.Данные().СлучайнаяДата(); + ИначеЕсли Тип.БазовыйТип.Имя = "AnyRef" Тогда + Возврат ЮТест.Данные().УникальнаяСтрока(); + ИначеЕсли ЗначениеЗаполнено(Тип.Фасеты) И Тип.Фасеты[0].Вид = ВидФасетаXDTO.Перечисление Тогда + Возврат СлучайноеЗначениеПеречисления(Тип); Иначе ВызватьИсключение "Неподдерживаемый тип примитива XDTO: " + Тип; КонецЕсли; @@ -246,27 +253,47 @@ Тип = Пакет.Тип(); Для Каждого Свойство Из Тип.Свойства Цикл - ЭтоСписок = Свойство.ВерхняяГраница = -1 ИЛИ Свойство.ВерхняяГраница > 1; - Если ЭтоСписок И Пакет[Свойство.Имя].Количество() Тогда - Продолжить; - ИначеЕсли ЭтоСписок Тогда - СписокСлучайныхЗначений(Пакет[Свойство.Имя], Свойство, Уровень); + Если НеЗаполнено(Свойство, Пакет[Свойство.Имя]) Тогда Продолжить; КонецЕсли; - Если ЗначениеЗаполнено(Пакет[Свойство.Имя]) Тогда - Продолжить; - КонецЕсли; + УстановитьСлучайноеЗначениеСвойства(Пакет, Свойство, Уровень); - Значение = СлучайноеЗначениеСвойства(Свойство, Уровень); - Если Значение <> Неопределено Тогда - Пакет[Свойство.Имя] = Значение; - КонецЕсли; КонецЦикла; КонецПроцедуры +Процедура УстановитьСлучайноеЗначениеСвойства(Пакет, Свойство, Уровень) + + ЭтоСписок = ЭтоСписок(Свойство); + + Если ЭтоСписок Тогда + СписокСлучайныхЗначений(Пакет[Свойство.Имя], Свойство, Уровень); + Иначе + Пакет[Свойство.Имя] = СлучайноеЗначениеСвойства(Свойство, Уровень); + КонецЕсли; + +КонецПроцедуры + +Функция НеЗаполнено(Свойство, Значение) + + ЭтоСписок = ЭтоСписок(Свойство); + + Если ЭтоСписок И Значение.Количество() Тогда + Возврат Значение.Количество() = 0; + Иначе + Возврат НЕ ЗначениеЗаполнено(Значение); + КонецЕсли; + +КонецФункции + +Функция ЭтоСписок(Свойство) + + Возврат Свойство.ВерхняяГраница = -1 ИЛИ Свойство.ВерхняяГраница > 1; + +КонецФункции + Процедура СписокСлучайныхЗначений(Список, Свойство, Уровень) Если Свойство.ВерхняяГраница = -1 Тогда @@ -294,6 +321,20 @@ КонецФункции +Функция СлучайноеЗначениеПеречисления(Тип) + + Значения = Новый Массив(); + + Для Каждого Фасет Из Тип.Фасеты Цикл + Если Фасет.Вид = ВидФасетаXDTO.Перечисление Тогда + Значения.Добавить(Фасет.Значение); + КонецЕсли; + КонецЦикла; + + Возврат ЮТест.Данные().СлучайноеЗначениеИзСписка(Значения); + +КонецФункции + #КонецОбласти #КонецЕсли diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" new file mode 100644 index 000000000..0d4d195fe --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" @@ -0,0 +1,157 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("Установить") + .ДобавитьТест("Фикция") + .ДобавитьТест("ФикцияОбязательныхПолей") + .ДобавитьТест("ФикцияНезаполненных") + .ДобавитьТест("ДобавитьНовый") + .ДобавитьТест("ПерейтиКВладельцу") + ; + +КонецПроцедуры + +Процедура Установить() Экспорт + + Номер = ЮТест.Данные().СлучайнаяСтрока(9); + Сумма = ЮТест.Данные().СлучайноеЧисло(); + Покупатель = ЮТест.Данные().СоздатьЭлемент(Справочники.Контрагенты); + + Объект = НовыйКонструктор() + .Установить("Number", Номер) + .Установить("Сумма", Сумма) + .Установить("Покупатель", Покупатель) + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Number").Равно(Номер) + .Свойство("Сумма").Равно(Сумма) + .Свойство("Покупатель").Равно(Покупатель) + ; + +КонецПроцедуры + +Процедура Фикция() Экспорт + + Объект = НовыйКонструктор() + .Фикция("Number") + .Фикция("Сумма") + .Фикция("Покупатель") + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Number").Заполнено() + .Свойство("Сумма").Заполнено() + .Свойство("Покупатель").Заполнено() + ; + +КонецПроцедуры + +Процедура ФикцияОбязательныхПолей() Экспорт + + Дата = ЮТест.Данные().СлучайнаяДата(); + + Объект = НовыйКонструктор() + .Установить("Date", Дата) + .ФикцияОбязательныхПолей() + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Number").Заполнено() + .Свойство("Date").Равно(Дата) + .Свойство("Сумма").Заполнено() + .Свойство("Покупатель").Заполнено() + .Свойство("Товары").Заполнено() + ; + +КонецПроцедуры + +Процедура ФикцияНезаполненных() Экспорт + + Дата = ЮТест.Данные().СлучайнаяДата(); + + Объект = НовыйКонструктор() + .Установить("Date", Дата) + .ФикцияНезаполненных() + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Number").Заполнено() + .Свойство("Date").Равно(Дата) + .Свойство("Сумма").Заполнено() + .Свойство("Покупатель").Заполнено() + .Свойство("Товары").Заполнено() + ; + +КонецПроцедуры + +Процедура ДобавитьНовый() Экспорт + + Объект = НовыйКонструктор() + .ДобавитьНовый("Товары") + .Фикция("Цена") + .Фикция("Количество") + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Товары").ИмеетДлину(1) + .Свойство("Товары[0].Цена").Заполнено() + .Свойство("Товары[0].Сумма").НеЗаполнено(); + +КонецПроцедуры + +Процедура ПерейтиКВладельцу() Экспорт + + Объект = НовыйКонструктор() + .ДобавитьНовый("Товары") + .ПерейтиКВладельцу() + .Фикция("Сумма") + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Товары").ИмеетДлину(1) + .Свойство("Товары[0].Сумма").НеЗаполнено() + .Свойство("Сумма").Заполнено() + ; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция НовыйКонструктор() + + Тип = СериализаторXDTO.XMLТип(Тип("ДокументОбъект.Заказ")); + + Возврат ЮТест.Данные().КонструкторОбъектаXDTO(Тип.ИмяТипа, Тип.URIПространстваИмен); + +КонецФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" new file mode 100644 index 000000000..663eab4e3 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" @@ -0,0 +1,5 @@ + + + Обр_ЮТКонструкторОбъектаXDTO_МО + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index c4a17479b..283b955c9 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -27,6 +27,7 @@ CommonModule.Интеграция CommonModule.Обр_ЮТHTTPСервисЗапрос CommonModule.Обр_ЮТRecordSet_МО + CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение CommonModule.ОМ_МокитоСлужебный From c00dc45ebfccd8653747924d259136ff7f61add1 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 7 Mar 2024 17:08:07 +0300 Subject: [PATCH 04/47] #273 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Удалил из фабрики дубль метода --- .../Module.bsl" | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 5761e5d2f..90094b53c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -18,24 +18,6 @@ #Область СлужебныйПрограммныйИнтерфейс -// Параметры записи объекта -// -// Возвращаемое значение: -// Структура - Параметры записи: -// * ОбменДаннымиЗагрузка - Булево -// * ДополнительныеСвойства - Структура -// * РежимЗаписи - РежимЗаписиДокумента -Функция ПараметрыЗаписи() Экспорт - - ПараметрыЗаписи = Новый Структура(); - ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь); - ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура); - ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Запись); - - Возврат ПараметрыЗаписи; - -КонецФункции - // КонтекстыВызова // Возвращает перечисление возможных контекстов вызова // Возвращаемое значение: @@ -842,10 +824,10 @@ Функция ПараметрыСозданияОбъектов(Знач ПараметрыЗаписи = Неопределено, ФикцияОбязательныхПолей = Ложь) Экспорт Если ПараметрыЗаписи = Неопределено Тогда - ПараметрыЗаписи = ПараметрыЗаписи(); + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); Иначе ВходныеПараметрыЗаписи = ПараметрыЗаписи; - ПараметрыЗаписи = ПараметрыЗаписи(); + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ВходныеПараметрыЗаписи); КонецЕсли; From 78383973cb7532ff3604ff6c954678864e1f76d4 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 7 Mar 2024 17:43:32 +0300 Subject: [PATCH 05/47] #248 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Сброс состояния тестов перед запуском --- .../Module.bsl" | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index d86639e43..5626cae5d 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -528,6 +528,8 @@ Для Каждого Модуль Из Модули Цикл + СброситьСостояниеТестирования(Модуль); + Результат = ЮТИсполнительКлиент.ВыполнитьТестыМодуля(Модуль); Для Каждого Набор Из Результат.НаборыТестов Цикл @@ -554,6 +556,25 @@ КонецПроцедуры +&НаКлиенте +Процедура СброситьСостояниеТестирования(Модуль) + + Статусы = ЮТФабрика.СтатусыИсполненияТеста(); + + Модуль.Ошибки.Очистить(); + + Для Каждого Набор Из Модуль.НаборыТестов Цикл + Набор.Ошибки.Очистить(); + Набор.Выполнять = Истина; + + Для Каждого Тест Из Набор.Тесты Цикл + Тест.Ошибки.Очистить(); + Тест.Статус = Статусы.Ожидание; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + &НаКлиенте Функция ВыделенныеТестовыеМодули() @@ -611,12 +632,6 @@ МодулиКЗапуску = Новый Массив(); - ВыделенныеСтроки = Элементы.ДеревоТестов.ВыделенныеСтроки; - - Если ВыделенныеСтроки.Количество() = 0 Тогда - Возврат МодулиКЗапуску; - КонецЕсли; - Для Каждого Модуль Из ИсполняемыеТестовыеМодули Цикл НаборыКЗапуску = Новый Массив(); From 9edac72a07d2b019715940f8712f4bf808499d71 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 7 Mar 2024 21:02:57 +0300 Subject: [PATCH 06/47] =?UTF-8?q?=D0=A1=D0=BE=D1=80=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=B4=D1=81=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\270\321\202\320\265\320\273\321\214.mdo" | 4 +- ...1\202\320\265\320\272\321\201\321\202.mdo" | 2 +- ...0\265\321\200\320\262\320\270\321\201.mdo" | 38 +++++++++---------- ...0\260\320\275\320\275\321\213\320\265.mdo" | 6 +-- ...0\264\320\265\320\275\320\270\321\217.mdo" | 10 ++--- ...0\270\321\207\320\275\321\213\320\271.mdo" | 10 ++--- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" index 6b30b5377..31c93cc89 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" @@ -14,9 +14,9 @@ CommonModule.ЮТИсполнительКлиент CommonModule.ЮТИсполнительКлиентСервер CommonModule.ЮТИсполнительСервер + CommonModule.ЮТПараметрыЗапуска + CommonModule.ЮТФильтрация CommonModule.ЮТЧитатель CommonModule.ЮТЧитательСервер - CommonModule.ЮТФильтрация - CommonModule.ЮТПараметрыЗапуска Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" index 59fbb6222..0a5e28404 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" @@ -12,7 +12,7 @@ CommonModule.ЮТКонтекст CommonModule.ЮТКонтекстКлиент - CommonModule.ЮТКонтекстТеста CommonModule.ЮТКонтекстСервер + CommonModule.ЮТКонтекстТеста Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index 377ee3c6f..b1403cc64 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -10,18 +10,26 @@ ru Сервисная функциональность работы движка - CommonModule.ЮТЛогированиеВызовСервера CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент + CommonModule.ЮТКомпоненты + CommonModule.ЮТКомпонентыВызовСервера + CommonModule.ЮТКомпонентыКлиент + CommonModule.ЮТЛогированиеВызовСервера + CommonModule.ЮТЛокальСлужебный + CommonModule.ЮТМетаданныеПовтИсп + CommonModule.ЮТМетаданныеСервер + CommonModule.ЮТНастройкиВыполнения + CommonModule.ЮТОбщийВызовСервера + CommonModule.ЮТОтчет + CommonModule.ЮТПовторногоИспользования + CommonModule.ЮТПроверкиСлужебный + CommonModule.ЮТРасширения + CommonModule.ЮТРегистрацияОшибок + CommonModule.ЮТСобытия + CommonModule.ЮТСообщенияСлужебный + CommonModule.ЮТТипыДанныхСлужебный CommonModule.ЮТФабрика CommonModule.ЮТФайлы - CommonModule.ЮТТипыДанныхСлужебный - CommonModule.ЮТСообщенияСлужебный - CommonModule.ЮТСобытия - CommonModule.ЮТРегистрацияОшибок - CommonModule.ЮТРасширения - CommonModule.ЮТПроверкиСлужебный - CommonTemplate.ЮТRegEx1CAddin - CommonTemplate.ЮТYaxUnitAddIn CommonPicture.ЮТНеизвестный CommonPicture.ЮТОшибка CommonPicture.ЮТПодсистема @@ -29,16 +37,8 @@ CommonPicture.ЮТУпал CommonPicture.ЮТУспешно CommonPicture.ЮТЭлементыТестов - CommonModule.ЮТКомпоненты - CommonModule.ЮТКомпонентыВызовСервера - CommonModule.ЮТКомпонентыКлиент - CommonModule.ЮТЛокальСлужебный - CommonModule.ЮТМетаданныеПовтИсп - CommonModule.ЮТМетаданныеСервер - CommonModule.ЮТОбщийВызовСервера - CommonModule.ЮТПовторногоИспользования + CommonTemplate.ЮТRegEx1CAddin + CommonTemplate.ЮТYaxUnitAddIn CommonTemplate.ЮТОписаниеМетаданных - CommonModule.ЮТНастройкиВыполнения - CommonModule.ЮТОтчет Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" index 65cbcd3f4..d698d17c5 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" @@ -10,15 +10,15 @@ ru Реализация генерации и работы с тестовыми данными + CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанныхСлужебный + CommonModule.ЮТПреобразования + CommonModule.ЮТСтроки CommonModule.ЮТТестовыеДанные CommonModule.ЮТТестовыеДанные_ТаблицыЗначений CommonModule.ЮТТестовыеДанныеВызовСервера CommonModule.ЮТТестовыеДанныеСлужебный DataProcessor.ЮТКонструкторТестовыхДанных - CommonModule.ЮТСтроки - CommonModule.ЮТПреобразования - CommonModule.ЮТКонструкторВариантов ЮТПодражатель Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" index 6d5974624..ce2c36fec 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" @@ -10,13 +10,13 @@ ru Реализация утверждений для проверки результатов при тестировании - CommonModule.ЮТУтверждения - CommonModule.ЮТУтвержденияИБ - CommonModule.ЮТПредикаты - CommonModule.ЮТПредикатыКлиентСервер CommonModule.ЮТЗапросыВызовСервера CommonModule.ЮТЗапросыКлиентСервер - CommonModule.ЮТСравнениеСервер + CommonModule.ЮТПредикаты + CommonModule.ЮТПредикатыКлиентСервер CommonModule.ЮТСравнениеКлиентСервер + CommonModule.ЮТСравнениеСервер + CommonModule.ЮТУтверждения + CommonModule.ЮТУтвержденияИБ Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" index a898a25a8..f2303e47f 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" @@ -14,13 +14,13 @@ CommonPicture.ЮТПодсистема - CommonModule.ЮТест - CommonModule.ЮТОбщий - CommonModule.ЮТТесты CommonModule.Мокито + CommonModule.ЮТест CommonModule.ЮТЗапросы - CommonModule.ЮТМетаданные CommonModule.ЮТЛогирование - DataProcessor.ЮТЮнитТесты + CommonModule.ЮТМетаданные + CommonModule.ЮТОбщий + CommonModule.ЮТТесты CommonModule.ЮТУтверждения + DataProcessor.ЮТЮнитТесты From 05b289c7aaec07440fd97a402603b4ad34270bac Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 9 Mar 2024 23:10:17 +0300 Subject: [PATCH 07/47] #269 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Расширение апи для генерации дат --- .../Module.bsl" | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 97d9a2d3e..75d44240d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -254,6 +254,42 @@ КонецФункции +Функция СлучайноеВремя() Экспорт + + СекундВСутках = 60*60*24; + + Возврат '00010101000000' + СлучайноеЧисло(0, СекундВСутках - 1); + +КонецФункции + +Функция СлучайнаяДатаВБудущем(Интервал, ТипИнтервала) Экспорт + + СекундВМинуте = 60; + СекундВЧасе = 60 * СекундВМинуте; + СекундВДне = СекундВЧасе * 24; + + Множители = Новый Структура; + Множители.Вставить("секунда", 1); + Множители.Вставить("секунды", 1); + Множители.Вставить("секунд", 1); + Множители.Вставить("минута", СекундВМинуте); + Множители.Вставить("минуты", СекундВМинуте); + Множители.Вставить("минут", СекундВМинуте); + Множители.Вставить("час", СекундВЧасе); + Множители.Вставить("часа", СекундВЧасе); + Множители.Вставить("часов", СекундВЧасе); + Множители.Вставить("день", СекундВДне); + Множители.Вставить("дня", СекундВДне); + Множители.Вставить("дней", СекундВДне); + + Множитель = Множители[ТипИнтервала]; + Минимум = ТекущаяДата(); + Максимум = Минимум + Множитель * Интервал; + + Возврат СлучайнаяДата(Минимум, Максимум); + +КонецФункции + // Генерирует и возвращает случайный IP адрес. // // Возвращаемое значение: From d8ef2dd42c99a7032866310547998993e784c5ad Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 10 Mar 2024 02:45:18 +0300 Subject: [PATCH 08/47] #269 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Генерация случайных дат --- .../Module.bsl" | 28 +++ ...1\207\320\265\320\275\320\270\321\217.mdo" | 11 ++ .../Module.bsl" | 6 +- .../Module.bsl" | 4 +- .../Module.bsl" | 59 ++++++- .../Module.bsl" | 26 ++- ...0\262\320\260\320\275\320\270\321\217.mdo" | 2 +- .../Module.bsl" | 160 +++++++++++++++--- .../Module.bsl" | 4 +- .../Module.bsl" | 2 +- .../src/Configuration/Configuration.mdo | 3 +- ...0\265\321\200\320\262\320\270\321\201.mdo" | 3 +- .../Module.bsl" | 83 ++++++++- 13 files changed, 345 insertions(+), 46 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217.mdo" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" (69%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" (85%) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" new file mode 100644 index 000000000..c1871dae3 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" @@ -0,0 +1,28 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция НекорректныеПараметрыМетода(ИмяМетода, Пояснение = Неопределено) Экспорт + + Сообщение = СтрШаблон("Некорректные параметры метода `%1`"); + Возврат ЮТОбщий.ДобавитьСтроку(Сообщение, Пояснение, ", "); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217.mdo" new file mode 100644 index 000000000..bceff2664 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217.mdo" @@ -0,0 +1,11 @@ + + + ЮТИсключения + + ru + Исключения + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" index cc3e0f6f8..ad39dade4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -74,7 +74,7 @@ Функция СоздатьКомпоненту(ОписаниеКомпоненты, Кэшировать = Ложь) Экспорт Если Кэшировать Тогда - Возврат ЮТПовторногоИспользования.СоздатьКомпоненту(ОписаниеКомпоненты); + Возврат ЮТСлужебныйПовторногоИспользования.СоздатьКомпоненту(ОписаниеКомпоненты); КонецЕсли; #Если Сервер Тогда @@ -107,7 +107,7 @@ Функция ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты, Кэшировать) Экспорт Если Кэшировать Тогда - Возврат ЮТПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты); + Возврат ЮТСлужебныйПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты); КонецЕсли; Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 4dd964da3..c23856791 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -68,7 +68,7 @@ Если Кэшировать Тогда - Возврат ЮТПовторногоИспользования.АдресСерверногоКонтекста(); + Возврат ЮТСлужебныйПовторногоИспользования.АдресСерверногоКонтекста(); Иначе diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 9232c484c..ad570f2a7 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -55,16 +55,19 @@ КонецФункции +// Вычисляет хеш по алгоритму md5. +// +// Параметры: +// Данные - Строка, ДвоичныеДанные - Данные, для которых необходимо вычислить хеш +// +// Возвращаемое значение: +// Строка Функция ХешMD5(Данные) Экспорт Возврат ЮТОбщийВызовСервера.ХешMD5(Данные); КонецФункции -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - #Область Строки // ДобавитьСтроку @@ -143,6 +146,34 @@ #КонецОбласти +#Область ДатаВремя + +// Добавляет к дате указанное значение временных интервалов +// +// Параметры: +// Дата - Дата +// Интервал - Число - Добавляемое +// ТипИнтервала - Строка - Тип интервала +// +// Возвращаемое значение: +// Дата +Функция ДобавитьКДате(Дата, Интервал, ТипИнтервала) Экспорт + + Если ЭтоМесяц(ТипИнтервала) Тогда + Возврат ДобавитьМесяц(Дата, Интервал); + КонецЕсли; + + Множитель = МножительПериода(ТипИнтервала); + Возврат Дата + Множитель * Интервал; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + #Область Числа // Инкрементирует значение @@ -640,7 +671,7 @@ ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода"); Если Кешировать Тогда - Возврат ЮТПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров); + Возврат ЮТСлужебныйПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров); КонецЕсли; ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода); @@ -788,6 +819,7 @@ ЗаписьJSON = Новый ЗаписьJSON(); ЗаписьJSON.УстановитьСтроку(); Если ИспользоватьСериализатор Тогда + //@skip-check undefined-variable СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Значение); Иначе ЗаписатьJSON(ЗаписьJSON, Значение); @@ -845,7 +877,7 @@ // ОписаниеТипов - Описание типов любая ссылка Функция ОписаниеТиповЛюбаяСсылка() Экспорт - Возврат ЮТПовторногоИспользования.ОписаниеТиповЛюбаяСсылка(); + Возврат ЮТСлужебныйПовторногоИспользования.ОписаниеТиповЛюбаяСсылка(); КонецФункции @@ -1147,4 +1179,19 @@ Возврат Ложь; КонецФункции +Функция МножительПериода(ТипИнтервала) + + Множители = ЮТСлужебныйПовторногоИспользования.МножителиИнтервалов(); + Возврат Множители[ТипИнтервала]; + +КонецФункции + +Функция ЭтоМесяц(ТипИнтервала) + + Возврат СтрСравнить(ТипИнтервала, "месяц") = 0 + Или СтрСравнить(ТипИнтервала, "месяца") = 0 + Или СтрСравнить(ТипИнтервала, "месяцев") = 0; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" similarity index 69% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" index ca68d9757..dfe6095b1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -67,4 +67,28 @@ КонецФункции +Функция МножителиИнтервалов() Экспорт + + СекундВМинуте = 60; + СекундВЧасе = 60 * СекундВМинуте; + СекундВДне = СекундВЧасе * 24; + + Множители = Новый Структура; + Множители.Вставить("секунда", 1); + Множители.Вставить("секунды", 1); + Множители.Вставить("секунд", 1); + Множители.Вставить("минута", СекундВМинуте); + Множители.Вставить("минуты", СекундВМинуте); + Множители.Вставить("минут", СекундВМинуте); + Множители.Вставить("час", СекундВЧасе); + Множители.Вставить("часа", СекундВЧасе); + Множители.Вставить("часов", СекундВЧасе); + Множители.Вставить("день", СекундВДне); + Множители.Вставить("дня", СекундВДне); + Множители.Вставить("дней", СекундВДне); + + Возврат Множители; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" similarity index 85% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" index 444108f08..5955f698a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" @@ -1,6 +1,6 @@ - ЮТПовторногоИспользования + ЮТСлужебныйПовторногоИспользования ru Повторного использования diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 75d44240d..ae48641cf 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -238,22 +238,31 @@ // // Возвращаемое значение: // Дата - Случайная дата -Функция СлучайнаяДата(Знач Минимум = Неопределено, Знач Максимум = Неопределено) Экспорт +Функция СлучайнаяДата(Знач Минимум = '00010101', Знач Максимум = '39991231') Экспорт - Если Минимум = Неопределено Тогда - Минимум = '00010101'; + Если Минимум = Максимум Тогда + Возврат Минимум; + ИначеЕсли Максимум < Минимум Тогда + ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("СлучайнаяДата", "максимальное значение должно быть больше минимального"); КонецЕсли; - Если Максимум = Неопределено Тогда - Максимум = '39991231'; + РазностьДат = Максимум - Минимум; + + Если РазностьДат <= МаксимумГенератора() Тогда + Возврат Минимум + СлучайноеЧисло(0, РазностьДат); КонецЕсли; СекундВДне = 86400; - КоличествоДней = Цел((Максимум - Минимум) / СекундВДне); + КоличествоДней = Цел((РазностьДат) / СекундВДне); + Возврат Минимум + СлучайноеЧисло(0, КоличествоДней) * СекундВДне + СлучайноеЧисло(0, СекундВДне); КонецФункции +// Генерирует случайное время +// +// Возвращаемое значение: +// Дата - Случайное время Функция СлучайноеВремя() Экспорт СекундВСутках = 60*60*24; @@ -262,31 +271,107 @@ КонецФункции -Функция СлучайнаяДатаВБудущем(Интервал, ТипИнтервала) Экспорт +// Генерирует случайную дату в будущем. +// Максимальное значение генерируемой даты можно ограничить параметрами. +// Например: СлучайнаяДатаВБудущем(2, "часа") - будет сформирована дата в интервали (ТекущаяДата, ТекущаяДата + 2 часа] +// +// Параметры: +// Интервал - Число - Интервал +// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// * секунда, секунды, секунд +// * минута, минуты, минут +// * час, часа, часов +// * день, дня, дней +// * месяц, месяца, месяцев +// +// Возвращаемое значение: +// Дата - Случайная дата в будущем +Функция СлучайнаяДатаВБудущем(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт + + //@skip-check use-non-recommended-method + Возврат СлучайнаяДатаПосле(ТекущаяДата(), Интервал, ТипИнтервала); + +КонецФункции + +// Генерирует случайную дату в прошлом. +// Минимальное значение генерируемой даты можно ограничить параметрами. +// Например: СлучайнаяДатаВПрошлом(2, "часа") - будет сформирована дата в интервали [ТекущаяДата - 2 часа, ТекущаяДата) +// +// Параметры: +// Интервал - Число - Интервал +// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// * секунда, секунды, секунд +// * минута, минуты, минут +// * час, часа, часов +// * день, дня, дней +// * месяц, месяца, месяцев +// +// Возвращаемое значение: +// Дата - Случайная дата в прошлом +Функция СлучайнаяДатаВПрошлом(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт + + //@skip-check use-non-recommended-method + Возврат СлучайнаяДатаДо(ТекущаяДата(), Интервал, ТипИнтервала); + +КонецФункции + +// Генерирует случайную дату, значение которой больше указанной. +// Максимальное значение генерируемой даты можно ограничить параметрами. +// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервали [Дата - 2 часа, Дата) +// +// Параметры: +// Дата - Дата +// Интервал - Число - Интервал +// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// * секунда, секунды, секунд +// * минута, минуты, минут +// * час, часа, часов +// * день, дня, дней +// * месяц, месяца, месяцев +// +// Возвращаемое значение: +// Дата +Функция СлучайнаяДатаПосле(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт + + ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено; - СекундВМинуте = 60; - СекундВЧасе = 60 * СекундВМинуте; - СекундВДне = СекундВЧасе * 24; + Если ИнтервалНеУказан Тогда + Возврат СлучайнаяДата(Дата + 1); + Иначе + Минимум = Дата + 1; + Максимум = ЮТОбщий.ДобавитьКДате(Дата, Интервал, ТипИнтервала); + Возврат СлучайнаяДата(Минимум, Максимум); + КонецЕсли; - Множители = Новый Структура; - Множители.Вставить("секунда", 1); - Множители.Вставить("секунды", 1); - Множители.Вставить("секунд", 1); - Множители.Вставить("минута", СекундВМинуте); - Множители.Вставить("минуты", СекундВМинуте); - Множители.Вставить("минут", СекундВМинуте); - Множители.Вставить("час", СекундВЧасе); - Множители.Вставить("часа", СекундВЧасе); - Множители.Вставить("часов", СекундВЧасе); - Множители.Вставить("день", СекундВДне); - Множители.Вставить("дня", СекундВДне); - Множители.Вставить("дней", СекундВДне); +КонецФункции - Множитель = Множители[ТипИнтервала]; - Минимум = ТекущаяДата(); - Максимум = Минимум + Множитель * Интервал; +// Генерирует случайную дату, значение которой меньше указанной. +// Минимальное значение генерируемой даты можно ограничить параметрами. +// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервали [Дата - 2 часа, Дата) +// +// Параметры: +// Дата - Дата +// Интервал - Число - Интервал +// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// * секунда, секунды, секунд +// * минута, минуты, минут +// * час, часа, часов +// * день, дня, дней +// * месяц, месяца, месяцев +// +// Возвращаемое значение: +// Дата +Функция СлучайнаяДатаДо(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт - Возврат СлучайнаяДата(Минимум, Максимум); + ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено; + + Если ИнтервалНеУказан Тогда + Возврат СлучайнаяДата(, Дата - 1); + Иначе + Минимум = ЮТОбщий.ДобавитьКДате(Дата, -Интервал, ТипИнтервала); + Максимум = Дата - 1; + Возврат СлучайнаяДата(Минимум, Максимум); + КонецЕсли; КонецФункции @@ -752,4 +837,25 @@ КонецПроцедуры +Функция МножительПериода(ТипИнтервала) + + Множители = ЮТСлужебныйПовторногоИспользования.МножителиИнтервалов(); + Возврат Множители[ТипИнтервала]; + +КонецФункции + +Функция ЭтоМесяц(ТипИнтервала) + + Возврат СтрСравнить(ТипИнтервала, "месяц") = 0 + Или СтрСравнить(ТипИнтервала, "месяца") = 0 + Или СтрСравнить(ТипИнтервала, "месяцев") = 0; + +КонецФункции + +Функция МаксимумГенератора() + + Возврат 4294967295; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 778f193b7..d8c3129dc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -163,7 +163,7 @@ Функция ЭтоПримитивныйТип(Тип) Экспорт - ПримитивныеТипы = ЮТПовторногоИспользования.ПримитивныеТипы(); + ПримитивныеТипы = ЮТСлужебныйПовторногоИспользования.ПримитивныеТипы(); ТипПараметра = ТипЗнч(Тип); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 90094b53c..945b15c32 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -138,7 +138,7 @@ Функция ПараметрыТиповОшибок(Кешировать = Истина) Экспорт Если Кешировать Тогда - ЮТПовторногоИспользования.ПараметрыТиповОшибок(); + ЮТСлужебныйПовторногоИспользования.ПараметрыТиповОшибок(); КонецЕсли; Статусы = СтатусыИсполненияТеста(); diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 9cb8293f2..89cf9fca6 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -59,6 +59,7 @@ CommonModule.ЮТЗапросы CommonModule.ЮТЗапросыВызовСервера CommonModule.ЮТЗапросыКлиентСервер + CommonModule.ЮТИсключения CommonModule.ЮТИсполнительГлобальный CommonModule.ЮТИсполнительКлиент CommonModule.ЮТИсполнительКлиентСервер @@ -86,7 +87,6 @@ CommonModule.ЮТОтчетJSON CommonModule.ЮТОтчетJUnit CommonModule.ЮТПараметрыЗапуска - CommonModule.ЮТПовторногоИспользования CommonModule.ЮТПодражатель CommonModule.ЮТПодражатель_Банки CommonModule.ЮТПодражатель_Компании @@ -100,6 +100,7 @@ CommonModule.ЮТПроверкиСлужебный CommonModule.ЮТРасширения CommonModule.ЮТРегистрацияОшибок + CommonModule.ЮТСлужебныйПовторногоИспользования CommonModule.ЮТСобытия CommonModule.ЮТСообщенияСлужебный CommonModule.ЮТСравнениеКлиентСервер diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index b1403cc64..cd119e2ed 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -11,6 +11,7 @@ Сервисная функциональность работы движка CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент + CommonModule.ЮТИсключения CommonModule.ЮТКомпоненты CommonModule.ЮТКомпонентыВызовСервера CommonModule.ЮТКомпонентыКлиент @@ -21,10 +22,10 @@ CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщийВызовСервера CommonModule.ЮТОтчет - CommonModule.ЮТПовторногоИспользования CommonModule.ЮТПроверкиСлужебный CommonModule.ЮТРасширения CommonModule.ЮТРегистрацияОшибок + CommonModule.ЮТСлужебныйПовторногоИспользования CommonModule.ЮТСобытия CommonModule.ЮТСообщенияСлужебный CommonModule.ЮТТипыДанныхСлужебный diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index b867b0357..f9d328227 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -48,8 +48,12 @@ .СПараметрами(Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 1, ДопустимыйЗнак.Неотрицательный))) .СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки, ДокументСсылка.Заказ")) .ДобавитьТест("СлучайноеПредопределенноеЗначение") + .ДобавитьТест("СлучайнаяДата") + .ДобавитьТест("СлучайноеВремя") + .ДобавитьТест("СлучайнаяДатаПосле") + .ДобавитьТест("СлучайнаяДатаДо") ; - + КонецПроцедуры Процедура Удалить() Экспорт @@ -531,4 +535,81 @@ КонецПроцедуры +Процедура СлучайнаяДата() Экспорт + + Варианты = ЮТест.Варианты("Начало, Окончание") + .Добавить('20000101', '20000101') + .Добавить('20000101', '20000102') + .Добавить('20000101', '20000101235959') + .Добавить('20000101', '20000101010000') + .Добавить('20000101', '20000101000001'); + + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл + + Результат = ЮТТестовыеДанные.СлучайнаяДата(Вариант.Начало, Вариант.Окончание); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Дата") + .МеждуВключаяГраницы(Вариант.Начало, Вариант.Окончание); + + КонецЦикла; + +КонецПроцедуры + +Процедура СлучайноеВремя() Экспорт + + Для Инд = 1 По 50 Цикл + + Результат = ЮТТестовыеДанные.СлучайноеВремя(); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Дата") + .МеждуВключаяГраницы('00010101000000', '00010101235959'); + + КонецЦикла; + +КонецПроцедуры + +Процедура СлучайнаяДатаПосле() Экспорт + + Варианты = ЮТест.Варианты("Начало, Интервал, ТипИнтервала, Максимум") + .Добавить('20000101', 1, "час", '20000101010000') + .Добавить('20000101', 7, "дней", '20000108') + .Добавить('20000101', 12, "месяцев", '20010101') + .Добавить('20000101', 3, "секунды", '20000101000003') + .Добавить('20000101', Неопределено, Неопределено, '39991231'); + + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл + + Результат = ЮТТестовыеДанные.СлучайнаяДатаПосле(Вариант.Начало, Вариант.Интервал, Вариант.ТипИнтервала); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Дата") + .МеждуВключаяОкончаниеГраницы(Вариант.Начало, Вариант.Максимум); + + КонецЦикла; + +КонецПроцедуры + +Процедура СлучайнаяДатаДо() Экспорт + + Варианты = ЮТест.Варианты("Дата, Интервал, ТипИнтервала, Минимум") + .Добавить('20010101', 1, "час", '20001231230000') + .Добавить('20010101', 7, "дней", '20001225') + .Добавить('20010101', 12, "месяцев", '20000101') + .Добавить('20010101', 3, "секунды", '20001231235957') + .Добавить('20010101', Неопределено, Неопределено, '00010101'); + + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл + + Результат = ЮТТестовыеДанные.СлучайнаяДатаДо(Вариант.Дата, Вариант.Интервал, Вариант.ТипИнтервала); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Дата") + .МеждуВключаяНачалоГраницы(Вариант.Минимум, Вариант.Дата); + + КонецЦикла; + +КонецПроцедуры + #КонецОбласти From c1e9f926cc6ae244dde791ae03460b8b00349746 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 10 Mar 2024 15:39:59 +0300 Subject: [PATCH 09/47] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=20=D0=B3?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8E=20=D0=B8=D1=81?= =?UTF-8?q?=D0=BA=D1=8E=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 4 ++-- .../Module.bsl" | 12 +++++++++++ .../Module.bsl" | 2 +- .../Module.bsl" | 6 +++--- .../Module.bsl" | 10 +++++----- .../Module.bsl" | 4 ++-- .../Module.bsl" | 20 ++++--------------- .../Module.bsl" | 3 ++- .../Module.bsl" | 16 +++++++-------- .../Module.bsl" | 4 ++-- .../Module.bsl" | 10 +++------- .../Module.bsl" | 2 +- .../Module.bsl" | 7 +++---- .../Module.bsl" | 2 +- .../Module.bsl" | 8 ++++---- .../Module.bsl" | 6 +++--- 16 files changed, 56 insertions(+), 60 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 489b23354..20931ee45 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ Иначе - ВызватьИсключение ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТЗапросыКлиентСервер.ЗаполнитьВыбираемыеПоля", ВыбираемыеПоля); + ВызватьИсключение ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТЗапросыКлиентСервер.ЗаполнитьВыбираемыеПоля", ВыбираемыеПоля); КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" index c1871dae3..cccc8b93f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" @@ -25,4 +25,16 @@ КонецФункции +Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт + + Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра)); + +КонецФункции + +Функция МетодНеДоступен(ИмяМетода, ИмяКонтекста = "веб-клиенте") Экспорт + + Возврат СтрШаблон("Метод `%1` не доступен в/на %2", ИмяМетода, ИмяКонтекста); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 19cbaa888..859b3fcba 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -430,7 +430,7 @@ КонецЦикла; #Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата"); #Иначе Запись = Новый ЗаписьТекста(Параметры.exitCode, КодировкаТекста.UTF8); Запись.ЗаписатьСтроку(?(Успешно, 0, 1)); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 5b99ced1a..a8ae4a088 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -118,7 +118,7 @@ Процедура ПрочитатьФайлRegistry(ПараметрыТихойУстановки) Экспорт #Если ВебКлиент Тогда - ЮТИсполнительКлиент.ОбработкаОшибки(ЮТОбщий.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry")); + ЮТИсполнительКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry")); Возврат; #Иначе ФайлРеестра = ЮТФайлы.ОбъединитьПути(ПараметрыТихойУстановки.РабочийКаталог, "registry.xml"); @@ -134,7 +134,7 @@ Процедура ЗаписатьФайлRegistry(ПараметрыТихойУстановки) Экспорт #Если ВебКлиент Тогда - ЮТИсполнительКлиент.ОбработкаОшибки(ЮТОбщий.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry")); + ЮТИсполнительКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry")); Возврат; #Иначе Если ПараметрыТихойУстановки.ИзмененРеестр Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" index e69106b23..0afe73568 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -69,7 +69,7 @@ Сообщения = ЮТЛогированиеВызовСервера.НакопленныеСообщенияЛогирования(Истина); ЗаписатьСообщения(Контекст, Сообщения); #Иначе - ВызватьИсключение "Метод вывода серверных сообщений в лог должен вызываться с клиента"; + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ВывестиСерверныеСообщения"); #КонецЕсли КонецПроцедуры @@ -372,7 +372,7 @@ Процедура ЗаписатьСообщения(Контекст, Сообщения, Дописывать = Истина) #Если ВебКлиент Тогда - ВызватьИсключение "Метод записи лога не доступен в web-клиенте"; + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьСообщения"); #Иначе Если Контекст.ВыводВКонсоль Тогда @@ -390,7 +390,7 @@ Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина) #Если ВебКлиент Тогда - ВызватьИсключение "Метод записи лога не доступен в web-клиенте"; + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВФайл"); #Иначе Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать); @@ -407,7 +407,7 @@ Процедура ЗаписатьЛогВКонсоль(Сообщения) #Если ВебКлиент Тогда - ВызватьИсключение "Метод записи лога не доступен в web-клиенте"; + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВКонсоль"); #Иначе //@skip-check empty-except-statement diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index fd3127b96..b1250cedf 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -299,7 +299,7 @@ КонецЕсли; Если ОбъектМетаданных = Неопределено Тогда - Сообщение = ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСервер.ОбъектМетаданных", Значение); + Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСервер.ОбъектМетаданных", Значение); ВызватьИсключение Сообщение; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index ad570f2a7..c55dbb0af 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -695,7 +695,7 @@ Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение МетодНеДоступен("ЮТОбщий.МетодОбъектаСуществует"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.МетодОбъектаСуществует"); #Иначе ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода"); @@ -717,7 +717,7 @@ Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение МетодНеДоступен("ЮТОбщий.ВыполнитьМетод"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод"); #Иначе Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда @@ -814,7 +814,7 @@ Функция СтрокаJSON(Значение, ИспользоватьСериализатор = Истина) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение МетодНеДоступен("ЮТОбщий.СтрокаJSON"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.СтрокаJSON"); #Иначе ЗаписьJSON = Новый ЗаписьJSON(); ЗаписьJSON.УстановитьСтроку(); @@ -846,12 +846,6 @@ КонецФункции -Функция МетодНеДоступен(ИмяМетода, ИмяКонтекста = "веб-клиенте") Экспорт - - Возврат СтрШаблон("Метод `%1` не доступен в/на %2", ИмяМетода, ИмяКонтекста); - -КонецФункции - // Параметры записи объекта // // Возвращаемое значение: @@ -893,12 +887,6 @@ КонецПроцедуры -Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт - - Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра)); - -КонецФункции - Функция УстановленБезопасныйРежим() Экспорт Возврат ЮТОбщийВызовСервера.УстановленБезопасныйРежим(); @@ -932,7 +920,7 @@ #Если Сервер Тогда Возврат ЮТОбщийВызовСервера.Менеджер(Менеджер); #Иначе - ВызватьИсключение МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте"); #КонецЕсли КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index d3cd52c9d..f7d26b584 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -41,7 +41,8 @@ Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); Если Описание = Неопределено Тогда - ВызватьИсключение "Несуществующий объект метаданных, либо " + ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер); + ВызватьИсключение "Несуществующий объект метаданных, либо " + + ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер); КонецЕсли; ИмяТипа = ""; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" index 94f81be79..63270c715 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,15 +31,15 @@ Функция НомерСчета(БИК, КодВалюты = "810", ЮрЛицо = Истина) Экспорт Если СтрДлина(КодВалюты) <> 3 Тогда - ВызватьИсключение "Длина кода валюты должна быть равна 3"; + ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("НомерСчета", "Длина кода валюты должна быть равна 3"); КонецЕсли; - + БалансовыйСчет = ?(ЮрЛицо, "40702", "40802"); НомерСчетаВБанке = ЮТТестовыеДанные.СлучайнаяСтрока(11, , "0123456789"); - + ЧислоДляРасчетаКонтрольнойСуммы = Прав(БИК, 3) + БалансовыйСчет + КодВалюты + "0" + НомерСчетаВБанке; Весы = ВесовыеКоэффициентаДляРасчетаКонтрольнойСуммыСчета(); - + КонтрольнаяСумма = 0; Для Индекс = 0 По 22 Цикл КонтрольнаяСумма = @@ -47,9 +47,9 @@ + Число(Сред(ЧислоДляРасчетаКонтрольнойСуммы, Индекс + 1, 1)) * Число(Весы.Получить(Индекс)) ; КонецЦикла; - + КонтрольноеЧисло = ((КонтрольнаяСумма % 10) * 3) % 10; - + Возврат СтрШаблон( "%1%2%3%4", БалансовыйСчет, @@ -57,7 +57,7 @@ КонтрольноеЧисло, НомерСчетаВБанке ); - + КонецФункции // Формирует случайный валидный БИК банка diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 5674c384f..8b8aa136d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -71,7 +71,7 @@ ИначеЕсли ЭтоПредикатСтруктура(ТипПараметра, Предикаты) Тогда Результат = ЮТОбщий.ЗначениеВМассиве(Предикаты); Иначе - ВызватьИсключение "Некорректный параметр метода `ЮТПредикатыКлиентСервер.НаборПредикатов`"; + ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЮТПредикатыКлиентСервер.НаборПредикатов"); КонецЕсли; Возврат Результат; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" index 7de12ce53..ad9d96dc0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -203,9 +203,7 @@ ЭтоНулеваяЗона = ДлинаСтроки = ДлинаДатыВНулевойЗоне И СтрЗаканчиваетсяНа(ДатаСтрока, "Z"); Если ДлинаСтроки < ДлинаБезВремени Или ДлинаСтроки > ДлинаСВременем Или ЭтоНулеваяЗона Тогда - - ВызватьИсключение "Дата в строке не подходит ни под одну маску."; - + ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ПривестиЗначениеКДате", "Дата в строке не подходит ни под одну маску."); КонецЕсли; КонецПроцедуры @@ -224,9 +222,7 @@ МесяцевВГоду = 12; Если Число(МесяцСтрокой) > МесяцевВГоду Или Число(МесяцСтрокой) = 0 Тогда - - ВызватьИсключение "Месяц выходит за границы диапазона."; - + ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ПривестиЗначениеКДате", "Месяц выходит за границы диапазона."); КонецЕсли; КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index ae48641cf..aa8ad124a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -119,7 +119,7 @@ Функция СлучайноеЧисло(Минимум = 0, Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло"); #Иначе Генератор = ЮТКонтекст.ЗначениеКонтекста("ГенераторСлучайныхЧисел"); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" index a37037e1e..5cf1c581e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" @@ -166,7 +166,7 @@ ПараметрыЧтения.ИзВыборки = Истина; ПараметрыЧтения.Вставить("Выборка", Источник); Иначе - ВызватьИсключение "Неподдерживаемый параметр"; + ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЗагрузитьИзМакета", "неподдерживаемый источник"); КонецЕсли; Возврат ПараметрыЧтения; @@ -210,8 +210,7 @@ КонецЕсли; Иначе - - ВызватьИсключение "Некорректные/неподдерживаемые параметры чтения"; + ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЗагрузитьИзМакета", "Некорректные/неподдерживаемые параметры чтения"); КонецЕсли; @@ -234,7 +233,7 @@ ИначеЕсли ТипПараметра = Тип("Строка") Тогда ДанныеМакета = ЮТОбщийВызовСервера.Макет(Макет); Иначе - ВызватьИсключение ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.ДанныеМакета", Макет); + ВызватьИсключение ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.ДанныеМакета", Макет); КонецЕсли; Возврат ДанныеМакета; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 04717e6f7..b54e7f4de 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -381,7 +381,7 @@ Иначе - Сообщение = ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.КлючЗаписи", Объект); + Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.КлючЗаписи", Объект); ВызватьИсключение Сообщение; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d8c3129dc..686926c45 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -21,7 +21,7 @@ Функция ПредставлениеТипа(Тип) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); #Иначе Возврат ИдентификаторТипа(Тип); #КонецЕсли @@ -31,7 +31,7 @@ Функция ИдентификаторТипа(Тип) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); #Иначе ЮТПроверкиСлужебный.ПроверитьТипПараметра(Тип, Тип("Тип"), "ЮТТипыДанныхСлужебный.ИдентификаторТипа", "Тип"); @@ -53,7 +53,7 @@ Функция ТипПоИдентификатору(ИдентификаторТипа) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); #Иначе Возврат Тип(ИдентификаторТипа); #КонецЕсли @@ -104,7 +104,7 @@ Функция ТипОбъектаСсылки(ТипСсылки) Экспорт #Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ТипОбъектаСсылки"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ТипОбъектаСсылки"); #Иначе ТипXML = СериализаторXDTO.XMLТип(ТипСсылки); ИмяТипа = СтрЗаменить(ТипXML.ИмяТипа, "Ref.", "Object."); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index a0e7348a8..5423d315c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -1386,7 +1386,7 @@ Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда #Если ВебКлиент Или ТонкийКлиент Тогда Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение); -#Иначе +#Иначе Значение = Значение.Получить(); #КонецЕсли КонецЕсли; @@ -1558,7 +1558,7 @@ Функция ВызватьМетод(Модуль, ИмяМетода, ПараметрыМетода, ВТранзакции) #Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТУтверждения.ВызватьМетод"); + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТУтверждения.ВызватьМетод"); #Иначе Если Не ЗначениеЗаполнено(ИмяМетода) Тогда ВызватьИсключение "ИмяМетода не заполнено в контексте. Воспользуйтесь предварительно методом интерфейса `Метод(ИмяМетода)`"; From 61666996316786cf20a883d1b35e9b3503f60b50 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 11 Mar 2024 02:07:14 +0300 Subject: [PATCH 10/47] #271 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Возможность использовать кастомную фабрику --- .../Module.bsl" | 3 ++- .../ObjectModule.bsl" | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index e6552baa0..567fe83ef 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -557,10 +557,11 @@ // Параметры: // ИмяТипа - Строка - Имя типа объекта // ПространствоИмен - Строка - Пространство имен типа +// Фабрика - ФабрикаXDTO - Используемая фабрика XDTO // // Возвращаемое значение: // ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор объекта XDTO -Функция КонструкторОбъектаXDTO(ИмяТипа, ПространствоИмен) Экспорт +Функция КонструкторОбъектаXDTO(ИмяТипа, ПространствоИмен, Фабрика = Неопределено) Экспорт Обработка = Обработки.ЮТКонструкторОбъектаXDTO.Создать(); Обработка.Инициализировать(ИмяТипа, ПространствоИмен); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index b575e41d2..dfcbb5a14 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -23,6 +23,7 @@ Перем ТекущийОбъект; Перем ТекущийТип; Перем СтекОбъектов; +Перем Фабрика; #КонецОбласти @@ -167,10 +168,16 @@ #Область СлужебныйПрограммныйИнтерфейс -Процедура Инициализировать(ИмяТипаОбъекта, ПространствоИмен) Экспорт +Процедура Инициализировать(ИмяТипаОбъекта, ПространствоИмен, ФабрикаОбъектов = Неопределено) Экспорт + + Если ФабрикаОбъектов = Неопределено Тогда + Фабрика = ФабрикаXDTO; + Иначе + Фабрика = ФабрикаОбъектов; + КонецЕсли; СтекОбъектов = Новый Массив(); - ТипОбъекта = ФабрикаXDTO.Тип(ПространствоИмен, ИмяТипаОбъекта); + ТипОбъекта = Фабрика.Тип(ПространствоИмен, ИмяТипаОбъекта); ДобавитьНовыйОбъектВСтек(ТипОбъекта); КонецПроцедуры @@ -311,7 +318,7 @@ Функция НовыйОбъект(Тип) - Возврат ФабрикаXDTO.Создать(Тип); + Возврат Фабрика.Создать(Тип); КонецФункции From 1402466d8cc96e05427f30f02c055dd08294ebb7 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 16 Jan 2024 01:42:15 +0300 Subject: [PATCH 11/47] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D1=8B=20=D1=81=20=D0=BA=D0=BE=D0=BB=D0=BB=D0=B5=D0=BA=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 +- .../Module.bsl" | 4 +- .../Module.bsl" | 8 +- .../Module.bsl" | 2 +- .../Module.bsl" | 395 ++++++++++++++++++ ...0\265\320\272\321\206\320\270\320\270.mdo" | 11 + .../Module.bsl" | 4 +- .../Module.bsl" | 8 +- .../Module.bsl" | 4 +- .../Module.bsl" | 336 ++++----------- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 8 +- .../Module.bsl" | 2 +- .../Module.bsl" | 6 +- .../Module.bsl" | 14 +- .../Module.bsl" | 4 +- .../Module.bsl" | 16 +- .../Module.bsl" | 4 +- .../src/Configuration/Configuration.mdo | 1 + .../Module.bsl" | 12 +- 22 files changed, 553 insertions(+), 300 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 2beb4238f..bdff3ceb3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -672,7 +672,7 @@ И Элемент.Ключ.Ссылка = Ссылка И Элемент.Значение.Свойство(ИмяМетода); Если ПодходящийЭлемент Тогда - ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]); + ЮТКоллекции.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]); КонецЕсли; КонецЦикла; @@ -700,7 +700,7 @@ ПодходящийЭлемент = ТипЗнч(Элемент.Ключ) = ТипОбъекта И Элемент.Значение.Свойство(ИмяМетода); Если ПодходящийЭлемент Тогда - ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]); + ЮТКоллекции.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]); КонецЕсли; КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 3875208f4..341a7339c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -176,7 +176,7 @@ КонецЕсли; Запрос.Текст = СтрСоединить(Строки, Символы.ПС); - ЮТОбщий.ОбъединитьВСтруктуру(Запрос.Параметры, ОписаниеЗапроса.ЗначенияПараметров); + ЮТКоллекции.ДополнитьСтруктуру(Запрос.Параметры, ОписаниеЗапроса.ЗначенияПараметров); Возврат Запрос; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 859b3fcba..64e87649f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -92,7 +92,7 @@ КонецЦикла; - ТестовыйМодульОблегченный = ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль); + ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль); ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда @@ -102,10 +102,10 @@ Если ЗначениеЗаполнено(СерверныеНаборы) Тогда Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный); ЮТЛогирование.ВывестиСерверныеСообщения(); - ЮТОбщий.ДополнитьМассив(Результаты, Результат); + ЮТКоллекции.ДополнитьМассив(Результаты, Результат); КонецЕсли; - ЮТОбщий.ДополнитьМассив(Результаты, ПропущенныеНаборы); + ЮТКоллекции.ДополнитьМассив(Результаты, ПропущенныеНаборы); ТестовыйМодульОблегченный.НаборыТестов = Результаты; @@ -313,7 +313,7 @@ НаборыКонтекстов = Новый Структура; - ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив()); + ТестыНабора = ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив()); ОбработатьОшибкиЧтенияНабора(ТестовыйНабор, ТестовыйМодуль); Для Каждого Тест Из ТестыНабора Цикл diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 1706248fd..a04d226d7 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -172,7 +172,7 @@ Для Каждого Объект Из Объекты Цикл - ЮТОбщий.ДополнитьМассив(Объект.Ошибки, Ошибки); + ЮТКоллекции.ДополнитьМассив(Объект.Ошибки, Ошибки); Если Объект.Свойство("Статус") Тогда Объект.Статус = ЮТФабрика.СтатусыИсполненияТеста().Сломан; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" new file mode 100644 index 000000000..0059228d2 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -0,0 +1,395 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область ПрограммныйИнтерфейс + +// Возвращает требуемое поле структуры. В случае отсутствия поля возвращает значение по умолчанию +// +// Параметры: +// ИсходнаяСтруктура - Структура - Исходная структура +// ИмяПоля - Строка - Имя поля структуры +// ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если поля в структуре нет +// +// Возвращаемое значение: +// Произвольный - Значение искомого поля структуры +Функция ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию = Неопределено) Экспорт + + Если НЕ ЗначениеЗаполнено(ИсходнаяСтруктура) ИЛИ ПустаяСтрока(ИмяПоля) Тогда + Возврат ЗначениеПоУмолчанию; + КонецЕсли; + + ЗначениеПоля = Неопределено; + + Если ИсходнаяСтруктура.Свойство(ИмяПоля, ЗначениеПоля) Тогда + Возврат ЗначениеПоля; + КонецЕсли; + + Возврат ЗначениеПоУмолчанию; + +КонецФункции + +// Добавляет в приемник данные из источника, при совпадении ключей значения заменяются +// +// Параметры: +// Приемник - Структура +// Источник - Соответствие из Произвольный +// - Структура +Процедура ДополнитьСтруктуру(Приемник, Источник) Экспорт + + Для Каждого Элемент Из Источник Цикл + Приемник.Вставить(Элемент.Ключ, Элемент.Значение); + КонецЦикла; + +КонецПроцедуры + +// Добавляет в приемник все элементы источника +// +// Параметры: +// Приемник - Массив из Произвольный +// Источник - Массив из Произвольный +Процедура ДополнитьМассив(Приемник, Источник) Экспорт + + Для Каждого Элемент Из Источник Цикл + Приемник.Добавить(Элемент); + КонецЦикла; + +КонецПроцедуры + +// Создает копию экземпляра указанного объекта. +// Примечание: +// Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.). +// +// Параметры: +// Источник - Произвольный - объект, который необходимо скопировать. +// +// Возвращаемое значение: +// Произвольный - копия объекта, переданного в параметре Источник. +// +Функция СкопироватьРекурсивно(Источник) Экспорт + + Перем Приемник; + + СкопироватьПрисвоением = Ложь; + + ТипИсточника = ТипЗнч(Источник); + + Если ТипИсточника = Тип("Структура") Или ТипИсточника = Тип("ФиксированнаяСтруктура") Тогда + Приемник = СкопироватьСтруктуру(Источник); + ИначеЕсли ТипИсточника = Тип("Соответствие") Или ТипИсточника = Тип("ФиксированноеСоответствие") Тогда + Приемник = СкопироватьСоответствие(Источник); + ИначеЕсли ТипИсточника = Тип("Массив") Или ТипИсточника = Тип("ФиксированныйМассив") Тогда + Приемник = СкопироватьМассив(Источник); + ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда + Приемник = СкопироватьСписокЗначений(Источник); + Иначе + + СкопироватьПрисвоением = Истина; +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + + Если ТипИсточника = Тип("ТаблицаЗначений") Или ТипИсточника = Тип("ДеревоЗначений") Тогда + + СкопироватьПрисвоением = Ложь; + Приемник = Источник.Скопировать(); + + КонецЕсли; +#КонецЕсли + + КонецЕсли; + + Если СкопироватьПрисвоением Тогда + Приемник = Источник; + КонецЕсли; + + Возврат Приемник; + +КонецФункции + +// Создает копию структуры +// +// Параметры: +// Источник - Структура, ФиксированнаяСтруктура - копируемая структура +// +// Возвращаемое значение: +// Структура - копия исходной структуры. +Функция СкопироватьСтруктуру(Источник) Экспорт + + Результат = Новый Структура; + + Для Каждого КлючИЗначение Из Источник Цикл + Результат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение)); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Создает копию соответствия +// +// Параметры: +// Источник - Соответствие из Произвольный +// - ФиксированноеСоответствие из Произвольный +// +// Возвращаемое значение: +// Соответствие Из Произвольный - копия исходного соответствия. +// +Функция СкопироватьСоответствие(Источник) Экспорт + + Результат = Новый Соответствие; + + Для Каждого КлючИЗначение Из Источник Цикл + + НовыйКлюч = СкопироватьРекурсивно(КлючИЗначение.Ключ); + НовоеЗначение = СкопироватьРекурсивно(КлючИЗначение.Значение); + Результат.Вставить(НовыйКлюч, НовоеЗначение); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Создает копию массива +// +// Параметры: +// Источник - Массив Из Произвольный +// - ФиксированныйМассив из Произвольный +// +// Возвращаемое значение: +// Массив Из Произвольный - копия исходного массива. +Функция СкопироватьМассив(Источник) Экспорт + + Если НЕ ЗначениеЗаполнено(Источник) Тогда + Возврат Новый Массив; + КонецЕсли; + + Размер = Источник.Количество(); + Результат = Новый Массив(Размер); + + Для Инд = 0 По Размер - 1 Цикл + Результат[Инд] = СкопироватьРекурсивно(Источник[Инд]); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Создает копию списка значений +// +// Параметры: +// Источник - СписокЗначений Из Произвольный +// +// Возвращаемое значение: +// СписокЗначений Из Произвольный +// +Функция СкопироватьСписокЗначений(Источник) Экспорт + + Результат = Новый СписокЗначений; + + Для Каждого ЭлементСписка Из Источник Цикл + + НовоеЗначение = СкопироватьРекурсивно(ЭлементСписка.Значение); + Результат.Добавить(НовоеЗначение, ЭлементСписка.Представление, ЭлементСписка.Пометка, ЭлементСписка.Картинка); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Выгружает значения "колонки" коллекции элементов. +// +// Параметры: +// Коллекция - Произвольный - Итерируемая коллекция +// ИмяРеквизита - Строка - Имя реквизата элементов коллекции +// +// Возвращаемое значение: +// Массив из Произвольный +Функция ВыгрузитьЗначения(Коллекция, ИмяРеквизита) Экспорт + + Результат = Новый Массив(); + + Для Каждого ЭлементКоллекции Из Коллекция Цикл + Результат.Добавить(ЭлементКоллекции[ИмяРеквизита]); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Вычисляет двух массивов, коллекцию содержащую общие элементы. +// +// Параметры: +// Коллекция1 - Массив из Произвольный +// Коллекция2 - Массив из Произвольный +// +// Возвращаемое значение: +// Массив из Произвольный - Пересечение массивов +Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт + + Результат = Новый Массив; + + Для Каждого Элемент Из Коллекция1 Цикл + + Если Коллекция2.Найти(Элемент) <> Неопределено Тогда + Результат.Добавить(Элемент); + КонецЕсли; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Создает массив с переданными значениями +// +// Параметры: +// Значение - Произвольный +// Значение2 - Произвольный +// Значение3 - Произвольный +// Значение4 - Произвольный +// Значение5 - Произвольный +// Значение6 - Произвольный +// Значение7 - Произвольный +// Значение8 - Произвольный +// Значение9 - Произвольный +// Значение10 - Произвольный +// +// Возвращаемое значение: +// Массив из Произвольный +//@skip-check method-too-many-params +Функция ЗначениеВМассиве(Значение, + Значение2 = "_!%*", + Значение3 = "_!%*", + Значение4 = "_!%*", + Значение5 = "_!%*", + Значение6 = "_!%*", + Значение7 = "_!%*", + Значение8 = "_!%*", + Значение9 = "_!%*", + Значение10 = "_!%*") Экспорт + + Значения = Новый Массив; + + Если Не ДобавитьНеПоследнее(Значения, Значение) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение2) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение3) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение4) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение5) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение6) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение7) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение8) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение9) Тогда + Возврат Значения; + КонецЕсли; + + Если Не ДобавитьНеПоследнее(Значения, Значение10) Тогда + Возврат Значения; + КонецЕсли; + + Возврат Значения; + +КонецФункции + +// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. +// +// Параметры: +// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. +// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. +// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. +// Возвращаемое значение: +// Соответствие Из Произвольный - полученное соответствие. +Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт + + Результат = Новый Соответствие(); + + Для Каждого ЭлементКоллекции Из Коллекция Цикл + + Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); + + Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. +// +// Параметры: +// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. +// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. +// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. +// Возвращаемое значение: +// Структура Из Произвольный - полученная структура. +Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт + + Результат = Новый Структура(); + + Для Каждого ЭлементКоллекции Из Коллекция Цикл + + Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); + + Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ДобавитьНеПоследнее(Значения, Значение, ФлагОкончания = "_!%*") + + Если Значение <> ФлагОкончания Тогда + Значения.Добавить(Значение); + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" new file mode 100644 index 000000000..47c180d20 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" @@ -0,0 +1,11 @@ + + + ЮТКоллекции + + ru + Коллекции + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" index fac42bb52..dbbd0165e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -76,7 +76,7 @@ КонецЦикла; //@skip-check constructor-function-return-section - Возврат ЮТОбщий.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]); + Возврат ЮТКоллекции.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" index 0afe73568..a8956bd65 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" @@ -89,10 +89,10 @@ УровниЛога = УровниЛога(); ДанныеКонтекста = НовыйДанныеКонтекста(); - ДанныеКонтекста.ФайлЛога = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file"); - ДанныеКонтекста.ВыводВКонсоль = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь); - ДанныеКонтекста.Включено = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено); - УровеньЛога = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка); + ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file"); + ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь); + ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено); + УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка); Если ДанныеКонтекста.Включено = Неопределено Тогда ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" index 5a4087e9b..511a8d7a0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -60,7 +60,7 @@ ТекущийКонтекстИсполнения = ЮТКонтекст.КонтекстИсполненияТекущегоУровня(); Если ТекущийКонтекстИсполнения <> Неопределено Тогда - Значение = ЮТОбщий.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию); + Значение = ЮТКоллекции.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию); КонецЕсли; ИначеЕсли КонтекстИсполнения.Тест <> Неопределено И КонтекстИсполнения.Тест.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index c55dbb0af..1fcee54f7 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -235,38 +235,24 @@ #Область Коллекции -// ЗначениеСтруктуры +// Устарела Метод перенесен в см. ЮТКоллекции.ЗначениеСтруктуры // Возвращает требуемое поле структуры. В случае отсутствия поля возвращает значение по умолчанию // // Параметры: // ИсходнаяСтруктура - Структура - Исходная структура // ИмяПоля - Строка - Имя поля структуры // ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если поля в структуре нет -// ПроверятьЗаполненность - Булево - Необходимость проверять значение на заполненность. Если не заполнено, -// то возвращается значение по умолчанию // // Возвращаемое значение: // Произвольный - Значение искомого поля структуры -Функция ЗначениеСтруктуры(Знач ИсходнаяСтруктура, ИмяПоля, Знач ЗначениеПоУмолчанию = Неопределено, ПроверятьЗаполненность = Ложь) Экспорт +Функция ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию = Неопределено) Экспорт - Если ПустаяСтрока(ИмяПоля) Тогда - Возврат ЗначениеПоУмолчанию; - КонецЕсли; - - ЗначениеПоля = Неопределено; - - Если ИсходнаяСтруктура.Свойство(ИмяПоля, ЗначениеПоля) Тогда - Если ПроверятьЗаполненность И ЗначениеЗаполнено(ЗначениеПоля) Или Не ПроверятьЗаполненность Тогда - Возврат ЗначениеПоля; - КонецЕсли; - - КонецЕсли; - - Возврат ЗначениеПоУмолчанию; + ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеСтруктуры", "ЮТКоллекции.ЗначениеСтруктуры"); + Возврат ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию); КонецФункции -// ОбъединитьВСтруктуру +// Устарела Метод перенесен в см. ЮТКоллекции.ДополнитьСтруктуру // Функция, объединяющая две коллекции( с типами Структура или Соответствие) в одну структуру, если это возможно // // Параметры: @@ -280,16 +266,19 @@ // Функция ОбъединитьВСтруктуру(Знач Коллекция1, Коллекция2) Экспорт + ВызовУстаревшегоМетода("ЮТОбщий.ОбъединитьВСтруктуру", "ЮТКоллекции.ДополнитьСтруктуру"); Если ТипЗнч(Коллекция1) <> Тип("Структура") Тогда - Коллекция1 = СкопироватьСтруктуру(Коллекция1); + Коллекция1 = ЮТКоллекции.СкопироватьСтруктуру(Коллекция1); КонецЕсли; + ЮТКоллекции.ДополнитьСтруктуру(Коллекция1, Коллекция2); + //@skip-check constructor-function-return-section - Возврат ДобавитьКлючИЗначениеВКоллекцию(Коллекция1, Коллекция2); + Возврат Коллекция1; КонецФункции -// СкопироватьРекурсивно +// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьРекурсивно // Создает копию экземпляра указанного объекта. // Примечание: // Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.). @@ -300,180 +289,108 @@ // Возвращаемое значение: // Произвольный - копия объекта, переданного в параметре Источник. // -Функция СкопироватьРекурсивно(Знач Источник) Экспорт - - Перем Приемник; - - СкопироватьПрисвоением = Ложь; - - ТипИсточника = ТипЗнч(Источник); - Если ТипИсточника = Тип("Структура") Или ТипИсточника = Тип("ФиксированнаяСтруктура") Тогда - - Приемник = СкопироватьСтруктуру(Источник); - - ИначеЕсли ТипИсточника = Тип("Соответствие") Или ТипИсточника = Тип("ФиксированноеСоответствие") Тогда - - Приемник = СкопироватьСоответствие(Источник); - - ИначеЕсли ТипИсточника = Тип("Массив") Или ТипИсточника = Тип("ФиксированныйМассив") Тогда - - Приемник = СкопироватьМассив(Источник); - - ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда - - Приемник = СкопироватьСписокЗначений(Источник); - - Иначе - - СкопироватьПрисвоением = Истина; -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - Если ТипИсточника = Тип("ТаблицаЗначений") Или ТипИсточника = Тип("ДеревоЗначений") Тогда - - СкопироватьПрисвоением = Ложь; - Приемник = Источник.Скопировать(); - - КонецЕсли; -#КонецЕсли - - КонецЕсли; +Функция СкопироватьРекурсивно(Источник) Экспорт - Если СкопироватьПрисвоением Тогда - - Приемник = Источник; - - КонецЕсли; - - Возврат Приемник; + ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьРекурсивно", "ЮТКоллекции.СкопироватьРекурсивно"); + Возврат ЮТКоллекции.СкопироватьРекурсивно(Источник); КонецФункции -// СкопироватьСтруктуру +// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьСтруктуру // Создает копию значения типа Структура // // Параметры: -// СтруктураИсточник - Структура - копируемая структура +// Источник - Структура - копируемая структура // // Возвращаемое значение: // Структура - копия исходной структуры. // -Функция СкопироватьСтруктуру(СтруктураИсточник) Экспорт - - СтруктураРезультат = Новый Структура; - - Для Каждого КлючИЗначение Из СтруктураИсточник Цикл - СтруктураРезультат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение)); - КонецЦикла; +Функция СкопироватьСтруктуру(Источник) Экспорт - Возврат СтруктураРезультат; + ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСтруктуру", "ЮТКоллекции.СкопироватьСтруктуру"); + Возврат ЮТКоллекции.СкопироватьСтруктуру(Источник); КонецФункции -// СкопироватьСоответствие +// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьСоответствие // Создает копию значения типа Соответствие. // // Параметры: -// СоответствиеИсточник - Соответствие из Произвольный - соответствие, копию которого необходимо получить. +// Источник - Соответствие из Произвольный - соответствие, копию которого необходимо получить. // // Возвращаемое значение: // Соответствие Из Произвольный - копия исходного соответствия. // -Функция СкопироватьСоответствие(СоответствиеИсточник) Экспорт +Функция СкопироватьСоответствие(Источник) Экспорт - СоответствиеРезультат = Новый Соответствие; - - Для Каждого КлючИЗначение Из СоответствиеИсточник Цикл - - СоответствиеРезультат.Вставить(СкопироватьРекурсивно(КлючИЗначение.Ключ), - СкопироватьРекурсивно(КлючИЗначение.Значение)); - - КонецЦикла; - - Возврат СоответствиеРезультат; + ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСоответствие", "ЮТКоллекции.СкопироватьСоответствие"); + Возврат ЮТКоллекции.СкопироватьСоответствие(Источник); КонецФункции -// СкопироватьМассив +// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьМассив // Создает копию значения типа Массив. // // Параметры: -// МассивИсточник - Массив Из Произвольный - массив, копию которого необходимо получить +// Источник - Массив Из Произвольный - массив, копию которого необходимо получить // // Возвращаемое значение: // Массив Из Произвольный - копия исходного массива. // -Функция СкопироватьМассив(МассивИсточник) Экспорт - - Если НЕ ЗначениеЗаполнено(МассивИсточник) Тогда - Возврат Новый Массив; - КонецЕсли; +Функция СкопироватьМассив(Источник) Экспорт - Размер = МассивИсточник.Количество(); - МассивРезультат = Новый Массив(Размер); - - Для Инд = 0 По Размер - 1 Цикл - МассивРезультат[Инд] = СкопироватьРекурсивно(МассивИсточник[Инд]); - КонецЦикла; - - Возврат МассивРезультат; + ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьМассив", "ЮТКоллекции.СкопироватьМассив"); + Возврат ЮТКоллекции.СкопироватьМассив(Источник); КонецФункции -// СкопироватьСписокЗначений +// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьСписокЗначений // Создает копию значения типа СписокЗначений. // // Параметры: -// СписокИсточник - СписокЗначений Из Произвольный - список значений, копию которого необходимо получить +// Источник - СписокЗначений Из Произвольный - список значений, копию которого необходимо получить // // Возвращаемое значение: // СписокЗначений Из Произвольный - копия исходного списка значений // -Функция СкопироватьСписокЗначений(СписокИсточник) Экспорт +Функция СкопироватьСписокЗначений(Источник) Экспорт - СписокРезультат = Новый СписокЗначений; - - Для Каждого ЭлементСписка Из СписокИсточник Цикл - - СписокРезультат.Добавить(СкопироватьРекурсивно(ЭлементСписка.Значение), - ЭлементСписка.Представление, - ЭлементСписка.Пометка, - ЭлементСписка.Картинка); - - КонецЦикла; - - Возврат СписокРезультат; + ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСписокЗначений", "ЮТКоллекции.СкопироватьСписокЗначений"); + Возврат ЮТКоллекции.СкопироватьСписокЗначений(Источник); КонецФункции -Функция ВыгрузитьЗначения(Знач Коллекция, Знач ИмяРеквизита) Экспорт - - Результат = Новый Массив(); - - Для Каждого ЭлементКоллекции Из Коллекция Цикл - - Результат.Добавить(ЭлементКоллекции[ИмяРеквизита]); - - КонецЦикла; +// Устарела Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения +// +// Параметры: +// Коллекция - Произвольный +// ИмяРеквизита - Строка +// +// Возвращаемое значение: +// Массив из Произвольный - Выгрузить значения +Функция ВыгрузитьЗначения(Коллекция, ИмяРеквизита) Экспорт - Возврат Результат; + ВызовУстаревшегоМетода("ЮТОбщий.ВыгрузитьЗначения", "ЮТКоллекции.ВыгрузитьЗначения"); + Возврат ЮТКоллекции.ВыгрузитьЗначения(Коллекция, ИмяРеквизита); КонецФункции +// Устарела Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения +// +// Параметры: +// Коллекция1 - Массив из Произвольный +// Коллекция2 - Массив из Произвольный +// +// Возвращаемое значение: +// Массив из Произвольный - Пересечение массивов Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт - Результат = Новый Массив; - - Для Каждого Элемент Из Коллекция1 Цикл - - Если Коллекция2.Найти(Элемент) <> Неопределено Тогда - Результат.Добавить(Элемент); - КонецЕсли; - - КонецЦикла; - - Возврат Результат; + ВызовУстаревшегоМетода("ЮТОбщий.ПересечениеМассивов", "ЮТКоллекции.ПересечениеМассивов"); + Возврат ЮТКоллекции.ПересечениеМассивов(Коллекция1, Коллекция2); КонецФункции +// Устарела Метод перенесен в см. ЮТКоллекции.ЗначениеВМассиве // Создает массив с переданными значениями // // Параметры: @@ -492,72 +409,34 @@ // Массив из Произвольный //@skip-check method-too-many-params Функция ЗначениеВМассиве(Значение, - Значение2 = "_!%*", - Значение3 = "_!%*", - Значение4 = "_!%*", - Значение5 = "_!%*", - Значение6 = "_!%*", - Значение7 = "_!%*", - Значение8 = "_!%*", - Значение9 = "_!%*", - Значение10 = "_!%*") Экспорт - - Значения = Новый Массив; - - Если Не ДобавитьНеПоследнее(Значения, Значение) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение2) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение3) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение4) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение5) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение6) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение7) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение8) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение9) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение10) Тогда - Возврат Значения; - КонецЕсли; - - Возврат Значения; + Значение2 = "_!%*", + Значение3 = "_!%*", + Значение4 = "_!%*", + Значение5 = "_!%*", + Значение6 = "_!%*", + Значение7 = "_!%*", + Значение8 = "_!%*", + Значение9 = "_!%*", + Значение10 = "_!%*") Экспорт + + ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеВМассиве", "ЮТКоллекции.ЗначениеВМассиве"); + Возврат ЮТКоллекции.ЗначениеВМассиве(Значение, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9, Значение10); КонецФункции +// Устарела Метод перенесен в см. ЮТКоллекции.ДополнитьМассив +// +// Параметры: +// Приемник - Массив из Произвольный +// Источник - Массив из Произвольный Процедура ДополнитьМассив(Приемник, Источник) Экспорт - Для Каждого Элемент Из Источник Цикл - - Приемник.Добавить(Элемент); - - КонецЦикла; + ВызовУстаревшегоМетода("ЮТОбщий.ДополнитьМассив", "ЮТКоллекции.ДополнитьМассив"); + ЮТКоллекции.ДополнитьМассив(Приемник, Источник); КонецПроцедуры +// Устарела Метод перенесен в см. ЮТКоллекции.ВСоответствие // Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. // // Параметры: @@ -568,20 +447,12 @@ // Соответствие Из Произвольный - полученное соответствие. Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - Результат = Новый Соответствие(); - - Для Каждого ЭлементКоллекции Из Коллекция Цикл - - Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); - - Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); - - КонецЦикла; - - Возврат Результат; + ВызовУстаревшегоМетода("ЮТОбщий.ВСоответствие", "ЮТКоллекции.ВСоответствие"); + Возврат ЮТКоллекции.ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения); КонецФункции +// Устарела Метод перенесен в см. ЮТКоллекции.ВСтруктуру // Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. // // Параметры: @@ -592,27 +463,18 @@ // Структура Из Произвольный - полученная структура. Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - Результат = Новый Структура(); - - Для Каждого ЭлементКоллекции Из Коллекция Цикл - - Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); - - Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); - - КонецЦикла; - - Возврат Результат; + ВызовУстаревшегоМетода("ЮТОбщий.ВСтруктуру", "ЮТКоллекции.ВСтруктуру"); + Возврат ЮТКоллекции.ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения); КонецФункции // см. ЮТСравнениеКлиентСервер.ЗначенияРавны -// Устарела. +// Устарела Метод перенесен в см. ЮТСравнениеКлиентСервер.ЗначенияРавны //@skip-check doc-comment-export-function-return-section //@skip-check doc-comment-parameter-section Функция ДанныеСовпадают(Данные1, Данные2) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ДанныеСовпадают", "ЮТСравнениеКлиентСервер.ЗначенияРавны"); + ВызовУстаревшегоМетода("ЮТОбщий.ДанныеСовпадают", "ЮТСравнениеКлиентСервер.ЗначенияРавны", Истина); Возврат ЮТСравнениеКлиентСервер.ЗначенияРавны(Данные1, Данные2); КонецФункции @@ -875,15 +737,19 @@ КонецФункции -Процедура ВызовУстаревшегоМетода(УстаревшийМетод, РекомендуемыйМетод = Неопределено) Экспорт +Процедура ВызовУстаревшегоМетода(УстаревшийМетод, РекомендуемыйМетод = Неопределено, ВыбрасыватьИсключения = Ложь) Экспорт - Сообщение = СтрШаблон("Используется устаревший метод '%1'. В следующий релизах метод будет удален", УстаревшийМетод); + Сообщение = СтрШаблон("Используется устаревший метод '%1'. В следующих релизах он будет удален", УстаревшийМетод); Если ЗначениеЗаполнено(РекомендуемыйМетод) Тогда Сообщение = СтрШаблон("%1. Рекомендуется использовать '%2'", Сообщение, РекомендуемыйМетод); КонецЕсли; - СообщитьПользователю(Сообщение); + Если ВыбрасыватьИсключения Тогда + ВызватьИсключение Сообщение; + Иначе + СообщитьПользователю(Сообщение); + КонецЕсли; КонецПроцедуры @@ -927,7 +793,7 @@ Функция ТипСтруктуры(Структура) Экспорт - Возврат ЗначениеСтруктуры(Структура, "__type__"); + Возврат ЮТКоллекции.ЗначениеСтруктуры(Структура, "__type__"); КонецФункции @@ -1002,18 +868,6 @@ #Область СлужебныеПроцедурыИФункции -Функция ДобавитьКлючИЗначениеВКоллекцию(КоллекцияРезультат, Коллекция) - - Для Каждого Элемент Из Коллекция Цикл - - КоллекцияРезультат.Вставить(Элемент.Ключ, Элемент.Значение); - - КонецЦикла; - - Возврат КоллекцияРезультат; - -КонецФункции - Функция ПредставлениеОбъекта(Объект, Знач Уровень = 1, ПредставлениеОбъекта = Неопределено) ТипОбъекта = ТипЗнч(Объект); @@ -1158,13 +1012,6 @@ Возврат СтрСоединить(СписокПараметров, ", "); КонецФункции - -Функция ДобавитьНеПоследнее(Значения, Значение, ФлагОкончания = "_!%*") - Если Значение <> ФлагОкончания Тогда - Значения.Добавить(Значение); - Возврат Истина; - КонецЕсли; - Возврат Ложь; КонецФункции Функция МножительПериода(ТипИнтервала) @@ -1180,6 +1027,5 @@ Или СтрСравнить(ТипИнтервала, "месяца") = 0 Или СтрСравнить(ТипИнтервала, "месяцев") = 0; -КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" index e4746bd37..7bf99de4f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" @@ -93,7 +93,7 @@ КонецЦикла; - ЗначениеКлючаЗапуска = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска, КлючЗапуска(), Ложь); + ЗначениеКлючаЗапуска = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, КлючЗапуска(), Ложь); Если ТипЗнч(ЗначениеКлючаЗапуска) = Тип("Булево") Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index 025636fb7..46bb0b55e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -306,7 +306,7 @@ // Массив из см. ЮТФабрика.ВыражениеПредиката - Набор предикатов Функция Получить() Экспорт - Возврат ЮТОбщий.СкопироватьМассив(Контекст().Предикаты); + Возврат ЮТКоллекции.СкопироватьМассив(Контекст().Предикаты); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index dcdfb3e1b..dd4e15bd7 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -398,7 +398,7 @@ ДеталиКлиент = ЮТКонтекст.КонтекстДеталиОшибки(); Если ЗначениеЗаполнено(ДеталиКлиент) И ЗначениеЗаполнено(ДеталиСервер) Тогда - ЮТОбщий.ДополнитьМассив(ДеталиСервер, ДеталиКлиент); + ЮТКоллекции.ДополнитьМассив(ДеталиСервер, ДеталиКлиент); Детали = ДеталиСервер; ИначеЕсли ЗначениеЗаполнено(ДеталиКлиент) Тогда Детали = ДеталиКлиент; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 4b71a6fb9..5537c2534 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -84,7 +84,7 @@ КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off #КонецЕсли - Если Результат = Неопределено И ПараметрыСравнения <> Неопределено И ЮТОбщий.ЗначениеСтруктуры(ПараметрыСравнения, "ГлубокийАнализ", Ложь) Тогда + Если Результат = Неопределено И ПараметрыСравнения <> Неопределено И ЮТКоллекции.ЗначениеСтруктуры(ПараметрыСравнения, "ГлубокийАнализ", Ложь) Тогда Результат = СравнитьПоЗначению(Данные1, Данные2); КонецЕсли; @@ -582,8 +582,8 @@ Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда #Если ВебКлиент Или ТонкийКлиент Тогда - Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение); -#Иначе + Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение); +#Иначе Значение = Значение.Получить(); #КонецЕсли КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index aa8ad124a..9f48454e8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -827,7 +827,7 @@ Ключ = Ключи[Инд]; Для Каждого Значение Из ЗначенияПараметров[Ключ] Цикл - Вариант = ЮТОбщий.СкопироватьСтруктуру(БазоваяСтруктура); + Вариант = ЮТКоллекции.СкопироватьСтруктуру(БазоваяСтруктура); Вариант[Ключ] = Значение; Варианты.Добавить(Вариант); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index b54e7f4de..7c8b37634 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -74,7 +74,7 @@ ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных); Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный И ДополнительныеСвойства <> Неопределено Тогда - ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); + ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); КонецЕсли; Возврат Объект; @@ -254,7 +254,7 @@ Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда - ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТОбщий.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь)); + ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТКоллекции.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь)); Если ЭтоГруппа Тогда Результат = Менеджер.СоздатьГруппу(); Иначе @@ -300,7 +300,7 @@ КонецЕсли; Если ЗначениеЗаполнено(ПараметрыЗаписи.ДополнительныеСвойства) Тогда - ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства); + ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства); КонецЕсли; Попытка diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index aba0f8118..9ff55fdc0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -297,7 +297,7 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция Тест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "", Контексты = Неопределено) Экспорт - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.Тест", "ЮТТесты.ДобавитьТест"); + ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.Тест", "ЮТТесты.ДобавитьТест", Истина); Возврат ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); КонецФункции @@ -314,7 +314,7 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция ТестКлиент(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестКлиент", "ЮТТесты.ДобавитьКлиентскийТест"); + ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестКлиент", "ЮТТесты.ДобавитьКлиентскийТест", Истина); Возврат ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой); КонецФункции @@ -331,7 +331,7 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция ТестСервер(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестСервер", "ЮТТесты.ДобавитьСерверныйТест"); + ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестСервер", "ЮТТесты.ДобавитьСерверныйТест", Истина); Возврат ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой); КонецФункции @@ -347,7 +347,7 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция ТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестовыйНабор", "ЮТТесты.ДобавитьТестовыйНабор"); + ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестовыйНабор", "ЮТТесты.ДобавитьТестовыйНабор", Истина); Возврат ДобавитьТестовыйНабор(Имя, ТегиСтрокой); КонецФункции @@ -438,21 +438,21 @@ Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура") - И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив"); + И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив"); КонецФункции Функция ЭтоТестовыйНабор(ТестовыйНабор) Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура") - И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив"); + И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив"); КонецФункции Функция ЭтоОписаниеТеста(Описание) Возврат ТипЗнч(Описание) = Тип("Структура") - И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив"); + И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив"); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 945b15c32..4d8b6bdcc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -282,8 +282,8 @@ Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); Описание.Вставить("НаборыТестов", Новый Массив); - Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(ТестовыйМодуль.Ошибки)); - Описание.Вставить("НастройкиВыполнения", ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения)); + Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(ТестовыйМодуль.Ошибки)); + Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения)); Возврат Описание; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" index e9ee85d40..79cb0a9f4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -167,17 +167,17 @@ Процедура УстановитьКонтекст(ПараметрыЗапускаТестов) Экспорт - Расширения = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "extensions", Новый Массив); - Модули = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "modules", Новый Массив); - Контексты = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "contexts"); - Тесты = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив); + Расширения = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "extensions", Новый Массив); + Модули = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "modules", Новый Массив); + Контексты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "contexts"); + Тесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив); - Теги = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив); + Теги = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив); // TODO: Подумать в каком формате задать наборы - ИмяМодуля.Набор, Набор или другой вариант - Наборы = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив); + Наборы = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив); // TODO: Обработка путей в формате: Модуль.ИмяТеста, ИмяТеста - метод, параметры, контекст // ОМ_ЮТУтверждения.Что[0: 1].Сервер, ОМ_ЮТУтверждения.Что[1: Структура].Сервер - Пути = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив); + Пути = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив); Фильтр = Фильтр(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" index 5a1d74f7e..9daaa8389 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -224,7 +224,7 @@ Процедура УдалитьНастройкиМодуляИзПервогоНабора(СценарииМодуля) - НастройкиВыполнения = ЮТОбщий.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения); + НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения); СценарииМодуля.НастройкиВыполнения.Очистить(); diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 89cf9fca6..cdad1937b 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -64,6 +64,7 @@ CommonModule.ЮТИсполнительКлиент CommonModule.ЮТИсполнительКлиентСервер CommonModule.ЮТИсполнительСервер + CommonModule.ЮТКоллекции CommonModule.ЮТКомпоненты CommonModule.ЮТКомпонентыВызовСервера CommonModule.ЮТКомпонентыКлиент diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 5626cae5d..5850aaf04 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -251,8 +251,8 @@ СтрокаОшибки = СтрокаДерева.Ошибки.Добавить(); СтрокаОшибки.Сообщение = Ошибка.Сообщение; СтрокаОшибки.Стек = Ошибка.Стек; - СтрокаОшибки.ОжидаемоеЗначение = ЮТОбщий.ЗначениеСтруктуры(Ошибка, "ОжидаемоеЗначение"); - СтрокаОшибки.ФактическоеЗначение = ЮТОбщий.ЗначениеСтруктуры(Ошибка, "ПроверяемоеЗначение"); + СтрокаОшибки.ОжидаемоеЗначение = ЮТКоллекции.ЗначениеСтруктуры(Ошибка, "ОжидаемоеЗначение"); + СтрокаОшибки.ФактическоеЗначение = ЮТКоллекции.ЗначениеСтруктуры(Ошибка, "ПроверяемоеЗначение"); КонецЦикла; @@ -606,7 +606,7 @@ КонецЦикла; Если ТестыКЗапуску.Количество() Тогда - ЗапускаемыйНабор = ЮТОбщий.СкопироватьСтруктуру(Набор); + ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор); ЗапускаемыйНабор.Тесты = ТестыКЗапуску; НаборыКЗапуску.Добавить(ЗапускаемыйНабор); КонецЕсли; @@ -615,7 +615,7 @@ Если НаборыКЗапуску.Количество() Тогда - ЗапускаемыйМодуль = ЮТОбщий.СкопироватьСтруктуру(Модуль); + ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль); ЗапускаемыйМодуль.НаборыТестов = НаборыКЗапуску; МодулиКЗапуску.Добавить(ЗапускаемыйМодуль); @@ -647,7 +647,7 @@ КонецЦикла; Если ТестыКЗапуску.Количество() Тогда - ЗапускаемыйНабор = ЮТОбщий.СкопироватьСтруктуру(Набор); + ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор); ЗапускаемыйНабор.Тесты = ТестыКЗапуску; НаборыКЗапуску.Добавить(ЗапускаемыйНабор); КонецЕсли; @@ -656,7 +656,7 @@ Если НаборыКЗапуску.Количество() Тогда - ЗапускаемыйМодуль = ЮТОбщий.СкопироватьСтруктуру(Модуль); + ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль); ЗапускаемыйМодуль.НаборыТестов = НаборыКЗапуску; МодулиКЗапуску.Добавить(ЗапускаемыйМодуль); From 9eec1e8a20255d7bcd26cb8dbe6566009f1ec565 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 16 Jan 2024 03:04:30 +0300 Subject: [PATCH 12/47] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D1=8B=20=D1=81=D0=BE=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B0?= =?UTF-8?q?=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 49 ++++--------- .../Module.bsl" | 4 +- .../Module.bsl" | 4 +- .../Module.bsl" | 69 ++++++++++++++++++- .../Module.bsl" | 4 +- .../Module.bsl" | 4 +- 8 files changed, 91 insertions(+), 49 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 20931ee45..61c469bd4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -45,7 +45,7 @@ ТипПараметра = ТипЗнч(ВыбираемыеПоля); Если ТипПараметра = Тип("Строка") Тогда - ВыбираемыеПоля = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ВыбираемыеПоля, ","); + ВыбираемыеПоля = ЮТСтроки.РазделитьСтроку(ВыбираемыеПоля, ","); ТипПараметра = Тип("Массив"); КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 488135cfb..8833e78f6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ КонецЕсли; Если ОграничениеТипа <> Неопределено Тогда - ПолноеИмяРеквизита = ЮТОбщий.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, "."); + ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, "."); ТипЗначения = ПересечениеТипов(ОписаниеРеквизита.Тип, ОграничениеТипа, ПолноеИмяРеквизита); Иначе ТипЗначения = ОписаниеРеквизита.Тип; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 1fcee54f7..dce66bb9b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -70,7 +70,7 @@ #Область Строки -// ДобавитьСтроку +// Устарела Метод перенесен в см. ЮТСтроки.ДобавитьСтроку // Конкатенирует строки, разделяя их разделителем // // Параметры: @@ -80,28 +80,14 @@ // // Возвращаемое значение: // Строка - Результат конкатенации строк -// -Функция ДобавитьСтроку(Знач ИсходнаяСтрока, Знач ДополнительнаяСтрока, Знач Разделитель = ";") Экспорт +Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт - Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда - - Если Не ПустаяСтрока(ИсходнаяСтрока) Тогда - - Возврат Строка(ИсходнаяСтрока) + Разделитель + Строка(ДополнительнаяСтрока); - - Иначе - - Возврат Строка(ДополнительнаяСтрока); - - КонецЕсли; - - КонецЕсли; - - Возврат Строка(ИсходнаяСтрока); + ВызовУстаревшегоМетода("ЮТОбщий.ДобавитьСтроку", "ЮТСтроки.ДобавитьСтроку"); + Возврат ЮТСтроки.ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель); КонецФункции -// РазложитьСтрокуВМассивПодстрок +// Устарела Метод перенесен в см. ЮТСтроки.РазделитьСтроку // Возвращает массив на основании строки // // Параметры: @@ -111,26 +97,14 @@ // Возвращаемое значение: // Массив Из Строка - массив строк // -Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Разделитель = ";") Экспорт - - КодУниверсальногоРазделителя = 5855; - УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя); - МодифицированнаяСтрока = СтрЗаменить(Значение, Разделитель, УниверсальныйРазделитель); - - МассивСтрок = ?(МодифицированнаяСтрока = "", Новый Массив, СтрРазделить(МодифицированнаяСтрока, - УниверсальныйРазделитель)); +Функция РазложитьСтрокуВМассивПодстрок(Значение, Разделитель = ";") Экспорт - Для Индекс = 0 По МассивСтрок.ВГраница() Цикл - - МассивСтрок[Индекс] = СокрЛП(МассивСтрок[Индекс]); - - КонецЦикла; - - Возврат МассивСтрок; + ВызовУстаревшегоМетода("ЮТОбщий.РазложитьСтрокуВМассивПодстрок", "ЮТСтроки.РазбитьСтроку"); + Возврат ЮТСтроки.РазделитьСтроку(Значение, Разделитель); КонецФункции -// Сформировать строку символов. +// Устарела Метод перенесен в см. ЮТСтроки.СтрокаСимволов // Формирует строку из заданного количества повторяемых символов // Параметры: // Символ - Строка - Повторяемый символ @@ -140,7 +114,8 @@ // Строка - Строка повторяемых символов Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт - Возврат СтрСоединить(Новый Массив(Количество + 1), Символ); + ВызовУстаревшегоМетода("ЮТОбщий.СформироватьСтрокуСимволов", "ЮТСтроки.СтрокаСимволов"); + Возврат ЮТСтроки.СтрокаСимволов(Символ, Количество); КонецФункции @@ -210,7 +185,7 @@ Функция ПредставлениеПродолжительности(Знач Продолжительность) Экспорт Представление = ЧислоВСтроку(Цел(Продолжительность / 1000)); - Представление = ДобавитьСтроку(Представление, Формат(Продолжительность % 1000, "ЧЦ=3; ЧВН=;"), "."); + Представление = ЮТСтроки.ДобавитьСтроку(Представление, Формат(Продолжительность % 1000, "ЧЦ=3; ЧВН=;"), "."); Инкремент(Представление, " сек"); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" index 7bf99de4f..22aa67bcd 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" @@ -73,7 +73,7 @@ Возврат Параметры; КонецЕсли; - ПарыКлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ПараметрыЗапускаСтрокой, ";"); + ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";"); ПараметрыЗапуска = Новый Структура; @@ -83,7 +83,7 @@ Продолжить; КонецЕсли; - КлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Пара, "="); + КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "="); Если КлючЗначение.Количество() = 1 Тогда ПараметрыЗапуска.Вставить(КлючЗначение[0], Истина); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index dd4e15bd7..0d7d9bbc6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -330,8 +330,8 @@ Функция ДобавитьОписания(ТекстОшибки, ОписаниеПроверки = Неопределено) Экспорт Если ОписаниеПроверки <> Неопределено Тогда - ПрефиксОшибки = ЮТОбщий.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " "); - СообщениеОбОшибке = ЮТОбщий.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": "); + ПрефиксОшибки = ЮТСтроки.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " "); + СообщениеОбОшибке = ЮТСтроки.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": "); Иначе СообщениеОбОшибке = ТекстОшибки; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index b99dede19..5631b3eca 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,73 @@ #Область ПрограммныйИнтерфейс +// Конкатенирует строки, разделяя их разделителем +// +// Параметры: +// ИсходнаяСтрока - Строка - Исходная строка +// ДополнительнаяСтрока - Строка - Добавляемая строка +// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками +// +// Возвращаемое значение: +// Строка - Результат конкатенации строк +// +Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт + + Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда + + Если Не ПустаяСтрока(ИсходнаяСтрока) Тогда + Возврат Строка(ИсходнаяСтрока) + Разделитель + Строка(ДополнительнаяСтрока); + Иначе + Возврат Строка(ДополнительнаяСтрока); + КонецЕсли; + + КонецЕсли; + + Возврат Строка(ИсходнаяСтрока); + +КонецФункции + +// Возвращает массив на основании строки. +// При этом: +// * отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. +// * в отличии от `СтрРазделить` в качестве разделителля используется вся переданная строка, а не любой из символов входящий в нее. +// +// Параметры: +// Значение - Строка - преобразуемая строка +// Разделитель - Строка - строка-разделитель +// +// Возвращаемое значение: +// Массив Из Строка - массив строк +// +Функция РазделитьСтроку(Знач Значение, Разделитель = ";") Экспорт + + КодУниверсальногоРазделителя = 5855; + УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя); + МодифицированнаяСтрока = СтрЗаменить(Значение, Разделитель, УниверсальныйРазделитель); + + МассивСтрок = ?(МодифицированнаяСтрока = "", Новый Массив, СтрРазделить(МодифицированнаяСтрока, УниверсальныйРазделитель)); + + Для Индекс = 0 По МассивСтрок.ВГраница() Цикл + МассивСтрок[Индекс] = СокрЛП(МассивСтрок[Индекс]); + КонецЦикла; + + Возврат МассивСтрок; + +КонецФункции + +// Формирует строку из заданного количества повторяемых символов +// Параметры: +// Символ - Строка - Повторяемый символ +// Количество - Число - Количество повторений +// +// Возвращаемое значение: +// Строка - Строка повторяемых символов +Функция СтрокаСимволов(Символ, Количество) Экспорт + + Возврат СтрСоединить(Новый Массив(Количество + 1), Символ); + +КонецФункции + // Строка с символами русского алфавита // // Параметры: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" index 5cf1c581e..b0535f793 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" @@ -92,7 +92,7 @@ Продолжить; КонецЕсли; - КолонкиМакета = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель); + КолонкиМакета = ЮТСтроки.РазделитьСтроку(Строка, Разделитель); СледующаяСтрока(ПараметрыИтератора); Прервать; @@ -112,7 +112,7 @@ КонецЕсли; СтрокаДанных = ПараметрыЗагрузки.Таблица.Добавить(); - Блоки = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель); + Блоки = ЮТСтроки.РазделитьСтроку(Строка, Разделитель); Для Каждого ОписаниеКолонки Из ПараметрыЗагрузки.ОписаниеКолонок Цикл diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 5423d315c..1bc64876a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -1817,7 +1817,7 @@ Функция ПараметрыСообщенийОбОшибке(ПроверяемоеЗначение, ОписаниеПроверки, ОбъектПроверки = "проверяемое значение") Контекст = Контекст(); - ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); + ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); ПредставлениеЗначения = СтрШаблон("`%1`", ПроверяемоеЗначение); Возврат ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, ОбъектПроверки, ПредставлениеЗначения); @@ -1852,7 +1852,7 @@ Контекст = Контекст(); Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, ОжидаемоеЗначение); - ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); + ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление); Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); From 4f074f5f48dd4c8250cf69d4df47d9ed93ea2774 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 11 Mar 2024 03:37:13 +0300 Subject: [PATCH 13/47] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=D0=BE=D0=B2=20=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B8=D1=85=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user-api/assertions/assertions-base.md | 12 +- .../Module.bsl" | 24 +- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 10 +- .../Module.bsl" | 4 +- .../Module.bsl" | 46 ++- .../Module.bsl" | 142 ++++---- .../Module.bsl" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 2 +- .../Module.bsl" | 26 +- .../Module.bsl" | 46 +-- .../Module.bsl" | 50 +-- .../Module.bsl" | 2 +- .../Module.bsl" | 15 +- .../Module.bsl" | 28 +- .../Module.bsl" | 102 +++--- .../Module.bsl" | 328 +++++++++--------- .../Module.bsl" | 122 +++---- .../Module.bsl" | 30 +- .../Module.bsl" | 14 +- .../ObjectModule.bsl" | 2 +- .../Module.bsl" | 16 +- .../Module.bsl" | 98 +++--- .../Module.bsl" | 155 +-------- .../Module.bsl" | 103 ++++++ ...0\265\320\272\321\206\320\270\320\270.mdo" | 7 + .../Module.bsl" | 33 +- .../Module.bsl" | 6 +- .../Module.bsl" | 42 +-- .../Module.bsl" | 44 ++- .../Module.bsl" | 73 ++++ ...1\202\321\200\320\276\320\272\320\270.mdo" | 7 + .../Module.bsl" | 65 ++-- .../Module.bsl" | 8 +- .../Module.bsl" | 146 ++++---- .../Module.bsl" | 51 ++- .../Module.bsl" | 37 +- .../Module.bsl" | 11 +- tests/src/Configuration/Configuration.mdo | 2 + 41 files changed, 973 insertions(+), 946 deletions(-) create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270.mdo" diff --git a/documentation/docs/user-api/assertions/assertions-base.md b/documentation/docs/user-api/assertions/assertions-base.md index dff8c667d..a8f846d58 100644 --- a/documentation/docs/user-api/assertions/assertions-base.md +++ b/documentation/docs/user-api/assertions/assertions-base.md @@ -149,7 +149,7 @@ tags: [Начало, Утверждения] ### Проверка сложного объекта ```bsl -Объект = ЮТОбщий.ЗначениеВМассиве("1", "2", "3"); +Объект = ЮТКоллекции.ЗначениеВМассиве("1", "2", "3"); ЮТУтверждения.Что(Объект, "Проверка элементов массива") .Содержит("1") .НеСодержит(1) @@ -162,7 +162,7 @@ tags: [Начало, Утверждения] .НетСвойства(3) .НеИмеетСвойства("[3]"); -Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2))); +Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2))); ЮТУтверждения.Что(Объект, "Проверка свойства элемента массива") .Свойство("[3].Первый").Равно(1) .Свойство("[3].Второй[-1]").Равно(2) @@ -173,14 +173,14 @@ tags: [Начало, Утверждения] ```bsl ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) + .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) .НеВыбрасываетИсключение() .НеВыбрасываетИсключение("Ожидаемое исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение", 2)) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2)) .ВыбрасываетИсключение("Слишком много фактических параметров"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) .ВыбрасываетИсключение("Исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("МетодБезИсключение") @@ -196,7 +196,7 @@ tags: [Начало, Утверждения] Объект.Вставить("Число", 1); Объект.Вставить("Строка", "1"); Объект.Вставить("Дата", Дата); -Объект.Вставить("Массив", ЮТОбщий.ЗначениеВМассиве(1, "1")); +Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1")); ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число") .ИмеетТип(Тип("Число")) diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index 563f9cfa4..aa57f4c61 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -197,17 +197,17 @@ Параметр8 = "_!%*", Параметр9 = "_!%*", Параметр10 = "_!%*") Экспорт - - Возврат ЮТОбщий.ЗначениеВМассиве(Параметр1, - Параметр2, - Параметр3, - Параметр4, - Параметр5, - Параметр6, - Параметр7, - Параметр8, - Параметр9, - Параметр10); + + Возврат ЮТКоллекции.ЗначениеВМассиве(Параметр1, + Параметр2, + Параметр3, + Параметр4, + Параметр5, + Параметр6, + Параметр7, + Параметр8, + Параметр9, + Параметр10); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 341a7339c..b7475ca4d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -156,7 +156,7 @@ Если ОписаниеЗапроса.ВыбираемыеПоля.Количество() Тогда ВыбираемыеПоля = ОписаниеЗапроса.ВыбираемыеПоля; Иначе - ВыбираемыеПоля = ЮТОбщий.ЗначениеВМассиве("1 КАК Поле"); + ВыбираемыеПоля = ЮТКоллекции.ЗначениеВМассиве("1 КАК Поле"); КонецЕсли; Строки.Добавить(СтрСоединить(ВыбираемыеПоля, "," + Символы.ПС)); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" index cccc8b93f..9f216b8af 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" @@ -21,7 +21,7 @@ Функция НекорректныеПараметрыМетода(ИмяМетода, Пояснение = Неопределено) Экспорт Сообщение = СтрШаблон("Некорректные параметры метода `%1`"); - Возврат ЮТОбщий.ДобавитьСтроку(Сообщение, Пояснение, ", "); + Возврат ЮТСтроки.ДобавитьСтроку(Сообщение, Пояснение, ", "); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 64e87649f..776b5a20c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -330,7 +330,7 @@ ИсполняемыйТест = ЮТФабрика.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); Если Тест.Свойство("Ошибки") И Тест.Ошибки.Количество() > 0 Тогда - ИсполняемыйТест.Ошибки = ЮТОбщий.СкопироватьМассив(Тест.Ошибки); + ИсполняемыйТест.Ошибки = ЮТКоллекции.СкопироватьМассив(Тест.Ошибки); КонецЕсли; ИсполняемыйНабор.Тесты.Добавить(ИсполняемыйТест); @@ -353,15 +353,15 @@ КонецФункции Процедура ОбработатьОшибкиЧтенияНабора(Набор, Модуль) - ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(Набор, "Тесты", Новый Массив()); - Ошибки = ЮТОбщий.ЗначениеСтруктуры(Набор, "Ошибки", Новый Массив()); + ТестыНабора = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Тесты", Новый Массив()); + Ошибки = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Ошибки", Новый Массив()); Если Ошибки.Количество() > 0 Тогда Для Каждого Ошибка Из Ошибки Цикл Если Ошибка.ТипОшибки = ЮТФабрика.ТипыОшибок().ЧтенияТестов Тогда Тест = ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка); ТестыНабора.Добавить(Тест); - + Прервать; КонецЕсли; КонецЦикла; @@ -372,7 +372,7 @@ Контексты = ЮТФабрика.КонтекстыМодуля(Модуль.МетаданныеМодуля); Тест = ЮТФабрика.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты); Тест.Вставить("Ошибки", Новый Массив); - Тест.Ошибки.Добавить(ЮТОбщий.СкопироватьСтруктуру(Ошибка)); + Тест.Ошибки.Добавить(ЮТКоллекции.СкопироватьСтруктуру(Ошибка)); Возврат Тест; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 8833e78f6..5b8ab8921 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -222,9 +222,9 @@ КонецЕсли; Если ТипОграничения = Тип("Тип") И ОписаниеТипов.СодержитТип(ОграничениеТипов) И ОграничениеТипов <> Тип("Неопределено") Тогда - Результат = ЮТОбщий.ЗначениеВМассиве(ОграничениеТипов); + Результат = ЮТКоллекции.ЗначениеВМассиве(ОграничениеТипов); ИначеЕсли ТипОграничения = Тип("ОписаниеТипов") Тогда - Результат = ЮТОбщий.ПересечениеМассивов(ОписаниеТипов.Типы(), ОграничениеТипов.Типы()); + Результат = ЮТКоллекции.ПересечениеМассивов(ОписаниеТипов.Типы(), ОграничениеТипов.Типы()); Иначе Результат = Неопределено; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" index a8956bd65..dcd67af38 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" @@ -19,7 +19,7 @@ #Область ПрограммныйИнтерфейс // Выводит отладочное сообщение -// +// // Параметры: // Сообщение - Строка - Сообщение Процедура Отладка(Сообщение) Экспорт @@ -29,7 +29,7 @@ КонецПроцедуры // Выводит информационное сообщение -// +// // Параметры: // Сообщение - Строка - Сообщение Процедура Информация(Сообщение) Экспорт @@ -39,7 +39,7 @@ КонецПроцедуры // Выводит сообщение об ошибке -// +// // Параметры: // Сообщение - Строка - Сообщение Процедура Ошибка(Сообщение) Экспорт @@ -81,7 +81,7 @@ #Область ОбработчикиСобытий // Инициализация. -// +// // Параметры: // ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска Процедура Инициализация(ПараметрыЗапуска) Экспорт @@ -112,14 +112,14 @@ КонецЕсли; ЗначениеПроверки = Строка(Новый УникальныйИдентификатор()); - ЗаписатьСообщения(ДанныеКонтекста, ЮТОбщий.ЗначениеВМассиве(ЗначениеПроверки), Ложь); + ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь); ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки); ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина); Разделитель = "------------------------------------------------------"; - ЗаписатьСообщения(ДанныеКонтекста, ЮТОбщий.ЗначениеВМассиве(Разделитель), Ложь); + ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(Разделитель), Ложь); Информация("Старт"); @@ -133,7 +133,7 @@ КонецПроцедуры // Перед чтением сценариев модуля. -// +// // Параметры: // МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля @@ -144,7 +144,7 @@ КонецПроцедуры // Перед чтением сценариев модуля. -// +// // Параметры: // МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля @@ -187,7 +187,7 @@ КонецПроцедуры // Перед всеми тестами. -// +// // Параметры: // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт @@ -205,7 +205,7 @@ КонецПроцедуры // Перед тестовым набором. -// +// // Параметры: // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт @@ -215,7 +215,7 @@ КонецПроцедуры // Перед каждым тестом. -// +// // Параметры: // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт @@ -225,7 +225,7 @@ КонецПроцедуры // Перед каждым тестом. -// +// // Параметры: // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт @@ -241,7 +241,7 @@ КонецПроцедуры // Перед каждым тестом. -// +// // Параметры: // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт @@ -251,7 +251,7 @@ КонецПроцедуры // Перед каждым тестом. -// +// // Параметры: // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт @@ -273,7 +273,7 @@ #Область Контекст // Контекст. -// +// // Возвращаемое значение: // см. НовыйДанныеКонтекста Функция Контекст() @@ -289,7 +289,7 @@ КонецФункции // Новый данные контекста. -// +// // Возвращаемое значение: // Структура - Новый данные контекста: // * Включено - Булево - Логирование включено @@ -358,10 +358,10 @@ #КонецЕсли Текст = СтрШаблон("%1 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение); #Если Клиент Тогда - ЗаписатьСообщения(Контекст, ЮТОбщий.ЗначениеВМассиве(Текст)); + ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); #Иначе Если Контекст.ФайлЛогаДоступенНаСервере Тогда - ЗаписатьСообщения(Контекст, ЮТОбщий.ЗначениеВМассиве(Текст)); + ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); Иначе Контекст.НакопленныеЗаписи.Добавить(Текст); КонецЕсли; @@ -374,7 +374,6 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьСообщения"); #Иначе - Если Контекст.ВыводВКонсоль Тогда ЗаписатьЛогВКонсоль(Сообщения); КонецЕсли; @@ -382,9 +381,8 @@ Если ЗначениеЗаполнено(Контекст.ФайлЛога) Тогда ЗаписатьЛогВФайл(Контекст.ФайлЛога, Сообщения, Дописывать); КонецЕсли; - #КонецЕсли - + КонецПроцедуры Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина) @@ -392,7 +390,6 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВФайл"); #Иначе - Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать); Для Каждого Сообщение Из Сообщения Цикл @@ -401,7 +398,7 @@ Запись.Закрыть(); #КонецЕсли - + КонецПроцедуры Процедура ЗаписатьЛогВКонсоль(Сообщения) @@ -409,7 +406,6 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВКонсоль"); #Иначе - //@skip-check empty-except-statement Попытка Для Каждого Сообщение Из Сообщения Цикл @@ -419,7 +415,7 @@ // Игнорируем ошибку КонецПопытки; #КонецЕсли - + КонецПроцедуры Функция Прогресс() diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index dce66bb9b..842a07653 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -20,12 +20,12 @@ // Возвращает значение свойства объекта. // Возможно получение "глубоко" вложенных свойство и элементов коллекции по индексу -// +// // Параметры: // Объект - Произвольный // ИмяСвойства - Строка - Путь к свойству. Примеры: "ИмяСвойства.ИмяВложенногоСвойства", "[2].ИмяСвойства", "ИмяСвойства[2].ИмяВложенногоСвойства" -// - Число - Индекс элемента. Возможен выбор элемента с конца, для этого нужно указывать отрицательный номер элемента с конца, -// например: '-1' - последний элемент, '-2' - предпоследний +// - Число - Индекс элемента. Возможен выбор элемента с конца, для этого нужно указывать отрицательный номер элемента с конца, +// например: '-1' - последний элемент, '-2' - предпоследний // Возвращаемое значение: // Произвольный Функция ЗначениеСвойства(Объект, ИмяСвойства) Экспорт @@ -56,10 +56,10 @@ КонецФункции // Вычисляет хеш по алгоритму md5. -// +// // Параметры: // Данные - Строка, ДвоичныеДанные - Данные, для которых необходимо вычислить хеш -// +// // Возвращаемое значение: // Строка Функция ХешMD5(Данные) Экспорт @@ -77,7 +77,7 @@ // ИсходнаяСтрока - Строка - Исходная строка // ДополнительнаяСтрока - Строка - Добавляемая строка // Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками -// +// // Возвращаемое значение: // Строка - Результат конкатенации строк Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт @@ -93,7 +93,7 @@ // Параметры: // Значение - Строка - преобразуемая строка // Разделитель - Строка - строка-разделитель -// +// // Возвращаемое значение: // Массив Из Строка - массив строк // @@ -109,7 +109,7 @@ // Параметры: // Символ - Строка - Повторяемый символ // Количество - Число - Количество повторений -// +// // Возвращаемое значение: // Строка - Строка повторяемых символов Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт @@ -124,12 +124,12 @@ #Область ДатаВремя // Добавляет к дате указанное значение временных интервалов -// +// // Параметры: // Дата - Дата -// Интервал - Число - Добавляемое +// Интервал - Число - Добавляемое // ТипИнтервала - Строка - Тип интервала -// +// // Возвращаемое значение: // Дата Функция ДобавитьКДате(Дата, Интервал, ТипИнтервала) Экспорт @@ -152,7 +152,7 @@ #Область Числа // Инкрементирует значение -// +// // Параметры: // Значение - Число // Шаг - Число @@ -176,10 +176,10 @@ #Область ДатаВремя // Человекочитаемое представление продолжительности -// +// // Параметры: // Продолжительность - Число - Продолжительность в миллисекундах -// +// // Возвращаемое значение: // Строка - Представление продолжительности Функция ПредставлениеПродолжительности(Знач Продолжительность) Экспорт @@ -212,12 +212,12 @@ // Устарела Метод перенесен в см. ЮТКоллекции.ЗначениеСтруктуры // Возвращает требуемое поле структуры. В случае отсутствия поля возвращает значение по умолчанию -// +// // Параметры: // ИсходнаяСтруктура - Структура - Исходная структура // ИмяПоля - Строка - Имя поля структуры // ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если поля в структуре нет -// +// // Возвращаемое значение: // Произвольный - Значение искомого поля структуры Функция ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию = Неопределено) Экспорт @@ -235,7 +235,7 @@ // - Структура // Коллекция2 - Соответствие из Произвольный // - Структура -// +// // Возвращаемое значение: // Структура - Результат объединения двух коллекций // @@ -260,7 +260,7 @@ // // Параметры: // Источник - Произвольный - объект, который необходимо скопировать. -// +// // Возвращаемое значение: // Произвольный - копия объекта, переданного в параметре Источник. // @@ -276,7 +276,7 @@ // // Параметры: // Источник - Структура - копируемая структура -// +// // Возвращаемое значение: // Структура - копия исходной структуры. // @@ -292,7 +292,7 @@ // // Параметры: // Источник - Соответствие из Произвольный - соответствие, копию которого необходимо получить. -// +// // Возвращаемое значение: // Соответствие Из Произвольный - копия исходного соответствия. // @@ -308,7 +308,7 @@ // // Параметры: // Источник - Массив Из Произвольный - массив, копию которого необходимо получить -// +// // Возвращаемое значение: // Массив Из Произвольный - копия исходного массива. // @@ -324,7 +324,7 @@ // // Параметры: // Источник - СписокЗначений Из Произвольный - список значений, копию которого необходимо получить -// +// // Возвращаемое значение: // СписокЗначений Из Произвольный - копия исходного списка значений // @@ -336,11 +336,11 @@ КонецФункции // Устарела Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения -// +// // Параметры: // Коллекция - Произвольный // ИмяРеквизита - Строка -// +// // Возвращаемое значение: // Массив из Произвольный - Выгрузить значения Функция ВыгрузитьЗначения(Коллекция, ИмяРеквизита) Экспорт @@ -351,11 +351,11 @@ КонецФункции // Устарела Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения -// +// // Параметры: // Коллекция1 - Массив из Произвольный // Коллекция2 - Массив из Произвольный -// +// // Возвращаемое значение: // Массив из Произвольный - Пересечение массивов Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт @@ -367,32 +367,32 @@ // Устарела Метод перенесен в см. ЮТКоллекции.ЗначениеВМассиве // Создает массив с переданными значениями -// +// // Параметры: // Значение - Произвольный -// Значение2 - Произвольный -// Значение3 - Произвольный -// Значение4 - Произвольный -// Значение5 - Произвольный -// Значение6 - Произвольный -// Значение7 - Произвольный -// Значение8 - Произвольный -// Значение9 - Произвольный +// Значение2 - Произвольный +// Значение3 - Произвольный +// Значение4 - Произвольный +// Значение5 - Произвольный +// Значение6 - Произвольный +// Значение7 - Произвольный +// Значение8 - Произвольный +// Значение9 - Произвольный // Значение10 - Произвольный -// +// // Возвращаемое значение: -// Массив из Произвольный +// Массив из Произвольный //@skip-check method-too-many-params Функция ЗначениеВМассиве(Значение, - Значение2 = "_!%*", - Значение3 = "_!%*", - Значение4 = "_!%*", - Значение5 = "_!%*", - Значение6 = "_!%*", - Значение7 = "_!%*", - Значение8 = "_!%*", - Значение9 = "_!%*", - Значение10 = "_!%*") Экспорт + Значение2 = "_!%*", + Значение3 = "_!%*", + Значение4 = "_!%*", + Значение5 = "_!%*", + Значение6 = "_!%*", + Значение7 = "_!%*", + Значение8 = "_!%*", + Значение9 = "_!%*", + Значение10 = "_!%*") Экспорт ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеВМассиве", "ЮТКоллекции.ЗначениеВМассиве"); Возврат ЮТКоллекции.ЗначениеВМассиве(Значение, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9, Значение10); @@ -400,7 +400,7 @@ КонецФункции // Устарела Метод перенесен в см. ЮТКоллекции.ДополнитьМассив -// +// // Параметры: // Приемник - Массив из Произвольный // Источник - Массив из Произвольный @@ -413,7 +413,7 @@ // Устарела Метод перенесен в см. ЮТКоллекции.ВСоответствие // Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. -// +// // Параметры: // Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. // ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. @@ -429,7 +429,7 @@ // Устарела Метод перенесен в см. ЮТКоллекции.ВСтруктуру // Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. -// +// // Параметры: // Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. // ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. @@ -493,13 +493,13 @@ // МетодМодуляСуществует // Проверяет существование публичного (экспортного) метода у модуля -// +// // Параметры: // ИмяМодуля - Строка - Имя модуля, метод которого нужно поискать // ИмяМетода - Строка - Имя метода, который ищем // КоличествоПараметров - Число - Количество параметров метода, увы это никак не влияет на проверку // Кешировать - Булево - Признак кеширования результата проверки -// +// // Возвращаемое значение: // Булево - Метод найден Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0, Кешировать = Истина) Экспорт @@ -522,11 +522,11 @@ КонецФункции // Проверяет существование публичного (экспортного) метода у объекта -// +// // Параметры: // Объект - Произвольный - Объект, метод которого нужно поискать // ИмяМетода - Строка - Имя метода, который ищем -// +// // Возвращаемое значение: // Булево - Метод найден Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт @@ -614,7 +614,7 @@ // Параметры: // Переменная - Произвольный - переменная любого типа, для которой необходимо проверить наличие свойства // ИмяСвойства - Строка - переменная типа "Строка", содержащая искомое свойства -// +// // Возвращаемое значение: // Булево - признак наличия свойства у значения // @@ -664,7 +664,7 @@ Возврат ЗаписьJSON.Закрыть(); #КонецЕсли - + КонецФункции // СтрокаJSON Функция ПредставлениеЗначения(Значение) Экспорт @@ -684,13 +684,13 @@ КонецФункции // Параметры записи объекта -// +// // Возвращаемое значение: // Структура - Параметры записи: // * ОбменДаннымиЗагрузка - Булево // * ДополнительныеСвойства - Структура // * РежимЗаписи - РежимЗаписиДокумента -// - Неопределено +// - Неопределено Функция ПараметрыЗаписи() Экспорт ПараметрыЗаписи = Новый Структура(); @@ -703,7 +703,7 @@ КонецФункции // Описание типов любая ссылка. -// +// // Возвращаемое значение: // ОписаниеТипов - Описание типов любая ссылка Функция ОписаниеТиповЛюбаяСсылка() Экспорт @@ -785,7 +785,7 @@ КонецПроцедуры // Преостанавливает поток выполнения на указанное количество секунд -// +// // Параметры: // Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение Процедура Пауза(Время) Экспорт @@ -801,11 +801,11 @@ ВызватьИсключение "Пауза не работает на клиенте при отключенных синхронных вызовах"; КонецЕсли; #КонецЕсли - + КонецПроцедуры // Выводит сообщение в консоль (stdout) приложения -// +// // Параметры: // Сообщение - Строка - Выводимое сообщение Процедура ВывестиВКонсоль(Сообщение) Экспорт @@ -824,13 +824,13 @@ КонецПроцедуры // Возвращяет макет -// +// // Параметры: // ИмяМакета - Строка - Возможные значения // * Общий макет, например, ОбщийМакет.ЮТМетаданные // * Макет объекта метаданных, например, Справочник.Товары.ПечатнаяФорма // * Область макета, например, Справочник.Товары.ПечатнаяФорма.Шапка, ОбщийМакет.ЮТМетаданные.Заголовок -// +// // Возвращаемое значение: // ТабличныйДокумент, ТекстовыйДокумент, ДвоичныеДанные - Макет или его область Функция Макет(ИмяМакета) Экспорт @@ -852,10 +852,10 @@ ПредставлениеТипа = ТипОбъекта; Если ТипОбъекта = Тип("Структура") ИЛИ ТипОбъекта = Тип("Соответствие") Тогда - СформироватьСтрокуСимволов(" ", Уровень * 4); + ЮТСтроки.СтрокаСимволов(" ", Уровень * 4); Шаблон = "%2: - |%1"; - Представление = СформироватьСтрокуСимволов(" ", Уровень * 4) + ПредставлениеСтруктуры(Объект, Уровень); + |%1"; + Представление = ЮТСтроки.СтрокаСимволов(" ", Уровень * 4) + ПредставлениеСтруктуры(Объект, Уровень); ИначеЕсли ТипОбъекта = Тип("Массив") Тогда @@ -905,7 +905,7 @@ КонецЦикла; - Возврат СтрСоединить(Строки, Символы.ПС + СформироватьСтрокуСимволов(" ", Уровень * 4)); + Возврат СтрСоединить(Строки, Символы.ПС + ЮТСтроки.СтрокаСимволов(" ", Уровень * 4)); КонецФункции @@ -945,7 +945,7 @@ Функция СодержитИндекс(ИмяСвойства) - Возврат СтрНайти(ИмяСвойства, "[") > 0 И СтрЗаканчиваетсяНа(ИмяСвойства, "]") ; + Возврат СтрНайти(ИмяСвойства, "[") > 0 И СтрЗаканчиваетсяНа(ИмяСвойства, "]"); КонецФункции @@ -987,7 +987,6 @@ Возврат СтрСоединить(СписокПараметров, ", "); КонецФункции -КонецФункции Функция МножительПериода(ТипИнтервала) @@ -999,8 +998,9 @@ Функция ЭтоМесяц(ТипИнтервала) Возврат СтрСравнить(ТипИнтервала, "месяц") = 0 - Или СтрСравнить(ТипИнтервала, "месяца") = 0 - Или СтрСравнить(ТипИнтервала, "месяцев") = 0; + ИЛИ СтрСравнить(ТипИнтервала, "месяца") = 0 + ИЛИ СтрСравнить(ТипИнтервала, "месяцев") = 0; +КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" index e58cf3529..5a6977fc9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" @@ -65,7 +65,7 @@ Для Каждого Модуль Из Модули Цикл Параметры = Модуль.ПараметрыГенерацииОтчета(); - ЮТОбщий.ОбъединитьВСтруктуру(Форматы, Параметры.Форматы); + ЮТКоллекции.ДополнитьСтруктуру(Форматы, Параметры.Форматы); КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" index 04801a02b..8637fc602 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" @@ -130,8 +130,8 @@ Для Каждого ОписаниеОшибки Из РезультатТеста.Ошибки Цикл - Описание.statusDetails.message = ЮТОбщий.ДобавитьСтроку(Описание.statusDetails.message, ОписаниеОшибки.Сообщение, Символы.ПС); - Описание.statusDetails.trace = ЮТОбщий.ДобавитьСтроку(Описание.statusDetails.trace, ОписаниеОшибки.Стек, Символы.ПС); + Описание.statusDetails.message = ЮТСтроки.ДобавитьСтроку(Описание.statusDetails.message, ОписаниеОшибки.Сообщение, Символы.ПС); + Описание.statusDetails.trace = ЮТСтроки.ДобавитьСтроку(Описание.statusDetails.trace, ОписаниеОшибки.Стек, Символы.ПС); КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" index 0db6cf961..95dafc0f4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" @@ -196,7 +196,7 @@ Возврат Пол; КонецЕсли; - Варианты = ЮТОбщий.ВыгрузитьЗначения(ПолЧеловека(), "Значение"); + Варианты = ЮТКоллекции.ВыгрузитьЗначения(ПолЧеловека(), "Значение"); Возврат ЮТТестовыеДанные.СлучайноеЗначениеИзСписка(Варианты); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 8b8aa136d..2fe1d1bc4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -19,14 +19,14 @@ #Область СлужебныйПрограммныйИнтерфейс // Проверить предикат. -// +// // Параметры: // Значение - Произвольный // Предикаты - Массив Из см. ЮТФабрика.ВыражениеПредиката // ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке // ПараметрыСравнения - Неопределено // - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры -// +// // Возвращаемое значение: // см. ЮТФабрика.ОписаниеРезультатаПроверки Функция ПроверитьПредикаты(Знач Значение, Знач Предикаты, Знач ПараметрыСообщенийОбОшибке = Неопределено, ПараметрыСравнения = Неопределено) Экспорт @@ -52,12 +52,12 @@ КонецФункции // Набор предикатов. -// +// // Параметры: // Предикаты - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений. см. ЮТест.Предикат // - см. ЮТФабрика.ВыражениеПредиката // - CommonModule.ЮТПредикаты - Модуль настройки предикатов, см. ЮТест.Предикат -// +// // Возвращаемое значение: // Массив из см. ЮТФабрика.ВыражениеПредиката - Набор предикатов Функция НаборПредикатов(Знач Предикаты) Экспорт @@ -69,7 +69,7 @@ ИначеЕсли ЭтоПредикатМассив(ТипПараметра, Предикаты) Тогда Результат = Предикаты; ИначеЕсли ЭтоПредикатСтруктура(ТипПараметра, Предикаты) Тогда - Результат = ЮТОбщий.ЗначениеВМассиве(Предикаты); + Результат = ЮТКоллекции.ЗначениеВМассиве(Предикаты); Иначе ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЮТПредикатыКлиентСервер.НаборПредикатов"); КонецЕсли; @@ -79,10 +79,10 @@ КонецФункции // Это предикат -// +// // Параметры: // Предикаты - Произвольный - значение, для которого будет определено является ли оно предикатом или нет -// +// // Возвращаемое значение: // Булево Функция ЭтоПредикат(Предикаты) Экспорт @@ -90,8 +90,8 @@ ТипПараметра = ТипЗнч(Предикаты); Возврат ЭтоПредикатОбщийМодуль(ТипПараметра, Предикаты) - Или ЭтоПредикатМассив(ТипПараметра, Предикаты) - Или ЭтоПредикатСтруктура(ТипПараметра, Предикаты); + ИЛИ ЭтоПредикатМассив(ТипПараметра, Предикаты) + ИЛИ ЭтоПредикатСтруктура(ТипПараметра, Предикаты); КонецФункции @@ -167,12 +167,12 @@ КонецФункции // Параметры сообщений об ошибке. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки // ТекстПроверяемоеЗначение - Строка - Человекочитаемое описание проверяемого значения // ПредставлениеПроверяемогоЗначения - Неопределено - Представление проверяемого значения -// +// // Возвращаемое значение: // Структура - Параметры сообщений об ошибке: // * ОписаниеПроверки - Неопределено, Строка - Описание конкретной проверки @@ -203,8 +203,8 @@ ПроверяемоеЗначение = СтрШаблон(ШаблонСвойства, ВыражениеПредиката.ИмяРеквизита) + " "; КонецЕсли; - Выражение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон( - ШаблонВыражения(ВыражениеПредиката.ВидСравнения), ВыражениеПредиката.Значение); + Выражение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонВыражения(ВыражениеПредиката.ВидСравнения), + ВыражениеПредиката.Значение); Возврат СтрШаблон("%1%2", ПроверяемоеЗначение, Выражение); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index 0d7d9bbc6..bc823e693 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -21,7 +21,7 @@ #Область ФиксацияОшибокВРезультате // Регистрирует ошибку обработки события исполнения тестов -// +// // Параметры: // ИмяСобытия - Строка // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов @@ -46,7 +46,7 @@ КонецПроцедуры // Регистрирует ошибку загрузки тестов -// +// // Параметры: // Объект - Структура - см. ЮТФабрика.ОписаниеТестовогоМодуля или см. ЮТФабрика.ОписаниеТестовогоНабора или см. ЮТФабрика.ОписаниеТеста // Описание - Строка - Описания ошибки, места возникновения @@ -103,7 +103,7 @@ #КонецОбласти // Вызывает ошибку выполнения теста, на основании перехваченной ошибки -// +// // Параметры: // ИнформацияОбОшибке - ИнформацияОбОшибке // ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки @@ -118,7 +118,7 @@ // Вызывает ошибку сравнения значений // При этом сохраняет в контекст состояние, для дальнейшей обработки -// +// // Параметры: // ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки // Сообщение - Строка @@ -139,7 +139,7 @@ // Вызывает ошибку проверки утверждений // При этом сохраняет в контекст состояние, для дальнейшей обработки -// +// // Параметры: // ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки // Сообщение - Строка @@ -192,11 +192,11 @@ КонецПроцедуры // Возвращает тип ошибки -// +// // Параметры: // Ошибка - ИнформацияОбОшибке // ИмяВызываемогоМетода - Строка - Имя вызываемого метода -// +// // Возвращаемое значение: // Строка - см. ЮТФабрика.ТипыОшибок Функция ТипОшибки(Ошибка, ИмяВызываемогоМетода) Экспорт @@ -311,9 +311,9 @@ СтруктураОшибки = ЮТКонтекст.КонтекстОшибки(); - СтруктураОшибки.ОшибкаУтверждения = Истина; + СтруктураОшибки.ОшибкаУтверждения = Истина; СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); - СтруктураОшибки.ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение); + СтруктураОшибки.ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение); КонецПроцедуры @@ -321,9 +321,9 @@ СтруктураОшибки = ЮТКонтекст.КонтекстОшибки(); - СтруктураОшибки.ОшибкаУтверждения = Истина; + СтруктураОшибки.ОшибкаУтверждения = Истина; СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); - СтруктураОшибки.ОжидаемоеЗначение = Неопределено; + СтруктураОшибки.ОжидаемоеЗначение = Неопределено; КонецПроцедуры @@ -487,7 +487,7 @@ Функция МодулиУтверждений() - Возврат ЮТОбщий.ЗначениеВМассиве("ЮТУтверждения"); + Возврат ЮТКоллекции.ЗначениеВМассиве("ЮТУтверждения"); КонецФункции @@ -502,11 +502,11 @@ ТекстОшибки = ""; Если Ошибка = Неопределено Тогда - + ТекстОшибки = "Неизвестная ошибка."; ИначеЕсли ТипЗнч(Ошибка) = Тип("Строка") Тогда - + ТекстОшибки = Ошибка; ИначеЕсли ЭтоОшибкаСлужебногоМодуля(Ошибка) Тогда @@ -523,28 +523,28 @@ Иначе - Если Не ПустаяСтрока(Ошибка.ИмяМодуля) Тогда + Если НЕ ПустаяСтрока(Ошибка.ИмяМодуля) Тогда ТекстОшибки = ТекстОшибки + "{" + Ошибка.ИмяМодуля + "(" + Ошибка.НомерСтроки + ")}: "; - + КонецЕсли; ТекстОшибки = ТекстОшибки + Ошибка.Описание + ?(ПустаяСтрока(Ошибка.ИсходнаяСтрока), "", " |" + Ошибка.ИсходнаяСтрока); Если Ошибка.Причина <> Неопределено Тогда - + ТекстОшибки = ТекстОшибки + " | |ПРИЧИНА №" + Формат(НомерПричины + 1, "ЧГ=0") + " |" + ИнформациюОбОшибкеВСтроку(Ошибка.Причина, НомерПричины + 1); - + КонецЕсли; КонецЕсли; - + Возврат ТекстОшибки; КонецФункции @@ -568,14 +568,14 @@ Процедура ДобавитьСообщенияПользователю(ДанныеОшибки) #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда - Сообщения = ЮТОбщий.ВыгрузитьЗначения(ПолучитьСообщенияПользователю(Истина), "Текст"); + Сообщения = ЮТКоллекции.ВыгрузитьЗначения(ПолучитьСообщенияПользователю(Истина), "Текст"); Если Сообщения.Количество() Тогда ДанныеОшибки.Стек = СтрШаблон("%1 - |Сообщения пользователю: - | %2", ДанныеОшибки.Стек, СтрСоединить(Сообщения, Символы.ПС)); + |Сообщения пользователю: + | %2", ДанныеОшибки.Стек, СтрСоединить(Сообщения, Символы.ПС)); КонецЕсли; #КонецЕсли - + КонецПроцедуры Процедура ВызватьОшибкуИсполнения(Знач ИнформацияОбОшибке, ОписаниеПроверки) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" index 2010743e9..39108d292 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" @@ -20,7 +20,7 @@ Процедура Инициализация(ПараметрыЗапуска) Экспорт - Параметры = ЮТОбщий.ЗначениеВМассиве(ПараметрыЗапуска); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска); ВызватьОбработчикРасширения("Инициализация", Параметры); КонецПроцедуры @@ -28,7 +28,7 @@ #Область СобытияИсполненияТестов // Обработчик события "ПередВсемиТестамиМодуля" -// +// // Параметры: // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля Процедура ПередВсемиТестамиМодуля(ТестовыйМодуль) Экспорт @@ -42,7 +42,7 @@ КонецПроцедуры // Обработчик события "ПередТестовымНабором" -// +// // Параметры: // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля // Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов @@ -57,7 +57,7 @@ КонецПроцедуры // Обработчик события "ПередКаждымТестом" -// +// // Параметры: // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля // Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов @@ -69,16 +69,16 @@ ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); -#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда + #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда ПолучитьСообщенияПользователю(Истина); -#КонецЕсли + #КонецЕсли - ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия); + ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия); КонецПроцедуры // Обработчик события "ПослеКаждогоТеста" -// +// // Параметры: // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля // Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов @@ -87,14 +87,14 @@ ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); - ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия); + ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия); УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор); КонецПроцедуры // Обработчик события "ПослеТестовогоНабора" -// +// // Параметры: // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля // Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов @@ -108,7 +108,7 @@ КонецПроцедуры // Обработчик события "ПослеВсехТестовМодуля" -// +// // Параметры: // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля Процедура ПослеВсехТестовМодуля(ТестовыйМодуль) Экспорт @@ -121,23 +121,23 @@ КонецПроцедуры // Перед выполнением тестов. -// +// // Параметры: -// ИсполняемыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// ИсполняемыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт - Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеМодули); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули); ВызватьОбработчикРасширения("ПередВыполнениемТестов", Параметры); КонецПроцедуры // После выполнения тестов. -// +// // Параметры: // РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт - Параметры = ЮТОбщий.ЗначениеВМассиве(РезультатТестирования); + Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования); ВызватьОбработчикРасширения("ПослеВыполненияТестов", Параметры); КонецПроцедуры @@ -160,7 +160,7 @@ // МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт - Параметры = ЮТОбщий.ЗначениеВМассиве(МетаданныеМодуля); + Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля); ВызватьОбработчикРасширения("ПередЧтениемСценариевМодуля", Параметры); КонецПроцедуры @@ -172,7 +172,7 @@ // ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт - Параметры = ЮТОбщий.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии); + Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии); ВызватьОбработчикРасширения("ПослеЧтенияСценариевМодуля", Параметры); КонецПроцедуры @@ -182,7 +182,7 @@ // Сценарии - Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах Процедура ПослеЧтенияСценариев(Сценарии) Экспорт - Параметры = ЮТОбщий.ЗначениеВМассиве(Сценарии); + Параметры = ЮТКоллекции.ЗначениеВМассиве(Сценарии); ВызватьОбработчикРасширения("ПослеЧтенияСценариев", Параметры); КонецПроцедуры @@ -192,7 +192,7 @@ // ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт - Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеТестовыеМодули); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеТестовыеМодули); ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры); КонецПроцедуры @@ -231,7 +231,7 @@ ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия)); Если ПропуститьОбработчикТестовогоМодуля Тогда - Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры); ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки); @@ -246,7 +246,7 @@ Процедура ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия) - Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); Если ЭтоСобытиеПеред(ИмяСобытия) Тогда Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры); @@ -282,11 +282,11 @@ КонецФункции // Вызвать обработчик модуля. -// +// // Параметры: // ИмяСобытия - Строка - Имя вызываемого метода обработки события // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов -// +// Процедура ВызватьОбработчикТестовогоМодуля(Знач ИмяСобытия, ОписаниеСобытия) ОбработчикСобытияПереопределен = ОбработчикСобытияПереопределен(ИмяСобытия); @@ -298,7 +298,7 @@ ЧастиКоманды = СтрРазделить(ИмяСобытия, "."); Если ЧастиКоманды.Количество() = 2 Тогда - ИмяМодуля = ЧастиКоманды[0]; + ИмяМодуля = ЧастиКоманды[0]; ИмяСобытия = ЧастиКоманды[1]; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 9f48454e8..ec639be26 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -635,7 +635,7 @@ Варианты = Новый Массив; Варианты.Добавить(ЗначенияПоУмолчанию); - Ключи = ЮТОбщий.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ"); + Ключи = ЮТКоллекции.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ"); ДобавитьВарианты(Варианты, ЗначенияПоУмолчанию, ЗначенияПараметров, Ключи, 0); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" index b0535f793..6d17c5fac 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" @@ -224,9 +224,8 @@ ДанныеМакета = Неопределено; ПараметрыСодержитДанные = ТипПараметра = Тип("ТабличныйДокумент") - Или ТипПараметра = Тип("ТекстовыйДокумент") - Или ТипПараметра = Тип("Строка") - И СтрНачинаетсяС(Макет, "|"); + ИЛИ ТипПараметра = Тип("ТекстовыйДокумент") + ИЛИ ТипПараметра = Тип("Строка") И СтрНачинаетсяС(Макет, "|"); Если ПараметрыСодержитДанные Тогда ДанныеМакета = Макет; @@ -275,7 +274,7 @@ ЗаменяемыеЗначения = Новый Соответствие; КонецЕсли; - Если Не ЗначениеЗаполнено(КэшЗначений) Тогда + Если НЕ ЗначениеЗаполнено(КэшЗначений) Тогда КэшЗначений = Новый Соответствие; КонецЕсли; @@ -355,7 +354,7 @@ Конструктор.ФикцияОбязательныхПолей(); КонецЕсли; - Возврат Конструктор.Записать(, ПараметрыЗаписи.ПараметрыЗаписи.ОбменДаннымиЗагрузка); + Возврат Конструктор.Записать( , ПараметрыЗаписи.ПараметрыЗаписи.ОбменДаннымиЗагрузка); КонецФункции @@ -376,7 +375,7 @@ ОписаниеКолонок = ОписаниеКолонок(КолонкиМакета, ОписанияТипов); ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, ОписаниеКолонок); ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных; - + ТаблицаЗначений = НоваяТаблица(ОписаниеКолонок); ПараметрыЗагрузки = Новый Структура; @@ -407,7 +406,7 @@ КонецЦикла; Если ТипЗнч(ОписанияТипов) = Тип("Структура") Тогда - ОписанияТипов = ЮТОбщий.ВСоответствие(ОписанияТипов, "Ключ", "Значение"); + ОписанияТипов = ЮТКоллекции.ВСоответствие(ОписанияТипов, "Ключ", "Значение"); КонецЕсли; ЗагружаемыеКолонки = Новый Массив(); @@ -555,7 +554,7 @@ ОписаниеКолонки.Менеджер = ЮТОбщий.Менеджер(ОписаниеКолонки.ОписаниеОбъектаМетаданных); ОписаниеКолонки.КлючТипаЗначения = ЮТТипыДанныхСлужебный.ИдентификаторТипа(ТипЗначения); КонецЕсли; - + КонецПроцедуры #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 7c8b37634..a61dfa481 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -36,12 +36,12 @@ КонецФункции // Создает новый объект и заполняет его данными -// +// // Параметры: // Менеджер - Произвольный // Данные - Структура - Данные заполнения объекта // ДополнительныеСвойства - Структура - Дополнительные свойства объекта -// +// // Возвращаемое значение: // Произвольный - Созданный объект Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства = Неопределено) Экспорт @@ -84,7 +84,7 @@ Процедура Удалить(Знач Ссылки) Экспорт Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда - Ссылки = ЮТОбщий.ЗначениеВМассиве(Ссылки); + Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки); КонецЕсли; СсылочныеТипы = ЮТОбщий.ОписаниеТиповЛюбаяСсылка(); @@ -148,7 +148,7 @@ Иначе ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя); КонецЕсли; - Менеджер = Новый (ИмяТипаМенеджера); + Менеджер = Новый(ИмяТипаМенеджера); Объект = СоздатьОбъект(Менеджер, ОписаниеТипа, РеквизитыЗаполнения); @@ -179,7 +179,7 @@ Возврат Таблица; КонецЕсли; - Реквизиты = СтрСоединить(ЮТОбщий.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ","); + Реквизиты = СтрСоединить(ЮТКоллекции.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ","); Результат = Новый Массив(Таблица.Количество()); Для Инд = 0 По Таблица.Количество() - 1 Цикл @@ -242,8 +242,8 @@ #Область СлужебныеПроцедурыИФункции // Создать объект. -// -// Параметры: ОписаниеМенеджера - +// +// Параметры: ОписаниеМенеджера - // См. ОписаниеМенеджера // Менеджер - Произвольный - Менеджер // ОписаниеТипа - см. ЮТМетаданные.ОписаниеОбъектаМетаданных @@ -286,11 +286,11 @@ КонецФункции // Записать объект. -// +// // Параметры: // Объект - Произвольный - Объект // ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи -// +// // Возвращаемое значение: // ЛюбаяСсылка Функция ЗаписатьОбъект(Объект, ПараметрыЗаписи) @@ -329,9 +329,9 @@ Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных) АнглийскийЯзык = ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык(); - ИмяТипаДокумент = ?(АнглийскийЯзык,"Document","Документ"); - ИмяРеквизитаКод = ?(АнглийскийЯзык,"Code","Код"); - ИмяРеквизитаНаименование = ?(АнглийскийЯзык,"Description","Наименование"); + ИмяТипаДокумент = ?(АнглийскийЯзык, "Document", "Документ"); + ИмяРеквизитаКод = ?(АнглийскийЯзык, "Code", "Код"); + ИмяРеквизитаНаименование = ?(АнглийскийЯзык, "Description", "Наименование"); ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа; Если ОписаниеТипа.Имя = ИмяТипаДокумент Тогда @@ -345,13 +345,13 @@ Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаКод) И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаКод].Обязательный - И Не ЗначениеЗаполнено(Объект.Код) Тогда + И НЕ ЗначениеЗаполнено(Объект.Код) Тогда Объект.УстановитьНовыйКод(); КонецЕсли; Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаНаименование) И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование].Обязательный - И Не ЗначениеЗаполнено(Объект.Наименование) Тогда + И НЕ ЗначениеЗаполнено(Объект.Наименование) Тогда Объект.Наименование = ЮТТестовыеДанные.СлучайнаяСтрока(); КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 9ff55fdc0..92d1d41fb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -26,14 +26,14 @@ // Параметры: // Имя - Строка - Имя набора тестов // ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция ДобавитьТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт ИсполняемыеСценарии = СценарииМодуля(); - Если Не ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда + Если НЕ ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии"; КонецЕсли; @@ -54,11 +54,11 @@ // Регистрирует тест, исполняемый в контекстах, в которых доступен тестовый модуль. // Например -// +// // * Если модуль с тестами клиент-серверный, то тест будет вызван и на клиенте и на сервере. // * Если клиентский, то только на клиенте. // * Если клиент обычное приложение, то только при запуске в режиме обычного приложения. -// +// // Параметры: // ИмяТестовогоМетода - Строка - Имя тестового метода // ПредставлениеТеста - Строка - Представление теста @@ -75,7 +75,7 @@ ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор); ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор); - Если Не (ЭтоИсполняемыеСценарии Или ЭтоТестовыйНабор) Тогда + Если НЕ (ЭтоИсполняемыеСценарии ИЛИ ЭтоТестовыйНабор) Тогда ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор"; КонецЕсли; @@ -91,12 +91,12 @@ КонецФункции // Регистрирует тест исполняемый на клиенте. -// +// // Параметры: // ИмяТестовогоМетода - Строка - Имя тестового метода // ПредставлениеТеста - Строка - Представление теста // ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт @@ -107,12 +107,12 @@ КонецФункции // Регистрирует тест исполняемый на сервере. -// +// // Параметры: // ИмяТестовогоМетода - Строка - Имя тестового метода // ПредставлениеТеста - Строка - Представление теста // ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт @@ -126,11 +126,11 @@ КонецФункции // Устанавливает настройку выполнения тестового метода. -// +// // Параметры: // ИмяПараметра - Строка -// Значение - Произвольный - Значение настройки -// +// Значение - Произвольный - Значение настройки +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция НастройкаИсполнения(ИмяПараметра, Значение) Экспорт @@ -148,10 +148,10 @@ КонецФункции // Устанавливает настройку выполнения тестового метода в транзакции. -// +// // Параметры: // ВыполнятьВТранзакции - Булево -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция ВТранзакции(ВыполнятьВТранзакции = Истина) Экспорт @@ -164,15 +164,15 @@ // Устанавливает настройку удаления созданных тестовых данных // В отличии от использования транзакции: -// +// // * Умеет работать с данными созданными на клиенте // * Только удаляет созданные данные и не откатывает изменения объектов // * Работает с данными созданными через API работы с тестовыми данными // * Удаляет данные созданные вне теста (в обработчиках событий, например, ПередВсемиТестами и ПередТестовымНабором) -// +// // Параметры: // УдалятьСозданныеДанные - Булево -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция УдалениеТестовыхДанных(УдалятьСозданныеДанные = Истина) Экспорт @@ -184,10 +184,10 @@ КонецФункции // Устанавливает настройку переопределения обработчика события Перед... -// +// // Параметры: // ВыполнитьПеред - Строка - Имя обработчика события, который будет выполнен вместо основного -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция Перед(ВыполнитьПеред = "") Экспорт @@ -199,10 +199,10 @@ КонецФункции // Устанавливает настройку переопределения обработчика события После... -// +// // Параметры: // ВыполнитьПосле - Строка - Имя обработчика события, который будет выполнен вместо основного -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция После(ВыполнитьПосле = "") Экспорт @@ -214,10 +214,10 @@ КонецФункции // Устанавливает параметры вызова теста. -// +// // * Если метод вызывается первый раз, то он устанавливает параметры теста. // * Если второй и последующие, то добавляет новый тест с параметрами. -// +// // Параметры: // Параметр1 - Произвольный // Параметр2 - Произвольный @@ -229,30 +229,30 @@ // Параметр8 - Произвольный // Параметр9 - Произвольный // Параметр10 - Произвольный -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания -// +// // Примеры: -// +// // ЮТТесты.ДобавитьТест("Тест1").СПараметрами(1, 2); // Будет зарегистрирован один тест с параметрами 1, 2 // ЮТТесты.ДобавитьТест("Тест1") // .СПараметрами(1) // .СПараметрами(2); // Будет зарегистрировано два теста, первый с параметром 1 и второй с параметром 2 -// +// //@skip-check method-too-many-params Функция СПараметрами(Параметр1 = "_!%*", - Параметр2 = "_!%*", - Параметр3 = "_!%*", - Параметр4 = "_!%*", - Параметр5 = "_!%*", - Параметр6 = "_!%*", - Параметр7 = "_!%*", - Параметр8 = "_!%*", - Параметр9 = "_!%*", - Параметр10 = "_!%*") Экспорт - - Параметры = ЮТОбщий.ЗначениеВМассиве(Параметр1, + Параметр2 = "_!%*", + Параметр3 = "_!%*", + Параметр4 = "_!%*", + Параметр5 = "_!%*", + Параметр6 = "_!%*", + Параметр7 = "_!%*", + Параметр8 = "_!%*", + Параметр9 = "_!%*", + Параметр10 = "_!%*") Экспорт + + Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр1, Параметр2, Параметр3, Параметр4, @@ -272,7 +272,7 @@ КонецЕсли; Если Контекст.ТекущийЭлемент.Параметры <> Неопределено Тогда - НоваяНастройка = ЮТОбщий.СкопироватьСтруктуру(Контекст.ТекущийЭлемент); + НоваяНастройка = ЮТКоллекции.СкопироватьСтруктуру(Контекст.ТекущийЭлемент); ДобавитьТестВНабор(Контекст, НоваяНастройка); КонецЕсли; @@ -286,7 +286,7 @@ // Регистрирует тест. // Deprecate -// +// // Параметры: // ИмяТестовогоМетода - Строка - Имя тестового метода // ПредставлениеТеста - Строка - Представление теста @@ -304,12 +304,12 @@ // Регистрирует тест вызываемый на клиенте. // Deprecate -// +// // Параметры: // ИмяТестовогоМетода - Строка - Имя тестового метода // ПредставлениеТеста - Строка - Представление теста // ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция ТестКлиент(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт @@ -321,12 +321,12 @@ // Регистрирует тест вызываемый на сервере. // Deprecate -// +// // Параметры: // ИмяТестовогоМетода - Строка - Имя тестового метода // ПредставлениеТеста - Строка - Представление теста // ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция ТестСервер(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт @@ -338,11 +338,11 @@ // Создает и регистрирует набор, в который будут добавляться последующие тесты. // Deprecate -// +// // Параметры: // Имя - Строка - Имя набора тестов // ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми -// +// // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания Функция ТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт @@ -374,7 +374,7 @@ КонецПроцедуры // Описание сценариев модуля -// +// // Возвращаемое значение: // Структура - см. ИсполняемыеСценарии Функция СценарииМодуля() Экспорт @@ -388,10 +388,10 @@ #Область СлужебныеПроцедурыИФункции // Исполняемые сценарии. -// +// // Параметры: // МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// +// // Возвращаемое значение: // Структура - Исполняемые сценарии: // * ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы модуля @@ -413,7 +413,7 @@ Функция КонтекстыВызоваКлиента() Режимы = ЮТФабрика.КонтекстыВызова(); - Возврат ЮТОбщий.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение); + Возврат ЮТКоллекции.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение); КонецФункции @@ -485,7 +485,7 @@ Контекст.Вставить("ТекущийЭлемент", Набор); ЮТКонтекст.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст); - + КонецПроцедуры #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 1bc64876a..d2cce31b5 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -21,17 +21,17 @@ #Область УтвержденияBDD // Инициализирует модуль для проверки утверждений. -// +// // * Запоминает проверяемое значение. // * Запоминает описание. // * Сбрасывает настройки предыдущих утверждений. -// +// // Утверждения формируются методами этого модуля. -// +// // Параметры: // ПроверяемоеЗначение - Произвольный - Проверяемое фактическое значение // Сообщение - Строка - Описание проверки, которое будет выведено при возникновении ошибки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания // Примеры @@ -52,11 +52,11 @@ КонецФункции // Запоминает описание метода (имя и параметры) для последующей проверки. -// +// // Параметры: // ИмяМетода - Строка - Наименование метода // ПараметрыМетода - Массив из Произвольный - Параметры вызываемого метода -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт @@ -75,10 +75,10 @@ КонецФункции // Добавляет параметр метода для последующего вызова метода и проверки. -// +// // Параметры: // ЗначениеПараметра - Произвольный - Параметр вызываемого метода -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Параметр(Знач ЗначениеПараметра) Экспорт @@ -90,7 +90,7 @@ КонецЕсли; Если Контекст.ПараметрыМетода = Неопределено Тогда - Контекст.ПараметрыМетода = ЮТОбщий.ЗначениеВМассиве(ЗначениеПараметра); + Контекст.ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(ЗначениеПараметра); Иначе Контекст.ПараметрыМетода.Добавить(ЗначениеПараметра); КонецЕсли; @@ -100,10 +100,10 @@ КонецФункции // Устанавливает описание проверяемого объекта. -// +// // Параметры: // Представление - Строка - Представление -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеющееПредставление(Представление) Экспорт @@ -114,15 +114,15 @@ КонецФункции // Проверяет наличие свойства и запоминает его для последующих проверок. -// +// // Важно, следующие проверки будут относится к этому свойству. // Для переключения на проверки объекта можно воспользоваться методом см. Объект. -// +// // Параметры: // ИмяСвойства - Строка - Наименование свойства объекта. // Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Свойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -141,13 +141,13 @@ КонецФункции // Проверяет отсутствие свойства основного объекта. -// А также сбрасывает ранее установленное проверяемое свойство (см. Свойство). -// +// А также сбрасывает ранее установленное проверяемое свойство (см. Свойство). +// // Параметры: // ИмяСвойства - Строка - Наименование свойства объекта. // Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -165,14 +165,14 @@ КонецФункции // Проверяет наличие элемента с указанным индексом и позиционируется на нем для последующих проверок. -// +// // Важно, следующие проверки будут относится к этому элементу. // Для переключения на проверки объекта можно воспользоваться методом см. Объект. -// +// // Параметры: // Индекс - Число - Индекс элемента коллекции // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Элемент(Знач Индекс, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -182,7 +182,7 @@ КонецФункции // Используется после вызова метода см. Свойство, для переключения с ранее указанного свойства на объект. -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Объект() Экспорт @@ -200,7 +200,7 @@ // ИмяСвойства - Строка - Наименование свойства объекта. // Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -212,12 +212,12 @@ // Проверяет отсутствие свойства у объекта/его свойства. // В отличии от метода см. НетСвойства не сбрасывает позиционирование проверки. -// +// // Параметры: // ИмяСвойства - Строка - Наименование свойства объекта. // Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -228,11 +228,11 @@ КонецФункции // Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства). -// +// // Параметры: // ОжидаемоеЗначение - Структура - Проверяемый объект должен иметь свойства указанные в параметре // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетСвойстваРавные(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -248,10 +248,10 @@ // Проверяет установленное значение Контекста (или его свойство) на равенство `Истина)`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоИстина(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -265,10 +265,10 @@ // Проверяет установленное значение Контекста (или его свойство)на НЕ равенство `Истина`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоНеИстина(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -282,10 +282,10 @@ // Проверяет установленное значение Контекста (или его свойство) на равенство `Ложь`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -299,10 +299,10 @@ // Проверяет установленное значение Контекста (или его свойство) на НЕ равенство `Ложь`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоНеЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -315,14 +315,14 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на равенство ожидаемому. -// +// // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // Для сериализуемых объектов проверяется равенство по значению. -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) равно этому значению // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -334,14 +334,14 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на НЕ равенство ожидаемому. -// +// // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения // Для сериализуемых значений проверяется равенство по значению -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ равно этому значению // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -353,11 +353,11 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство), оно должно быть больше ожидаемого. -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -368,11 +368,11 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство), оно должно быть больше или равно ожидаемому. -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения или равно ему // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -383,11 +383,11 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше ожидаемого. -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -398,11 +398,11 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше или равно ожидаемому. -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения или равно ему // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -413,10 +413,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на "заполненность" (обертка для `ЗначениеЗаполнено`). -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -427,10 +427,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на "не заполненность" (обертка для `ЗначениеЗаполнено`) -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -441,10 +441,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на "существование", т.е. отличие от `Null` и `Неопределено`. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Существует(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -457,10 +457,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на "не существование", т.е. оно равно `Null` или `Неопределено`. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеСуществует(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -473,10 +473,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) не равенство `Неопределено`. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -489,10 +489,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на не равенство `Неопределено`. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоНеНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -505,10 +505,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на равенство `Null`. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоNull(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -521,10 +521,10 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на не равенство `Null`. -// +// // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЭтоНеNull(Знач ОписаниеПроверки = Неопределено) Экспорт @@ -537,11 +537,11 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на соответствие переданному типу. -// +// // Параметры: // ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) имеет данный тип // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -552,11 +552,11 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на несоответствие переданному типу. -// +// // Параметры: // ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -567,9 +567,9 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. -// +// // Проверка поддерживается для следующих типов проверяемого значения: -// +// // - Строка - по вхождению // - Массив - по наличию равного элемента // - Структура - по наличию равного значения @@ -579,14 +579,14 @@ // - ФиксированнаяСтруктура - по наличию равного значения // - ФиксированноеСоответствие - по наличию равного значения // - Произвольный итерируемый объект для проверки на соответствие предикату -// +// // При сравнении также проверяется совпадение типов -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) содержит указанное значение // - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -602,9 +602,9 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. -// -// Проверка поддерживается для следующих типов проверяемого значения: -// +// +// Проверка поддерживается для следующих типов проверяемого значения: +// // - Строка - по отсутствию вхождению // - Массив - по отсутствию равного элемента // - Структура - по отсутствию равного значения @@ -614,14 +614,14 @@ // - ФиксированнаяСтруктура - по отсутствию равного значения // - ФиксированноеСоответствие - по отсутствию равного значения // - Произвольный итерируемый объект для проверки на соответствие предикату -// +// // При сравнении также проверяется совпадение типов -// +// // Параметры: // ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ содержит указанное // - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -667,8 +667,8 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции. -// -// Проверка поддерживается для следующих типов проверяемого значения: +// +// Проверка поддерживается для следующих типов проверяемого значения: // - Строка // - Массив // - Структура @@ -678,11 +678,11 @@ // - ФиксированнаяСтруктура // - ФиксированноеСоответствие // - ТаблицаЗначения -// +// // Параметры: // ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетДлину(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -701,8 +701,8 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции. -// -// Проверка поддерживается для следующих типов проверяемого значения: +// +// Проверка поддерживается для следующих типов проверяемого значения: // - Строка // - Массив // - Структура @@ -712,11 +712,11 @@ // - ФиксированнаяСтруктура // - ФиксированноеСоответствие // - ТаблицаЗначения -// +// // Параметры: // ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетДлинуБольше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -735,8 +735,8 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции. -// -// Проверка поддерживается для следующих типов проверяемого значения: +// +// Проверка поддерживается для следующих типов проверяемого значения: // - Строка // - Массив // - Структура @@ -746,11 +746,11 @@ // - ФиксированнаяСтруктура // - ФиксированноеСоответствие // - ТаблицаЗначения -// +// // Параметры: // ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетДлинуМеньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -769,8 +769,8 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции, которые не должны совпадать с указанным значением. -// -// Проверка поддерживается для следующих типов проверяемого значения: +// +// Проверка поддерживается для следующих типов проверяемого значения: // - Строка // - Массив // - Структура @@ -780,11 +780,11 @@ // - ФиксированнаяСтруктура // - ФиксированноеСоответствие // - ТаблицаЗначения -// +// // Параметры: // ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) не имеет указанную дину или размер // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеИмеетДлину(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт @@ -805,12 +805,12 @@ #Область ПроверкаМетодов // Проверяет установленный для проверки метод Контекста на то, что метод упадет по исключению, далее текст исключения проверяется на ожидаемый. -// +// // Параметры: // ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать данный текст // ОписаниеПроверки - Строка - Описание конкретной проверки // ВТранзакции - Булево - Вызов метода выполняется в трананзакции -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ВыбрасываетИсключение(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено, ВТранзакции = Ложь) Экспорт @@ -824,15 +824,15 @@ ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); КонецПопытки; - Если Не Результат.ИсключениеВозникло Тогда + Если НЕ Результат.ИсключениеВозникло Тогда ТекстОшибки = СтрШаблон("ожидали, что метод `%1` вызовет исключение `%2`, но это не так.", Контекст.ИмяМетода, ОжидаемоеЗначение); ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); ИначеЕсли СтрНайти(Результат.ТекстИсключения, ОжидаемоеЗначение) = 0 Тогда ТекстОшибки = СтрШаблон("ожидали, что метод `%1` вызовет исключение `%2`, но получили `%3`.", - Контекст.ИмяМетода, - ОжидаемоеЗначение, - Результат.ТекстИсключения); + Контекст.ИмяМетода, + ОжидаемоеЗначение, + Результат.ТекстИсключения); ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); КонецЕсли; @@ -843,12 +843,12 @@ // Проверяет установленный для проверки метод Контекста на то, что метод не упадет по исключению // или упадет по исключению текст которого не содержит ожидаемый. -// +// // Параметры: // ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке НЕ будет содержать данный текст // ОписаниеПроверки - Строка - Описание конкретной проверки // ВТранзакции - Булево - Вызов метода выполняется в трананзакции -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НеВыбрасываетИсключение(Знач ОжидаемоеЗначение = Неопределено, Знач ОписаниеПроверки = Неопределено, ВТранзакции = Ложь) Экспорт @@ -879,12 +879,12 @@ КонецФункции // Проверяет, что установленное значение Контекста (или его свойство) имеет указанный экспортный метод. -// -// +// +// // Параметры: // ИмяМетода - Строка - Имя метода, наличие которого нужно проверить // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетМетод(ИмяМетода, ОписаниеПроверки = Неопределено) Экспорт @@ -894,7 +894,7 @@ Модуль = ПроверяемоеЗначение(Контекст); Результат = ЮТОбщий.МетодОбъектаСуществует(Модуль, ИмяМетода); - Если Не Результат Тогда + Если НЕ Результат Тогда Сообщение = СтрШаблон("имеет метод `%1`", ИмяМетода); СгенерироватьОшибкуСравнения(Сообщение, Модуль, ИмяМетода); КонецЕсли; @@ -905,13 +905,13 @@ #КонецОбласти // Проверяет установленное значение Контекста (или его свойство), ожидается что оно начинается на указанное значение. -// +// // При этом проверяемое значение должно быть строкой. -// +// // Параметры: // СтрокаПоиска - Строка - Строка поиска // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция НачинаетсяС(СтрокаПоиска, ОписаниеПроверки = Неопределено) Экспорт @@ -935,13 +935,13 @@ КонецФункции // Проверяет установленное значение Контекста (или его свойство), ожидается что оно заканчивается на указанное значение. -// +// // При этом проверяемое значение должно быть строкой. -// +// // Параметры: // СтрокаПоиска - Строка - Строка поиска // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЗаканчиваетсяНа(СтрокаПоиска, ОписаниеПроверки = Неопределено) Экспорт @@ -965,14 +965,14 @@ КонецФункции // Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// +// // Проверяемое значение может находится на границе интервала. -// +// // Параметры: // НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения // ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция МеждуВключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт @@ -985,14 +985,14 @@ КонецФункции // Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// +// // Проверяемое значение не может находится на границе интервала. -// +// // Параметры: // НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения // ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция МеждуИсключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт @@ -1005,14 +1005,14 @@ КонецФункции // Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// +// // Проверяемое значение может находится на начальной границе интервала. -// +// // Параметры: // НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения // ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция МеждуВключаяНачалоГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт @@ -1025,14 +1025,14 @@ КонецФункции // Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// +// // Проверяемое значение может находится на конечной границе интервала. -// +// // Параметры: // НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения // ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция МеждуВключаяОкончаниеГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт @@ -1045,11 +1045,11 @@ КонецФункции // Проверяет каждый элемент установленного значения (или его свойства), все элементы должны иметь указанное свойство. -// +// // Параметры: // ИмяСвойства - Строка // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция КаждыйЭлементСодержитСвойство(ИмяСвойства, ОписаниеПроверки = Неопределено) Экспорт @@ -1072,14 +1072,14 @@ КонецФункции -// Проверяет каждый элемент установленного значения (или его свойства), +// Проверяет каждый элемент установленного значения (или его свойства), // все элементы должны иметь указанное свойство, которое равно ожидаемому значению. -// +// // Параметры: // ИмяСвойства - Строка // ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция КаждыйЭлементСодержитСвойствоСоЗначением(ИмяСвойства, ОжидаемоеЗначение, ОписаниеПроверки = Неопределено) Экспорт @@ -1112,11 +1112,11 @@ КонецФункции // Проверяет элементы установленного значения (или его свойства), хотя бы один из них должен иметь указанное свойство. -// +// // Параметры: // ИмяСвойства - Строка // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЛюбойЭлементСодержитСвойство(ИмяСвойства, ОписаниеПроверки = Неопределено) Экспорт @@ -1145,14 +1145,14 @@ КонецФункции -// Проверяет элементы установленного значения (или его свойства), +// Проверяет элементы установленного значения (или его свойства), // хотя бы один из них должен иметь указанное свойство, которое равно ожидаемому значению. -// +// // Параметры: // ИмяСвойства - Строка // ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства // ОписаниеПроверки - Строка - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЛюбойЭлементСодержитСвойствоСоЗначением(ИмяСвойства, ОжидаемоеЗначение, ОписаниеПроверки = Неопределено) Экспорт @@ -1196,13 +1196,13 @@ // Проверяет установленное значение (или его свойства) на соответствие утверждениям предиката. // см. ЮТест.Предикат -// +// // Параметры: // Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить // - см. ЮТФабрика.ВыражениеПредиката // - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция СоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт @@ -1223,16 +1223,16 @@ КонецФункции -// Проверяет каждый элемент установленного значения (или его свойства), +// Проверяет каждый элемент установленного значения (или его свойства), // все элементы должны соответствовать утверждениям предиката. // см. ЮТест.Предикат -// +// // Параметры: // Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить // - см. ЮТФабрика.ВыражениеПредиката // - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция КаждыйЭлементСоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт @@ -1256,16 +1256,16 @@ КонецФункции -// Проверяет элементы установленного значения (или его свойства), +// Проверяет элементы установленного значения (или его свойства), // хотя бы один из них должен соответствовать утверждениям предиката. // см. ЮТест.Предикат -// +// // Параметры: // Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить // - см. ЮТФабрика.ВыражениеПредиката // - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки -// +// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция ЛюбойЭлементСоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт @@ -1313,7 +1313,7 @@ КонецПроцедуры // Обработчик события "ПередКаждымТестом" -// +// // Параметры: // ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт @@ -1329,7 +1329,7 @@ #Область Контекст // Контекст. -// +// // Возвращаемое значение: // см. НовыйКонтекстУтверждения Функция Контекст() Экспорт @@ -1340,10 +1340,10 @@ КонецФункции // Инициализирует контекст утверждений -// +// // Параметры: // ПроверяемоеЗначение - Произвольный - Проверяемое значение -// +// // Возвращаемое значение: // Структура - контекст утверждений: // * ОбъектПроверки - см. ЮТФабрика.ОписаниеПроверяемогоЗначения @@ -1501,11 +1501,11 @@ Результат = Ложь; ТипЗначения = ТипЗнч(Значение); - Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("ФиксированнаяСтруктура") Тогда + Если ТипЗначения = Тип("Структура") ИЛИ ТипЗначения = Тип("ФиксированнаяСтруктура") Тогда Результат = Значение.Свойство(Свойство); - ИначеЕсли ТипЗначения = Тип("Соответствие") Или ТипЗначения = Тип("ФиксированноеСоответствие") Тогда + ИначеЕсли ТипЗначения = Тип("Соответствие") ИЛИ ТипЗначения = Тип("ФиксированноеСоответствие") Тогда Для Каждого КлючЗначение Из Значение Цикл @@ -1560,7 +1560,7 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТУтверждения.ВызватьМетод"); #Иначе - Если Не ЗначениеЗаполнено(ИмяМетода) Тогда + Если НЕ ЗначениеЗаполнено(ИмяМетода) Тогда ВызватьИсключение "ИмяМетода не заполнено в контексте. Воспользуйтесь предварительно методом интерфейса `Метод(ИмяМетода)`"; КонецЕсли; @@ -1700,7 +1700,7 @@ Сообщение = "не " + Сообщение; КонецЕсли; - Если Не Результат Тогда + Если НЕ Результат Тогда СгенерироватьОшибкуСравнения(Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение); КонецЕсли; @@ -1736,16 +1736,16 @@ Результат = Результат И ПроверяемоеЗначение < ОкончаниеИнтервала; КонецЕсли; - Если Не Результат Тогда + Если НЕ Результат Тогда Интервал = СтрШаблон("%1%2; %3%4", - ?(ВключаяНачало, "[", "("), - НачалоИнтервала, - ОкончаниеИнтервала, - ?(ВключаяОкончание, "]", ")")); + ?(ВключаяНачало, "[", "("), + НачалоИнтервала, + ОкончаниеИнтервала, + ?(ВключаяОкончание, "]", ")")); Сообщение = "находится в интервале " + Интервал; СгенерироватьОшибкуСравнения(Сообщение, ПроверяемоеЗначение, Интервал); КонецЕсли; - + КонецПроцедуры Процедура ПроверитьЗаполненностьЗначения(Контекст, Значение, Описание) @@ -1758,7 +1758,7 @@ Процедура ОбъектыРавны(Объект, ОбъектЭталон) - Ключи = ЮТОбщий.ВыгрузитьЗначения(ОбъектЭталон, "Ключ"); + Ключи = ЮТКоллекции.ВыгрузитьЗначения(ОбъектЭталон, "Ключ"); ЭтоСоответствие = ТипЗнч(Объект) = Тип("Соответствие") ИЛИ ТипЗнч(Объект) = Тип("ФиксированноеСоответствие"); ЭтоСтруктура = ТипЗнч(Объект) = Тип("Структура") ИЛИ ТипЗнч(Объект) = Тип("ФиксированнаяСтруктура"); @@ -1777,7 +1777,7 @@ Для Каждого Ключ Из Ключи Цикл - Если Не ЭтоСоответствие И (Не СтруктураОбъекта.Свойство(Ключ) Или СтруктураОбъекта[Ключ] = ЗначениеОтсутствующегоРеквизита) Тогда + Если НЕ ЭтоСоответствие И (НЕ СтруктураОбъекта.Свойство(Ключ) ИЛИ СтруктураОбъекта[Ключ] = ЗначениеОтсутствующегоРеквизита) Тогда Сообщение = СтрШаблон("не содержат свойство '%1'", Ключ); СгенерироватьОшибкуСравнения(Сообщение, СтруктураОбъекта, ОбъектЭталон); КонецЕсли; @@ -1826,7 +1826,7 @@ // Вызывает ошибку проверки утверждений // При этом сохраняет в контекст состояние, для дальнейшей обработки -// +// // Параметры: // Сообщение - Строка // ПроверяемоеЗначение - Произвольный @@ -1860,16 +1860,16 @@ ОбработатьРезультатПроверкиПредиката(Результат); КонецПроцедуры - + Процедура ОбработатьРезультатПроверкиПредиката(Результат) Если НЕ Результат.Успешно Тогда Для Каждого Сообщение Из Результат.Сообщения Цикл - + Если ТипЗнч(Сообщение) = Тип("Структура") Тогда ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение); - + ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибок.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение); ВызватьИсключение ТекстИсключения; Иначе @@ -1921,5 +1921,5 @@ КонецПроцедуры #КонецОбласти - + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 4d8b6bdcc..0bc41543d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -42,7 +42,7 @@ КонецФункции // Доступные параметры (настройки) исполнения тестов -// +// // Возвращаемое значение: // ФиксированнаяСтруктура - Параметры исполнения теста: // * ВТранзакции - Строка - Тест должен выполняться в транзакции @@ -65,7 +65,7 @@ // КонтекстыИсполнения // Возвращает перечисление возможных контекстов исполнения тестов -// +// // Возвращаемое значение: // ФиксированнаяСтруктура - Контексты исполнения: // * Клиент - Строка @@ -82,7 +82,7 @@ КонецФункции // Возвращает перечисление возможных статусов выполнения теста, жизненный цикл теста -// +// // Возвращаемое значение: // ФиксированнаяСтруктура - Статусы исполнения теста: // * Ожидание- Строка - Тест не выполнялся @@ -109,7 +109,7 @@ КонецФункции // Типы ошибок. -// +// // Возвращаемое значение: // ФиксированнаяСтруктура - Типы возможных ошибок: // * ТестНеРеализован - Строка @@ -156,7 +156,7 @@ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен)); ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен)); - Возврат ЮТОбщий.ВСтруктуру(ТипыОшибок, "Ключ"); + Возврат ЮТКоллекции.ВСтруктуру(ТипыОшибок, "Ключ"); КонецФункции @@ -176,16 +176,16 @@ #Область СтруктурыДанных // Описание тестового модуля. -// +// // Параметры: // МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // НаборыТестов - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора -// +// // Возвращаемое значение: // Структура - Описание тестового модуля: // * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора -// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки +// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки // * НастройкиВыполнения- Структура - Настройки исполнения теста Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт @@ -205,7 +205,7 @@ // Параметры: // Имя - Строка - Имя набора // ТегиСтрокой - Строка - Теги набора -// +// // Возвращаемое значение: // Структура - Описание тестового набора: // * Имя - Строка - Имя набора @@ -236,7 +236,7 @@ // Представление - Строка - Представление, краткое описание теста // КонтекстыВызова - Массив из Строка - Контексты исполнения теста // ТегиСтрокой - Строка - Теги теста -// +// // Возвращаемое значение: // Структура - Описание теста: // * Имя - Строка - Имя теста (тестового метода) @@ -269,12 +269,12 @@ // Содержит всю необходимую информацию для прогона тестов, а также данные результата // Параметры: // ТестовыйМодуль - см. ОписаниеТестовогоМодуля -// +// // Возвращаемое значение: // Структура - Описание тестового модуля: // * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки +// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки // * НастройкиВыполнения- Структура - Настройки исполнения теста Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт @@ -295,7 +295,7 @@ // Параметры: // НаборТестов - См. ОписаниеТестовогоНабора // ТестовыйМодуль - См. ОписаниеТестовогоМодуля -// +// // Возвращаемое значение: // Структура - Описание исполняемого набора тестов: // * Имя - Строка - Имя набора @@ -305,7 +305,7 @@ // * Режим - Строка - Режим исполнения набора, см. КонтекстыВызова // * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора, структуру тестов см. ОписаниеИсполняемогоТеста -// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск) +// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск) // * ДатаСтарта - Число - Дата запуска набора // * Длительность - Число - Продолжительность выполнения набора // * НастройкиВыполнения - Структура - Настройки исполнения теста @@ -317,7 +317,7 @@ Описание.Вставить("Имя", НаборТестов.Имя); Описание.Вставить("Представление", НаборТестов.Представление); Описание.Вставить("Теги", НаборТестов.Теги); - Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(НаборТестов.Ошибки)); + Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(НаборТестов.Ошибки)); Описание.Вставить("Режим", ""); Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль); Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); @@ -334,12 +334,12 @@ // ОписаниеИсполняемогоТеста // Возвращает описание исполняемого теста // Содержит данные необходимые для выполнения прогона тестов -// +// // Параметры: // Тест - См. ОписаниеТеста // Режим - См. КонтекстыВызова // ТестовыйМодуль - См. ОписаниеТестовогоМодуля -// +// // Возвращаемое значение: // Структура - Описание исполняемого теста: // * Имя - Строка - Имя/представление теста @@ -379,9 +379,9 @@ КонецФункции // ПараметрыЗапуска -// Набор параметров подсистемы тестирования. +// Набор параметров подсистемы тестирования. // Параметры на английском, чтобы не держать несколько реализаций чтения и обработки параметров -// +// // Возвращаемое значение: // Структура - Параметры: // * ВыполнятьМодульноеТестирование - Булево - Признак необходимости выполнения тестов @@ -389,14 +389,14 @@ // * filter - см. ПараметрыФильтрации // * settings - см. НастройкиВыполнения // * closeAfterTests - Булево - Признак необходимости закрытия приложения по окончании прогона -// * reportFormat - Строка - Формат отчета о тестировании. +// * reportFormat - Строка - Формат отчета о тестировании. // Модули реализующие различные форматы отчетов собраны в подсистеме ЮТФормированиеОтчета // * logging - см. ПараметрыЛогирования // * showReport - Булево - Признак необходмости отобразить отчет в 1с по окончании тестирования // * exitCode - Строка - Путь к файлу, в который будет записан коды выхода // * ПодключатьВнешниеКомпоненты - Булево - Выполнять установку и подключение внешних компонент при старте. -// Если выключено и включен запрет синхронных вызовов, то компоненты не будут доступы в тонком клиенте. -// Если выключено и разрешены синхронные вызовы, то компоненты можно установить вручную и тогда они будут доступны на клиенте. +// Если выключено и включен запрет синхронных вызовов, то компоненты не будут доступы в тонком клиенте. +// Если выключено и разрешены синхронные вызовы, то компоненты можно установить вручную и тогда они будут доступны на клиенте. Функция ПараметрыЗапуска() Экспорт Параметры = Новый Структура; @@ -444,7 +444,7 @@ // * Имя - Строка - Имя модуля // * ПолноеИмя - Строка - Полное имя модуля // * Расширение - Строка - Имя расширения, владельца модуля -// * КлиентУправляемоеПриложение - Булево - Доступность контекста +// * КлиентУправляемоеПриложение - Булево - Доступность контекста // * КлиентОбычноеПриложение - Булево - Доступность контекста // * Сервер - Булево - Доступность контекста // * ВызовСервера - Булево - Доступность контекста @@ -467,10 +467,10 @@ // ОписаниеВозникшейОшибки // Возвращает базовую структуру ошибки -// +// // Параметры: // Сообщение - Строка -// +// // Возвращаемое значение: // Структура - Описание возникшей ошибки: // * Сообщение - Строка - Описание возникшей ошибки @@ -483,10 +483,10 @@ КонецФункции // Возвращает базовую структуру ошибки проверки факта и ожидания -// +// // Параметры: // Сообщение - Строка -// +// // Возвращаемое значение: // Структура - Описание возникшей ошибки: // * Сообщение - Строка - Описание возникшей ошибки @@ -507,15 +507,15 @@ КонецФункции // Возвращает базовую структуру ошибки пропуска теста -// +// // Параметры: // Сообщение - Строка -// +// // Возвращаемое значение: // Структура - Описание возникшей ошибки: // * Сообщение - Строка - Описание возникшей ошибки // * Стек - Строка - Стек возникшей ошибки -// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения +// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения // См. ЮТФабрика.ТипыОшибок Функция ОписаниеОшибкиПропуска(Сообщение) Экспорт @@ -527,16 +527,16 @@ КонецФункции // Описание события исполнения тестов. -// +// // Параметры: // Модуль - см. ЮТФабрика.ОписаниеТестовогоМодуля // Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов // Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста -// +// // Возвращаемое значение: // Структура - Описание события исполнения тестов: // * Модуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// * Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// * Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов // * Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста Функция ОписаниеСобытияИсполненияТестов(Модуль, Набор = Неопределено, Тест = Неопределено) Экспорт @@ -551,10 +551,10 @@ КонецФункции // Описание категория набора тестов. -// +// // Параметры: // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// +// // Возвращаемое значение: // Структура - Описание категория набора тестов: // * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля @@ -565,8 +565,8 @@ КатегорииНаборов = Новый Структура(); КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); - КатегорииНаборов.Вставить("Клиентские", Новый Массив()); - КатегорииНаборов.Вставить("Серверные", Новый Массив()); + КатегорииНаборов.Вставить("Клиентские", Новый Массив()); + КатегорииНаборов.Вставить("Серверные", Новый Массив()); КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); //@skip-check constructor-function-return-section @@ -576,15 +576,15 @@ // Формирует описание проверяемого значения. // Используется в утверждения для формирования дружелюбного сообщения об ошибке. -// +// // Параметры: // ПроверяемоеЗначение - Произвольный - Проверяемое значение -// +// // Возвращаемое значение: // Структура - Описание проверяемого значения: // * Значение - Произвольный // * Представление - Строка - Представление объекта -// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`) +// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`) // * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт @@ -598,10 +598,10 @@ КонецФункции // Описание проверки. -// +// // Параметры: // ПроверяемоеЗначение - Произвольный -// +// // Возвращаемое значение: // Структура - Описание проверки: // * ОбъектПроверки - см. ОписаниеПроверяемогоЗначения @@ -619,11 +619,11 @@ КонецФункции // Описание реквизита объекта метаданных -// +// // Параметры: // Реквизит - ОбъектМетаданных // ЭтоКлюч - Булево - Это ключевой реквизит (ссылка, измерение) -// +// // Возвращаемое значение: // Структура - Описание реквизита: // * Имя - Строка @@ -647,7 +647,7 @@ #Область КонструкторыКонтекстов // Данные контекста исполнения. -// +// // Возвращаемое значение: // Структура - Данные контекста исполнения: // * Уровень - Строка - Возможные значения см. УровниИсполнения @@ -670,10 +670,10 @@ КонецФункции // Описание результата проверки. -// +// // Параметры: // Успешно - Булево - Успешно -// +// // Возвращаемое значение: // Структура - Описание результата проверки: // * Сообщения - Массив из Произвольный @@ -689,12 +689,12 @@ КонецФункции // Выражение предиката. -// +// // Параметры: // ВидСравнения - Строка - см. ЮТПредикаты.Выражения // ИмяРеквизита - Строка - Имя реквизита // Значение - Произвольный - Значение -// +// // Возвращаемое значение: // Структура - Выражение предиката: // * ИмяРеквизита - Неопределено, Строка - Имя проверяемого реквизита @@ -719,7 +719,7 @@ // Возвращает коллекцию доступных контекстов выполнения модуля // Параметры: // Модуль - См. ОписаниеМодуля -// +// // Возвращаемое значение: // Массив из Строка - Контексты модуля, возможные значения см. КонтекстыВызова Функция КонтекстыМодуля(Модуль) Экспорт @@ -741,7 +741,7 @@ КонецЕсли; Возврат КонтекстыМодуля; - + КонецФункции // КонтекстыПриложения @@ -749,11 +749,11 @@ // Возвращаемое значение: // Массив из Строка - Контексты приложения, возможные значения см. КонтекстыВызова Функция КонтекстыПриложения() Экспорт - + #Если НЕ Клиент Тогда ВызватьИсключение "Метод получения контекстов приложения должен вызываться с клиента"; #КонецЕсли - + Контексты = КонтекстыВызова(); КонтекстыПриложения = Новый Массив(); @@ -774,7 +774,7 @@ // Возвращает контекст исполнения по контексту вызова // Параметры: // КонтекстВызова - Строка - Контекст вызова, см. ЮТФабрика.КонтекстыВызова -// +// // Возвращаемое значение: // Неопределено, Строка - Контекст исполнения Функция КонтекстИсполнения(КонтекстВызова) Экспорт @@ -800,10 +800,10 @@ КонецФункции // Формирует представление теста -// +// // Параметры: // Тест - см. ОписаниеТеста -// +// // Возвращаемое значение: // Строка - Представление теста Функция ПредставлениеТеста(Тест) Экспорт @@ -851,10 +851,10 @@ // Параметры генератора отчета. // Описывает предоставляемые модулем форматы отчетов -// +// // Возвращаемое значение: // Структура - Параметры генератора отчета: -// * Форматы - Структура - Форматы отчетов, предоставляемые модулем +// * Форматы - Структура - Форматы отчетов, предоставляемые модулем Функция ПараметрыГенератораОтчета() Экспорт Параметры = Новый Структура(); @@ -865,11 +865,11 @@ КонецФункции // Описание формата отчета. -// +// // Параметры: // Идентификатор - Строка - Уникальный идентификатор формата отчета // Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования -// +// // Возвращаемое значение: // Структура - Описание формата отчета: // * Идентификатор - Строка - Уникальный идентификатор формата отчета @@ -909,7 +909,7 @@ // - Массив из Строка - Список тестовых наборов // * paths - Неопределено - Нет фильтрации по путям // - Массив из Строка - Список путей до тестовых методов, путь может быть не полным. -// Например: +// Например: // + tests - Ищем тесты в расширении tests // + tests.ОМ_ОбщегоНазначения - Ищем тесты в модуле ОМ_ОбщегоНазначения расширения tests // + tests.ОМ_ОбщегоНазначения.ПолучитьЗначениеРеквизита - указание конкретного теста diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" index 79cb0a9f4..8be3aec28 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" @@ -39,11 +39,11 @@ КонецФункции // Отфильтровать тестовые наборы. -// +// // Параметры: // ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы // ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрика.ОписаниеМодуля -// +// // Возвращаемое значение: // Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Отфильтрованные наборы Функция ОтфильтроватьТестовыеНаборы(ТестовыеНаборы, ОписаниеМодуля) Экспорт @@ -69,7 +69,7 @@ Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда - ОписаниеИмениТеста.Контекст = ЮТОбщий.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст); + ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст); ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмом из самого теста контексты @@ -79,7 +79,7 @@ // Если было имя теста без контекста, то будет вызов во всех контекстах КонецЕсли; КонецЕсли; - + КонецЦикла; КонецЕсли; @@ -109,7 +109,7 @@ КонецЕсли; Если Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда - КонтекстыТеста = ЮТОбщий.ПересечениеМассивов(КонтекстыТеста, Контекст.Фильтр.Контексты); + КонтекстыТеста = ЮТКоллекции.ПересечениеМассивов(КонтекстыТеста, Контекст.Фильтр.Контексты); КонецЕсли; Если КонтекстыТеста.Количество() = 0 Тогда @@ -136,11 +136,11 @@ КонецФункции // Фильтр -// Конструктур фильтра поиска тестовых методов -// +// Конструктур фильтра поиска тестовых методов +// // Возвращаемое значение: // Структура - Фильтр: -// * Расширения - Структура - Имена расширений +// * Расширения - Структура - Имена расширений // * Модули - Структура - Имена модулей // * Наборы - Массив из Строка - Имена тестовых наборов // * Теги - Массив из Строка @@ -168,16 +168,16 @@ Процедура УстановитьКонтекст(ПараметрыЗапускаТестов) Экспорт Расширения = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "extensions", Новый Массив); - Модули = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "modules", Новый Массив); - Контексты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "contexts"); - Тесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив); + Модули = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "modules", Новый Массив); + Контексты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "contexts"); + Тесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив); - Теги = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив); + Теги = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив); // TODO: Подумать в каком формате задать наборы - ИмяМодуля.Набор, Набор или другой вариант - Наборы = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив); + Наборы = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив); // TODO: Обработка путей в формате: Модуль.ИмяТеста, ИмяТеста - метод, параметры, контекст // ОМ_ЮТУтверждения.Что[0: 1].Сервер, ОМ_ЮТУтверждения.Что[1: Структура].Сервер - Пути = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив); + Пути = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив); Фильтр = Фильтр(); @@ -255,7 +255,7 @@ НормализованноеЗначение = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(Значение); Результат.Вставить(НормализованноеЗначение); - + КонецЦикла; Возврат Результат; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" index 9daaa8389..445ba610b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" @@ -22,7 +22,7 @@ // Читает наборы тестов (тестовые модули) из расширений // Параметры: // ПараметрыЗапускаТестов - см. ЮТФабрика.ПараметрыЗапуска -// +// // Возвращаемое значение: // Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах Функция ЗагрузитьТесты(ПараметрыЗапускаТестов) Экспорт @@ -48,10 +48,10 @@ КонецФункции // ПрочитатьНаборТестов -// Читает набор тестов из модуля +// Читает набор тестов из модуля // Параметры: // МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// +// // Возвращаемое значение: // - Неопределено - Если это не тестовый модуль // - см. ЮТФабрика.ОписаниеТестовогоМодуля @@ -74,7 +74,7 @@ ЭтоТестовыйМодуль = Ложь; Ошибка = Неопределено; ИначеЕсли ТипОшибки = ТипыОшибок.МалоПараметров Тогда - Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ЮТОбщий.ЗначениеВМассиве(Неопределено)); + Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ЮТКоллекции.ЗначениеВМассиве(Неопределено)); ЮТОбщий.СообщитьПользователю("Используется устаревшая сигнатура метода `ИсполняемыеСценарии`, метод не должен принимать параметров."); КонецЕсли; @@ -110,15 +110,15 @@ // Проверяет, является ли модуль модулем с тестами // Параметры: // МетаданныеМодуля - Структура - Описание метаданных модуля, см. ЮТФабрика.ОписаниеМодуля -// +// // Возвращаемое значение: // Булево - Этот модуль содержит тесты Функция ЭтоТестовыйМодуль(МетаданныеМодуля) Экспорт - + Если МетаданныеМодуля.Глобальный Тогда Возврат Ложь; КонецЕсли; - + #Если Сервер Тогда Возврат ЮТОбщий.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); #КонецЕсли diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" index 256fba8a0..e51812f44 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" @@ -151,7 +151,7 @@ Данные = Новый ТаблицаЗначений(); - Колонки = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Колонки, ","); + Колонки = ЮТСтроки.РазделитьСтроку(Колонки, ","); Для Каждого Колонка Из Колонки Цикл Данные.Колонки.Добавить(Колонка); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 5850aaf04..f15bf9794 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -92,7 +92,7 @@ Данные = Элементы.ДеревоТестовОшибки.ТекущиеДанные; - Если Данные = Неопределено Или ПустаяСтрока(Данные.ОжидаемоеЗначение) И ПустаяСтрока(Данные.ФактическоеЗначение) Тогда + Если Данные = Неопределено ИЛИ ПустаяСтрока(Данные.ОжидаемоеЗначение) И ПустаяСтрока(Данные.ФактическоеЗначение) Тогда Возврат; КонецЕсли; @@ -127,7 +127,7 @@ Процедура ПерезапуститьУпавшиеТесты(Команда) СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста(); - Статусы = ЮТОбщий.ЗначениеВМассиве(СтатусыИсполненияТеста.Ошибка, СтатусыИсполненияТеста.Сломан); + Статусы = ЮТКоллекции.ЗначениеВМассиве(СтатусыИсполненияТеста.Ошибка, СтатусыИсполненияТеста.Сломан); Модули = МодулиСоответствующиеСтатусу(Статусы); ВыполнитьТестовыеМодули(Модули); @@ -223,7 +223,7 @@ КонецЦикла; Элементы.СтатистикаВыполнения.Заголовок = ПредставлениеСтатистики(ОбщаяСтатистика); - + КонецПроцедуры &НаКлиенте @@ -516,7 +516,7 @@ Процедура ВыполнитьТестовыеМодули(Модули) Если Модули.Количество() = 0 Тогда - ПоказатьПредупреждение(, "Нет тестов для запуска"); + ПоказатьПредупреждение( , "Нет тестов для запуска"); Возврат; КонецЕсли; @@ -696,7 +696,7 @@ Процедура ОбновитьДоступностьСравнения() Данные = Элементы.ДеревоТестовОшибки.ТекущиеДанные; - Элементы.Сравнить.Доступность = Данные <> Неопределено И (НЕ ПустаяСтрока(Данные.ОжидаемоеЗначение) Или НЕ ПустаяСтрока(Данные.ФактическоеЗначение)); + Элементы.Сравнить.Доступность = Данные <> Неопределено И (НЕ ПустаяСтрока(Данные.ОжидаемоеЗначение) ИЛИ НЕ ПустаяСтрока(Данные.ФактическоеЗначение)); КонецПроцедуры @@ -748,9 +748,9 @@ МедианноеВремя = Окр(Список[Цел(Список.Количество() / 2) + 1].Значение / 1000, 2); Сообщение = СтрШаблон("Количество итераций: %1 - |Общее время: %2 сек - |Среднее время: %3 сек - |Медианное время: %4 сек", ПараметрыЗамера.Замеры.Количество(), ОбщееВремя, СреднееВремя, МедианноеВремя); + |Общее время: %2 сек + |Среднее время: %3 сек + |Медианное время: %4 сек", ПараметрыЗамера.Замеры.Количество(), ОбщееВремя, СреднееВремя, МедианноеВремя); ЮТОбщий.СообщитьПользователю(Сообщение); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index 9b8f0f68e..bb385413a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,7 +34,7 @@ .ДобавитьСерверныйТест("МокированиеМетодовРегистра") .ДобавитьСерверныйТест("МокированиеМетодовОбработки") .ДобавитьТест("МокированиеЦепочкиВызовов") - ; + ; КонецПроцедуры @@ -47,9 +47,9 @@ Мокито.Обучение(Интеграция) .Когда(Интеграция.ВыполнитьЗапрос(ЛюбойПараметр, ЛюбойПараметр, ЛюбойПараметр)) - .Вернуть(1) + .Вернуть(1) .Когда(Интеграция.ВыполнитьЗапрос(Адрес, ЛюбойПараметр, ЛюбойПараметр)) - .Вернуть(2) + .Вернуть(2) .Прогон(); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Неопределено, 2), Описание + ". Кейс 1") @@ -61,9 +61,9 @@ Мокито.Обучение(Интеграция) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЛюбойПараметр)) - .Вернуть(20) + .Вернуть(20) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(Адрес, 2)) - .Вернуть(2) + .Вернуть(2) .Прогон(); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 2), Описание + ". Кейс 1") @@ -82,7 +82,7 @@ .Когда(Интеграция.ВыполнитьЗапрос(Адрес)).Вернуть(2) .Когда(Интеграция.ВыполнитьЗапрос(Адрес)).Вернуть(3) .Прогон(); - + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес), "Вызов 1").Равно(1); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес), "Вызов 2").Равно(2); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес), "Вызов 3").Равно(3); @@ -97,10 +97,8 @@ Адрес = "service.com"; Мокито.Обучение(Интеграция) - .Когда(Интеграция.ВыполнитьЗапрос(ЛюбойПараметр, ЛюбойПараметр)) - .Вернуть(1) - .Когда(Интеграция.ВыполнитьЗапрос(Адрес, 2)) - .Вернуть(10) + .Когда(Интеграция.ВыполнитьЗапрос(ЛюбойПараметр, ЛюбойПараметр)).Вернуть(1) + .Когда(Интеграция.ВыполнитьЗапрос(Адрес, 2)).Вернуть(10) .Прогон(); Интеграция.ВыполнитьЗапрос("Адрес", Неопределено); @@ -114,7 +112,7 @@ .КоличествоВызовов(Интеграция.ВыполнитьЗапрос(1, 2)).Равно(1) .КоличествоВызовов(Интеграция.ВыполнитьЗапрос(ЛюбойПараметр, ЛюбойПараметр)).Равно(3) .КоличествоВызовов(Интеграция.ВыполнитьЗапрос(Мокито.ТипизированныйПараметр(Тип("Строка")), ЛюбойПараметр)).Равно(2) - ; + ; ВызовыМетода = Мокито.Проверить(Интеграция).Вызовы("ВыполнитьЗапрос"); ЮТест.ОжидаетЧто(ВызовыМетода, "Вызовы метода ВыполнитьЗапрос") @@ -226,10 +224,10 @@ ЮТест.ОжидаетЧто(МокитоСлужебный.Настройки()) // Проверка сформированных настроек .Свойство("Перехват").ИмеетСвойство(Справочники.Встречи) - .Свойство("ТипыПерехватываемыхОбъектов") - .ИмеетДлину(2); + .Свойство("ТипыПерехватываемыхОбъектов").ИмеетДлину(2) + ; - Успешно = Справочники.Встречи.СохранитьИзменения(ЮТОбщий.ЗначениеВМассиве(Запись)); + Успешно = Справочники.Встречи.СохранитьИзменения(ЮТКоллекции.ЗначениеВМассиве(Запись)); ЮТест.ОжидаетЧто(Успешно).ЭтоИстина(); @@ -252,10 +250,8 @@ .Записать(); Мокито.Обучение(Встреча) - .Когда("УказанКорректныйПериод") - .Вернуть(Истина) - .Когда("УказанКорректныйПериод") - .Вернуть(Ложь) + .Когда("УказанКорректныйПериод").Вернуть(Истина) + .Когда("УказанКорректныйПериод").Вернуть(Ложь) .Прогон(); Объект = Встреча.ПолучитьОбъект(); @@ -264,11 +260,11 @@ .ЭтоИстина() .Что(Объект.ПроверитьЗаполнение(), "Вторая проверка") .ЭтоЛожь() - ; + ; Мокито.Проверить(Встреча) .КоличествоВызовов("УказанКорректныйПериод").Равно(2) - ; + ; КонецПроцедуры @@ -284,13 +280,10 @@ Объект2 = Встреча.ПолучитьОбъект(); Мокито.Обучение(Объект1) - .Когда("УказанКорректныйПериод") - .Вернуть(Истина) - .Когда("УказанКорректныйПериод") - .Вернуть(Ложь) - .Обучение(Объект2) - .Когда("УказанКорректныйПериод") - .Вернуть(Ложь) + .Когда("УказанКорректныйПериод").Вернуть(Истина) + .Когда("УказанКорректныйПериод").Вернуть(Ложь) + .Обучение(Объект2) + .Когда("УказанКорректныйПериод").Вернуть(Ложь) .Прогон(); ЮТест.ОжидаетЧто(Объект1.ПроверитьЗаполнение(), "Первая проверка") @@ -311,12 +304,10 @@ Мокито.Обучение(РегистрыСведений.ЦеныТоваров) .Наблюдать("ОбработкаПроверкиЗаполнения") - .Когда("ЗаполненоКорректно") - .Пропустить() - .Когда("ЗаполненоКорректно") - .ВыброситьИсключение("Цена товара не может быть отрицательной") + .Когда("ЗаполненоКорректно").Пропустить() + .Когда("ЗаполненоКорректно").ВыброситьИсключение("Цена товара не может быть отрицательной") .Прогон() - ; + ; НаборЗаписей = РегистрыСведений.ЦеныТоваров.СоздатьНаборЗаписей(); ЮТест.ОжидаетЧто(НаборЗаписей) @@ -415,12 +406,11 @@ Процедура ОшибкаПодбораРеакции() Экспорт Мокито.Обучение(Интеграция) - .Когда("ВыполнитьЗапрос") - .ВыброситьИсключение("Не установлен ответ") + .Когда("ВыполнитьЗапрос").ВыброситьИсключение("Не установлен ответ") .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров("api/versions")) - .Вернуть(200) + .Вернуть(200) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров("sessions")) - .Вернуть(200) + .Вернуть(200) .Прогон(); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("api/versions")).Равно(200); @@ -428,7 +418,7 @@ Мокито.Обучение(Интеграция, Ложь) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров("sessions")) - .Вернуть(403) + .Вернуть(403) .Прогон(); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("api/versions")).Равно(200); @@ -449,20 +439,20 @@ .Когда("ВыполнитьЗапрос") .ВыброситьИсключение("Не отработал перехват") .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, УсловиеСтруктура)) - .Вернуть(1) + . Вернуть(1) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЮТест.Предикат().Реквизит("Флаг").Равно(2))) - .Вернуть(2) + .Вернуть(2) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЮТест.Предикат().ИмеетТип("Массив").Реквизит(0).Равно(3))) - .Вернуть(3) + .Вернуть(3) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЮТест.Предикат().Равно(4))) - .Вернуть(4) + .Вернуть(4) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЮТест.Предикат().Содержит("com"), ЮТест.Предикат().Равно(4))) - .Вернуть(5) + .Вернуть(5) .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЮТест.Предикат().Содержит("org").Получить(), ЮТест.Предикат().Равно(4))) - .Вернуть(6) + .Вернуть(6) .Прогон() ; - + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, Новый Структура("Флаг", 1))) .Равно(1); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 4)) @@ -470,8 +460,8 @@ ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("service.com", 4)) .Равно(4); // Не вернет 5, потому что если несколько предиктов в условиях параметров, нужно использовать Получить ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("service.org", 4)) - .Равно(6); // - ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, ЮТОбщий.ЗначениеВМассиве(3))) + .Равно(6); // + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, ЮТКоллекции.ЗначениеВМассиве(3))) .Равно(3); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, Новый Структура("Флаг", 2))) .Равно(2); @@ -480,15 +470,15 @@ .КоличествоВызовов("ВыполнитьЗапрос").Равно(6) .КоличествоВызовов("ВыполнитьЗапрос", Мокито.МассивПараметров(ЮТест.Предикат().Содержит("ru"))).Равно(4) .КоличествоВызовов("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, Новый Структура("Флаг", 2))).Равно(1) -КонецПроцедуры - -Процедура МокированиеЦепочкиВызовов() Экспорт + КонецПроцедуры - Мокито.Обучение(Интеграция) + Процедура МокированиеЦепочкиВызовов() Экспорт + + Мокито.Обучение(Интеграция) .Когда("ВыполнитьЗапрос") - .Вернуть(1) - .Вернуть(2) - .Вернуть(3) + .Вернуть(1) + .Вернуть(2) + .Вернуть(3) .Прогон(); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("")) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" index e5f7de340..a513864d0 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,15 +21,11 @@ Процедура ИсполняемыеСценарии() Экспорт ЮТТесты - .ДобавитьТест("ДобавитьСтроку") - .ДобавитьТест("ОбъединитьВСтруктуру") - .ДобавитьТест("СформироватьСтрокуСимволов") - .ДобавитьТест("ДанныеСовпадают") .ДобавитьТест("Пауза") .ДобавитьТест("ВывестиВКонсоль") .ДобавитьСерверныйТест("Менеджер") .ДобавитьТест("ЗначениеСвойства") - ; + ; КонецПроцедуры @@ -52,88 +48,6 @@ КонецПроцедуры -Процедура ДобавитьСтроку() Экспорт - - Варианты = ЮТест.Варианты("Исходная, Дополнение, Разделитель, Результат") - .Добавить("1", "2", "+", "1+2") - .Добавить("", "2", "+", "2") - .Добавить("1", "", "+", "1") - .Добавить(Неопределено, "2", "+", "2") - .Добавить("1", "2", Неопределено, "12") - .СписокВариантов(); - - Для Каждого Вариант Из Варианты Цикл - - Результат = ЮТОбщий.ДобавитьСтроку(Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель); - - Сообщение = СтрШаблон("ДобавитьСтроку(%1, %2, %3)", Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель); - ЮТест.ОжидаетЧто(Результат, Сообщение).Равно(Вариант.Результат); - - КонецЦикла; - -КонецПроцедуры - -Процедура ОбъединитьВСтруктуру() Экспорт - - Варианты = ЮТест.Варианты("Описание, Исходная, Добавляемая, Результат") - .Добавить("Структуры без пересечения", "Строка, Число", "Дата", "Строка, Число, Дата") - .Добавить("Структуры с пересечением", "Строка, Число", "Дата, Число", "Строка, Число, Дата") - .Добавить("Добавление пустой структуры", "Строка, Число", "", "Строка, Число") - .Добавить("Добавление в пустую структуру", "", "Строка, Число", "Строка, Число") - .СписокВариантов(); - - Для Каждого Вариант Из Варианты Цикл - - Для Режим = 1 По 3 Цикл - - ИсходнаяЭтоСоответствие = Режим = 1 ИЛИ Режим = 3; - ДобавляемаяЭтоСоответствие = Режим = 2 ИЛИ Режим = 3; - - Исходная = СтруктураДляОбъединения(Вариант.Исходная, ИсходнаяЭтоСоответствие); - Добавляемая = СтруктураДляОбъединения(Вариант.Добавляемая, ДобавляемаяЭтоСоответствие); - - Результат = ЮТОбщий.ОбъединитьВСтруктуру(Исходная, Добавляемая); - - ЮТест.ОжидаетЧто(Результат, Вариант.Описание) - .Заполнено() - .ИмеетТип("Структура"); - - Для Каждого Ключ Из СтрРазделить(Вариант.Результат, ", ", Ложь) Цикл - - ЕстьКлюч = ДобавляемаяЭтоСоответствие И Добавляемая[Ключ] <> Неопределено - ИЛИ НЕ ДобавляемаяЭтоСоответствие И Добавляемая.Свойство(Ключ); - Если ЕстьКлюч Тогда - ЮТУтверждения.Свойство(Ключ).Равно(Добавляемая[Ключ]); - Иначе - ЮТУтверждения.Свойство(Ключ).Равно(Исходная[Ключ]); - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - -Процедура СформироватьСтрокуСимволов() Экспорт - - Варианты = ЮТест.Варианты("Символ, Количество, Результат") - .Добавить("1", 1, "1") - .Добавить("12", 0, "") - .Добавить("12", 2, "1212") - .СписокВариантов(); - - Для Каждого Вариант Из Варианты Цикл - - Результат = ЮТОбщий.СформироватьСтрокуСимволов(Вариант.Символ, Вариант.Количество); - ЮТест.ОжидаетЧто(Результат, СтрШаблон("%1 * %2", Вариант.Символ, Вариант.Количество)) - .Равно(Вариант.Результат); - - КонецЦикла; - -КонецПроцедуры - #Если Сервер Тогда Процедура Менеджер() Экспорт @@ -146,7 +60,7 @@ .Добавить(Тип("СправочникСсылка.Товары"), Справочники.Товары) .Добавить(ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Товары"), Справочники.Товары) .Добавить("РегистрыНакопления.Взаиморасчеты", РегистрыНакопления.Взаиморасчеты) - ; + ; Для Каждого Вариант Из Варианты.СписокВариантов() Цикл @@ -161,7 +75,7 @@ Процедура ЗначениеСвойства() Экспорт - Массив = ЮТОбщий.ЗначениеВМассиве(1, 2, 3); + Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); Структура = Новый Структура("Число, Массив", 1, Массив); Варианты = ЮТест.Варианты("Значение, Свойство, Результат") @@ -171,7 +85,7 @@ .Добавить(Массив, 1, 2) .Добавить(Структура, "Число", 1) .Добавить(Структура, "Массив[0]", 1) - ; + ; КонецПроцедуры @@ -179,63 +93,4 @@ #Область СлужебныеПроцедурыИФункции -Функция СтруктураДляОбъединения(КлючиСтрокой, Соответствие) - - Ключи = СтрРазделить(КлючиСтрокой, ", ", Ложь); - - Если Соответствие Тогда - Результат = Новый Соответствие(); - Иначе - Результат = Новый Структура(); - КонецЕсли; - - Для Каждого Ключ Из Ключи Цикл - - Если СтрСравнить(Ключ, "Число") Тогда - Значение = ЮТест.Данные().СлучайноеЧисло(); - ИначеЕсли СтрСравнить(Ключ, "Дата") Тогда - Значение = ЮТест.Данные().СлучайнаяДата(); - Иначе - Значение = ЮТест.Данные().СлучайнаяСтрока(); - КонецЕсли; - - Результат.Вставить(Ключ, Значение); - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -Процедура ДанныеСовпадают() Экспорт - - Массив = ЮТОбщий.ЗначениеВМассиве(1, 2, "3"); - Структура = Новый Структура("Строка, Число, Массив", "1", 1, Массив); - Соответствие = Новый Соответствие(); - Соответствие.Вставить("Строка", "1"); - Соответствие.Вставить(2, "Число"); - Соответствие.Вставить("Массив", Массив); - - Варианты = ЮТест.Варианты("Значение") - .Добавить(Массив) - .Добавить(Структура) - .Добавить(Соответствие) - .Добавить(Новый ФиксированныйМассив(Массив)) - .Добавить(Новый ФиксированнаяСтруктура(Структура)) - .Добавить(Новый ФиксированноеСоответствие(Соответствие)) - .СписокВариантов(); - - Для Каждого Вариант Из Варианты Цикл - - Описание = Строка(ТипЗнч(Вариант.Значение)); - - ЮТест.ОжидаетЧто( - ЮТОбщий.ДанныеСовпадают(Вариант.Значение, Вариант.Значение), - Описание) - .ЭтоИстина(); - - КонецЦикла; - -КонецПроцедуры - #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" new file mode 100644 index 000000000..dec7280aa --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -0,0 +1,103 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("ДополнитьСтруктуру") + ; + +КонецПроцедуры + +Процедура ДополнитьСтруктуру() Экспорт + + Варианты = ЮТест.Варианты("Описание, Исходная, Добавляемая, Результат") + .Добавить("Структуры без пересечения", "Строка, Число", "Дата", "Строка, Число, Дата") + .Добавить("Структуры с пересечением", "Строка, Число", "Дата, Число", "Строка, Число, Дата") + .Добавить("Добавление пустой структуры", "Строка, Число", "", "Строка, Число") + .Добавить("Добавление в пустую структуру", "", "Строка, Число", "Строка, Число") + .СписокВариантов(); + + Для Каждого Вариант Из Варианты Цикл + + Для Режим = 1 По 3 Цикл + + ИсходнаяЭтоСоответствие = Режим = 1 ИЛИ Режим = 3; + ДобавляемаяЭтоСоответствие = Режим = 2 ИЛИ Режим = 3; + + Исходная = СтруктураДляОбъединения(Вариант.Исходная, ИсходнаяЭтоСоответствие); + Добавляемая = СтруктураДляОбъединения(Вариант.Добавляемая, ДобавляемаяЭтоСоответствие); + + ЮТКоллекции.ДополнитьСтруктуру(Исходная, Добавляемая); + + Ожидание = ЮТест.ОжидаетЧто(Исходная, Вариант.Описание) + .Заполнено(); + + Для Каждого Ключ Из СтрРазделить(Вариант.Результат, ", ", Ложь) Цикл + + ЕстьКлюч = ДобавляемаяЭтоСоответствие И Добавляемая[Ключ] <> Неопределено + ИЛИ НЕ ДобавляемаяЭтоСоответствие И Добавляемая.Свойство(Ключ); + Если ЕстьКлюч Тогда + Ожидание.Свойство(Ключ).Равно(Добавляемая[Ключ]); + Иначе + Ожидание.Свойство(Ключ).Равно(Исходная[Ключ]); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция СтруктураДляОбъединения(КлючиСтрокой, Соответствие) + + Ключи = СтрРазделить(КлючиСтрокой, ", ", Ложь); + + Если Соответствие Тогда + Результат = Новый Соответствие(); + Иначе + Результат = Новый Структура(); + КонецЕсли; + + Для Каждого Ключ Из Ключи Цикл + + Если СтрСравнить(Ключ, "Число") Тогда + Значение = ЮТест.Данные().СлучайноеЧисло(); + ИначеЕсли СтрСравнить(Ключ, "Дата") Тогда + Значение = ЮТест.Данные().СлучайнаяДата(); + Иначе + Значение = ЮТест.Данные().СлучайнаяСтрока(); + КонецЕсли; + + Результат.Вставить(Ключ, Значение); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" new file mode 100644 index 000000000..81d68da77 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТКоллекции + true + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index b06a342ed..951ee04dc 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ .ДобавитьТест("Фикция_Типизированная") .ДобавитьТест("ФикцияОбязательныхПолей") .ДобавитьТест("СоздатьГруппу") - ; + ; КонецПроцедуры @@ -96,7 +96,6 @@ .Объект() .Фикция("Валюта") .Фикция("Организация") - .Провести(); #Если НЕ Клиент Тогда @@ -109,18 +108,18 @@ .Свойство("Валюта").Заполнено() .Свойство("Организация").Заполнено() .Свойство("Товары").ИмеетДлину(2) - .Свойство("Товары[0].Товар").Заполнено() - .Свойство("Товары[0].Цена").Заполнено() - .Свойство("Товары[0].Количество").Заполнено() - .Свойство("Товары[0].Сумма").Заполнено() - .Свойство("Товары[1].Товар").Заполнено() - .Свойство("Товары[1].Цена").Заполнено() - .Свойство("Товары[1].Количество").Заполнено() - .Свойство("Товары[1].Сумма").Заполнено() + .Свойство("Товары[0].Товар").Заполнено() + .Свойство("Товары[0].Цена").Заполнено() + .Свойство("Товары[0].Количество").Заполнено() + .Свойство("Товары[0].Сумма").Заполнено() + .Свойство("Товары[1].Товар").Заполнено() + .Свойство("Товары[1].Цена").Заполнено() + .Свойство("Товары[1].Количество").Заполнено() + .Свойство("Товары[1].Сумма").Заполнено() .Свойство("Проведен").ЭтоИстина() - ; + ; #КонецЕсли - + КонецПроцедуры Процедура СоздатьЗаписьРегистраСведений() Экспорт @@ -175,7 +174,7 @@ .Добавить(Тип, Тип, "По типу") .Добавить(Новый ОписаниеТипов(ИмяТипа), Тип, "По описаниею типов") .Добавить("Строка", Тип("Строка"), "Другой тип") - ; + ; Для Каждого Вариант Из Варианты.СписокВариантов() Цикл @@ -188,19 +187,19 @@ .ИмеетТип(Вариант.ОжилаемыйТип); КонецЦикла; -// + // Варианты = ЮТест.Варианты("Тип, Описание") .Добавить("Дата", "Неподходящий тип") .Добавить(Новый ОписаниеТипов("Число, Дата"), "Неподходящее описание типов") .Добавить("Неопределено", "Неопределено") .Добавить(Тип("Неопределено"), "Тип Неопределено") - ; + ; Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочник.МобильныеУстройства"); Для Каждого Вариант Из Варианты.СписокВариантов() Цикл - ЮТест.ОжидаетЧто(Конструктор, Вариант.Описание).Метод("Фикция", ЮТОбщий.ЗначениеВМассиве("Подписчик", Неопределено, Вариант.Тип)) + ЮТест.ОжидаетЧто(Конструктор, Вариант.Описание).Метод("Фикция", ЮТКоллекции.ЗначениеВМассиве("Подписчик", Неопределено, Вариант.Тип)) .ВыбрасываетИсключение("Исправьте ограничение типов для реквизита `Подписчик`"); КонецЦикла; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 4b994aeaf..8241bfefe 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -24,8 +24,8 @@ .ДобавитьТест("ОписаниеОбъектаМетаданных") .ДобавитьТест("РегистрыДвиженийДокумента") .ДобавитьТест("НормализованноеИмяТаблицы") - ; - + ; + КонецПроцедуры Процедура ОписаниеОбъектаМетаданных() Экспорт @@ -74,7 +74,7 @@ Процедура НормализованноеИмяТаблицы() Экспорт - Варианты = ЮТОбщий.ЗначениеВМассиве("Справочник.Банки", "Справочники.Банки", ПредопределенноеЗначение("Справочник.Банки.ПустаяСсылка")); + Варианты = ЮТКоллекции.ЗначениеВМассиве("Справочник.Банки", "Справочники.Банки", ПредопределенноеЗначение("Справочник.Банки.ПустаяСсылка")); #Если Сервер Тогда Варианты.Добавить(Справочники.Банки); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" index 1ce8676a3..8de1011d3 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ #Область СлужебныйПрограммныйИнтерфейс Процедура ИсполняемыеСценарии() Экспорт - + ЮТТесты .ДобавитьТестовыйНабор("ИменаЛюдей") .ДобавитьТест("Имя") @@ -34,36 +34,16 @@ .ДобавитьТестовыйНабор("Некорректные параметры") .ДобавитьТест("НереализованныйПолЧеловека") ; - -КонецПроцедуры - -#Область События - -Процедура ПередВсемиТестами() Экспорт - -КонецПроцедуры - -Процедура ПередКаждымТестом() Экспорт - -КонецПроцедуры - -Процедура ПослеКаждогоТеста() Экспорт - + КонецПроцедуры -Процедура ПослеВсехТестов() Экспорт - -КонецПроцедуры - -#КонецОбласти - Процедура Имя() Экспорт Имя = ЮТест.Данные().Подражатель().Люди().Имя(); ЮТест.ОжидаетЧто(Имя) .ИмеетТип("Строка") .Заполнено() ; - + ЮТест.ОжидаетЧто(СтрДлина(Имя)) .Больше(1) ; @@ -75,7 +55,7 @@ .ИмеетТип("Строка") .Заполнено() ; - + ЮТест.ОжидаетЧто(СтрДлина(Фамилия)) .Больше(1) ; @@ -87,7 +67,7 @@ .ИмеетТип("Строка") .Заполнено() ; - + ЮТест.ОжидаетЧто(СтрДлина(Отчество)) .Больше(1) ; @@ -99,7 +79,7 @@ .ИмеетТип("Строка") .Заполнено() ; - + ЮТест.ОжидаетЧто(СтрРазделить(ФИО, " ")) .ИмеетДлину(3) ; @@ -124,17 +104,17 @@ КонецПроцедуры Процедура УстановкаЛокализации() Экспорт - + Подражатель = ЮТест.Данные().Подражатель(); ЮТест.ОжидаетЧто(Подражатель.Локализация()) .Равно("ru") ; Подражатель.УстановитьЛокализацию("en"); - + ЮТест.ОжидаетЧто(Подражатель.Локализация()) .Равно("en") ; - + КонецПроцедуры Процедура НесуществующийСловарьПоЛокализации() Экспорт @@ -149,7 +129,7 @@ Процедура НереализованныйПолЧеловека() Экспорт Подражатель = ЮТест.Данные().Подражатель(); Ютест.ОжидаетЧто(ЮТПодражатель_Люди) - .Метод("Имя", ЮТОбщий.ЗначениеВМассиве("ТрансгендернаяДевушкаОлень")) + .Метод("Имя", ЮТКоллекции.ЗначениеВМассиве("ТрансгендернаяДевушкаОлень")) .ВыбрасываетИсключение("Отсутствует реализация словаря") ; КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 177006956..94542bc9a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,14 +17,14 @@ //©///////////////////////////////////////////////////////////////////////////©// ///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции, предназначенные для использования другими +// Экспортные процедуры и функции, предназначенные для использования другими // объектами конфигурации или другими программами -///////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////// #Область СлужебныйПрограммныйИнтерфейс Процедура ИсполняемыеСценарии() Экспорт - Массив = ЮТОбщий.ЗначениеВМассиве(1, 2, "3"); + Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, "3"); Структура = Новый Структура("Строка, Число, Массив", "1", 1, Массив); Соответствие = Новый Соответствие(); Соответствие.Вставить("Строка", "1"); @@ -76,6 +76,7 @@ .СПараметрами(Новый ФиксированноеСоответствие(Соответствие)) .СПараметрами(Новый ФиксированныйМассив(Массив)) .ДобавитьТест("ЗначенияРавны_ТабличныйДокумент") + .ДобавитьТест("ДанныеСовпадают") ; КонецПроцедуры @@ -113,9 +114,8 @@ Копия = СоздатьКопию(Значение); Алгоритм = Новый СжатиеДанных(1); - Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны( - Новый ХранилищеЗначения(Значение, Алгоритм), - Новый ХранилищеЗначения(Копия, Алгоритм)); + Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Новый ХранилищеЗначения(Значение, Алгоритм), + Новый ХранилищеЗначения(Копия, Алгоритм)); ЮТест.ОжидаетЧто(Результат, Описание) .ЭтоИстина(); @@ -145,6 +145,7 @@ КонецЦикла; КонецЦикла; + Варианты.Добавить(СоздатьКопию(Таблица), "Заполненная таблица"); Для Каждого Вариант Из Варианты.СписокВариантов() Цикл @@ -177,6 +178,35 @@ КонецПроцедуры +Процедура ДанныеСовпадают() Экспорт + + Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, "3"); + Структура = Новый Структура("Строка, Число, Массив", "1", 1, Массив); + Соответствие = Новый Соответствие(); + Соответствие.Вставить("Строка", "1"); + Соответствие.Вставить(2, "Число"); + Соответствие.Вставить("Массив", Массив); + + Варианты = ЮТест.Варианты("Значение") + .Добавить(Массив) + .Добавить(Структура) + .Добавить(Соответствие) + .Добавить(Новый ФиксированныйМассив(Массив)) + .Добавить(Новый ФиксированнаяСтруктура(Структура)) + .Добавить(Новый ФиксированноеСоответствие(Соответствие)) + .СписокВариантов(); + + Для Каждого Вариант Из Варианты Цикл + + Описание = Строка(ТипЗнч(Вариант.Значение)); + + ЮТест.ОжидаетЧто(ЮТСравнениеКлиентСервер.ЗначенияРавны(Вариант.Значение, Вариант.Значение), Описание) + .ЭтоИстина(); + + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" new file mode 100644 index 000000000..c476ce8d6 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -0,0 +1,73 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("ДобавитьСтроку") + .ДобавитьТест("СтрокаСимволов") + ; + +КонецПроцедуры + +Процедура ДобавитьСтроку() Экспорт + + Варианты = ЮТест.Варианты("Исходная, Дополнение, Разделитель, Результат") + .Добавить("1", "2", "+", "1+2") + .Добавить("", "2", "+", "2") + .Добавить("1", "", "+", "1") + .Добавить(Неопределено, "2", "+", "2") + .Добавить("1", "2", Неопределено, "12") + .СписокВариантов(); + + Для Каждого Вариант Из Варианты Цикл + + Результат = ЮТСтроки.ДобавитьСтроку(Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель); + + Сообщение = СтрШаблон("ДобавитьСтроку(%1, %2, %3)", Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель); + ЮТест.ОжидаетЧто(Результат, Сообщение).Равно(Вариант.Результат); + + КонецЦикла; + +КонецПроцедуры + +Процедура СтрокаСимволов() Экспорт + + Варианты = ЮТест.Варианты("Символ, Количество, Результат") + .Добавить("1", 1, "1") + .Добавить("12", 0, "") + .Добавить("12", 2, "1212") + .СписокВариантов(); + + Для Каждого Вариант Из Варианты Цикл + + Результат = ЮТСтроки.СтрокаСимволов(Вариант.Символ, Вариант.Количество); + ЮТест.ОжидаетЧто(Результат, СтрШаблон("%1 * %2", Вариант.Символ, Вариант.Количество)) + .Равно(Вариант.Результат); + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270.mdo" new file mode 100644 index 000000000..e11fc26fb --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТСтроки + true + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index f9d328227..897b0ee02 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -61,11 +61,7 @@ Ссылки = Новый Массив; Ссылки.Добавить(ЮТест.Данные().СоздатьЭлемент("Справочники.Банки")); Ссылки.Добавить(ЮТест.Данные().СоздатьДокумент("Документы.ПриходТовара")); - Ссылки.Добавить( - ЮТест.Данные() - .КонструкторОбъекта("Документы.ПриходТовара") - .Провести() - ); + Ссылки.Добавить(ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара").Провести()); Для Каждого Ссылка Из Ссылки Цикл @@ -89,7 +85,7 @@ Ключи = "Числа, Строки"; БазоваяСтруктура = Новый Структура(Ключи); - Значения = Новый Структура(Ключи, ЮТОбщий.ЗначениеВМассиве(1, 2), ЮТОбщий.ЗначениеВМассиве("1", "2")); + Значения = Новый Структура(Ключи, ЮТКоллекции.ЗначениеВМассиве(1, 2), ЮТКоллекции.ЗначениеВМассиве("1", "2")); Результат = ЮТест.Данные().ВариантыПараметров(БазоваяСтруктура, Значения); @@ -149,9 +145,9 @@ ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; ПараметрыЗаписи.ДополнительныеСвойства.Вставить(СлучайноеСвойство, СлучайноеЗначение); - - ПараметрыМетода = ЮТОбщий.ЗначениеВМассиве( - ТестируемыйМенеджер, Неопределено, ПараметрыЗаписи); + + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве( + ТестируемыйМенеджер, Неопределено, ПараметрыЗаписи); Если НЕ ЭтоСозданиеДокумента Тогда ПараметрыМетода.Вставить(1, "Тестовое наименование"); @@ -177,7 +173,7 @@ ЮТест.ОжидаетЧто(Проверка) .Метод("Вставить").Параметр(Идентификатор) - .НеВыбрасываетИсключение(, "Сформирован не валидный идентификатор: " + Идентификатор); + .НеВыбрасываетИсключение( , "Сформирован не валидный идентификатор: " + Идентификатор); КонецЦикла; @@ -201,10 +197,9 @@ ЗаменяемыеЗначения.Вставить("Поставщик 1", Поставщик); ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11", - ОписанияТипов, - КэшЗначений, - ЗаменяемыеЗначения - ); + ОписанияТипов, + КэшЗначений, + ЗаменяемыеЗначения); // Проверка поведения и результатов @@ -230,7 +225,7 @@ .Свойство("[2].Товар.Описание").Заполнено() .Свойство("[2].Количество").Равно(1) .Свойство("[2].Цена").Равно(1000000) - ; + ; #Иначе Ютест.ОжидаетЧто(ТаблицаРезультатов) .ИмеетТип("Массив") @@ -247,7 +242,7 @@ .Свойство("[1].Цена").Равно(1500.2) .Свойство("[2].Количество").Равно(1) .Свойство("[2].Цена").Равно(1000000) - ; + ; #КонецЕсли КонецПроцедуры @@ -261,7 +256,7 @@ .Добавить(ИмяМакета, "По имени макета") .Добавить(Макет, "Из текстового документа") .Добавить(Макет.ПолучитьТекст(), "Из строки") - ; + ; Для Каждого Вариант Из Варианты.СписокВариантов() Цикл @@ -273,10 +268,7 @@ // Вызов тестируемого сценария - ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета( - Вариант.Данные, - ОписанияТипов - ); + ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета(Вариант.Данные, ОписанияТипов); // Проверка поведения и результатов @@ -331,8 +323,8 @@ Ютест.ОжидаетЧто(ТаблицаРезультатов) .ИмеетДлину(3) .Свойство("Колонки").ИмеетДлину(2) - .Содержит("Период") - .Содержит("Количество") + .Содержит("Период") + .Содержит("Количество") ; #Иначе Ютест.ОжидаетЧто(ТаблицаРезультатов) @@ -341,8 +333,7 @@ .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат() .ИмеетДлину(2) .ИмеетСвойство("Период") - .ИмеетСвойство("Количество") - ) + .ИмеетСвойство("Количество")) ; #КонецЕсли КонецПроцедуры @@ -362,7 +353,9 @@ .ВыбрасываетИсключение("Укажите описание загружаемых колонок (ОписанияТипов)"); ОжидаемоеСообщение = СтрШаблон("Некорректный тип параметра `ОписанияТипов` метода `ЮТТестовыеДанные.ЗагрузитьИзМакета`. Метод принимает `%1, %2`, а получили `%3` (1)", - Тип("Соответствие"), Тип("Структура"), Тип("Число")); + Тип("Соответствие"), + Тип("Структура"), + Тип("Число")); ЮТест.ОжидаетЧто(ЮТест.Данные()) .Метод("ЗагрузитьИзМакета") .Параметр("ОбщийМакет.ЮТ_ТестовыеДанныеMarkdown") @@ -392,7 +385,7 @@ .Метод("ЗагрузитьИзМакета") .Параметр("ОбщийМакет.ЮТ_МакетТестовыхДанных.ОсновнаяТаблица") .Параметр(Новый Структура("Цена", Новый ОписаниеТипов("Дата"))) - .ВыбрасываетИсключение(ОжидаемоеСообщение+ ": ОсновнаяТаблица"); + .ВыбрасываетИсключение(ОжидаемоеСообщение + ": ОсновнаяТаблица"); КонецПроцедуры @@ -407,9 +400,8 @@ КэшЗначений = Неопределено; ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11", - ОписанияТипов, - КэшЗначений - ); + ОписанияТипов, + КэшЗначений); ОписанияТипов = Новый Соответствие; ОписанияТипов.Вставить("Период", Новый ОписаниеТипов("Дата")); @@ -420,9 +412,8 @@ ОписанияТипов.Вставить("Сумма", Новый ОписаниеТипов("Число")); ОжидаемыеЗначения = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R8C1:R11C6", - ОписанияТипов, - КэшЗначений - ); + ОписанияТипов, + КэшЗначений); ЮТест.ОжидаетЧто(КэшЗначений).НеРавно(Неопределено); @@ -442,7 +433,7 @@ ПараметрыСозданияОбъектов = ЮТФабрика.ПараметрыСозданияОбъектов(); ПараметрыСозданияОбъектов.ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; - Параметры = ЮТОбщий.ЗначениеВМассиве("ОбщийМакет.ЮТ_МакетТестовыхДанных.R14C1:R16C3", ОписанияТипов, Неопределено, Неопределено, ПараметрыСозданияОбъектов); + Параметры = ЮТКоллекции.ЗначениеВМассиве("ОбщийМакет.ЮТ_МакетТестовыхДанных.R14C1:R16C3", ОписанияТипов, Неопределено, Неопределено, ПараметрыСозданияОбъектов); ЮТест.ОжидаетЧто(ЮТест.Данные()) .Метод("ЗагрузитьИзМакета", Параметры) .НеВыбрасываетИсключение(); @@ -501,13 +492,13 @@ ЮТест.ОжидаетЧто(ЮТест.Данные().СлучайныйНомерТелефона()) .ИмеетТип("Строка") .ИмеетДлину(16) - ; + ; ЮТест.ОжидаетЧто(ЮТест.Данные().СлучайныйНомерТелефона("997")) .ИмеетТип("Строка") .ИмеетДлину(18) .НачинаетсяС("+997") - ; + ; КонецПроцедуры @@ -609,7 +600,7 @@ .МеждуВключаяНачалоГраницы(Вариант.Минимум, Вариант.Дата); КонецЦикла; - + КонецПроцедуры #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 33cd91d17..256023aa8 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,8 +37,8 @@ .СПараметрами(Новый ОписаниеТипов("Число, Дата"), Истина) .СПараметрами(Новый ОписаниеТипов("Число, ПеречислениеСсылка.PushУведомления, Дата"), Ложь) .ДобавитьТест("ЭтоКоллекцияПримитивныхТипов") - .СПараметрами(ЮТОбщий.ЗначениеВМассиве(Тип("Строка"), Тип("Дата")), Истина) - .СПараметрами(ЮТОбщий.ЗначениеВМассиве(Тип("Строка"), Тип("Дата"), Тип("ПеречислениеСсылка.PushУведомления")), Ложь) + .СПараметрами(ЮТКоллекции.ЗначениеВМассиве(Тип("Строка"), Тип("Дата")), Истина) + .СПараметрами(ЮТКоллекции.ЗначениеВМассиве(Тип("Строка"), Тип("Дата"), Тип("ПеречислениеСсылка.PushУведомления")), Ложь) .ДобавитьТест("ИдентификаторТипа") .СПараметрами("Дата") .СПараметрами("Строка") @@ -59,7 +59,7 @@ .СПараметрами("ОбъектXDTO") .СПараметрами("ОбъектМетаданных") ; - + КонецПроцедуры Процедура ЭтоСистемноеПеречисление(Тип, ОжидаемыйРезультат) Экспорт diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index de1400e60..e3e200ea1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -91,7 +91,7 @@ ЮТУтверждения.Что(ДанныеКонтекста, "Контекст утверждений") .Свойство("ПрефиксОшибки").Равно("Проверяемый контекст") .Свойство("ИмяМетода").Равно(""); - + КонецПроцедуры Процедура Свойство() Экспорт @@ -101,7 +101,7 @@ ЮТУтверждения.Что(Объект) .ИмеетТип("Структура"); - + ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки(); ЮТУтверждения.Что(ДанныеКонтекста, "Свойство не установлено") .Свойство("ОбъектПроверки.ИмяСвойства").Равно(Неопределено); @@ -179,7 +179,7 @@ КонецПопытки; ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `Структура` содержит свойство `Объект.Нулевой`, но это не так"); - Объект = ЮТОбщий.ЗначениеВМассиве("1", "2", "3"); + Объект = ЮТКоллекции.ЗначениеВМассиве("1", "2", "3"); ЮТУтверждения.Что(Объект, "Проверка элементов массива") .Элемент(0).Равно("1") .Элемент(1).Равно("2") @@ -189,13 +189,13 @@ .Свойство("[-1]").Равно("3") .НетСвойства(3) .НетСвойства("[3]"); - - Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2))); + + Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2))); ЮТУтверждения.Что(Объект, "Проверка свойства элемента массива") .Свойство("[3].Первый").Равно(1) .Свойство("[3].Второй[-1]").Равно(2) .Свойство("[3].Второй[0]").Равно(2); - + Ссылка = Ютест.Данные().СоздатьЭлемент("Справочники.Товары"); Объект = Новый Соответствие(); Объект.Вставить(Ссылка, 1); @@ -217,7 +217,7 @@ .Свойство("Структура").Равно(ВложеннаяСтруктура) .НетСвойства("Число") .Равно(Объект); - + Попытка Ошибка = Неопределено; ЮТест.ОжидаетЧто(Объект) @@ -231,7 +231,7 @@ Процедура ИмеетСвойство() Экспорт - Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2, 3))); + Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2, 3))); ЮТУтверждения.Что(Объект) .ИмеетСвойство("Примитив") @@ -243,7 +243,7 @@ .ИмеетСвойство("Первый") .ИмеетСвойство("Второй[0]") .ИмеетСвойство("Второй[1]") - ; + ; Попытка Ошибка = Неопределено; @@ -258,7 +258,7 @@ Процедура НеИмеетСвойства() Экспорт - Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2, 3))); + Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2, 3))); ЮТУтверждения.Что(Объект) .НеИмеетСвойства("Первый") @@ -515,7 +515,7 @@ // Негативные тесты Попытка - ЮТУтверждения.Что(1=1) + ЮТУтверждения.Что(1 = 1) .НеРавно(Истина); Ошибка = Неопределено; Исключение @@ -547,11 +547,11 @@ .Больше("") .Больше("Слов") .Больше("А"); - + ЮТУтверждения.Что(ТекущаяДата()) .Больше('20200101') .Больше('00010101'); - + // Негативные тесты Попытка Ошибка = Неопределено; @@ -634,16 +634,16 @@ .БольшеИлиРавно("") .БольшеИлиРавно("Слов") .БольшеИлиРавно("Слово"); - + ЮТУтверждения.Что('20200102') .БольшеИлиРавно('20200102') .БольшеИлиРавно('20200101') .БольшеИлиРавно('00010101'); - + // Негативные тесты Попытка Ошибка = Неопределено; - ЮТУтверждения.Что(10) + ЮТУтверждения.Что(10) .БольшеИлиРавно(100) Исключение Ошибка = ИнформацияОбОшибке(); @@ -740,8 +740,8 @@ Попытка Ошибка = Неопределено; - ЮТУтверждения.Что("Б") - .Меньше("Б") + ЮТУтверждения.Что("Б") + .Меньше("Б") Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; @@ -749,8 +749,8 @@ Попытка Ошибка = Неопределено; - ЮТУтверждения.Что("В") - .Меньше("Б") + ЮТУтверждения.Что("В") + .Меньше("Б") Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; @@ -758,8 +758,8 @@ Попытка Ошибка = Неопределено; - ЮТУтверждения.Что('20200101') - .Меньше('20200101') + ЮТУтверждения.Что('20200101') + .Меньше('20200101') Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; @@ -767,8 +767,8 @@ Попытка Ошибка = Неопределено; - ЮТУтверждения.Что('20200102') - .Меньше('20200101') + ЮТУтверждения.Что('20200102') + .Меньше('20200101') Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; @@ -1045,7 +1045,7 @@ КонецПопытки; ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Null>` является неопределено, но это не так"); ПроверитьДанныеОшибкиСравнения(Null, Неопределено); - + Попытка Ошибка = Неопределено; ЮТУтверждения.Что("", "Пустая строка") @@ -1133,7 +1133,7 @@ КонецПопытки; ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Null>` не является null, но это не так"); ПроверитьДанныеОшибкиСравнения(Null, Null); - + КонецПроцедуры Процедура ИмеетТип() Экспорт @@ -1222,10 +1222,10 @@ Ошибка = ИнформацияОбОшибке(); КонецПопытки; ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Не верный тип ожидаемого значения (`%1`), должен быть `%2, %3, %4`", - Тип("Неопределено"), - Тип("Строка"), - Тип("Тип"), - Тип("ОписаниеТипов"))); + Тип("Неопределено"), + Тип("Строка"), + Тип("Тип"), + Тип("ОписаниеТипов"))); Попытка Ошибка = Неопределено; @@ -1247,9 +1247,9 @@ .Содержит(123) .Содержит("1") .Содержит("21"); - ЮТУтверждения.Что(ЮТОбщий.ЗначениеВМассиве("1", "2")) + ЮТУтверждения.Что(ЮТКоллекции.ЗначениеВМассиве("1", "2")) .Содержит("1"); - ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2"))) + ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2"))) .Содержит("1") .Содержит("2"); ЮТУтверждения.Что(Новый Структура("Ключ", "1")) @@ -1263,7 +1263,7 @@ .Содержит("1"); ЮТУтверждения.Что(Новый ФиксированноеСоответствие(Соответствие)) .Содержит("1"); - + Список = Новый СписокЗначений(); Список.Добавить("1", "2"); ЮТУтверждения.Что(Список) @@ -1284,7 +1284,7 @@ Попытка Ошибка = Неопределено; - ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2"))) + ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2"))) .Содержит("1+1"); Исключение Ошибка = ИнформацияОбОшибке(); @@ -1326,10 +1326,10 @@ ЮТУтверждения.Что("123321", "Строка") .НеСодержит("0") .НеСодержит(Новый Структура); - ЮТУтверждения.Что(ЮТОбщий.ЗначениеВМассиве("1", "2"), "Массив") + ЮТУтверждения.Что(ЮТКоллекции.ЗначениеВМассиве("1", "2"), "Массив") .НеСодержит(1) .НеСодержит("3"); - ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2")), "ФиксированныйМассив") + ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2")), "ФиксированныйМассив") .НеСодержит(1) .НеСодержит("3"); ЮТУтверждения.Что(Новый Структура("Ключ", "1"), "Структура") @@ -1347,7 +1347,7 @@ ЮТУтверждения.Что(Новый ФиксированноеСоответствие(Соответствие)) .НеСодержит(1) .НеСодержит("2"); - + Список = Новый СписокЗначений(); Список.Добавить("1", "2"); ЮТУтверждения.Что(Список) @@ -1376,7 +1376,7 @@ Попытка Ошибка = Неопределено; - ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2"))) + ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2"))) .НеСодержит("1"); Исключение Ошибка = ИнформацияОбОшибке(); @@ -1400,7 +1400,7 @@ ЮТУтверждения.Что("123321") .СодержитСтрокуПоШаблону("\d{3}") .СодержитСтрокуПоШаблону(".{6}") - ; + ; // Негативные тесты Попытка @@ -1416,12 +1416,12 @@ КонецПроцедуры Процедура НеСодержитСтрокуПоШаблону() Экспорт - + // Позитивные тесты ЮТУтверждения.Что("123321") .НеСодержитСтрокуПоШаблону("\D{3}") .НеСодержитСтрокуПоШаблону(".{7}") - ; + ; // Негативные тесты Попытка @@ -1581,7 +1581,7 @@ МалоПараметров = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Not enough actual parameters", "Недостаточно фактических параметров"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение", 2)) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2)) .ВыбрасываетИсключение(МногоПараметров); ЮТУтверждения.Что(ОМ_ЮТУтверждения) @@ -1593,7 +1593,7 @@ .ВыбрасываетИсключение(МетодНеОбнаружен); ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) .ВыбрасываетИсключение("Исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) @@ -1650,19 +1650,19 @@ // Позитивные тесты ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) + .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) .НеВыбрасываетИсключение() .НеВыбрасываетИсключение("Ожидаемое исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) .НеВыбрасываетИсключение("Ожидаемое исключение"); // Негативные тесты Попытка Ошибка = Неопределено; ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Ожидаемое исключение")) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Ожидаемое исключение")) .НеВыбрасываетИсключение("исключение"); Исключение Ошибка = ИнформацияОбОшибке(); @@ -1697,14 +1697,14 @@ Ошибка = ИнформацияОбОшибке(); КонецПопытки; ПроверитьОшибкуИсполнения(Ошибка, "ИмяМетода не заполнено в контексте. Воспользуйтесь предварительно методом интерфейса `Метод(ИмяМетода)`"); - + КонецПроцедуры Процедура ИмеетМетод() Экспорт ЮТест.ОжидаетЧто(ОМ_ЮТУтверждения) .ИмеетМетод("МетодИсключение"); - + Попытка Ошибка = Неопределено; ЮТУтверждения.Что(ОМ_ЮТУтверждения) @@ -1728,7 +1728,7 @@ ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("ЗаписатьОбъект").Параметр(Объект) - .НеВыбрасываетИсключение(, , Истина); + .НеВыбрасываетИсключение( , , Истина); ЮТест.ОжидаетЧто(Объект) .Свойство("Ссылка").НеЗаполнено(); @@ -1782,7 +1782,7 @@ Процедура СравнениеСложныхОбъектов() Экспорт Варианты = Новый Массив(); - МассивЗначений = ЮТОбщий.ЗначениеВМассиве(1, "2"); + МассивЗначений = ЮТКоллекции.ЗначениеВМассиве(1, "2"); Варианты.Добавить(Новый Структура("Значение, Описание", Новый Структура("Поле1, Поле2, Коллекция", 1, "2", МассивЗначений), "Структура с массивом")); Варианты.Добавить(Новый Структура("Значение, Описание", Новый Структура("Поле1, Поле2", 1, "2"), "Структура примитивов")); Варианты.Добавить(Новый Структура("Значение, Описание", МассивЗначений, "Массив примитивов")); @@ -1805,8 +1805,8 @@ Попытка ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) - .НеВыбрасываетИсключение(, , Истина) + .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) + .НеВыбрасываетИсключение( , , Истина) Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; @@ -1815,8 +1815,8 @@ Попытка ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) - .ВыбрасываетИсключение(, , Истина) + .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) + .ВыбрасываетИсключение( , , Истина) Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; @@ -2088,13 +2088,13 @@ Ключи = "Строка, Число, Дата, Коллекция"; Эталон = Новый Структура(Ключи, ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайноеЧисло(), ЮТест.Данные().СлучайнаяДата()); - Эталон.Коллекция = ЮТОбщий.ЗначениеВМассиве(1, 2, 3); + Эталон.Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); Объект = Новый Структура(Ключи); ЗаполнитьЗначенияСвойств(Объект, Эталон); ЮТУтверждения.Что(Объект).ИмеетСвойстваРавные(Эталон, "Копия"); - Объект.Коллекция = ЮТОбщий.ЗначениеВМассиве(1, 2, 3); + Объект.Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); ЮТУтверждения.Что(Объект).ИмеетСвойстваРавные(Эталон, "Переопределен массив"); Объект.Коллекция.Добавить(4); @@ -2130,7 +2130,7 @@ КонецПопытки; ПроверитьОшибкуУтверждения(Ошибка, "проверяемое значение `Запрос` не содержат свойство 'Результат'"); #КонецЕсли - + КонецПроцедуры Процедура КаждыйЭлементСодержитСвойство() Экспорт @@ -2225,7 +2225,7 @@ Объект.Вставить("Число", 1); Объект.Вставить("Строка", "1"); Объект.Вставить("Дата", Дата); - Объект.Вставить("Массив", ЮТОбщий.ЗначениеВМассиве(1, "1")); + Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1")); ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число").ИмеетТип(Тип("Число")).БольшеИлиРавно(1).МеньшеИлиРавно(10).Получить(); ПроверкаДаты = ЮТест.Предикат().Реквизит("Дата").ИмеетТип(Новый ОписаниеТипов("Дата")).Равно(Дата).Получить(); @@ -2236,7 +2236,7 @@ .ИмеетТип("Структура")) .СоответствуетПредикату(ПроверкаЧисла) .СоответствуетПредикату(ПроверкаДаты) - ; + ; Попытка Ошибка = Неопределено; @@ -2271,11 +2271,11 @@ Объект.Вставить("Число", 1); Объект.Вставить("Строка", "1"); Объект.Вставить("Дата", Дата); - Объект.Вставить("Массив", ЮТОбщий.ЗначениеВМассиве(1, "1")); + Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1")); Объект2 = ПомощникТестированияВызовСервера.СоздатьКопию(Объект); - Коллекция = ЮТОбщий.ЗначениеВМассиве(Объект, Объект2); + Коллекция = ЮТКоллекции.ЗначениеВМассиве(Объект, Объект2); Предикаты = ЮТест.Предикат() .ИмеетТип("Структура") @@ -2288,8 +2288,8 @@ .Реквизит("Дата").Равно(Дата) .Реквизит("Массив").ИмеетТип("Массив") .Реквизит("Массив").ИмеетДлину(2) - ; - + ; + ЮТест.ОжидаетЧто(Коллекция).КаждыйЭлементСоответствуетПредикату(Предикаты); Попытка @@ -2307,9 +2307,9 @@ Процедура ЛюбойЭлементСоответствуетПредикату() Экспорт Дата = '20200220130001'; - Объект = Новый Структура("Число, Строка, Дата, Массив", 1, "2", Дата, ЮТОбщий.ЗначениеВМассиве(3, "1")); - Объект2 = Новый Структура("Число, Строка, Дата, Массив", 2, "1", Дата, ЮТОбщий.ЗначениеВМассиве(1, "3")); - Коллекция = ЮТОбщий.ЗначениеВМассиве(Объект, Объект2); + Объект = Новый Структура("Число, Строка, Дата, Массив", 1, "2", Дата, ЮТКоллекции.ЗначениеВМассиве(3, "1")); + Объект2 = Новый Структура("Число, Строка, Дата, Массив", 2, "1", Дата, ЮТКоллекции.ЗначениеВМассиве(1, "3")); + Коллекция = ЮТКоллекции.ЗначениеВМассиве(Объект, Объект2); ЮТест.ОжидаетЧто(Коллекция).ЛюбойЭлементСоответствуетПредикату(Ютест.Предикат().Реквизит("Число").Равно(2)); ЮТест.ОжидаетЧто(Коллекция).ЛюбойЭлементСоответствуетПредикату(Ютест.Предикат().Реквизит("Число").Равно(1)); @@ -2337,13 +2337,13 @@ Процедура СодержитПредикат() Экспорт Структура = Новый Структура("Свойство, Свойство2", 1, 2); - Коллекция = ЮТОбщий.ЗначениеВМассиве("1", 1, Структура); + Коллекция = ЮТКоллекции.ЗначениеВМассиве("1", 1, Структура); ЮТест.ОжидаетЧто(Коллекция) .Содержит(ЮТест.Предикат().Равно(1), "Предикат из общего модуля") .Содержит(ЮТест.Предикат().Равно(1).Получить(), "Сохраненный предикат") .Содержит(ЮТест.Предикат().Реквизит("Свойство").Равно(1), "Проверка свойства") - ; + ; Ошибка = ОшибкаУтверждения(Коллекция, "Содержит", ЮТест.Предикат().Равно(2)); ПроверитьОшибкуУтверждения(Ошибка, "проверяемое значение `Массив` содержит элемент, значение которого равно `2`"); @@ -2362,13 +2362,13 @@ Процедура НеСодержитПредикат() Экспорт Структура = Новый Структура("Свойство, Свойство2", 1, 2); - Коллекция = ЮТОбщий.ЗначениеВМассиве("1", 1, Структура); + Коллекция = ЮТКоллекции.ЗначениеВМассиве("1", 1, Структура); ЮТест.ОжидаетЧто(Коллекция) .НеСодержит(ЮТест.Предикат().Равно(2), "Предикат из общего модуля") .НеСодержит(ЮТест.Предикат().Равно(2).Получить(), "Сохраненный предикат") .НеСодержит(ЮТест.Предикат().Реквизит("Свойство").Равно(2), "Проверка свойства") - ; + ; Ошибка = ОшибкаУтверждения(Коллекция, "НеСодержит", ЮТест.Предикат().Равно(1)); ПроверитьОшибкуУтверждения(Ошибка, "проверяемое значение `Массив` не содержит элемент, значение которого равно `1`"); @@ -2388,7 +2388,7 @@ .НеСодержит("число") .СодержитСтрокуПоШаблону("[\w\W]+") .НеСодержитСтрокуПоШаблону("\d+") - ; + ; КонецПроцедуры @@ -2398,7 +2398,7 @@ Функция ОшибкаУтверждения(ПроверяемоеЗначение, Утверждение, Параметр) - Параметры = ЮТОбщий.ЗначениеВМассиве(Параметр); + Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр); ЮТест.ОжидаетЧто(ПроверяемоеЗначение); Ошибка = ЮТОбщий.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" index 13a7921b5..ccccbc5ec 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,7 +24,7 @@ .ДобавитьТест("ЭтоПодходящееРасширение") .ДобавитьТест("ЭтоПодходящийМодуль") .ДобавитьТест("ОтфильтроватьТестовыеНаборы") - ; + ; КонецПроцедуры @@ -33,7 +33,7 @@ Варианты = Новый Массив(); Ключи = "ИмяРасширения, Параметры, Результат, Описание"; Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве("test", "тесты"); + Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второе расширение")); @@ -44,7 +44,7 @@ Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Без фильтр по расширениям 2")); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("test.method"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("test.method"); Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Фильтр по пути")); Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение")); @@ -65,7 +65,7 @@ РасширениеПоУмолчанию = "__тесты___"; Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("test", "тесты"); + Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль")); @@ -76,39 +76,39 @@ Варианты.Добавить(Новый Структура(Ключи, "_module", Параметры, Истина, "Без фильтр по `_module`")); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("module"); - Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве(РасширениеПоУмолчанию); + Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); + Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию); Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением")); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("module"); - Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве("тесты"); + Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); + Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("тесты"); Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения")); // Фильтрация по именам тестовых методов Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста")); Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю")); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method"); - Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве(РасширениеПоУмолчанию); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); + Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию); Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением")); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method"); - Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве("test"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); + Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test"); Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения")); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method"); - Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("module"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); + Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением")); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method"); - Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("test"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); + Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test"); Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения")); Для Каждого Вариант Из Варианты Цикл @@ -131,7 +131,7 @@ РасширениеПоУмолчанию = "__тесты___"; Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("test", "тесты"); + Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль")); @@ -163,12 +163,12 @@ Наборы = Новый Массив(); Набор = ЮТФабрика.ОписаниеТестовогоНабора("Тесты"); - Тест = ЮТФабрика.ОписаниеТеста("Тест1", "Тест 1", ЮТОбщий.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение)); + Тест = ЮТФабрика.ОписаниеТеста("Тест1", "Тест 1", ЮТКоллекции.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение)); Набор.Тесты.Добавить(Тест); Наборы.Добавить(Набор); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1"); ЮТФильтрация.УстановитьКонтекст(Параметры); Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); @@ -188,7 +188,7 @@ // 2 Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); ЮТФильтрация.УстановитьКонтекст(Параметры); Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); @@ -199,7 +199,7 @@ // 3 Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера"); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера"); ЮТФильтрация.УстановитьКонтекст(Параметры); Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); @@ -208,8 +208,8 @@ // 4 Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); - Параметры.filter.contexts = ЮТОбщий.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение); + Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); + Параметры.filter.contexts = ЮТКоллекции.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение); ЮТФильтрация.УстановитьКонтекст(Параметры); Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); @@ -219,4 +219,3 @@ КонецПроцедуры #КонецОбласти - diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" index efab0269e..1c597fcab 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" @@ -21,7 +21,7 @@ Процедура ИсполняемыеСценарии() Экспорт Контекст = ЮТКонтекст.ДанныеКонтекста(); - Если ЮТОбщий.ЗначениеСтруктуры(Контекст, ИмяРеквизитаПроверки(), Ложь) Тогда + Если ЮТКоллекции.ЗначениеСтруктуры(Контекст, ИмяРеквизитаПроверки(), Ложь) Тогда ВызватьИсключение "Проверка чтения состава тестов"; КонецЕсли; @@ -45,7 +45,7 @@ ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); ПараметрыЗапуска.filter.extensions = Неопределено; - ПараметрыЗапуска.filter.modules = ЮТОбщий.ЗначениеВМассиве("ОМ_ЮТЧитатель"); + ПараметрыЗапуска.filter.modules = ЮТКоллекции.ЗначениеВМассиве("ОМ_ЮТЧитатель"); Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы") @@ -93,14 +93,14 @@ .Свойство("Имя").Равно("ИсполняемыеСценарииМодуля") .Свойство("Представление").НеЗаполнено() .Свойство("Теги").Равно(Новый Массив()) - .Свойство("КонтекстВызова").Равно(ЮТОбщий.ЗначениеВМассиве("КлиентУправляемоеПриложение")); + .Свойство("КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("КлиентУправляемоеПриложение")); ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); - ПараметрыЗапуска.filter.extensions = ЮТОбщий.ЗначениеВМассиве("tests"); + ПараметрыЗапуска.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("tests"); Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(29); + .ИмеетДлину(31); КонецПроцедуры @@ -139,21 +139,21 @@ .Свойство("Тесты[0].Имя").Равно("ИсполняемыеСценарииМодуля") .Свойство("Тесты[0].Представление").НеЗаполнено() .Свойство("Тесты[0].Теги").ИмеетДлину(0) - .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТОбщий.ЗначениеВМассиве("Сервер", "КлиентУправляемоеПриложение")) + .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("Сервер", "КлиентУправляемоеПриложение")) ; ЮТест.ОжидаетЧто(НаборЗагрузкаТестов, "Набор 'ЗагрузкаТестов'") .Свойство("Имя").Равно("ЗагрузкаТестов") .Свойство("Тесты").ИмеетДлину(1) .Свойство("Тесты[0].Имя").Равно("ЗагрузитьТесты") - .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТОбщий.ЗначениеВМассиве("КлиентУправляемоеПриложение")) + .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("КлиентУправляемоеПриложение")) ; ЮТест.ОжидаетЧто(НаборЭтоТестовыйМодуль, "Набор 'ЭтоТестовыйМодуль'") .Свойство("Имя").Равно("ЭтоТестовыйМодуль") .Свойство("Тесты").ИмеетДлину(4) .Свойство("Теги").ИмеетДлину(3) - ; + ; КонецПроцедуры @@ -162,24 +162,21 @@ ОписаниеМодуля.Имя = "ОМ_ЮТЧитатель"; ОписаниеМодуля.ПолноеИмя = "tests.ОМ_ЮТЧитатель"; ОписаниеМодуля.Расширение = "tests"; - #Если Клиент Тогда - ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; - ОписаниеМодуля.КлиентОбычноеПриложение = Истина; - #Иначе - ОписаниеМодуля.Сервер = Истина; - #КонецЕсли +#Если Клиент Тогда + ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; + ОписаниеМодуля.КлиентОбычноеПриложение = Истина; +#Иначе + ОписаниеМодуля.Сервер = Истина; +#КонецЕсли ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяРеквизитаПроверки(), Истина); Результат = ЮТЧитатель.ИсполняемыеСценарииМодуля(ОписаниеМодуля); ЮТест.ОжидаетЧто(Результат) .ИмеетТип("Структура") - .Свойство("НаборыТестов") - .ИмеетДлину(1) - .Свойство("НаборыТестов[0].Ошибки") - .ИмеетДлину(1) - .Свойство("НаборыТестов[0].Ошибки[0].ТипОшибки") - .Равно(ЮТФабрика.ТипыОшибок().ЧтенияТестов) + .Свойство("НаборыТестов").ИмеетДлину(1) + .Свойство("НаборыТестов[0].Ошибки").ИмеетДлину(1) + .Свойство("НаборыТестов[0].Ошибки[0].ТипОшибки").Равно(ЮТФабрика.ТипыОшибок().ЧтенияТестов) ; КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" index 0a1bd0726..d47a7acf9 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,8 +23,8 @@ ЮТТесты .ДобавитьТест("Конструктор") .ДобавитьТест("УстановитьТело") - ; - + ; + КонецПроцедуры Процедура Конструктор() Экспорт @@ -52,7 +52,7 @@ .Метод("ПолучитьТелоКакДвоичныеДанные").НеВыбрасываетИсключение() .Метод("ПолучитьТелоКакПоток").НеВыбрасываетИсключение() .Метод("ПолучитьТелоКакСтроку").НеВыбрасываетИсключение() - .Метод("ПолучитьТелоКакСтроку", ЮТОбщий.ЗначениеВМассиве(КодировкаТекста.UTF8)).НеВыбрасываетИсключение(); + .Метод("ПолучитьТелоКакСтроку", ЮТКоллекции.ЗначениеВМассиве(КодировкаТекста.UTF8)).НеВыбрасываетИсключение(); ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку()).Равно(""); Тело = "Тело"; @@ -61,7 +61,7 @@ Описание = "Тело установлено из двоичных данных"; Запрос = ЮТест.Данные().HTTPСервисЗапрос() .УстановитьТелоКакДвоичныеДанные(ДвоичныеДанные); - + ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакДвоичныеДанные(), Описание + ". Получение двоичных данных").Равно(ДвоичныеДанные); ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку(), Описание + ". Получение строки").Равно(Тело); ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку("UTF-8"), Описание + ". Получение строки UTF-8").Равно(Тело); @@ -84,4 +84,3 @@ КонецПроцедуры #КонецОбласти - diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index c4a17479b..3a3e9a9af 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -37,6 +37,7 @@ CommonModule.ОМ_ЮТЗапросы CommonModule.ОМ_ЮТИсполнительКлиент CommonModule.ОМ_ЮТИсполнительКлиентСервер + CommonModule.ОМ_ЮТКоллекции CommonModule.ОМ_ЮТКонструкторТестовыхДанных CommonModule.ОМ_ЮТМетаданные CommonModule.ОМ_ЮТОтчет @@ -46,6 +47,7 @@ CommonModule.ОМ_ЮТПодражатель_Люди CommonModule.ОМ_ЮТПредикатыКлиентСервер CommonModule.ОМ_ЮТСравнениеКлиентСервер + CommonModule.ОМ_ЮТСтроки CommonModule.ОМ_ЮТТестовыеДанные CommonModule.ОМ_ЮТТестовыеДанныеСлужебный CommonModule.ОМ_ЮТТесты From f298d38b956c636a7dfa30df2f6e4aaedf218cf0 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 11 Mar 2024 04:12:40 +0300 Subject: [PATCH 14/47] =?UTF-8?q?=D0=92=D0=B5=D1=80=D1=81=D0=B8=D0=BE?= =?UTF-8?q?=D0=BD=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B8?= =?UTF-8?q?=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B8=D1=85=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 4 +- .../Module.bsl" | 2 +- .../Module.bsl" | 6 + .../Module.bsl" | 8 +- .../Module.bsl" | 6 + .../Module.bsl" | 183 ++++++++++++++++++ ...0\265\320\261\320\275\321\213\320\271.mdo" | 11 ++ .../Module.bsl" | 163 +++------------- .../Module.bsl" | 4 +- .../Module.bsl" | 8 +- .../Module.bsl" | 4 +- .../Module.bsl" | 44 +++++ .../Module.bsl" | 5 +- .../Module.bsl" | 2 +- .../Module.bsl" | 72 ------- .../Module.bsl" | 13 ++ .../Module.bsl" | 8 +- .../Module.bsl" | 10 +- .../src/Configuration/Configuration.mdo | 1 + .../Module.bsl" | 21 ++ .../Module.bsl" | 2 +- 21 files changed, 344 insertions(+), 233 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" index 0aa8cfc40..090729099 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -244,7 +244,7 @@ СтруктураВызоваМетода = ПараметрыПроверки().СтруктураВызоваМетода; Объект = СтруктураВызоваМетода.Объект; - ПредставлениеТипа = ЮТОбщий.ПредставлениеТипа(ТипЗнч(Объект)); + ПредставлениеТипа = ЮТТипыДанныхСлужебный.ПредставлениеТипа(ТипЗнч(Объект)); Возврат СтрШаблон(" - вызовы метода `%1(%2).%3`,", Объект, ПредставлениеТипа, СтруктураВызоваМетода.ИмяМетода); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index a04d226d7..8afb3743c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -160,7 +160,7 @@ СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста(); Тест.Статус = СтатусыИсполненияТеста.Исполнение; - Ошибка = ЮТОбщий.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры); Если Ошибка <> Неопределено Тогда ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index b4e9ea168..ea5ce9c09 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -136,4 +136,10 @@ КонецФункции +Функция ВерсияДвижка() Экспорт + + Возврат ЮТМетаданныеПовтИсп.ВерсияДвижка(); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" index f0c3b700d..6697dd5bb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -61,4 +61,10 @@ КонецФункции +Функция ВерсияДвижка() Экспорт + + Возврат ЮТМетаданныеСервер.ВерсияДвижка(); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index b1250cedf..fd862fc13 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -348,4 +348,10 @@ КонецПроцедуры +Функция ВерсияДвижка() Экспорт + + Возврат Метаданные.ОбщиеМодули.ЮТМетаданныеСервер.РасширениеКонфигурации().Версия; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..1fcee7bc5 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,183 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ВызовУстаревшегоМетода(УстаревшийМетод, РекомендуемыйМетод, Версия) Экспорт + + Сообщение = СтрШаблон("Используется устаревший метод '%1'. В следующих релизах он будет удален", УстаревшийМетод); + + Если ЗначениеЗаполнено(РекомендуемыйМетод) Тогда + Сообщение = СтрШаблон("%1. Рекомендуется использовать '%2'", Сообщение, РекомендуемыйМетод); + КонецЕсли; + + Если ЮТСтроки.СравнитьВерсии(Версия, ВерсияЗапретаИспользованияУстаревших()) <= 0 Тогда + ВызватьИсключение Сообщение; + Иначе + ЮТОбщий.СообщитьПользователю(Сообщение); + КонецЕсли; + +КонецПроцедуры + +#Область ПроверкаМетодов + +// МетодМодуляСуществует +// Проверяет существование публичного (экспортного) метода у модуля +// +// Параметры: +// ИмяМодуля - Строка - Имя модуля, метод которого нужно поискать +// ИмяМетода - Строка - Имя метода, который ищем +// Кешировать - Булево - Признак кеширования результата проверки +// +// Возвращаемое значение: +// Булево - Метод найден +Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Кешировать = Истина) Экспорт + + ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМодуля, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМодуля"); + ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода"); + + Если Кешировать Тогда + Возврат ЮТСлужебныйПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода); + КонецЕсли; + + ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода); + Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)"; + + Ошибка = ВыполнитьМетод(Алгоритм); + + ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода); + Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров; + +КонецФункции + +// Проверяет существование публичного (экспортного) метода у объекта +// +// Параметры: +// Объект - Произвольный - Объект, метод которого нужно поискать +// ИмяМетода - Строка - Имя метода, который ищем +// +// Возвращаемое значение: +// Булево - Метод найден +Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.МетодОбъектаСуществует"); +#Иначе + ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода"); + + ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода); + Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)"; + + Ошибка = ВыполнитьМетод(Алгоритм, , Объект); + + ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода); + Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров; +#КонецЕсли + +КонецФункции + +#КонецОбласти + +#Область ВызовМетодов + +Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод"); +#Иначе + Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда + + Алгоритм = ПолноеИмяМетода; + + ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда + + Алгоритм = ПолноеИмяМетода + "()"; + + ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда + + Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, "Параметры")); + + Иначе + + ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры)); + + КонецЕсли; + + Попытка + //@skip-check server-execution-safe-mode + Выполнить(Алгоритм); + Исключение + Возврат ИнформацияОбОшибке(); + КонецПопытки; + + Возврат Неопределено; +#КонецЕсли + +КонецФункции + +Функция ВычислитьБезопасно(Выражение) Экспорт + +#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда + УстановитьБезопасныйРежим(Истина); + Попытка + Значение = Вычислить(Выражение); + Исключение + УстановитьБезопасныйРежим(Ложь); + ВызватьИсключение; + КонецПопытки; + + УстановитьБезопасныйРежим(Ложь); +#Иначе + Значение = Вычислить(Выражение); +#КонецЕсли + + Возврат Значение; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ВерсияЗапретаИспользованияУстаревших() + + Возврат "23.01"; + +КонецФункции + +Функция СтрокаПараметровМетода(Параметры, ИмяПеременнойСПараметрами) + + СписокПараметров = Новый Массив(); + + Для Инд = 0 По Параметры.ВГраница() Цикл + + Если Параметры[Инд] = Мокито.ПараметрПоУмолчанию() Тогда + СписокПараметров.Добавить(""); + Иначе + СписокПараметров.Добавить(СтрШаблон("%1[%2]", ИмяПеременнойСПараметрами, Инд)); + КонецЕсли; + + КонецЦикла; + + Возврат СтрСоединить(СписокПараметров, ", "); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..dd5e80158 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТМетодыСлужебный + + ru + Общий служебный + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 842a07653..9953bc2f6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -82,7 +82,7 @@ // Строка - Результат конкатенации строк Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ДобавитьСтроку", "ЮТСтроки.ДобавитьСтроку"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ДобавитьСтроку", "ЮТСтроки.ДобавитьСтроку", "24.03"); Возврат ЮТСтроки.ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель); КонецФункции @@ -99,7 +99,7 @@ // Функция РазложитьСтрокуВМассивПодстрок(Значение, Разделитель = ";") Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.РазложитьСтрокуВМассивПодстрок", "ЮТСтроки.РазбитьСтроку"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.РазложитьСтрокуВМассивПодстрок", "ЮТСтроки.РазбитьСтроку", "24.03"); Возврат ЮТСтроки.РазделитьСтроку(Значение, Разделитель); КонецФункции @@ -114,7 +114,7 @@ // Строка - Строка повторяемых символов Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.СформироватьСтрокуСимволов", "ЮТСтроки.СтрокаСимволов"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СформироватьСтрокуСимволов", "ЮТСтроки.СтрокаСимволов", "24.03"); Возврат ЮТСтроки.СтрокаСимволов(Символ, Количество); КонецФункции @@ -222,7 +222,7 @@ // Произвольный - Значение искомого поля структуры Функция ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию = Неопределено) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеСтруктуры", "ЮТКоллекции.ЗначениеСтруктуры"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеСтруктуры", "ЮТКоллекции.ЗначениеСтруктуры", "24.03"); Возврат ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию); КонецФункции @@ -241,7 +241,7 @@ // Функция ОбъединитьВСтруктуру(Знач Коллекция1, Коллекция2) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ОбъединитьВСтруктуру", "ЮТКоллекции.ДополнитьСтруктуру"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ОбъединитьВСтруктуру", "ЮТКоллекции.ДополнитьСтруктуру", "24.03"); Если ТипЗнч(Коллекция1) <> Тип("Структура") Тогда Коллекция1 = ЮТКоллекции.СкопироватьСтруктуру(Коллекция1); КонецЕсли; @@ -266,7 +266,7 @@ // Функция СкопироватьРекурсивно(Источник) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьРекурсивно", "ЮТКоллекции.СкопироватьРекурсивно"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьРекурсивно", "ЮТКоллекции.СкопироватьРекурсивно", "24.03"); Возврат ЮТКоллекции.СкопироватьРекурсивно(Источник); КонецФункции @@ -282,7 +282,7 @@ // Функция СкопироватьСтруктуру(Источник) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСтруктуру", "ЮТКоллекции.СкопироватьСтруктуру"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСтруктуру", "ЮТКоллекции.СкопироватьСтруктуру", "24.03"); Возврат ЮТКоллекции.СкопироватьСтруктуру(Источник); КонецФункции @@ -298,7 +298,7 @@ // Функция СкопироватьСоответствие(Источник) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСоответствие", "ЮТКоллекции.СкопироватьСоответствие"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСоответствие", "ЮТКоллекции.СкопироватьСоответствие", "24.03"); Возврат ЮТКоллекции.СкопироватьСоответствие(Источник); КонецФункции @@ -314,7 +314,7 @@ // Функция СкопироватьМассив(Источник) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьМассив", "ЮТКоллекции.СкопироватьМассив"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьМассив", "ЮТКоллекции.СкопироватьМассив", "24.03"); Возврат ЮТКоллекции.СкопироватьМассив(Источник); КонецФункции @@ -330,7 +330,7 @@ // Функция СкопироватьСписокЗначений(Источник) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСписокЗначений", "ЮТКоллекции.СкопироватьСписокЗначений"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСписокЗначений", "ЮТКоллекции.СкопироватьСписокЗначений", "24.03"); Возврат ЮТКоллекции.СкопироватьСписокЗначений(Источник); КонецФункции @@ -345,7 +345,7 @@ // Массив из Произвольный - Выгрузить значения Функция ВыгрузитьЗначения(Коллекция, ИмяРеквизита) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ВыгрузитьЗначения", "ЮТКоллекции.ВыгрузитьЗначения"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВыгрузитьЗначения", "ЮТКоллекции.ВыгрузитьЗначения", "24.03"); Возврат ЮТКоллекции.ВыгрузитьЗначения(Коллекция, ИмяРеквизита); КонецФункции @@ -360,7 +360,7 @@ // Массив из Произвольный - Пересечение массивов Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ПересечениеМассивов", "ЮТКоллекции.ПересечениеМассивов"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ПересечениеМассивов", "ЮТКоллекции.ПересечениеМассивов", "24.03"); Возврат ЮТКоллекции.ПересечениеМассивов(Коллекция1, Коллекция2); КонецФункции @@ -394,7 +394,7 @@ Значение9 = "_!%*", Значение10 = "_!%*") Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеВМассиве", "ЮТКоллекции.ЗначениеВМассиве"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеВМассиве", "ЮТКоллекции.ЗначениеВМассиве", "24.03"); Возврат ЮТКоллекции.ЗначениеВМассиве(Значение, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9, Значение10); КонецФункции @@ -406,7 +406,7 @@ // Источник - Массив из Произвольный Процедура ДополнитьМассив(Приемник, Источник) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ДополнитьМассив", "ЮТКоллекции.ДополнитьМассив"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ДополнитьМассив", "ЮТКоллекции.ДополнитьМассив", "24.03"); ЮТКоллекции.ДополнитьМассив(Приемник, Источник); КонецПроцедуры @@ -422,7 +422,7 @@ // Соответствие Из Произвольный - полученное соответствие. Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ВСоответствие", "ЮТКоллекции.ВСоответствие"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВСоответствие", "ЮТКоллекции.ВСоответствие", "24.03"); Возврат ЮТКоллекции.ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения); КонецФункции @@ -438,22 +438,11 @@ // Структура Из Произвольный - полученная структура. Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.ВСтруктуру", "ЮТКоллекции.ВСтруктуру"); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВСтруктуру", "ЮТКоллекции.ВСтруктуру", "24.03"); Возврат ЮТКоллекции.ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения); КонецФункции -// см. ЮТСравнениеКлиентСервер.ЗначенияРавны -// Устарела Метод перенесен в см. ЮТСравнениеКлиентСервер.ЗначенияРавны -//@skip-check doc-comment-export-function-return-section -//@skip-check doc-comment-parameter-section -Функция ДанныеСовпадают(Данные1, Данные2) Экспорт - - ВызовУстаревшегоМетода("ЮТОбщий.ДанныеСовпадают", "ЮТСравнениеКлиентСервер.ЗначенияРавны", Истина); - Возврат ЮТСравнениеКлиентСервер.ЗначенияРавны(Данные1, Данные2); - -КонецФункции - #КонецОбласти #Область ЧтениеДанных @@ -504,20 +493,8 @@ // Булево - Метод найден Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0, Кешировать = Истина) Экспорт - ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМодуля, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМодуля"); - ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода"); - - Если Кешировать Тогда - Возврат ЮТСлужебныйПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров); - КонецЕсли; - - ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода); - Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)"; - - Ошибка = ВыполнитьМетод(Алгоритм); - - ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода); - Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров; + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.МетодМодуляСуществует", Неопределено, "24.03"); + Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Кешировать); КонецФункции @@ -531,19 +508,8 @@ // Булево - Метод найден Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт -#Если ВебКлиент Тогда - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.МетодОбъектаСуществует"); -#Иначе - ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода"); - - ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода); - Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)"; - - Ошибка = ВыполнитьМетод(Алгоритм, , Объект); - - ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода); - Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров; -#КонецЕсли + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.МетодОбъектаСуществует", Неопределено, "24.03"); + Возврат ЮТМетодыСлужебный.МетодОбъектаСуществует(Объект, ИмяМетода); КонецФункции @@ -553,56 +519,15 @@ Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт -#Если ВебКлиент Тогда - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод"); -#Иначе - Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда - - Алгоритм = ПолноеИмяМетода; - - ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда - - Алгоритм = ПолноеИмяМетода + "()"; - - ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда - - Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, "Параметры")); - - Иначе - - ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры)); - - КонецЕсли; - - Попытка - //@skip-check server-execution-safe-mode - Выполнить(Алгоритм); - Исключение - Возврат ИнформацияОбОшибке(); - КонецПопытки; - - Возврат Неопределено; -#КонецЕсли + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВыполнитьМетод", Неопределено, "24.03"); + Возврат ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, Параметры, Объект); КонецФункции Функция ВычислитьБезопасно(Выражение) Экспорт -#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда - УстановитьБезопасныйРежим(Истина); - Попытка - Значение = Вычислить(Выражение); - Исключение - УстановитьБезопасныйРежим(Ложь); - ВызватьИсключение; - КонецПопытки; - - УстановитьБезопасныйРежим(Ложь); -#Иначе - Значение = Вычислить(Выражение); -#КонецЕсли - - Возврат Значение; + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВычислитьБезопасно", Неопределено, "24.03"); + Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(Выражение); КонецФункции @@ -679,6 +604,7 @@ Функция ПредставлениеТипа(Тип) Экспорт + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ПредставлениеТипа", Неопределено, "24.03"); Возврат ЮТТипыДанныхСлужебный.ПредставлениеТипа(Тип); КонецФункции @@ -708,26 +634,11 @@ // ОписаниеТипов - Описание типов любая ссылка Функция ОписаниеТиповЛюбаяСсылка() Экспорт - Возврат ЮТСлужебныйПовторногоИспользования.ОписаниеТиповЛюбаяСсылка(); + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ОписаниеТиповЛюбаяСсылка", Неопределено, "24.03"); + Возврат ЮТТипыДанныхСлужебный.ОписаниеТиповЛюбаяСсылка(); КонецФункции -Процедура ВызовУстаревшегоМетода(УстаревшийМетод, РекомендуемыйМетод = Неопределено, ВыбрасыватьИсключения = Ложь) Экспорт - - Сообщение = СтрШаблон("Используется устаревший метод '%1'. В следующих релизах он будет удален", УстаревшийМетод); - - Если ЗначениеЗаполнено(РекомендуемыйМетод) Тогда - Сообщение = СтрШаблон("%1. Рекомендуется использовать '%2'", Сообщение, РекомендуемыйМетод); - КонецЕсли; - - Если ВыбрасыватьИсключения Тогда - ВызватьИсключение Сообщение; - Иначе - СообщитьПользователю(Сообщение); - КонецЕсли; - -КонецПроцедуры - Функция УстановленБезопасныйРежим() Экспорт Возврат ЮТОбщийВызовСервера.УстановленБезопасныйРежим(); @@ -752,7 +663,7 @@ Функция Модуль(ИмяМодуля) Экспорт - Возврат ВычислитьБезопасно(ИмяМодуля); + Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(ИмяМодуля); КонецФункции @@ -970,24 +881,6 @@ КонецПроцедуры -Функция СтрокаПараметровМетода(Параметры, ИмяПеременнойСПараметрами) - - СписокПараметров = Новый Массив(); - - Для Инд = 0 По Параметры.ВГраница() Цикл - - Если Параметры[Инд] = Мокито.ПараметрПоУмолчанию() Тогда - СписокПараметров.Добавить(""); - Иначе - СписокПараметров.Добавить(СтрШаблон("%1[%2]", ИмяПеременнойСПараметрами, Инд)); - КонецЕсли; - - КонецЦикла; - - Возврат СтрСоединить(СписокПараметров, ", "); - -КонецФункции - Функция МножительПериода(ТипИнтервала) Множители = ЮТСлужебныйПовторногоИспользования.МножителиИнтервалов(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" index dfe6095b1..aa7332964 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" @@ -24,9 +24,9 @@ КонецФункции -Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0) Экспорт +Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода) Экспорт - Возврат ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров, Ложь); + Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Ложь); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" index 39108d292..4c70c9474 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" @@ -266,9 +266,9 @@ Для Каждого ИмяМодуля Из ЮТРасширения.ОбработчикиСобытий() Цикл - Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда + Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия); - Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия); Если Ошибка <> Неопределено Тогда Ошибки.Добавить(Ошибка); @@ -304,9 +304,9 @@ Ошибки = Новый Массив(); Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия); - Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда + Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда - Ошибка = ЮТОбщий.ВыполнитьМетод(Команда); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Команда); Если Ошибка <> Неопределено Тогда Ошибки.Добавить(Ошибка); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 5537c2534..eae0241a8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -67,7 +67,7 @@ Результат = ЮТСравнениеСервер.ТабличныеДокументыРавны(Данные1, Данные2); - ИначеЕсли ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТОбщий.ОписаниеТиповЛюбаяСсылка().СодержитТип(ТипЗначения) Тогда + ИначеЕсли ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда // Возвращаем ложь, так как для этих типов должно сработать обычное равенство Результат = Ложь; КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off @@ -379,7 +379,7 @@ ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ОжидаемоеЗначение) <> Неопределено; - ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТОбщий.МетодОбъектаСуществует(ПроверяемоеЗначение, "Найти") Тогда + ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТМетодыСлужебный.МетодОбъектаСуществует(ПроверяемоеЗначение, "Найти") Тогда ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение) <> Неопределено; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index 5631b3eca..d0a526862 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -123,6 +123,50 @@ КонецФункции +// Выполняет сравнение версий +// +// Параметры: +// Версия1 - Строка +// Версия2 - Строка +// +// Возвращаемое значение: +// Число - Результат сравнения +// `-1` - Версия1 меньше Версия2 +// `0` - Версии равны +// `1` - Версия1 больше Версия2 +Функция СравнитьВерсии(Версия1, Версия2) Экспорт + + ЧастиВерсия1 = СтрРазделить(Версия1, "."); + ЧастиВерсия2 = СтрРазделить(Версия2, "."); + + КоличествоЧастейВерсия1 = ЧастиВерсия1.Количество(); + КоличествоЧастейВерсия2 = ЧастиВерсия2.Количество(); + + КоличествоЧастей = Макс(КоличествоЧастейВерсия1, КоличествоЧастейВерсия2); + + Для Инд = КоличествоЧастейВерсия1 По КоличествоЧастей - 1 Цикл + ЧастиВерсия1.Добавить("0"); + КонецЦикла; + + Для Инд = КоличествоЧастейВерсия2 По КоличествоЧастей - 1 Цикл + ЧастиВерсия2.Добавить("0"); + КонецЦикла; + + Результат = 0; + + Для Разряд = 0 По КоличествоЧастей - 1 Цикл + + Результат = Число(ЧастиВерсия1[Разряд]) - Число(ЧастиВерсия2[Разряд]); + Если Результат <> 0 Тогда + Прервать; + КонецЕсли; + + КонецЦикла; + + Возврат Макс(Мин(Результат, 1), -1); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index a61dfa481..89f87eca0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -87,18 +87,17 @@ Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки); КонецЕсли; - СсылочныеТипы = ЮТОбщий.ОписаниеТиповЛюбаяСсылка(); Ошибки = Новый Массив; Для Каждого Ссылка Из Ссылки Цикл ТипЗначения = ТипЗнч(Ссылка); - Если Ссылка = Неопределено ИЛИ СтрНачинаетсяС(ЮТОбщий.ПредставлениеТипа(ТипЗначения), "Enum") Тогда + Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда Продолжить; КонецЕсли; Попытка - Если СсылочныеТипы.СодержитТип(ТипЗначения) Тогда + Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда Объект = Ссылка.ПолучитьОбъект(); Если Объект <> Неопределено Тогда Объект.Удалить(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 35a5c6d50..c0ec8f79f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -169,7 +169,7 @@ Функция СлучайноЗначениеСистемногоПеречисления(Тип) - Менеджер = ЮТОбщий.ВычислитьБезопасно(ЮТТипыДанныхСлужебный.ИмяСистемногоПеречисления(Тип)); + Менеджер = ЮТМетодыСлужебный.ВычислитьБезопасно(ЮТТипыДанныхСлужебный.ИмяСистемногоПеречисления(Тип)); Значения = Новый Массив(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 92d1d41fb..1611f98e1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -282,78 +282,6 @@ КонецФункции -#Область Устаревшие - -// Регистрирует тест. -// Deprecate -// -// Параметры: -// ИмяТестовогоМетода - Строка - Имя тестового метода -// ПредставлениеТеста - Строка - Представление теста -// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми -// Контексты - Строка - Контексты, строка перечисления контекстов вызова, разделенных запятой. -// Возможные значения см. ЮТФабрика.КонтекстыВызова -// Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания -Функция Тест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "", Контексты = Неопределено) Экспорт - - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.Тест", "ЮТТесты.ДобавитьТест", Истина); - Возврат ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); - -КонецФункции - -// Регистрирует тест вызываемый на клиенте. -// Deprecate -// -// Параметры: -// ИмяТестовогоМетода - Строка - Имя тестового метода -// ПредставлениеТеста - Строка - Представление теста -// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми -// -// Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания -Функция ТестКлиент(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт - - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестКлиент", "ЮТТесты.ДобавитьКлиентскийТест", Истина); - Возврат ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой); - -КонецФункции - -// Регистрирует тест вызываемый на сервере. -// Deprecate -// -// Параметры: -// ИмяТестовогоМетода - Строка - Имя тестового метода -// ПредставлениеТеста - Строка - Представление теста -// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми -// -// Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания -Функция ТестСервер(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт - - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестСервер", "ЮТТесты.ДобавитьСерверныйТест", Истина); - Возврат ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой); - -КонецФункции - -// Создает и регистрирует набор, в который будут добавляться последующие тесты. -// Deprecate -// -// Параметры: -// Имя - Строка - Имя набора тестов -// ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми -// -// Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания -Функция ТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт - - ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестовыйНабор", "ЮТТесты.ДобавитьТестовыйНабор", Истина); - Возврат ДобавитьТестовыйНабор(Имя, ТегиСтрокой); - -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 686926c45..0a60570bb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -114,6 +114,19 @@ КонецФункции +Функция ЭтоТипПеречисления(ТипЗначения) Экспорт + + ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); + Возврат СтрНачинаетсяС(ПредставлениеТипа, "EnumRef."); + +КонецФункции + +Функция ОписаниеТиповЛюбаяСсылка() Экспорт + + Возврат ЮТСлужебныйПовторногоИспользования.ОписаниеТиповЛюбаяСсылка(); + +КонецФункции + #Область СистемныеПеречисления Функция ЭтоСистемноеПеречисление(Тип) Экспорт diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index d2cce31b5..0c9b25380 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -893,7 +893,7 @@ УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); Модуль = ПроверяемоеЗначение(Контекст); - Результат = ЮТОбщий.МетодОбъектаСуществует(Модуль, ИмяМетода); + Результат = ЮТМетодыСлужебный.МетодОбъектаСуществует(Модуль, ИмяМетода); Если НЕ Результат Тогда Сообщение = СтрШаблон("имеет метод `%1`", ИмяМетода); СгенерироватьОшибкуСравнения(Сообщение, Модуль, ИмяМетода); @@ -1585,13 +1585,13 @@ КонецЕсли; НачатьТранзакцию(); // BSLLS:PairingBrokenTransaction-off BSLLS:BeginTransactionBeforeTryCatch-off - Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); ОтменитьТранзакцию(); // BSLLS:WrongUseOfRollbackTransactionMethod-off Иначе - Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); КонецЕсли; #Иначе - Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); #КонецЕсли Если Ошибка <> Неопределено Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" index 445ba610b..9f5ed8cfa 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" @@ -63,7 +63,7 @@ ЮТТесты.ПередЧтениемСценариевМодуля(МетаданныеМодуля); ПолноеИмяМетода = МетаданныеМодуля.Имя + "." + ИмяМетодаСценариев(); - Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода); Если Ошибка <> Неопределено Тогда @@ -74,7 +74,7 @@ ЭтоТестовыйМодуль = Ложь; Ошибка = Неопределено; ИначеЕсли ТипОшибки = ТипыОшибок.МалоПараметров Тогда - Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ЮТКоллекции.ЗначениеВМассиве(Неопределено)); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ЮТКоллекции.ЗначениеВМассиве(Неопределено)); ЮТОбщий.СообщитьПользователю("Используется устаревшая сигнатура метода `ИсполняемыеСценарии`, метод не должен принимать параметров."); КонецЕсли; @@ -120,18 +120,18 @@ КонецЕсли; #Если Сервер Тогда - Возврат ЮТОбщий.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); + Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); #КонецЕсли #Если ТолстыйКлиентУправляемоеПриложение ИЛИ ТонкийКлиент Тогда Если МетаданныеМодуля.КлиентУправляемоеПриложение Тогда - Возврат ЮТОбщий.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); + Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); КонецЕсли; #КонецЕсли #Если ТолстыйКлиентОбычноеПриложение Тогда Если МетаданныеМодуля.КлиентОбычноеПриложение Тогда - Возврат ЮТОбщий.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); + Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); КонецЕсли; #КонецЕсли diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index cdad1937b..de9a5848b 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -80,6 +80,7 @@ CommonModule.ЮТМетаданные CommonModule.ЮТМетаданныеПовтИсп CommonModule.ЮТМетаданныеСервер + CommonModule.ЮТМетодыСлужебный CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий CommonModule.ЮТОбщийВызовСервера diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index c476ce8d6..28e5e21ca 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -23,6 +23,7 @@ ЮТТесты .ДобавитьТест("ДобавитьСтроку") .ДобавитьТест("СтрокаСимволов") + .ДобавитьТест("СравнитьВерсии") ; КонецПроцедуры @@ -66,6 +67,26 @@ КонецПроцедуры +Процедура СравнитьВерсии() Экспорт + + Варианты = ЮТест.Варианты("Версия1, Версия2, Результат") + .Добавить("1", "1", 0) + .Добавить("1.2.3.4", "1.3", -1) + .Добавить("1.2.3", "1.2", 1) + .Добавить("1.2.3.999", "1.2.3.1", 1) + .Добавить("1.2.3.1", "1.2.3.999", -1) + .СписокВариантов(); + + Для Каждого Вариант Из Варианты Цикл + + Результат = ЮТСтроки.СравнитьВерсии(Вариант.Версия1, Вариант.Версия2); + ЮТест.ОжидаетЧто(Результат, СтрШаблон("%1 и %2", Вариант.Версия1, Вариант.Версия2)) + .Равно(Вариант.Результат); + + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index e3e200ea1..5161cac88 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -2401,7 +2401,7 @@ Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр); ЮТест.ОжидаетЧто(ПроверяемоеЗначение); - Ошибка = ЮТОбщий.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры); Возврат Ошибка; КонецФункции From 6c92beb4f0ecf7a7b8cccbbdb4774dfdfd2cbf8b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 11 Mar 2024 14:43:33 +0300 Subject: [PATCH 15/47] =?UTF-8?q?=D0=A1=D0=BB=D1=83=D0=B6=D0=B5=D0=B1?= =?UTF-8?q?=D0=BD=D1=8B=D0=BC=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F=D0=BC?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=81?= =?UTF-8?q?=D1=83=D1=84=D1=84=D0=B8=D0=BA=D1=81=20"=D0=A1=D0=BB=D1=83?= =?UTF-8?q?=D0=B6=D0=B5=D0=B1=D0=BD=D1=8B=D0=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\272\320\270\321\202\320\276.suppress" | 4 - ...\320\265\320\275\320\270\320\265.suppress" | 4 - ...\320\265\321\200\320\272\320\270.suppress" | 4 - .../Module.bsl" | 16 +- ...\320\261\320\275\321\213\320\271.suppress" | 4 - .../Module.bsl" | 34 +- .../Module.bsl" | 10 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 2 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 2 +- .../Module.bsl" | 26 +- ...\321\200\320\262\320\265\321\200.suppress" | 4 - .../Module.bsl" | 10 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 4 +- ...0\273\321\214\320\275\321\213\320\271.mdo" | 4 +- .../Module.bsl" | 79 +- ...0\273\320\270\320\265\320\275\321\202.mdo" | 2 +- .../Module.bsl" | 32 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 2 +- .../Module.bsl" | 6 +- .../Module.bsl" | 4 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 8 +- ...0\273\320\270\320\265\320\275\321\202.mdo" | 2 +- .../Module.bsl" | 8 +- .../Module.bsl" | 6 +- ...\321\200\320\262\320\265\321\200.suppress" | 4 - .../Module.bsl" | 29 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 6 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 4 +- ...0\273\320\270\320\265\320\275\321\202.mdo" | 2 +- .../Module.bsl" | 26 +- .../Module.bsl" | 377 +-------- .../Module.bsl" | 393 ++++++++++ ...0\265\320\261\320\275\321\213\320\271.mdo" | 11 + .../Module.bsl" | 4 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 106 ++- .../Module.bsl" | 58 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 16 +- ...0\262\321\202\320\230\321\201\320\277.mdo" | 2 +- .../Module.bsl" | 8 +- .../Module.bsl" | 37 +- .../Module.bsl" | 10 +- .../Module.bsl" | 4 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- ...\321\202\321\207\320\265\321\202.suppress" | 4 - .../Module.bsl" | 4 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- ...\202\321\207\320\265\321\202JSON.suppress" | 4 - .../Module.bsl" | 8 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 12 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 8 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- ...\321\203\321\201\320\272\320\260.suppress" | 4 - .../Module.bsl" | 2 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 8 +- .../Module.bsl" | 2 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 4 +- ...0\262\321\202\320\230\321\201\320\277.mdo" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 6 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 2 +- .../Module.bsl" | 0 ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 2 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 68 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 6 +- .../Module.bsl" | 64 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 5 +- ...\321\200\320\262\320\265\321\200.suppress" | 4 - .../Module.bsl" | 6 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 81 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 2 +- .../Module.bsl" | 24 +- .../Module.bsl" | 6 +- .../Module.bsl" | 12 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 8 +- ...1\207\320\265\320\275\320\270\320\271.mdo" | 2 +- .../Module.bsl" | 20 +- .../Module.bsl" | 32 +- .../Module.bsl" | 99 +-- .../Module.bsl" | 14 +- .../Module.bsl" | 724 +----------------- ...0\261\321\200\320\270\320\272\320\260.mdo" | 2 +- .../Module.bsl" | 698 +++++++++++++++++ ...0\265\320\261\320\275\321\213\320\271.mdo" | 11 + .../Module.bsl" | 4 +- .../Module.bsl" | 20 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- ...\321\200\320\262\320\265\321\200.suppress" | 4 - .../Module.bsl" | 38 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 8 +- ...1\200\320\262\320\265\321\200\320\260.mdo" | 2 +- .../Module.bsl" | 8 +- .../src/Configuration/Configuration.mdo | 70 +- .../ManagedApplicationModule.bsl | 4 +- .../OrdinaryApplicationModule.bsl | 4 +- .../Form.suppress" | 4 - .../Module.bsl" | 20 +- .../Module.bsl" | 14 +- ...0\270\321\202\320\265\320\273\321\214.mdo" | 16 +- ...1\202\320\265\320\272\321\201\321\202.mdo" | 6 +- ...0\265\321\200\320\262\320\270\321\201.mdo" | 22 +- ...0\260\321\202\320\265\320\273\321\214.mdo" | 4 +- ...0\260\320\275\320\275\321\213\320\265.mdo" | 6 +- ...0\264\320\265\320\275\320\270\321\217.mdo" | 10 +- ...0\261\321\213\321\202\320\270\320\271.mdo" | 4 +- ...1\202\321\207\320\265\321\202\320\260.mdo" | 6 +- ...0\270\321\207\320\275\321\213\320\271.mdo" | 22 + ...0\276\320\272\320\270\321\202\320\276.mdo" | 2 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- ...0\236\320\261\321\211\320\270\320\271.mdo" | 2 +- ...0\277\321\200\320\276\321\201\321\213.mdo" | 2 +- .../Module.bsl" | 14 +- ...0\273\320\270\320\265\320\275\321\202.mdo" | 2 +- .../Module.bsl" | 4 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 2 +- ...0\260\320\275\320\275\321\213\321\205.mdo" | 2 +- .../Module.bsl" | 10 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 2 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- ...0\221\320\260\320\275\320\272\320\270.mdo" | 2 +- ...0\277\320\260\320\275\320\270\320\270.mdo" | 2 +- ...\214_\320\233\321\216\320\264\320\270.mdo" | 2 +- .../Module.bsl" | 12 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 4 +- .../Module.bsl" | 12 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 2 +- ...0\260\320\275\320\275\321\213\320\265.mdo" | 2 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 6 +- ...0\242\320\265\321\201\321\202\321\213.mdo" | 2 +- .../Module.bsl" | 36 +- .../Module.bsl" | 38 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 4 +- .../Module.bsl" | 44 +- ...0\265\320\261\320\275\321\213\320\271.mdo" | 2 +- .../Module.bsl" | 2 +- tests/src/Configuration/Configuration.mdo | 16 +- 155 files changed, 2036 insertions(+), 1880 deletions(-) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/\320\234\320\276\320\272\320\270\321\202\320\276.suppress" delete mode 100644 "exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265.suppress" delete mode 100644 "exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270.suppress" delete mode 100644 "exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (95%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (81%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (94%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (85%) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (55%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (80%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" (84%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" (72%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" (81%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" (84%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (74%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (83%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (96%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (81%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" (93%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" (85%) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (91%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (89%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (92%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (81%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" (86%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" (85%) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (88%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (80%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (87%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (83%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" (64%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" (87%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (96%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (84%) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (98%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (87%) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (82%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (88%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (95%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (87%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (95%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (88%) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (96%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (88%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (96%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (80%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" (91%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" (87%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (96%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (84%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (100%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (81%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (97%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (88%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (87%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (85%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (79%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (89%) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (93%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (80%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (87%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (84%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (95%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (80%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" (97%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" (80%) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (92%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (87%) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (77%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (88%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" (72%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" (81%) delete mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.suppress" rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" (86%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" (84%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (90%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (78%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (84%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (83%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (91%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (85%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (89%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (69%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (91%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (83%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (84%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (77%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" (83%) rename "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" => "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" (86%) diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/\320\234\320\276\320\272\320\270\321\202\320\276.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/\320\234\320\276\320\272\320\270\321\202\320\276.suppress" deleted file mode 100644 index 0491407cf..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/\320\234\320\276\320\272\320\270\321\202\320\276.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265.suppress" deleted file mode 100644 index 6ef77900c..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270.suppress" deleted file mode 100644 index 20316abcb..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index bdff3ceb3..142426c91 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,7 +20,7 @@ Функция Включен() Экспорт - ДанныеКонтекста = ЮТКонтекст.ДанныеКонтекста(); + ДанныеКонтекста = ЮТКонтекстСлужебный.ДанныеКонтекста(); Настройки = Неопределено; Возврат ДанныеКонтекста <> Неопределено И ДанныеКонтекста.Свойство(КлючНастроек(), Настройки) И Настройки <> Неопределено; @@ -40,7 +40,7 @@ // см. НовыеНастройки Функция Настройки() Экспорт - Настройки = ЮТКонтекст.ЗначениеКонтекста(КлючНастроек()); + Настройки = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючНастроек()); Если Настройки = Неопределено Тогда ВызватьИсключение "Что-то пошло не так, настройки Мокито не инициализированы"; @@ -206,7 +206,7 @@ ИначеЕсли Условие.Режим = ТипыУсловий.Значение Тогда - Совпадает = ЮТСравнениеКлиентСервер.ЗначенияРавны(Условие.Значение, Параметр); + Совпадает = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Условие.Значение, Параметр); ИначеЕсли Условие.Режим = ТипыУсловий.Тип Тогда @@ -218,7 +218,7 @@ ИначеЕсли Условие.Режим = ТипыУсловий.Предикат Тогда - Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Параметр, Условие.Предикат); + Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Параметр, Условие.Предикат); Совпадает = Результат.Успешно; КонецЕсли; @@ -531,7 +531,7 @@ Процедура ИнициализироватьНастройки() Экспорт - ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина); КонецПроцедуры @@ -568,7 +568,7 @@ Процедура ОчиститьНастройки() Экспорт - ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), Неопределено); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), Неопределено); КонецПроцедуры @@ -611,10 +611,10 @@ Условия.Добавить(Параметр); - ИначеЕсли ЮТПредикатыКлиентСервер.ЭтоПредикат(Параметр) Тогда + ИначеЕсли ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Параметр) Тогда Маска = ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90); - Маска.Вставить("Предикат", ЮТПредикатыКлиентСервер.НаборПредикатов(Параметр)); + Маска.Вставить("Предикат", ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(Параметр)); Условия.Добавить(Маска); Иначе diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.suppress" deleted file mode 100644 index 3f3f0462d..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" index 65dc068c9..e2a540455 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" @@ -35,7 +35,7 @@ Функция ЗначенияРеквизитов(Ссылка, ИменаРеквизитов) Экспорт //@skip-check constructor-function-return-section - Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитов(Ссылка, ИменаРеквизитов, Ложь); + Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитов(Ссылка, ИменаРеквизитов, Ложь); КонецФункции @@ -49,7 +49,7 @@ // Произвольный - Значение реквизита ссылки Функция ЗначениеРеквизита(Ссылка, ИмяРеквизита) Экспорт - Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитов(Ссылка, ИмяРеквизита, Истина); + Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитов(Ссылка, ИмяРеквизита, Истина); КонецФункции @@ -65,9 +65,9 @@ // Структура, Неопределено - Содержит все данные записи, включая табличный части Функция Запись(ИмяТаблицы, Предикат) Экспорт - ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*"); + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*"); //@skip-check constructor-function-return-section - Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Истина); + Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Истина); КонецФункции @@ -83,8 +83,8 @@ // Массив из Структура - Найденные записи, включая табличный части Функция Записи(ИмяТаблицы, Предикат) Экспорт - ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*"); - Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Ложь); + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*"); + Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Ложь); КонецФункции @@ -102,8 +102,8 @@ // Функция ЗначенияРеквизитовЗаписи(ИмяТаблицы, Предикат, ИменаРеквизитов) Экспорт - ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИменаРеквизитов); - Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Ложь); + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИменаРеквизитов); + Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Ложь); КонецФункции @@ -121,9 +121,9 @@ // Функция ЗначениеРеквизитаЗаписи(ИмяТаблицы, Предикат, ИмяРеквизита) Экспорт - ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИмяРеквизита); + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИмяРеквизита); //@skip-check constructor-function-return-section - Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Истина); + Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Истина); КонецФункции @@ -139,7 +139,7 @@ // Булево - Таблица содержит записи Функция ТаблицаСодержитЗаписи(ИмяТаблицы, Предикат = Неопределено) Экспорт - ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат); + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат); Возврат НЕ РезультатПустой(ОписаниеЗапроса); КонецФункции @@ -155,9 +155,9 @@ Функция РезультатЗапроса(ОписаниеЗапроса) Экспорт #Если Клиент Тогда - Возврат ЮТЗапросыВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Истина); + Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Истина); #Иначе - Возврат ЮТЗапросыВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Ложь); + Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Ложь); #КонецЕсли КонецФункции @@ -171,7 +171,7 @@ // Булево - Результат пустой Функция РезультатПустой(ОписаниеЗапроса) Экспорт - Возврат ЮТЗапросыВызовСервера.РезультатПустой(ОписаниеЗапроса); + Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатПустой(ОписаниеЗапроса); КонецФункции @@ -202,7 +202,7 @@ Функция НовыйОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля) Экспорт - Возврат ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля); + Возврат ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля); КонецФункции @@ -228,10 +228,10 @@ КонецЕсли; Предикат = ЮТест.Предикат().Реквизит("Регистратор").Равно(Документ); - ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяРегистра, Предикат, "*"); + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяРегистра, Предикат, "*"); ОписаниеЗапроса.Порядок.Добавить("НомерСтроки"); - Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Ложь); + Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Ложь); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 95% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index b7475ca4d..384cfcc99 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -276,9 +276,9 @@ Функция ШаблонУсловия(ВыражениеПредиката, ВыраженияПредикатов, ТипРеквизита) Выражение = ВыражениеПредиката.ВидСравнения; - Отрицание = ЮТПредикатыКлиентСервер.ЭтоВыраженияОтрицания(Выражение); + Отрицание = ЮТПредикатыСлужебныйКлиентСервер.ЭтоВыраженияОтрицания(Выражение); Если Отрицание Тогда - Выражение = ЮТПредикатыКлиентСервер.ВыраженияБезОтрицания(Выражение); + Выражение = ЮТПредикатыСлужебныйКлиентСервер.ВыраженияБезОтрицания(Выражение); КонецЕсли; Если Выражение = ВыраженияПредикатов.Равно Тогда @@ -323,7 +323,7 @@ ДлинаПсевдонима = СтрДлина(ПсевдонимТаблицы); Для Каждого ВыражениеПредиката Из Предикаты Цикл - Если ЮТПредикатыКлиентСервер.ЭтоПредикат(ВыражениеПредиката) И ЗначениеЗаполнено(ВыражениеПредиката.ИмяРеквизита) Тогда + Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ВыражениеПредиката) И ЗначениеЗаполнено(ВыражениеПредиката.ИмяРеквизита) Тогда Реквизиты.Добавить(СтрШаблон("%1.%2 КАК _%3", ПсевдонимТаблицы, ВыражениеПредиката.ИмяРеквизита, Реквизиты.Количество())); КонецЕсли; КонецЦикла; @@ -337,7 +337,7 @@ Попытка Схема.УстановитьТекстЗапроса(СтрШаблон("ВЫБРАТЬ %1 ИЗ %2 КАК %3", СтрСоединить(Реквизиты, ","), ИмяТаблицы, ПсевдонимТаблицы)); Исключение - ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Не удалось получить типы реквизитов отбора. + ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки("Не удалось получить типы реквизитов отбора. |Возможно имена реквизитов заданы неверно"); ВызватьИсключение; КонецПопытки; @@ -372,7 +372,7 @@ Для Каждого Условие Из Условия Цикл - Если НЕ ЮТПредикатыКлиентСервер.ЭтоПредикат(Условие) Тогда + Если НЕ ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Условие) Тогда Результат.Добавить(Условие); Продолжить; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 81% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 10fbfd8d8..d9cf66049 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТЗапросыВызовСервера + ЮТЗапросыСлужебныйВызовСервера ru Запросы вызов сервера diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 94% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 61c469bd4..d964e146e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -29,7 +29,7 @@ КонецЕсли; Если ПредикатыУсловия <> Неопределено Тогда - Описание.Условия = ЮТПредикатыКлиентСервер.НаборПредикатов(ПредикатыУсловия); + Описание.Условия = ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(ПредикатыУсловия); КонецЕсли; Возврат Описание; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 85% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index f0a712979..081f5647d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,6 +1,6 @@ - ЮТЗапросыКлиентСервер + ЮТЗапросыСлужебныйКлиентСервер ru Запросы клиент сервер diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" index 9f216b8af..ab781986a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" @@ -16,8 +16,16 @@ // //©///////////////////////////////////////////////////////////////////////////©// -#Область СлужебныйПрограммныйИнтерфейс +#Область ПрограммныйИнтерфейс +// Формирует текст исключения о некорректных параметрах вызова метода +// +// Параметры: +// ИмяМетода - Строка +// Пояснение - Строка +// +// Возвращаемое значение: +// Строка - Текст исключения Функция НекорректныеПараметрыМетода(ИмяМетода, Пояснение = Неопределено) Экспорт Сообщение = СтрШаблон("Некорректные параметры метода `%1`"); @@ -25,12 +33,28 @@ КонецФункции +// Формирует текст исключения о неподдерживаемом значении параметра вызова метода +// +// Параметры: +// ИмяМетода - Строка +// ЗначениеПараметра - Произвольный +// +// Возвращаемое значение: +// Строка - Текст исключения Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра)); КонецФункции +// Формирует текст исключения о недоступности метода в указанном контексте +// +// Параметры: +// ИмяМетода - Строка +// ИмяКонтекста - Строка +// +// Возвращаемое значение: +// Строка - Текст исключения Функция МетодНеДоступен(ИмяМетода, ИмяКонтекста = "веб-клиенте") Экспорт Возврат СтрШаблон("Метод `%1` не доступен в/на %2", ИмяМетода, ИмяКонтекста); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" deleted file mode 100644 index 71114e427..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 55% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 83ad8d2e7..77ad127d7 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,14 +22,14 @@ // Выполняет тесты наборов модуля. Возвращает результат прогона // Это обертка для прогона на сервере // Параметры: -// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы исполняемых тестов, структуру набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы исполняемых тестов, структуру набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля // // Возвращаемое значение: -// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов Функция ВыполнитьГруппуНаборовТестов(Знач Наборы, Знач ТестовыйМодуль) Экспорт - Возврат ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль); + Возврат ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 80% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 844cea612..bbcec480b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТИсполнительСервер + ЮТИсполнительСлужебныйВызовСервера ru Исполнитель тестов (сервер) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" similarity index 84% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" index faba7e613..0a5099ab3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ Процедура ЮТВыполнитьМодульноеТестирование() Экспорт - ЮТИсполнительКлиент.ВыполнитьМодульноеТестирование(); + ЮТИсполнительСлужебныйКлиент.ВыполнитьМодульноеТестирование(); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" similarity index 72% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" index 03a76c730..3a25f8920 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" @@ -1,9 +1,9 @@ - ЮТИсполнительГлобальный + ЮТИсполнительСлужебныйГлобальный ru - Исполнитель клиент глоб + Исполнитель глобальный true true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" similarity index 81% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 776b5a20c..55ce81d8b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -80,7 +80,7 @@ Продолжить; КонецЕсли; - РежимИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим); + РежимИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим); Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда КлиентскиеНаборы.Добавить(Набор); @@ -96,12 +96,12 @@ ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда - Результаты = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный); + Результаты = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный); КонецЕсли; Если ЗначениеЗаполнено(СерверныеНаборы) Тогда - Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный); - ЮТЛогирование.ВывестиСерверныеСообщения(); + Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный); + ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); ЮТКоллекции.ДополнитьМассив(Результаты, Результат); КонецЕсли; @@ -117,6 +117,17 @@ ВызватьИсключение ТекстОшибки; КонецПроцедуры +Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт + + ЮТКонтекстСлужебный.ИнициализироватьКонтекст(); + ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ПараметрыЗапуска.settings); + // Повторно сохраним для передачи на сервер + ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения()); + + ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -132,7 +143,7 @@ Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); - ЮТПараметрыЗапуска.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик); + ЮТПараметрыЗапускаСлужебный.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик); КонецПроцедуры @@ -150,18 +161,17 @@ Процедура ОбработчикИнициализация(Результат, ДополнительныеПараметры) Экспорт - ЮТСобытия.Инициализация(ДополнительныеПараметры.ПараметрыЗапуска); - + ВыполнитьИнициализацию(ДополнительныеПараметры.ПараметрыЗапуска); ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецПроцедуры Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт - ЮТСобытия.ПередЧтениеСценариев(); + ЮТСобытияСлужебный.ПередЧтениеСценариев(); - ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска); - ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули); + ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска); + ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули); ИсполняемыеТестовыеМодули = Новый Массив(); @@ -170,7 +180,7 @@ ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль); КонецЦикла; - ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули); + ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули); ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули); @@ -179,7 +189,7 @@ Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт - ЮТСобытия.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули); + ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули); РезультатыТестирования = Новый Массив(); @@ -190,7 +200,7 @@ КонецЦикла; - ЮТСобытия.ПослеВыполненияТестов(РезультатыТестирования); + ЮТСобытияСлужебный.ПослеВыполненияТестов(РезультатыТестирования); ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования); @@ -201,7 +211,7 @@ Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); - ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик); + ЮТОтчетСлужебный.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик); Иначе ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецЕсли; @@ -218,7 +228,7 @@ Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт Параметры = ДополнительныеПараметры.ПараметрыЗапуска; - ЮТКонтекст.УдалитьКонтекст(); + ЮТКонтекстСлужебный.УдалитьКонтекст(); Если Параметры.showReport Тогда ПоказатьОтчет(ДополнительныеПараметры.РезультатыТестирования, Параметры); @@ -232,7 +242,7 @@ Если ДополнительныеПараметры.ПараметрыЗапуска.ПодключатьВнешниеКомпоненты Тогда Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); - ЮТКомпонентыКлиент.ТихаяУстановкаКомпонент(Обработчик); + ЮТКомпонентыСлужебныйКлиент.ТихаяУстановкаКомпонент(Обработчик); Иначе ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецЕсли; @@ -243,18 +253,9 @@ #Область ОбработчикиСобытий -Процедура Инициализация(Параметры) Экспорт - - ЮТКонтекст.ИнициализироватьКонтекст(); - ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(Параметры.settings); - // Повторно сохраним для передачи на сервер - ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекст.ГлобальныеНастройкиВыполнения()); - -КонецПроцедуры - Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт - ЮТКонтекст.УстановитьКонтекстИсполнения(ЮТФабрика.НовыйКонтекстИсполнения()); + ЮТКонтекстСлужебный.УстановитьКонтекстИсполнения(ЮТФабрикаСлужебный.НовыйКонтекстИсполнения()); КонецПроцедуры @@ -269,17 +270,17 @@ Функция ИсполняемыйТестовыйМодуль(ТестовыйМодуль) - ИсполняемыйТестовыйМодуль = ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль); + ИсполняемыйТестовыйМодуль = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль); - КонтекстыПриложения = ЮТФабрика.КонтекстыПриложения(); - КонтекстыМодуля = ЮТФабрика.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля); + КонтекстыПриложения = ЮТФабрикаСлужебный.КонтекстыПриложения(); + КонтекстыМодуля = ЮТФабрикаСлужебный.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля); КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения(); ИсполняемыйТестовыйМодуль.НаборыТестов = ИсполняемыеНаборыМодуля(ТестовыйМодуль); Для Каждого Набор Из ИсполняемыйТестовыйМодуль.НаборыТестов Цикл - КонтекстИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим); + КонтекстИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим); Если КонтекстыПриложения.Найти(Набор.Режим) = Неопределено Тогда ОшибкаКонтекста = "Неподдерживаемый режим запуска"; @@ -293,9 +294,9 @@ Если ОшибкаКонтекста <> Неопределено Тогда Набор.Выполнять = Ложь; - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста); Для Каждого Тест Из Набор.Тесты Цикл - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста); КонецЦикла; КонецЕсли; @@ -321,14 +322,14 @@ Для Каждого Контекст Из Тест.КонтекстВызова Цикл Если НЕ НаборыКонтекстов.Свойство(Контекст) Тогда - ИсполняемыйНабор = ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль); + ИсполняемыйНабор = ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль); ИсполняемыйНабор.Режим = Контекст; НаборыКонтекстов.Вставить(Контекст, ИсполняемыйНабор); Иначе ИсполняемыйНабор = НаборыКонтекстов[Контекст]; КонецЕсли; - ИсполняемыйТест = ЮТФабрика.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); + ИсполняемыйТест = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); Если Тест.Свойство("Ошибки") И Тест.Ошибки.Количество() > 0 Тогда ИсполняемыйТест.Ошибки = ЮТКоллекции.СкопироватьМассив(Тест.Ошибки); КонецЕсли; @@ -358,7 +359,7 @@ Если Ошибки.Количество() > 0 Тогда Для Каждого Ошибка Из Ошибки Цикл - Если Ошибка.ТипОшибки = ЮТФабрика.ТипыОшибок().ЧтенияТестов Тогда + Если Ошибка.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов Тогда Тест = ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка); ТестыНабора.Добавить(Тест); @@ -369,8 +370,8 @@ КонецПроцедуры Функция ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка) - Контексты = ЮТФабрика.КонтекстыМодуля(Модуль.МетаданныеМодуля); - Тест = ЮТФабрика.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты); + Контексты = ЮТФабрикаСлужебный.КонтекстыМодуля(Модуль.МетаданныеМодуля); + Тест = ЮТФабрикаСлужебный.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты); Тест.Вставить("Ошибки", Новый Массив); Тест.Ошибки.Добавить(ЮТКоллекции.СкопироватьСтруктуру(Ошибка)); @@ -389,7 +390,7 @@ // Записать код возврата. // // Параметры: -// РезультатыТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// РезультатыТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля // Параметры - см. ЮТФабрика.ПараметрыЗапуска Процедура ЗаписатьКодВозврата(РезультатыТестирования, Параметры) @@ -446,7 +447,7 @@ Возврат Результат; КонецЕсли; - ТипОшибкиПропущен = ЮТФабрика.ТипыОшибок().Пропущен; + ТипОшибкиПропущен = ЮТФабрикаСлужебный.ТипыОшибок().Пропущен; Для Каждого ОписаниеОшибки Из Тест.Ошибки Цикл Если ОписаниеОшибки.ТипОшибки <> ТипОшибкиПропущен Тогда Результат = Истина; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" similarity index 84% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" index 049d96e65..6b2ea6dff 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -1,6 +1,6 @@ - ЮТИсполнительКлиент + ЮТИсполнительСлужебныйКлиент ru Исполнитель клиент diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 74% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 8afb3743c..9c619b516 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -20,18 +20,18 @@ // Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер) // Параметры: -// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля // // Возвращаемое значение: -// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении +// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении Функция ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль) Экспорт Если Наборы.Количество() = 0 Тогда Возврат Наборы; КонецЕсли; - ЮТСобытия.ПередВсемиТестамиМодуля(ТестовыйМодуль); + ЮТСобытияСлужебный.ПередВсемиТестамиМодуля(ТестовыйМодуль); Если ЕстьОшибки(ТестовыйМодуль) Тогда СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки); @@ -48,7 +48,7 @@ КонецЦикла; - ЮТСобытия.ПослеВсехТестовМодуля(ТестовыйМодуль); + ЮТСобытияСлужебный.ПослеВсехТестовМодуля(ТестовыйМодуль); Если ЕстьОшибки(ТестовыйМодуль) Тогда СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки); @@ -67,7 +67,7 @@ Функция ВыполнитьНаборТестов(Набор, ТестовыйМодуль) Набор.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах(); - ЮТСобытия.ПередТестовымНабором(ТестовыйМодуль, Набор); + ЮТСобытияСлужебный.ПередТестовымНабором(ТестовыйМодуль, Набор); Если ЕстьОшибки(Набор) Тогда Возврат Неопределено; @@ -86,12 +86,12 @@ ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции); - Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест); + Тест.Статус = ЮТРегистрацияОшибокСлужебный.СтатусВыполненияТеста(Тест); Результаты.Добавить(Тест); КонецЦикла; - ЮТСобытия.ПослеТестовогоНабора(ТестовыйМодуль, Набор); + ЮТСобытияСлужебный.ПослеТестовогоНабора(ТестовыйМодуль, Набор); Набор.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Набор.ДатаСтарта; @@ -101,7 +101,7 @@ Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции) - ЮТСобытия.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест); + ЮТСобытияСлужебный.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест); #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции(); Если ВТранзакции Тогда @@ -109,18 +109,18 @@ КонецЕсли; #КонецЕсли - ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест); + ЮТСобытияСлужебный.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест); КонецПроцедуры Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции) - Если ЮТКонтекст.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст + Если ЮТКонтекстСлужебный.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст ОбновитьПовторноИспользуемыеЗначения(); ОтменитьТранзакциюТеста(Тест, ВТранзакции); - ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); + ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); Иначе - ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); + ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); ОтменитьТранзакциюТеста(Тест, ВТранзакции); КонецЕсли; @@ -133,13 +133,13 @@ Если ТранзакцияАктивна() Тогда ОтменитьТранзакцию(); Иначе - ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружено лишне закрытие транзакции"); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружено лишне закрытие транзакции"); КонецЕсли; КонецЕсли; Пока ТранзакцияАктивна() Цикл ОтменитьТранзакцию(); - ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция"); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция"); КонецЦикла; #КонецЕсли @@ -163,7 +163,7 @@ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры); Если Ошибка <> Неопределено Тогда - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка); КонецЕсли; КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 83% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index c64fae9a6..ed903cc56 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,6 +1,6 @@ - ЮТИсполнительКлиентСервер + ЮТИсполнительСлужебныйКлиентСервер ru Исполнитель тестов diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index 0059228d2..b85f2dc39 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -88,11 +88,11 @@ ТипИсточника = ТипЗнч(Источник); - Если ТипИсточника = Тип("Структура") Или ТипИсточника = Тип("ФиксированнаяСтруктура") Тогда + Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипИсточника) Тогда Приемник = СкопироватьСтруктуру(Источник); - ИначеЕсли ТипИсточника = Тип("Соответствие") Или ТипИсточника = Тип("ФиксированноеСоответствие") Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипИсточника) Тогда Приемник = СкопироватьСоответствие(Источник); - ИначеЕсли ТипИсточника = Тип("Массив") Или ТипИсточника = Тип("ФиксированныйМассив") Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипИсточника) Тогда Приемник = СкопироватьМассив(Источник); ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда Приемник = СкопироватьСписокЗначений(Источник); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 96% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index ec01d6304..154ff00f3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ Функция ФайлКомпоненты(Знач ИмяМакета, Знач ОперационнаяСистема, Знач Архитектура) Экспорт - Данные = ЮТОбщийВызовСервера.Макет(ИмяМакета); + Данные = ЮТОбщийСлужебныйВызовСервера.Макет(ИмяМакета); ЧтениеАрхива = Новый ЧтениеZipФайла(); ЧтениеАрхива.Открыть(Данные.ОткрытьПотокДляЧтения()); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 81% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 2fdf4a25f..1a40d8c0d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТКомпонентыВызовСервера + ЮТКомпонентыСлужебныйВызовСервера ru Компоненты вызов сервера diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" similarity index 93% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index a8ae4a088..9856c3620 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -106,7 +106,7 @@ ОперационнаяСистема = MacOS; Архитектура = x64; Иначе - ЮТИсполнительКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы"); + ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы"); КонецЕсли; ПараметрыТихойУстановки.ОперационнаяСистема = ОперационнаяСистема; @@ -118,7 +118,7 @@ Процедура ПрочитатьФайлRegistry(ПараметрыТихойУстановки) Экспорт #Если ВебКлиент Тогда - ЮТИсполнительКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry")); + ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry")); Возврат; #Иначе ФайлРеестра = ЮТФайлы.ОбъединитьПути(ПараметрыТихойУстановки.РабочийКаталог, "registry.xml"); @@ -134,7 +134,7 @@ Процедура ЗаписатьФайлRegistry(ПараметрыТихойУстановки) Экспорт #Если ВебКлиент Тогда - ЮТИсполнительКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry")); + ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry")); Возврат; #Иначе Если ПараметрыТихойУстановки.ИзмененРеестр Тогда @@ -188,7 +188,7 @@ Процедура ТихаяУстановкаВнешнейКомпоненты(Компонента, Параметры) - ДанныеФайла = ЮТКомпонентыВызовСервера.ФайлКомпоненты(Компонента.ИмяМакета, Параметры.ОперационнаяСистема, Параметры.Архитектура); + ДанныеФайла = ЮТКомпонентыСлужебныйВызовСервера.ФайлКомпоненты(Компонента.ИмяМакета, Параметры.ОперационнаяСистема, Параметры.Архитектура); Если ЗаписатьВРеестр(Параметры.ДанныеРеестра, ДанныеФайла.ИмяФайла) Тогда Параметры.ИзмененРеестр = Истина; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" similarity index 85% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" index 3a4492e06..238264fce 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -1,6 +1,6 @@ - ЮТКомпонентыКлиент + ЮТКомпонентыСлужебныйКлиент ru Компоненты клиент diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" index 9877c8097..973ef484e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,7 +31,7 @@ Вариант = Новый Структура(Реквизиты); Варианты.КоличествоРеквизитов = Вариант.Количество(); - ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты); Возврат ЮТКонструкторВариантов; @@ -60,7 +60,7 @@ Параметр7 = Неопределено) Экспорт // BSLLS:MagicNumber-off // BSLLS:NumberOfValuesInStructureConstructor-off - Варианты = ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()); + Варианты = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); Если Варианты.КоличествоРеквизитов = 1 Тогда Вариант = Новый Структура(Варианты.Реквизиты, Параметр1); @@ -91,7 +91,7 @@ // Массив из Структура Функция СписокВариантов() Экспорт - Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()).Варианты; + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()).Варианты; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 5b8ab8921..3728f74ce 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -103,7 +103,7 @@ ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка; - Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); + Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); @@ -113,7 +113,7 @@ Функция НовыйОбъект(Контекст) Экспорт - Возврат ЮТТестовыеДанныеВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства); + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства); КонецФункции @@ -123,7 +123,7 @@ ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение; - Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); + Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.suppress" deleted file mode 100644 index f1965587b..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 91% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index dbbd0165e..cb0b2817d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -25,8 +25,8 @@ #Если НЕ Клиент Тогда ВызватьИсключение "Метод `ИнициализироватьКонтекст` должен вызываться только с клиента"; #Иначе - ЮТКонтекстКлиент.ИнициализироватьКонтекст(); - ЮТКонтекстСервер.ИнициализироватьКонтекст(); + ЮТКонтекстСлужебныйКлиент.ИнициализироватьКонтекст(); + ЮТКонтекстСлужебныйВызовСервера.ИнициализироватьКонтекст(); ОбновитьПовторноИспользуемыеЗначения(); #КонецЕсли @@ -40,10 +40,10 @@ Функция ДанныеКонтекста() Экспорт #Если Клиент Тогда - Возврат ЮТКонтекстКлиент.ДанныеКонтекста(); + Возврат ЮТКонтекстСлужебныйКлиент.ДанныеКонтекста(); #Иначе //@skip-check constructor-function-return-section - Возврат ЮТКонтекстСервер.ДанныеКонтекста(); + Возврат ЮТКонтекстСлужебныйВызовСервера.ДанныеКонтекста(); #КонецЕсли КонецФункции @@ -60,7 +60,8 @@ #Если Клиент Тогда Если ПолучитьССервера Тогда - Возврат ЮТКонтекстСервер.ЗначениеКонтекста(ИмяРеквизита); + //@skip-check constructor-function-return-section + Возврат ЮТКонтекстСлужебныйВызовСервера.ЗначениеКонтекста(ИмяРеквизита); КонецЕсли; #КонецЕсли @@ -101,7 +102,7 @@ #Если НЕ Сервер Тогда Если УстановитьНаСервер Тогда - ЮТКонтекстСервер.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение); + ЮТКонтекстСлужебныйВызовСервера.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение); КонецЕсли; #КонецЕсли @@ -165,7 +166,7 @@ // Возвращает служебный контекст, содержит дополнительные детали ошибки теста // // Возвращаемое значение: -// Неопределено, Структура - Контекст ошибки, см. ЮТФабрика.ОписаниеКонтекстаОшибки +// Неопределено, Структура - Контекст ошибки, см. ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки Функция КонтекстОшибки() Экспорт //@skip-check constructor-function-return-section @@ -198,7 +199,7 @@ // КонтекстЧитателя // Возвращает служебный контекста, данные используемые исполнителем тестов // Возвращаемое значение: -// см. ЮТФабрика.НовыйКонтекстИсполнения +// см. ЮТФабрикаСлужебный.НовыйКонтекстИсполнения Функция КонтекстИсполнения() Экспорт //@skip-check constructor-function-return-section @@ -210,9 +211,9 @@ // // Возвращаемое значение: // - Неопределено -// - См. ЮТФабрика.ОписаниеТестовогоМодуля -// - См. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// - См. ЮТФабрика.ОписаниеИсполняемогоТеста +// - См. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста Функция КонтекстИсполненияТекущегоУровня() Экспорт Уровни = ЮТФабрика.УровниИсполнения(); @@ -262,7 +263,7 @@ Процедура УстановитьКонтекстОшибки() Экспорт - ДанныеОшибки = ЮТФабрика.ОписаниеКонтекстаОшибки(); + ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки(); УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), ДанныеОшибки); КонецПроцедуры @@ -318,9 +319,9 @@ Процедура УдалитьКонтекст() Экспорт #Если Клиент Тогда - ЮТКонтекстКлиент.УдалитьКонтекст(); + ЮТКонтекстСлужебныйКлиент.УдалитьКонтекст(); #КонецЕсли - ЮТКонтекстСервер.УдалитьКонтекст(); + ЮТКонтекстСлужебныйВызовСервера.УдалитьКонтекст(); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 89% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 9c64469db..27a63dc98 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТКонтекст + ЮТКонтекстСлужебный ru Контекст тестового движка diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 92% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index c23856791..7911602e9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИнициализироватьКонтекст() Экспорт - Контекст = ЮТКонтекст.ОписаниеКонтекста(); + Контекст = ЮТКонтекстСлужебный.ОписаниеКонтекста(); АдресХранилища = ПоместитьВоВременноеХранилище(Контекст, Новый УникальныйИдентификатор()); ХранилищеОбщихНастроек.Сохранить(КлючНастроекКонтекста(), "АдресХранилища", АдресХранилища); @@ -48,13 +48,13 @@ // Значение - Произвольный - Новое значение реквизита/вложенного контекста Процедура УстановитьЗначениеКонтекста(Знач ИмяРеквизита, Знач Значение) Экспорт - ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение); КонецПроцедуры Функция ЗначениеКонтекста(Знач ИмяРеквизита) Экспорт - Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяРеквизита); + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяРеквизита); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 81% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 26636c802..68270a7aa 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТКонтекстСервер + ЮТКонтекстСлужебныйВызовСервера ru Контекст (сервер) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" similarity index 86% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 7ff8718bc..3ca7c41df 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ Процедура ИнициализироватьКонтекст() Экспорт - ЮТДанныеКонтекста = ЮТКонтекст.ОписаниеКонтекста(); // BSLLS:UnusedLocalVariable-off + ЮТДанныеКонтекста = ЮТКонтекстСлужебный.ОписаниеКонтекста(); // BSLLS:UnusedLocalVariable-off КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" similarity index 85% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" index cb3a5ef3a..5044a7742 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -1,6 +1,6 @@ - ЮТКонтекстКлиент + ЮТКонтекстСлужебныйКлиент ru Контекст (клиент) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\242\320\265\321\201\321\202\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\242\320\265\321\201\321\202\320\260/Module.bsl" index 16487d70d..e11cbf705 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\242\320\265\321\201\321\202\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\242\320\265\321\201\321\202\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -27,17 +27,17 @@ // Произвольный - Сохраненное в контексте значение Функция Значение(ИмяЗначения) Экспорт - Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень; + Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень; Уровни = ЮТФабрика.УровниИсполнения(); - КонтекстТеста = ЮТКонтекст.КонтекстТеста(); + КонтекстТеста = ЮТКонтекстСлужебный.КонтекстТеста(); Если Уровень = Уровни.Тест И КонтекстТеста <> Неопределено И КонтекстТеста.Свойство(ИмяЗначения) Тогда Возврат КонтекстТеста[ИмяЗначения]; КонецЕсли; - КонтекстНабора = ЮТКонтекст.КонтекстНабора(); + КонтекстНабора = ЮТКонтекстСлужебный.КонтекстНабора(); Если (Уровень = Уровни.НаборТестов ИЛИ Уровень = Уровни.Тест) И КонтекстНабора <> Неопределено И КонтекстНабора.Свойство(ИмяЗначения) Тогда @@ -45,7 +45,7 @@ КонецЕсли; - КонтекстМодуля = ЮТКонтекст.КонтекстМодуля(); + КонтекстМодуля = ЮТКонтекстСлужебный.КонтекстМодуля(); Если (Уровень = Уровни.Модуль ИЛИ Уровень = Уровни.Тест ИЛИ Уровень = Уровни.НаборТестов) И КонтекстМодуля <> Неопределено И КонтекстМодуля.Свойство(ИмяЗначения) Тогда @@ -67,7 +67,7 @@ // Значение - Произвольный Процедура УстановитьЗначение(ИмяЗначения, Значение) Экспорт - Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень; + Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень; Уровни = ЮТФабрика.УровниИсполнения(); Контекст = ТекущийКонтекст(); @@ -75,11 +75,11 @@ Если Контекст = Неопределено Тогда Если Уровень = Уровни.Тест Тогда - ЮТКонтекст.УстановитьКонтекстТеста(); + ЮТКонтекстСлужебный.УстановитьКонтекстТеста(); ИначеЕсли Уровень = Уровни.НаборТестов Тогда - ЮТКонтекст.УстановитьКонтекстНабораТестов(); + ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов(); ИначеЕсли Уровень = Уровни.Модуль Тогда - ЮТКонтекст.УстановитьКонтекстМодуля(); + ЮТКонтекстСлужебный.УстановитьКонтекстМодуля(); Иначе ВызватьИсключение СтрШаблон("Неизвестный уровень исполнения `%1`", Уровень); КонецЕсли; @@ -98,20 +98,20 @@ // Неопределено, Структура, Произвольный - Текущий контекст Функция ТекущийКонтекст() Экспорт - Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень; + Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень; Уровни = ЮТФабрика.УровниИсполнения(); Если Уровень = Уровни.Тест Тогда - Контекст = ЮТКонтекст.КонтекстТеста(); + Контекст = ЮТКонтекстСлужебный.КонтекстТеста(); ИначеЕсли Уровень = Уровни.НаборТестов Тогда - Контекст = ЮТКонтекст.КонтекстНабора(); + Контекст = ЮТКонтекстСлужебный.КонтекстНабора(); ИначеЕсли Уровень = Уровни.Модуль Тогда - Контекст = ЮТКонтекст.КонтекстМодуля(); + Контекст = ЮТКонтекстСлужебный.КонтекстМодуля(); Иначе diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" index dcd67af38..fc5453033 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" @@ -24,7 +24,7 @@ // Сообщение - Строка - Сообщение Процедура Отладка(Сообщение) Экспорт - Записать("DBG", Сообщение, 0); + ЮТЛогированиеСлужебный.Записать("DBG", Сообщение, 0); КонецПроцедуры @@ -34,7 +34,7 @@ // Сообщение - Строка - Сообщение Процедура Информация(Сообщение) Экспорт - Записать("INF", Сообщение, 1); + ЮТЛогированиеСлужебный.Записать("INF", Сообщение, 1); КонецПроцедуры @@ -44,7 +44,7 @@ // Сообщение - Строка - Сообщение Процедура Ошибка(Сообщение) Экспорт - Записать("ERR", Сообщение, 2); + ЮТЛогированиеСлужебный.Записать("ERR", Сообщение, 2); КонецПроцедуры @@ -58,375 +58,4 @@ КонецФункции -Процедура ВывестиСерверныеСообщения() Экспорт - -#Если Клиент Тогда - Контекст = Контекст(); - Если Контекст = Неопределено ИЛИ НЕ Контекст.Включено ИЛИ Контекст.ФайлЛогаДоступенНаСервере Тогда - Возврат; - КонецЕсли; - - Сообщения = ЮТЛогированиеВызовСервера.НакопленныеСообщенияЛогирования(Истина); - ЗаписатьСообщения(Контекст, Сообщения); -#Иначе - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ВывестиСерверныеСообщения"); -#КонецЕсли - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#Область ОбработчикиСобытий - -// Инициализация. -// -// Параметры: -// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска -Процедура Инициализация(ПараметрыЗапуска) Экспорт - - УровниЛога = УровниЛога(); - - ДанныеКонтекста = НовыйДанныеКонтекста(); - ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file"); - ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь); - ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено); - УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка); - - Если ДанныеКонтекста.Включено = Неопределено Тогда - ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога); - КонецЕсли; - - Если НЕ ДанныеКонтекста.Включено Тогда - ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина); - Возврат; - КонецЕсли; - - Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда - ДанныеКонтекста.УровеньЛога = 2; - ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда - ДанныеКонтекста.УровеньЛога = 1; - Иначе - ДанныеКонтекста.УровеньЛога = 0; - КонецЕсли; - - ЗначениеПроверки = Строка(Новый УникальныйИдентификатор()); - ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь); - - ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки); - - ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина); - - Разделитель = "------------------------------------------------------"; - ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(Разделитель), Ложь); - - Информация("Старт"); - -КонецПроцедуры - -// Обработка события "ПередЧтениеСценариев" -Процедура ПередЧтениеСценариев() Экспорт - - Информация("Загрузка сценариев"); - -КонецПроцедуры - -// Перед чтением сценариев модуля. -// -// Параметры: -// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля -Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт - - Информация(СтрШаблон("Загрузка сценариев модуля `%1`", МетаданныеМодуля.Имя)); - -КонецПроцедуры - -// Перед чтением сценариев модуля. -// -// Параметры: -// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля -Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт - - Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя)); - -КонецПроцедуры - -// Обработка события "ПослеЧтенияСценариев" -// Параметры: -// Сценарии - Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах -Процедура ПослеЧтенияСценариев(Сценарии) Экспорт - - Информация("Загрузка сценариев завершена."); - -КонецПроцедуры - -// Обработка события "ПослеФормированияИсполняемыхНаборовТестов" -// Параметры: -// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов -Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт - - Количество = 0; - - Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл - - Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл - - Если Набор.Выполнять Тогда - ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество()); - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - - ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов", Количество, Истина); - -КонецПроцедуры - -// Перед всеми тестами. -// -// Параметры: -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов -Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт - -#Если Клиент Тогда - ПрогрессКлиент = Контекст().КоличествоВыполненныхТестов; - ПрогрессСервер = ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Истина); - - Если ПрогрессКлиент < ПрогрессСервер Тогда - Контекст().КоличествоВыполненныхТестов = ПрогрессСервер; - КонецЕсли; -#КонецЕсли - Информация(СтрШаблон("Запуск тестов модуля `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя)); - -КонецПроцедуры - -// Перед тестовым набором. -// -// Параметры: -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов -Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт - - Информация(СтрШаблон("Запуск тестов набора `%1`", ОписаниеСобытия.Набор.Имя)); - -КонецПроцедуры - -// Перед каждым тестом. -// -// Параметры: -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов -Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт - - Информация(СтрШаблон("Запуск теста `%1`", ОписаниеСобытия.Тест.Имя)); - -КонецПроцедуры - -// Перед каждым тестом. -// -// Параметры: -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов -Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт - - Контекст = Контекст(); - Если НЕ ЛогированиеВключено(Контекст) Тогда - Возврат; - КонецЕсли; - - ЮТОбщий.Инкремент(Контекст.КоличествоВыполненныхТестов); - Информация(СтрШаблон("%1 Завершен тест `%2`", Прогресс(), ОписаниеСобытия.Тест.Имя)); - -КонецПроцедуры - -// Перед каждым тестом. -// -// Параметры: -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов -Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт - - Информация(СтрШаблон("Завершен тестовый набор `%1`", ОписаниеСобытия.Набор.Имя)); - -КонецПроцедуры - -// Перед каждым тестом. -// -// Параметры: -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов -Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт - - Контекст = Контекст(); - Если НЕ ЛогированиеВключено(Контекст) Тогда - Возврат; - КонецЕсли; -#Если Клиент Тогда - ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина); -#КонецЕсли - - Информация(СтрШаблон("Завершен модуль `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя)); - -КонецПроцедуры - -#КонецОбласти - -#Область Контекст - -// Контекст. -// -// Возвращаемое значение: -// см. НовыйДанныеКонтекста -Функция Контекст() - - Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекстаЛогирования()); - -КонецФункции - -Функция ИмяКонтекстаЛогирования() - - Возврат "КонтекстЛогирования"; - -КонецФункции - -// Новый данные контекста. -// -// Возвращаемое значение: -// Структура - Новый данные контекста: -// * Включено - Булево - Логирование включено -// * ФайлЛога - Неопределено - Файл вывода лога -// * ВыводВКонсоль- Булево - Вывод лога в консоль -// * ФайлЛогаДоступенНаСервере - Булево - Файл лога доступен на сервере -// * НакопленныеЗаписи - Массив из Строка - Буфер для серверных сообщений -// * ОбщееКоличествоТестов - Число -// * КоличествоВыполненныхТестов - Число -// * УровеньЛога - Число - Уровень логирования -Функция НовыйДанныеКонтекста() - - ДанныеКонтекста = Новый Структура(); - ДанныеКонтекста.Вставить("Включено", Ложь); - ДанныеКонтекста.Вставить("ФайлЛога", Неопределено); - ДанныеКонтекста.Вставить("ВыводВКонсоль", Ложь); - ДанныеКонтекста.Вставить("ФайлЛогаДоступенНаСервере", Ложь); - ДанныеКонтекста.Вставить("НакопленныеЗаписи", Новый Массив()); - ДанныеКонтекста.Вставить("ОбщееКоличествоТестов", 0); - ДанныеКонтекста.Вставить("КоличествоВыполненныхТестов", 0); - ДанныеКонтекста.Вставить("УровеньЛога", 0); - - Возврат ДанныеКонтекста; - -КонецФункции - -#КонецОбласти - -#Область Запись - -Функция ЛогированиеВключено(Знач Контекст = Неопределено, Приоритет = Неопределено) - - Если Контекст = Неопределено Тогда - Контекст = Контекст(); - КонецЕсли; - - Возврат Контекст <> Неопределено И Контекст.Включено И (Приоритет = Неопределено ИЛИ Контекст.УровеньЛога <= Приоритет); - -КонецФункции - -Функция НакопленныеСообщенияЛогирования(Очистить = Ложь) Экспорт - - Контекст = Контекст(); - - Сообщения = Контекст.НакопленныеЗаписи; - - Если Очистить Тогда - Контекст.НакопленныеЗаписи = Новый Массив(); - КонецЕсли; - - Возврат Сообщения; - -КонецФункции - -Процедура Записать(УровеньЛога, Сообщение, Приоритет) - - Контекст = Контекст(); - Если НЕ ЛогированиеВключено(Контекст, Приоритет) Тогда - Возврат; - КонецЕсли; - -#Если Клиент Тогда - КонтекстИсполнения = "Клиент"; -#Иначе - КонтекстИсполнения = "Сервер"; -#КонецЕсли - Текст = СтрШаблон("%1 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение); -#Если Клиент Тогда - ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); -#Иначе - Если Контекст.ФайлЛогаДоступенНаСервере Тогда - ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); - Иначе - Контекст.НакопленныеЗаписи.Добавить(Текст); - КонецЕсли; -#КонецЕсли - -КонецПроцедуры - -Процедура ЗаписатьСообщения(Контекст, Сообщения, Дописывать = Истина) - -#Если ВебКлиент Тогда - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьСообщения"); -#Иначе - Если Контекст.ВыводВКонсоль Тогда - ЗаписатьЛогВКонсоль(Сообщения); - КонецЕсли; - - Если ЗначениеЗаполнено(Контекст.ФайлЛога) Тогда - ЗаписатьЛогВФайл(Контекст.ФайлЛога, Сообщения, Дописывать); - КонецЕсли; -#КонецЕсли - -КонецПроцедуры - -Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина) - -#Если ВебКлиент Тогда - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВФайл"); -#Иначе - Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать); - - Для Каждого Сообщение Из Сообщения Цикл - Запись.ЗаписатьСтроку(Сообщение); - КонецЦикла; - - Запись.Закрыть(); -#КонецЕсли - -КонецПроцедуры - -Процедура ЗаписатьЛогВКонсоль(Сообщения) - -#Если ВебКлиент Тогда - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВКонсоль"); -#Иначе - //@skip-check empty-except-statement - Попытка - Для Каждого Сообщение Из Сообщения Цикл - ЮТОбщий.ВывестиВКонсоль(Сообщение); - КонецЦикла; - Исключение - // Игнорируем ошибку - КонецПопытки; -#КонецЕсли - -КонецПроцедуры - -Функция Прогресс() - - Контекст = Контекст(); - Прогресс = Окр(100 * Контекст.КоличествоВыполненныхТестов / Контекст.ОбщееКоличествоТестов, 0); - - Возврат СтрШаблон("%1%% (%2/%3)", Прогресс, Контекст.КоличествоВыполненныхТестов, Контекст.ОбщееКоличествоТестов); - -КонецФункции - -#КонецОбласти - #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..24842a1f2 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,393 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура Записать(УровеньЛога, Сообщение, Приоритет) Экспорт + + Контекст = Контекст(); + Если НЕ ЛогированиеВключено(Контекст, Приоритет) Тогда + Возврат; + КонецЕсли; + +#Если Клиент Тогда + КонтекстИсполнения = "Клиент"; +#Иначе + КонтекстИсполнения = "Сервер"; +#КонецЕсли + Текст = СтрШаблон("%1 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение); +#Если Клиент Тогда + ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); +#Иначе + Если Контекст.ФайлЛогаДоступенНаСервере Тогда + ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); + Иначе + Контекст.НакопленныеЗаписи.Добавить(Текст); + КонецЕсли; +#КонецЕсли + +КонецПроцедуры + +Процедура ВывестиСерверныеСообщения() Экспорт + +#Если Клиент Тогда + Контекст = Контекст(); + Если Контекст = Неопределено ИЛИ НЕ Контекст.Включено ИЛИ Контекст.ФайлЛогаДоступенНаСервере Тогда + Возврат; + КонецЕсли; + + Сообщения = ЮТЛогированиеСлужебныйВызовСервера.НакопленныеСообщенияЛогирования(Истина); + ЗаписатьСообщения(Контекст, Сообщения); +#Иначе + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ВывестиСерверныеСообщения"); +#КонецЕсли + +КонецПроцедуры + +Функция НакопленныеСообщенияЛогирования(Очистить = Ложь) Экспорт + + Контекст = Контекст(); + + Сообщения = Контекст.НакопленныеЗаписи; + + Если Очистить Тогда + Контекст.НакопленныеЗаписи = Новый Массив(); + КонецЕсли; + + Возврат Сообщения; + +КонецФункции + +#Область ОбработчикиСобытий + +// Инициализация. +// +// Параметры: +// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска +Процедура Инициализация(ПараметрыЗапуска) Экспорт + + УровниЛога = ЮТЛогирование.УровниЛога(); + + ДанныеКонтекста = НовыйДанныеКонтекста(); + ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file"); + ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь); + ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено); + УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка); + + Если ДанныеКонтекста.Включено = Неопределено Тогда + ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога); + КонецЕсли; + + Если НЕ ДанныеКонтекста.Включено Тогда + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина); + Возврат; + КонецЕсли; + + Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда + ДанныеКонтекста.УровеньЛога = 2; + ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда + ДанныеКонтекста.УровеньЛога = 1; + Иначе + ДанныеКонтекста.УровеньЛога = 0; + КонецЕсли; + + ЗначениеПроверки = Строка(Новый УникальныйИдентификатор()); + ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь); + + ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки); + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина); + + Разделитель = "------------------------------------------------------"; + ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(Разделитель), Ложь); + + ЮТЛогирование.Информация("Старт"); + +КонецПроцедуры + +// Обработка события "ПередЧтениеСценариев" +Процедура ПередЧтениеСценариев() Экспорт + + ЮТЛогирование.Информация("Загрузка сценариев"); + +КонецПроцедуры + +// Перед чтением сценариев модуля. +// +// Параметры: +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля +Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт + + ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля `%1`", МетаданныеМодуля.Имя)); + +КонецПроцедуры + +// Перед чтением сценариев модуля. +// +// Параметры: +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля +Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт + + ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя)); + +КонецПроцедуры + +// Обработка события "ПослеЧтенияСценариев" +// Параметры: +// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах +Процедура ПослеЧтенияСценариев(Сценарии) Экспорт + + ЮТЛогирование.Информация("Загрузка сценариев завершена."); + +КонецПроцедуры + +// Обработка события "ПослеФормированияИсполняемыхНаборовТестов" +// Параметры: +// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов +Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт + + Количество = 0; + + Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл + + Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл + + Если Набор.Выполнять Тогда + ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество()); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов", Количество, Истина); + +КонецПроцедуры + +// Перед всеми тестами. +// +// Параметры: +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов +Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт + +#Если Клиент Тогда + Контекст = Контекст(); + ПрогрессКлиент = Контекст.КоличествоВыполненныхТестов; + ПрогрессСервер = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Истина); + + Если ПрогрессКлиент < ПрогрессСервер Тогда + Контекст.КоличествоВыполненныхТестов = ПрогрессСервер; + КонецЕсли; +#КонецЕсли + ЮТЛогирование.Информация(СтрШаблон("Запуск тестов модуля `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя)); + +КонецПроцедуры + +// Перед тестовым набором. +// +// Параметры: +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов +Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт + + ЮТЛогирование.Информация(СтрШаблон("Запуск тестов набора `%1`", ОписаниеСобытия.Набор.Имя)); + +КонецПроцедуры + +// Перед каждым тестом. +// +// Параметры: +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов +Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт + + ЮТЛогирование.Информация(СтрШаблон("Запуск теста `%1`", ОписаниеСобытия.Тест.Имя)); + +КонецПроцедуры + +// Перед каждым тестом. +// +// Параметры: +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов +Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт + + Контекст = Контекст(); + Если НЕ ЛогированиеВключено(Контекст) Тогда + Возврат; + КонецЕсли; + + ЮТОбщий.Инкремент(Контекст.КоличествоВыполненныхТестов); + ЮТЛогирование.Информация(СтрШаблон("%1 Завершен тест `%2`", Прогресс(), ОписаниеСобытия.Тест.Имя)); + +КонецПроцедуры + +// Перед каждым тестом. +// +// Параметры: +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов +Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт + + ЮТЛогирование.Информация(СтрШаблон("Завершен тестовый набор `%1`", ОписаниеСобытия.Набор.Имя)); + +КонецПроцедуры + +// Перед каждым тестом. +// +// Параметры: +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов +Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт + + Контекст = Контекст(); + Если НЕ ЛогированиеВключено(Контекст) Тогда + Возврат; + КонецЕсли; +#Если Клиент Тогда + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина); +#КонецЕсли + + ЮТЛогирование.Информация(СтрШаблон("Завершен модуль `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя)); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Запись + +Функция ЛогированиеВключено(Знач Контекст = Неопределено, Приоритет = Неопределено) + + Если Контекст = Неопределено Тогда + Контекст = Контекст(); + КонецЕсли; + + Возврат Контекст <> Неопределено И Контекст.Включено И (Приоритет = Неопределено ИЛИ Контекст.УровеньЛога <= Приоритет); + +КонецФункции + +Процедура ЗаписатьСообщения(Контекст, Сообщения, Дописывать = Истина) + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьСообщения"); +#Иначе + Если Контекст.ВыводВКонсоль Тогда + ЗаписатьЛогВКонсоль(Сообщения); + КонецЕсли; + + Если ЗначениеЗаполнено(Контекст.ФайлЛога) Тогда + ЗаписатьЛогВФайл(Контекст.ФайлЛога, Сообщения, Дописывать); + КонецЕсли; +#КонецЕсли + +КонецПроцедуры + +Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина) + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВФайл"); +#Иначе + Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать); + + Для Каждого Сообщение Из Сообщения Цикл + Запись.ЗаписатьСтроку(Сообщение); + КонецЦикла; + + Запись.Закрыть(); +#КонецЕсли + +КонецПроцедуры + +Процедура ЗаписатьЛогВКонсоль(Сообщения) + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВКонсоль"); +#Иначе + //@skip-check empty-except-statement + Попытка + Для Каждого Сообщение Из Сообщения Цикл + ЮТОбщий.ВывестиВКонсоль(Сообщение); + КонецЦикла; + Исключение + // Игнорируем ошибку + КонецПопытки; +#КонецЕсли + +КонецПроцедуры + +Функция Прогресс() + + Контекст = Контекст(); + Прогресс = Окр(100 * Контекст.КоличествоВыполненныхТестов / Контекст.ОбщееКоличествоТестов, 0); + + Возврат СтрШаблон("%1%% (%2/%3)", Прогресс, Контекст.КоличествоВыполненныхТестов, Контекст.ОбщееКоличествоТестов); + +КонецФункции + +#КонецОбласти + +#Область Контекст + +// Контекст. +// +// Возвращаемое значение: +// см. НовыйДанныеКонтекста +Функция Контекст() + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования()); + +КонецФункции + +Функция ИмяКонтекстаЛогирования() + + Возврат "КонтекстЛогирования"; + +КонецФункции + +// Новый данные контекста. +// +// Возвращаемое значение: +// Структура - Новый данные контекста: +// * Включено - Булево - Логирование включено +// * ФайлЛога - Неопределено - Файл вывода лога +// * ВыводВКонсоль- Булево - Вывод лога в консоль +// * ФайлЛогаДоступенНаСервере - Булево - Файл лога доступен на сервере +// * НакопленныеЗаписи - Массив из Строка - Буфер для серверных сообщений +// * ОбщееКоличествоТестов - Число +// * КоличествоВыполненныхТестов - Число +// * УровеньЛога - Число - Уровень логирования +Функция НовыйДанныеКонтекста() + + ДанныеКонтекста = Новый Структура(); + ДанныеКонтекста.Вставить("Включено", Ложь); + ДанныеКонтекста.Вставить("ФайлЛога", Неопределено); + ДанныеКонтекста.Вставить("ВыводВКонсоль", Ложь); + ДанныеКонтекста.Вставить("ФайлЛогаДоступенНаСервере", Ложь); + ДанныеКонтекста.Вставить("НакопленныеЗаписи", Новый Массив()); + ДанныеКонтекста.Вставить("ОбщееКоличествоТестов", 0); + ДанныеКонтекста.Вставить("КоличествоВыполненныхТестов", 0); + ДанныеКонтекста.Вставить("УровеньЛога", 0); + + Возврат ДанныеКонтекста; + +КонецФункции + +#КонецОбласти + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..0aed12e26 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТЛогированиеСлужебный + + ru + Логирование служебный + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 88% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index fb73b8d57..e22c87873 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ Функция НакопленныеСообщенияЛогирования(Знач Очистить = Ложь) Экспорт - Возврат ЮТЛогирование.НакопленныеСообщенияЛогирования(Очистить); + Возврат ЮТЛогированиеСлужебный.НакопленныеСообщенияЛогирования(Очистить); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 80% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 3d1561cd2..de21ef596 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТЛогированиеВызовСервера + ЮТЛогированиеСлужебныйВызовСервера ru Логирование (вызов сервера) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index ea5ce9c09..473c1a162 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -16,7 +16,7 @@ // //©///////////////////////////////////////////////////////////////////////////©// -#Область СлужебныйПрограммныйИнтерфейс +#Область ПрограммныйИнтерфейс // Модули подсистемы. // Возвращает список модулей подсистемы @@ -29,7 +29,7 @@ // Массив из Строка - Имена модулей входящих в подсистему Функция МодулиПодсистемы(ИмяПодсистемы, Серверные = Истина, Клиентские = Истина) Экспорт - Возврат ЮТМетаданныеПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские); + Возврат ЮТМетаданныеСлужебныйПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские); КонецФункции @@ -43,15 +43,12 @@ // - Произвольный - Объект информационной базы // // Возвращаемое значение: -// Структура - Описание менеджера: -// * ОписаниеТипа - см. ЮТМетаданныеСервер.ОписаниеТипаМетаданных -// * Реквизиты - Структура из см. ЮТФабрика.ОписаниеРеквизита -// * ТабличныеЧасти - Структура из Структура - +// см. СтруктураОписанияОбъектаМетаданных Функция ОписаниеОбъектаМетаданных(Знач Значение) Экспорт ТипЗначения = ТипЗнч(Значение); - Если ТипЗначения = Тип("Структура") И ЭтоОписаниеОбъектаМетаданных(Значение) Тогда + Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) И ЭтоОписаниеОбъектаМетаданных(Значение) Тогда //@skip-check constructor-function-return-section Возврат Значение; КонецЕсли; @@ -72,10 +69,10 @@ Если ТипЗначения = ТипТип Тогда ИдентификаторТипа = ЮТТипыДанныхСлужебный.ИдентификаторТипа(Значение); // Для работы кэширования //@skip-check constructor-function-return-section - Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(ИдентификаторТипа); + Возврат ЮТМетаданныеСлужебныйПовтИсп.ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(ИдентификаторТипа); Иначе //@skip-check constructor-function-return-section - Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданных(Значение); + Возврат ЮТМетаданныеСлужебныйПовтИсп.ОписаниеОбъектаМетаданных(Значение); КонецЕсли; КонецФункции @@ -96,7 +93,7 @@ Функция ТипыМетаданных() Экспорт - Возврат ЮТМетаданныеПовтИсп.ТипыМетаданных(); + Возврат ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных(); КонецФункции @@ -110,7 +107,7 @@ Функция РазрешеныСинхронныеВызовы() Экспорт - Возврат ЮТМетаданныеПовтИсп.РазрешеныСинхронныеВызовы(); + Возврат ЮТМетаданныеСлужебныйПовтИсп.РазрешеныСинхронныеВызовы(); КонецФункции @@ -132,13 +129,96 @@ ПолноеИмя = СтрШаблон("%1.%2", ОписаниеОбъектаМетаданных.ОписаниеТипа.ИмяКоллекции, ОписаниеОбъектаМетаданных.Имя); - Возврат ЮТМетаданныеПовтИсп.РегистрыДвиженийДокумента(ПолноеИмя); + Возврат ЮТМетаданныеСлужебныйПовтИсп.РегистрыДвиженийДокумента(ПолноеИмя); КонецФункции +// Возвращает текущую версию тестового движка (YAxUnit) +// +// Возвращаемое значение: +// Строка - Версия движка Функция ВерсияДвижка() Экспорт - Возврат ЮТМетаданныеПовтИсп.ВерсияДвижка(); + Возврат ЮТМетаданныеСлужебныйПовтИсп.ВерсияДвижка(); + +КонецФункции + +// Описание типа объекта метаданных. +// +// Возвращаемое значение: +// Структура - Описание типа метаданных: +// * Имя - Строка +// * ИмяКоллекции - Строка +// * Конструктор - Строка +// * Группы - Булево +// * Ссылочный - Булево +// * Регистр - Булево +// * ОбработкаОтчет - Булево +// * СтандартныеРеквизиты - Булево +// * Реквизиты - Булево +// * Измерения - Булево +// * Ресурсы - Булево +// * РеквизитыАдресации - Булево +// * ТабличныеЧасти - Булево +Функция ОписаниеТипаМетаданных() Экспорт + + Описание = Новый Структура(); + Описание.Вставить("Имя", ""); + Описание.Вставить("ИмяКоллекции", ""); + Описание.Вставить("Конструктор", ""); + Описание.Вставить("Группы", Ложь); + Описание.Вставить("Ссылочный", Ложь); + Описание.Вставить("Регистр", Ложь); + Описание.Вставить("ОбработкаОтчет", Ложь); + Описание.Вставить("СтандартныеРеквизиты", Ложь); + Описание.Вставить("Реквизиты", Ложь); + Описание.Вставить("Измерения", Ложь); + Описание.Вставить("Ресурсы", Ложь); + Описание.Вставить("РеквизитыАдресации", Ложь); + Описание.Вставить("ТабличныеЧасти", Ложь); + + Возврат Описание; + +КонецФункции + +// Описание объекта метаданных. +// +// Возвращаемое значение: +// Структура - Описание объекта метаданных: +// * Имя - Строка +// * ОписаниеТипа - см. ОписаниеТипаМетаданных +// * Реквизиты - Структура +// * ТабличныеЧасти - Структура +Функция СтруктураОписанияОбъектаМетаданных() Экспорт + + Описание = Новый Структура; + Описание.Вставить("Имя", ""); + Описание.Вставить("ОписаниеТипа", Неопределено); + Описание.Вставить("Реквизиты", Новый Структура()); + Описание.Вставить("ТабличныеЧасти", Новый Структура()); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +// Описание реквизита объекта метаданных +// +// Возвращаемое значение: +// Структура - Описание реквизита: +// * Имя - Строка +// * Тип - ОписаниеТипов +// * Обязательный - Булево +// * ЭтоКлюч - Булево +Функция ОписаниеРеквизита() Экспорт + + Описание = Новый Структура(); + Описание.Вставить("Имя", ""); + Описание.Вставить("Тип", Новый ОписаниеТипов("Неопределено")); + Описание.Вставить("Обязательный", Ложь); + Описание.Вставить("ЭтоКлюч", Ложь); + + Возврат Описание; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index fd862fc13..bebd46ba3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -22,7 +22,7 @@ // Выполняет чтение метаданных общих модулей, которые предположительно могут являться тестами // // Возвращаемое значение: -// Массив из см. ЮТФабрика.ОписаниеМодуля - Коллекция описаний моделей, структуру элемента см. ЮТФабрика.ОписаниеМодуля +// Массив из см. ЮТФабрикаСлужебный.ОписаниеМодуля - Коллекция описаний моделей, структуру элемента см. ЮТФабрикаСлужебный.ОписаниеМодуля Функция МодулиРасширений() Экспорт УстановитьПривилегированныйРежим(Истина); @@ -98,7 +98,7 @@ КонецЕсли; КонецЕсли; - Описание = ЮТФабрика.ОписаниеМодуля(); + Описание = ЮТФабрикаСлужебный.ОписаниеМодуля(); Описание.Имя = Модуль.Имя; Описание.КлиентУправляемоеПриложение = Модуль.КлиентУправляемоеПриложение; Описание.КлиентОбычноеПриложение = Модуль.КлиентОбычноеПриложение; @@ -117,11 +117,9 @@ МетаданныеОбъекта = ОбъектМетаданных(Значение); ОписаниеТипа = ОписаниеТипаМетаданных(МетаданныеОбъекта); - ОписаниеОбъект = Новый Структура; - ОписаниеОбъект.Вставить("Имя", МетаданныеОбъекта.Имя); - ОписаниеОбъект.Вставить("ОписаниеТипа", ОписаниеТипа); - ОписаниеОбъект.Вставить("Реквизиты", Новый Структура()); - ОписаниеОбъект.Вставить("ТабличныеЧасти", Новый Структура()); + ОписаниеОбъект = ЮТМетаданные.СтруктураОписанияОбъектаМетаданных(); + ОписаниеОбъект.Имя = МетаданныеОбъекта.Имя; + ОписаниеОбъект.ОписаниеТипа = ОписаниеТипа; ЮТОбщий.УказатьТипСтруктуры(ОписаниеОбъект, "ОписаниеОбъектаМетаданных"); Если НЕ ЗаполнятьРеквизиты Тогда @@ -159,7 +157,7 @@ КонецЕсли; - Возврат ОписаниеОбъект; + Возврат Новый ФиксированнаяСтруктура(ОписаниеОбъект); КонецФункции @@ -169,20 +167,7 @@ // МетаданныеОбъекта - Тип, ОбъектМетаданных - Тип // // Возвращаемое значение: -// Структура - Описание типа метаданных: -// * Имя - Строка -// * ИмяКоллекции - Строка -// * Конструктор - Строка -// * Группы - Булево -// * Ссылочный - Булево -// * Регистр - Булево -// * ОбработкаОтчет - Булево -// * СтандартныеРеквизиты - Булево -// * Реквизиты - Булево -// * Измерения - Булево -// * Ресурсы - Булево -// * РеквизитыАдресации - Булево -// * ТабличныеЧасти - Булево +// см. ЮТМетаданные.ОписаниеТипаМетаданных Функция ОписаниеТипаМетаданных(Знач МетаданныеОбъекта) Экспорт Если ТипЗнч(МетаданныеОбъекта) = Тип("Тип") Тогда @@ -193,13 +178,16 @@ ЧастиИмени = СтрРазделить(ПолноеИмя, "."); Типы = ЮТМетаданные.ТипыМетаданных(); - Если Типы.Свойство(ЧастиИмени[0]) Тогда - Возврат Типы[ЧастиИмени[0]]; - Иначе + Если НЕ Типы.Свойство(ЧастиИмени[0]) Тогда Сообщение = СтрШаблон("Получение описания для '%1' не поддерживается, либо не реализовано", ЧастиИмени[0]); ВызватьИсключение Сообщение; КонецЕсли; + Описание = ЮТМетаданные.ОписаниеТипаМетаданных(); + ЗаполнитьЗначенияСвойств(Описание, Типы[ЧастиИмени[0]]); + //@skip-check constructor-function-return-section + Возврат Новый ФиксированнаяСтруктура(Описание); + КонецФункции Функция ТипыМетаданных() Экспорт @@ -288,7 +276,7 @@ ОбъектМетаданных = ОбъектМетаданныхИзСтроки(Значение); - ИначеЕсли ТипЗначение = Тип("Структура") И Значение.Свойство("ОписаниеТипа") И Значение.Свойство("Имя") Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначение) И Значение.Свойство("ОписаниеТипа") И Значение.Свойство("Имя") Тогда ОбъектМетаданных = Метаданные[Значение.ОписаниеТипа.ИмяКоллекции][Значение.Имя]; @@ -299,7 +287,7 @@ КонецЕсли; Если ОбъектМетаданных = Неопределено Тогда - Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСервер.ОбъектМетаданных", Значение); + Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСлужебныйВызовСервера.ОбъектМетаданных", Значение); ВызватьИсключение Сообщение; КонецЕсли; @@ -342,15 +330,27 @@ ЭтоКлюч = ИменаКлючевыхПолей.Найти(Реквизит.Имя) <> Неопределено; КонецЕсли; - КоллекцияОписаний.Вставить(Реквизит.Имя, ЮТФабрика.ОписаниеРеквизита(Реквизит, ЭтоКлюч)); + КоллекцияОписаний.Вставить(Реквизит.Имя, НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч)); КонецЦикла; КонецПроцедуры +Функция НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч) + + Описание = ЮТМетаданные.ОписаниеРеквизита(); + Описание.Имя = Реквизит.Имя; + Описание.Тип = Реквизит.Тип; + Описание.Обязательный = Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку; + Описание.ЭтоКлюч = ЭтоКлюч; + + Возврат Описание; + +КонецФункции + Функция ВерсияДвижка() Экспорт - Возврат Метаданные.ОбщиеМодули.ЮТМетаданныеСервер.РасширениеКонфигурации().Версия; + Возврат Метаданные.ОбщиеМодули.ЮТМетаданныеСлужебныйВызовСервера.РасширениеКонфигурации().Версия; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 83% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 773aa838a..698e53c86 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТМетаданныеСервер + ЮТМетаданныеСлужебныйВызовСервера ru Метаданные (сервер) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" similarity index 64% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" index 6697dd5bb..baf334e70 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" @@ -20,50 +20,50 @@ Функция МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские) Экспорт - Возврат ЮТМетаданныеСервер.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские); + Возврат ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские); КонецФункции Функция ОписаниеОбъектаМетаданных(Знач Менеджер) Экспорт - Возврат ЮТМетаданныеСервер.ОписаниеОбъектаМетаданных(Менеджер); + Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Менеджер); КонецФункции Функция ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(Знач ИдентификаторТипа) Экспорт Тип = ЮТТипыДанныхСлужебный.ТипПоИдентификатору(ИдентификаторТипа); - Возврат ЮТМетаданныеСервер.ОписаниеОбъектаМетаданных(Тип); + Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Тип); КонецФункции Функция ТипыМетаданных() Экспорт - Возврат ЮТМетаданныеСервер.ТипыМетаданных(); + Возврат ЮТМетаданныеСлужебныйВызовСервера.ТипыМетаданных(); КонецФункции Функция РазрешеныСинхронныеВызовы() Экспорт - Возврат ЮТМетаданныеСервер.РазрешеныСинхронныеВызовы(); + Возврат ЮТМетаданныеСлужебныйВызовСервера.РазрешеныСинхронныеВызовы(); КонецФункции Функция РегистрыДвиженийДокумента(ПолноеИмя) Экспорт - Возврат ЮТМетаданныеСервер.РегистрыДвиженийДокумента(ПолноеИмя); + Возврат ЮТМетаданныеСлужебныйВызовСервера.РегистрыДвиженийДокумента(ПолноеИмя); КонецФункции Функция ВариантВстроенногоЯзыка() Экспорт - Возврат ЮТМетаданныеСервер.ВариантВстроенногоЯзыка(); + Возврат ЮТМетаданныеСлужебныйВызовСервера.ВариантВстроенногоЯзыка(); КонецФункции Функция ВерсияДвижка() Экспорт - Возврат ЮТМетаданныеСервер.ВерсияДвижка(); + Возврат ЮТМетаданныеСлужебныйВызовСервера.ВерсияДвижка(); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" index 6de5020f0..652cc9131 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" @@ -1,6 +1,6 @@ - ЮТМетаданныеПовтИсп + ЮТМетаданныеСлужебныйПовтИсп ru Метаданные (повторного использования) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 1fcee7bc5..9b89b0725 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -60,8 +60,8 @@ Ошибка = ВыполнитьМетод(Алгоритм); - ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода); - Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров; + ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода); + Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров; КонецФункции @@ -85,8 +85,8 @@ Ошибка = ВыполнитьМетод(Алгоритм, , Объект); - ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода); - Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров; + ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода); + Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров; #КонецЕсли КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" index 511a8d7a0..fe14db317 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" @@ -16,8 +16,12 @@ // //©///////////////////////////////////////////////////////////////////////////©// -#Область СлужебныйПрограммныйИнтерфейс +#Область ПрограммныйИнтерфейс +// Возвращает значение настройки "ВТранзакции" для текущего исполняемого объекта (тест, набор, модуль) +// +// Возвращаемое значение: +// Булево Функция ВТранзакции() Экспорт ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции; @@ -26,6 +30,10 @@ КонецФункции +// Возвращает значение настройки "УдалениеТестовыхДанных" для текущего исполняемого объекта (тест, набор, модуль) +// +// Возвращаемое значение: +// Булево Функция УдалениеТестовыхДанных() Экспорт ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных; @@ -34,6 +42,11 @@ КонецФункции +// Возвращает значение настройки "Перед" для текущего исполняемого объекта (тест, набор, модуль) +// Возвращает имя назначенного обработчика события (имя метода) "Перед". +// +// Возвращаемое значение: +// Строка Функция Перед() Экспорт ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().Перед; @@ -42,6 +55,11 @@ КонецФункции +// Возвращает значение настройки "После" для текущего исполняемого объекта (тест, набор, модуль) +// Возвращает имя назначенного обработчика события (имя метода) "После". +// +// Возвращаемое значение: +// Строка Функция После() Экспорт ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().После; @@ -50,14 +68,25 @@ КонецФункции +// Возвращает значение произвольной настройки для текущего исполняемого объекта (тест, набор, модуль) +// +// Параметры: +// ИмяНастройки - Строка - Имя настройки, см. ЮТФабрика.ПараметрыИсполненияТеста +// ЗначениеПоУмолчанию - Произвольный - Значение по умолчанию +// СтрогийУровеньИсполнения - Булево - Признак, стоит ли проверять наличие настройки у родительских элементов. +// Ложь - По умолчанию, будет выполнен поиск и получение значения для родетелей (набор, модуль), если значения для текущего элемента не установлено. +// Истина - Получение настройки только для текущего элемента. +// +// Возвращаемое значение: +// Произвольный, Неопределено, Булево, Строка - Значение настройки теста Функция ЗначениеНастройкиТеста(ИмяНастройки, ЗначениеПоУмолчанию, СтрогийУровеньИсполнения = Ложь) Экспорт Значение = ЗначениеПоУмолчанию; - КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения(); + КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения(); Если СтрогийУровеньИсполнения Тогда - ТекущийКонтекстИсполнения = ЮТКонтекст.КонтекстИсполненияТекущегоУровня(); + ТекущийКонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполненияТекущегоУровня(); Если ТекущийКонтекстИсполнения <> Неопределено Тогда Значение = ЮТКоллекции.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию); @@ -77,7 +106,7 @@ Иначе - ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения(); + ГлобальныеНастройки = ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения(); Если ГлобальныеНастройки.Свойство(ИмяНастройки) Тогда Значение = ГлобальныеНастройки[ИмяНастройки]; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 9953bc2f6..806a927e8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -37,7 +37,7 @@ Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда #Если ВебКлиент Или ТонкийКлиент Тогда - Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение); + Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение); #Иначе Значение = Значение.Получить(); #КонецЕсли @@ -64,7 +64,7 @@ // Строка Функция ХешMD5(Данные) Экспорт - Возврат ЮТОбщийВызовСервера.ХешMD5(Данные); + Возврат ЮТОбщийСлужебныйВызовСервера.ХешMD5(Данные); КонецФункции @@ -641,7 +641,7 @@ Функция УстановленБезопасныйРежим() Экспорт - Возврат ЮТОбщийВызовСервера.УстановленБезопасныйРежим(); + Возврат ЮТОбщийСлужебныйВызовСервера.УстановленБезопасныйРежим(); КонецФункции @@ -670,7 +670,7 @@ Функция Менеджер(Знач Менеджер) Экспорт #Если Сервер Тогда - Возврат ЮТОбщийВызовСервера.Менеджер(Менеджер); + Возврат ЮТОбщийСлужебныйВызовСервера.Менеджер(Менеджер); #Иначе ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте"); #КонецЕсли @@ -746,7 +746,7 @@ // ТабличныйДокумент, ТекстовыйДокумент, ДвоичныеДанные - Макет или его область Функция Макет(ИмяМакета) Экспорт - Возврат ЮТОбщийВызовСервера.Макет(ИмяМакета); + Возврат ЮТОбщийСлужебныйВызовСервера.Макет(ИмяМакета); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 96% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index f7d26b584..93863b778 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -106,13 +106,13 @@ Функция ЭтоАнглийскийВстроенныйЯзык() Экспорт - Возврат ЮТМетаданныеПовтИсп.ВариантВстроенногоЯзыка() = "English"; + Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "English"; КонецФункции Функция ЭтоРусскийВстроенныйЯзык() Экспорт - Возврат ЮТМетаданныеПовтИсп.ВариантВстроенногоЯзыка() = "Русский"; + Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "Русский"; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 84% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 8d98953f6..ffb866b9b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТОбщийВызовСервера + ЮТОбщийСлужебныйВызовСервера ru Общий (вызов сервера) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.suppress" deleted file mode 100644 index 59c6e1d27..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 98% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 8637fc602..faad6baad 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,9 +20,9 @@ Функция ПараметрыГенерацииОтчета() Экспорт - Параметры = ЮТФабрика.ПараметрыГенератораОтчета(); + Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета(); - ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("allure", "Allure 2 (json)"); + ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("allure", "Allure 2 (json)"); ОписаниеФормата.ЗаписьВКаталог = Истина; ОписаниеФормата.СамостоятельнаяЗаписьОтчета = Истина; Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 5873099b4..39707d092 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТОтчетAllure + ЮТОтчетAllureСлужебный ru Отчет allure diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.suppress" deleted file mode 100644 index 9346e2632..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 82% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 007fe6834..d2d5d568b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,9 +20,9 @@ Функция ПараметрыГенерацииОтчета() Экспорт - Параметры = ЮТФабрика.ПараметрыГенератораОтчета(); + Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета(); - ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("dumpjson", "Дамп результата тестирования в json"); + ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("dumpjson", "Дамп результата тестирования в json"); ОписаниеФормата.ИмяФайлаПоУмолчанию = "report.json"; ОписаниеФормата.ФильтрВыбораФайла = "Дамп результата тестирования (*.json)|*.json"; Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата); @@ -34,8 +34,8 @@ // Формирует отчет в формате JSON // // Параметры: -// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля -// Формат - см. ЮТФабрика.ОписаниеФорматаОтчета +// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета // Возвращаемое значение: // ДвоичныеДанные - Данные отчета Функция ДанныеОтчета(РезультатВыполнения, Формат) Экспорт diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 88% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index c2f49de1b..db11fb798 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТОтчетJSON + ЮТОтчетJSONСлужебный ru Отчет JSON diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 95% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 85866670e..9c9c40a99 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,9 +20,9 @@ Функция ПараметрыГенерацииОтчета() Экспорт - Параметры = ЮТФабрика.ПараметрыГенератораОтчета(); + Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета(); - ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("jUnit", "JUnit"); + ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("jUnit", "JUnit"); ОписаниеФормата.ИмяФайлаПоУмолчанию = "junit.xml"; ОписаниеФормата.ФильтрВыбораФайла = "jUnit(*.xml)|*.xml"; Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата); @@ -34,8 +34,8 @@ // Формирует отчет в формате jUnit // // Параметры: -// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля -// Формат - см. ЮТФабрика.ОписаниеФорматаОтчета +// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета // // Возвращаемое значение: // ДвоичныеДанные - Данные отчета @@ -53,7 +53,7 @@ // Формирует отчет (xml-файл) и возвращает его в виде двоичных данных // // Параметры: -// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля // Возвращаемое значение: // ДвоичныеДанные - полученный отчет Функция СформироватьОтчетОТестировании(РезультатТестирования) @@ -104,7 +104,7 @@ Для Каждого ОписаниеОшибки Из РезультатТеста.Ошибки Цикл - Статус = ЮТРегистрацияОшибок.СтатусОшибки(ОписаниеОшибки.ТипОшибки); + Статус = ЮТРегистрацияОшибокСлужебный.СтатусОшибки(ОписаниеОшибки.ТипОшибки); ИмяУзла = Неопределено; ЗаписатьЗначения = Ложь; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 3605a0dfa..967ce71fc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТОтчетJUnit + ЮТОтчетJUnitСлужебный ru Отчет jUnit diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 95% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 5a6977fc9..c35479552 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -21,7 +21,7 @@ // СформироватьОтчет // Формирует отчет о результатах тестирования по заданным параметрам // Параметры: -// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля // ПараметрыЗапуска - Структура - Параметры запуска, см. ЮТФабрика.ПараметрыЗапуска // Обработчик - ОписаниеОповещения Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска, Обработчик) Экспорт @@ -56,10 +56,10 @@ // Возвращаемое значение: // Структура - Поддерживаемые форматы отчетов // + Ключ - Идентификатор формата -// + Значение - см. ЮТФабрика.ОписаниеФорматаОтчета +// + Значение - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета Функция ПоддерживаемыеФорматыОтчетов() Экспорт - Модули = ЮТРасширения.ГенераторыОтчетов(); + Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов(); Форматы = Новый Структура; Для Каждого Модуль Из Модули Цикл @@ -106,7 +106,7 @@ Функция МодульФормирования(Формат) - Модули = ЮТРасширения.ГенераторыОтчетов(); + Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов(); Для Каждого Модуль Из Модули Цикл diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 88% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 45a1b3073..8df729cc0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТОтчет + ЮТОтчетСлужебный ru Отчет diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.suppress" deleted file mode 100644 index 8a6cb292f..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 96% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 22aa67bcd..b0b7c7e82 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -34,7 +34,7 @@ Исключение - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуИнициализацииДвижка(ИнформацияОбОшибке(), "Ошибка чтения параметров запуска"); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуИнициализацииДвижка(ИнформацияОбОшибке(), "Ошибка чтения параметров запуска"); Параметры = ЮТФабрика.ПараметрыЗапуска(); КонецПопытки; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 88% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 8f24fd55c..abb79f6ca 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТПараметрыЗапуска + ЮТПараметрыЗапускаСлужебный ru Параметры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 233a83712..c4fac2939 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ // ФиксированныйМассив из Строка Функция Словарь(ИмяРеализации, ИмяСловаря, Знач КодЛокализации = Неопределено) Экспорт КодЛокализации = ?(КодЛокализации = Неопределено, ЮТПодражатель.Локализация(), КодЛокализации); - Возврат ЮТПодражательПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации); + Возврат ЮТПодражательСлужебныйПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации); КонецФункции // Случайное значение из словаря. @@ -49,7 +49,7 @@ // см. НовыйКонтекст Функция Контекст() Экспорт //@skip-check constructor-function-return-section - Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()); + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); КонецФункции // Инициализирует подражатель @@ -58,7 +58,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция Инициализировать() Экспорт Если Контекст() = Неопределено Тогда - ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); КонецЕсли; Возврат ЮТПодражатель; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 96% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 4f451296b..fae40b312 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 80% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 69798e1ec..530b3b432 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТПодражательВызовСервера + ЮТПодражательСлужебныйВызовСервера ru Подражатель вызов сервера diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" similarity index 91% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" index ffdcc80c8..ff5c18a18 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ // ФиксированныйМассив из Строка Функция Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации) Экспорт Кодификатор = КодификаторСловаря(ИмяРеализации, ИмяСловаря, КодЛокализации); - Возврат Новый ФиксированныйМассив(ЮТПодражательВызовСервера.ДанныеСловаря(Кодификатор)); + Возврат Новый ФиксированныйМассив(ЮТПодражательСлужебныйВызовСервера.ДанныеСловаря(Кодификатор)); КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" index 58d6d844b..47a95dc1a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" @@ -1,6 +1,6 @@ - ЮТПодражательПовтИсп + ЮТПодражательСлужебныйПовтИсп ru Подражатель повт исп diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index 46bb0b55e..132bba93c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -325,7 +325,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция Инициализировать(Условия = Неопределено) Экспорт - ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); Если ЗначениеЗаполнено(Условия) Тогда Для Каждого Элемент Из Условия Цикл @@ -370,7 +370,7 @@ Функция Контекст() //@skip-check constructor-function-return-section - Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()); + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 96% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 2fe1d1bc4..a286787c2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -28,10 +28,10 @@ // - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры // // Возвращаемое значение: -// см. ЮТФабрика.ОписаниеРезультатаПроверки +// см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки Функция ПроверитьПредикаты(Знач Значение, Знач Предикаты, Знач ПараметрыСообщенийОбОшибке = Неопределено, ПараметрыСравнения = Неопределено) Экспорт - Результат = ЮТФабрика.ОписаниеРезультатаПроверки(); + Результат = ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки(); Если ПараметрыСообщенийОбОшибке = Неопределено Тогда ПараметрыСообщенийОбОшибке = ПараметрыСообщенийОбОшибке(); @@ -40,7 +40,7 @@ Предикаты = НаборПредикатов(Предикаты); Для Каждого Выражение Из Предикаты Цикл - ЮТСравнениеКлиентСервер.ПроверитьВыражениеПредиката(Значение, Выражение, Результат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); + ЮТСравнениеСлужебныйКлиентСервер.ПроверитьВыражениеПредиката(Значение, Выражение, Результат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); Если НЕ Результат.Успешно Тогда Прервать; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 84% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index a7e62ecdf..621b78a11 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,6 +1,6 @@ - ЮТПредикатыКлиентСервер + ЮТПредикатыСлужебныйКлиентСервер ru Предикаты клиент сервер diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 100% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 81% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 543964086..a759b0a53 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТПреобразования + ЮТПреобразованияСлужебный ru Преобразования diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 97% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 4ef579240..823f2eb9c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 88% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 937ba8c33..6d590a83d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТРасширения + ЮТРасширенияСлужебный ru Расширения функциональности diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index bc823e693..ed3a237e1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -24,12 +24,12 @@ // // Параметры: // ИмяСобытия - Строка -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов // Ошибка - ИнформацияОбОшибке // - Строка Процедура ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка) Экспорт - ТипОшибки = ЮТФабрика.ТипыОшибок().ОшибкаОбработкиСобытия; + ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ОшибкаОбработкиСобытия; Пояснение = ЮТСообщенияСлужебный.СообщениеОбОшибкеСобытия(ИмяСобытия, Ошибка); ДанныеОшибки = ДанныеОшибки(Ошибка, Пояснение, ТипОшибки); @@ -48,27 +48,27 @@ // Регистрирует ошибку загрузки тестов // // Параметры: -// Объект - Структура - см. ЮТФабрика.ОписаниеТестовогоМодуля или см. ЮТФабрика.ОписаниеТестовогоНабора или см. ЮТФабрика.ОписаниеТеста +// Объект - Структура - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля или см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора или см. ЮТФабрикаСлужебный.ОписаниеТеста // Описание - Строка - Описания ошибки, места возникновения // Ошибка - ИнформацияОбОшибке Процедура ЗарегистрироватьОшибкуЧтенияТестов(Объект, Описание, Ошибка) Экспорт - ДанныеОшибки = ДанныеОшибки(Ошибка, Описание, ЮТФабрика.ТипыОшибок().ЧтенияТестов); + ДанныеОшибки = ДанныеОшибки(Ошибка, Описание, ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов); Объект.Ошибки.Добавить(ДанныеОшибки); КонецПроцедуры // Регистрирует ошибку выполнения теста // Параметры: -// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста +// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста // Ошибка - ИнформацияОбОшибке Процедура ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка) Экспорт ТипОшибки = ТипОшибки(Ошибка, Тест.ПолноеИмяМетода); - Если ТипОшибки = ЮТФабрика.ТипыОшибок().Утверждений Тогда + Если ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Утверждений Тогда ДанныеОшибки = ДанныеОшибкиУтверждений(Ошибка); - ИначеЕсли ТипОшибки = ЮТФабрика.ТипыОшибок().Пропущен Тогда + ИначеЕсли ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Пропущен Тогда ДанныеОшибки = ДанныеОшибкиПропуска(Ошибка); Иначе ДанныеОшибки = ДанныеОшибки(Ошибка, ЮТСообщенияСлужебный.КраткоеСообщениеОшибки(Ошибка), ТипОшибки); @@ -80,22 +80,22 @@ // Регистрирует ошибку выполнения теста // Параметры: -// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста +// Объект - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста // Сообщение - Строка Процедура ЗарегистрироватьПростуюОшибкуВыполнения(Объект, Сообщение) Экспорт - ДанныеОшибки = ДанныеОшибки(Неопределено, Сообщение, ЮТФабрика.ТипыОшибок().Исполнения); + ДанныеОшибки = ДанныеОшибки(Неопределено, Сообщение, ЮТФабрикаСлужебный.ТипыОшибок().Исполнения); Объект.Ошибки.Добавить(ДанныеОшибки); КонецПроцедуры // Регистрирует ошибку режима выполнения теста // Параметры: -// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста +// Объект - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста // Ошибка - Строка Процедура ЗарегистрироватьОшибкуРежимаВыполнения(Объект, Ошибка) Экспорт - ДанныеОшибки = ДанныеОшибки(Неопределено, Ошибка, ЮТФабрика.ТипыОшибок().НекорректныйКонтекстИсполнения); + ДанныеОшибки = ДанныеОшибки(Неопределено, Ошибка, ЮТФабрикаСлужебный.ТипыОшибок().НекорректныйКонтекстИсполнения); Объект.Ошибки.Добавить(ДанныеОшибки); КонецПроцедуры @@ -106,10 +106,10 @@ // // Параметры: // ИнформацияОбОшибке - ИнформацияОбОшибке -// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки +// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки Процедура СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке, ОписаниеПроверки = Неопределено) Экспорт - СтруктураОшибки = ЮТКонтекст.КонтекстОшибки(); + СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Ложь; ВызватьОшибкуИсполнения(ИнформацияОбОшибке, ОписаниеПроверки); @@ -120,7 +120,7 @@ // При этом сохраняет в контекст состояние, для дальнейшей обработки // // Параметры: -// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки +// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки // Сообщение - Строка // ПроверяемоеЗначение - Произвольный // ОжидаемоеЗначение - Произвольный @@ -141,7 +141,7 @@ // При этом сохраняет в контекст состояние, для дальнейшей обработки // // Параметры: -// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки +// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки // Сообщение - Строка // ПроверяемоеЗначение - Произвольный // ОбъектПроверки - Строка - Человекочитаемое описание проверяемого значения @@ -155,7 +155,7 @@ Процедура Пропустить(Сообщение) Экспорт - СтруктураОшибки = ЮТКонтекст.КонтекстОшибки(); + СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Ложь; СообщениеОбОшибке = СообщениеОбОшибке(Сообщение, ПрефиксОшибкиПропуска()); @@ -174,10 +174,10 @@ КонецФункции // Вызывает ошибку выполнения теста -// Служебный метод, предварительно нужно самостоятельно настроить контекст (см. ЮТКонтекст.КонтекстОшибки) +// Служебный метод, предварительно нужно самостоятельно настроить контекст (см. ЮТКонтекстСлужебный.КонтекстОшибки) // Параметры: // ТекстСообщения - Строка -// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки +// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки Процедура ВызватьОшибкуПроверки(Знач ТекстСообщения, ОписаниеПроверки = Неопределено) Экспорт СообщениеОбОшибке = СообщениеОбОшибке(ТекстСообщения, ПрефиксОшибкиУтверждений(), ОписаниеПроверки); @@ -198,10 +198,10 @@ // ИмяВызываемогоМетода - Строка - Имя вызываемого метода // // Возвращаемое значение: -// Строка - см. ЮТФабрика.ТипыОшибок +// Строка - см. ЮТФабрикаСлужебный.ТипыОшибок Функция ТипОшибки(Ошибка, ИмяВызываемогоМетода) Экспорт - ТипыОшибок = ЮТФабрика.ТипыОшибок(); + ТипыОшибок = ЮТФабрикаСлужебный.ТипыОшибок(); Описание = Ошибка.Описание; @@ -297,7 +297,7 @@ Функция СтатусОшибки(ТипОшибки) Экспорт - СтатусОшибки = ЮТФабрика.ПараметрыТиповОшибок()[ТипОшибки].Статус; + СтатусОшибки = ЮТФабрикаСлужебный.ПараметрыТиповОшибок()[ТипОшибки].Статус; Если СтатусОшибки = Неопределено Тогда СтатусОшибки = ЮТФабрика.СтатусыИсполненияТеста().Сломан; @@ -309,7 +309,7 @@ Процедура УстановитьДанныеОшибкиСравнения(ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт - СтруктураОшибки = ЮТКонтекст.КонтекстОшибки(); + СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Истина; СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); @@ -319,7 +319,7 @@ Процедура УстановитьДанныеОшибкиУтверждения(ПроверяемоеЗначение) Экспорт - СтруктураОшибки = ЮТКонтекст.КонтекстОшибки(); + СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Истина; СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); @@ -355,7 +355,7 @@ Процедура ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт - ОписаниеКонтекстаОшибки = ЮТФабрика.ОписаниеКонтекстаОшибки(); + ОписаниеКонтекстаОшибки = ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки(); ОписаниеКонтекстаОшибки.ПроверяемоеЗначение = ПроверяемоеЗначение; ОписаниеКонтекстаОшибки.ОжидаемоеЗначение = ОжидаемоеЗначение; ОписаниеКонтекстаОшибки.ОшибкаУтверждения = Истина; @@ -368,7 +368,7 @@ Процедура ДобавитьПояснениеОшибки(Пояснение) Экспорт - Детали = ЮТКонтекст.КонтекстДеталиОшибки(); + Детали = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(); Установить = Детали = Неопределено; Если Установить Тогда @@ -378,7 +378,7 @@ Детали.Добавить(Пояснение); Если Установить Тогда - ЮТКонтекст.УстановитьКонтекстДеталиОшибки(Детали); + ЮТКонтекстСлужебный.УстановитьКонтекстДеталиОшибки(Детали); КонецЕсли; КонецПроцедуры @@ -392,10 +392,10 @@ Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки) #Если Сервер Тогда - Детали = ЮТКонтекст.КонтекстДеталиОшибки(Истина); + Детали = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(Истина); #Иначе - ДеталиСервер = ЮТКонтекст.КонтекстДеталиОшибки(Истина); - ДеталиКлиент = ЮТКонтекст.КонтекстДеталиОшибки(); + ДеталиСервер = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(Истина); + ДеталиКлиент = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(); Если ЗначениеЗаполнено(ДеталиКлиент) И ЗначениеЗаполнено(ДеталиСервер) Тогда ЮТКоллекции.ДополнитьМассив(ДеталиСервер, ДеталиКлиент); @@ -410,13 +410,13 @@ #КонецЕсли Если ЗначениеЗаполнено(Детали) Тогда - ЮТКонтекст.УстановитьКонтекстДеталиОшибки(Новый Массив()); + ЮТКонтекстСлужебный.УстановитьКонтекстДеталиОшибки(Новый Массив()); Детали.Добавить(Сообщение); Сообщение = СтрСоединить(Детали, Символы.ПС); КонецЕсли; - ДанныеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение); + ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение); Если Ошибка <> Неопределено Тогда ДанныеОшибки.Стек = СтекОшибки(Ошибка); @@ -442,12 +442,12 @@ Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиУтверждений()); - ДанныеОшибки = ЮТФабрика.ОписаниеОшибкиСравнения(Описание); + ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиСравнения(Описание); ДанныеОшибки.Стек = СтекОшибки(Ошибка); ДобавитьСообщенияПользователю(ДанныеОшибки); - СтруктураОшибки = ЮТКонтекст.КонтекстОшибки(); + СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); Если СтруктураОшибки <> Неопределено И СтруктураОшибки.ОшибкаУтверждения Тогда ДанныеОшибки.ПроверяемоеЗначение = СтруктураОшибки.ПроверяемоеЗначение; @@ -462,7 +462,7 @@ Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиПропуска()); - ДанныеОшибки = ЮТФабрика.ОписаниеОшибкиПропуска(Описание); + ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(Описание); Возврат ДанныеОшибки; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 85% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index dc27eee7f..648797154 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТРегистрацияОшибок + ЮТРегистрацияОшибокСлужебный ru Регистрация ошибок diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" index aa7332964..01a195787 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" @@ -20,7 +20,7 @@ Функция АдресСерверногоКонтекста() Экспорт - Возврат ЮТКонтекстСервер.АдресСерверногоКонтекста(Ложь); + Возврат ЮТКонтекстСлужебныйВызовСервера.АдресСерверногоКонтекста(Ложь); КонецФункции @@ -32,13 +32,13 @@ Функция ПараметрыТиповОшибок() Экспорт - Возврат ЮТФабрика.ПараметрыТиповОшибок(Ложь); + Возврат ЮТФабрикаСлужебный.ПараметрыТиповОшибок(Ложь); КонецФункции Функция ОписаниеТиповЛюбаяСсылка() Экспорт - Возврат ЮТОбщийВызовСервера.ОписаниеТиповЛюбаяСсылка(); + Возврат ЮТОбщийСлужебныйВызовСервера.ОписаниеТиповЛюбаяСсылка(); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 79% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 4c70c9474..f29fc2e19 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -30,13 +30,13 @@ // Обработчик события "ПередВсемиТестамиМодуля" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля Процедура ПередВсемиТестамиМодуля(ТестовыйМодуль) Экспорт УстановитьКонтекстИсполнения(ТестовыйМодуль); - ЮТКонтекст.УстановитьКонтекстМодуля(); + ЮТКонтекстСлужебный.УстановитьКонтекстМодуля(); - ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); + ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); ВызватьОбработкуСобытия("ПередВсемиТестами", ОписаниеСобытия); КонецПроцедуры @@ -44,14 +44,14 @@ // Обработчик события "ПередТестовымНабором" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов Процедура ПередТестовымНабором(ТестовыйМодуль, Набор) Экспорт УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор); - ЮТКонтекст.УстановитьКонтекстНабораТестов(); + ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов(); - ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); + ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); ВызватьОбработкуСобытия("ПередТестовымНабором", ОписаниеСобытия); КонецПроцедуры @@ -59,15 +59,15 @@ // Обработчик события "ПередКаждымТестом" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест) Экспорт - // Установка контекста исполнения вызывается в см. ЮТИсполнительКлиентСервер.ПередКаждымТестом - ЮТКонтекст.УстановитьКонтекстТеста(); + // Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом + ЮТКонтекстСлужебный.УстановитьКонтекстТеста(); - ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); + ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда ПолучитьСообщенияПользователю(Истина); @@ -80,12 +80,12 @@ // Обработчик события "ПослеКаждогоТеста" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест) Экспорт - ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); + ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия); @@ -96,11 +96,11 @@ // Обработчик события "ПослеТестовогоНабора" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов Процедура ПослеТестовогоНабора(ТестовыйМодуль, Набор) Экспорт - ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); + ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); ВызватьОбработкуСобытия("ПослеТестовогоНабора", ОписаниеСобытия); УстановитьКонтекстИсполнения(ТестовыйМодуль); @@ -110,10 +110,10 @@ // Обработчик события "ПослеВсехТестовМодуля" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля Процедура ПослеВсехТестовМодуля(ТестовыйМодуль) Экспорт - ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); + ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); ВызватьОбработкуСобытия("ПослеВсехТестов", ОписаниеСобытия); УстановитьКонтекстИсполнения(); @@ -123,7 +123,7 @@ // Перед выполнением тестов. // // Параметры: -// ИсполняемыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// ИсполняемыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули); @@ -134,7 +134,7 @@ // После выполнения тестов. // // Параметры: -// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования); @@ -157,7 +157,7 @@ // Обработчик события "ПередЧтениемСценариевМодуля" // Позволяет настроить базовые параметры перед чтением настроек тестов модуля // Параметры: -// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля); @@ -168,7 +168,7 @@ // После чтения сценариев модуля. // Позволяет настроить/обработать параметры загруженных настроек тестов модуля // Параметры: -// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля // ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт @@ -179,7 +179,7 @@ // Обработка события "ПослеЧтенияСценариев" // Параметры: -// Сценарии - Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах +// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах Процедура ПослеЧтенияСценариев(Сценарии) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(Сценарии); @@ -189,7 +189,7 @@ // Обработка события "ПослеФормированияИсполняемыхНаборовТестов" // Параметры: -// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов +// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеТестовыеМодули); @@ -206,7 +206,7 @@ Процедура УстановитьКонтекстИсполнения(ТестовыйМодуль = Неопределено, Набор = Неопределено, Тест = Неопределено) Экспорт Уровни = ЮТФабрика.УровниИсполнения(); - КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения(); + КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения(); КонтекстИсполнения.Модуль = ТестовыйМодуль; КонтекстИсполнения.Набор = Набор; @@ -264,7 +264,7 @@ Ошибки = Новый Массив(); - Для Каждого ИмяМодуля Из ЮТРасширения.ОбработчикиСобытий() Цикл + Для Каждого ИмяМодуля Из ЮТРасширенияСлужебный.ОбработчикиСобытий() Цикл Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия); @@ -285,7 +285,7 @@ // // Параметры: // ИмяСобытия - Строка - Имя вызываемого метода обработки события -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов // Процедура ВызватьОбработчикТестовогоМодуля(Знач ИмяСобытия, ОписаниеСобытия) @@ -326,7 +326,7 @@ Процедура ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки) Для Каждого Ошибка Из Ошибки Цикл - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка); КонецЦикла; КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 89% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 448bfcd4b..f86d80900 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТСобытия + ЮТСобытияСлужебный ru Генератор событий diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 175c510c7..e147972bc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -21,7 +21,7 @@ // Форматированный текст ошибки утверждения. // // Параметры: -// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки +// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки // ТекстОжидания - Строка - Описание ожидания // ОбъектПроверки - Строка - Объект проверки // @@ -65,7 +65,7 @@ // Строка - Сообщение об ошибке события Функция СообщениеОбОшибкеСобытия(ИмяСобытия, Ошибка) Экспорт - ТипОшибки = ЮТФабрика.ТипыОшибок().ОшибкаОбработкиСобытия; + ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ОшибкаОбработкиСобытия; Возврат СтрШаблон("%1 '%2': %3", ТипОшибки, ИмяСобытия, КраткоеСообщениеОшибки(Ошибка)); КонецФункции @@ -80,7 +80,6 @@ КонецФункции - // Формирует строковое представление значения. Для значений, преобразуемых в пустые строки, добавляет описание типа. // // Параметры: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.suppress" deleted file mode 100644 index 0102ef970..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 93% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index abb15e9d6..486a36b84 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,7 +35,7 @@ Индекс = Данные1.Количество() - 1; Пока Индекс >= 0 Цикл - Если НЕ ЮТСравнениеКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда + Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда Возврат Ложь; КонецЕсли; Индекс = Индекс - 1; @@ -69,7 +69,7 @@ КонецЕсли; Если УчитыватьТолькоВидимыеКолонки И УчитыватьТолькоВидимыеСтроки Тогда - ЮТОбщийВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента); + ЮТОбщийСлужебныйВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента); КонецЕсли; НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 80% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 6b1ab8a63..c2bec952a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТСравнениеСервер + ЮТСравнениеСлужебныйВызовСервера ru Сравнение сервер diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index eae0241a8..97ab37f81 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -51,23 +51,23 @@ Результат = Неопределено; - Если ЭтоТипСтруктура(ТипЗначения) Тогда + Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда Результат = СтруктурыРавны(Данные1, Данные2); - ИначеЕсли ЭтоТипСоответствие(ТипЗначения) Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда Результат = СоответствияРавны(Данные1, Данные2); - ИначеЕсли ЭтоТипМассива(ТипЗначения) Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипЗначения) Тогда Результат = МассивыРавны(Данные1, Данные2); ИначеЕсли ТипЗначения = Тип("ТабличныйДокумент") Тогда - Результат = ЮТСравнениеСервер.ТабличныеДокументыРавны(Данные1, Данные2); + Результат = ЮТСравнениеСлужебныйВызовСервера.ТабличныеДокументыРавны(Данные1, Данные2); - ИначеЕсли ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда // Возвращаем ложь, так как для этих типов должно сработать обычное равенство Результат = Ложь; КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off @@ -75,7 +75,7 @@ #Если Сервер Тогда Если ТипЗначения = Тип("ТаблицаЗначений") Тогда - Результат = ЮТСравнениеСервер.ТаблицыРавны(Данные1, Данные2); + Результат = ЮТСравнениеСлужебныйВызовСервера.ТаблицыРавны(Данные1, Данные2); ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда @@ -127,7 +127,7 @@ // // Возвращаемое значение: // Структура - Параметры проверки: -// * ОбъектПроверки - см. ЮТФабрика.ОписаниеПроверяемогоЗначения +// * ОбъектПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверяемогоЗначения // * ПрефиксОшибки - Строка, Неопределено - // * ОписаниеПроверки - Строка, Неопределено - // * ВидСравнения - Строка @@ -136,7 +136,7 @@ // * ТекстПроверяемоеЗначение - Строка Функция ПараметрыПроверки(ВидСравнения, ПроверяемоеЗначение, ИмяСвойства, ОжидаемоеЗначение, Реверс = Ложь) Экспорт - Параметры = ЮТФабрика.ОписаниеПроверки(ПроверяемоеЗначение); + Параметры = ЮТФабрикаСлужебный.ОписаниеПроверки(ПроверяемоеЗначение); Параметры.ОбъектПроверки.ИмяСвойства = ИмяСвойства; Параметры.Вставить("ВидСравнения", ВидСравнения); Параметры.Вставить("ОжидаемоеЗначение", ОжидаемоеЗначение); @@ -235,7 +235,7 @@ ТипЗнч(Значение), ОжидаемыйТип, Суффикс); - ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки); + ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки); КонецЕсли; Возврат Соответствует; @@ -261,11 +261,11 @@ Результат = Ложь; ТипЗначения = ТипЗнч(Значение); - Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("ФиксированнаяСтруктура") Тогда + Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда Результат = Значение.Свойство(Свойство); - ИначеЕсли ТипЗначения = Тип("Соответствие") Или ТипЗначения = Тип("ФиксированноеСоответствие") Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда Для Каждого КлючЗначение Из Значение Цикл @@ -341,8 +341,8 @@ Попытка Результат = РегулярныеВыражения.Совпадает(Строка(ПроверяемаяСтрока), РегулярноеВыражение); Исключение - ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка проверки строки по шаблону " + РегулярноеВыражение); - ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(РегулярныеВыражения.ОписаниеОшибки); + ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки("Ошибка проверки строки по шаблону " + РегулярноеВыражение); + ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(РегулярныеВыражения.ОписаниеОшибки); ВызватьИсключение; КонецПопытки; @@ -358,12 +358,12 @@ ИскомоеЗначениеНайдено = СтрНайти(ПроверяемоеЗначение, ОжидаемоеЗначение) > 0; - ИначеЕсли ЭтоТипМассива(ТипПроверяемогоЗначения) Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипПроверяемогоЗначения) Тогда Индекс = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение); ИскомоеЗначениеНайдено = Индекс <> Неопределено; - ИначеЕсли ЭтоТипКлючЗначение(ТипПроверяемогоЗначения) Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоКлючЗначение(ТипПроверяемогоЗначения) Тогда ИскомоеЗначениеНайдено = Ложь; ТипОжидаемогоЗначения = ТипЗнч(ОжидаемоеЗначение); @@ -393,39 +393,6 @@ КонецФункции -Функция ЭтоТипМассива(Тип) - - Возврат Тип = Тип("Массив") Или Тип = Тип("ФиксированныйМассив"); - -КонецФункции - -Функция ЭтоТипСтруктура(Тип) - - Возврат Тип = Тип("Структура") Или Тип = Тип("ФиксированнаяСтруктура"); - -КонецФункции - -Функция ЭтоТипСоответствие(Тип) - - Возврат Тип = Тип("Соответствие") Или Тип = Тип("ФиксированноеСоответствие"); - -КонецФункции - -Функция ЭтоТипКлючЗначение(Тип) - - Возврат ЭтоТипСтруктура(Тип) ИЛИ ЭтоТипСоответствие(Тип); - -КонецФункции - -Функция ЭтоПримитивныйТип(ТипЗначения) - - Возврат ТипЗначения = Тип("Число") - ИЛИ ТипЗначения = Тип("Строка") - ИЛИ ТипЗначения = Тип("Дата") - ИЛИ ТипЗначения = Тип("Булево"); - -КонецФункции - #Область РеализацияПредикатор Процедура ПроверитьВыражениеПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения) Экспорт @@ -433,7 +400,7 @@ Попытка ВызватьОбработчикПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); Исключение - ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(СтатусПроверки, ИнформацияОбОшибке()); + ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(СтатусПроверки, ИнформацияОбОшибке()); КонецПопытки; КонецПроцедуры @@ -443,7 +410,7 @@ // Параметры: // Значение - Произвольный - Значение // Выражение - см. ЮТФабрика.ВыражениеПредиката -// СтатусПроверки - см. ЮТФабрика.ОписаниеРезультатаПроверки +// СтатусПроверки - см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки // ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке // ПараметрыСравнения - Неопределено // - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры @@ -539,13 +506,13 @@ Возврат; КонецЕсли; - ШаблонСообщения = ЮТПредикатыКлиентСервер.ШаблонВыражения(ПараметрыПроверки.ВидСравнения); + ШаблонСообщения = ЮТПредикатыСлужебныйКлиентСервер.ШаблонВыражения(ПараметрыПроверки.ВидСравнения); Сообщение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонСообщения, ПараметрыПроверки.ОжидаемоеЗначение); ТекстОшибки = ЮТСообщенияСлужебный.ФорматированныйТекстОшибкиУтверждения(ПараметрыПроверки, Сообщение, ПараметрыПроверки.ТекстПроверяемоеЗначение); - ТекстОшибки = ЮТРегистрацияОшибок.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки); + ТекстОшибки = ЮТРегистрацияОшибокСлужебный.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки); - ЮТРегистрацияОшибок.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, + ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ФактическоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение); @@ -582,7 +549,7 @@ Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда #Если ВебКлиент Или ТонкийКлиент Тогда - Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение); + Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение); #Иначе Значение = Значение.Получить(); #КонецЕсли @@ -616,7 +583,7 @@ Если ФактическаяДлина = Неопределено Тогда ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); - ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); + ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); Возврат; КонецЕсли; @@ -636,7 +603,7 @@ Если Результат = Неопределено Тогда ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); - ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); + ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); КонецЕсли; Возврат Результат; @@ -656,7 +623,7 @@ Если СоответствуетШаблону = Неопределено Тогда ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); - ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); + ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); КонецЕсли; Возврат СоответствуетШаблону; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 84% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index 2deec1154..f06402790 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,6 +1,6 @@ - ЮТСравнениеКлиентСервер + ЮТСравнениеСлужебныйКлиентСервер ru Сравнение клиент сервер diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index ec639be26..48b79167d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -37,14 +37,14 @@ КонецЕсли; Если ЗначениеЗаполнено(Наименование) Тогда - Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда + Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда Данные.Вставить("Description", Наименование); Иначе Данные.Вставить("Наименование", Наименование); КонецЕсли; КонецЕсли; - Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); + Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); Возврат Ссылка; @@ -74,7 +74,7 @@ Данные.Удалить("РежимЗаписи"); КонецЕсли; - Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); + Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); Возврат Ссылка; @@ -121,11 +121,11 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло"); #Иначе - Генератор = ЮТКонтекст.ЗначениеКонтекста("ГенераторСлучайныхЧисел"); + Генератор = ЮТКонтекстСлужебный.ЗначениеКонтекста("ГенераторСлучайныхЧисел"); Если Генератор = Неопределено Тогда Генератор = Новый ГенераторСлучайныхЧисел(); - ЮТКонтекст.УстановитьЗначениеКонтекста("ГенераторСлучайныхЧисел", Генератор); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("ГенераторСлучайныхЧисел", Генератор); КонецЕсли; Если Максимум = Неопределено Тогда @@ -426,7 +426,7 @@ // ПеречислениеСсылка Функция СлучайноеЗначениеПеречисления(Перечисление) Экспорт - Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеЗначениеПеречисления(Перечисление); + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеЗначениеПеречисления(Перечисление); КонецФункции @@ -441,7 +441,7 @@ // ПеречислениеСсылка Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт - Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор); + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор); КонецФункции @@ -679,7 +679,7 @@ Процедура Удалить(Ссылки) Экспорт Если ЗначениеЗаполнено(Ссылки) Тогда - ЮТТестовыеДанныеВызовСервера.Удалить(Ссылки); + ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки); КонецЕсли; КонецПроцедуры @@ -743,7 +743,7 @@ // ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок Функция HTTPСервисЗапрос() Экспорт - Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда + Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда Возврат Обработки.ЮТHTTPServiceRequest.Создать(); Иначе Возврат Обработки.ЮТHTTPСервисЗапрос.Создать(); @@ -778,7 +778,7 @@ // Ссылка - ЛюбаяСсылка // ИмяРеквизита - Строка // ЗначениеРеквизита - Произвольный -// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи +// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи Процедура УстановитьЗначениеРеквизита(Ссылка, ИмяРеквизита, ЗначениеРеквизита, ПараметрыЗаписи = Неопределено) Экспорт Значения = Новый Соответствие(); @@ -792,10 +792,10 @@ // Параметры: // Ссылка - ЛюбаяСсылка - Ссылка // ЗначенияРеквизитов - Структура, Соответствие из Произвольный - Значения реквизитов -// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи +// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи Процедура УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи = Неопределено) Экспорт - ЮТТестовыеДанныеВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов); + ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index c0ec8f79f..4c5690195 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -56,7 +56,7 @@ Иначе - Значение = ЮТТестовыеДанныеВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения); + Значение = ЮТТестовыеДанныеСлужебныйВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения); ДобавитьТестовуюЗапись(Значение); КонецЕсли; @@ -152,9 +152,9 @@ Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыСозданияОбъектов, ТаблицаЗначений) Экспорт - ПараметрыЗаполнения = ЮТФабрика.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов); + ПараметрыЗаполнения = ЮТФабрикаСлужебный.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов); - Возврат ЮТТестовыеДанныеВызовСервера.ЗагрузитьИзМакета(Макет, + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 95% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 89f87eca0..5f96c07ce 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -111,7 +111,7 @@ КонецЕсли; Исключение - Ошибки.Добавить(ЮТРегистрацияОшибок.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке())); + Ошибки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке())); КонецПопытки; @@ -142,7 +142,7 @@ ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ОбъектМетаданных); ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа; - Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда + Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда ИмяТипаМенеджера = СтрШаблон("%1Manager.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя); Иначе ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя); @@ -168,7 +168,7 @@ Знач ПараметрыЗаполнения, Знач ТаблицаЗначений) Экспорт - Таблица = ЮТТестовыеДанные_ТаблицыЗначений.ЗагрузитьИзМакета(Макет, + Таблица = ЮТТестовыеДанныеСлужебныйТаблицыЗначений.ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, @@ -206,7 +206,7 @@ Условия = ЮТест.Предикат(Отбор) .Реквизит("Предопределенный").Равно(Истина); - ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка"); + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка"); Данные = ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса); @@ -318,7 +318,7 @@ Исключение - ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект))); + ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект))); ВызватьИсключение; КонецПопытки; @@ -327,7 +327,7 @@ Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных) - АнглийскийЯзык = ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык(); + АнглийскийЯзык = ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык(); ИмяТипаДокумент = ?(АнглийскийЯзык, "Document", "Документ"); ИмяРеквизитаКод = ?(АнглийскийЯзык, "Code", "Код"); ИмяРеквизитаНаименование = ?(АнглийскийЯзык, "Description", "Наименование"); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 80% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index ffd304d45..a104c2e86 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТТестовыеДанныеВызовСервера + ЮТТестовыеДанныеСлужебныйВызовСервера ru Тестовые данные (вызов сервера) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" similarity index 97% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" index 6d17c5fac..734c06059 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" @@ -49,7 +49,7 @@ ПараметрыЗагрузки = ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения); - Выборка = ЮТОбщийВызовСервера.ВыборкаИзТабличногоДокумента(ДанныеМакета); + Выборка = ЮТОбщийСлужебныйВызовСервера.ВыборкаИзТабличногоДокумента(ДанныеМакета); Пока Выборка.Следующий() Цикл @@ -230,7 +230,7 @@ Если ПараметрыСодержитДанные Тогда ДанныеМакета = Макет; ИначеЕсли ТипПараметра = Тип("Строка") Тогда - ДанныеМакета = ЮТОбщийВызовСервера.Макет(Макет); + ДанныеМакета = ЮТОбщийСлужебныйВызовСервера.Макет(Макет); Иначе ВызватьИсключение ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.ДанныеМакета", Макет); КонецЕсли; @@ -329,9 +329,9 @@ ИначеЕсли ОписаниеКолонки.Ссылочный Тогда Значение = СоздатьНовуюЗапись(ОписаниеКолонки, ЗначенияРеквизитов, ПараметрыЗаписи); ИначеЕсли ОписаниеКолонки.ЭтоДата Тогда - Значение = ЮТПреобразования.ПривестиЗначениеКДате(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления); + Значение = ЮТПреобразованияСлужебный.ПривестиЗначениеКДате(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления); ИначеЕсли ОписаниеКолонки.ЭтоЧисло Тогда - Значение = ЮТПреобразования.ПривестиЗначениеКЧислу(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления); + Значение = ЮТПреобразованияСлужебный.ПривестиЗначениеКЧислу(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления); Иначе Значение = ОписаниеКолонки.ОписаниеТипа.ПривестиЗначение(ЗначениеПредставления); КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" similarity index 80% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" index 6c6dc00b0..5efe35c92 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265_\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТТестовыеДанные_ТаблицыЗначений + ЮТТестовыеДанныеСлужебныйТаблицыЗначений ru Тестовые данные таблицы значений diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 1611f98e1..0d79ae3b6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -42,7 +42,7 @@ КонецЕсли; Контекст = Контекст(); - НовыйТестовыйНабор = ЮТФабрика.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); + НовыйТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор); Контекст.ТекущийНабор = НовыйТестовыйНабор; @@ -290,14 +290,14 @@ ИнициализироватьКонтекст(МетаданныеМодуля); - ЮТСобытия.ПередЧтениемСценариевМодуля(МетаданныеМодуля); + ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); КонецПроцедуры Процедура ПослеЧтенияСценариевМодуля() Экспорт Контекст = Контекст(); - ЮТСобытия.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии); + ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии); КонецПроцедуры @@ -318,11 +318,11 @@ // Исполняемые сценарии. // // Параметры: -// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля // // Возвращаемое значение: // Структура - Исполняемые сценарии: -// * ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы модуля +// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля // * НастройкиВыполнения- Структура - Настройки исполнения теста Функция ИсполняемыеСценарии(МетаданныеМодуля) @@ -330,7 +330,7 @@ Структура.Вставить("ТестовыеНаборы", Новый Массив()); Структура.Вставить("НастройкиВыполнения", Новый Структура()); - Набор = ЮТФабрика.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); + Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию Структура.ТестовыеНаборы.Добавить(Набор); @@ -347,7 +347,7 @@ Функция КонтекстыВызоваПоУмолчанию() - Возврат ЮТФабрика.КонтекстыМодуля(Контекст().МетаданныеМодуля); + Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля); КонецФункции @@ -359,7 +359,7 @@ Контексты = СтрРазделить(Контексты, ", ", Ложь); КонецЕсли; - Возврат ЮТФабрика.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой); + Возврат ЮТФабрикаСлужебный.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой); КонецФункции @@ -396,7 +396,7 @@ Функция Контекст() - Возврат ЮТКонтекст.ЗначениеКонтекста("КонтекстРегистрацияТестов"); + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов"); КонецФункции @@ -412,7 +412,7 @@ Контекст.Вставить("ТекущийНабор", Набор); Контекст.Вставить("ТекущийЭлемент", Набор); - ЮТКонтекст.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 0a60570bb..ed011211c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -62,7 +62,7 @@ Функция ЭтоСсылочныйТип(Тип) Экспорт - Возврат Тип <> Неопределено И ЮТОбщий.ОписаниеТиповЛюбаяСсылка().СодержитТип(Тип); + Возврат Тип <> Неопределено И ОписаниеТиповЛюбаяСсылка().СодержитТип(Тип); КонецФункции @@ -198,4 +198,34 @@ #КонецОбласти +Функция ЭтоСтруктура(ТипЗначения) Экспорт + + Возврат ТипЗначения = Тип("Структура") + Или ТипЗначения = Тип("ФиксированнаяСтруктура"); + +КонецФункции + +Функция ЭтоМассива(ТипЗначения) Экспорт + + Возврат ТипЗначения = Тип("Массив") + Или ТипЗначения = Тип("ФиксированныйМассив"); + +КонецФункции + +Функция ЭтоСоответствие(ТипЗначения) Экспорт + + Возврат ТипЗначения = Тип("Соответствие") + Или ТипЗначения = Тип("ФиксированноеСоответствие"); + +КонецФункции + +Функция ЭтоКлючЗначение(ТипЗначения) Экспорт + + Возврат ТипЗначения = Тип("Структура") + Или ТипЗначения = Тип("ФиксированнаяСтруктура") + Или ТипЗначения = Тип("Соответствие") + Или ТипЗначения = Тип("ФиксированноеСоответствие"); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 0c9b25380..ed2e69ddb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -44,8 +44,8 @@ Контекст.ОбъектПроверки.Значение = ПроверяемоеЗначение; Контекст.ПрефиксОшибки = Сообщение; - ЮТКонтекст.УстановитьКонтекстУтверждений(Контекст); - ЮТКонтекст.УстановитьКонтекстОшибки(); + ЮТКонтекстСлужебный.УстановитьКонтекстУтверждений(Контекст); + ЮТКонтекстСлужебный.УстановитьКонтекстОшибки(); Возврат ЮТУтверждения; @@ -86,7 +86,7 @@ Контекст = Контекст(); Если НЕ ЗначениеЗаполнено(Контекст.ИмяМетода) Тогда - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения("Перед установкой параметров нужно указать метод", Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения("Перед установкой параметров нужно указать метод", Контекст); КонецЕсли; Если Контекст.ПараметрыМетода = Неопределено Тогда @@ -591,7 +591,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - Если ЮТПредикатыКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда + Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Ложь); Иначе ПроверитьПредикат(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки); @@ -626,7 +626,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - Если ЮТПредикатыКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда + Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Истина); Иначе ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки); @@ -821,20 +821,20 @@ Модуль = ПроверяемоеЗначение(Контекст); Результат = ВызватьМетод(Модуль, Контекст.ИмяМетода, Контекст.ПараметрыМетода, ВТранзакции); Исключение - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); КонецПопытки; Если НЕ Результат.ИсключениеВозникло Тогда ТекстОшибки = СтрШаблон("ожидали, что метод `%1` вызовет исключение `%2`, но это не так.", Контекст.ИмяМетода, ОжидаемоеЗначение); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); ИначеЕсли СтрНайти(Результат.ТекстИсключения, ОжидаемоеЗначение) = 0 Тогда ТекстОшибки = СтрШаблон("ожидали, что метод `%1` вызовет исключение `%2`, но получили `%3`.", Контекст.ИмяМетода, ОжидаемоеЗначение, Результат.ТекстИсключения); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); КонецЕсли; Возврат ЮТУтверждения; @@ -859,18 +859,18 @@ Модуль = ПроверяемоеЗначение(Контекст); Результат = ВызватьМетод(Модуль, Контекст.ИмяМетода, Контекст.ПараметрыМетода, ВТранзакции); Исключение - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); КонецПопытки; Если Результат.ИсключениеВозникло Тогда - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение); Если НЕ ЗначениеЗаполнено(ОжидаемоеЗначение) Тогда ТекстОшибки = СтрШаблон("ожидали, что метод `%1` не вызовет исключение, но это не так.", Контекст.ИмяМетода); - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); ИначеЕсли СтрНайти(Результат.ТекстИсключения, ОжидаемоеЗначение) <> 0 Тогда ТекстОшибки = СтрШаблон("ожидали, что метод `%1` не вызовет исключение `%2`, но это не так.", Контекст.ИмяМетода, ОжидаемоеЗначение); - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст); КонецЕсли; КонецЕсли; @@ -1213,7 +1213,7 @@ ПараметрыСообщенийОбОшибке = ПараметрыСообщенийОбОшибке(ПроверяемоеЗначение, ОписаниеПроверки); - РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке); + РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке); Если НЕ РезультатПроверки.Успешно Тогда ОбработатьРезультатПроверки(Контекст, РезультатПроверки); @@ -1245,7 +1245,7 @@ Для Каждого Элемент Из ПроверяемоеЗначение Цикл - РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке); + РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке); Если НЕ РезультатПроверки.Успешно Тогда ОбработатьРезультатПроверки(Контекст, РезультатПроверки); КонецЕсли; @@ -1280,7 +1280,7 @@ Для Каждого Элемент Из ПроверяемоеЗначение Цикл - РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке); + РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке); Если РезультатПроверки.Успешно Тогда Успешно = Истина; Прервать; @@ -1289,7 +1289,7 @@ КонецЦикла; Если НЕ Успешно Тогда - Сообщение = ЮТПредикатыКлиентСервер.ПредставлениеПредикатов(Предикат, " и "); + Сообщение = ЮТПредикатыСлужебныйКлиентСервер.ПредставлениеПредикатов(Предикат, " и "); СгенерироватьОшибкуУтверждения(Сообщение, ПроверяемоеЗначение, "один из элементов проверяемого значения"); КонецЕсли; @@ -1307,15 +1307,15 @@ // Используется для принудительного сброса контекста утверждения Процедура СброситьКонтекст() Экспорт - ЮТКонтекст.УстановитьКонтекстУтверждений(Неопределено); - ЮТКонтекст.УстановитьКонтекстОшибки(); + ЮТКонтекстСлужебный.УстановитьКонтекстУтверждений(Неопределено); + ЮТКонтекстСлужебный.УстановитьКонтекстОшибки(); КонецПроцедуры // Обработчик события "ПередКаждымТестом" // // Параметры: -// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов +// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт СброситьКонтекст(); @@ -1335,7 +1335,7 @@ Функция Контекст() Экспорт //@skip-check constructor-function-return-section - Возврат ЮТКонтекст.КонтекстПроверки(); + Возврат ЮТКонтекстСлужебный.КонтекстПроверки(); КонецФункции @@ -1346,7 +1346,7 @@ // // Возвращаемое значение: // Структура - контекст утверждений: -// * ОбъектПроверки - см. ЮТФабрика.ОписаниеПроверяемогоЗначения +// * ОбъектПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверяемогоЗначения // * ИмяМетода - Строка // * НормализованныйПутьКСвойству - Неопределено - Не указано свойство // - Массив из Строка, Число @@ -1354,7 +1354,7 @@ // - Массив из Произвольный Функция НовыйКонтекстУтверждения(ПроверяемоеЗначение) - Контекст = ЮТФабрика.ОписаниеПроверки(ПроверяемоеЗначение); + Контекст = ЮТФабрикаСлужебный.ОписаниеПроверки(ПроверяемоеЗначение); Контекст.Вставить("ИмяМетода", ""); Контекст.Вставить("НормализованныйПутьКСвойству", Неопределено); @@ -1385,7 +1385,7 @@ Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда #Если ВебКлиент Или ТонкийКлиент Тогда - Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение); + Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение); #Иначе Значение = Значение.Получить(); #КонецЕсли @@ -1501,11 +1501,11 @@ Результат = Ложь; ТипЗначения = ТипЗнч(Значение); - Если ТипЗначения = Тип("Структура") ИЛИ ТипЗначения = Тип("ФиксированнаяСтруктура") Тогда + Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда Результат = Значение.Свойство(Свойство); - ИначеЕсли ТипЗначения = Тип("Соответствие") ИЛИ ТипЗначения = Тип("ФиксированноеСоответствие") Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда Для Каждого КлючЗначение Из Значение Цикл @@ -1625,7 +1625,7 @@ ТипЗнч(Значение), ОжидаемыйТип, Суффикс); - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); КонецЕсли; КонецПроцедуры @@ -1656,7 +1656,7 @@ ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст); Результат = ЗначенияРавны(ПроверяемоеЗначение, ОжидаемоеЗначение); Исключение - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); КонецПопытки; ОбработатьРезультатСравнения(Результат, Сообщение, Реверс, ПроверяемоеЗначение, ОжидаемоеЗначение); @@ -1668,7 +1668,7 @@ ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст); Результат = ПроверяемоеЗначение <> Null И ПроверяемоеЗначение <> Неопределено; Исключение - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); КонецПопытки; ОбработатьРезультатСравнения(Результат, "существует", Реверс, ПроверяемоеЗначение, Неопределено); @@ -1681,12 +1681,12 @@ ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст); ФактическаяДлина = ДлинаЗначения(ПроверяемоеЗначение); Исключение - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст); КонецПопытки; Если ФактическаяДлина = Неопределено Тогда ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); КонецЕсли; Возврат ФактическаяДлина; @@ -1720,7 +1720,7 @@ ТекстОшибки = СтрШаблон("Не корректно задан интервал, левая граница (%1) не должна быть больше правой (%2)", НачалоИнтервала, ОкончаниеИнтервала); - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); КонецЕсли; Результат = Истина; @@ -1752,16 +1752,17 @@ Если НЕ ЗначениеЗаполнено(Значение) Тогда ТекстОшибки = СтрШаблон("Ожидали, что %1 заполнено, но это не так", Описание); - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); КонецЕсли; КонецПроцедуры Процедура ОбъектыРавны(Объект, ОбъектЭталон) Ключи = ЮТКоллекции.ВыгрузитьЗначения(ОбъектЭталон, "Ключ"); + ТипЗначения = ТипЗнч(Объект); - ЭтоСоответствие = ТипЗнч(Объект) = Тип("Соответствие") ИЛИ ТипЗнч(Объект) = Тип("ФиксированноеСоответствие"); - ЭтоСтруктура = ТипЗнч(Объект) = Тип("Структура") ИЛИ ТипЗнч(Объект) = Тип("ФиксированнаяСтруктура"); + ЭтоСоответствие = ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения); + ЭтоСтруктура = ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения); ЗначениеОтсутствующегоРеквизита = Новый УникальныйИдентификатор(); @@ -1798,12 +1799,12 @@ Для Каждого Сообщение Из Результат.Сообщения Цикл Если ТипЗнч(Сообщение) = Тип("Структура") Тогда - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение); - ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибок.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение); + ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибокСлужебный.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение); ВызватьИсключение ТекстИсключения; Иначе - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(Сообщение, Контекст); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(Сообщение, Контекст); КонецЕсли; КонецЦикла; @@ -1820,7 +1821,7 @@ ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); ПредставлениеЗначения = СтрШаблон("`%1`", ПроверяемоеЗначение); - Возврат ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, ОбъектПроверки, ПредставлениеЗначения); + Возврат ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, ОбъектПроверки, ПредставлениеЗначения); КонецФункции @@ -1834,14 +1835,14 @@ Процедура СгенерироватьОшибкуУтверждения(Сообщение, ПроверяемоеЗначение, ОбъектПроверки = "проверяемое значение") Контекст = Контекст(); - ЮТРегистрацияОшибок.СгенерироватьОшибкуУтверждения(Контекст, Сообщение, ПроверяемоеЗначение, ОбъектПроверки); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуУтверждения(Контекст, Сообщение, ПроверяемоеЗначение, ОбъектПроверки); КонецПроцедуры Процедура СгенерироватьОшибкуСравнения(Сообщение, ФактическоеЗначение, ОжидаемоеЗначение, ОбъектПроверки = "проверяемое значение") Контекст = Контекст(); - ЮТРегистрацияОшибок.СгенерироватьОшибкуСравнения(Контекст, Сообщение, ФактическоеЗначение, ОжидаемоеЗначение, ОбъектПроверки); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуСравнения(Контекст, Сообщение, ФактическоеЗначение, ОжидаемоеЗначение, ОбъектПроверки); КонецПроцедуры @@ -1854,8 +1855,8 @@ ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); - ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление); - Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); + ПараметрыСообщенийОбОшибке = ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление); + Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); ОбработатьРезультатПроверкиПредиката(Результат); @@ -1868,12 +1869,12 @@ Для Каждого Сообщение Из Результат.Сообщения Цикл Если ТипЗнч(Сообщение) = Тип("Структура") Тогда - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение); - ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибок.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение); + ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибокСлужебный.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение); ВызватьИсключение ТекстИсключения; Иначе - ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(Сообщение); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(Сообщение); КонецЕсли; КонецЦикла; @@ -1896,7 +1897,7 @@ Для Каждого Элемент Из ПроверяемоеЗначение Цикл - РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке); + РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке); Если РезультатПроверки.Успешно Тогда Успешно = Истина; Прервать; @@ -1909,7 +1910,7 @@ КонецЕсли; Если НЕ Успешно Тогда - Сообщение = "содержит элемент, значение которого " + ЮТПредикатыКлиентСервер.ПредставлениеПредикатов(Предикат, " и "); + Сообщение = "содержит элемент, значение которого " + ЮТПредикатыСлужебныйКлиентСервер.ПредставлениеПредикатов(Предикат, " и "); Если Реверс Тогда Сообщение = "не " + Сообщение; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" index ff3a3df66..f8125236e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ Контекст = НовыйКонтекст(ИмяТаблицы); Контекст.ПрефиксОшибки = ОписаниеПроверки; - ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекста(), Контекст); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Контекст); Возврат ЮТУтвержденияИБ; @@ -235,7 +235,7 @@ Функция Контекст() //@skip-check constructor-function-return-section - Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекста()); + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекста()); КонецФункции @@ -245,10 +245,10 @@ // ИмяТаблицы - Строка // // Возвращаемое значение: -// см. ЮТФабрика.ОписаниеПроверки +// см. ЮТФабрикаСлужебный.ОписаниеПроверки Функция НовыйКонтекст(ИмяТаблицы) - Контекст = ЮТФабрика.ОписаниеПроверки(ИмяТаблицы); + Контекст = ЮТФабрикаСлужебный.ОписаниеПроверки(ИмяТаблицы); Возврат Контекст; @@ -265,7 +265,7 @@ Процедура СгенерироватьОшибкуУтверждения(Контекст, Предикат, Сообщение) Если Предикат <> Неопределено Тогда - ПредставлениеПредиката = ЮТПредикатыКлиентСервер.ПредставлениеПредикатов(Предикат, ", ", "`%1`"); + ПредставлениеПредиката = ЮТПредикатыСлужебныйКлиентСервер.ПредставлениеПредикатов(Предикат, ", ", "`%1`"); КонецЕсли; Если ЗначениеЗаполнено(ПредставлениеПредиката) Тогда @@ -274,7 +274,7 @@ СообщениеОбОшибке = Сообщение; КонецЕсли; - ЮТРегистрацияОшибок.СгенерироватьОшибкуУтверждения(Контекст, СообщениеОбОшибке, Неопределено, "проверяемая таблица"); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуУтверждения(Контекст, СообщениеОбОшибке, Неопределено, "проверяемая таблица"); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 0bc41543d..b468e1828 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -16,8 +16,9 @@ // //©///////////////////////////////////////////////////////////////////////////©// -#Область СлужебныйПрограммныйИнтерфейс +#Область ПрограммныйИнтерфейс +#Область Перечисления // КонтекстыВызова // Возвращает перечисление возможных контекстов вызова // Возвращаемое значение: @@ -41,28 +42,6 @@ КонецФункции -// Доступные параметры (настройки) исполнения тестов -// -// Возвращаемое значение: -// ФиксированнаяСтруктура - Параметры исполнения теста: -// * ВТранзакции - Строка - Тест должен выполняться в транзакции -// * УдалениеТестовыхДанных - Строка - Тест должен удалить созданные тестовые данные -// * Перед - Строка - Перед тестом должен выполниться указанный обработчик события вместо основного -// * После - Строка - После теста должен выполниться указанный обработчик события вместо основного -Функция ПараметрыИсполненияТеста() Экспорт - - Параметры = Новый Структура(); - Параметры.Вставить("ВТранзакции", "ВТранзакции"); - Параметры.Вставить("УдалениеТестовыхДанных", "УдалениеТестовыхДанных"); - Параметры.Вставить("Перед", "Перед"); - Параметры.Вставить("После", "После"); - - Возврат Новый ФиксированнаяСтруктура(Параметры); - -КонецФункции - -#Область Перечисления - // КонтекстыИсполнения // Возвращает перечисление возможных контекстов исполнения тестов // @@ -108,58 +87,6 @@ КонецФункции -// Типы ошибок. -// -// Возвращаемое значение: -// ФиксированнаяСтруктура - Типы возможных ошибок: -// * ТестНеРеализован - Строка -// * ОшибкаСравнения - Строка -// * ОшибкаОбработкиСобытия - Строка -// * Утверждений - Строка -// * Исполнения - Строка -// * ЧтенияТестов - Строка -// * МалоПараметров - Строка -// * МногоПараметров - Строка -// * НекорректныйКонтекстИсполнения - Строка -// * Пропущен - Строка -Функция ТипыОшибок() Экспорт - - Типы = Новый Структура; - - Для Каждого ТипОшибки Из ПараметрыТиповОшибок() Цикл - Типы.Вставить(ТипОшибки.Ключ, ТипОшибки.Ключ); - КонецЦикла; - - //@skip-check constructor-function-return-section - Возврат Новый ФиксированнаяСтруктура(Типы); - -КонецФункции - -Функция ПараметрыТиповОшибок(Кешировать = Истина) Экспорт - - Если Кешировать Тогда - ЮТСлужебныйПовторногоИспользования.ПараметрыТиповОшибок(); - КонецЕсли; - - Статусы = СтатусыИсполненияТеста(); - Реквизиты = "Ключ, Представление, Статус"; - - ТипыОшибок = Новый Массив(); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаСравнения", "Ошибка сравнения", Статусы.Ошибка)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаОбработкиСобытия", "Ошибка обработки события", Статусы.Сломан)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Утверждений", "Ошибка утверждений", Статусы.Ошибка)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Исполнения", "Ошибка исполнения", Статусы.Сломан)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ЧтенияТестов", "Загрузки тестов", Статусы.Сломан)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МалоПараметров", "Мало фактических параметров", Статусы.Сломан)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МногоПараметров", "Много фактических параметров", Статусы.Сломан)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен)); - ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен)); - - Возврат ЮТКоллекции.ВСтруктуру(ТипыОшибок, "Ключ"); - -КонецФункции - Функция УровниИсполнения() Экспорт Уровни = Новый Структура; @@ -173,211 +100,6 @@ #КонецОбласти -#Область СтруктурыДанных - -// Описание тестового модуля. -// -// Параметры: -// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// НаборыТестов - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора -// -// Возвращаемое значение: -// Структура - Описание тестового модуля: -// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора -// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки -// * НастройкиВыполнения- Структура - Настройки исполнения теста -Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт - - Описание = Новый Структура; - Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля); - Описание.Вставить("НаборыТестов", НаборыТестов); - Описание.Вставить("Ошибки", Новый Массив); - Описание.Вставить("НастройкиВыполнения", Новый Структура()); - - Возврат Описание; - -КонецФункции - -// ОписаниеТестовогоНабора -// Возвращает описание регистрируемого тестового набора. -// Эта структура используется на этапе формирования описаний имеющихся тестов -// Параметры: -// Имя - Строка - Имя набора -// ТегиСтрокой - Строка - Теги набора -// -// Возвращаемое значение: -// Структура - Описание тестового набора: -// * Имя - Строка - Имя набора -// * Представление - Строка - Представление, краткое описание -// * Теги - Массив из Строка - Коллекция тегов набора -// * Тесты - Массив из см. ОписаниеТеста - Коллекция тестов набора, см. ОписаниеТеста -// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов -// * НастройкиВыполнения- Структура - Настройки исполнения теста -Функция ОписаниеТестовогоНабора(Имя, ТегиСтрокой = "") Экспорт - - Описание = Новый Структура; - Описание.Вставить("Имя", Строка(Имя)); - Описание.Вставить("Представление", Строка(Имя)); - Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); - Описание.Вставить("Тесты", Новый Массив); - Описание.Вставить("Ошибки", Новый Массив); - Описание.Вставить("НастройкиВыполнения", Новый Структура()); - - Возврат Описание; - -КонецФункции - -// ОписаниеТеста -// Возвращает описание регистрируемого теста. -// Эта структура используется на этапе формирования описаний имеющихся тестов -// Параметры: -// Имя - Строка - Имя тестового метода -// Представление - Строка - Представление, краткое описание теста -// КонтекстыВызова - Массив из Строка - Контексты исполнения теста -// ТегиСтрокой - Строка - Теги теста -// -// Возвращаемое значение: -// Структура - Описание теста: -// * Имя - Строка - Имя теста (тестового метода) -// * Представление - Строка - Представление теста -// * Теги - Массив из Строка - Теги теста -// * КонтекстВызова - Массив из Строка - Контексты исполнения теста -// * НастройкиВыполнения- Структура - Настройки исполнения теста -// * Параметры - Неопределено, Массив из Произвольный - Параметры теста -// * НомерВНаборе - Число - Порядковый номер теста в наборе -Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач ТегиСтрокой = "") Экспорт - - Если ТегиСтрокой = Неопределено Тогда - ТегиСтрокой = ""; - КонецЕсли; - - Описание = Новый Структура(); - Описание.Вставить("Имя", Строка(Имя)); - Описание.Вставить("Представление", Строка(Представление)); - Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); - Описание.Вставить("КонтекстВызова", КонтекстыВызова); - Описание.Вставить("НастройкиВыполнения", Новый Структура()); - Описание.Вставить("Параметры", Неопределено); - Описание.Вставить("НомерВНаборе", 0); - - Возврат Описание; - -КонецФункции - -// Описание исполняемого тестового модуля. -// Содержит всю необходимую информацию для прогона тестов, а также данные результата -// Параметры: -// ТестовыйМодуль - см. ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Структура - Описание тестового модуля: -// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки -// * НастройкиВыполнения- Структура - Настройки исполнения теста -Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт - - Описание = Новый Структура; - - Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); - Описание.Вставить("НаборыТестов", Новый Массив); - Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(ТестовыйМодуль.Ошибки)); - Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения)); - - Возврат Описание; - -КонецФункции - -// ОписаниеИсполняемогоНабораТестов -// Возвращает описание исполняемого тестового набора. -// Содержит данные необходимые для выполнения прогона тестов -// Параметры: -// НаборТестов - См. ОписаниеТестовогоНабора -// ТестовыйМодуль - См. ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Структура - Описание исполняемого набора тестов: -// * Имя - Строка - Имя набора -// * Представление - Строка - Представление набора -// * Теги - Массив из Строка - Тэги набора -// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста -// * Режим - Строка - Режим исполнения набора, см. КонтекстыВызова -// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля -// * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора, структуру тестов см. ОписаниеИсполняемогоТеста -// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск) -// * ДатаСтарта - Число - Дата запуска набора -// * Длительность - Число - Продолжительность выполнения набора -// * НастройкиВыполнения - Структура - Настройки исполнения теста -// * ТестовыйМодуль - См. ОписаниеТестовогоМодуля -Функция ОписаниеИсполняемогоНабораТестов(НаборТестов, ТестовыйМодуль) Экспорт - - Описание = Новый Структура(); - - Описание.Вставить("Имя", НаборТестов.Имя); - Описание.Вставить("Представление", НаборТестов.Представление); - Описание.Вставить("Теги", НаборТестов.Теги); - Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(НаборТестов.Ошибки)); - Описание.Вставить("Режим", ""); - Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль); - Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); - Описание.Вставить("Тесты", Новый Массив); - Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0); - Описание.Вставить("ДатаСтарта", 0); - Описание.Вставить("Длительность", 0); - Описание.Вставить("НастройкиВыполнения", НаборТестов.НастройкиВыполнения); - - Возврат Описание; - -КонецФункции - -// ОписаниеИсполняемогоТеста -// Возвращает описание исполняемого теста -// Содержит данные необходимые для выполнения прогона тестов -// -// Параметры: -// Тест - См. ОписаниеТеста -// Режим - См. КонтекстыВызова -// ТестовыйМодуль - См. ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Структура - Описание исполняемого теста: -// * Имя - Строка - Имя/представление теста -// * Метод - Строка - Имя тестового метода -// * ПолноеИмяМетода - Строка - Полное имя тестового метода, ИмяМодуля.ИмяМетода -// * Теги - Массив из Строка - Теги теста -// * Режим - Строка - Режим исполнения теста, см. КонтекстыВызова -// * ДатаСтарта - Число - Дата запуска теста -// * Длительность - Число - Продолжительность выполнения теста -// * Статус - Строка - Статус выполнения теста, см. СтатусыИсполненияТеста -// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста, см. ЮТФабрика.ОписаниеВозникшейОшибки -// * НастройкиВыполнения- Структура - Настройки исполнения теста -// * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста -// * НомерВНаборе - Число - Порядковый номер теста в наборе -Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт - - ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, Тест.Имя); - Представление = ПредставлениеТеста(Тест); - - ОписаниеТеста = Новый Структура; - ОписаниеТеста.Вставить("Имя", Представление); - ОписаниеТеста.Вставить("Метод", Тест.Имя); - ОписаниеТеста.Вставить("ПолноеИмяМетода", ПолноеИмяМетода); - ОписаниеТеста.Вставить("Теги", Тест.Теги); - ОписаниеТеста.Вставить("Режим", Режим); - ОписаниеТеста.Вставить("ДатаСтарта", 0); - ОписаниеТеста.Вставить("Длительность", 0); - ОписаниеТеста.Вставить("Статус", СтатусыИсполненияТеста().Ожидание); - ОписаниеТеста.Вставить("Ошибки", Новый Массив); - ОписаниеТеста.Вставить("НастройкиВыполнения", Тест.НастройкиВыполнения); - ОписаниеТеста.Вставить("Параметры", Тест.Параметры); - ОписаниеТеста.Вставить("НомерВНаборе", Тест.НомерВНаборе); - - //@skip-check constructor-function-return-section - Возврат ОписаниеТеста; - -КонецФункции - // ПараметрыЗапуска // Набор параметров подсистемы тестирования. // Параметры на английском, чтобы не держать несколько реализаций чтения и обработки параметров @@ -418,276 +140,6 @@ КонецФункции -// ОписаниеКонтекстаОшибки -// Возвращает описание деталей/расшифровки ошибки -// Возвращаемое значение: -// Структура - Детали ошибки: -// * ОшибкаУтверждения - Булево - Признак, это ошибка проверки утверждения -// * ПроверяемоеЗначение - Произвольный - Фактическое значение -// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение -// * Сообщение - Строка -Функция ОписаниеКонтекстаОшибки() Экспорт - - Описание = Новый Структура("ПроверяемоеЗначение, ОжидаемоеЗначение"); - Описание.Вставить("ОшибкаУтверждения", Ложь); - Описание.Вставить("Сообщение", ""); - - //@skip-check constructor-function-return-section - Возврат Описание; - -КонецФункции - -// ОписаниеМодуля -// Возвращает структуру описания модуля -// Возвращаемое значение: -// Структура - Описание модуля: -// * Имя - Строка - Имя модуля -// * ПолноеИмя - Строка - Полное имя модуля -// * Расширение - Строка - Имя расширения, владельца модуля -// * КлиентУправляемоеПриложение - Булево - Доступность контекста -// * КлиентОбычноеПриложение - Булево - Доступность контекста -// * Сервер - Булево - Доступность контекста -// * ВызовСервера - Булево - Доступность контекста -// * Глобальный - Булево - Доступность контекста -Функция ОписаниеМодуля() Экспорт - - Описание = Новый Структура; - Описание.Вставить("Имя", ""); - Описание.Вставить("ПолноеИмя", ""); - Описание.Вставить("Расширение", ""); - Описание.Вставить("КлиентУправляемоеПриложение", Ложь); - Описание.Вставить("КлиентОбычноеПриложение", Ложь); - Описание.Вставить("Сервер", Ложь); - Описание.Вставить("ВызовСервера", Ложь); - Описание.Вставить("Глобальный", Ложь); - - Возврат Описание; - -КонецФункции - -// ОписаниеВозникшейОшибки -// Возвращает базовую структуру ошибки -// -// Параметры: -// Сообщение - Строка -// -// Возвращаемое значение: -// Структура - Описание возникшей ошибки: -// * Сообщение - Строка - Описание возникшей ошибки -// * Стек - Строка - Стек возникшей ошибки -// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрика.ТипыОшибок -Функция ОписаниеВозникшейОшибки(Сообщение) Экспорт - - Возврат Новый Структура("Сообщение, Стек, ТипОшибки", Сообщение, "", ""); - -КонецФункции - -// Возвращает базовую структуру ошибки проверки факта и ожидания -// -// Параметры: -// Сообщение - Строка -// -// Возвращаемое значение: -// Структура - Описание возникшей ошибки: -// * Сообщение - Строка - Описание возникшей ошибки -// * Стек - Строка - Стек возникшей ошибки -// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрика.ТипыОшибок -// * ПроверяемоеЗначение - Произвольный - Проверяемое, фактическое значение -// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение -Функция ОписаниеОшибкиСравнения(Сообщение) Экспорт - - Описание = ОписаниеВозникшейОшибки(Сообщение); - Описание.ТипОшибки = ТипыОшибок().Утверждений; - Описание.Вставить("ПроверяемоеЗначение"); - Описание.Вставить("ОжидаемоеЗначение"); - - //@skip-check constructor-function-return-section - Возврат Описание; - -КонецФункции - -// Возвращает базовую структуру ошибки пропуска теста -// -// Параметры: -// Сообщение - Строка -// -// Возвращаемое значение: -// Структура - Описание возникшей ошибки: -// * Сообщение - Строка - Описание возникшей ошибки -// * Стек - Строка - Стек возникшей ошибки -// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения -// См. ЮТФабрика.ТипыОшибок -Функция ОписаниеОшибкиПропуска(Сообщение) Экспорт - - Описание = ОписаниеВозникшейОшибки(Сообщение); - Описание.ТипОшибки = ТипыОшибок().Пропущен; - - Возврат Описание; - -КонецФункции - -// Описание события исполнения тестов. -// -// Параметры: -// Модуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста -// -// Возвращаемое значение: -// Структура - Описание события исполнения тестов: -// * Модуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// * Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста -Функция ОписаниеСобытияИсполненияТестов(Модуль, Набор = Неопределено, Тест = Неопределено) Экспорт - - Описание = Новый Структура(); - Описание.Вставить("Модуль", Модуль); - Описание.Вставить("Набор", Набор); - Описание.Вставить("Тест", Тест); - - //@skip-check constructor-function-return-section - Возврат Описание; - -КонецФункции - -// Описание категория набора тестов. -// -// Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Структура - Описание категория набора тестов: -// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// * Клиентские - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Серверные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Пропущенные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) Экспорт - - КатегорииНаборов = Новый Структура(); - КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); - КатегорииНаборов.Вставить("Клиентские", Новый Массив()); - КатегорииНаборов.Вставить("Серверные", Новый Массив()); - КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); - - //@skip-check constructor-function-return-section - Возврат КатегорииНаборов; - -КонецФункции - -// Формирует описание проверяемого значения. -// Используется в утверждения для формирования дружелюбного сообщения об ошибке. -// -// Параметры: -// ПроверяемоеЗначение - Произвольный - Проверяемое значение -// -// Возвращаемое значение: -// Структура - Описание проверяемого значения: -// * Значение - Произвольный -// * Представление - Строка - Представление объекта -// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`) -// * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса -Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт - - Описание = Новый Структура(); - Описание.Вставить("Значение", ПроверяемоеЗначение); - Описание.Вставить("Представление", Неопределено); - Описание.Вставить("ИмяСвойства", Неопределено); - - Возврат Описание; - -КонецФункции - -// Описание проверки. -// -// Параметры: -// ПроверяемоеЗначение - Произвольный -// -// Возвращаемое значение: -// Структура - Описание проверки: -// * ОбъектПроверки - см. ОписаниеПроверяемогоЗначения -// * ПрефиксОшибки - Строка, Неопределено - -// * ОписаниеПроверки - Строка, Неопределено - -Функция ОписаниеПроверки(ПроверяемоеЗначение) Экспорт - - Описание = Новый Структура(); - Описание.Вставить("ОбъектПроверки", ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение)); - Описание.Вставить("ПрефиксОшибки", Неопределено); - Описание.Вставить("ОписаниеПроверки", Неопределено); - - Возврат Описание; - -КонецФункции - -// Описание реквизита объекта метаданных -// -// Параметры: -// Реквизит - ОбъектМетаданных -// ЭтоКлюч - Булево - Это ключевой реквизит (ссылка, измерение) -// -// Возвращаемое значение: -// Структура - Описание реквизита: -// * Имя - Строка -// * Тип - ОписаниеТипов -// * Обязательный - Булево -// * ЭтоКлюч - Булево -Функция ОписаниеРеквизита(Знач Реквизит, Знач ЭтоКлюч) Экспорт - - Описание = Новый Структура(); - Описание.Вставить("Имя", Реквизит.Имя); - Описание.Вставить("Тип", Реквизит.Тип); - Описание.Вставить("Обязательный", Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку); - Описание.Вставить("ЭтоКлюч", ЭтоКлюч); - - Возврат Описание; - -КонецФункции - -#КонецОбласти - -#Область КонструкторыКонтекстов - -// Данные контекста исполнения. -// -// Возвращаемое значение: -// Структура - Данные контекста исполнения: -// * Уровень - Строка - Возможные значения см. УровниИсполнения -// * Модуль - Неопределено - Нет исполняемого модуля -// - см. ОписаниеТестовогоМодуля -// * Набор - Неопределено - Нет исполняемого тестового набора -// - см. ОписаниеИсполняемогоНабораТестов -// * Тест - Неопределено - Нет исполняемого теста -// - см. ОписаниеИсполняемогоТеста -Функция НовыйКонтекстИсполнения() Экспорт - - Контекст = Новый Структура(); - Контекст.Вставить("Уровень", ""); - Контекст.Вставить("Модуль", Неопределено); - Контекст.Вставить("Набор", Неопределено); - Контекст.Вставить("Тест", Неопределено); - - Возврат Контекст; - -КонецФункции - -// Описание результата проверки. -// -// Параметры: -// Успешно - Булево - Успешно -// -// Возвращаемое значение: -// Структура - Описание результата проверки: -// * Сообщения - Массив из Произвольный -// * Успешно - Булево -Функция ОписаниеРезультатаПроверки(Успешно = Истина) Экспорт - - Описание = Новый Структура(); - Описание.Вставить("Сообщения", Новый Массив); - Описание.Вставить("Успешно", Истина); - - Возврат Описание; - -КонецФункции - // Выражение предиката. // // Параметры: @@ -713,111 +165,23 @@ КонецФункции -#КонецОбласти - -// КонтекстыМодуля -// Возвращает коллекцию доступных контекстов выполнения модуля -// Параметры: -// Модуль - См. ОписаниеМодуля -// -// Возвращаемое значение: -// Массив из Строка - Контексты модуля, возможные значения см. КонтекстыВызова -Функция КонтекстыМодуля(Модуль) Экспорт - - Контексты = КонтекстыВызова(); - - КонтекстыМодуля = Новый Массив(); - - Если Модуль.Сервер Тогда - КонтекстыМодуля.Добавить(Контексты.Сервер); - КонецЕсли; - - Если Модуль.КлиентУправляемоеПриложение Тогда - КонтекстыМодуля.Добавить(Контексты.КлиентУправляемоеПриложение); - КонецЕсли; - - Если Модуль.КлиентОбычноеПриложение Тогда - КонтекстыМодуля.Добавить(Контексты.КлиентОбычноеПриложение); - КонецЕсли; - - Возврат КонтекстыМодуля; - -КонецФункции - -// КонтекстыПриложения -// Возвращает коллекцию доступных контекстов приложения -// Возвращаемое значение: -// Массив из Строка - Контексты приложения, возможные значения см. КонтекстыВызова -Функция КонтекстыПриложения() Экспорт - -#Если НЕ Клиент Тогда - ВызватьИсключение "Метод получения контекстов приложения должен вызываться с клиента"; -#КонецЕсли - - Контексты = КонтекстыВызова(); - КонтекстыПриложения = Новый Массив(); - - КонтекстыПриложения.Добавить(Контексты.Сервер); - КонтекстыПриложения.Добавить(Контексты.ВызовСервера); - -#Если ТолстыйКлиентОбычноеПриложение Тогда - КонтекстыПриложения.Добавить(Контексты.КлиентОбычноеПриложение); -#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Или ТонкийКлиент Тогда - КонтекстыПриложения.Добавить(Контексты.КлиентУправляемоеПриложение); -#КонецЕсли - - Возврат КонтекстыПриложения; - -КонецФункции - -// КонтекстИсполнения -// Возвращает контекст исполнения по контексту вызова -// Параметры: -// КонтекстВызова - Строка - Контекст вызова, см. ЮТФабрика.КонтекстыВызова +// Доступные параметры (настройки) исполнения тестов // // Возвращаемое значение: -// Неопределено, Строка - Контекст исполнения -Функция КонтекстИсполнения(КонтекстВызова) Экспорт - - КонтекстыВызова = КонтекстыВызова(); - - Если КонтекстВызова = КонтекстыВызова.Сервер Тогда - - Возврат КонтекстыИсполнения().Сервер; - - ИначеЕсли КонтекстВызова = КонтекстыВызова.КлиентУправляемоеПриложение - ИЛИ КонтекстВызова = КонтекстыВызова.КлиентОбычноеПриложение - ИЛИ КонтекстВызова = КонтекстыВызова.ВызовСервера Тогда - - Возврат КонтекстыИсполнения().Клиент; - - Иначе - - Возврат Неопределено; - - КонецЕсли; +// ФиксированнаяСтруктура - Параметры исполнения теста: +// * ВТранзакции - Строка - Тест должен выполняться в транзакции +// * УдалениеТестовыхДанных - Строка - Тест должен удалить созданные тестовые данные +// * Перед - Строка - Перед тестом должен выполниться указанный обработчик события вместо основного +// * После - Строка - После теста должен выполниться указанный обработчик события вместо основного +Функция ПараметрыИсполненияТеста() Экспорт -КонецФункции - -// Формирует представление теста -// -// Параметры: -// Тест - см. ОписаниеТеста -// -// Возвращаемое значение: -// Строка - Представление теста -Функция ПредставлениеТеста(Тест) Экспорт - - Если ЗначениеЗаполнено(Тест.Представление) Тогда - Представление = Тест.Представление; - ИначеЕсли ЗначениеЗаполнено(Тест.Параметры) Тогда - ПредставлениеПараметров = СтрСоединить(Тест.Параметры, ", "); - Представление = СтрШаблон("%1(%2)", Тест.Имя, ПредставлениеПараметров); - Иначе - Представление = Тест.Имя; - КонецЕсли; + Параметры = Новый Структура(); + Параметры.Вставить("ВТранзакции", "ВТранзакции"); + Параметры.Вставить("УдалениеТестовыхДанных", "УдалениеТестовыхДанных"); + Параметры.Вставить("Перед", "Перед"); + Параметры.Вставить("После", "После"); - Возврат Представление; + Возврат Новый ФиксированнаяСтруктура(Параметры); КонецФункции @@ -835,64 +199,6 @@ КонецФункции -Функция ПараметрыЗаполненияТаблицыЗначений(Знач ПараметрыСозданияОбъектов = Неопределено) Экспорт - - Если ПараметрыСозданияОбъектов = Неопределено Тогда - ПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов(); - Иначе - ВходныеПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов; - ПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов(); - ЗаполнитьЗначенияСвойств(ПараметрыСозданияОбъектов, ВходныеПараметрыСозданияОбъектов); - КонецЕсли; - - Возврат Новый ФиксированнаяСтруктура("СозданиеОбъектовМетаданных", ПараметрыСозданияОбъектов); - -КонецФункции - -// Параметры генератора отчета. -// Описывает предоставляемые модулем форматы отчетов -// -// Возвращаемое значение: -// Структура - Параметры генератора отчета: -// * Форматы - Структура - Форматы отчетов, предоставляемые модулем -Функция ПараметрыГенератораОтчета() Экспорт - - Параметры = Новый Структура(); - Параметры.Вставить("Форматы", Новый Структура); - - Возврат Параметры; - -КонецФункции - -// Описание формата отчета. -// -// Параметры: -// Идентификатор - Строка - Уникальный идентификатор формата отчета -// Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования -// -// Возвращаемое значение: -// Структура - Описание формата отчета: -// * Идентификатор - Строка - Уникальный идентификатор формата отчета -// * Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования -// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен призак `СамостоятельнаяЗаписьОтчета` -// * ФильтрВыбораФайла - Строка - Фильтр выбора, используется в форме настроек тестирования -// * ИмяФайлаПоУмолчанию - Строка - Для отчетов, записываемых в файл, имя файла если в параметрах указан каталог -// * СамостоятельнаяЗаписьОтчета - Булево - Способ записи отчета в файлы. -// Истина - Модуль формирования отчета самостоятельно записывает отчет -// Ложь - Модуль формирования отчета генерирует данные, которые записываются движком -Функция ОписаниеФорматаОтчета(Идентификатор, Представление) Экспорт - - Описание = Новый Структура(); - Описание.Вставить("Идентификатор", Идентификатор); - Описание.Вставить("Представление", Представление); - Описание.Вставить("ЗаписьВКаталог", Ложь); - Описание.Вставить("ФильтрВыбораФайла", ""); - Описание.Вставить("ИмяФайлаПоУмолчанию", ""); - Описание.Вставить("СамостоятельнаяЗаписьОтчета", Ложь); - - Возврат Описание; - -КонецФункции #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo" index d54ed7e29..decc718b5 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo" @@ -1,5 +1,5 @@ - + ЮТФабрика ru diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..cbab7fa34 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,698 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +#Область Перечисления + +// Типы ошибок. +// +// Возвращаемое значение: +// ФиксированнаяСтруктура - Типы возможных ошибок: +// * ТестНеРеализован - Строка +// * ОшибкаСравнения - Строка +// * ОшибкаОбработкиСобытия - Строка +// * Утверждений - Строка +// * Исполнения - Строка +// * ЧтенияТестов - Строка +// * МалоПараметров - Строка +// * МногоПараметров - Строка +// * НекорректныйКонтекстИсполнения - Строка +// * Пропущен - Строка +Функция ТипыОшибок() Экспорт + + Типы = Новый Структура; + + Для Каждого ТипОшибки Из ПараметрыТиповОшибок() Цикл + Типы.Вставить(ТипОшибки.Ключ, ТипОшибки.Ключ); + КонецЦикла; + + //@skip-check constructor-function-return-section + Возврат Новый ФиксированнаяСтруктура(Типы); + +КонецФункции + +Функция ПараметрыТиповОшибок(Кешировать = Истина) Экспорт + + Если Кешировать Тогда + ЮТСлужебныйПовторногоИспользования.ПараметрыТиповОшибок(); + КонецЕсли; + + Статусы = ЮТФабрика.СтатусыИсполненияТеста(); + Реквизиты = "Ключ, Представление, Статус"; + + ТипыОшибок = Новый Массив(); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаСравнения", "Ошибка сравнения", Статусы.Ошибка)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаОбработкиСобытия", "Ошибка обработки события", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Утверждений", "Ошибка утверждений", Статусы.Ошибка)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Исполнения", "Ошибка исполнения", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ЧтенияТестов", "Загрузки тестов", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МалоПараметров", "Мало фактических параметров", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МногоПараметров", "Много фактических параметров", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен)); + + Возврат ЮТКоллекции.ВСтруктуру(ТипыОшибок, "Ключ"); + +КонецФункции + +#КонецОбласти + +#Область СтруктурыДанных + +// Описание тестового модуля. +// +// Параметры: +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора +// +// Возвращаемое значение: +// Структура - Описание тестового модуля: +// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки +// * НастройкиВыполнения- Структура - Настройки исполнения теста +Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт + + Описание = Новый Структура; + Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля); + Описание.Вставить("НаборыТестов", НаборыТестов); + Описание.Вставить("Ошибки", Новый Массив); + Описание.Вставить("НастройкиВыполнения", Новый Структура()); + + Возврат Описание; + +КонецФункции + +// ОписаниеТестовогоНабора +// Возвращает описание регистрируемого тестового набора. +// Эта структура используется на этапе формирования описаний имеющихся тестов +// Параметры: +// Имя - Строка - Имя набора +// ТегиСтрокой - Строка - Теги набора +// +// Возвращаемое значение: +// Структура - Описание тестового набора: +// * Имя - Строка - Имя набора +// * Представление - Строка - Представление, краткое описание +// * Теги - Массив из Строка - Коллекция тегов набора +// * Тесты - Массив из см. ОписаниеТеста - Коллекция тестов набора, см. ОписаниеТеста +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов +// * НастройкиВыполнения- Структура - Настройки исполнения теста +Функция ОписаниеТестовогоНабора(Имя, ТегиСтрокой = "") Экспорт + + Описание = Новый Структура; + Описание.Вставить("Имя", Строка(Имя)); + Описание.Вставить("Представление", Строка(Имя)); + Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); + Описание.Вставить("Тесты", Новый Массив); + Описание.Вставить("Ошибки", Новый Массив); + Описание.Вставить("НастройкиВыполнения", Новый Структура()); + + Возврат Описание; + +КонецФункции + +// ОписаниеТеста +// Возвращает описание регистрируемого теста. +// Эта структура используется на этапе формирования описаний имеющихся тестов +// Параметры: +// Имя - Строка - Имя тестового метода +// Представление - Строка - Представление, краткое описание теста +// КонтекстыВызова - Массив из Строка - Контексты исполнения теста, см. ЮТФабрика.КонтекстыВызова +// ТегиСтрокой - Строка - Теги теста +// +// Возвращаемое значение: +// Структура - Описание теста: +// * Имя - Строка - Имя теста (тестового метода) +// * Представление - Строка - Представление теста +// * Теги - Массив из Строка - Теги теста +// * КонтекстВызова - Массив из Строка - Контексты исполнения теста +// * НастройкиВыполнения- Структура - Настройки исполнения теста +// * Параметры - Неопределено, Массив из Произвольный - Параметры теста +// * НомерВНаборе - Число - Порядковый номер теста в наборе +Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач ТегиСтрокой = "") Экспорт + + Если ТегиСтрокой = Неопределено Тогда + ТегиСтрокой = ""; + КонецЕсли; + + Описание = Новый Структура(); + Описание.Вставить("Имя", Строка(Имя)); + Описание.Вставить("Представление", Строка(Представление)); + Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); + Описание.Вставить("КонтекстВызова", КонтекстыВызова); + Описание.Вставить("НастройкиВыполнения", Новый Структура()); + Описание.Вставить("Параметры", Неопределено); + Описание.Вставить("НомерВНаборе", 0); + + Возврат Описание; + +КонецФункции + +// Описание исполняемого тестового модуля. +// Содержит всю необходимую информацию для прогона тестов, а также данные результата +// Параметры: +// ТестовыйМодуль - см. ОписаниеТестовогоМодуля +// +// Возвращаемое значение: +// Структура - Описание тестового модуля: +// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки +// * НастройкиВыполнения- Структура - Настройки исполнения теста +Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт + + Описание = Новый Структура; + + Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); + Описание.Вставить("НаборыТестов", Новый Массив); + Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(ТестовыйМодуль.Ошибки)); + Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения)); + + Возврат Описание; + +КонецФункции + +// ОписаниеИсполняемогоНабораТестов +// Возвращает описание исполняемого тестового набора. +// Содержит данные необходимые для выполнения прогона тестов +// Параметры: +// НаборТестов - См. ОписаниеТестовогоНабора +// ТестовыйМодуль - См. ОписаниеТестовогоМодуля +// +// Возвращаемое значение: +// Структура - Описание исполняемого набора тестов: +// * Имя - Строка - Имя набора +// * Представление - Строка - Представление набора +// * Теги - Массив из Строка - Тэги набора +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста +// * Режим - Строка - Режим исполнения набора, см. ЮТФабрика.КонтекстыВызова +// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора, структуру тестов см. ОписаниеИсполняемогоТеста +// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск) +// * ДатаСтарта - Число - Дата запуска набора +// * Длительность - Число - Продолжительность выполнения набора +// * НастройкиВыполнения - Структура - Настройки исполнения теста +// * ТестовыйМодуль - См. ОписаниеТестовогоМодуля +Функция ОписаниеИсполняемогоНабораТестов(НаборТестов, ТестовыйМодуль) Экспорт + + Описание = Новый Структура(); + + Описание.Вставить("Имя", НаборТестов.Имя); + Описание.Вставить("Представление", НаборТестов.Представление); + Описание.Вставить("Теги", НаборТестов.Теги); + Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(НаборТестов.Ошибки)); + Описание.Вставить("Режим", ""); + Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль); + Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); + Описание.Вставить("Тесты", Новый Массив); + Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0); + Описание.Вставить("ДатаСтарта", 0); + Описание.Вставить("Длительность", 0); + Описание.Вставить("НастройкиВыполнения", НаборТестов.НастройкиВыполнения); + + Возврат Описание; + +КонецФункции + +// ОписаниеИсполняемогоТеста +// Возвращает описание исполняемого теста +// Содержит данные необходимые для выполнения прогона тестов +// +// Параметры: +// Тест - См. ОписаниеТеста +// Режим - См. ЮТФабрика.КонтекстыВызова +// ТестовыйМодуль - См. ОписаниеТестовогоМодуля +// +// Возвращаемое значение: +// Структура - Описание исполняемого теста: +// * Имя - Строка - Имя/представление теста +// * Метод - Строка - Имя тестового метода +// * ПолноеИмяМетода - Строка - Полное имя тестового метода, ИмяМодуля.ИмяМетода +// * Теги - Массив из Строка - Теги теста +// * Режим - Строка - Режим исполнения теста, см. ЮТФабрика.КонтекстыВызова +// * ДатаСтарта - Число - Дата запуска теста +// * Длительность - Число - Продолжительность выполнения теста +// * Статус - Строка - Статус выполнения теста, см. ЮТФабрика.СтатусыИсполненияТеста +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста, см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки +// * НастройкиВыполнения- Структура - Настройки исполнения теста +// * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста +// * НомерВНаборе - Число - Порядковый номер теста в наборе +Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт + + ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, Тест.Имя); + Представление = ПредставлениеТеста(Тест); + + ОписаниеТеста = Новый Структура; + ОписаниеТеста.Вставить("Имя", Представление); + ОписаниеТеста.Вставить("Метод", Тест.Имя); + ОписаниеТеста.Вставить("ПолноеИмяМетода", ПолноеИмяМетода); + ОписаниеТеста.Вставить("Теги", Тест.Теги); + ОписаниеТеста.Вставить("Режим", Режим); + ОписаниеТеста.Вставить("ДатаСтарта", 0); + ОписаниеТеста.Вставить("Длительность", 0); + ОписаниеТеста.Вставить("Статус", ЮТФабрика.СтатусыИсполненияТеста().Ожидание); + ОписаниеТеста.Вставить("Ошибки", Новый Массив); + ОписаниеТеста.Вставить("НастройкиВыполнения", Тест.НастройкиВыполнения); + ОписаниеТеста.Вставить("Параметры", Тест.Параметры); + ОписаниеТеста.Вставить("НомерВНаборе", Тест.НомерВНаборе); + + //@skip-check constructor-function-return-section + Возврат ОписаниеТеста; + +КонецФункции + +// ОписаниеКонтекстаОшибки +// Возвращает описание деталей/расшифровки ошибки +// Возвращаемое значение: +// Структура - Детали ошибки: +// * ОшибкаУтверждения - Булево - Признак, это ошибка проверки утверждения +// * ПроверяемоеЗначение - Произвольный - Фактическое значение +// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение +// * Сообщение - Строка +Функция ОписаниеКонтекстаОшибки() Экспорт + + Описание = Новый Структура("ПроверяемоеЗначение, ОжидаемоеЗначение"); + Описание.Вставить("ОшибкаУтверждения", Ложь); + Описание.Вставить("Сообщение", ""); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +// ОписаниеМодуля +// Возвращает структуру описания модуля +// Возвращаемое значение: +// Структура - Описание модуля: +// * Имя - Строка - Имя модуля +// * ПолноеИмя - Строка - Полное имя модуля +// * Расширение - Строка - Имя расширения, владельца модуля +// * КлиентУправляемоеПриложение - Булево - Доступность контекста +// * КлиентОбычноеПриложение - Булево - Доступность контекста +// * Сервер - Булево - Доступность контекста +// * ВызовСервера - Булево - Доступность контекста +// * Глобальный - Булево - Доступность контекста +Функция ОписаниеМодуля() Экспорт + + Описание = Новый Структура; + Описание.Вставить("Имя", ""); + Описание.Вставить("ПолноеИмя", ""); + Описание.Вставить("Расширение", ""); + Описание.Вставить("КлиентУправляемоеПриложение", Ложь); + Описание.Вставить("КлиентОбычноеПриложение", Ложь); + Описание.Вставить("Сервер", Ложь); + Описание.Вставить("ВызовСервера", Ложь); + Описание.Вставить("Глобальный", Ложь); + + Возврат Описание; + +КонецФункции + +// ОписаниеВозникшейОшибки +// Возвращает базовую структуру ошибки +// +// Параметры: +// Сообщение - Строка +// +// Возвращаемое значение: +// Структура - Описание возникшей ошибки: +// * Сообщение - Строка - Описание возникшей ошибки +// * Стек - Строка - Стек возникшей ошибки +// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрикаСлужебный.ТипыОшибок +Функция ОписаниеВозникшейОшибки(Сообщение) Экспорт + + Возврат Новый Структура("Сообщение, Стек, ТипОшибки", Сообщение, "", ""); + +КонецФункции + +// Возвращает базовую структуру ошибки проверки факта и ожидания +// +// Параметры: +// Сообщение - Строка +// +// Возвращаемое значение: +// Структура - Описание возникшей ошибки: +// * Сообщение - Строка - Описание возникшей ошибки +// * Стек - Строка - Стек возникшей ошибки +// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрикаСлужебный.ТипыОшибок +// * ПроверяемоеЗначение - Произвольный - Проверяемое, фактическое значение +// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение +Функция ОписаниеОшибкиСравнения(Сообщение) Экспорт + + Описание = ОписаниеВозникшейОшибки(Сообщение); + Описание.ТипОшибки = ТипыОшибок().Утверждений; + Описание.Вставить("ПроверяемоеЗначение"); + Описание.Вставить("ОжидаемоеЗначение"); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +// Возвращает базовую структуру ошибки пропуска теста +// +// Параметры: +// Сообщение - Строка +// +// Возвращаемое значение: +// Структура - Описание возникшей ошибки: +// * Сообщение - Строка - Описание возникшей ошибки +// * Стек - Строка - Стек возникшей ошибки +// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения +// См. ЮТФабрикаСлужебный.ТипыОшибок +Функция ОписаниеОшибкиПропуска(Сообщение) Экспорт + + Описание = ОписаниеВозникшейОшибки(Сообщение); + Описание.ТипОшибки = ТипыОшибок().Пропущен; + + Возврат Описание; + +КонецФункции + +// Описание события исполнения тестов. +// +// Параметры: +// Модуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// +// Возвращаемое значение: +// Структура - Описание события исполнения тестов: +// * Модуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// * Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// * Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +Функция ОписаниеСобытияИсполненияТестов(Модуль, Набор = Неопределено, Тест = Неопределено) Экспорт + + Описание = Новый Структура(); + Описание.Вставить("Модуль", Модуль); + Описание.Вставить("Набор", Набор); + Описание.Вставить("Тест", Тест); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +// Описание категория набора тестов. +// +// Параметры: +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// +// Возвращаемое значение: +// Структура - Описание категория набора тестов: +// * ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// * Клиентские - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// * Серверные - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// * Пропущенные - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) Экспорт + + КатегорииНаборов = Новый Структура(); + КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); + КатегорииНаборов.Вставить("Клиентские", Новый Массив()); + КатегорииНаборов.Вставить("Серверные", Новый Массив()); + КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); + + //@skip-check constructor-function-return-section + Возврат КатегорииНаборов; + +КонецФункции + +// Формирует описание проверяемого значения. +// Используется в утверждения для формирования дружелюбного сообщения об ошибке. +// +// Параметры: +// ПроверяемоеЗначение - Произвольный - Проверяемое значение +// +// Возвращаемое значение: +// Структура - Описание проверяемого значения: +// * Значение - Произвольный +// * Представление - Строка - Представление объекта +// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`) +// * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса +Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт + + Описание = Новый Структура(); + Описание.Вставить("Значение", ПроверяемоеЗначение); + Описание.Вставить("Представление", Неопределено); + Описание.Вставить("ИмяСвойства", Неопределено); + + Возврат Описание; + +КонецФункции + +// Описание проверки. +// +// Параметры: +// ПроверяемоеЗначение - Произвольный +// +// Возвращаемое значение: +// Структура - Описание проверки: +// * ОбъектПроверки - см. ОписаниеПроверяемогоЗначения +// * ПрефиксОшибки - Строка, Неопределено - +// * ОписаниеПроверки - Строка, Неопределено - +Функция ОписаниеПроверки(ПроверяемоеЗначение) Экспорт + + Описание = Новый Структура(); + Описание.Вставить("ОбъектПроверки", ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение)); + Описание.Вставить("ПрефиксОшибки", Неопределено); + Описание.Вставить("ОписаниеПроверки", Неопределено); + + Возврат Описание; + +КонецФункции + +#КонецОбласти + +#Область КонструкторыКонтекстов + +// Данные контекста исполнения. +// +// Возвращаемое значение: +// Структура - Данные контекста исполнения: +// * Уровень - Строка - Возможные значения см. ЮТФабрика.УровниИсполнения +// * Модуль - Неопределено - Нет исполняемого модуля +// - см. ОписаниеТестовогоМодуля +// * Набор - Неопределено - Нет исполняемого тестового набора +// - см. ОписаниеИсполняемогоНабораТестов +// * Тест - Неопределено - Нет исполняемого теста +// - см. ОписаниеИсполняемогоТеста +Функция НовыйКонтекстИсполнения() Экспорт + + Контекст = Новый Структура(); + Контекст.Вставить("Уровень", ""); + Контекст.Вставить("Модуль", Неопределено); + Контекст.Вставить("Набор", Неопределено); + Контекст.Вставить("Тест", Неопределено); + + Возврат Контекст; + +КонецФункции + +// Описание результата проверки. +// +// Параметры: +// Успешно - Булево - Успешно +// +// Возвращаемое значение: +// Структура - Описание результата проверки: +// * Сообщения - Массив из Произвольный +// * Успешно - Булево +Функция ОписаниеРезультатаПроверки(Успешно = Истина) Экспорт + + Описание = Новый Структура(); + Описание.Вставить("Сообщения", Новый Массив); + Описание.Вставить("Успешно", Истина); + + Возврат Описание; + +КонецФункции + +#КонецОбласти + +// КонтекстыМодуля +// Возвращает коллекцию доступных контекстов выполнения модуля +// Параметры: +// Модуль - См. ОписаниеМодуля +// +// Возвращаемое значение: +// Массив из Строка - Контексты модуля, возможные значения см. ЮТФабрика.КонтекстыВызова +Функция КонтекстыМодуля(Модуль) Экспорт + + Контексты = ЮТФабрика.КонтекстыВызова(); + + КонтекстыМодуля = Новый Массив(); + + Если Модуль.Сервер Тогда + КонтекстыМодуля.Добавить(Контексты.Сервер); + КонецЕсли; + + Если Модуль.КлиентУправляемоеПриложение Тогда + КонтекстыМодуля.Добавить(Контексты.КлиентУправляемоеПриложение); + КонецЕсли; + + Если Модуль.КлиентОбычноеПриложение Тогда + КонтекстыМодуля.Добавить(Контексты.КлиентОбычноеПриложение); + КонецЕсли; + + Возврат КонтекстыМодуля; + +КонецФункции + +// КонтекстыПриложения +// Возвращает коллекцию доступных контекстов приложения +// Возвращаемое значение: +// Массив из Строка - Контексты приложения, возможные значения см. ЮТФабрика.КонтекстыВызова +Функция КонтекстыПриложения() Экспорт + +#Если НЕ Клиент Тогда + ВызватьИсключение "Метод получения контекстов приложения должен вызываться с клиента"; +#КонецЕсли + + Контексты = ЮТФабрика.КонтекстыВызова(); + КонтекстыПриложения = Новый Массив(); + + КонтекстыПриложения.Добавить(Контексты.Сервер); + КонтекстыПриложения.Добавить(Контексты.ВызовСервера); + +#Если ТолстыйКлиентОбычноеПриложение Тогда + КонтекстыПриложения.Добавить(Контексты.КлиентОбычноеПриложение); +#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Или ТонкийКлиент Тогда + КонтекстыПриложения.Добавить(Контексты.КлиентУправляемоеПриложение); +#КонецЕсли + + Возврат КонтекстыПриложения; + +КонецФункции + +// КонтекстИсполнения +// Возвращает контекст исполнения по контексту вызова +// Параметры: +// КонтекстВызова - Строка - Контекст вызова, см. ЮТФабрика.КонтекстыВызова +// +// Возвращаемое значение: +// Неопределено, Строка - Контекст исполнения +Функция КонтекстИсполнения(КонтекстВызова) Экспорт + + КонтекстыВызова = ЮТФабрика.КонтекстыВызова(); + + Если КонтекстВызова = КонтекстыВызова.Сервер Тогда + + Возврат ЮТФабрика.КонтекстыИсполнения().Сервер; + + ИначеЕсли КонтекстВызова = КонтекстыВызова.КлиентУправляемоеПриложение + ИЛИ КонтекстВызова = КонтекстыВызова.КлиентОбычноеПриложение + ИЛИ КонтекстВызова = КонтекстыВызова.ВызовСервера Тогда + + Возврат ЮТФабрика.КонтекстыИсполнения().Клиент; + + Иначе + + Возврат Неопределено; + + КонецЕсли; + +КонецФункции + +// Формирует представление теста +// +// Параметры: +// Тест - см. ОписаниеТеста +// +// Возвращаемое значение: +// Строка - Представление теста +Функция ПредставлениеТеста(Тест) Экспорт + + Если ЗначениеЗаполнено(Тест.Представление) Тогда + Представление = Тест.Представление; + ИначеЕсли ЗначениеЗаполнено(Тест.Параметры) Тогда + ПредставлениеПараметров = СтрСоединить(Тест.Параметры, ", "); + Представление = СтрШаблон("%1(%2)", Тест.Имя, ПредставлениеПараметров); + Иначе + Представление = Тест.Имя; + КонецЕсли; + + Возврат Представление; + +КонецФункции + +Функция ПараметрыЗаполненияТаблицыЗначений(Знач ПараметрыСозданияОбъектов = Неопределено) Экспорт + + Если ПараметрыСозданияОбъектов = Неопределено Тогда + ПараметрыСозданияОбъектов = ЮТФабрика.ПараметрыСозданияОбъектов(); + Иначе + ВходныеПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов; + ПараметрыСозданияОбъектов = ЮТФабрика.ПараметрыСозданияОбъектов(); + ЗаполнитьЗначенияСвойств(ПараметрыСозданияОбъектов, ВходныеПараметрыСозданияОбъектов); + КонецЕсли; + + Возврат Новый ФиксированнаяСтруктура("СозданиеОбъектовМетаданных", ПараметрыСозданияОбъектов); + +КонецФункции + +// Параметры генератора отчета. +// Описывает предоставляемые модулем форматы отчетов +// +// Возвращаемое значение: +// Структура - Параметры генератора отчета: +// * Форматы - Структура - Форматы отчетов, предоставляемые модулем +Функция ПараметрыГенератораОтчета() Экспорт + + Параметры = Новый Структура(); + Параметры.Вставить("Форматы", Новый Структура); + + Возврат Параметры; + +КонецФункции + +// Описание формата отчета. +// +// Параметры: +// Идентификатор - Строка - Уникальный идентификатор формата отчета +// Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования +// +// Возвращаемое значение: +// Структура - Описание формата отчета: +// * Идентификатор - Строка - Уникальный идентификатор формата отчета +// * Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования +// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен призак `СамостоятельнаяЗаписьОтчета` +// * ФильтрВыбораФайла - Строка - Фильтр выбора, используется в форме настроек тестирования +// * ИмяФайлаПоУмолчанию - Строка - Для отчетов, записываемых в файл, имя файла если в параметрах указан каталог +// * СамостоятельнаяЗаписьОтчета - Булево - Способ записи отчета в файлы. +// Истина - Модуль формирования отчета самостоятельно записывает отчет +// Ложь - Модуль формирования отчета генерирует данные, которые записываются движком +Функция ОписаниеФорматаОтчета(Идентификатор, Представление) Экспорт + + Описание = Новый Структура(); + Описание.Вставить("Идентификатор", Идентификатор); + Описание.Вставить("Представление", Представление); + Описание.Вставить("ЗаписьВКаталог", Ложь); + Описание.Вставить("ФильтрВыбораФайла", ""); + Описание.Вставить("ИмяФайлаПоУмолчанию", ""); + Описание.Вставить("СамостоятельнаяЗаписьОтчета", Ложь); + + Возврат Описание; + +КонецФункции +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..33ad68834 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТФабрикаСлужебный + + ru + Фабрика + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" index 1daedbb4d..caab4a5e4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -136,7 +136,7 @@ КонецЕсли; Исключение - Ошибки.Добавить(ЮТРегистрацияОшибок.ПредставлениеОшибки("Удаление файла " + УдаляемыйФайл, ИнформацияОбОшибке())); + Ошибки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление файла " + УдаляемыйФайл, ИнформацияОбОшибке())); КонецПопытки; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 92% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 8be3aec28..54d6fbce5 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,7 +20,7 @@ Функция ЭтоПодходящееРасширение(ИмяРасширения) Экспорт - Контекст = ЮТКонтекст.КонтекстЧитателя(); + Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); НормализованноеИмяРасширения = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(ИмяРасширения); @@ -30,7 +30,7 @@ Функция ЭтоПодходящийМодуль(ОписаниеМодуля) Экспорт - Контекст = ЮТКонтекст.КонтекстЧитателя(); + Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); Возврат ЗначениеЗаполнено(ОписаниеМодуля.Расширение) И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(ОписаниеМодуля.Имя)) @@ -41,14 +41,14 @@ // Отфильтровать тестовые наборы. // // Параметры: -// ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы -// ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрика.ОписаниеМодуля +// ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы +// ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрикаСлужебный.ОписаниеМодуля // // Возвращаемое значение: -// Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Отфильтрованные наборы +// Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Отфильтрованные наборы Функция ОтфильтроватьТестовыеНаборы(ТестовыеНаборы, ОписаниеМодуля) Экспорт - Контекст = ЮТКонтекст.КонтекстЧитателя(); + Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); Если НЕ Контекст.Фильтр.ЕстьФильтрТестов И НЕ Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда Возврат ТестовыеНаборы; @@ -86,7 +86,7 @@ Для Каждого Набор Из ТестовыеНаборы Цикл - ОтфильтрованныйНабор = ЮТФабрика.ОписаниеТестовогоНабора(Набор.Имя); + ОтфильтрованныйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Набор.Имя); ЗаполнитьЗначенияСвойств(ОтфильтрованныйНабор, Набор, , "Тесты"); Для Каждого Тест Из Набор.Тесты Цикл @@ -117,7 +117,7 @@ Продолжить; КонецЕсли; - ОтфильтрованныйТест = ЮТФабрика.ОписаниеТеста(Тест.Имя, "", ""); + ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", ""); ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест, , "КонтекстВызова"); ОтфильтрованныйТест.КонтекстВызова = КонтекстыТеста; @@ -185,7 +185,7 @@ Фильтр.Модули = МассивВСтруктуру(Модули); Если Контексты = Неопределено Тогда - Фильтр.Контексты = ЮТФабрика.КонтекстыПриложения(); + Фильтр.Контексты = ЮТФабрикаСлужебный.КонтекстыПриложения(); Иначе Фильтр.Контексты = Контексты; КонецЕсли; @@ -235,7 +235,7 @@ Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество()); Фильтр.Вставить("ЕстьФильтрКонтекстов", ЗначениеЗаполнено(Фильтр.Контексты)); - ЮТКонтекст.УстановитьКонтекстЧитателя(Новый Структура("Фильтр", Фильтр)); + ЮТКонтекстСлужебный.УстановитьКонтекстЧитателя(Новый Структура("Фильтр", Фильтр)); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 87% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index b3bff6707..14f0c245b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТФильтрация + ЮТФильтрацияСлужебный ru Фильтрация diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" deleted file mode 100644 index 2fab39597..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 77% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 9f5ed8cfa..394d04ea9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -24,12 +24,12 @@ // ПараметрыЗапускаТестов - см. ЮТФабрика.ПараметрыЗапуска // // Возвращаемое значение: -// Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах +// Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах Функция ЗагрузитьТесты(ПараметрыЗапускаТестов) Экспорт Результат = Новый Массив; - ЮТФильтрация.УстановитьКонтекст(ПараметрыЗапускаТестов); + ЮТФильтрацияСлужебный.УстановитьКонтекст(ПараметрыЗапускаТестов); Для Каждого МетаданныеМодуля Из ТестовыеМодули() Цикл @@ -50,15 +50,15 @@ // ПрочитатьНаборТестов // Читает набор тестов из модуля // Параметры: -// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля // // Возвращаемое значение: // - Неопределено - Если это не тестовый модуль -// - см. ЮТФабрика.ОписаниеТестовогоМодуля +// - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля Функция ИсполняемыеСценарииМодуля(Знач МетаданныеМодуля) Экспорт ЭтоТестовыйМодуль = Истина; - ОписаниеТестовогоМодуля = ЮТФабрика.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); + ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); ЮТТесты.ПередЧтениемСценариевМодуля(МетаданныеМодуля); @@ -67,8 +67,8 @@ Если Ошибка <> Неопределено Тогда - ТипыОшибок = ЮТФабрика.ТипыОшибок(); - ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода); + ТипыОшибок = ЮТФабрикаСлужебный.ТипыОшибок(); + ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода); Если ТипОшибки = ТипыОшибок.ТестНеРеализован Тогда ЭтоТестовыйМодуль = Ложь; @@ -82,8 +82,8 @@ Если Ошибка <> Неопределено Тогда - НаборПоУмолчанию = ЮТФабрика.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка); + НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка); ОписаниеТестовогоМодуля.НаборыТестов.Добавить(НаборПоУмолчанию); ИначеЕсли ЭтоТестовыйМодуль Тогда @@ -93,7 +93,7 @@ УдалитьНастройкиМодуляИзПервогоНабора(Сценарии); // TODO Нужен рефакторинг - ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля); + ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля); ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения; Иначе @@ -109,7 +109,7 @@ // ЭтоТестовыйМодуль // Проверяет, является ли модуль модулем с тестами // Параметры: -// МетаданныеМодуля - Структура - Описание метаданных модуля, см. ЮТФабрика.ОписаниеМодуля +// МетаданныеМодуля - Структура - Описание метаданных модуля, см. ЮТФабрикаСлужебный.ОписаниеМодуля // // Возвращаемое значение: // Булево - Этот модуль содержит тесты @@ -137,7 +137,7 @@ Если МетаданныеМодуля.Сервер Тогда //@skip-check unknown-method-property - Возврат ЮТЧитательСервер.ЭтоТестовыйМодуль(МетаданныеМодуля); + Возврат ЮТЧитательСлужебныйВызовСервера.ЭтоТестовыйМодуль(МетаданныеМодуля); Иначе Возврат Ложь; КонецЕсли; @@ -157,17 +157,17 @@ // ТестовыеМодули // Возвращает описания модулей, содержащих тесты // Возвращаемое значение: -// Массив из см. ЮТМетаданныеСервер.МетаданныеМодуля - Тестовые модули +// Массив из см. ЮТМетаданныеСлужебныйВызовСервера.МетаданныеМодуля - Тестовые модули Функция ТестовыеМодули() ТестовыеМодули = Новый Массив; //@skip-check unknown-method-property - МодулиРасширения = ЮТМетаданныеСервер.МодулиРасширений(); + МодулиРасширения = ЮТМетаданныеСлужебныйВызовСервера.МодулиРасширений(); Для Каждого ОписаниеМодуля Из МодулиРасширения Цикл - Если ЮТФильтрация.ЭтоПодходящийМодуль(ОписаниеМодуля) И ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда + Если ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля) И ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда ТестовыеМодули.Добавить(ОписаниеМодуля); @@ -191,8 +191,8 @@ ИначеЕсли МетаданныеМодуля.Сервер Тогда - ОписаниеМодуля = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(МетаданныеМодуля); - ЮТЛогирование.ВывестиСерверныеСообщения(); + ОписаниеМодуля = ЮТЧитательСлужебныйВызовСервера.ИсполняемыеСценарииМодуля(МетаданныеМодуля); + ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); КонецЕсли; #ИначеЕсли Сервер Тогда @@ -212,8 +212,8 @@ ИначеЕсли МетаданныеМодуля.Сервер Тогда - ОписаниеМодуля = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(МетаданныеМодуля); - ЮТЛогирование.ВывестиСерверныеСообщения(); + ОписаниеМодуля = ЮТЧитательСлужебныйВызовСервера.ИсполняемыеСценарииМодуля(МетаданныеМодуля); + ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); КонецЕсли; #КонецЕсли diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 88% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index df2cbf74d..857da215e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТЧитатель + ЮТЧитательСлужебный ru Загрузчик тестов diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" similarity index 72% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index adc856ce0..5e08cb6f7 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,16 +18,16 @@ #Область СлужебныйПрограммныйИнтерфейс -// См. ЮТЧитатель.ИсполняемыеСценарииМодуля +// См. ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля Функция ИсполняемыеСценарииМодуля(Знач МетаданныеМодуля) Экспорт - Возврат ЮТЧитатель.ИсполняемыеСценарииМодуля(МетаданныеМодуля); + Возврат ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля(МетаданныеМодуля); КонецФункции Функция ЭтоТестовыйМодуль(МетаданныеМодуля) Экспорт - Возврат ЮТЧитатель.ЭтоТестовыйМодуль(МетаданныеМодуля); + Возврат ЮТЧитательСлужебный.ЭтоТестовыйМодуль(МетаданныеМодуля); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" similarity index 81% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 0150accfb..f3b1d1653 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТЧитательСервер + ЮТЧитательСлужебныйВызовСервера ru Загрузчик тестов (сервер) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" index b67c7b473..3f5c90539 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -108,7 +108,7 @@ // Сообщение - Строка, Неопределено - Сообщение Процедура Пропустить(Сообщение = Неопределено) Экспорт - ЮТРегистрацияОшибок.Пропустить(Сообщение); + ЮТРегистрацияОшибокСлужебный.Пропустить(Сообщение); КонецПроцедуры @@ -123,7 +123,7 @@ Функция КонтекстТеста() Экспорт //@skip-check constructor-function-return-section - Возврат ЮТКонтекст.КонтекстТеста(); + Возврат ЮТКонтекстСлужебный.КонтекстТеста(); КонецФункции @@ -143,7 +143,7 @@ Функция КонтекстТестовогоНабора() Экспорт //@skip-check constructor-function-return-section - Возврат ЮТКонтекст.КонтекстНабора(); + Возврат ЮТКонтекстСлужебный.КонтекстНабора(); КонецФункции @@ -159,7 +159,7 @@ Функция КонтекстМодуля() Экспорт //@skip-check constructor-function-return-section - Возврат ЮТКонтекст.КонтекстМодуля(); + Возврат ЮТКонтекстСлужебный.КонтекстМодуля(); КонецФункции diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index de9a5848b..54b906ff4 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -57,70 +57,72 @@ CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент CommonModule.ЮТест CommonModule.ЮТЗапросы - CommonModule.ЮТЗапросыВызовСервера - CommonModule.ЮТЗапросыКлиентСервер + CommonModule.ЮТЗапросыСлужебныйВызовСервера + CommonModule.ЮТЗапросыСлужебныйКлиентСервер CommonModule.ЮТИсключения - CommonModule.ЮТИсполнительГлобальный - CommonModule.ЮТИсполнительКлиент - CommonModule.ЮТИсполнительКлиентСервер - CommonModule.ЮТИсполнительСервер + CommonModule.ЮТИсполнительСлужебныйВызовСервера + CommonModule.ЮТИсполнительСлужебныйГлобальный + CommonModule.ЮТИсполнительСлужебныйКлиент + CommonModule.ЮТИсполнительСлужебныйКлиентСервер CommonModule.ЮТКоллекции CommonModule.ЮТКомпоненты - CommonModule.ЮТКомпонентыВызовСервера - CommonModule.ЮТКомпонентыКлиент + CommonModule.ЮТКомпонентыСлужебныйВызовСервера + CommonModule.ЮТКомпонентыСлужебныйКлиент CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанныхСлужебный - CommonModule.ЮТКонтекст - CommonModule.ЮТКонтекстКлиент - CommonModule.ЮТКонтекстСервер + CommonModule.ЮТКонтекстСлужебный + CommonModule.ЮТКонтекстСлужебныйВызовСервера + CommonModule.ЮТКонтекстСлужебныйКлиент CommonModule.ЮТКонтекстТеста CommonModule.ЮТЛогирование - CommonModule.ЮТЛогированиеВызовСервера + CommonModule.ЮТЛогированиеСлужебный + CommonModule.ЮТЛогированиеСлужебныйВызовСервера CommonModule.ЮТЛокальСлужебный CommonModule.ЮТМетаданные - CommonModule.ЮТМетаданныеПовтИсп - CommonModule.ЮТМетаданныеСервер + CommonModule.ЮТМетаданныеСлужебныйВызовСервера + CommonModule.ЮТМетаданныеСлужебныйПовтИсп CommonModule.ЮТМетодыСлужебный CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий - CommonModule.ЮТОбщийВызовСервера - CommonModule.ЮТОтчет - CommonModule.ЮТОтчетAllure - CommonModule.ЮТОтчетJSON - CommonModule.ЮТОтчетJUnit - CommonModule.ЮТПараметрыЗапуска + CommonModule.ЮТОбщийСлужебныйВызовСервера + CommonModule.ЮТОтчетAllureСлужебный + CommonModule.ЮТОтчетJSONСлужебный + CommonModule.ЮТОтчетJUnitСлужебный + CommonModule.ЮТОтчетСлужебный + CommonModule.ЮТПараметрыЗапускаСлужебный CommonModule.ЮТПодражатель CommonModule.ЮТПодражатель_Банки CommonModule.ЮТПодражатель_Компании CommonModule.ЮТПодражатель_Люди - CommonModule.ЮТПодражательВызовСервера - CommonModule.ЮТПодражательПовтИсп CommonModule.ЮТПодражательСлужебный + CommonModule.ЮТПодражательСлужебныйВызовСервера + CommonModule.ЮТПодражательСлужебныйПовтИсп CommonModule.ЮТПредикаты - CommonModule.ЮТПредикатыКлиентСервер - CommonModule.ЮТПреобразования + CommonModule.ЮТПредикатыСлужебныйКлиентСервер + CommonModule.ЮТПреобразованияСлужебный CommonModule.ЮТПроверкиСлужебный - CommonModule.ЮТРасширения - CommonModule.ЮТРегистрацияОшибок + CommonModule.ЮТРасширенияСлужебный + CommonModule.ЮТРегистрацияОшибокСлужебный CommonModule.ЮТСлужебныйПовторногоИспользования - CommonModule.ЮТСобытия + CommonModule.ЮТСобытияСлужебный CommonModule.ЮТСообщенияСлужебный - CommonModule.ЮТСравнениеКлиентСервер - CommonModule.ЮТСравнениеСервер + CommonModule.ЮТСравнениеСлужебныйВызовСервера + CommonModule.ЮТСравнениеСлужебныйКлиентСервер CommonModule.ЮТСтроки CommonModule.ЮТТестовыеДанные - CommonModule.ЮТТестовыеДанные_ТаблицыЗначений - CommonModule.ЮТТестовыеДанныеВызовСервера CommonModule.ЮТТестовыеДанныеСлужебный + CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера + CommonModule.ЮТТестовыеДанныеСлужебныйТаблицыЗначений CommonModule.ЮТТесты CommonModule.ЮТТипыДанныхСлужебный CommonModule.ЮТУтверждения CommonModule.ЮТУтвержденияИБ CommonModule.ЮТФабрика + CommonModule.ЮТФабрикаСлужебный CommonModule.ЮТФайлы - CommonModule.ЮТФильтрация - CommonModule.ЮТЧитатель - CommonModule.ЮТЧитательСервер + CommonModule.ЮТФильтрацияСлужебный + CommonModule.ЮТЧитательСлужебный + CommonModule.ЮТЧитательСлужебныйВызовСервера DataProcessor.ЮТHTTPServiceRequest DataProcessor.ЮТHTTPСервисЗапрос DataProcessor.ЮТRecordSet diff --git a/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl b/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl index d58d435c5..e037eab6d 100644 --- a/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl +++ b/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ &After("OnStart") Procedure ЮТOnStart() - ЮТИсполнительКлиент.ВыполнитьМодульноеТестирование(); + ЮТИсполнительСлужебныйКлиент.ВыполнитьМодульноеТестирование(); EndProcedure diff --git a/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl b/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl index 612644921..8e0de7a6e 100644 --- a/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl +++ b/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -36,7 +36,7 @@ &После("ПриНачалеРаботыСистемы") Процедура ЮТПриНачалеРаботыСистемы() - ЮТИсполнительКлиент.ВыполнитьМодульноеТестирование(); + ЮТИсполнительСлужебныйКлиент.ВыполнитьМодульноеТестирование(); КонецПроцедуры diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.suppress" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.suppress" deleted file mode 100644 index 4ec4b2b7c..000000000 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.suppress" +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index f15bf9794..2938d0595 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -457,12 +457,12 @@ ПараметрыЗапуска = ПараметрыЗапуска(); - ПараметрыЗагрузки = ЮТИсполнительКлиент.ПараметрыИсполнения(); + ПараметрыЗагрузки = ЮТИсполнительСлужебныйКлиент.ПараметрыИсполнения(); ПараметрыЗагрузки.Цепочка.Добавить(Новый ОписаниеОповещения("ПослеЗагрузкиТестов", ЭтотОбъект, ПараметрыЗапуска)); ПараметрыЗагрузки.ПараметрыЗапуска = ПараметрыЗапуска; - ЮТСобытия.Инициализация(ПараметрыЗагрузки.ПараметрыЗапуска); - ЮТИсполнительКлиент.ОбработчикЗагрузитьТесты(Неопределено, ПараметрыЗагрузки); + ЮТИсполнительСлужебныйКлиент.ВыполнитьИнициализацию(ПараметрыЗагрузки.ПараметрыЗапуска); + ЮТИсполнительСлужебныйКлиент.ОбработчикЗагрузитьТесты(Неопределено, ПараметрыЗагрузки); КонецПроцедуры @@ -504,7 +504,7 @@ ОбновитьОбщуюСтатистику(Истина); - ЮТКонтекст.УдалитьКонтекст(); + ЮТКонтекстСлужебный.УдалитьКонтекст(); КонецПроцедуры @@ -522,15 +522,15 @@ ОповещениеПользователю("Прогон тестов", "Запушено выполнение тестов"); - ЮТСобытия.Инициализация(ПараметрыЗапускаТестирования); - ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(Модули); - ЮТСобытия.ПередВыполнениемТестов(Модули); + ЮТИсполнительСлужебныйКлиент.ВыполнитьИнициализацию(ПараметрыЗапускаТестирования); + ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(Модули); + ЮТСобытияСлужебный.ПередВыполнениемТестов(Модули); Для Каждого Модуль Из Модули Цикл СброситьСостояниеТестирования(Модуль); - Результат = ЮТИсполнительКлиент.ВыполнитьТестыМодуля(Модуль); + Результат = ЮТИсполнительСлужебныйКлиент.ВыполнитьТестыМодуля(Модуль); Для Каждого Набор Из Результат.НаборыТестов Цикл @@ -550,7 +550,7 @@ ОбновитьОбщуюСтатистику(Ложь); - ЮТКонтекст.УдалитьКонтекст(); + ЮТКонтекстСлужебный.УдалитьКонтекст(); ОповещениеПользователю("Прогон тестов завершен", "Завершено выполнение тестов"); @@ -671,7 +671,7 @@ &НаКлиенте Процедура ВыполнитьЗапускТестовПоПараметрам(ПараметрыЗапуска, Обработчик) - ЮТИсполнительКлиент.ВыполнитьМодульноеТестированиеПоНастройке(ПараметрыЗапуска, Обработчик); + ЮТИсполнительСлужебныйКлиент.ВыполнитьМодульноеТестированиеПоНастройке(ПараметрыЗапуска, Обработчик); КонецПроцедуры diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index 0d3ce3bcb..a32d0fdbb 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -40,7 +40,7 @@ ЗаполнитьДеревоТестов(); - ПоддерживаемыеФорматыОтчетов = ЮТОтчет.ПоддерживаемыеФорматыОтчетов(); + ПоддерживаемыеФорматыОтчетов = ЮТОтчетСлужебный.ПоддерживаемыеФорматыОтчетов(); Для Каждого Формат Из ПоддерживаемыеФорматыОтчетов Цикл Элементы.ФорматОтчета.СписокВыбора.Добавить(Формат.Ключ, Формат.Значение.Представление); КонецЦикла; @@ -163,9 +163,9 @@ &НаКлиенте Процедура ЗаполнитьДеревоТестов() - ЮТКонтекст.ИнициализироватьКонтекст(); - ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Новый Структура("filter", Новый Структура)); - ЮТКонтекст.УдалитьКонтекст(); + ЮТКонтекстСлужебный.ИнициализироватьКонтекст(); + ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(Новый Структура("filter", Новый Структура)); + ЮТКонтекстСлужебный.УдалитьКонтекст(); СтрокиРасширений = Новый Соответствие(); @@ -248,7 +248,7 @@ &НаКлиентеНаСервереБезКонтекста Функция ДобавитьСтрокуТеста(Владелец, Тест) - Представление = ЮТФабрика.ПредставлениеТеста(Тест); + Представление = ЮТФабрикаСлужебный.ПредставлениеТеста(Тест); Если Владелец.ТипОбъекта = 1 Тогда СтрокаМодуля = Владелец; @@ -329,7 +329,7 @@ &НаКлиенте Процедура ОбновитьСтрокуЗапуска() - ПараметрыЗапускаЮнитТестов = СтрШаблон("%1=%2", ЮТПараметрыЗапуска.КлючЗапуска(), ФайлКонфигурации); + ПараметрыЗапускаЮнитТестов = СтрШаблон("%1=%2", ЮТПараметрыЗапускаСлужебный.КлючЗапуска(), ФайлКонфигурации); Если ЗапускИзКонфигуратор Тогда @@ -457,7 +457,7 @@ #Если ВебКлиент Тогда ВызватьИсключение "Сохранение конфигурации из веб-клиента не поддерживается"; #Иначе - Конфигурация = ЮТФабрика.ПараметрыЗапуска(); + Конфигурация = ЮТФабрикаСлужебный.ПараметрыЗапуска(); Конфигурация.Удалить("ВыполнятьМодульноеТестирование"); Конфигурация.showReport = ОтобразитьОтчет; diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" index 31c93cc89..d2a2b8e68 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" @@ -10,13 +10,13 @@ ru Функциональность запуска тестирования - CommonModule.ЮТИсполнительГлобальный - CommonModule.ЮТИсполнительКлиент - CommonModule.ЮТИсполнительКлиентСервер - CommonModule.ЮТИсполнительСервер - CommonModule.ЮТПараметрыЗапуска - CommonModule.ЮТФильтрация - CommonModule.ЮТЧитатель - CommonModule.ЮТЧитательСервер + CommonModule.ЮТИсполнительСлужебныйВызовСервера + CommonModule.ЮТИсполнительСлужебныйГлобальный + CommonModule.ЮТИсполнительСлужебныйКлиент + CommonModule.ЮТИсполнительСлужебныйКлиентСервер + CommonModule.ЮТПараметрыЗапускаСлужебный + CommonModule.ЮТФильтрацияСлужебный + CommonModule.ЮТЧитательСлужебный + CommonModule.ЮТЧитательСлужебныйВызовСервера Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" index 0a5e28404..e3df6c51c 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" @@ -10,9 +10,9 @@ ru Функциональность работы с контекстами - CommonModule.ЮТКонтекст - CommonModule.ЮТКонтекстКлиент - CommonModule.ЮТКонтекстСервер + CommonModule.ЮТКонтекстСлужебный + CommonModule.ЮТКонтекстСлужебныйВызовСервера + CommonModule.ЮТКонтекстСлужебныйКлиент CommonModule.ЮТКонтекстТеста Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index cd119e2ed..820d5e445 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -13,23 +13,23 @@ CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент CommonModule.ЮТИсключения CommonModule.ЮТКомпоненты - CommonModule.ЮТКомпонентыВызовСервера - CommonModule.ЮТКомпонентыКлиент - CommonModule.ЮТЛогированиеВызовСервера + CommonModule.ЮТКомпонентыСлужебныйВызовСервера + CommonModule.ЮТКомпонентыСлужебныйКлиент + CommonModule.ЮТЛогированиеСлужебныйВызовСервера CommonModule.ЮТЛокальСлужебный - CommonModule.ЮТМетаданныеПовтИсп - CommonModule.ЮТМетаданныеСервер + CommonModule.ЮТМетаданныеСлужебныйВызовСервера + CommonModule.ЮТМетаданныеСлужебныйПовтИсп CommonModule.ЮТНастройкиВыполнения - CommonModule.ЮТОбщийВызовСервера - CommonModule.ЮТОтчет + CommonModule.ЮТОбщийСлужебныйВызовСервера + CommonModule.ЮТОтчетСлужебный CommonModule.ЮТПроверкиСлужебный - CommonModule.ЮТРасширения - CommonModule.ЮТРегистрацияОшибок + CommonModule.ЮТРасширенияСлужебный + CommonModule.ЮТРегистрацияОшибокСлужебный CommonModule.ЮТСлужебныйПовторногоИспользования - CommonModule.ЮТСобытия + CommonModule.ЮТСобытияСлужебный CommonModule.ЮТСообщенияСлужебный CommonModule.ЮТТипыДанныхСлужебный - CommonModule.ЮТФабрика + CommonModule.ЮТФабрикаСлужебный CommonModule.ЮТФайлы CommonPicture.ЮТНеизвестный CommonPicture.ЮТОшибка diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214.mdo" index 493a7a04b..318df51af 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214.mdo" @@ -10,9 +10,9 @@ CommonModule.ЮТПодражатель_Банки CommonModule.ЮТПодражатель_Компании CommonModule.ЮТПодражатель_Люди - CommonModule.ЮТПодражательВызовСервера - CommonModule.ЮТПодражательПовтИсп CommonModule.ЮТПодражательСлужебный + CommonModule.ЮТПодражательСлужебныйВызовСервера + CommonModule.ЮТПодражательСлужебныйПовтИсп CommonTemplate.ЮТ_СловарьПодражателя_Компании_Наименования_ru CommonTemplate.ЮТ_СловарьПодражателя_Компании_ПрефиксыНаименований_ru CommonTemplate.ЮТ_СловарьПодражателя_Люди_ЖенскиеИмена_ru diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" index d698d17c5..64b093691 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" @@ -12,12 +12,12 @@ CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанныхСлужебный - CommonModule.ЮТПреобразования + CommonModule.ЮТПреобразованияСлужебный CommonModule.ЮТСтроки CommonModule.ЮТТестовыеДанные - CommonModule.ЮТТестовыеДанные_ТаблицыЗначений - CommonModule.ЮТТестовыеДанныеВызовСервера CommonModule.ЮТТестовыеДанныеСлужебный + CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера + CommonModule.ЮТТестовыеДанныеСлужебныйТаблицыЗначений DataProcessor.ЮТКонструкторТестовыхДанных ЮТПодражатель Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" index ce2c36fec..ee51e8980 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.mdo" @@ -10,12 +10,12 @@ ru Реализация утверждений для проверки результатов при тестировании - CommonModule.ЮТЗапросыВызовСервера - CommonModule.ЮТЗапросыКлиентСервер + CommonModule.ЮТЗапросыСлужебныйВызовСервера + CommonModule.ЮТЗапросыСлужебныйКлиентСервер CommonModule.ЮТПредикаты - CommonModule.ЮТПредикатыКлиентСервер - CommonModule.ЮТСравнениеКлиентСервер - CommonModule.ЮТСравнениеСервер + CommonModule.ЮТПредикатыСлужебныйКлиентСервер + CommonModule.ЮТСравнениеСлужебныйВызовСервера + CommonModule.ЮТСравнениеСлужебныйКлиентСервер CommonModule.ЮТУтверждения CommonModule.ЮТУтвержденияИБ Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" index cf120167b..fb20ea619 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" @@ -11,8 +11,8 @@ Подключаемые обработчики событий тестов CommonModule.МокитоСлужебный - CommonModule.ЮТИсполнительКлиент - CommonModule.ЮТЛогирование + CommonModule.ЮТИсполнительСлужебныйКлиент + CommonModule.ЮТЛогированиеСлужебный CommonModule.ЮТТестовыеДанныеСлужебный CommonModule.ЮТУтверждения Subsystem.ЮТДинамическиПодключаемые diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" index 0914fa457..da86b8b76 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" @@ -10,8 +10,8 @@ ru Функциональность формирования отчетов - CommonModule.ЮТОтчетAllure - CommonModule.ЮТОтчетJSON - CommonModule.ЮТОтчетJUnit + CommonModule.ЮТОтчетAllureСлужебный + CommonModule.ЮТОтчетJSONСлужебный + CommonModule.ЮТОтчетJUnitСлужебный Subsystem.ЮТДинамическиПодключаемые diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" index f2303e47f..56ec76599 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" @@ -15,12 +15,34 @@ CommonPicture.ЮТПодсистема CommonModule.Мокито + CommonModule.МокитоОбучение + CommonModule.МокитоПроверки CommonModule.ЮТест CommonModule.ЮТЗапросы + CommonModule.ЮТИсключения + CommonModule.ЮТКоллекции + CommonModule.ЮТКомпоненты + CommonModule.ЮТКонструкторВариантов + CommonModule.ЮТКонтекстТеста CommonModule.ЮТЛогирование CommonModule.ЮТМетаданные + CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий + CommonModule.ЮТПодражатель + CommonModule.ЮТПодражатель_Банки + CommonModule.ЮТПодражатель_Компании + CommonModule.ЮТПодражатель_Люди + CommonModule.ЮТПредикаты + CommonModule.ЮТСтроки + CommonModule.ЮТТестовыеДанные CommonModule.ЮТТесты CommonModule.ЮТУтверждения + CommonModule.ЮТУтвержденияИБ + CommonModule.ЮТФабрика + CommonModule.ЮТФайлы + DataProcessor.ЮТHTTPServiceRequest + DataProcessor.ЮТHTTPСервисЗапрос + DataProcessor.ЮТRecordSet + DataProcessor.ЮТКонструкторТестовыхДанных DataProcessor.ЮТЮнитТесты diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276.mdo" index 4a86e2a5e..c7e7e7e19 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276.mdo" @@ -3,7 +3,7 @@ ОМ_Мокито ru - О м мокито + Мокито true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 52786c60e..15c13e32b 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -3,7 +3,7 @@ ОМ_МокитоСлужебный ru - О м мокито служебный + Мокито служебный true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" index 9215cba58..4fe6752c0 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" @@ -3,7 +3,7 @@ ОМ_Общий ru - О м общий + Общий true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo" index 47e37a97c..f645b9a02 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТЗапросы ru - О м ЮТЗапросы + ЮТЗапросы true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" similarity index 86% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 7d3217afc..f38dbaa4a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -30,12 +30,12 @@ ФайлРезультата = ЮТест.Данные().НовоеИмяВременногоФайла("txt"); ДополнительныеПараметры = ДополнительныеПараметрыТестирования(ФайлРезультата, МассивОшибок()); - ЮТИсполнительКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры); + ЮТИсполнительСлужебныйКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры); ПроверитьРезультатВыполнения(ФайлРезультата, "0"); ДополнительныеПараметры = ДополнительныеПараметрыТестирования(ФайлРезультата, МассивОшибок(Истина)); - ЮТИсполнительКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры); + ЮТИсполнительСлужебныйКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры); ПроверитьРезультатВыполнения(ФайлРезультата, "1"); КонецПроцедуры @@ -49,7 +49,7 @@ НаборыТестов = НаборыТестов(Тесты); ОписаниеРезультата = ОписаниеРезультатаТестирования(НаборыТестов); - ДополнительныеПараметры = ЮТИсполнительКлиент.ПараметрыИсполнения(); + ДополнительныеПараметры = ЮТИсполнительСлужебныйКлиент.ПараметрыИсполнения(); ДополнительныеПараметры.Цепочка.Добавить(ЮТАсинхроннаяОбработкаСлужебныйКлиент.НовыйПустойОбработчик(2)); ДополнительныеПараметры.АргументыЗапуска = ""; ДополнительныеПараметры.ИсполняемыеТестовыеМодули = Новый Массив; @@ -66,13 +66,13 @@ Функция МассивОшибок(ДобавлятьУпавшийТест = Ложь) Ошибки = Новый Массив; - ОписаниеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки("Метод пропущен"); - ОписаниеОшибки.ТипОшибки = ЮТФабрика.ТипыОшибок().Пропущен; + ОписаниеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки("Метод пропущен"); + ОписаниеОшибки.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Пропущен; Ошибки.Добавить(ОписаниеОшибки); Если ДобавлятьУпавшийТест Тогда - ОписаниеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки("Ошибка исполнения"); - ОписаниеОшибки.ТипОшибки = ЮТФабрика.ТипыОшибок().Исполнения; + ОписаниеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки("Ошибка исполнения"); + ОписаниеОшибки.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Исполнения; Ошибки.Добавить(ОписаниеОшибки); КонецЕсли; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" similarity index 84% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" index bdaaeafe1..17d1edf3e 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -1,6 +1,6 @@ - ОМ_ЮТИсполнительКлиент + ОМ_ЮТИсполнительСлужебныйКлиент ru ЮТИсполнительКлиент diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 90% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index c93d5f06c..073c741ee 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -31,7 +31,7 @@ Процедура ЛомающийКонтекстТест() Экспорт - ЮТест.ОжидаетЧто(ЮТКонтекст.ДанныеКонтекста()) + ЮТест.ОжидаетЧто(ЮТКонтекстСлужебный.ДанныеКонтекста()) .ЭтоНеНеопределено(); НачатьТранзакцию(); @@ -40,7 +40,7 @@ ЗафиксироватьТранзакцию(); Исключение ОбновитьПовторноИспользуемыеЗначения(); - Если ЮТКонтекст.ДанныеКонтекста() <> Неопределено Тогда + Если ЮТКонтекстСлужебный.ДанныеКонтекста() <> Неопределено Тогда ВызватьИсключение "Контекст не сломан"; КонецЕсли; ОтменитьТранзакцию(); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 78% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index 3d91f1e88..9b2b68dad 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,6 +1,6 @@ - ОМ_ЮТИсполнительКлиентСервер + ОМ_ЮТИсполнительСлужебныйКлиентСервер ru ЮТИсполнитель клиент сервер diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.mdo" index e16b5f1d9..df43c27e6 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТКонструкторТестовыхДанных ru - О м конструктор тестовых данных + Конструктор тестовых данных true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 84% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 7e544b26d..401f31ba9 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -30,7 +30,7 @@ Процедура ПараметрыГенерацииОтчета() Экспорт - Параметры = ЮТОтчетAllure.ПараметрыГенерацииОтчета(); + Параметры = ЮТОтчетAllureСлужебный.ПараметрыГенерацииОтчета(); ЮТест.ОжидаетЧто(Параметры) .Свойство("Форматы") @@ -44,8 +44,8 @@ РезультатТестирования = ТестовыеДанные.РезультатТестирования(); Каталог = ЮТест.Данные().НовоеИмяВременногоФайла(); СоздатьКаталог(Каталог); - Формат = ЮТОтчетAllure.ПараметрыГенерацииОтчета().Форматы.allure; - ЮТОтчетAllure.ЗаписатьОтчет(РезультатТестирования, Каталог, Формат, Неопределено); + Формат = ЮТОтчетAllureСлужебный.ПараметрыГенерацииОтчета().Форматы.allure; + ЮТОтчетAllureСлужебный.ЗаписатьОтчет(РезультатТестирования, Каталог, Формат, Неопределено); КонецПроцедуры @@ -55,7 +55,7 @@ Набор = ТестовыеДанные.ОписаниеТестовогоНабора(Модуль); Тест = ТестовыеДанные.ОписаниеТеста(Набор); - ОписаниеТеста = ЮТОтчетAllure.ОписаниеТеста(Тест, Набор, Модуль); + ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль); ЮТест.ОжидаетЧто(ОписаниеТеста) .ИмеетТип("Структура") .Заполнено() @@ -67,7 +67,7 @@ СодержитМетку(ОписаниеТеста, "subSuite", ИмяВложенногоНабора); Набор.Представление = Модуль.МетаданныеМодуля.Имя; - ОписаниеТеста = ЮТОтчетAllure.ОписаниеТеста(Тест, Набор, Модуль); + ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль); СодержитМетку(ОписаниеТеста, "suite", ИмяТестовогоНабора); ЮТест.ОжидаетЧто(ОписаниеТеста) .Свойство("labels") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 83% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 295f00018..74f3095ab 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ОМ_ЮТОтчетAllure + ОМ_ЮТОтчетAllureСлужебный true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 91% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 970068c39..1dc11fa09 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -35,7 +35,7 @@ ПараметрыЗапуска = Новый Структура(); ПараметрыЗапуска.Вставить("reportPath", Каталог); ПараметрыЗапуска.Вставить("reportFormat", "allure"); - ЮТОтчет.СформироватьОтчет(РезультатТестирования, ПараметрыЗапуска, Неопределено); + ЮТОтчетСлужебный.СформироватьОтчет(РезультатТестирования, ПараметрыЗапуска, Неопределено); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 85% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 5cd63fd08..7cd8bdf26 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ОМ_ЮТОтчет + ОМ_ЮТОтчетСлужебный true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270.mdo" index c1dd5b3b9..2cd86f36a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТПодражатель_Банки ru - О м ЮТПодражатель банки + Подражатель банки true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270.mdo" index 178684980..a22664513 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТПодражатель_Компании ru - О м ЮТПодражатель компании + Подражатель компании true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270.mdo" index 452461f4b..c75e0f57e 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТПодражатель_Люди ru - О м ЮТПодражатель люди + Подражатель люди true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 89% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 959556a76..990d59a09 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,14 +34,14 @@ Процедура ПроверитьПредикаты() Экспорт - Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(1, ЮТест.Предикат().ИмеетТип("Число").Больше(0).Меньше(2).Равно(1)); + Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(1, ЮТест.Предикат().ИмеетТип("Число").Больше(0).Меньше(2).Равно(1)); ЮТест.ОжидаетЧто(Результат).Свойство("Успешно").ЭтоИстина(); КонецПроцедуры Процедура ЭтоПредикат() Экспорт - СтруктураПредикат = ЮтФабрика.ВыражениеПредиката(ЮТПредикаты.Выражения().Равно); + СтруктураПредикат = ЮТФабрика.ВыражениеПредиката(ЮТПредикаты.Выражения().Равно); ЮТОбщий.УказатьТипСтруктуры(СтруктураПредикат, "Предикат"); Варианты = ЮТест.Варианты("Предикаты, ОжидаемоеЗначение") @@ -53,7 +53,7 @@ .Добавить(Мокито.МассивПараметров(1, 2, 3), Ложь); Для Каждого Вариант Из Варианты.СписокВариантов() Цикл - ЮТест.ОжидаетЧто(ЮТПредикатыКлиентСервер.ЭтоПредикат(Вариант.Предикаты)).Равно(Вариант.ОжидаемоеЗначение); + ЮТест.ОжидаетЧто(ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Вариант.Предикаты)).Равно(Вариант.ОжидаемоеЗначение); КонецЦикла; КонецПроцедуры @@ -105,8 +105,8 @@ Процедура ПроверитьСообщениеОбработкиПредиката(ПроверяемоеЗначение, Предикат, Сообщение) - ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(); - РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке); + ПараметрыСообщенийОбОшибке = ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(); + РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке); Описание = СтрШаблон("Проверка предиката %1 `%2` %3", Предикат.ИмяРеквизита, Предикат.ВидСравнения, Предикат.Значение); ОжидаемоеСообщение = СтрШаблон("Ожидали, что проверяемое значение %1 %2, но это не так.", ЮТСообщенияСлужебный.ПредставлениеЗначения(ПроверяемоеЗначение), Сообщение); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 69% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index d226ed546..09e27a418 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,9 +1,9 @@ - ОМ_ЮТПредикатыКлиентСервер + ОМ_ЮТПредикатыСлужебныйКлиентСервер ru - О м ЮТПредикаты клиент сервер + Предикаты служебный клиент сервер true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 91% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 94542bc9a..3b781bb09 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -86,7 +86,7 @@ Описание = Строка(ТипЗнч(Значение)); Копия = СоздатьКопию(Значение); - Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Значение, Копия); + Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Значение, Копия); ЮТест.ОжидаетЧто(Результат, Описание) .ЭтоИстина(); @@ -96,11 +96,11 @@ Описание = Строка(ТипЗнч(Значение1)); - Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Значение1, Значение2); + Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Значение1, Значение2); ЮТест.ОжидаетЧто(Результат, Описание) .ЭтоЛожь(); - Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Значение2, Значение1); + Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Значение2, Значение1); ЮТест.ОжидаетЧто(Результат, Описание + ". Перемена мест") .ЭтоЛожь(); @@ -114,7 +114,7 @@ Копия = СоздатьКопию(Значение); Алгоритм = Новый СжатиеДанных(1); - Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Новый ХранилищеЗначения(Значение, Алгоритм), + Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Новый ХранилищеЗначения(Значение, Алгоритм), Новый ХранилищеЗначения(Копия, Алгоритм)); ЮТест.ОжидаетЧто(Результат, Описание) @@ -152,7 +152,7 @@ Копия = СоздатьКопию(Вариант.Значение); - Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Вариант.Значение, Копия); + Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Вариант.Значение, Копия); ЮТест.ОжидаетЧто(Результат, Вариант.Описание) .ЭтоИстина(); @@ -200,7 +200,7 @@ Описание = Строка(ТипЗнч(Вариант.Значение)); - ЮТест.ОжидаетЧто(ЮТСравнениеКлиентСервер.ЗначенияРавны(Вариант.Значение, Вариант.Значение), Описание) + ЮТест.ОжидаетЧто(ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Вариант.Значение, Вариант.Значение), Описание) .ЭтоИстина(); КонецЦикла; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 83% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index 5cd2ebf3e..4eb5b28dd 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,6 +1,6 @@ - ОМ_ЮТСравнениеКлиентСервер + ОМ_ЮТСравнениеСлужебныйКлиентСервер ru Сравнение клиент сервер diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" index e97e61ef0..819366972 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТТестовыеДанные ru - О м тестовые данные + Тестовые данные true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index a28f43198..b5bcfd85e 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТТестовыеДанныеСлужебный ru - О м тестовые данные служебный + Тестовые данные служебный true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index ff7f461dc..e37f4b338 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ Процедура ПередКаждымТестом() Экспорт - ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля(); + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); ЮТТесты.ПередЧтениемСценариевМодуля(ОписаниеМодуля); КонецПроцедуры @@ -64,7 +64,7 @@ Функция Контекст() - Возврат ЮТКонтекст.ЗначениеКонтекста("КонтекстРегистрацияТестов"); + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов"); КонецФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo" index 68ed1e0c4..d49636f94 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo" @@ -3,7 +3,7 @@ ОМ_ЮТТесты ru - О м ЮТТесты + Тесты true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 5161cac88..3175f67c0 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -86,7 +86,7 @@ ЮТУтверждения.Что(1, "Проверяемый контекст"); - ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки(); + ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки(); ЮТУтверждения.Что(ДанныеКонтекста, "Контекст утверждений") .Свойство("ПрефиксОшибки").Равно("Проверяемый контекст") @@ -102,21 +102,21 @@ ЮТУтверждения.Что(Объект) .ИмеетТип("Структура"); - ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки(); + ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки(); ЮТУтверждения.Что(ДанныеКонтекста, "Свойство не установлено") .Свойство("ОбъектПроверки.ИмяСвойства").Равно(Неопределено); ЮТУтверждения.Что(Объект) .Свойство("Примитив"); - ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки(); + ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки(); ЮТУтверждения.Что(ДанныеКонтекста, "Свойство установлено") .Свойство("ОбъектПроверки.ИмяСвойства").Равно("Примитив"); ЮТУтверждения.Что(Объект) .Свойство("Объект.Первый"); - ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки(); + ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки(); ЮТУтверждения.Что(ДанныеКонтекста, "Составное свойство") .Свойство("ОбъектПроверки.ИмяСвойства").Равно("Объект.Первый"); @@ -282,7 +282,7 @@ ЮТУтверждения.Что(ОМ_ЮТУтверждения, "Контекст метода") .Метод("МетодБезИсключение"); - Контекст = ЮТКонтекст.КонтекстПроверки(); + Контекст = ЮТКонтекстСлужебный.КонтекстПроверки(); ЮТУтверждения.Что(Контекст) .Свойство("ПрефиксОшибки").Равно("Контекст метода") .Свойство("ИмяМетода").Равно("МетодБезИсключение") @@ -291,7 +291,7 @@ ЮТУтверждения.Что(ОМ_ЮТУтверждения, "Контекст метода с параметрами") .Метод("МетодБезИсключение", Новый Массив(1)); - Контекст = ЮТКонтекст.КонтекстПроверки(); + Контекст = ЮТКонтекстСлужебный.КонтекстПроверки(); ЮТУтверждения.Что(Контекст) .Свойство("ПрефиксОшибки").Равно("Контекст метода с параметрами") .Свойство("ИмяМетода").Равно("МетодБезИсключение") @@ -2411,22 +2411,22 @@ Если ИнформацияОбОшибке = Неопределено Тогда Сообщение = СтрШаблон("Ожидали, что возникнет ошибка утверждений [%1]", ОжидаемоеОписание); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание); ИначеЕсли НЕ СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "[Failed]") Тогда Сообщение = СтрШаблон("Ожидали поймать ошибку утверждений [%1], а получили ошибку исполнения [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); ИначеЕсли СтрНайти(ИнформацияОбОшибке.Описание, ОжидаемоеОписание) = 0 Тогда Сообщение = СтрШаблон("Ожидали поймать ошибку [%1], а получили [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); КонецЕсли; Если ЗначениеЗаполнено(Сообщение) Тогда - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение); КонецЕсли; КонецПроцедуры @@ -2436,22 +2436,22 @@ Если ИнформацияОбОшибке = Неопределено Тогда Сообщение = СтрШаблон("Ожидали, что возникнет ошибка исполнения [%1]", ОжидаемоеОписание); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание); ИначеЕсли НЕ СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "[Broken]") Тогда Сообщение = СтрШаблон("Ожидали поймать ошибку исполнения [%1], а получили ошибку без модификатора [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); ИначеЕсли СтрНайти(ИнформацияОбОшибке.Описание, ОжидаемоеОписание) = 0 Тогда Сообщение = СтрШаблон("Ожидали поймать ошибку [%1], а получили [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание); - ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); + ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание); КонецЕсли; Если ЗначениеЗаполнено(Сообщение) Тогда - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение); КонецЕсли; КонецПроцедуры @@ -2467,7 +2467,7 @@ ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение); ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); - ДанныеОшибки = ЮТКонтекст.КонтекстОшибки(); + ДанныеОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); Сообщение = Неопределено; @@ -2484,7 +2484,7 @@ КонецЕсли; Если ЗначениеЗаполнено(Сообщение) Тогда - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение); КонецЕсли; КонецПроцедуры @@ -2492,7 +2492,7 @@ Процедура ПроверитьДанныеОшибкиУтверждения(Знач ПроверяемоеЗначение) ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); - ДанныеОшибки = ЮТКонтекст.КонтекстОшибки(); + ДанныеОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); Сообщение = Неопределено; @@ -2507,7 +2507,7 @@ КонецЕсли; Если ЗначениеЗаполнено(Сообщение) Тогда - ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение); + ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение); КонецЕсли; КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 84% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index ccccbc5ec..cc1127ed4 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -50,8 +50,8 @@ Для Каждого Вариант Из Варианты Цикл - ЮТФильтрация.УстановитьКонтекст(Вариант.Параметры); - Результат = ЮТФильтрация.ЭтоПодходящееРасширение(Вариант.ИмяРасширения); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); + Результат = ЮТФильтрацияСлужебный.ЭтоПодходящееРасширение(Вариант.ИмяРасширения); ЮТест.ОжидаетЧто(Результат, Вариант.Описание).Равно(Вариант.Результат); КонецЦикла; @@ -113,11 +113,11 @@ Для Каждого Вариант Из Варианты Цикл - ЮТФильтрация.УстановитьКонтекст(Вариант.Параметры); - ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля(); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); ОписаниеМодуля.Имя = Вариант.ИмяМодуля; ОписаниеМодуля.Расширение = РасширениеПоУмолчанию; - Результат = ЮТФильтрация.ЭтоПодходящийМодуль(ОписаниеМодуля); + Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат); КонецЦикла; @@ -139,11 +139,11 @@ Для Каждого Вариант Из Варианты Цикл - ЮТФильтрация.УстановитьКонтекст(Вариант.Параметры); - ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля(); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); ОписаниеМодуля.Имя = Вариант.ИмяМодуля; ОписаниеМодуля.Расширение = РасширениеПоУмолчанию; - Результат = ЮТФильтрация.ЭтоПодходящийМодуль(ОписаниеМодуля); + Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат); КонецЦикла; @@ -155,23 +155,23 @@ // 1 Контексты = ЮТФабрика.КонтекстыВызова(); - ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля(); + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); ОписаниеМодуля.Имя = "ТестовыйМодуль"; ОписаниеМодуля.Расширение = "ТестовоеРасширение"; ОписаниеМодуля.Сервер = Истина; ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; Наборы = Новый Массив(); - Набор = ЮТФабрика.ОписаниеТестовогоНабора("Тесты"); - Тест = ЮТФабрика.ОписаниеТеста("Тест1", "Тест 1", ЮТКоллекции.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение)); + Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора("Тесты"); + Тест = ЮТФабрикаСлужебный.ОписаниеТеста("Тест1", "Тест 1", ЮТКоллекции.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение)); Набор.Тесты.Добавить(Тест); Наборы.Добавить(Набор); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1"); - ЮТФильтрация.УстановитьКонтекст(Параметры); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); - Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); + Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); ЮТест.ОжидаетЧто(Результат, "Результат фильтрации") .Заполнено() .ИмеетТип("Массив"); @@ -189,9 +189,9 @@ // 2 Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); - ЮТФильтрация.УстановитьКонтекст(Параметры); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); - Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); + Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); ТестРезультата = Результат[0].Тесты[0]; ЮТест.ОжидаетЧто(ТестРезультата, "Тест с указанием контекста") .Свойство("Имя").Равно(Тест.Имя) @@ -200,9 +200,9 @@ // 3 Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера"); - ЮТФильтрация.УстановитьКонтекст(Параметры); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); - Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); + Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); ЮТест.ОжидаетЧто(Результат, "Тест с указаниме недоступного контекста") .ИмеетДлину(1); @@ -210,9 +210,9 @@ Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); Параметры.filter.contexts = ЮТКоллекции.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение); - ЮТФильтрация.УстановитьКонтекст(Параметры); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); - Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); + Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); ЮТест.ОжидаетЧто(Результат, "Тест с указаниме контекста и фильтра контекстов") .ИмеетДлину(0); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 77% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index e21a7d239..1abc0c707 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,9 +1,9 @@ - ОМ_ЮТФильтрация + ОМ_ЮТФильтрацияСлужебный ru - О м фильтрация + Фильтрация true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 83% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 1c597fcab..267a928a3 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - Контекст = ЮТКонтекст.ДанныеКонтекста(); + Контекст = ЮТКонтекстСлужебный.ДанныеКонтекста(); Если ЮТКоллекции.ЗначениеСтруктуры(Контекст, ИмяРеквизитаПроверки(), Ложь) Тогда ВызватьИсключение "Проверка чтения состава тестов"; КонецЕсли; @@ -29,10 +29,10 @@ .ДобавитьТест("ИсполняемыеСценарииМодуля") .ДобавитьТестовыйНабор("ЭтоТестовыйМодуль", "Параметризированный, 1,2") .ДобавитьТест("ЭтоТестовыйМодуль") - .СПараметрами("ОМ_ЮТЧитатель", Истина) + .СПараметрами("ОМ_ЮТЧитательСлужебный", Истина) .СПараметрами("ОМ_ЮТУтверждения", Истина) .СПараметрами("ОМ_Мокито", Истина) - .СПараметрами("ЮТЧитатель", Ложь) + .СПараметрами("ЮТЧитательСлужебный", Ложь) .ДобавитьТестовыйНабор("ЗагрузкаТестов") .ДобавитьКлиентскийТест("ЗагрузитьТесты") .ДобавитьТестовыйНабор("ИсполняемыеСценарииМодуляСОшибкойЧтения") @@ -45,16 +45,16 @@ ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); ПараметрыЗапуска.filter.extensions = Неопределено; - ПараметрыЗапуска.filter.modules = ЮТКоллекции.ЗначениеВМассиве("ОМ_ЮТЧитатель"); + ПараметрыЗапуска.filter.modules = ЮТКоллекции.ЗначениеВМассиве("ОМ_ЮТЧитательСлужебный"); - Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска); + Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы") .ИмеетТип("Массив") .ИмеетДлину(1); НаборМодуля = Наборы[0]; - ЮТест.ОжидаетЧто(НаборМодуля, "Набор тестов ОМ_ЮТЧитатель") + ЮТест.ОжидаетЧто(НаборМодуля, "Набор тестов ОМ_ЮТЧитательСлужебный") .ИмеетТип("Структура") .Свойство("МетаданныеМодуля").ИмеетТип("Структура") .Свойство("НаборыТестов").ИмеетТип("Массив"); @@ -63,11 +63,11 @@ ЮТест.ОжидаетЧто(МетаданныеМодуля, "Метаданные модуля") .Заполнено() .ИмеетТип("Структура") - .Свойство("Имя").Равно("ОМ_ЮТЧитатель") + .Свойство("Имя").Равно("ОМ_ЮТЧитательСлужебный") .Свойство("КлиентОбычноеПриложение").Равно(Истина) .Свойство("КлиентУправляемоеПриложение").Равно(Истина) .Свойство("ВызовСервера").Равно(Ложь) - .Свойство("ПолноеИмя").Равно("tests.ОМ_ЮТЧитатель") + .Свойство("ПолноеИмя").Равно("tests.ОМ_ЮТЧитательСлужебный") .Свойство("Сервер").Равно(Ложь); НаборыТестов = НаборМодуля.НаборыТестов; @@ -78,8 +78,8 @@ ЮТест.ОжидаетЧто(НаборыТестов[0], "Набор тестов по умолчанию") .ИмеетТип("Структура") - .Свойство("Имя").Равно("ОМ_ЮТЧитатель") - .Свойство("Представление").Равно("ОМ_ЮТЧитатель") + .Свойство("Имя").Равно("ОМ_ЮТЧитательСлужебный") + .Свойство("Представление").Равно("ОМ_ЮТЧитательСлужебный") .Свойство("Ошибки").ИмеетТип("Массив").НеЗаполнено() .Свойство("Теги").ИмеетТип("Массив").НеЗаполнено() .Свойство("Тесты").ИмеетТип("Массив").ИмеетДлину(1); @@ -98,7 +98,7 @@ ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); ПараметрыЗапуска.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("tests"); - Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска); + Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") .ИмеетДлину(31); @@ -107,15 +107,15 @@ Процедура ИсполняемыеСценарииМодуля() Экспорт МетаданныеМодуля = Новый Структура; - МетаданныеМодуля.Вставить("Имя", "ОМ_ЮТЧитатель"); + МетаданныеМодуля.Вставить("Имя", "ОМ_ЮТЧитательСлужебный"); МетаданныеМодуля.Вставить("КлиентУправляемоеПриложение", Истина); МетаданныеМодуля.Вставить("КлиентОбычноеПриложение", Истина); МетаданныеМодуля.Вставить("Клиент", Ложь); МетаданныеМодуля.Вставить("Сервер", Истина); МетаданныеМодуля.Вставить("ВызовСервера", Ложь); - ЮТФильтрация.УстановитьКонтекст(Новый Структура("filter", Новый Структура)); - ОписаниеМодуля = ЮТЧитатель.ИсполняемыеСценарииМодуля(МетаданныеМодуля); + ЮТФильтрацияСлужебный.УстановитьКонтекст(Новый Структура("filter", Новый Структура)); + ОписаниеМодуля = ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля(МетаданныеМодуля); ЮТест.ОжидаетЧто(ОписаниеМодуля, "ОписаниеМодуля") .ИмеетТип("Структура") @@ -132,8 +132,8 @@ НаборЗагрузкаТестов = Сценарии[2]; ЮТест.ОжидаетЧто(НаборПоУмолчанию, "Набор по умолчанию") - .Свойство("Имя").Равно("ОМ_ЮТЧитатель") - .Свойство("Представление").Равно("ОМ_ЮТЧитатель") + .Свойство("Имя").Равно("ОМ_ЮТЧитательСлужебный") + .Свойство("Представление").Равно("ОМ_ЮТЧитательСлужебный") .Свойство("Теги").ИмеетДлину(0) .Свойство("Тесты").ИмеетДлину(1) .Свойство("Тесты[0].Имя").Равно("ИсполняемыеСценарииМодуля") @@ -158,7 +158,7 @@ КонецПроцедуры Процедура ИсполняемыеСценарииМодуляСОшибкойЧтения() Экспорт - ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля(); + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); ОписаниеМодуля.Имя = "ОМ_ЮТЧитатель"; ОписаниеМодуля.ПолноеИмя = "tests.ОМ_ЮТЧитатель"; ОписаниеМодуля.Расширение = "tests"; @@ -169,21 +169,21 @@ ОписаниеМодуля.Сервер = Истина; #КонецЕсли - ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяРеквизитаПроверки(), Истина); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяРеквизитаПроверки(), Истина); - Результат = ЮТЧитатель.ИсполняемыеСценарииМодуля(ОписаниеМодуля); + Результат = ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля(ОписаниеМодуля); ЮТест.ОжидаетЧто(Результат) .ИмеетТип("Структура") .Свойство("НаборыТестов").ИмеетДлину(1) .Свойство("НаборыТестов[0].Ошибки").ИмеетДлину(1) - .Свойство("НаборыТестов[0].Ошибки[0].ТипОшибки").Равно(ЮТФабрика.ТипыОшибок().ЧтенияТестов) + .Свойство("НаборыТестов[0].Ошибки[0].ТипОшибки").Равно(ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов) ; КонецПроцедуры Процедура ЭтоТестовыйМодуль(ИмяМодуля, ЭтоТестовый) Экспорт - ОписаниеМодуля = ЮТМетаданныеСервер.МетаданныеМодуля(ИмяМодуля); - ЮТест.ОжидаетЧто(ЮТЧитатель.ЭтоТестовыйМодуль(ОписаниеМодуля), "Проверка модуля " + ИмяМодуля) + ОписаниеМодуля = ЮТМетаданныеСлужебныйВызовСервера.МетаданныеМодуля(ИмяМодуля); + ЮТест.ОжидаетЧто(ЮТЧитательСлужебный.ЭтоТестовыйМодуль(ОписаниеМодуля), "Проверка модуля " + ИмяМодуля) .Равно(ЭтоТестовый); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 86% rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index a64df8a18..5c0293bac 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,6 +1,6 @@ - ОМ_ЮТЧитатель + ОМ_ЮТЧитательСлужебный ru Читатель diff --git "a/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 012fea530..8e2bcd7db 100644 --- "a/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -35,7 +35,7 @@ Функция ОписаниеТестовогоМодуля(ИмяМодуля = Неопределено) Экспорт Описание = Новый Структура(); - Описание.Вставить("МетаданныеМодуля", ЮТФабрика.ОписаниеМодуля()); + Описание.Вставить("МетаданныеМодуля", ЮТФабрикаСлужебный.ОписаниеМодуля()); Описание.Вставить("НаборыТестов", Новый Массив); Описание.Вставить("Ошибки", Новый Массив); Описание.Вставить("НастройкиВыполнения", Новый Структура); diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 3a3e9a9af..e91ae50f6 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -35,18 +35,18 @@ CommonModule.ОМ_ЮТест CommonModule.ОМ_ЮТестПереопределяемый CommonModule.ОМ_ЮТЗапросы - CommonModule.ОМ_ЮТИсполнительКлиент - CommonModule.ОМ_ЮТИсполнительКлиентСервер + CommonModule.ОМ_ЮТИсполнительСлужебныйКлиент + CommonModule.ОМ_ЮТИсполнительСлужебныйКлиентСервер CommonModule.ОМ_ЮТКоллекции CommonModule.ОМ_ЮТКонструкторТестовыхДанных CommonModule.ОМ_ЮТМетаданные - CommonModule.ОМ_ЮТОтчет - CommonModule.ОМ_ЮТОтчетAllure + CommonModule.ОМ_ЮТОтчетAllureСлужебный + CommonModule.ОМ_ЮТОтчетСлужебный CommonModule.ОМ_ЮТПодражатель_Банки CommonModule.ОМ_ЮТПодражатель_Компании CommonModule.ОМ_ЮТПодражатель_Люди - CommonModule.ОМ_ЮТПредикатыКлиентСервер - CommonModule.ОМ_ЮТСравнениеКлиентСервер + CommonModule.ОМ_ЮТПредикатыСлужебныйКлиентСервер + CommonModule.ОМ_ЮТСравнениеСлужебныйКлиентСервер CommonModule.ОМ_ЮТСтроки CommonModule.ОМ_ЮТТестовыеДанные CommonModule.ОМ_ЮТТестовыеДанныеСлужебный @@ -54,8 +54,8 @@ CommonModule.ОМ_ЮТТипыДанныхСлужебный CommonModule.ОМ_ЮТУтверждения CommonModule.ОМ_ЮТУтвержденияИБ - CommonModule.ОМ_ЮТФильтрация - CommonModule.ОМ_ЮТЧитатель + CommonModule.ОМ_ЮТФильтрацияСлужебный + CommonModule.ОМ_ЮТЧитательСлужебный CommonModule.ПодпискиНаСобытия CommonModule.Пользователи CommonModule.ПомощникТестированияВызовСервера From 21de0b8c2558afdf483f54f07c865479ac9c2f1b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 12 Mar 2024 00:14:14 +0300 Subject: [PATCH 16/47] #276 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Возможность задавать разные описания для тестов с параметрами * Возможность задавать разные контексты для тестов с параметрами * Разделил "ЮТТесты" на публичный и служебный --- .../Module.bsl" | 14 + .../Module.bsl" | 302 +++++++----------- .../Module.bsl" | 287 +++++++++++++++++ ...0\265\320\261\320\275\321\213\320\271.mdo" | 11 + .../Module.bsl" | 17 + .../Module.bsl" | 6 +- .../src/Configuration/Configuration.mdo | 1 + ...0\270\321\202\320\265\320\273\321\214.mdo" | 1 + .../Module.bsl" | 91 +++++- 9 files changed, 538 insertions(+), 192 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index b85f2dc39..4bd1afce9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -377,6 +377,20 @@ КонецФункции +// Формирует текстовое представление массива. +// Пример результата - "[1, 2, 3]" +// +// Параметры: +// Данные - Массив из Строка +// +// Возвращаемое значение: +// Строка +Функция ПредставлениеМассива(Данные) Экспорт + + Возврат СтрШаблон("[%1]", СтрСоединить(Данные, ", ")); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 0d79ae3b6..7ed943772 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -28,25 +28,10 @@ // ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция ДобавитьТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт - ИсполняемыеСценарии = СценарииМодуля(); - - Если НЕ ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда - ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии"; - КонецЕсли; - - Если ПустаяСтрока(Имя) Тогда - ВызватьИсключение "Имя тестового набора не может быть пустым"; - КонецЕсли; - - Контекст = Контекст(); - НовыйТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); - - ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор); - Контекст.ТекущийНабор = НовыйТестовыйНабор; - Контекст.ТекущийЭлемент = НовыйТестовыйНабор; + ЮТТестыСлужебный.ДобавитьТестовыйНабор(Имя, ТегиСтрокой); Возврат ЮТТесты; @@ -66,25 +51,10 @@ // Контексты - Строка - Контексты, строка перечисления контекстов вызова, разделенных запятой. // Возможные значения см. ЮТФабрика.КонтекстыВызова // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "", Контексты = Неопределено) Экспорт - Контекст = Контекст(); - Набор = Контекст.ТекущийНабор; - - ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор); - ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор); - - Если НЕ (ЭтоИсполняемыеСценарии ИЛИ ЭтоТестовыйНабор) Тогда - ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор"; - КонецЕсли; - - Если ПустаяСтрока(ИмяТестовогоМетода) Тогда - ВызватьИсключение "Имя тестового метода не может быть пустым"; - КонецЕсли; - - Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); - ДобавитьТестВНабор(Контекст, Тест); + ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); Возврат ЮТТесты; @@ -98,10 +68,11 @@ // ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт - ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, КонтекстыВызоваКлиента()); + ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, ЮТТестыСлужебный.КонтекстыВызоваКлиента()); + Возврат ЮТТесты; КонецФункции @@ -114,12 +85,11 @@ // ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт - Режимы = ЮТФабрика.КонтекстыВызова(); - - ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Режимы.Сервер); + КонтекстыВызова = ЮТФабрика.КонтекстыВызова(); + ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, КонтекстыВызова.Сервер); Возврат ЮТТесты; @@ -132,16 +102,10 @@ // Значение - Произвольный - Значение настройки // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция НастройкаИсполнения(ИмяПараметра, Значение) Экспорт - Контекст = Контекст(); - - Если Контекст.ТекущийЭлемент = Неопределено Тогда - ВызватьИсключение "Не инициализированы настройки регистрации тестов"; - КонецЕсли; - - Контекст.ТекущийЭлемент.НастройкиВыполнения.Вставить(ИмяПараметра, Значение); + ЮТТестыСлужебный.НастройкаИсполнения(ИмяПараметра, Значение); Возврат ЮТТесты; @@ -153,10 +117,10 @@ // ВыполнятьВТранзакции - Булево // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция ВТранзакции(ВыполнятьВТранзакции = Истина) Экспорт - НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции); + ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции); Возврат ЮТТесты; @@ -174,10 +138,10 @@ // УдалятьСозданныеДанные - Булево // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция УдалениеТестовыхДанных(УдалятьСозданныеДанные = Истина) Экспорт - НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные); + ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные); Возврат ЮТТесты; @@ -189,10 +153,10 @@ // ВыполнитьПеред - Строка - Имя обработчика события, который будет выполнен вместо основного // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция Перед(ВыполнитьПеред = "") Экспорт - НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред); + ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред); Возврат ЮТТесты; @@ -204,10 +168,10 @@ // ВыполнитьПосле - Строка - Имя обработчика события, который будет выполнен вместо основного // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль Функция После(ВыполнитьПосле = "") Экспорт - НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле); + ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле); Возврат ЮТТесты; @@ -231,7 +195,7 @@ // Параметр10 - Произвольный // // Возвращаемое значение: -// ОбщийМодуль - Этот же модуль, для замыкания +// ОбщийМодуль - Этот же модуль // // Примеры: // @@ -263,159 +227,127 @@ Параметр9, Параметр10); - Контекст = Контекст(); - - Если Контекст.ТекущийЭлемент = Неопределено Тогда - ВызватьИсключение "Не инициализированы настройки регистрации тестов"; - ИначеЕсли НЕ ЭтоОписаниеТеста(Контекст.ТекущийЭлемент) Тогда - ВызватьИсключение "Параметры устанавливаются только для теста"; - КонецЕсли; - - Если Контекст.ТекущийЭлемент.Параметры <> Неопределено Тогда - НоваяНастройка = ЮТКоллекции.СкопироватьСтруктуру(Контекст.ТекущийЭлемент); - ДобавитьТестВНабор(Контекст, НоваяНастройка); - КонецЕсли; - - Контекст.ТекущийЭлемент.Параметры = Параметры; + ЮТТестыСлужебный.СПараметрами(Параметры, Неопределено); Возврат ЮТТесты; КонецФункции -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт - - ИнициализироватьКонтекст(МетаданныеМодуля); - - ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); - -КонецПроцедуры - -Процедура ПослеЧтенияСценариевМодуля() Экспорт - - Контекст = Контекст(); - ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии); - -КонецПроцедуры - -// Описание сценариев модуля +// Устанавливает параметры вызова теста и новый контекст исполнения (клиентский). // -// Возвращаемое значение: -// Структура - см. ИсполняемыеСценарии -Функция СценарииМодуля() Экспорт - - Возврат Контекст().ИсполняемыеСценарии; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Исполняемые сценарии. +// * Если метод вызывается первый раз, то он устанавливает параметры теста. +// * Если второй и последующие, то добавляет новый тест с параметрами. // // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// Параметр1 - Произвольный +// Параметр2 - Произвольный +// Параметр3 - Произвольный +// Параметр4 - Произвольный +// Параметр5 - Произвольный +// Параметр6 - Произвольный +// Параметр7 - Произвольный +// Параметр8 - Произвольный +// Параметр9 - Произвольный +// Параметр10 - Произвольный // // Возвращаемое значение: -// Структура - Исполняемые сценарии: -// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля -// * НастройкиВыполнения- Структура - Настройки исполнения теста -Функция ИсполняемыеСценарии(МетаданныеМодуля) - - Структура = Новый Структура; - Структура.Вставить("ТестовыеНаборы", Новый Массив()); - Структура.Вставить("НастройкиВыполнения", Новый Структура()); - - Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); - Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию - Структура.ТестовыеНаборы.Добавить(Набор); - - Возврат Структура; - -КонецФункции - -Функция КонтекстыВызоваКлиента() - - Режимы = ЮТФабрика.КонтекстыВызова(); - Возврат ЮТКоллекции.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение); - -КонецФункции - -Функция КонтекстыВызоваПоУмолчанию() - - Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля); - -КонецФункции - -Функция ОписаниеТеста(Имя, Знач Представление, ТегиСтрокой, Знач Контексты) - - Если НЕ ЗначениеЗаполнено(Контексты) Тогда - Контексты = КонтекстыВызоваПоУмолчанию(); - ИначеЕсли ТипЗнч(Контексты) = Тип("Строка") Тогда - Контексты = СтрРазделить(Контексты, ", ", Ложь); - КонецЕсли; +// ОбщийМодуль - Этот же модуль +// +//@skip-check method-too-many-params +Функция СПараметрамиНаКлиенте(Параметр1 = "_!%*", + Параметр2 = "_!%*", + Параметр3 = "_!%*", + Параметр4 = "_!%*", + Параметр5 = "_!%*", + Параметр6 = "_!%*", + Параметр7 = "_!%*", + Параметр8 = "_!%*", + Параметр9 = "_!%*", + Параметр10 = "_!%*") Экспорт - Возврат ЮТФабрикаСлужебный.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой); + Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр1, + Параметр2, + Параметр3, + Параметр4, + Параметр5, + Параметр6, + Параметр7, + Параметр8, + Параметр9, + Параметр10); -КонецФункции - -Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) + ЮТТестыСлужебный.СПараметрами(Параметры, ЮТТестыСлужебный.КонтекстыВызоваКлиента()); - Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура") - И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив"); + Возврат ЮТТесты; КонецФункции -Функция ЭтоТестовыйНабор(ТестовыйНабор) +// Устанавливает параметры вызова теста и новый контекст исполнения (серверный). +// +// * Если метод вызывается первый раз, то он устанавливает параметры теста. +// * Если второй и последующие, то добавляет новый тест с параметрами. +// +// Параметры: +// Параметр1 - Произвольный +// Параметр2 - Произвольный +// Параметр3 - Произвольный +// Параметр4 - Произвольный +// Параметр5 - Произвольный +// Параметр6 - Произвольный +// Параметр7 - Произвольный +// Параметр8 - Произвольный +// Параметр9 - Произвольный +// Параметр10 - Произвольный +// +// Возвращаемое значение: +// ОбщийМодуль - Этот же модуль +// +//@skip-check method-too-many-params +Функция СПараметрамиНаСервере(Параметр1 = "_!%*", + Параметр2 = "_!%*", + Параметр3 = "_!%*", + Параметр4 = "_!%*", + Параметр5 = "_!%*", + Параметр6 = "_!%*", + Параметр7 = "_!%*", + Параметр8 = "_!%*", + Параметр9 = "_!%*", + Параметр10 = "_!%*") Экспорт - Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура") - И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив"); + Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр1, + Параметр2, + Параметр3, + Параметр4, + Параметр5, + Параметр6, + Параметр7, + Параметр8, + Параметр9, + Параметр10); -КонецФункции - -Функция ЭтоОписаниеТеста(Описание) + КонтекстыВызова = ЮТФабрика.КонтекстыВызова(); + ЮТТестыСлужебный.СПараметрами(Параметры, КонтекстыВызова.Сервер); - Возврат ТипЗнч(Описание) = Тип("Структура") - И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив"); + Возврат ЮТТесты; КонецФункции -Процедура ДобавитьТестВНабор(Контекст, Тест) - - Контекст.ТекущийНабор.Тесты.Добавить(Тест); - Контекст.ТекущийЭлемент = Тест; - Тест.НомерВНаборе = Контекст.ТекущийНабор.Тесты.Количество(); +// Устанавливает представление объекта, может использоваться как для теста, так и для набора. +// +// Параметры: +// Представление - Строка +// ИспользуяИмя - Булево - Необходимо ли использовать имя объекта при формировании представления. +// Ложь - По умолчанию, представление будет установлено по параметру. +// Истина - Новое представление объекта = "<ИмяОбъект>. <Параметр Представление>" +// +// Возвращаемое значение: +// ОбщийМодуль - Этот же модуль +Функция Представление(Представление, ИспользуяИмя = Ложь) Экспорт -КонецПроцедуры - -#Область Контекст - -Функция Контекст() + ЮТТестыСлужебный.УстановитьПредставление(Представление, ИспользуяИмя); - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов"); + Возврат ЮТТесты; КонецФункции -Процедура ИнициализироватьКонтекст(МетаданныеМодуля) - - ИсполняемыеСценарии = ИсполняемыеСценарии(МетаданныеМодуля); - Набор = ИсполняемыеСценарии.ТестовыеНаборы[0]; - - Контекст = Новый Структура(); - - Контекст.Вставить("МетаданныеМодуля", МетаданныеМодуля); - Контекст.Вставить("ИсполняемыеСценарии", ИсполняемыеСценарии); - Контекст.Вставить("ТекущийНабор", Набор); - Контекст.Вставить("ТекущийЭлемент", Набор); - - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст); - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..7a2b857a8 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,287 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ДобавитьТестовыйНабор(Имя, ТегиСтрокой) Экспорт + + ИсполняемыеСценарии = СценарииМодуля(); + + Если НЕ ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда + ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии"; + КонецЕсли; + + Если ПустаяСтрока(Имя) Тогда + ВызватьИсключение "Имя тестового набора не может быть пустым"; + КонецЕсли; + + Контекст = Контекст(); + НовыйТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); + + ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор); + Контекст.ТекущийНабор = НовыйТестовыйНабор; + Контекст.ТекущийЭлемент = НовыйТестовыйНабор; + +КонецПроцедуры + +Процедура ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты) Экспорт + + Контекст = Контекст(); + Набор = Контекст.ТекущийНабор; + + ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор); + ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор); + + Если НЕ (ЭтоИсполняемыеСценарии ИЛИ ЭтоТестовыйНабор) Тогда + ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор"; + КонецЕсли; + + Если ПустаяСтрока(ИмяТестовогоМетода) Тогда + ВызватьИсключение "Имя тестового метода не может быть пустым"; + КонецЕсли; + + Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); + ДобавитьТестВНабор(Контекст, Тест, Ложь); + +КонецПроцедуры + +Процедура ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой) Экспорт + + ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, КонтекстыВызоваКлиента()); + +КонецПроцедуры + +Процедура ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой) Экспорт + + Режимы = ЮТФабрика.КонтекстыВызова(); + + ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Режимы.Сервер); + +КонецПроцедуры + +Процедура НастройкаИсполнения(ИмяПараметра, Значение) Экспорт + + Контекст = Контекст(); + + Если Контекст.ТекущийЭлемент = Неопределено Тогда + ВызватьИсключение "Не инициализированы настройки регистрации тестов"; + КонецЕсли; + + Контекст.ТекущийЭлемент.НастройкиВыполнения.Вставить(ИмяПараметра, Значение); + +КонецПроцедуры + +Процедура СПараметрами(Параметры, Знач НовыеКонтексты) Экспорт + + Контекст = Контекст(); + + Если Контекст.ТекущийЭлемент = Неопределено Тогда + ВызватьИсключение "Не инициализированы настройки регистрации тестов"; + ИначеЕсли НЕ ЭтоОписаниеТеста(Контекст.ТекущийЭлемент) Тогда + ВызватьИсключение "Параметры устанавливаются только для теста"; + КонецЕсли; + + ЭтоПервыйВызовСПараметрами = Контекст.ТекущийЭлемент.Параметры = Неопределено; + УстановитьНовыйКонтекст = ЗначениеЗаполнено(НовыеКонтексты); + + Если ЭтоПервыйВызовСПараметрами Тогда + Контекст.БазовыйТест = ЮТКоллекции.СкопироватьСтруктуру(Контекст.ТекущийЭлемент); + КонецЕсли; + + Если УстановитьНовыйКонтекст Тогда + НормализованныеКонтексты = НормализованныеКонтексты(НовыеКонтексты); + НовыеКонтексты = ЮТКоллекции.ПересечениеМассивов(Контекст.БазовыйТест.КонтекстВызова, НормализованныеКонтексты); + + Если НЕ ЗначениеЗаполнено(НовыеКонтексты) Тогда + ВызватьИсключение СтрШаблон("Не пересекаются контексты базового теста %1 и устанавливаемые %2", + ЮТКоллекции.ПредставлениеМассива(Контекст.БазовыйТест.КонтекстВызова), + ЮТКоллекции.ПредставлениеМассива(НормализованныеКонтексты)); + КонецЕсли; + КонецЕсли; + + Если НЕ ЭтоПервыйВызовСПараметрами Тогда + НоваяНастройка = ЮТКоллекции.СкопироватьСтруктуру(Контекст.БазовыйТест); + ДобавитьТестВНабор(Контекст, НоваяНастройка, Истина); + КонецЕсли; + + Контекст.ТекущийЭлемент.Параметры = Параметры; + + Если УстановитьНовыйКонтекст Тогда + Контекст.ТекущийЭлемент.КонтекстВызова = НовыеКонтексты; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьПредставление(Представление, ИспользуяИмя) Экспорт + + ТекущийЭлемент = Контекст().ТекущийЭлемент; + Если ИспользуяИмя Тогда + ТекущийЭлемент.Представление = СтрШаблон("%1. %2", ТекущийЭлемент.Имя, Представление); + Иначе + ТекущийЭлемент.Представление = Представление; + КонецЕсли; + +КонецПроцедуры + +Функция КонтекстыВызоваКлиента() Экспорт + + Режимы = ЮТФабрика.КонтекстыВызова(); + Возврат ЮТКоллекции.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение); + +КонецФункции + +// Описание сценариев модуля +// +// Возвращаемое значение: +// Структура - см. ИсполняемыеСценарии +Функция СценарииМодуля() Экспорт + + Возврат Контекст().ИсполняемыеСценарии; + +КонецФункции + +Функция Контекст() Экспорт + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов"); + +КонецФункции + +#Область ОбработчикиСобытий + +Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт + + ИнициализироватьКонтекст(МетаданныеМодуля); + ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); + +КонецПроцедуры + +Процедура ПослеЧтенияСценариевМодуля() Экспорт + + Контекст = Контекст(); + ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Исполняемые сценарии. +// +// Параметры: +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// +// Возвращаемое значение: +// Структура - Исполняемые сценарии: +// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля +// * НастройкиВыполнения- Структура - Настройки исполнения теста +Функция ИсполняемыеСценарии(МетаданныеМодуля) + + Структура = Новый Структура; + Структура.Вставить("ТестовыеНаборы", Новый Массив()); + Структура.Вставить("НастройкиВыполнения", Новый Структура()); + + Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); + Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию + Структура.ТестовыеНаборы.Добавить(Набор); + + Возврат Структура; + +КонецФункции + +Функция КонтекстыВызоваПоУмолчанию() + + Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля); + +КонецФункции + +Функция ОписаниеТеста(Имя, Знач Представление, ТегиСтрокой, Знач Контексты) + + Контексты = НормализованныеКонтексты(Контексты); + + Возврат ЮТФабрикаСлужебный.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой); + +КонецФункции + +Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) + + Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура") + И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив"); + +КонецФункции + +Функция ЭтоТестовыйНабор(ТестовыйНабор) + + Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура") + И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив"); + +КонецФункции + +Функция ЭтоОписаниеТеста(Описание) + + Возврат ТипЗнч(Описание) = Тип("Структура") + И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив"); + +КонецФункции + +Процедура ДобавитьТестВНабор(Контекст, Тест, ЭтоКопия) + + Если НЕ ЭтоКопия Тогда + Контекст.БазовыйТест = Неопределено; + КонецЕсли; + + Контекст.ТекущийНабор.Тесты.Добавить(Тест); + Контекст.ТекущийЭлемент = Тест; + Тест.НомерВНаборе = Контекст.ТекущийНабор.Тесты.Количество(); + +КонецПроцедуры + +Процедура ИнициализироватьКонтекст(МетаданныеМодуля) + + ИсполняемыеСценарии = ИсполняемыеСценарии(МетаданныеМодуля); + Набор = ИсполняемыеСценарии.ТестовыеНаборы[0]; + + Контекст = Новый Структура(); + + Контекст.Вставить("МетаданныеМодуля", МетаданныеМодуля); + Контекст.Вставить("ИсполняемыеСценарии", ИсполняемыеСценарии); + Контекст.Вставить("ТекущийНабор", Набор); + Контекст.Вставить("ТекущийЭлемент", Набор); + Контекст.Вставить("БазовыйТест", Неопределено); + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст); + +КонецПроцедуры + +Функция НормализованныеКонтексты(ПараметрКонтексты) + + Если НЕ ЗначениеЗаполнено(ПараметрКонтексты) Тогда + Контексты = КонтекстыВызоваПоУмолчанию(); + ИначеЕсли ТипЗнч(ПараметрКонтексты) = Тип("Строка") Тогда + Контексты = СтрРазделить(ПараметрКонтексты, ", ", Ложь); + Иначе + Контексты = ПараметрКонтексты; + КонецЕсли; + + Возврат Контексты; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..81b67ec05 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТТестыСлужебный + + ru + Тесты служебный + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index b468e1828..858409ad9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -87,6 +87,13 @@ КонецФункции +// Возвращает перечисление возможные уровнией исполнения тестрв. +// +// Возвращаемое значение: +// ФиксированнаяСтруктура - Уровни исполнения: +// * Модуль - Строка +// * НаборТестов - Строка +// * Тест - Строка Функция УровниИсполнения() Экспорт Уровни = Новый Структура; @@ -185,6 +192,16 @@ КонецФункции +// Параметры создания объектов, используется при загрузке макетов. +// +// Параметры: +// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи +// ФикцияОбязательныхПолей - Булево - Фикция обязательных полей +// +// Возвращаемое значение: +// Структура - Параметры создания объектов: +// * ФикцияОбязательныхПолей - Булево +// * ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи Функция ПараметрыСозданияОбъектов(Знач ПараметрыЗаписи = Неопределено, ФикцияОбязательныхПолей = Ложь) Экспорт Если ПараметрыЗаписи = Неопределено Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 394d04ea9..e8c93a339 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -60,7 +60,7 @@ ЭтоТестовыйМодуль = Истина; ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); - ЮТТесты.ПередЧтениемСценариевМодуля(МетаданныеМодуля); + ЮТТестыСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); ПолноеИмяМетода = МетаданныеМодуля.Имя + "." + ИмяМетодаСценариев(); Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода); @@ -88,8 +88,8 @@ ИначеЕсли ЭтоТестовыйМодуль Тогда - ЮТТесты.ПослеЧтенияСценариевМодуля(); - Сценарии = ЮТТесты.СценарииМодуля(); + ЮТТестыСлужебный.ПослеЧтенияСценариевМодуля(); + Сценарии = ЮТТестыСлужебный.СценарииМодуля(); УдалитьНастройкиМодуляИзПервогоНабора(Сценарии); // TODO Нужен рефакторинг diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index ed7ccac7a..32373ef9f 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -114,6 +114,7 @@ CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера CommonModule.ЮТТестовыеДанныеСлужебныйТаблицыЗначений CommonModule.ЮТТесты + CommonModule.ЮТТестыСлужебный CommonModule.ЮТТипыДанныхСлужебный CommonModule.ЮТУтверждения CommonModule.ЮТУтвержденияИБ diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" index d2a2b8e68..fc20d748a 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" @@ -15,6 +15,7 @@ CommonModule.ЮТИсполнительСлужебныйКлиент CommonModule.ЮТИсполнительСлужебныйКлиентСервер CommonModule.ЮТПараметрыЗапускаСлужебный + CommonModule.ЮТТестыСлужебный CommonModule.ЮТФильтрацияСлужебный CommonModule.ЮТЧитательСлужебный CommonModule.ЮТЧитательСлужебныйВызовСервера diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index e37f4b338..dae584987 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -22,6 +22,9 @@ ЮТТесты .ДобавитьТест("СПараметрами") + .ДобавитьТест("Представление") + .ДобавитьТест("СПараметрамиНаКлиенте") + .ДобавитьТест("СПараметрамиНаСервере") ; КонецПроцедуры @@ -29,7 +32,11 @@ Процедура ПередКаждымТестом() Экспорт ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); - ЮТТесты.ПередЧтениемСценариевМодуля(ОписаниеМодуля); + ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; + ОписаниеМодуля.КлиентОбычноеПриложение = Истина; + ОписаниеМодуля.Сервер = Истина; + + ЮТТестыСлужебный.ПередЧтениемСценариевМодуля(ОписаниеМодуля); КонецПроцедуры @@ -44,7 +51,7 @@ .СПараметрами(3) ; - ЮТест.ОжидаетЧто(Контекст().ТекущийНабор.Тесты) + ЮТест.ОжидаетЧто(ТестыТекущегоНабора()) .ИмеетДлину(5) .Свойство("[0].Параметры").ЭтоНеопределено() .Свойство("[1].Параметры").ИмеетДлину(3) @@ -58,13 +65,89 @@ КонецПроцедуры +Процедура Представление() Экспорт + + ЮТТесты + .ДобавитьТестовыйНабор("Набор1").Представление("Представление набора") + .ДобавитьТест("Тест1").Представление("Представление теста") + .ДобавитьТест("Тест2") + .СПараметрами(1).Представление("Представление теста 2", Истина) + .СПараметрами(2).Представление("Представление теста 3") + ; + + ЮТест.ОжидаетЧто(ТекущийНабор()) + .Свойство("Представление").Равно("Представление набора") + .Свойство("Тесты[0].Представление").Равно("Представление теста") + .Свойство("Тесты[1].Представление").Равно("Тест2. Представление теста 2") + .Свойство("Тесты[2].Представление").Равно("Представление теста 3"); + +КонецПроцедуры + +Процедура СПараметрамиНаКлиенте() Экспорт + + КонтекстыВызова = ЮТФабрика.КонтекстыВызова(); + ЮТТесты + .ДобавитьКлиентскийТест("Тест1") + .СПараметрамиНаКлиенте(1) + .ДобавитьТест("Тест2") + .СПараметрамиНаКлиенте(1, 2, 3) + .СПараметрами(2) + ; + + ЮТест.ОжидаетЧто(ТестыТекущегоНабора()) + .ИмеетДлину(3) + .Свойство("[0].Параметры").ИмеетДлину(1) + .Свойство("[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.КлиентУправляемоеПриложение, КонтекстыВызова.КлиентОбычноеПриложение)) + .Свойство("[1].Параметры").ИмеетДлину(3) + .Свойство("[1].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.КлиентУправляемоеПриложение, КонтекстыВызова.КлиентОбычноеПриложение)) + .Свойство("[2].КонтекстВызова").ИмеетДлину(3) + ; + + ЮТест.ОжидаетЧто(ЮТТесты.ДобавитьСерверныйТест("Тест3")) + .Метод("СПараметрамиНаКлиенте").Параметр(1) + .ВыбрасываетИсключение("Не пересекаются контексты базового теста [Сервер] и устанавливаемые [КлиентУправляемоеПриложение, КлиентОбычноеПриложение]"); + +КонецПроцедуры + +Процедура СПараметрамиНаСервере() Экспорт + + КонтекстыВызова = ЮТФабрика.КонтекстыВызова(); + ЮТТесты + .ДобавитьСерверныйТест("Тест1") + .СПараметрамиНаСервере(1) + .ДобавитьТест("Тест2") + .СПараметрамиНаСервере(1, 2, 3) + .СПараметрами(2) + ; + + ЮТест.ОжидаетЧто(ТестыТекущегоНабора()) + .ИмеетДлину(3) + .Свойство("[0].Параметры").ИмеетДлину(1) + .Свойство("[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.Сервер)) + .Свойство("[1].Параметры").ИмеетДлину(3) + .Свойство("[1].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.Сервер)) + .Свойство("[2].КонтекстВызова").ИмеетДлину(3) + ; + + ЮТест.ОжидаетЧто(ЮТТесты.ДобавитьКлиентскийТест("Тест3")) + .Метод("СПараметрамиНаСервере").Параметр(1) + .ВыбрасываетИсключение("Не пересекаются контексты базового теста [КлиентУправляемоеПриложение, КлиентОбычноеПриложение] и устанавливаемые [Сервер]"); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции -Функция Контекст() +Функция ТекущийНабор() + + Возврат ЮТТестыСлужебный.Контекст().ТекущийНабор; + +КонецФункции + +Функция ТестыТекущегоНабора() - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов"); + Возврат ТекущийНабор().Тесты; КонецФункции From 2ecb292d1d24e4e70735a278c4e98a00556875a4 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 12 Mar 2024 01:17:14 +0300 Subject: [PATCH 17/47] =?UTF-8?q?=D0=A1=D0=B3=D1=80=D1=83=D0=BF=D0=BF?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D1=83=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B8=D0=BA=D0=B0=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 342 +++++++++--------- 1 file changed, 171 insertions(+), 171 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index ed2e69ddb..aa88ec6c2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -18,8 +18,6 @@ #Область ПрограммныйИнтерфейс -#Область УтвержденияBDD - // Инициализирует модуль для проверки утверждений. // // * Запоминает проверяемое значение. @@ -194,474 +192,478 @@ КонецФункции -// Проверяет наличие свойства у объекта/его свойства. -// В отличии от метода см. Свойство не позиционируется на указанное свойство. +#Область УтвержденияПредикатов + +// Проверяет установленное значение Контекста (или его свойство) на равенство ожидаемому. +// +// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. +// Для сериализуемых объектов проверяется равенство по значению. +// // Параметры: -// ИмяСвойства - Строка - Наименование свойства объекта. -// Возможно обращение к вложенным свойствам через точку +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) равно этому значению // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки); + ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); + ПроверитьПредикат(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); Возврат ЮТУтверждения; КонецФункции -// Проверяет отсутствие свойства у объекта/его свойства. -// В отличии от метода см. НетСвойства не сбрасывает позиционирование проверки. +// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство ожидаемому. +// +// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения +// Для сериализуемых значений проверяется равенство по значению // // Параметры: -// ИмяСвойства - Строка - Наименование свойства объекта. -// Возможно обращение к вложенным свойствам через точку +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ равно этому значению // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки); + ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); + ПроверитьПредикат(ЮТПредикаты.Выражения().НеРавно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); Возврат ЮТУтверждения; КонецФункции -// Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства). +// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше ожидаемого. // // Параметры: -// ОжидаемоеЗначение - Структура - Проверяемый объект должен иметь свойства указанные в параметре +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ИмеетСвойстваРавные(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст); - ОбъектыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение); +Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт + ПроверитьПредикат(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на равенство `Истина)`. -// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. +// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше или равно ожидаемому. // // Параметры: +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения или равно ему // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоИстина(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Истина, Ложь, "является истиной"); + ПроверитьПредикат(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство)на НЕ равенство `Истина`. -// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. +// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше ожидаемого. // // Параметры: +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоНеИстина(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Истина, Истина, "является истиной"); + ПроверитьПредикат(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на равенство `Ложь`. -// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. +// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше или равно ожидаемому. // // Параметры: +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения или равно ему // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Ложь, Ложь, "является ложью"); + ПроверитьПредикат(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство `Ложь`. -// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. +// Проверяет установленное значение Контекста (или его свойство) на "заполненность" (обертка для `ЗначениеЗаполнено`). // // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоНеЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Ложь, Истина, "является ложью"); + ПроверитьПредикат(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на равенство ожидаемому. -// -// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. -// Для сериализуемых объектов проверяется равенство по значению. +// Проверяет установленное значение Контекста (или его свойство) на "не заполненность" (обертка для `ЗначениеЗаполнено`) // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) равно этому значению // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт - ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); - ПроверитьПредикат(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); + ПроверитьПредикат(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство ожидаемому. -// -// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения -// Для сериализуемых значений проверяется равенство по значению +// Проверяет установленное значение Контекста (или его свойство) на соответствие переданному типу. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ равно этому значению +// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) имеет данный тип // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); - ПроверитьПредикат(ЮТПредикаты.Выражения().НеРавно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); + ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше ожидаемого. +// Проверяет установленное значение Контекста (или его свойство) на несоответствие переданному типу. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения +// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше или равно ожидаемому. +// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. +// +// Проверка поддерживается для следующих типов проверяемого значения: +// +// - Строка - по вхождению +// - Массив - по наличию равного элемента +// - Структура - по наличию равного значения +// - Соответствие - по наличию равного значения +// - СписокЗначений - по наличию равного значения +// - ФиксированныйМассив - по наличию равного значения +// - ФиксированнаяСтруктура - по наличию равного значения +// - ФиксированноеСоответствие - по наличию равного значения +// - Произвольный итерируемый объект для проверки на соответствие предикату +// +// При сравнении также проверяется совпадение типов // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения или равно ему +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) содержит указанное значение +// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт + + Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда + ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Ложь); + Иначе + ПроверитьПредикат(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки); + КонецЕсли; - ПроверитьПредикат(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше ожидаемого. +// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. +// +// Проверка поддерживается для следующих типов проверяемого значения: +// +// - Строка - по отсутствию вхождению +// - Массив - по отсутствию равного элемента +// - Структура - по отсутствию равного значения +// - Соответствие - по отсутствию равного значения +// - СписокЗначений - по отсутствию равного значения +// - ФиксированныйМассив - по отсутствию равного значения +// - ФиксированнаяСтруктура - по отсутствию равного значения +// - ФиксированноеСоответствие - по отсутствию равного значения +// - Произвольный итерируемый объект для проверки на соответствие предикату +// +// При сравнении также проверяется совпадение типов // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ содержит указанное +// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт + + Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда + ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Истина); + Иначе + ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки); + КонецЕсли; - ПроверитьПредикат(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше или равно ожидаемому. +// Проверяет установленное значение Контекста (или его свойство) на наличие подстроки, соответствующей регулярному выражению // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения или равно ему +// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция СодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикат(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "заполненность" (обертка для `ЗначениеЗаполнено`). +// Проверяет установленное значение Контекста (или его свойство) на отсутствие подстроки, соответствующей регулярному выражению // // Параметры: +// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция НеСодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки); + ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "не заполненность" (обертка для `ЗначениеЗаполнено`) -// +// Проверяет наличие свойства у объекта/его свойства. +// В отличии от метода см. Свойство не позиционируется на указанное свойство. // Параметры: +// ИмяСвойства - Строка - Наименование свойства объекта. +// Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки); + ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "существование", т.е. отличие от `Null` и `Неопределено`. +// Проверяет отсутствие свойства у объекта/его свойства. +// В отличии от метода см. НетСвойства не сбрасывает позиционирование проверки. // // Параметры: +// ИмяСвойства - Строка - Наименование свойства объекта. +// Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция Существует(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - ПроверитьСуществование(Контекст, Ложь); + ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "не существование", т.е. оно равно `Null` или `Неопределено`. +#КонецОбласти + +// Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства). // // Параметры: +// ОжидаемоеЗначение - Структура - Проверяемый объект должен иметь свойства указанные в параметре // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция НеСуществует(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ИмеетСвойстваРавные(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - ПроверитьСуществование(Контекст, Истина); + ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст); + ОбъектыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение); + Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) не равенство `Неопределено`. +// Проверяет установленное значение Контекста (или его свойство) на равенство `Истина)`. +// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ЭтоИстина(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Неопределено, Ложь, "является неопределено"); + СравнитьЗначения(Контекст, Истина, Ложь, "является истиной"); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на не равенство `Неопределено`. +// Проверяет установленное значение Контекста (или его свойство)на НЕ равенство `Истина`. +// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоНеНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ЭтоНеИстина(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Неопределено, Истина, "является неопределено"); + СравнитьЗначения(Контекст, Истина, Истина, "является истиной"); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на равенство `Null`. +// Проверяет установленное значение Контекста (или его свойство) на равенство `Ложь`. +// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоNull(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ЭтоЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Null, Ложь, "является null"); + СравнитьЗначения(Контекст, Ложь, Ложь, "является ложью"); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на не равенство `Null`. +// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство `Ложь`. +// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ЭтоНеNull(Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ЭтоНеЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - СравнитьЗначения(Контекст, Null, Истина, "является null"); + СравнитьЗначения(Контекст, Ложь, Истина, "является ложью"); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на соответствие переданному типу. +// Проверяет установленное значение Контекста (или его свойство) на "существование", т.е. отличие от `Null` и `Неопределено`. // // Параметры: -// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) имеет данный тип // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция Существует(Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); + Контекст = Контекст(); + УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); + ПроверитьСуществование(Контекст, Ложь); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на несоответствие переданному типу. +// Проверяет установленное значение Контекста (или его свойство) на "не существование", т.е. оно равно `Null` или `Неопределено`. // // Параметры: -// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция НеСуществует(Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); + Контекст = Контекст(); + УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); + ПроверитьСуществование(Контекст, Истина); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. -// -// Проверка поддерживается для следующих типов проверяемого значения: -// -// - Строка - по вхождению -// - Массив - по наличию равного элемента -// - Структура - по наличию равного значения -// - Соответствие - по наличию равного значения -// - СписокЗначений - по наличию равного значения -// - ФиксированныйМассив - по наличию равного значения -// - ФиксированнаяСтруктура - по наличию равного значения -// - ФиксированноеСоответствие - по наличию равного значения -// - Произвольный итерируемый объект для проверки на соответствие предикату -// -// При сравнении также проверяется совпадение типов +// Проверяет установленное значение Контекста (или его свойство) не равенство `Неопределено`. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) содержит указанное значение -// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - - Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда - ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Ложь); - Иначе - ПроверитьПредикат(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки); - КонецЕсли; +Функция ЭтоНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт + Контекст = Контекст(); + УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); + СравнитьЗначения(Контекст, Неопределено, Ложь, "является неопределено"); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. -// -// Проверка поддерживается для следующих типов проверяемого значения: -// -// - Строка - по отсутствию вхождению -// - Массив - по отсутствию равного элемента -// - Структура - по отсутствию равного значения -// - Соответствие - по отсутствию равного значения -// - СписокЗначений - по отсутствию равного значения -// - ФиксированныйМассив - по отсутствию равного значения -// - ФиксированнаяСтруктура - по отсутствию равного значения -// - ФиксированноеСоответствие - по отсутствию равного значения -// - Произвольный итерируемый объект для проверки на соответствие предикату -// -// При сравнении также проверяется совпадение типов +// Проверяет установленное значение Контекста (или его свойство) на не равенство `Неопределено`. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ содержит указанное -// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - - Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда - ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Истина); - Иначе - ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки); - КонецЕсли; +Функция ЭтоНеНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт + Контекст = Контекст(); + УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); + СравнитьЗначения(Контекст, Неопределено, Истина, "является неопределено"); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на наличие подстроки, соответствующей регулярному выражению +// Проверяет установленное значение Контекста (или его свойство) на равенство `Null`. // // Параметры: -// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция СодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ЭтоNull(Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); + Контекст = Контекст(); + УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); + СравнитьЗначения(Контекст, Null, Ложь, "является null"); Возврат ЮТУтверждения; КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на отсутствие подстроки, соответствующей регулярному выражению +// Проверяет установленное значение Контекста (или его свойство) на не равенство `Null`. // // Параметры: -// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания -Функция НеСодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт +Функция ЭтоНеNull(Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); + Контекст = Контекст(); + УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); + СравнитьЗначения(Контекст, Null, Истина, "является null"); Возврат ЮТУтверждения; КонецФункции @@ -1299,8 +1301,6 @@ #КонецОбласти -#КонецОбласти - #Область СлужебныйПрограммныйИнтерфейс // Сбросить контекст. From 9ddf90f0f6c7ab21c62db5f90f8abdbf779a6cd9 Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Mon, 18 Mar 2024 09:07:21 +0300 Subject: [PATCH 18/47] Create feature template --- ISSUE_TEMPLATE/feature | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 ISSUE_TEMPLATE/feature diff --git a/ISSUE_TEMPLATE/feature b/ISSUE_TEMPLATE/feature new file mode 100644 index 000000000..9558f21f1 --- /dev/null +++ b/ISSUE_TEMPLATE/feature @@ -0,0 +1,16 @@ +--- +name: Новая функциональность +about: Добавление новой функциональности в движок +title: '[NEW]' +assignees: '' + +--- + +## Описание сценария (кейса) использования, применения + + +## Вариант реализации новой функциональности + + +## Дополнительная информация + From 33e67a7b63532080d0766cb284a77eded7afe5af Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Mon, 18 Mar 2024 09:09:54 +0300 Subject: [PATCH 19/47] Create bug template --- ISSUE_TEMPLATE/bug | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 ISSUE_TEMPLATE/bug diff --git a/ISSUE_TEMPLATE/bug b/ISSUE_TEMPLATE/bug new file mode 100644 index 000000000..4ccc13ef7 --- /dev/null +++ b/ISSUE_TEMPLATE/bug @@ -0,0 +1,29 @@ +--- +name: Ошибка +about: Регистрация обнаруженной ошибки +title: '[BUG]' +labels: type/bug +assignees: '' + +--- + +**Версия движка** + + +**Версия платформы** + + +**Операционная система** + + +**Описание ошибки** + + +**Пример кода** + + +**Скриншоты** + + +**Дополнительная информация** + From 0d0eb4454d6db9891789462dafca92131ae1f1c8 Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Mon, 18 Mar 2024 09:12:03 +0300 Subject: [PATCH 20/47] mv templates --- {ISSUE_TEMPLATE => .github/ISSUE_TEMPLATE}/bug | 0 {ISSUE_TEMPLATE => .github/ISSUE_TEMPLATE}/feature | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {ISSUE_TEMPLATE => .github/ISSUE_TEMPLATE}/bug (100%) rename {ISSUE_TEMPLATE => .github/ISSUE_TEMPLATE}/feature (100%) diff --git a/ISSUE_TEMPLATE/bug b/.github/ISSUE_TEMPLATE/bug similarity index 100% rename from ISSUE_TEMPLATE/bug rename to .github/ISSUE_TEMPLATE/bug diff --git a/ISSUE_TEMPLATE/feature b/.github/ISSUE_TEMPLATE/feature similarity index 100% rename from ISSUE_TEMPLATE/feature rename to .github/ISSUE_TEMPLATE/feature From 1842fdc8d30f2fbbd5a46a62e121740e8b0e277d Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Mon, 18 Mar 2024 09:18:01 +0300 Subject: [PATCH 21/47] add MD ext --- .github/ISSUE_TEMPLATE/{bug => bug.md} | 0 .github/ISSUE_TEMPLATE/{feature => feature.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{bug => bug.md} (100%) rename .github/ISSUE_TEMPLATE/{feature => feature.md} (100%) diff --git a/.github/ISSUE_TEMPLATE/bug b/.github/ISSUE_TEMPLATE/bug.md similarity index 100% rename from .github/ISSUE_TEMPLATE/bug rename to .github/ISSUE_TEMPLATE/bug.md diff --git a/.github/ISSUE_TEMPLATE/feature b/.github/ISSUE_TEMPLATE/feature.md similarity index 100% rename from .github/ISSUE_TEMPLATE/feature rename to .github/ISSUE_TEMPLATE/feature.md From 974738eeef71fa34310f4ff398c3a5e04a58e509 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 21 Mar 2024 01:08:50 +0300 Subject: [PATCH 22/47] #282 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Рефакторинг работы с ошибками --- .../Module.bsl" | 2 +- .../Module.bsl" | 51 -------- .../Module.bsl" | 42 ++++++ ...1\210\320\270\320\261\320\276\320\272.mdo" | 11 ++ .../Module.bsl" | 122 ++++++++++++++++-- .../Module.bsl" | 4 +- .../Module.bsl" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 19 --- .../src/Configuration/Configuration.mdo | 1 + .../Module.bsl" | 62 +++++++++ ...1\210\320\270\320\261\320\276\320\272.mdo" | 7 + .../Module.bsl" | 4 +- tests/src/Configuration/Configuration.mdo | 1 + 14 files changed, 242 insertions(+), 90 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 384cfcc99..b58cdce4b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -337,7 +337,7 @@ Попытка Схема.УстановитьТекстЗапроса(СтрШаблон("ВЫБРАТЬ %1 ИЗ %2 КАК %3", СтрСоединить(Реквизиты, ","), ИмяТаблицы, ПсевдонимТаблицы)); Исключение - ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки("Не удалось получить типы реквизитов отбора. + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Не удалось получить типы реквизитов отбора. |Возможно имена реквизитов заданы неверно"); ВызватьИсключение; КонецПопытки; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index cb0b2817d..7152c1461 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -162,18 +162,6 @@ КонецФункции -// КонтекстОшибки -// Возвращает служебный контекст, содержит дополнительные детали ошибки теста -// -// Возвращаемое значение: -// Неопределено, Структура - Контекст ошибки, см. ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки -Функция КонтекстОшибки() Экспорт - - //@skip-check constructor-function-return-section - Возврат ЗначениеКонтекста(ИмяКонтекстаОшибки()); - -КонецФункции - // КонтекстПроверки // Возвращает служебный контекста, данные выполняемой проверки // Возвращаемое значение: @@ -239,20 +227,6 @@ КонецФункции -// КонтекстОшибки -// Возвращает служебный контекст, содержит дополнительные детали ошибки теста -// Параметры: -// ПолучитьССервера - Булево - Получить значение из серверного контекста -// -// Возвращаемое значение: -// Неопределено, Массив из Строка- Детали ошибки -Функция КонтекстДеталиОшибки(ПолучитьССервера = Ложь) Экспорт - - //@skip-check constructor-function-return-section - Возврат ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ПолучитьССервера); - -КонецФункции - Функция ОписаниеКонтекста() Экспорт Описание = Новый Структура; @@ -261,13 +235,6 @@ КонецФункции -Процедура УстановитьКонтекстОшибки() Экспорт - - ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки(); - УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), ДанныеОшибки); - -КонецПроцедуры - Процедура УстановитьКонтекстУтверждений(Знач ДанныеКонтекста) Экспорт УстановитьЗначениеКонтекста(ИмяКонтекстаУтверждений(), ДанныеКонтекста); @@ -310,12 +277,6 @@ КонецПроцедуры -Процедура УстановитьКонтекстДеталиОшибки(Знач ДанныеКонтекста) Экспорт - - УстановитьЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ДанныеКонтекста); - -КонецПроцедуры - Процедура УдалитьКонтекст() Экспорт #Если Клиент Тогда @@ -329,12 +290,6 @@ #Область СлужебныеПроцедурыИФункции -Функция ИмяКонтекстаОшибки() - - Возврат "ДанныеОшибки"; - -КонецФункции - Функция ИмяКонтекстаУтверждений() Возврат "КонтекстУтверждения"; @@ -377,10 +332,4 @@ КонецФункции -Функция ИмяКонтекстаДеталиОшибки() - - Возврат "ДеталиОшибки"; - -КонецФункции - #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" new file mode 100644 index 000000000..e6bf5b496 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -0,0 +1,42 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область ПрограммныйИнтерфейс + +Процедура ДобавитьДополнительныеДанныеОшибки(Описание, Данные) Экспорт + + ЮТРегистрацияОшибокСлужебный.ДобавитьДополнительныеДанныеОшибки(Описание, Данные); + +КонецПроцедуры + +// Добавляет пяснение возникшей ошибки, которое будет довлено в отчет. +// Используется перед выбросом исключения, чтобы добавить полезной информации об ошибке, но при этом не ломать стек. +// +// Параметры: +// Пояснение - Строка - Пояснение +Процедура ДобавитьПояснениеОшибки(Пояснение) Экспорт + + ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(Пояснение); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" new file mode 100644 index 000000000..38a107d6d --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" @@ -0,0 +1,11 @@ + + + ЮТРегистрацияОшибок + + ru + Регистрация ошибок + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index ed3a237e1..34fc36996 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -109,7 +109,7 @@ // ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки Процедура СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке, ОписаниеПроверки = Неопределено) Экспорт - СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); + СтруктураОшибки = КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Ложь; ВызватьОшибкуИсполнения(ИнформацияОбОшибке, ОписаниеПроверки); @@ -155,7 +155,7 @@ Процедура Пропустить(Сообщение) Экспорт - СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); + СтруктураОшибки = КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Ложь; СообщениеОбОшибке = СообщениеОбОшибке(Сообщение, ПрефиксОшибкиПропуска()); @@ -309,7 +309,7 @@ Процедура УстановитьДанныеОшибкиСравнения(ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт - СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); + СтруктураОшибки = КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Истина; СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); @@ -319,7 +319,7 @@ Процедура УстановитьДанныеОшибкиУтверждения(ПроверяемоеЗначение) Экспорт - СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); + СтруктураОшибки = КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Истина; СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); @@ -355,7 +355,7 @@ Процедура ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт - ОписаниеКонтекстаОшибки = ЮТФабрикаСлужебный.ОписаниеКонтекстаОшибки(); + ОписаниеКонтекстаОшибки = ОписаниеКонтекстаОшибки(); ОписаниеКонтекстаОшибки.ПроверяемоеЗначение = ПроверяемоеЗначение; ОписаниеКонтекстаОшибки.ОжидаемоеЗначение = ОжидаемоеЗначение; ОписаниеКонтекстаОшибки.ОшибкаУтверждения = Истина; @@ -368,7 +368,7 @@ Процедура ДобавитьПояснениеОшибки(Пояснение) Экспорт - Детали = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(); + Детали = КонтекстДеталиОшибки(); Установить = Детали = Неопределено; Если Установить Тогда @@ -378,7 +378,7 @@ Детали.Добавить(Пояснение); Если Установить Тогда - ЮТКонтекстСлужебный.УстановитьКонтекстДеталиОшибки(Детали); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), Детали); КонецЕсли; КонецПроцедуры @@ -387,6 +387,101 @@ #Область СлужебныеПроцедурыИФункции +#Область Контекст + +// Контекст ошибки. +// +// Возвращаемое значение: +// см. ОписаниеКонтекстаОшибки +Функция КонтекстОшибки() Экспорт + + Контекст = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаОшибки()); + + Если Контекст = Неопределено Тогда + Контекст = УстановитьКонтекстОшибки(); + КонецЕсли; + + //@skip-check constructor-function-return-section + Возврат Контекст; + +КонецФункции + +Функция КонтекстДеталиОшибки() Экспорт + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки()); + +КонецФункции + +Функция КлиентСерверныйКонтекстОшибки() + + Контекст = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаОшибки()); +#Если НЕ Сервер Тогда + + СерверныйКонтекст = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаОшибки(), Истина); + Если СерверныйКонтекст <> Неопределено Тогда + + Для Каждого Элемент Из СерверныйКонтекст.Пояснения Цикл + ДобавитьПояснениеОшибки(Элемент); + КонецЦикла; + + Для Каждого Элемент Из СерверныйКонтекст.ДополнительныеДанные Цикл + ДобавитьДополнительныеДанныеОшибки(Элемент.Описание, Элемент.Данные); + КонецЦикла; + + КонецЕсли; + +#КонецЕсли + + Возврат Контекст; + +КонецФункции + +Функция УстановитьКонтекстОшибки() Экспорт + + ДанныеОшибки = ОписаниеКонтекстаОшибки(); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), ДанныеОшибки); + + Возврат ДанныеОшибки; + +КонецФункции + +// ОписаниеКонтекстаОшибки +// Возвращает описание деталей/расшифровки ошибки +// Возвращаемое значение: +// Структура - Детали ошибки: +// * ОшибкаУтверждения - Булево - Признак, это ошибка проверки утверждения +// * ПроверяемоеЗначение - Произвольный - Фактическое значение +// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение +// * Сообщение - Строка +// * ДополнительныеДанные - Массив из Произвольный +// * Пояснения - Массив из Произвольный +Функция ОписаниеКонтекстаОшибки() Экспорт + + Описание = Новый Структура("ПроверяемоеЗначение, ОжидаемоеЗначение"); + Описание.Вставить("ОшибкаУтверждения", Ложь); + Описание.Вставить("Сообщение", ""); + Описание.Вставить("ДополнительныеДанные", Новый Массив()); + Описание.Вставить("Пояснения", Новый Массив()); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +Функция ИмяКонтекстаОшибки() + + Возврат "ДанныеОшибки"; + +КонецФункции + +Функция ИмяКонтекстаДеталиОшибки() + + Возврат "ДеталиОшибки"; + +КонецФункции + +#КонецОбласти + #Область КонструкторыОписанийОшибки Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки) @@ -447,7 +542,7 @@ ДанныеОшибки.Стек = СтекОшибки(Ошибка); ДобавитьСообщенияПользователю(ДанныеОшибки); - СтруктураОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); + СтруктураОшибки = КонтекстОшибки(); Если СтруктураОшибки <> Неопределено И СтруктураОшибки.ОшибкаУтверждения Тогда ДанныеОшибки.ПроверяемоеЗначение = СтруктураОшибки.ПроверяемоеЗначение; @@ -565,19 +660,22 @@ КонецФункции -Процедура ДобавитьСообщенияПользователю(ДанныеОшибки) +Процедура ДобавитьСообщенияПользователю(Контекст) #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда Сообщения = ЮТКоллекции.ВыгрузитьЗначения(ПолучитьСообщенияПользователю(Истина), "Текст"); Если Сообщения.Количество() Тогда - ДанныеОшибки.Стек = СтрШаблон("%1 - |Сообщения пользователю: - | %2", ДанныеОшибки.Стек, СтрСоединить(Сообщения, Символы.ПС)); + ДобавитьДополнительныеДанныеОшибки("Сообщения пользователю", Сообщения); КонецЕсли; #КонецЕсли КонецПроцедуры +Функция ТекстДополнительныеДанные(ДополнительныеДанные) + Возврат СтрШаблон("%1: + | %2", ДополнительныеДанные.Описание, СтрСоединить(ДополнительныеДанные.Данные, Символы.ПС + Символы.Таб)); +КонецФункции + Процедура ВызватьОшибкуИсполнения(Знач ИнформацияОбОшибке, ОписаниеПроверки) ТекстОшибки = ИнформациюОбОшибкеВСтроку(ИнформацияОбОшибке); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 97ab37f81..9f5a5cdc0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -341,8 +341,8 @@ Попытка Результат = РегулярныеВыражения.Совпадает(Строка(ПроверяемаяСтрока), РегулярноеВыражение); Исключение - ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки("Ошибка проверки строки по шаблону " + РегулярноеВыражение); - ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(РегулярныеВыражения.ОписаниеОшибки); + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка проверки строки по шаблону " + РегулярноеВыражение); + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(РегулярныеВыражения.ОписаниеОшибки); ВызватьИсключение; КонецПопытки; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 5f96c07ce..17cac5956 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -318,7 +318,7 @@ Исключение - ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект))); + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект))); ВызватьИсключение; КонецПопытки; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index aa88ec6c2..645b6ce61 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -42,8 +42,8 @@ Контекст.ОбъектПроверки.Значение = ПроверяемоеЗначение; Контекст.ПрефиксОшибки = Сообщение; + СброситьКонтекст(); ЮТКонтекстСлужебный.УстановитьКонтекстУтверждений(Контекст); - ЮТКонтекстСлужебный.УстановитьКонтекстОшибки(); Возврат ЮТУтверждения; @@ -1308,7 +1308,7 @@ Процедура СброситьКонтекст() Экспорт ЮТКонтекстСлужебный.УстановитьКонтекстУтверждений(Неопределено); - ЮТКонтекстСлужебный.УстановитьКонтекстОшибки(); + ЮТРегистрацияОшибокСлужебный.УстановитьКонтекстОшибки(); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index cbab7fa34..d918eba53 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -279,25 +279,6 @@ КонецФункции -// ОписаниеКонтекстаОшибки -// Возвращает описание деталей/расшифровки ошибки -// Возвращаемое значение: -// Структура - Детали ошибки: -// * ОшибкаУтверждения - Булево - Признак, это ошибка проверки утверждения -// * ПроверяемоеЗначение - Произвольный - Фактическое значение -// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение -// * Сообщение - Строка -Функция ОписаниеКонтекстаОшибки() Экспорт - - Описание = Новый Структура("ПроверяемоеЗначение, ОжидаемоеЗначение"); - Описание.Вставить("ОшибкаУтверждения", Ложь); - Описание.Вставить("Сообщение", ""); - - //@skip-check constructor-function-return-section - Возврат Описание; - -КонецФункции - // ОписаниеМодуля // Возвращает структуру описания модуля // Возвращаемое значение: diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 32373ef9f..178da2482 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -102,6 +102,7 @@ CommonModule.ЮТПреобразованияСлужебный CommonModule.ЮТПроверкиСлужебный CommonModule.ЮТРасширенияСлужебный + CommonModule.ЮТРегистрацияОшибок CommonModule.ЮТРегистрацияОшибокСлужебный CommonModule.ЮТСлужебныйПовторногоИспользования CommonModule.ЮТСобытияСлужебный diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" new file mode 100644 index 000000000..8553bd57d --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -0,0 +1,62 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("ДобавитьПояснениеОшибки") + ; + +КонецПроцедуры + +Процедура ДобавитьПояснениеОшибки() Экспорт + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), Неопределено); + + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Пояснение"); + + ЮТест.ОжидаетЧто(ЮТРегистрацияОшибокСлужебный.КонтекстОшибки()) + .Заполнено() + .Свойство("Пояснения") + .Заполнено() + .ИмеетДлину(1) + .Содержит("Пояснение"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ИмяКонтекстаОшибки() + + Возврат "ДанныеОшибки"; + +КонецФункции + +Функция ОшибкаВыполнения() + + Тест = Новый Структура("Ошибки, ПолноеИмяМетода", Новый Массив(), "Тест"); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Неопределено); + Возврат Тест.Ошибки[0]; + +КонецФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" new file mode 100644 index 000000000..10b655835 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТРегистрацияОшибок + true + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 3175f67c0..e5adf7a43 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -2467,7 +2467,7 @@ ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение); ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); - ДанныеОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); + ДанныеОшибки = ЮТРегистрацияОшибокСлужебный.КонтекстОшибки(); Сообщение = Неопределено; @@ -2492,7 +2492,7 @@ Процедура ПроверитьДанныеОшибкиУтверждения(Знач ПроверяемоеЗначение) ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение); - ДанныеОшибки = ЮТКонтекстСлужебный.КонтекстОшибки(); + ДанныеОшибки = ЮТРегистрацияОшибокСлужебный.КонтекстОшибки(); Сообщение = Неопределено; diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 9aa265a37..c233f203e 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -47,6 +47,7 @@ CommonModule.ОМ_ЮТПодражатель_Компании CommonModule.ОМ_ЮТПодражатель_Люди CommonModule.ОМ_ЮТПредикатыСлужебныйКлиентСервер + CommonModule.ОМ_ЮТРегистрацияОшибок CommonModule.ОМ_ЮТСравнениеСлужебныйКлиентСервер CommonModule.ОМ_ЮТСтроки CommonModule.ОМ_ЮТТестовыеДанные From 5959f5f40bc551abfc6ee4da765f4e36f63bf452 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 21 Mar 2024 01:09:03 +0300 Subject: [PATCH 23/47] #282 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Сбор лога выполнения теста --- .../Module.bsl" | 8 +- .../Module.bsl" | 84 ++++++++++++++++++ ...0\265\320\261\320\275\321\213\320\271.mdo" | 11 +++ .../Module.bsl" | 6 -- .../Module.bsl" | 86 ++++++++----------- .../Module.bsl" | 9 +- .../Module.bsl" | 20 +++++ .../src/Configuration/Configuration.mdo | 1 + .../Module.bsl" | 37 ++++++-- 9 files changed, 198 insertions(+), 64 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 7152c1461..ce8875bb8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -112,13 +112,17 @@ // Возвращает структуру, в которой можно хранить данные используемые в тесте // Данные живут в рамках одного теста, но доступны в обработчиках событий `ПередКаждымТестом` и `ПослеКаждогоТеста` // Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеКаждогоТеста` +// +// Параметры: +// ПолучитьССервера - Булево - Получить контекст с сервера +// // Возвращаемое значение: // - Структура - Контекст теста // - Неопределено - Если метод вызывается за рамками теста -Функция КонтекстТеста() Экспорт +Функция КонтекстТеста(ПолучитьССервера = Ложь) Экспорт //@skip-check constructor-function-return-section - Возврат ЗначениеКонтекста(ИмяКонтекстаТеста()); + Возврат ЗначениеКонтекста(ИмяКонтекстаТеста(), ПолучитьССервера); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..84ee7fb97 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,84 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ДобавитьСообщение(Текст) Экспорт + + ДобавитьЗапись("[INF] " + Текст); + +КонецПроцедуры + +Процедура ДобавитьОшибку(Текст) Экспорт + + ДобавитьЗапись("[ERR] " + Текст); + +КонецПроцедуры + +Процедура ДобавитьПредупреждение(Текст) Экспорт + + ДобавитьЗапись("[WRN] " + Текст); + +КонецПроцедуры + +Функция Записи() Экспорт + + Если ЮТест.КонтекстТеста() = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Лог = ЮТКоллекции.ЗначениеСтруктуры(ЮТест.КонтекстТеста(), "Лог"); +#Если Сервер Тогда + Возврат Лог; +#Иначе + СерверныйКонтекст = ЮТКонтекстСлужебный.КонтекстТеста(Истина); + СерверныйЛог = ЮТКоллекции.ЗначениеСтруктуры(СерверныйКонтекст, "Лог"); + + Если Лог = Неопределено Тогда + Лог = СерверныйЛог; + ИначеЕсли СерверныйЛог <> Неопределено Тогда + ЮТКоллекции.ДополнитьМассив(Лог, СерверныйЛог); + КонецЕсли; +#КонецЕсли + + Возврат Лог; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ДобавитьЗапись(Текст) + + Если ЮТест.КонтекстТеста() = Неопределено Тогда + Возврат; + КонецЕсли; + + Ошибки = Неопределено; + + Если НЕ ЮТест.КонтекстТеста().Свойство("Лог", Ошибки) Тогда + Ошибки = Новый Массив(); + ЮТест.КонтекстТеста().Вставить("Лог", Ошибки); + КонецЕсли; + + Ошибки.Добавить(Текст); + +КонецПроцедуры + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..bc94391e8 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТЛогИсполненияТестаСлужебный + + ru + Лог исполнения теста служебный + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index e6bf5b496..c2ad89f6b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -18,12 +18,6 @@ #Область ПрограммныйИнтерфейс -Процедура ДобавитьДополнительныеДанныеОшибки(Описание, Данные) Экспорт - - ЮТРегистрацияОшибокСлужебный.ДобавитьДополнительныеДанныеОшибки(Описание, Данные); - -КонецПроцедуры - // Добавляет пяснение возникшей ошибки, которое будет довлено в отчет. // Используется перед выбросом исключения, чтобы добавить полезной информации об ошибке, но при этом не ломать стек. // diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 34fc36996..6137e5154 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -406,33 +406,9 @@ КонецФункции -Функция КонтекстДеталиОшибки() Экспорт +Функция КонтекстДеталиОшибки(ПолучитьССервера = Ложь) Экспорт - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки()); - -КонецФункции - -Функция КлиентСерверныйКонтекстОшибки() - - Контекст = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаОшибки()); -#Если НЕ Сервер Тогда - - СерверныйКонтекст = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаОшибки(), Истина); - Если СерверныйКонтекст <> Неопределено Тогда - - Для Каждого Элемент Из СерверныйКонтекст.Пояснения Цикл - ДобавитьПояснениеОшибки(Элемент); - КонецЦикла; - - Для Каждого Элемент Из СерверныйКонтекст.ДополнительныеДанные Цикл - ДобавитьДополнительныеДанныеОшибки(Элемент.Описание, Элемент.Данные); - КонецЦикла; - - КонецЕсли; - -#КонецЕсли - - Возврат Контекст; + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ПолучитьССервера); КонецФункции @@ -487,10 +463,10 @@ Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки) #Если Сервер Тогда - Детали = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(Истина); + Детали = КонтекстДеталиОшибки(Истина); #Иначе - ДеталиСервер = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(Истина); - ДеталиКлиент = ЮТКонтекстСлужебный.КонтекстДеталиОшибки(); + ДеталиСервер = КонтекстДеталиОшибки(Истина); + ДеталиКлиент = КонтекстДеталиОшибки(); Если ЗначениеЗаполнено(ДеталиКлиент) И ЗначениеЗаполнено(ДеталиСервер) Тогда ЮТКоллекции.ДополнитьМассив(ДеталиСервер, ДеталиКлиент); @@ -505,7 +481,7 @@ #КонецЕсли Если ЗначениеЗаполнено(Детали) Тогда - ЮТКонтекстСлужебный.УстановитьКонтекстДеталиОшибки(Новый Массив()); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), Неопределено); Детали.Добавить(Сообщение); Сообщение = СтрСоединить(Детали, Символы.ПС); @@ -517,19 +493,11 @@ ДанныеОшибки.Стек = СтекОшибки(Ошибка); КонецЕсли; ДанныеОшибки.ТипОшибки = ТипОшибки; - ДобавитьСообщенияПользователю(ДанныеОшибки); - Возврат ДанныеОшибки; + ДобавитьСообщенияПользователю(); + ДобавитьЛогТеста(ДанныеОшибки); -КонецФункции - -Функция СтекОшибки(Ошибка) - - Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда - Возврат ПодробноеПредставлениеОшибки(Ошибка); - Иначе - Возврат Неопределено; - КонецЕсли; + Возврат ДанныеОшибки; КонецФункции @@ -538,9 +506,10 @@ Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиУтверждений()); ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиСравнения(Описание); - ДанныеОшибки.Стек = СтекОшибки(Ошибка); - ДобавитьСообщенияПользователю(ДанныеОшибки); + + ДобавитьСообщенияПользователю(); + ДобавитьЛогТеста(ДанныеОшибки); СтруктураОшибки = КонтекстОшибки(); @@ -559,10 +528,32 @@ ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(Описание); + ДобавитьСообщенияПользователю(); + ДобавитьЛогТеста(ДанныеОшибки); + Возврат ДанныеОшибки; КонецФункции +Процедура ДобавитьЛогТеста(ДанныеОшибки) + + Лог = ЮТЛогИсполненияТестаСлужебный.Записи(); + Если Лог <> Неопределено Тогда + ЮТКоллекции.ДополнитьМассив(ДанныеОшибки.Лог, Лог); + КонецЕсли; + +КонецПроцедуры + +Функция СтекОшибки(Ошибка) + + Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда + Возврат ПодробноеПредставлениеОшибки(Ошибка); + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + Функция ИзвлечьТекстОшибки(Ошибка, Префикс) ДлинаПрефикса = СтрДлина(Префикс); @@ -660,13 +651,12 @@ КонецФункции -Процедура ДобавитьСообщенияПользователю(Контекст) +Процедура ДобавитьСообщенияПользователю() #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда - Сообщения = ЮТКоллекции.ВыгрузитьЗначения(ПолучитьСообщенияПользователю(Истина), "Текст"); - Если Сообщения.Количество() Тогда - ДобавитьДополнительныеДанныеОшибки("Сообщения пользователю", Сообщения); - КонецЕсли; + Для Каждого Сообщение Из ПолучитьСообщенияПользователю(Истина) Цикл + ЮТест.ДобавитьСообщение(Сообщение.Текст); + КонецЦикла; #КонецЕсли КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d918eba53..c7d3fb6a5 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -311,16 +311,21 @@ // Возвращает базовую структуру ошибки // // Параметры: -// Сообщение - Строка +// Сообщение - Строка - Описание ошибки // // Возвращаемое значение: // Структура - Описание возникшей ошибки: // * Сообщение - Строка - Описание возникшей ошибки // * Стек - Строка - Стек возникшей ошибки // * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрикаСлужебный.ТипыОшибок +// * Лог - Массив из Строка Функция ОписаниеВозникшейОшибки(Сообщение) Экспорт - Возврат Новый Структура("Сообщение, Стек, ТипОшибки", Сообщение, "", ""); + Описание = Новый Структура("Стек, ТипОшибки", "", ""); + Описание.Вставить("Сообщение", Сообщение); + Описание.Вставить("Лог", Новый Массив); + + Возврат Описание; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 3f5c90539..2f63ffd29 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -183,4 +183,24 @@ КонецПроцедуры +// Добавляет сообщение в лог исполнения теста. +// +// Параметры: +// ТекстСообщения - Строка - Текст сообщения +Процедура ДобавитьСообщение(ТекстСообщения) Экспорт + + ЮТЛогИсполненияТестаСлужебный.ДобавитьСообщение(ТекстСообщения); + +КонецПроцедуры + +// Добавляет предупреждение в лог исполнения теста. +// +// Параметры: +// ТекстПредупреждения - Строка - Текст предупреждения +Процедура ДобавитьПредупреждение(ТекстПредупреждения) Экспорт + + ЮТЛогИсполненияТестаСлужебный.ДобавитьПредупреждение(ТекстПредупреждения); + +КонецПроцедуры + #КонецОбласти diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 178da2482..f1e5b5e79 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -77,6 +77,7 @@ CommonModule.ЮТЛогирование CommonModule.ЮТЛогированиеСлужебный CommonModule.ЮТЛогированиеСлужебныйВызовСервера + CommonModule.ЮТЛогИсполненияТестаСлужебный CommonModule.ЮТЛокальСлужебный CommonModule.ЮТМетаданные CommonModule.ЮТМетаданныеСлужебныйВызовСервера diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index 8553bd57d..79cbda8de 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -22,25 +22,43 @@ ЮТТесты .ДобавитьТест("ДобавитьПояснениеОшибки") + .ДобавитьТест("ВыводЛогаИсполнения") ; КонецПроцедуры Процедура ДобавитьПояснениеОшибки() Экспорт - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), Неопределено); - ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Пояснение"); - ЮТест.ОжидаетЧто(ЮТРегистрацияОшибокСлужебный.КонтекстОшибки()) + Ошибка = ОшибкаВыполнения(); + ЮТест.ОжидаетЧто(Ошибка) .Заполнено() - .Свойство("Пояснения") + .Свойство("Сообщение") .Заполнено() - .ИмеетДлину(1) .Содержит("Пояснение"); КонецПроцедуры +Процедура ВыводЛогаИсполнения() Экспорт + + ЮТест.ДобавитьСообщение("Сообщение 1"); + ЮТест.ДобавитьСообщение("Сообщение 2"); + ЮТест.ДобавитьПредупреждение("Предупреждение 1"); + + Ошибка = ОшибкаВыполнения(); + + ЮТест.ОжидаетЧто(Ошибка) + .Заполнено() + .Свойство("Лог") + .Заполнено() + .ИмеетДлину(3) + .Содержит("[INF] Сообщение 1") + .Содержит("[INF] Сообщение 2") + .Содержит("[WRN] Предупреждение 1"); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -53,8 +71,15 @@ Функция ОшибкаВыполнения() + Попытка + //@skip-check module-unused-local-variable + Результат = 1/0; + Исключение + Ошибка = ИнформацияОбОшибке(); + КонецПопытки; + Тест = Новый Структура("Ошибки, ПолноеИмяМетода", Новый Массив(), "Тест"); - ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Неопределено); + ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка); Возврат Тест.Ошибки[0]; КонецФункции From e59e12bf8560855179525656b3094bb4ef4969fb Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 21 Mar 2024 01:11:52 +0300 Subject: [PATCH 24/47] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 267a928a3..62c3449ec 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -100,7 +100,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(31); + .ИмеетДлину(33); КонецПроцедуры From 8dd3955cdbabf9f450de037cd6690b5605f82e63 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 21 Mar 2024 01:20:11 +0300 Subject: [PATCH 25/47] =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D1=80=D1=80=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B=20=D1=8D?= =?UTF-8?q?=D0=BA=D1=81=D0=BF=D0=BE=D1=80=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 6137e5154..33f3de2cc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -406,12 +406,6 @@ КонецФункции -Функция КонтекстДеталиОшибки(ПолучитьССервера = Ложь) Экспорт - - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ПолучитьССервера); - -КонецФункции - Функция УстановитьКонтекстОшибки() Экспорт ДанныеОшибки = ОписаниеКонтекстаОшибки(); @@ -421,6 +415,12 @@ КонецФункции +Функция КонтекстДеталиОшибки(ПолучитьССервера = Ложь) + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ПолучитьССервера); + +КонецФункции + // ОписаниеКонтекстаОшибки // Возвращает описание деталей/расшифровки ошибки // Возвращаемое значение: @@ -431,7 +431,7 @@ // * Сообщение - Строка // * ДополнительныеДанные - Массив из Произвольный // * Пояснения - Массив из Произвольный -Функция ОписаниеКонтекстаОшибки() Экспорт +Функция ОписаниеКонтекстаОшибки() Описание = Новый Структура("ПроверяемоеЗначение, ОжидаемоеЗначение"); Описание.Вставить("ОшибкаУтверждения", Ложь); @@ -661,11 +661,6 @@ КонецПроцедуры -Функция ТекстДополнительныеДанные(ДополнительныеДанные) - Возврат СтрШаблон("%1: - | %2", ДополнительныеДанные.Описание, СтрСоединить(ДополнительныеДанные.Данные, Символы.ПС + Символы.Таб)); -КонецФункции - Процедура ВызватьОшибкуИсполнения(Знач ИнформацияОбОшибке, ОписаниеПроверки) ТекстОшибки = ИнформациюОбОшибкеВСтроку(ИнформацияОбОшибке); @@ -674,7 +669,7 @@ КонецПроцедуры -Функция СообщениеОбОшибке(ТекстОшибки, ПрефиксТипаОшибки, ОписаниеПроверки = Неопределено) Экспорт +Функция СообщениеОбОшибке(ТекстОшибки, ПрефиксТипаОшибки, ОписаниеПроверки = Неопределено) СообщениеОбОшибке = ДобавитьОписания(ТекстОшибки, ОписаниеПроверки); From f3377cc987a1b35dddc111eb80651cef6c70816b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 20 Mar 2024 02:34:30 +0300 Subject: [PATCH 26/47] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BE=D0=BA=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Template.txt" | 158 ++++++++++++ ...1\210\320\270\320\261\320\272\320\265.mdo" | 9 + .../src/Configuration/Configuration.mdo | 1 + .../ObjectModule.bsl" | 4 +- .../Form.form" | 172 +++++++++++-- .../Module.bsl" | 231 +++++++++++++++++- .../Module.bsl" | 2 +- 8 files changed, 543 insertions(+), 36 deletions(-) create mode 100644 "exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" create mode 100644 "exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 72dd907cf..d4c875462 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -685,7 +685,7 @@ Функция КонструкторОбъектаXDTO(ИмяТипа, ПространствоИмен, Фабрика = Неопределено) Экспорт Обработка = Обработки.ЮТКонструкторОбъектаXDTO.Создать(); - Обработка.Инициализировать(ИмяТипа, ПространствоИмен); + Обработка.Инициализировать(ИмяТипа, ПространствоИмен, Фабрика); Возврат Обработка; diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" new file mode 100644 index 000000000..b37bc9519 --- /dev/null +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" @@ -0,0 +1,158 @@ + + + + + + + + TREE_CONTENT + + + \ No newline at end of file diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265.mdo" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265.mdo" new file mode 100644 index 000000000..a18381e7b --- /dev/null +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265.mdo" @@ -0,0 +1,9 @@ + + + ЮТИнформацияОбОшибке + + ru + Информация об ошибке + + TextDocument + diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index f1e5b5e79..7e2265b54 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -49,6 +49,7 @@ CommonTemplate.ЮТ_СловарьПодражателя_Люди_МужскиеФамилии_ru CommonTemplate.ЮТRegEx1CAddin CommonTemplate.ЮТYaxUnitAddIn + CommonTemplate.ЮТИнформацияОбОшибке CommonTemplate.ЮТОписаниеМетаданных CommonModule.Мокито CommonModule.МокитоОбучение diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index dfcbb5a14..bf9e71457 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -262,11 +262,9 @@ Для Каждого Свойство Из Тип.Свойства Цикл Если НеЗаполнено(Свойство, Пакет[Свойство.Имя]) Тогда - Продолжить; + УстановитьСлучайноеЗначениеСвойства(Пакет, Свойство, Уровень); КонецЕсли; - УстановитьСлучайноеЗначениеСвойства(Пакет, Свойство, Уровень); - КонецЦикла; КонецПроцедуры diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index d6a021287..5cd10b658 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -75,7 +75,7 @@ ЗапуститьВсеТесты - 126 + 21 <key>ru</key> <value>Все тесты</value> @@ -87,7 +87,7 @@ </userVisible> <extendedTooltip> <name>ЗапуститьВсеТестыРасширеннаяПодсказка</name> - <id>127</id> + <id>22</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -148,7 +148,7 @@ </userVisible> <extendedTooltip> <name>ЗамерВремениВыполненияРасширеннаяПодсказка</name> - <id>129</id> + <id>23</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -889,6 +889,56 @@ <items xsi:type="form:FormGroup"> <name>ГруппаДанныеОшибок</name> <id>83</id> + <items xsi:type="form:FormField"> + <name>ФорматВыводаОшибки</name> + <id>26</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>ФорматВыводаОшибки</segments> + </dataPath> + <handlers> + <event>OnChange</event> + <name>ФорматВыводаОшибкиПриИзменении</name> + </handlers> + <extendedTooltip> + <name>ФорматВыводаОшибкиРасширеннаяПодсказка</name> + <id>24</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ФорматВыводаОшибкиКонтекстноеМеню</name> + <id>25</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <autoFill>true</autoFill> + </contextMenu> + <type>RadioButtonField</type> + <groupHorizontalAlign>Right</groupHorizontalAlign> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:RadioButtonsFieldExtInfo"> + <radioButtonsType>Tumbler</radioButtonsType> + </extInfo> + </items> <items xsi:type="form:Table"> <name>ДеревоТестовОшибки</name> <id>59</id> @@ -967,10 +1017,6 @@ <horizontalAlign>Left</horizontalAlign> <autoFill>true</autoFill> </autoCommandBar> - <handlers> - <event>OnActivateRow</event> - <name>ДеревоТестовОшибкиПриАктивизацииСтроки</name> - </handlers> <searchStringAddition> <visible>true</visible> <enabled>true</enabled> @@ -1129,7 +1175,6 @@ <items xsi:type="form:FormField"> <name>ДеревоТестовОшибкиСтек</name> <id>75</id> - <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> @@ -1179,6 +1224,59 @@ </borderColor> </extInfo> </items> + <items xsi:type="form:FormField"> + <name>ОтображениеОшибки</name> + <id>144</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <dataPath xsi:type="form:DataPath"> + <segments>ОтображениеОшибки</segments> + </dataPath> + <titleLocation>None</titleLocation> + <extendedTooltip> + <name>ОтображениеОшибкиРасширеннаяПодсказка</name> + <id>146</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>ОтображениеОшибкиКонтекстноеМеню</name> + <id>145</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + </contextMenu> + <type>HTMLDocumentField</type> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:HtmlFieldExtInfo"> + <width>50</width> + <autoMaxWidth>true</autoMaxWidth> + <height>10</height> + <autoMaxHeight>true</autoMaxHeight> + <horizontalStretch>true</horizontalStretch> + <verticalStretch>true</verticalStretch> + <borderColor xsi:type="core:ColorRef"> + <color>Style.FormBackColor</color> + </borderColor> + </extInfo> + </items> <items xsi:type="form:FormGroup"> <name>РаботаСОшибкой</name> <id>110</id> @@ -1370,6 +1468,7 @@ <event>OnOpen</event> <name>ПриОткрытии</name> </handlers> + <autoSaveDataInSettings>Use</autoSaveDataInSettings> <autoTitle>true</autoTitle> <autoUrl>true</autoUrl> <group>Vertical</group> @@ -1664,6 +1763,23 @@ <common>true</common> </edit> </columns> + <columns> + <name>Лог</name> + <title> + <key>ru</key> + <value>Лог</value> + + 129 + + ValueList + + + true + + + true + + @@ -1685,17 +1801,32 @@ - СтатистикаВыполненияВеса + ЗагрузитьТестыПриОткрытии + + <key>ru</key> + <value>Загрузить тесты при открытии</value> + + 125 + + Boolean + + + true + + + true + + + + ОтображениеОшибки <key>ru</key> - <value>Статистика выполнения веса</value> + <value>Отображение ошибки</value> - 118 + 27 String - - 10 - + true @@ -1705,14 +1836,15 @@ - ЗагрузитьТестыПриОткрытии + ФорматВыводаОшибки <key>ru</key> - <value>Загрузить тесты при открытии</value> + <value>Формат вывода ошибки</value> - 125 + 126 - Boolean + String + true @@ -1720,6 +1852,10 @@ true + + ФорматВыводаОшибки + + true Сравнить diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 2938d0595..f5f7bca26 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -37,6 +37,10 @@ Параметры.Свойство("ЗагрузитьТесты", ЗагрузитьТестыПриОткрытии); + Для Каждого Формат Из ФорматыВыводаОшибки() Цикл + Элементы.ФорматВыводаОшибки.СписокВыбора.Добавить(Формат.Ключ, Формат.Ключ); + КонецЦикла; + КонецПроцедуры &НаКлиенте @@ -49,6 +53,19 @@ ЗагрузитьТесты(); КонецЕсли; + ПереключитьВыводОшибки(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ФорматВыводаОшибкиПриИзменении(Элемент) + + ПереключитьВыводОшибки(); + КонецПроцедуры #КонецОбласти @@ -68,17 +85,7 @@ Элементы.ДеревоТестовОшибки.ТекущаяСтрока = Данные.Ошибки[0].ПолучитьИдентификатор(); КонецЕсли; - ОбновитьДоступностьСравнения(); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоТестовОшибки - -&НаКлиенте -Процедура ДеревоТестовОшибкиПриАктивизацииСтроки(Элемент) - + ОтобразитьДанныеОшибки(); ОбновитьДоступностьСравнения(); КонецПроцедуры @@ -90,13 +97,14 @@ &НаКлиенте Процедура Сравнить(Команда) - Данные = Элементы.ДеревоТестовОшибки.ТекущиеДанные; + Данные = ДанныеТекущейОшибки(); Если Данные = Неопределено ИЛИ ПустаяСтрока(Данные.ОжидаемоеЗначение) И ПустаяСтрока(Данные.ФактическоеЗначение) Тогда Возврат; КонецЕсли; ПараметрыФормы = Новый Структура("ОжидаемоеЗначение, ФактическоеЗначение", Данные.ОжидаемоеЗначение, Данные.ФактическоеЗначение); + ОткрытьФорму("Обработка.ЮТЮнитТесты.Форма.Сравнение", ПараметрыФормы, ЭтотОбъект, , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); КонецПроцедуры @@ -246,11 +254,13 @@ &НаКлиентеНаСервереБезКонтекста Процедура ЗаполнитьОшибки(СтрокаДерева, ОписаниеОбъекта) + СтрокаДерева.Ошибки.Очистить(); Для Каждого Ошибка Из ОписаниеОбъекта.Ошибки Цикл СтрокаОшибки = СтрокаДерева.Ошибки.Добавить(); СтрокаОшибки.Сообщение = Ошибка.Сообщение; СтрокаОшибки.Стек = Ошибка.Стек; + СтрокаОшибки.Лог.ЗагрузитьЗначения(Ошибка.Лог); СтрокаОшибки.ОжидаемоеЗначение = ЮТКоллекции.ЗначениеСтруктуры(Ошибка, "ОжидаемоеЗначение"); СтрокаОшибки.ФактическоеЗначение = ЮТКоллекции.ЗначениеСтруктуры(Ошибка, "ПроверяемоеЗначение"); @@ -692,14 +702,32 @@ КонецФункции #КонецОбласти + &НаКлиенте Процедура ОбновитьДоступностьСравнения() - Данные = Элементы.ДеревоТестовОшибки.ТекущиеДанные; + Данные = ДанныеТекущейОшибки();; Элементы.Сравнить.Доступность = Данные <> Неопределено И (НЕ ПустаяСтрока(Данные.ОжидаемоеЗначение) ИЛИ НЕ ПустаяСтрока(Данные.ФактическоеЗначение)); КонецПроцедуры +&НаКлиенте +Функция ДанныеТекущейОшибки() + + Данные = Элементы.ДеревоТестовОшибки.ТекущиеДанные; + + Если Данные <> Неопределено Или ФорматВыводаОшибки = ФорматыВыводаОшибки().Текст Тогда + Возврат Данные; + КонецЕсли; + + ДанныеТеста = Элементы.ДеревоТестов.ТекущиеДанные; + + Если ДанныеТеста <> Неопределено И ЗначениеЗаполнено(ДанныеТеста.Ошибки) Тогда + Возврат ДанныеТеста.Ошибки[0]; + КонецЕсли; + +КонецФункции + &НаКлиенте Процедура ПослеВодаКоличестваИтерацийЗамера(Результат, ДополнительныеПараметры) Экспорт @@ -770,4 +798,181 @@ КонецПроцедуры +#Область ВыводОшибки + +&НаКлиенте +Процедура ПереключитьВыводОшибки() + + Форматы = ФорматыВыводаОшибки(); + Если НЕ ЗначениеЗаполнено(ФорматВыводаОшибки) Тогда + ФорматВыводаОшибки = Форматы.HTML; + КонецЕсли; + + Элементы.ДеревоТестовОшибки.Видимость = ФорматВыводаОшибки = Форматы.Текст; + Элементы.ДеревоТестовОшибкиСтек.Видимость = ФорматВыводаОшибки = Форматы.Текст; + Элементы.ОтображениеОшибки.Видимость = ФорматВыводаОшибки = Форматы.HTML; + + Если ФорматВыводаОшибки = Форматы.HTML Тогда + ОтобразитьДанныеОшибки(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция ФорматыВыводаОшибки() + + Форматы = Новый Структура(); + Форматы.Вставить("Текст", "Текст"); + Форматы.Вставить("HTML", "HTML"); + + Возврат Форматы; + +КонецФункции + +&НаКлиенте +Процедура ОтобразитьДанныеОшибки(); + + ДанныеТеста = Элементы.ДеревоТестов.ТекущиеДанные; + Если ДанныеТеста = Неопределено Или НЕ ЗначениеЗаполнено(ДанныеТеста.Ошибки) Тогда + Если ЭтоАдресВременногоХранилища(ОтображениеОшибки) Тогда + УдалитьИзВременногоХранилища(ОтображениеОшибки); + КонецЕсли; + ОтображениеОшибки = Неопределено; + Возврат; + КонецЕсли; + + ОтображениеОшибки = ДеревоОшибкиHTML(ОтображениеОшибки, ДанныеТеста.Ошибки); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ДеревоОшибкиHTML(Знач АдресХранилища, Знач Ошибки) + + Если ЭтоАдресВременногоХранилища(АдресХранилища) Тогда + УдалитьИзВременногоХранилища(АдресХранилища); + КонецЕсли; + + Блоки = Новый Массив(); + + Для Каждого Ошибка Из Ошибки Цикл + ВывестиДанныеОшибки(Блоки, Ошибка); + КонецЦикла; + + ШаблонПредставленияОшибки = ЮТОбщий.Макет("ОбщийМакет.ЮТИнформацияОбОшибке").ПолучитьТекст(); + ПредставленияОшибки = СтрЗаменить(ШаблонПредставленияОшибки, "TREE_CONTENT", СтрСоединить(Блоки, Символы.ПС)); + + Возврат ПолучитьНавигационнуюСсылкуИнформационнойБазы() + "/"+ ПоместитьВоВременноеХранилище(ПредставленияОшибки, Новый УникальныйИдентификатор); + +КонецФункции + +&НаСервереБезКонтекста +Процедура ВывестиДанныеОшибки(Блоки, Ошибка) + + Блоки.Добавить(СтрШаблон("
+ |
+ | + | + |
%1
+ |
+ |", ЗаменитьСпецСимволы(Ошибка.Сообщение))); + Если ЗначениеЗаполнено(Ошибка.Лог) Или ЗначениеЗаполнено(Ошибка.Стек) Тогда + Блоки.Добавить("
"); + ВывестиЛог(Блоки, Ошибка.Лог); + ВывестиСтек(Блоки, Ошибка.Стек); + Блоки.Добавить("
"); + КонецЕсли; + Блоки.Добавить("
"); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ВывестиЛог(Блоки, Лог) + + Если НЕ ЗначениеЗаполнено(Лог) Тогда + Возврат; + КонецЕсли; + + Блоки.Добавить("
+ | Лог исполнения + |
"); + Для Каждого Строка Из Лог Цикл + Блоки.Добавить(СтрШаблон("
%1
", ЗаменитьСпецСимволы(Строка))); + КонецЦикла; + Блоки.Добавить("
"); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ВывестиСтек(Блоки, ПредставлениеСтека) + + Если НЕ ЗначениеЗаполнено(ПредставлениеСтека) Тогда + Возврат; + КонецЕсли; + + Стек = Стек(ПредставлениеСтека); + + Блоки.Добавить(СтрШаблон("
+ |
+ | + | + |
%2
+ |
+ |
+ |", "failure", ЗаменитьСпецСимволы(Стек.Сообщение))); + + Для Каждого Линия Из Стек.Линии Цикл + Блоки.Добавить(СтрШаблон("
+ |
%1
+ |
+ |", ЗаменитьСпецСимволы(Линия))); + КонецЦикла; + + Блоки.Добавить("
"); + +КонецПроцедуры +&НаСервереБезКонтекста +Функция ЗаменитьСпецСимволы(Знач Стр) + + Стр = СтрЗаменить(Стр, "&", "&"); + Стр = СтрЗаменить(Стр, """", """); + Стр = СтрЗаменить(Стр, "<", "<"); + Стр = СтрЗаменить(Стр, ">", ">"); + Стр = СтрЗаменить(Стр, "‘", "'"); + + Возврат СокрЛП(Стр); + +КонецФункции + +&НаСервереБезКонтекста +Функция Стек(Стек) + + Разделитель = Символы.ПС; + Строки = СтрРазделить(Стек, Разделитель); + + Корень = Новый Структура("Сообщение, Линии", Неопределено, Новый Массив()); + + Для Инд = 0 По Строки.ВГраница() Цикл + + Строка = Строки[Инд]; + Если СтрНачинаетсяС(Строка, "{") И СтрНайти(Строка, ")}") Тогда + НомерСтроки = Инд; + Прервать; + КонецЕсли; + + Корень.Сообщение = ЮТСтроки.ДобавитьСтроку(Корень.Сообщение, Строка, Разделитель); + КонецЦикла; + + Для Инд = НомерСтроки По Строки.ВГраница() Цикл + Строка = Строки[Инд]; + Если СтрНачинаетсяС(Строка, "{") И СтрНайти(Строка, ")}") Тогда + Корень.Линии.Добавить(Строка); + КонецЕсли; + КонецЦикла; + + Возврат Корень; + +КонецФункции + +#КонецОбласти + #КонецОбласти diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index a32d0fdbb..dbfca0e12 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -457,7 +457,7 @@ #Если ВебКлиент Тогда ВызватьИсключение "Сохранение конфигурации из веб-клиента не поддерживается"; #Иначе - Конфигурация = ЮТФабрикаСлужебный.ПараметрыЗапуска(); + Конфигурация = ЮТФабрика.ПараметрыЗапуска(); Конфигурация.Удалить("ВыполнятьМодульноеТестирование"); Конфигурация.showReport = ОтобразитьОтчет; From cdc72faa23d5fea7d9efae9dae7d1a09940341cd Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 21 Mar 2024 01:37:45 +0300 Subject: [PATCH 27/47] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20cs?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Template.txt" | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" index b37bc9519..e4446fe24 100644 --- "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" @@ -24,17 +24,19 @@ display: inline-block; margin: 0; padding: 0; - width:1.4em; - border: 1px solid silver; - border-radius: 10px; } .caret::before { display: inline-block; content: '➖'; - width: 1.4em; vertical-align: middle; text-align: center; + + width: 1.4em; + height: 1.4em; + border: 1px solid silver; + border-radius: 10px; + } .caret-collapse::before { @@ -106,11 +108,13 @@ .side { color: rgb(96, 96, 96); + font-weight: normal; } .error-line, .note-line, .warn-line { border-left: 4px solid; margin: 2px; padding-left: 4px; + display: block; } .error-line { border-color: red; @@ -124,7 +128,7 @@ .log-block { display: flex; padding: 0.5em; - margin-left: 6em; + margin-left: 2em; flex-direction: column; border: 1px solid #e2e2e2; background: #f7f7f7; @@ -132,6 +136,7 @@ } .log-title { cursor: pointer; + text-decoration: underline; } From 4bbfe5279d8b2102c81318f3a746f51bc6a0bad9 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 21 Mar 2024 01:54:02 +0300 Subject: [PATCH 28/47] =?UTF-8?q?=D0=9A=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D0=BE=D0=B5=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B8=D0=BF=D0=B0=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Template.txt" | 6 ++++- .../Form.form" | 20 +++++++++++++++- .../Module.bsl" | 24 ++++++++++++------- .../Module.bsl" | 4 ++-- 4 files changed, 42 insertions(+), 12 deletions(-) diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" index e4446fe24..eca5b29e2 100644 --- "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" @@ -69,10 +69,14 @@ content: url("data:image/svg+xml,%3C!-- Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23F4AF3D' fill-opacity='.7' fill-rule='evenodd' d='M9.20446966,8.00000012 L11.7854095,5.41906027 L10.583328,4.2169787 L8.0023881,6.79791856 L5.42144836,4.21697882 L4.2193668,5.41906038 L6.80030654,8.00000012 L4.21936692,10.5809397 L5.42144848,11.7830213 L8.0023881,9.20208168 L10.5833278,11.7830214 L11.7854094,10.5809399 L9.20446966,8.00000012 Z M8.0023881,14.5 C4.41253722,14.5 1.5023881,11.5898509 1.5023881,8 C1.5023881,4.41014913 4.41253722,1.5 8.0023881,1.5 C11.592239,1.5 14.5023881,4.41014913 14.5023881,8 C14.5023881,11.5898509 11.592239,14.5 8.0023881,14.5 Z'/%3E%3C/svg%3E%0A"); } + .skipped .status::before { + content: url("data:image/svg+xml,%3C!-- Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --%3E%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='6.5' stroke='%236C707E'/%3E%3Cpath d='M3.5 12.5L12.5 3.5' stroke='%236C707E'/%3E%3C/svg%3E%0A"); + } + .line .status::before { content: '-' } - + .line { border-top: 1px solid rgb(230, 230, 230); } diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index 5cd10b658..bad878f01 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -823,7 +823,7 @@ 31 ДеревоТестовКонтекстноеМенюЗапуститьВыделенныеТесты - 130 + 28 <key>ru</key> <value>Запустить выбранные тесты</value> @@ -1780,6 +1780,24 @@ <common>true</common> </edit> </columns> + <columns> + <name>ТипОшибки</name> + <title> + <key>ru</key> + <value>Тип ошибки</value> + + 130 + + String + + + + true + + + true + + diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index f5f7bca26..e8942f913 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -258,8 +258,7 @@ Для Каждого Ошибка Из ОписаниеОбъекта.Ошибки Цикл СтрокаОшибки = СтрокаДерева.Ошибки.Добавить(); - СтрокаОшибки.Сообщение = Ошибка.Сообщение; - СтрокаОшибки.Стек = Ошибка.Стек; + ЗаполнитьЗначенияСвойств(СтрокаОшибки, Ошибка); СтрокаОшибки.Лог.ЗагрузитьЗначения(Ошибка.Лог); СтрокаОшибки.ОжидаемоеЗначение = ЮТКоллекции.ЗначениеСтруктуры(Ошибка, "ОжидаемоеЗначение"); СтрокаОшибки.ФактическоеЗначение = ЮТКоллекции.ЗначениеСтруктуры(Ошибка, "ПроверяемоеЗначение"); @@ -868,17 +867,26 @@ &НаСервереБезКонтекста Процедура ВывестиДанныеОшибки(Блоки, Ошибка) - Блоки.Добавить(СтрШаблон("
+ ТипыОшибок = ЮТФабрикаСлужебный.ТипыОшибок(); + Если Ошибка.ТипОшибки = ТипыОшибок.Утверждений Тогда + Класс = "failure"; + ИначеЕсли Ошибка.ТипОшибки = ТипыОшибок.Пропущен Тогда + Класс = "skipped"; + Иначе + Класс = "error"; + КонецЕсли; + + Блоки.Добавить(СтрШаблон("
|
| | - |
%1
+ |
%2
|
- |", ЗаменитьСпецСимволы(Ошибка.Сообщение))); + |", Класс, ЗаменитьСпецСимволы(Ошибка.Сообщение))); Если ЗначениеЗаполнено(Ошибка.Лог) Или ЗначениеЗаполнено(Ошибка.Стек) Тогда Блоки.Добавить("
"); ВывестиЛог(Блоки, Ошибка.Лог); - ВывестиСтек(Блоки, Ошибка.Стек); + ВывестиСтек(Блоки, Ошибка.Стек, Класс); Блоки.Добавить("
"); КонецЕсли; Блоки.Добавить("
"); @@ -903,7 +911,7 @@ КонецПроцедуры &НаСервереБезКонтекста -Процедура ВывестиСтек(Блоки, ПредставлениеСтека) +Процедура ВывестиСтек(Блоки, ПредставлениеСтека, Класс) Если НЕ ЗначениеЗаполнено(ПредставлениеСтека) Тогда Возврат; @@ -918,7 +926,7 @@ |
%2
|
|
- |", "failure", ЗаменитьСпецСимволы(Стек.Сообщение))); + |", Класс, ЗаменитьСпецСимволы(Стек.Сообщение))); Для Каждого Линия Из Стек.Линии Цикл Блоки.Добавить(СтрШаблон("
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 205b96ba4..6e625f3f6 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -77,7 +77,7 @@ Процедура Пропустить() Экспорт - ЮТест.Пропустить(); + ЮТест.Пропустить("Тест пропущен"); ВызватьИсключение "Не отработал пропуск теста"; КонецПроцедуры From 8dafb837587b517c53c9d6acfbd44ac6a82433c6 Mon Sep 17 00:00:00 2001 From: Alexandr Yang Date: Thu, 21 Mar 2024 11:28:52 +0500 Subject: [PATCH 29/47] =?UTF-8?q?#297=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D1=82=D1=83=D1=80=D1=8B?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" index 090729099..6a8f1c98e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" @@ -19,7 +19,7 @@ #Область ПрограммныйИнтерфейс // см. Мокито.Проверить -Функция Проверить(Объект, Описание) Экспорт +Функция Проверить(Объект, Описание = Неопределено) Экспорт УстановитьПараметрыПроверки(Объект, Описание); Возврат МокитоПроверки; From a675f378212c7a1fb47bbf965daf18462a7e614b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 23 Mar 2024 03:35:13 +0300 Subject: [PATCH 30/47] bug template --- .github/ISSUE_TEMPLATE/bug.md | 29 ---------------------- .github/ISSUE_TEMPLATE/bug.yaml | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 29 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug.md create mode 100644 .github/ISSUE_TEMPLATE/bug.yaml diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md deleted file mode 100644 index 4ccc13ef7..000000000 --- a/.github/ISSUE_TEMPLATE/bug.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -name: Ошибка -about: Регистрация обнаруженной ошибки -title: '[BUG]' -labels: type/bug -assignees: '' - ---- - -**Версия движка** - - -**Версия платформы** - - -**Операционная система** - - -**Описание ошибки** - - -**Пример кода** - - -**Скриншоты** - - -**Дополнительная информация** - diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml new file mode 100644 index 000000000..1b94bf747 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -0,0 +1,43 @@ +name: '🐞 Ошибка' +description: 'Регистрация обнаруженной ошибки' +title: '[Bug]: ' +labels: ['bug'] +body: + - type: textarea + id: description + attributes: + label: '🐞 Описание ошибки' + description: 'Опишите проблему и шаги воспроизведения' + validations: + required: true + + - type: textarea + attributes: + label: Пример кода + description: 'Код, который приводит к возникновению ошибки' + render: bsl + + - type: textarea + attributes: + label: Текст ошибки (лог) + render: txt + + - type: input + id: yaxunit-version + attributes: + label: Версия YaxUnit + + - type: input + attributes: + label: Версия 1С:Предприятие + + - type: dropdown + id: operating-systems + attributes: + label: Операционная система + multiple: true + options: + - Linux + - Windows + - Mac + - Other \ No newline at end of file From 7d40a508807b6d00a23bda493a75028a96042f0c Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 02:03:03 +0300 Subject: [PATCH 31/47] #283 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Предикат "ВСписке" --- .../Module.bsl" | 4 +- .../Module.bsl" | 32 ++++++++++ .../Module.bsl" | 2 + .../Module.bsl" | 2 + .../Module.bsl" | 22 +++++++ .../Module.bsl" | 16 +++++ .../Module.bsl" | 58 ++++++++++++++++--- .../Module.bsl" | 22 ++++++- 8 files changed, 147 insertions(+), 11 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index b58cdce4b..94b9e2790 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -161,7 +161,7 @@ Строки.Добавить(СтрСоединить(ВыбираемыеПоля, "," + Символы.ПС)); Строки.Добавить("ИЗ " + ОписаниеЗапроса.ИмяТаблицы); - + Условия = СформироватьУсловия(ОписаниеЗапроса.Условия, ОписаниеЗапроса.ИмяТаблицы, Запрос); Если Условия.Количество() Тогда @@ -299,6 +299,8 @@ Шаблон = "ТИПЗНАЧЕНИЯ(%1) = &%2"; ИначеЕсли Выражение = ВыраженияПредикатов.Содержит Тогда Шаблон = "%1 ПОДОБНО ""%%"" + &%2 + ""%%"""; + ИначеЕсли Выражение = ВыраженияПредикатов.ВСписке Тогда + Шаблон = "%1 В (&%2)"; ИначеЕсли Выражение = ВыраженияПредикатов.Заполнено Тогда // TODO Реализовать ВызватьИсключение "Проверка заполненности пока не поддерживается"; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index 132bba93c..d6721454f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -41,6 +41,22 @@ КонецФункции +// Устанавливает имя свойства, все последующие проверки будут относится к нему. +// Это алиас для см. Реквизит +// +// Параметры: +// ИмяСвойства - Строка - Имя реквизита +// - Число - Индекс коллекции +// - Произвольный - Ключ соответствия +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция Свойство(ИмяСвойства) Экспорт + + Возврат Реквизит(ИмяСвойства); + +КонецФункции + // Добавляет предикат, проверяющий равенство объекта (свойства) указанному значению // // Параметры: @@ -295,6 +311,21 @@ КонецФункции +// Добавляет условие, что проверяемое значение (или значение его свойства) входит в список значений +// +// Параметры: +// Значения - Массив из Произвольный - Значения для проверки +// - СписокЗначений из Произвольный - Значения для проверки +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция ВСписке(Значения) Экспорт + + ДобавитьПредикат(Выражения().ВСписке, Значения); + Возврат ЮТПредикаты; + +КонецФункции + // Возвращает набор сформированных утверждений. // // Рекомендуется использовать этот метод, если планируется отложенная проверка предикатов. Например, вы хотите сформировать два набору предикатов @@ -358,6 +389,7 @@ Выражения.Вставить("НеСодержит", "НеСодержит"); Выражения.Вставить("СодержитСтрокуПоШаблону", "СодержитСтрокуПоШаблону"); Выражения.Вставить("НеСодержитСтрокуПоШаблону", "НеСодержитСтрокуПоШаблону"); + Выражения.Вставить("ВСписке", "ВСписке"); Возврат Новый ФиксированнаяСтруктура(Выражения); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index a286787c2..53034b530 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -142,6 +142,8 @@ Шаблон = "содержит %1"; ИначеЕсли Выражение = Выражения.СодержитСтрокуПоШаблону Тогда Шаблон = "содержит подстроку соответствующую шаблону %1"; + ИначеЕсли Выражение = Выражения.ВСписке Тогда + Шаблон = "в списке %1"; Иначе ВызватьИсключение "Не описан шаблон сообщения для выражения предиката " + Выражение; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index e147972bc..57d3c356b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -109,7 +109,9 @@ // в противном случае, будет возвращен текст шаблона без изменений. // Функция ПодставитьПредставлениеЗначенияВШаблон(ШаблонСтроки, ЗначениеПараметра) Экспорт + Возврат СтрЗаменить(ШаблонСтроки, "%1", ПредставлениеЗначения(ЗначениеПараметра)); + КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 9f5a5cdc0..3729f5d9d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -481,6 +481,10 @@ Результат = ПроверитьСоответствуетШаблону(СтатусПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки); + ИначеЕсли ВидСравненияВыражения = ВидыСравнения.ВСписке Тогда + + Результат = ПроверитьВСписке(СтатусПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки); + Иначе ВызватьИсключение СтрШаблон("Неизвестное выражение предиката `%1`", Выражение.ВидСравнения); @@ -630,6 +634,24 @@ КонецФункции +Функция ПроверитьВСписке(РезультатПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки) + + ТипыПараметровСоответствуют = ПроверитьТипЗначения(РезультатПроверки, ОжидаемоеЗначение, "Массив, ФиксированныйМассив, СписокЗначений"); + + Если Не ТипыПараметровСоответствуют Тогда + Возврат Неопределено; + КонецЕсли; + + ТипСписка = ТипЗнч(ОжидаемоеЗначение); + + Если ЮТТипыДанныхСлужебный.ЭтоМассива(ТипСписка) Тогда + Возврат ОжидаемоеЗначение.Найти(ПроверяемоеЗначение) <> Неопределено; + Иначе + Возврат ОжидаемоеЗначение.НайтиПоЗначению(ПроверяемоеЗначение) <> Неопределено; + КонецЕсли; + +КонецФункции + #КонецОбласти #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 645b6ce61..6c70f2bce 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -483,6 +483,22 @@ КонецФункции +// Проверяет значение (или его свойство), оно должно входить в указанный список. +// +// Параметры: +// Значения - Массив из Произвольный - Значения для проверки +// - СписокЗначений из Произвольный - Значения для проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция ВСписке(Значения, ОписаниеПроверки = Неопределено) Экспорт + + ПроверитьПредикат(ЮТПредикаты.Выражения().ВСписке, Значения, ОписаниеПроверки); + Возврат ЮТУтверждения; + +КонецФункции + #КонецОбласти // Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства). diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" index 0be077783..f60a79bfa 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,6 +31,7 @@ .ДобавитьТест("ЗначенияРеквизитовЗаписи") .ДобавитьТест("ЗначениеРеквизитаЗаписи") .ДобавитьТест("ДвиженияДокумента") + .ДобавитьТест("Записи_Условие_ВСписке") ; КонецПроцедуры @@ -117,23 +118,19 @@ Процедура РезультатЗапроса() Экспорт - Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары") - .Фикция("Наименование") - .Фикция("Поставщик"); - Ссылка = Конструктор.Записать(); - ДанныеСправочника = Конструктор.ДанныеОбъекта(); + Товар = НовыйТовар(); ОписаниеЗапроса = ЮТЗапросы.ОписаниеЗапроса(); ОписаниеЗапроса.ИмяТаблицы = "Справочник.Товары"; ОписаниеЗапроса.Условия.Добавить("Ссылка = &Ссылка"); ОписаниеЗапроса.Условия.Добавить("НЕ ПометкаУдаления"); - ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Ссылка); + ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Товар); ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Наименование"); ОписаниеЗапроса.ВыбираемыеПоля.Добавить("1+1 КАК Число"); ЮТест.ОжидаетЧто(ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса)) .ИмеетДлину(1) - .Свойство("[0].Наименование").Равно(ДанныеСправочника.Наименование) + .Свойство("[0].Наименование").Равно(Товар.Наименование) .Свойство("[0].Число").Равно(2); КонецПроцедуры @@ -395,4 +392,49 @@ КонецПроцедуры +Процедура Записи_Условие_ВСписке() Экспорт + + ИмяТаблицы = "Справочник.Товары"; + ВидТовар = ПредопределенноеЗначение("Перечисление.ВидыТоваров.Товар"); + ВидУслуга = ПредопределенноеЗначение("Перечисление.ВидыТоваров.Услуга"); + Товар = НовыйТовар(ВидТовар); + Услуга = НовыйТовар(ВидУслуга); + + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Вид").ВСписке(ЮТКоллекции.ЗначениеВМассиве(ВидТовар, ВидУслуга))); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетДлину(2) + .ЛюбойЭлементСодержитСвойствоСоЗначением("Ссылка", Товар) + .ЛюбойЭлементСодержитСвойствоСоЗначением("Ссылка", Услуга); + + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Вид").ВСписке(ЮТКоллекции.ЗначениеВМассиве(ВидТовар))); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетДлину(1) + .Свойство("[0].Ссылка", Товар); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция НовыйТовар(ВидТовара = Неопределено) + + Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары") + .Фикция("Наименование") + .Фикция("Поставщик"); + + Если ЗначениеЗаполнено(ВидТовара) Тогда + Конструктор.Установить("Вид", ВидТовара); + Иначе + Конструктор.Фикция("Вид"); + КонецЕсли; + + Возврат Конструктор.Записать(); + +КонецФункции + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index e5adf7a43..a6403d1e4 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -77,7 +77,15 @@ .ДобавитьТест("ЛюбойЭлементСоответствуетПредикату") .ДобавитьТест("СодержитПредикат") .ДобавитьТест("НеСодержитПредикат") - .ДобавитьТест("ФорматированныеСтроки") + .ДобавитьТест("ФорматированныеСтроки"); + + Массив = ЮТКоллекции.ЗначениеВМассиве(0, 1, "2"); + Список = Новый СписокЗначений(); + Список.ЗагрузитьЗначения(Массив); + + ЮТТесты.ДобавитьТест("ВСписке") + .СПараметрами(Массив) + .СПараметрами(Список) ; КонецПроцедуры @@ -2375,6 +2383,16 @@ КонецПроцедуры +Процедура ВСписке(Коллекция) Экспорт + + ЮТест.ОжидаетЧто(0) + .ВСписке(Коллекция); + + Ошибка = ОшибкаУтверждения(-1, "ВСписке", Коллекция); + ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("проверяемое значение `-1` в списке `%1`, но это не так.", Коллекция)); + +КонецПроцедуры + Процедура ФорматированныеСтроки() Экспорт Строка = Новый ФорматированнаяСтрока("Тестовая строка"); @@ -2399,9 +2417,9 @@ Функция ОшибкаУтверждения(ПроверяемоеЗначение, Утверждение, Параметр) Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр); - ЮТест.ОжидаетЧто(ПроверяемоеЗначение); Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры); + Возврат Ошибка; КонецФункции From bd4f64ded623738491e7d4179f7a3a5b00ccb7c1 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 02:46:54 +0300 Subject: [PATCH 32/47] #218 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Анализ общих реквизитов --- .../Module.bsl" | 4 +-- .../Module.bsl" | 19 ++++++++++++++ .../Module.bsl" | 2 +- ...0\267\320\260\321\206\320\270\321\217.mdo" | 25 +++++++++++++++++++ .../src/Configuration/Configuration.mdo | 5 ++-- .../Module.bsl" | 12 +++++++++ .../Module.bsl" | 5 ++++ 7 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 "fixtures/demo-configuration/src/CommonAttributes/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 473c1a162..e1b421431 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -39,7 +39,7 @@ // Значение - ОбъектМетаданных // - Тип - Тип объекта информационной базы // - Строка - Полное имя объекта метаданных -// - см. ОписаниеОбъектаМетаданных +// - см. СтруктураОписанияОбъектаМетаданных // - Произвольный - Объект информационной базы // // Возвращаемое значение: @@ -117,7 +117,7 @@ // Документ - ОбъектМетаданных // - Тип - Тип объекта информационной базы // - Строка - Полное имя объекта метаданных -// - см. ОписаниеОбъектаМетаданных +// - см. СтруктураОписанияОбъектаМетаданных // - ДокументСсылка, ДокументОбъект - Объект информационной базы // - ДокументМенеджер - Менеджер вида документа // diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index bebd46ba3..d9c411fb2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -146,6 +146,8 @@ ДобавитьОписанияРеквизитов(МетаданныеОбъекта.РеквизитыАдресации, ОписаниеОбъект.Реквизиты, Ложь); КонецЕсли; + ДобавитьОбщиеРеквизиты(МетаданныеОбъекта, ОписаниеОбъект.Реквизиты); + Если ОписаниеТипа.ТабличныеЧасти Тогда Для Каждого ТабличнаяЧасть Из МетаданныеОбъекта.ТабличныеЧасти Цикл @@ -336,6 +338,23 @@ КонецПроцедуры +Процедура ДобавитьОбщиеРеквизиты(МетаданныеОбъекта, КоллекцияОписаний) + + Использовать = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Использовать; + Авто = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Авто; + АвтоИспользование = Метаданные.СвойстваОбъектов.АвтоИспользованиеОбщегоРеквизита.Использовать; + + Для Каждого Реквизит Из Метаданные.ОбщиеРеквизиты Цикл + ЭлементСостава = Реквизит.Состав.Найти(МетаданныеОбъекта); + + Если ЭлементСостава.Использование = Использовать Или Реквизит.АвтоИспользование = АвтоИспользование И ЭлементСостава.Использование = Авто Тогда + КоллекцияОписаний.Вставить(Реквизит.Имя, НовоеОписаниеРеквизита(Реквизит, Ложь)); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + Функция НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч) Описание = ЮТМетаданные.ОписаниеРеквизита(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 17cac5956..b37c3335c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -245,7 +245,7 @@ // Параметры: ОписаниеМенеджера - // См. ОписаниеМенеджера // Менеджер - Произвольный - Менеджер -// ОписаниеТипа - см. ЮТМетаданные.ОписаниеОбъектаМетаданных +// ОписаниеТипа - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных // Данные - Структура // Возвращаемое значение: // Произвольный - Создать объект diff --git "a/fixtures/demo-configuration/src/CommonAttributes/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/fixtures/demo-configuration/src/CommonAttributes/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217.mdo" new file mode 100644 index 000000000..d14787c9e --- /dev/null +++ "b/fixtures/demo-configuration/src/CommonAttributes/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\321\217.mdo" @@ -0,0 +1,25 @@ + + + Организация + + ru + Организация + + + CatalogRef.Организации + + + + Use + + + Catalog.Склады + Use + + DontUse + DontUse + DontUse + DontUse + DontUse + DontUse + diff --git a/fixtures/demo-configuration/src/Configuration/Configuration.mdo b/fixtures/demo-configuration/src/Configuration/Configuration.mdo index 9d802d5d2..27e86a9f3 100644 --- a/fixtures/demo-configuration/src/Configuration/Configuration.mdo +++ b/fixtures/demo-configuration/src/Configuration/Configuration.mdo @@ -132,6 +132,7 @@ CommonModule.ИнтеграцияМагазин CommonModule.ОбменМобильныеОбщее CommonModule.ОбменМобильныеПереопределяемый + CommonModule.ПодпискиНаСобытия CommonModule.Пользователи CommonModule.Помощник CommonModule.ПомощникКлиент @@ -147,14 +148,14 @@ CommonModule.СервисныеМеханизмы CommonModule.УведомленияКлиент CommonModule.УведомленияСервер - CommonModule.ПодпискиНаСобытия + CommonAttribute.Организация ExchangePlan.Мобильные XDTOPackage.ОбменСМобильнымУстройством WebService.MAExchange HTTPService.ОписанияТоваров HTTPService.Товары - EventSubscription.ПередЗаписьюСправочника EventSubscription.ПередЗаписьюДокумента + EventSubscription.ПередЗаписьюСправочника ScheduledJob.ОбновлениеАгрегатовПродаж ScheduledJob.ОбновлениеИндексаППД ScheduledJob.ОбновлениеИсторииДанных diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index 951ee04dc..44f7685b5 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -26,6 +26,7 @@ .ДобавитьТест("СоздатьЗаписьРегистраСведений") .ДобавитьТест("Фикция") .ДобавитьТест("Фикция_Типизированная") + .ДобавитьТест("Фикция_ОбщийРеквизит") .ДобавитьТест("ФикцияОбязательныхПолей") .ДобавитьТест("СоздатьГруппу") ; @@ -206,6 +207,17 @@ КонецПроцедуры +Процедура Фикция_ОбщийРеквизит() Экспорт + + Склад = ЮТест.Данные().КонструкторОбъекта("Справочник.Склады") + .Фикция("Организация") + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Склад) + .Свойство("Организация").Заполнено(); + +КонецПроцедуры + Процедура ФикцияОбязательныхПолей() Экспорт Данные = ЮТест.Данные().КонструкторОбъекта("Справочники.Контрагенты") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 8241bfefe..dea98a664 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -46,6 +46,11 @@ КонецЦикла; + Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Склады"); + ЮТест.ОжидаетЧто(Описание, "Проверка на общий реквизит") + .Свойство("Реквизиты") + .ИмеетСвойство("Организация"); + КонецПроцедуры Процедура РегистрыДвиженийДокумента() Экспорт From 2f118e52ad005b84aac470c97379394673b585e9 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 02:48:11 +0300 Subject: [PATCH 33/47] #218 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Унификация работы с реквизитами. Более понятное сообщение об ошибке при неизвестном реквизите. --- .../Module.bsl" | 66 +++++++++++++------ 1 file changed, 46 insertions(+), 20 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 3728f74ce..bc9a51a9b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,12 +20,9 @@ Процедура Установить(Контекст, ИмяРеквизита, Значение) Экспорт - Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда - ТекущаяЗапись = ДанныеСтроки(Контекст); - Иначе - ТекущаяЗапись = Контекст.Данные; - КонецЕсли; + ОписаниеРеквизита(Контекст, ИмяРеквизита); // Проверка наличия реквизита + ТекущаяЗапись = ТекущаяЗапись(Контекст); ТекущаяЗапись.Вставить(ИмяРеквизита, Значение); КонецПроцедуры @@ -34,13 +31,8 @@ ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина); - Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда - ОписаниеРеквизита = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть][ИмяРеквизита]; - ТекущаяЗапись = ДанныеСтроки(Контекст); - Иначе - ОписаниеРеквизита = Контекст.Метаданные.Реквизиты[ИмяРеквизита]; - ТекущаяЗапись = Контекст.Данные; - КонецЕсли; + ТекущаяЗапись = ТекущаяЗапись(Контекст); + ОписаниеРеквизита = ОписаниеРеквизита(Контекст, ИмяРеквизита); Если ОграничениеТипа <> Неопределено Тогда ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, "."); @@ -56,13 +48,8 @@ Процедура ФикцияОбязательныхПолей(Контекст) Экспорт - Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда - Реквизиты = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть]; - ТекущаяЗапись = ДанныеСтроки(Контекст); - Иначе - Реквизиты = Контекст.Метаданные.Реквизиты; - ТекущаяЗапись = Контекст.Данные; - КонецЕсли; + Реквизиты = Реквизиты(Контекст); + ТекущаяЗапись = ТекущаяЗапись(Контекст); Для Каждого Элемент Из Реквизиты Цикл Реквизит = Элемент.Значение; @@ -189,7 +176,7 @@ // Структура - Новый контекст конструктора: // * Менеджер - Произвольный // * Данные - Структура -// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектаМетаданных +// * Метаданные - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных // * ТекущаяТабличнаяЧасть - Строка // * ДополнительныеСвойства - Структура Функция НовыйКонтекстКонструктора(Менеджер) Экспорт @@ -247,4 +234,43 @@ КонецФункции +Функция Реквизиты(Контекст) + + Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда + Возврат Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть]; + Иначе + Возврат Контекст.Метаданные.Реквизиты; + КонецЕсли; + +КонецФункции + +Функция ОписаниеРеквизита(Контекст, ИмяРеквизита) + + Реквизиты = Реквизиты(Контекст); + + Если НЕ Реквизиты.Свойство(ИмяРеквизита) Тогда + ИмяОсновнойТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Контекст.Метаданные); + Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда + Пояснение = СтрШаблон("Табличная часть `%1.%2` не содержит реквизит `%3`", ИмяОсновнойТаблицы, Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита); + Иначе + Пояснение = СтрШаблон("`%1` не содержит реквизит `%2`", ИмяОсновнойТаблицы, ИмяРеквизита); + КонецЕсли; + + ВызватьИсключение Пояснение; + КонецЕсли; + + Возврат Реквизиты[ИмяРеквизита]; + +КонецФункции + +Функция ТекущаяЗапись(Контекст) + + Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда + Возврат ДанныеСтроки(Контекст); + Иначе + Возврат Контекст.Данные; + КонецЕсли; + +КонецФункции + #КонецОбласти From 8803103666f37dd3a2a65b7237825f88c9df2be9 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 02:55:08 +0300 Subject: [PATCH 34/47] #283 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправлен тест --- .../Module.bsl" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" index f60a79bfa..e5bc450b1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" @@ -125,12 +125,12 @@ ОписаниеЗапроса.Условия.Добавить("Ссылка = &Ссылка"); ОписаниеЗапроса.Условия.Добавить("НЕ ПометкаУдаления"); ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Товар); - ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Наименование"); + ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Ссылка"); ОписаниеЗапроса.ВыбираемыеПоля.Добавить("1+1 КАК Число"); ЮТест.ОжидаетЧто(ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса)) .ИмеетДлину(1) - .Свойство("[0].Наименование").Равно(Товар.Наименование) + .Свойство("[0].Ссылка").Равно(Товар) .Свойство("[0].Число").Равно(2); КонецПроцедуры From 2326d4a3880c7f612aff609763d70e588df37b31 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 03:16:44 +0300 Subject: [PATCH 35/47] #249 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Установка реквизитов конструктора объекта --- .../Module.bsl" | 18 +++++++- .../Module.bsl" | 27 ++++++++++-- .../ObjectModule.bsl" | 42 ++++++++++++++----- .../Module.bsl" | 29 +++++++++++++ 4 files changed, 101 insertions(+), 15 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index bc9a51a9b..1639bbe78 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -27,6 +27,18 @@ КонецПроцедуры +Процедура УстановитьРеквизиты(Контекст, ЗначенияРеквизитов) Экспорт + + ТекущаяЗапись = ТекущаяЗапись(Контекст); + Для Каждого ЗначениеРеквизита Из ЗначенияРеквизитов Цикл + + ОписаниеРеквизита(Контекст, ЗначениеРеквизита.Ключ); + ТекущаяЗапись.Вставить(ЗначениеРеквизита.Ключ, ЗначениеРеквизита.Значение); + + КонецЦикла; + +КонецПроцедуры + Процедура Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения, Знач ОграничениеТипа) Экспорт ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина); @@ -71,11 +83,15 @@ КонецПроцедуры -Процедура ДобавитьСтроку(Контекст) Экспорт +Процедура ДобавитьСтроку(Контекст, ЗначенияРеквизитов) Экспорт Запись = Новый Структура(); ДанныеТабличнойЧасти(Контекст).Добавить(Запись); + Если ЗначенияРеквизитов <> Неопределено Тогда + УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); + КонецЕсли; + КонецПроцедуры Процедура УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение = Неопределено) Экспорт diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index adec115e8..bc1f2d7b3 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -46,6 +46,23 @@ КонецФункции +// Устанавливает значения реквизитов создаваемого объекта. +// +// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов +// +// Возвращаемое значение: +// ОбщийМодуль - Установить реквизиты +&НаКлиенте +Функция УстановитьРеквизиты(ЗначенияРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + // Устанавливает фиктивное значение реквизита создаваемого объекта. // // Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части. @@ -122,13 +139,17 @@ КонецФункции // Добавляет новую строку табличной части объекта. +// При необходимости можно выполнить установку реквизитов новой строки +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов новой строки // // Возвращаемое значение: // ОбщийМодуль - Конструктор &НаКлиенте -Функция ДобавитьСтроку() Экспорт +Функция ДобавитьСтроку(ЗначенияРеквизитов = Неопределено) Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст, ЗначенияРеквизитов); Возврат ЭтотОбъект; КонецФункции diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" index 8f338cd26..978555fff 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -36,7 +36,7 @@ // Значение - Произвольный - Значение реквизита объекта или табличной части // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция Установить(ИмяРеквизита, Значение) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.Установить(Контекст, ИмяРеквизита, Значение); @@ -44,6 +44,22 @@ КонецФункции +// Устанавливает значения реквизитов создаваемого объекта. +// +// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Установить реквизиты +Функция УстановитьРеквизиты(ЗначенияРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + // Устанавливает фиктивное значение реквизита создаваемого объекта. // // Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части. @@ -62,7 +78,7 @@ // - Неопределено - Будет сгенерировано значение, на основании типа реквизита, если реквизит составной, то будет использован случайный тип // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция Фикция(ИмяРеквизита, РеквизитыЗаполнения = Неопределено, ОграничениеТипа = Неопределено) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения, ОграничениеТипа); @@ -82,7 +98,7 @@ // * Для перечислений (в том числе системных) выбирается случайно значение перечисления // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция ФикцияОбязательныхПолей() Экспорт ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст); @@ -96,7 +112,7 @@ // ИмяТабличнойЧасти - Строка - Имя табличной части // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция ТабличнаяЧасть(ИмяТабличнойЧасти) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.ТабличнаяЧасть(Контекст, ИмяТабличнойЧасти); @@ -107,7 +123,7 @@ // Переключает конструктор на заполнение объекта. // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция Объект() Экспорт ЮТКонструкторТестовыхДанныхСлужебный.ТабличнаяЧасть(Контекст, Неопределено); @@ -116,12 +132,16 @@ КонецФункции // Добавляет новую строку табличной части объекта. +// При необходимости можно выполнить установку реквизитов новой строки +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов новой строки // // Возвращаемое значение: -// ОбщийМодуль - Конструктор -Функция ДобавитьСтроку() Экспорт +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор +Функция ДобавитьСтроку(ЗначенияРеквизитов = Неопределено) Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ДобавитьСтроку(Контекст, ЗначенияРеквизитов); Возврат ЭтотОбъект; КонецФункции @@ -133,7 +153,7 @@ // Значение - Произвольный - Значение дополнительного свойства // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение = Неопределено) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение); @@ -167,7 +187,7 @@ // ОбменДаннымиЗагрузка - Булево - Записать объект с признаком `ОбменДанными.Загрузка = Истина` // // Возвращаемое значение: -// ОбщийМодуль - Конструктор +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор Функция ДобавитьЗапись(ОбменДаннымиЗагрузка = Ложь) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.Записать(Контекст, Ложь, ОбменДаннымиЗагрузка); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index 44f7685b5..97a0e372b 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -29,6 +29,7 @@ .ДобавитьТест("Фикция_ОбщийРеквизит") .ДобавитьТест("ФикцияОбязательныхПолей") .ДобавитьТест("СоздатьГруппу") + .ДобавитьТест("УстановитьРеквизиты") ; КонецПроцедуры @@ -268,4 +269,32 @@ КонецПроцедуры +Процедура УстановитьРеквизиты() Экспорт + + Поставщик = ЮТест.Данные().СоздатьЭлемент("Справочник.Контрагенты"); + Склад = ЮТест.Данные().СоздатьЭлемент("Справочник.Склады"); + Товар = ЮТест.Данные().СоздатьЭлемент("Справочник.Товары"); + Цена = ЮТест.Данные().СлучайноеЧисло(99, 2); + + Реквизиты = Новый Структура("Поставщик, Склад", Поставщик, Склад); + РеквизитыСтроки = Новый Структура("Товар, Цена", Товар, Цена); + + Данные = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") + .УстановитьРеквизиты(Реквизиты) + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .УстановитьРеквизиты(РеквизитыСтроки) + .ДобавитьСтроку(РеквизитыСтроки) + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Данные) + .Свойство("Поставщик").Равно(Поставщик) + .Свойство("Склад").Равно(Склад) + .Свойство("Товары[0].Товар").Равно(Товар) + .Свойство("Товары[0].Цена").Равно(Цена) + .Свойство("Товары[1].Товар").Равно(Товар) + .Свойство("Товары[1].Цена").Равно(Цена); + +КонецПроцедуры + #КонецОбласти From d151a810c5f6013b2bd64390b82e7a9628dc1e1c Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 03:19:59 +0300 Subject: [PATCH 36/47] #249 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Установка реквизитов конструктора объекта XDTO --- .../ObjectModule.bsl" | 17 +++++++++++++++++ .../Module.bsl" | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index bf9e71457..bb7da505b 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -45,6 +45,23 @@ КонецФункции +// Устанавливает значения реквизитов объекта. +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор +Функция УстановитьРеквизиты(ЗначенияРеквизитов) Экспорт + + Для Каждого ЗначениеРеквизита Из ЗначенияРеквизитов Цикл + ТекущийОбъект[ЗначениеРеквизита.Ключ] = ЗначениеРеквизита.Значение; + КонецЦикла; + + Возврат ЭтотОбъект; + +КонецФункции + // Устанавливает фиктивное значение реквизита объекта. // // На основании типа реквизита генерируется фиктивное значение. diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" index 0d4d195fe..1f8c6a58f 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" @@ -22,6 +22,7 @@ ЮТТесты .ДобавитьТест("Установить") + .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("Фикция") .ДобавитьТест("ФикцияОбязательныхПолей") .ДобавитьТест("ФикцияНезаполненных") @@ -52,6 +53,23 @@ КонецПроцедуры +Процедура УстановитьРеквизиты() Экспорт + + Номер = ЮТест.Данные().СлучайнаяСтрока(9); + Сумма = ЮТест.Данные().СлучайноеЧисло(); + Реквизиты = Новый Структура("Number, Сумма", Номер, Сумма); + + Объект = НовыйКонструктор() + .УстановитьРеквизиты(Реквизиты) + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Number").Равно(Номер) + .Свойство("Сумма").Равно(Сумма); + +КонецПроцедуры + Процедура Фикция() Экспорт Объект = НовыйКонструктор() From 35be29e205ebc8e5f1f8491442d69b4130831090 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 03:22:17 +0300 Subject: [PATCH 37/47] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index d9c411fb2..24fa37bde 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -345,12 +345,15 @@ АвтоИспользование = Метаданные.СвойстваОбъектов.АвтоИспользованиеОбщегоРеквизита.Использовать; Для Каждого Реквизит Из Метаданные.ОбщиеРеквизиты Цикл + ЭлементСостава = Реквизит.Состав.Найти(МетаданныеОбъекта); - Если ЭлементСостава.Использование = Использовать Или Реквизит.АвтоИспользование = АвтоИспользование И ЭлементСостава.Использование = Авто Тогда + Если ЭлементСостава = Неопределено Тогда + Продолжить; + ИначеЕсли ЭлементСостава.Использование = Использовать Или Реквизит.АвтоИспользование = АвтоИспользование И ЭлементСостава.Использование = Авто Тогда КоллекцияОписаний.Вставить(Реквизит.Имя, НовоеОписаниеРеквизита(Реквизит, Ложь)); КонецЕсли; - + КонецЦикла; КонецПроцедуры From dd090982db0398eb0b3b5c10fc59ec74418e9eac Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 24 Mar 2024 04:24:35 +0300 Subject: [PATCH 38/47] #270 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Создание записей регистров через наборы записей --- .../Module.bsl" | 59 ++++++++++++++----- .../Module.bsl" | 31 ++++++++++ ...0\265\320\261\320\275\321\213\320\271.mdo" | 11 ++++ .../Module.bsl" | 4 +- .../Module.bsl" | 58 +++++++++++------- .../Template.txt" | 4 +- .../src/Configuration/Configuration.mdo | 1 + ...0\262\320\260\321\200\320\276\320\262.mdo" | 20 +++---- .../Module.bsl" | 24 ++++++++ 9 files changed, 162 insertions(+), 50 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index e1b421431..714a1022a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -46,13 +46,13 @@ // см. СтруктураОписанияОбъектаМетаданных Функция ОписаниеОбъектаМетаданных(Знач Значение) Экспорт - ТипЗначения = ТипЗнч(Значение); - - Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) И ЭтоОписаниеОбъектаМетаданных(Значение) Тогда + Если ЮТМетаданныеСлужебный.ЭтоОписаниеОбъектаМетаданных(Значение) Тогда //@skip-check constructor-function-return-section Возврат Значение; КонецЕсли; + ТипЗначения = ТипЗнч(Значение); + ТипТип = Тип("Тип"); #Если Сервер Тогда Если ТипЗначения = Тип("ОбъектМетаданных") Тогда @@ -77,6 +77,17 @@ КонецФункции +// Возвращает нормализованное имя таблицы, то которое можно использовать в запросах +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Строка - Нормализованное имя таблицы Функция НормализованноеИмяТаблицы(Значение) Экспорт Описание = ОписаниеОбъектаМетаданных(Значение); @@ -85,26 +96,46 @@ КонецФункции -Функция ЭтоОписаниеОбъектаМетаданных(Параметры) Экспорт - - Возврат ЮТОбщий.ЭтаСтруктураИмеетТип(Параметры, "ОписаниеОбъектаМетаданных"); - -КонецФункции - -Функция ТипыМетаданных() Экспорт +// Проверка, что переданное значение относится к перечислениям. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это перечисление +Функция ЭтоПеречисление(Значение) Экспорт - Возврат ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных(); + Описание = ОписаниеОбъектаМетаданных(Значение); + Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "Перечисление"; КонецФункции -Функция ЭтоПеречисление(Значение) Экспорт +// Проверка, что переданное значение относится к регистрам. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это перечисление +Функция ЭтоРегистр(Значение) Экспорт Описание = ОписаниеОбъектаМетаданных(Значение); - - Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "Перечисление"; + Возврат Описание <> Неопределено И СтрНачинаетсяС(Описание.ОписаниеТипа.Имя, "Регистр"); КонецФункции +// Разрешены ли синхронные вызовы в параметрах конфигурации. +// +// Возвращаемое значение: +// Булево - Разрешены синхронные вызовы Функция РазрешеныСинхронныеВызовы() Экспорт Возврат ЮТМетаданныеСлужебныйПовтИсп.РазрешеныСинхронныеВызовы(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..ec9ee5300 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,31 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ЭтоОписаниеОбъектаМетаданных(Значение) Экспорт + + Возврат ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗнч(Значение)) И ЮТОбщий.ЭтаСтруктураИмеетТип(Значение, "ОписаниеОбъектаМетаданных"); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..1580425b2 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТМетаданныеСлужебный + + ru + Метаданные служебный + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index d9c411fb2..392fd8d1f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -178,7 +178,7 @@ ПолноеИмя = МетаданныеОбъекта.ПолноеИмя(); ЧастиИмени = СтрРазделить(ПолноеИмя, "."); - Типы = ЮТМетаданные.ТипыМетаданных(); + Типы = ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных(); Если НЕ Типы.Свойство(ЧастиИмени[0]) Тогда Сообщение = СтрШаблон("Получение описания для '%1' не поддерживается, либо не реализовано", ЧастиИмени[0]); @@ -303,7 +303,7 @@ Если ЧастиСтроки.Количество() = 2 Тогда - ТипыМетаданных = ЮТМетаданные.ТипыМетаданных(); + ТипыМетаданных = ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных(); ОписаниеТипа = ТипыМетаданных[ЧастиСтроки[0]]; Если ОписаниеТипа <> Неопределено Тогда ОбъектМетаданных = Метаданные[ОписаниеТипа.ИмяКоллекции].Найти(ЧастиСтроки[1]); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index b37c3335c..37f235a76 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -20,7 +20,6 @@ Функция СоздатьЗапись(Знач Менеджер, Знач Данные, Знач ПараметрыЗаписи, Знач ВернутьОбъект) Экспорт - Менеджер = ЮТОбщий.Менеджер(Менеджер); ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства); @@ -46,11 +45,23 @@ // Произвольный - Созданный объект Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства = Неопределено) Экспорт - Менеджер = ЮТОбщий.Менеджер(Менеджер); - ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); + Менеджер = ЮТОбщий.Менеджер(ОписаниеОбъектаМетаданных); + + ЭтоРегистр = ЮТМетаданные.ЭтоРегистр(ОписаниеОбъектаМетаданных); Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, Данные); + + Если ДополнительныеСвойства <> Неопределено Тогда + ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); + КонецЕсли; + + Если ЭтоРегистр Тогда + + ЗаполнитьНаборРегистра(Объект, Данные); + Возврат Объект; + + КонецЕсли; ЗаполнитьЗначенияСвойств(Объект, Данные); Если ОписаниеОбъектаМетаданных.ОписаниеТипа.ТабличныеЧасти Тогда @@ -73,10 +84,6 @@ ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных); - Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный И ДополнительныеСвойства <> Неопределено Тогда - ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); - КонецЕсли; - Возврат Объект; КонецФункции @@ -140,16 +147,9 @@ КонецЕсли; ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ОбъектМетаданных); - ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа; - - Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда - ИмяТипаМенеджера = СтрШаблон("%1Manager.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя); - Иначе - ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя); - КонецЕсли; - Менеджер = Новый(ИмяТипаМенеджера); + Менеджер = ЮТОбщий.Менеджер(ОбъектМетаданных); - Объект = СоздатьОбъект(Менеджер, ОписаниеТипа, РеквизитыЗаполнения); + Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, РеквизитыЗаполнения); Если ЗначениеЗаполнено(РеквизитыЗаполнения) Тогда ЗаполнитьЗначенияСвойств(Объект, РеквизитыЗаполнения); @@ -298,10 +298,6 @@ Объект.ОбменДанными.Загрузка = Истина; КонецЕсли; - Если ЗначениеЗаполнено(ПараметрыЗаписи.ДополнительныеСвойства) Тогда - ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства); - КонецЕсли; - Попытка Если ПараметрыЗаписи.РежимЗаписи <> Неопределено Тогда @@ -378,6 +374,17 @@ Менеджер = ЮТОбщий.Менеджер(Описание); Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты); + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипНабораЗаписей(ТипЗначения) Тогда + + КлючевыеРеквизиты = Новый Структура(); + + Для Каждого ЭлементОтбора Из Объект.Отбор Цикл + КлючевыеРеквизиты.Вставить(ЭлементОтбора.Имя, ЭлементОтбора.Значение); + КонецЦикла; + + Менеджер = ЮТОбщий.Менеджер(Объект); + Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты); + Иначе Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.КлючЗаписи", Объект); @@ -399,4 +406,15 @@ КонецФункции +Процедура ЗаполнитьНаборРегистра(Набор, ДанныеЗаписи) + + Запись = Набор.Добавить(); + ЗаполнитьЗначенияСвойств(Запись, ДанныеЗаписи); + + Для Каждого ЭлементОтбора Из Набор.Отбор Цикл + ЭлементОтбора.Установить(Запись[ЭлементОтбора.Имя]); + КонецЦикла; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" index 1d5d426c7..9ffce5ff6 100644 --- "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" @@ -8,7 +8,7 @@ | ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + | + | | ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + | + | | ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + | + | -| РегистрСведений | РегистрыСведений | СоздатьМенеджерЗаписи | | | + | + | + | | | + | +| РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | | + | | РегистрНакопления | РегистрыНакопления | | | | + | + | + | | | + | | РегистрБухгалтерии | РегистрыБухгалтерии | | | | + | + | + | | | + | | РегистрРасчета | РегистрыРасчета | | | | + | + | + | | | + | @@ -23,7 +23,7 @@ | ChartOfAccounts | ChartsOfAccounts | СоздатьСчет | | + | + | | | | + | + | | ChartOfCalculationTypes | ChartsOfCalculationTypes | СоздатьВидРасчета | | + | + | | | | + | + | | ExchangePlan | ExchangePlans | СоздатьУзел | | + | + | | | | + | + | -| InformationRegister | InformationRegisters | СоздатьМенеджерЗаписи | | | + | + | + | | | + | +| InformationRegister | InformationRegisters | СоздатьНаборЗаписей | | | + | + | + | | | + | | AccumulationRegister | AccumulationRegisters | | | | + | + | + | | | + | | AccountingRegister | AccountingRegisters | | | | + | + | + | | | + | | CalculationRegister | CalculationRegisters | | | | + | + | + | | | + | diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 7e2265b54..8f8fd169c 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -81,6 +81,7 @@ CommonModule.ЮТЛогИсполненияТестаСлужебный CommonModule.ЮТЛокальСлужебный CommonModule.ЮТМетаданные + CommonModule.ЮТМетаданныеСлужебный CommonModule.ЮТМетаданныеСлужебныйВызовСервера CommonModule.ЮТМетаданныеСлужебныйПовтИсп CommonModule.ЮТМетодыСлужебный diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" index 3deb618f1..13aebb088 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" @@ -23,7 +23,7 @@ Active - Use + DontUse @@ -33,7 +33,7 @@ LineNumber - Use + DontUse @@ -43,7 +43,7 @@ Recorder - Use + DontUse @@ -54,7 +54,7 @@ ShowError - Use + DontUse @@ -96,7 +96,6 @@ 10 2 - true @@ -106,13 +105,10 @@ - DontUse Use - Use + DontUse Use - - 0 - + Товар @@ -133,7 +129,7 @@ ShowError true - Use + DontUse Use true @@ -156,7 +152,7 @@ ShowError - Use + DontUse Use Catalog.ВидыЦен.EmptyRef diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index 44f7685b5..ce6ee5bc5 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -24,6 +24,7 @@ .ДобавитьТест("ЗаполнитьСправочник") .ДобавитьТест("ЗаполнитьДокумент") .ДобавитьТест("СоздатьЗаписьРегистраСведений") + .ДобавитьТест("СоздатьЗаписьРегистраСведений_ОбменДанными") .ДобавитьТест("Фикция") .ДобавитьТест("Фикция_Типизированная") .ДобавитьТест("Фикция_ОбщийРеквизит") @@ -137,6 +138,29 @@ КонецПроцедуры +Процедура СоздатьЗаписьРегистраСведений_ОбменДанными() Экспорт + + Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.ЦеныТоваров") + .Фикция("Период") + .Фикция("Товар") + .Фикция("ВидЦен") + .Установить("Цена", -1); + + ДанныеОбъекта = Конструктор.ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Конструктор) + .Метод("Записать").Параметр(Ложь).Параметр(Истина) + .НеВыбрасываетИсключение(); + + ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.ЦеныТоваров") + .СодержитЗаписи(ЮТест.Предикат(ДанныеОбъекта)); + + ЮТест.ОжидаетЧто(Конструктор) + .Метод("Записать") + .ВыбрасываетИсключение("Цена товара не может быть отрицательной"); + +КонецПроцедуры + Процедура Фикция() Экспорт Поставщик = Ютест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); From a0f3d109a595b6b6bce3610a19e3ef8017cdc359 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 26 Mar 2024 02:09:01 +0300 Subject: [PATCH 39/47] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B=20=D1=81?= =?UTF-8?q?=20=D1=81=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20gpt=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 348 ++++++++++++++++++ 1 file changed, 348 insertions(+) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index dec7280aa..5696c2f8d 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -22,6 +22,19 @@ ЮТТесты .ДобавитьТест("ДополнитьСтруктуру") + .ДобавитьТест("ЗначениеСтруктуры") + .ДобавитьТест("ДополнитьМассив") + .ДобавитьТест("СкопироватьРекурсивно") + .ДобавитьТест("СкопироватьСтруктуру") + .ДобавитьТест("СкопироватьСоответствие") + .ДобавитьТест("СкопироватьМассив") + .ДобавитьТест("СкопироватьСписокЗначений") + .ДобавитьТест("ВыгрузитьЗначения") + .ДобавитьТест("ПересечениеМассивов") + .ДобавитьТест("ЗначениеВМассиве") + .ДобавитьТест("ВСоответствие") + .ДобавитьТест("ВСтруктуру") + .ДобавитьТест("ПредставлениеМассива") ; КонецПроцедуры @@ -68,6 +81,341 @@ КонецПроцедуры +Процедура ЗначениеСтруктуры() Экспорт + + ИсходнаяСтруктура = Новый Структура; + ИсходнаяСтруктура.Вставить("Поле1", "Значение1"); + ИсходнаяСтруктура.Вставить("Поле2", 4242); + + Результат = ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, "Поле1", "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка существующего поля").Равно("Значение1"); + + Результат = ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, "Поле2", "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка числового поля").Равно(4242); + + Результат = ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, "Поле3", "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка несуществующего поля").Равно("ЗначениеПоУмолчанию"); + + Результат = ЮТКоллекции.ЗначениеСтруктуры(Неопределено, "Поле", "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка вызова функции со значение Неопределено").Равно("ЗначениеПоУмолчанию"); + +КонецПроцедуры + +Процедура ДополнитьМассив() Экспорт + + Приемник = Новый Массив; + Источник = Новый Массив; + + // Генерируем случайные значения для источника + Для Счетчик = 1 По ЮТест.Данные().СлучайноеЧисло( , 10) Цикл + Источник.Добавить(ЮТест.Данные().СлучайноеЧисло( , 100)); + КонецЦикла; + + ЮТКоллекции.ДополнитьМассив(Приемник, Источник); + + // Проверяем, что все элементы источника были добавлены в приемник + ЮТест.ОжидаетЧто(Приемник).ИмеетДлину(Источник.Количество()); + Для Каждого Элемент Из Источник Цикл + ЮТест.ОжидаетЧто(Приемник).Содержит(Элемент); + КонецЦикла; + +КонецПроцедуры + +Процедура СкопироватьРекурсивно() Экспорт + + // Генерируем случайные значения для источника + Источник = Новый Структура; + Источник.Вставить("Число", ЮТест.Данные().СлучайноеЧисло(100)); + Источник.Вставить("Строка", ЮТест.Данные().СлучайнаяСтрока()); + Источник.Вставить("Дата", ЮТест.Данные().СлучайнаяДата()); + + // Сохраняем копию источника для последующей проверки + ИсточникКопия = Новый ФиксированнаяСтруктура(Источник); + + Приемник = ЮТКоллекции.СкопироватьРекурсивно(Источник); + + // Проверяем, что все элементы источника были скопированы в приемник + ЮТест.ОжидаетЧто(Приемник).ИмеетТип("Структура"); + Для Каждого Элемент Из ИсточникКопия Цикл + ЮТест.ОжидаетЧто(Приемник).Свойство(Элемент.Ключ).Равно(Элемент.Значение); + КонецЦикла; + + // Проверяем, что приемник и источник не ссылаются на один и тот же объект + Источник.Вставить("НовоеЗначение", ЮТест.Данные().СлучайнаяСтрока()); + ЮТест.ОжидаетЧто(Приемник).НеСодержит("НовоеЗначение"); + + // Проверяем работу функции с массивами + ИсточникМассив = Новый Массив; + Для Счетчик = 1 По ЮТест.Данные().СлучайноеЧисло(, 10) Цикл + ИсточникМассив.Добавить(ЮТест.Данные().СлучайноеЧисло(100)); + КонецЦикла; + ПриемникМассив = ЮТКоллекции.СкопироватьРекурсивно(ИсточникМассив); + ЮТест.ОжидаетЧто(ПриемникМассив).ИмеетТип("Массив"); + Для Каждого Элемент Из ИсточникМассив Цикл + ЮТест.ОжидаетЧто(ПриемникМассив).Содержит(Элемент); + КонецЦикла; + + // Проверяем, что приемник и источник не ссылаются на один и тот же объект + ИсточникМассив.Добавить(ЮТест.Данные().СлучайноеЧисло(100)); + ЮТест.ОжидаетЧто(ПриемникМассив).НеСодержит(ИсточникМассив[ИсточникМассив.Количество() - 1]);КонецПроцедуры + +Процедура СкопироватьСтруктуру() Экспорт + + // Генерируем случайные значения для источника + Источник = Новый Структура; + Источник.Вставить("Число", ЮТест.Данные().СлучайноеЧисло(100)); + Источник.Вставить("Строка", ЮТест.Данные().СлучайнаяСтрока()); + Источник.Вставить("Дата", ЮТест.Данные().СлучайнаяДата()); + + // Сохраняем копию источника для последующей проверки + ИсточникКопия = Новый ФиксированнаяСтруктура(Источник); + + Приемник = ЮТКоллекции.СкопироватьСтруктуру(Источник); + + // Проверяем, что все элементы источника были скопированы в приемник + ЮТест.ОжидаетЧто(Приемник).ИмеетТип("Структура"); + Для Каждого Элемент Из ИсточникКопия Цикл + ЮТест.ОжидаетЧто(Приемник).Свойство(Элемент.Ключ).Равно(Элемент.Значение); + КонецЦикла; + + // Проверяем, что источник не изменился после вызова функции + ЮТест.ОжидаетЧто(Источник).ИмеетТип("Структура"); + Для Каждого Элемент Из ИсточникКопия Цикл + ЮТест.ОжидаетЧто(Источник).Свойство(Элемент.Ключ).Равно(Элемент.Значение); + КонецЦикла; + + // Проверяем, что приемник и источник не ссылаются на один и тот же объект + Источник.Вставить("НовоеЗначение", ЮТест.Данные().СлучайнаяСтрока()); + ЮТест.ОжидаетЧто(Приемник).НеСодержит("НовоеЗначение"); + + // Проверяем работу функции со вложенными структурами + ВложеннаяСтруктура = Новый Структура; + ВложеннаяСтруктура.Вставить("ВложенноеЧисло", ЮТест.Данные().СлучайноеЧисло(100)); + Источник.Вставить("ВложеннаяСтруктура", ВложеннаяСтруктура); + + Приемник = ЮТКоллекции.СкопироватьСтруктуру(Источник); + + ЮТест.ОжидаетЧто(Приемник).Свойство("ВложеннаяСтруктура").ИмеетТип("Структура"); + ЮТест.ОжидаетЧто(Приемник.ВложеннаяСтруктура).Свойство("ВложенноеЧисло").Равно(ВложеннаяСтруктура.ВложенноеЧисло); + + // Проверяем, что приемник и источник не ссылаются на один и тот же объект + ВложеннаяСтруктура.Вставить("НовоеВложенноеЗначение", ЮТест.Данные().СлучайнаяСтрока()); + ЮТест.ОжидаетЧто(Приемник.ВложеннаяСтруктура).НеСодержит("НовоеВложенноеЗначение"); + +КонецПроцедуры + +Процедура СкопироватьСоответствие() Экспорт + + Источник = Новый Соответствие; + Источник.Вставить(ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайнаяСтрока()); + Источник.Вставить(ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайнаяСтрока()); + Источник.Вставить(ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайнаяСтрока()); + + Результат = ЮТКоллекции.СкопироватьСоответствие(Источник); + + ЮТест.ОжидаетЧто(Результат) + .Равно(Источник) + .ИмеетТип("Соответствие") + .ИмеетДлину(3); +КонецПроцедуры + +Процедура СкопироватьМассив() Экспорт + + Источник = Новый Массив; + Источник.Добавить(ЮТест.Данные().СлучайнаяСтрока()); + Источник.Добавить(ЮТест.Данные().СлучайноеЧисло()); + Источник.Добавить(ЮТест.Данные().СлучайнаяДата()); + + Результат = ЮТКоллекции.СкопироватьМассив(Источник); + + ЮТест.ОжидаетЧто(Результат) + .Равно(Источник) + .ИмеетТип("Массив") + .ИмеетДлину(Источник.Количество()); + +КонецПроцедуры + +Процедура СкопироватьСписокЗначений() Экспорт + + Источник = Новый СписокЗначений; + Источник.Добавить(ЮТест.Данные().СлучайнаяСтрока(), "Представление Строка"); + Источник.Добавить(ЮТест.Данные().СлучайноеЧисло(), "Представление Число"); + Источник.Добавить(ЮТест.Данные().СлучайнаяДата(), "Представление Дата"); + + Результат = ЮТКоллекции.СкопироватьСписокЗначений(Источник); + + ЮТест.ОжидаетЧто(Результат, "Список значений после копирования") + .Равно(Источник) + .ИмеетТип("СписокЗначений") + .ИмеетДлину(Источник.Количество()); + + Для Инд = 0 По Результат.Количество() - 1 Цикл + ЮТест.ОжидаетЧто(Результат[Инд], "Элемент списка значений после копирования") + .Свойство("Значение").Равно(Источник[Инд].Значение) + .Свойство("Представление").Заполнено(); + КонецЦикла; + +КонецПроцедуры + +Процедура ВыгрузитьЗначения() Экспорт + + Коллекция = Новый Массив; + Коллекция.Добавить(Новый Структура("ИмяРеквизита", ЮТест.Данные().СлучайнаяСтрока())); + Коллекция.Добавить(Новый Структура("ИмяРеквизита", ЮТест.Данные().СлучайнаяСтрока())); + Коллекция.Добавить(Новый Структура("ИмяРеквизита", ЮТест.Данные().СлучайнаяСтрока())); + + Результат = ЮТКоллекции.ВыгрузитьЗначения(Коллекция, "ИмяРеквизита"); + + ЮТест.ОжидаетЧто(Результат, "Массив значений после выгрузки") + .ИмеетТип("Массив") + .ИмеетДлину(Коллекция.Количество()); + + Для Инд = 0 По Результат.Количество() - 1 Цикл + ЮТест.ОжидаетЧто(Результат).Элемент(Инд).Равно(Коллекция[Инд].ИмяРеквизита); + КонецЦикла; + +КонецПроцедуры + +Процедура ПересечениеМассивов() Экспорт + + Коллекция1 = Новый Массив; + Коллекция1.Добавить(ЮТест.Данные().СлучайнаяСтрока()); + Коллекция1.Добавить(ЮТест.Данные().СлучайнаяСтрока()); + Коллекция1.Добавить(ЮТест.Данные().СлучайнаяСтрока()); + + Коллекция2 = Новый Массив; + Коллекция2.Добавить(Коллекция1[0]); + Коллекция2.Добавить(ЮТест.Данные().СлучайнаяСтрока()); + Коллекция2.Добавить(ЮТест.Данные().СлучайнаяСтрока()); + + Результат = ЮТКоллекции.ПересечениеМассивов(Коллекция1, Коллекция2); + + ЮТест.ОжидаетЧто(Результат, "Массив значений после пересечения") + .ИмеетТип("Массив") + .ИмеетДлину(1) + .Элемент(0).Равно(Коллекция1[0]); +КонецПроцедуры + +Процедура ЗначениеВМассиве() Экспорт + + Значение1 = ЮТест.Данные().СлучайнаяСтрока(); + Значение2 = ЮТест.Данные().СлучайнаяСтрока(); + Значение3 = ЮТест.Данные().СлучайнаяСтрока(); + Значение4 = ЮТест.Данные().СлучайнаяСтрока(); + Значение5 = ЮТест.Данные().СлучайнаяСтрока(); + Значение6 = ЮТест.Данные().СлучайнаяСтрока(); + Значение7 = ЮТест.Данные().СлучайнаяСтрока(); + Значение8 = ЮТест.Данные().СлучайнаяСтрока(); + Значение9 = ЮТест.Данные().СлучайнаяСтрока(); + Значение10 = ЮТест.Данные().СлучайнаяСтрока(); + + Результат = ЮТКоллекции.ЗначениеВМассиве(Значение1, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9, Значение10); + + ЮТест.ОжидаетЧто(Результат, "Массив значений после добавления") + .ИмеетТип("Массив") + .ИмеетДлину(10) + .Элемент(0).Равно(Значение1) + .Элемент(1).Равно(Значение2) + .Элемент(2).Равно(Значение3) + .Элемент(3).Равно(Значение4) + .Элемент(4).Равно(Значение5) + .Элемент(5).Равно(Значение6) + .Элемент(6).Равно(Значение7) + .Элемент(7).Равно(Значение8) + .Элемент(8).Равно(Значение9) + .Элемент(9).Равно(Значение10); + +КонецПроцедуры + +Процедура ВСоответствие() Экспорт + + Коллекция = Новый Массив; + Ключ1 = ЮТест.Данные().СлучайнаяСтрока(); + Значение1 = ЮТест.Данные().СлучайнаяСтрока(); + Ключ2 = ЮТест.Данные().СлучайнаяСтрока(); + Значение2 = ЮТест.Данные().СлучайнаяСтрока(); + Ключ3 = ЮТест.Данные().СлучайнаяСтрока(); + Значение3 = ЮТест.Данные().СлучайнаяСтрока(); + + Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ1, Значение1)); + Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ2, Значение2)); + Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ3, Значение3)); + + Результат = ЮТКоллекции.ВСоответствие(Коллекция, "Ключ", "Значение"); + + ЮТест.ОжидаетЧто(Результат, "Соответствие после преобразования") + .ИмеетТип("Соответствие") + .ИмеетДлину(Коллекция.Количество()) + .Элемент(Ключ1).Равно(Значение1) + .Элемент(Ключ2).Равно(Значение2) + .Элемент(Ключ3).Равно(Значение3); + + // Проверка когда последний параметр не указан + Результат = ЮТКоллекции.ВСоответствие(Коллекция, "Ключ"); + ЮТест.ОжидаетЧто(Результат, "Соответствие после преобразования без указания последнего параметра") + .ИмеетТип("Соответствие") + .ИмеетДлину(Коллекция.Количество()) + .Элемент(Ключ1).Равно(Коллекция[0]) + .Элемент(Ключ2).Равно(Коллекция[1]) + .Элемент(Ключ3).Равно(Коллекция[2]); + +КонецПроцедуры + +Процедура ВСтруктуру() Экспорт + + Коллекция = Новый Массив; + Ключ1 = ЮТест.Данные().СлучайнаяСтрока(); + Значение1 = ЮТест.Данные().СлучайнаяСтрока(); + Ключ2 = ЮТест.Данные().СлучайнаяСтрока(); + Значение2 = ЮТест.Данные().СлучайнаяСтрока(); + Ключ3 = ЮТест.Данные().СлучайнаяСтрока(); + Значение3 = ЮТест.Данные().СлучайнаяСтрока(); + + Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ1, Значение1)); + Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ2, Значение2)); + Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ3, Значение3)); + + Результат = ЮТКоллекции.ВСтруктуру(Коллекция, "Ключ", "Значение"); + + ЮТест.ОжидаетЧто(Результат, "Структура после преобразования") + .ИмеетТип("Структура") + .ИмеетДлину(Коллекция.Количество()) + .Свойство(Ключ1).Равно(Значение1) + .Свойство(Ключ2).Равно(Значение2) + .Свойство(Ключ3).Равно(Значение3); + + // Проверка когда последний параметр не указан + Результат = ЮТКоллекции.ВСтруктуру(Коллекция, "Ключ"); + + ЮТест.ОжидаетЧто(Результат, "Структура после преобразования без указания последнего параметра") + .ИмеетТип("Структура") + .ИмеетДлину(Коллекция.Количество()) + .Свойство(Ключ1).Равно(Коллекция[0]) + .Свойство(Ключ2).Равно(Коллекция[1]) + .Свойство(Ключ3).Равно(Коллекция[2]); + +КонецПроцедуры + +Процедура ПредставлениеМассива() Экспорт + + Данные = Новый Массив; + Значение1 = ЮТест.Данные().СлучайнаяСтрока(); + Значение2 = ЮТест.Данные().СлучайнаяСтрока(); + Значение3 = ЮТест.Данные().СлучайнаяСтрока(); + + Данные.Добавить(Значение1); + Данные.Добавить(Значение2); + Данные.Добавить(Значение3); + + Результат = ЮТКоллекции.ПредставлениеМассива(Данные); + + ОжидаемоеПредставление = СтрШаблон("[%1, %2, %3]", Значение1, Значение2, Значение3); + + ЮТест.ОжидаетЧто(Результат, "Представление массива") + .Равно(ОжидаемоеПредставление); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции From 14a10e4f7e06ed1c61dfbdabd3d6ebec6f2f9d81 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 28 Mar 2024 21:18:51 +0300 Subject: [PATCH 40/47] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 38 + .../blog/2023/04/29-02-engine-release.md | 2 - .../blog/2023/09/05-engine-release.md | 2 +- documentation/blog/authors.yml | 8 +- documentation/docs/cook-book/index.md | 7 + .../features/assertions/assertions-base.md | 601 +++++++++++++++ .../docs/features/assertions/assertions-db.md | 79 ++ .../docs/features/assertions/assertions.md | 66 ++ .../assertions/images/assertions-report.png | Bin 0 -> 124820 bytes .../features/auxiliary-modules/collections.md | 7 + .../docs/features/auxiliary-modules/index.md | 13 + .../features/auxiliary-modules/queries.md | 127 ++++ documentation/docs/features/context.md | 72 ++ documentation/docs/features/events.md | 69 ++ documentation/docs/features/features.md | 136 +++- .../images/allure-report-behaviors.png | Bin .../images/allure-report-suites.png | Bin .../docs/features/images/edt-create-mock.png | Bin 0 -> 122205 bytes .../docs/features/images/reports.png | Bin 0 -> 310440 bytes .../docs/features/mocking/mocking.md | 154 ++++ .../docs/features/mocking/mockito.md | 713 ++++++++++++++++++ documentation/docs/features/predicates.md | 228 ++++++ documentation/docs/{ => features}/reports.md | 14 +- .../features/test-data/data-generation.md | 306 ++++++++ .../features/test-data/data-manipulations.md | 6 + .../test-data/load-from-templates.md} | 337 ++++----- .../features/test-data/test-data-deletion.md | 246 ++++++ .../docs/features/test-data/test-data.md | 127 ++++ .../docs/features/test-registration.md | 52 ++ documentation/docs/first-test.md | 32 - .../docs/getting-started/auxiliary-modules.md | 97 +++ .../images/launch-type-and-extension.png | Bin 0 -> 52981 bytes .../edt-plugin/images/module-launch-test.png | Bin 0 -> 53847 bytes .../edt-plugin/images/report.png | Bin 0 -> 160482 bytes .../edt-plugin/images/yaxunit-commands.png | Bin 0 -> 207159 bytes .../docs/getting-started/edt-plugin/index.md | 58 ++ .../docs/getting-started/first-test.md | 125 +++ .../docs/getting-started/fluent-api.md | 102 +++ .../docs/getting-started/images/structure.png | Bin 0 -> 513730 bytes documentation/docs/getting-started/index.md | 14 + .../install/images/compare.png | Bin .../install/images/gh-release-content.png | Bin .../install/images/gh-release.png | Bin .../install/images/link-base-project.png | Bin .../images/plugin-install-from-rep.png | Bin .../install/images/project-import.png | Bin .../install/install-plugin.md | 42 +- .../{ => getting-started}/install/install.md | 8 +- .../docs/getting-started/recomendations.md | 12 + .../run/configuration.md | 10 +- .../run/images/from-configurator.png | Bin 0 -> 60377 bytes .../getting-started/run/images/run-button.png | Bin 0 -> 10975 bytes .../run/images/run-configuration.png | Bin 0 -> 56753 bytes .../run/images/run-from-command-palette.png | Bin 0 -> 139910 bytes .../run/images/run-from-module.png | Bin 0 -> 112975 bytes .../run/images/run-from-schema.png | Bin 0 -> 51335 bytes documentation/docs/getting-started/run/run.md | 91 +++ .../docs/getting-started/structure.md | 79 ++ .../docs/run/images/from-configurator.png | Bin 145575 -> 0 bytes documentation/docs/run/images/from-edt.png | Bin 80034 -> 0 bytes documentation/docs/run/run.md | 38 - .../user-api/assertions/assertions-base.md | 233 ------ .../docs/user-api/assertions/assertions-db.md | 44 -- .../docs/user-api/assertions/assertions.md | 26 - documentation/docs/user-api/context.md | 52 -- documentation/docs/user-api/index.md | 25 - documentation/docs/user-api/mockito.md | 285 ------- documentation/docs/user-api/predicates.md | 145 ---- documentation/docs/user-api/queries.md | 20 - .../user-api/test-data/test-data-deletion.md | 99 --- .../docs/user-api/test-registration.md | 39 - documentation/docs/yaxunit-ui.md | 5 + documentation/docusaurus.config.js | 26 +- documentation/package.json | 23 +- documentation/src/components/mindmap.js | 121 +++ documentation/src/pages/images/report.png | Bin 22109 -> 0 bytes documentation/src/pages/images/reports.png | Bin 0 -> 310440 bytes documentation/src/pages/images/telegram.svg | 16 + documentation/src/pages/index.md | 171 +---- .../src/theme/prism-include-languages.js | 23 + .../Module.bsl" | 11 +- .../Module.bsl" | 37 + ...0\265\321\205\320\262\320\260\321\202.mdo" | 9 + .../Module.bsl" | 8 +- .../Module.bsl" | 2 +- .../Module.bsl" | 13 +- .../src/Configuration/Configuration.mdo | 1 + .../ObjectModule.bsl" | 108 +-- .../ObjectModule.bsl" | 17 +- .../ManagerModule.bsl" | 6 +- .../ObjectModule.bsl" | 6 +- .../ObjectModule.bsl" | 4 +- .../Module.bsl" | 6 +- .../Module.bsl" | 3 +- .../Module.bsl" | 6 +- .../Module.bsl" | 21 +- .../Module.bsl" | 4 +- .../ObjectModule.bsl" | 19 +- .../ObjectModule.bsl" | 4 +- .../ManagerModule.bsl" | 19 +- .../RecordSetModule.bsl" | 22 +- 101 files changed, 4230 insertions(+), 1567 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 documentation/docs/cook-book/index.md create mode 100644 documentation/docs/features/assertions/assertions-base.md create mode 100644 documentation/docs/features/assertions/assertions-db.md create mode 100644 documentation/docs/features/assertions/assertions.md create mode 100644 documentation/docs/features/assertions/images/assertions-report.png create mode 100644 documentation/docs/features/auxiliary-modules/collections.md create mode 100644 documentation/docs/features/auxiliary-modules/index.md create mode 100644 documentation/docs/features/auxiliary-modules/queries.md create mode 100644 documentation/docs/features/context.md create mode 100644 documentation/docs/features/events.md rename documentation/docs/{ => features}/images/allure-report-behaviors.png (100%) rename documentation/docs/{ => features}/images/allure-report-suites.png (100%) create mode 100644 documentation/docs/features/images/edt-create-mock.png create mode 100644 documentation/docs/features/images/reports.png create mode 100644 documentation/docs/features/mocking/mocking.md create mode 100644 documentation/docs/features/mocking/mockito.md create mode 100644 documentation/docs/features/predicates.md rename documentation/docs/{ => features}/reports.md (50%) create mode 100644 documentation/docs/features/test-data/data-generation.md create mode 100644 documentation/docs/features/test-data/data-manipulations.md rename documentation/docs/{user-api/test-data/test-data.md => features/test-data/load-from-templates.md} (62%) create mode 100644 documentation/docs/features/test-data/test-data-deletion.md create mode 100644 documentation/docs/features/test-data/test-data.md create mode 100644 documentation/docs/features/test-registration.md delete mode 100644 documentation/docs/first-test.md create mode 100644 documentation/docs/getting-started/auxiliary-modules.md create mode 100644 documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png create mode 100644 documentation/docs/getting-started/edt-plugin/images/module-launch-test.png create mode 100644 documentation/docs/getting-started/edt-plugin/images/report.png create mode 100644 documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png create mode 100644 documentation/docs/getting-started/edt-plugin/index.md create mode 100644 documentation/docs/getting-started/first-test.md create mode 100644 documentation/docs/getting-started/fluent-api.md create mode 100644 documentation/docs/getting-started/images/structure.png create mode 100644 documentation/docs/getting-started/index.md rename documentation/docs/{ => getting-started}/install/images/compare.png (100%) rename documentation/docs/{ => getting-started}/install/images/gh-release-content.png (100%) rename documentation/docs/{ => getting-started}/install/images/gh-release.png (100%) rename documentation/docs/{ => getting-started}/install/images/link-base-project.png (100%) rename documentation/docs/{ => getting-started}/install/images/plugin-install-from-rep.png (100%) rename documentation/docs/{ => getting-started}/install/images/project-import.png (100%) rename documentation/docs/{ => getting-started}/install/install-plugin.md (76%) rename documentation/docs/{ => getting-started}/install/install.md (92%) create mode 100644 documentation/docs/getting-started/recomendations.md rename documentation/docs/{ => getting-started}/run/configuration.md (96%) create mode 100644 documentation/docs/getting-started/run/images/from-configurator.png create mode 100644 documentation/docs/getting-started/run/images/run-button.png create mode 100644 documentation/docs/getting-started/run/images/run-configuration.png create mode 100644 documentation/docs/getting-started/run/images/run-from-command-palette.png create mode 100644 documentation/docs/getting-started/run/images/run-from-module.png create mode 100644 documentation/docs/getting-started/run/images/run-from-schema.png create mode 100644 documentation/docs/getting-started/run/run.md create mode 100644 documentation/docs/getting-started/structure.md delete mode 100644 documentation/docs/run/images/from-configurator.png delete mode 100644 documentation/docs/run/images/from-edt.png delete mode 100644 documentation/docs/run/run.md delete mode 100644 documentation/docs/user-api/assertions/assertions-base.md delete mode 100644 documentation/docs/user-api/assertions/assertions-db.md delete mode 100644 documentation/docs/user-api/assertions/assertions.md delete mode 100644 documentation/docs/user-api/context.md delete mode 100644 documentation/docs/user-api/index.md delete mode 100644 documentation/docs/user-api/mockito.md delete mode 100644 documentation/docs/user-api/predicates.md delete mode 100644 documentation/docs/user-api/queries.md delete mode 100644 documentation/docs/user-api/test-data/test-data-deletion.md delete mode 100644 documentation/docs/user-api/test-registration.md create mode 100644 documentation/src/components/mindmap.js delete mode 100644 documentation/src/pages/images/report.png create mode 100644 documentation/src/pages/images/reports.png create mode 100644 documentation/src/pages/images/telegram.svg create mode 100644 documentation/src/theme/prism-include-languages.js create mode 100644 "exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..2ec88eb2c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,38 @@ +{ + "cSpell.words": [ + "валидировать", + "замокированного", + "логирвания", + "Ментейнер", + "моками", + "моки", + "Мокирование", + "мокировании", + "мокированию", + "мокирования", + "мокировать", + "мокируем", + "Мокируемый", + "мокирующий", + "Мокито", + "моков", + "Неопределено", + "Переиспользование", + "помогаторы", + "пресетов", + "Регистронезависимое", + "релизный", + "сериализацию", + "сериализуемых", + "фейкового", + "фейковых", + "фича", + "юнит", + "autonumber", + "bellerage", + "mindmap", + "Wiremock", + "XDTO", + "yaxunit" + ] +} \ No newline at end of file diff --git a/documentation/blog/2023/04/29-02-engine-release.md b/documentation/blog/2023/04/29-02-engine-release.md index 97c6c0811..e2b88942d 100644 --- a/documentation/blog/2023/04/29-02-engine-release.md +++ b/documentation/blog/2023/04/29-02-engine-release.md @@ -34,7 +34,5 @@ tags: [releases, yaxunit] * Доработан движок для работы в режиме без использования синхронных методов :::caution Внимание - В ближайших версиях будет удален вариант точки входа в тестовый модуль ИсполняемыеСценарии с параметрами. - ::: diff --git a/documentation/blog/2023/09/05-engine-release.md b/documentation/blog/2023/09/05-engine-release.md index e03bbd1c9..f06a5f4f9 100644 --- a/documentation/blog/2023/09/05-engine-release.md +++ b/documentation/blog/2023/09/05-engine-release.md @@ -10,7 +10,7 @@ tags: [releases, yaxunit] ### Тестовые данные -* Загрузка данных из табличного документа или таблицы markdown [#133](https://github.com/bia-technologies/yaxunit/issues/133), [документация](https://bia-technologies.github.io/yaxunit/docs/user-api/test-data/#%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B8%D0%B7-%D0%BC%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2). Спасибо [@dlyubanevich](https://github.com/dlyubanevich) +* Загрузка данных из табличного документа или таблицы markdown [#133](https://github.com/bia-technologies/yaxunit/issues/133), [документация](https://bia-technologies.github.io/yaxunit/docs/features/test-data/#%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B8%D0%B7-%D0%BC%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2). Спасибо [@dlyubanevich](https://github.com/dlyubanevich) * Добавить возможность указывать тип фикции [#121](https://github.com/bia-technologies/yaxunit/issues/121) * Добавить возможность получать случайное значение перечисления [#132](https://github.com/bia-technologies/yaxunit/issues/132) * Тестовые данные, добавить метод СлучайныйИдентификатор [#102](https://github.com/bia-technologies/yaxunit/issues/102) diff --git a/documentation/blog/authors.yml b/documentation/blog/authors.yml index 97026a598..9952a12a3 100644 --- a/documentation/blog/authors.yml +++ b/documentation/blog/authors.yml @@ -1,5 +1,5 @@ alkoleft: - name: alkoleft - title: Разработчик YaxUnit - url: https://github.com/alkoleft - image_url: https://github.com/alkoleft.png \ No newline at end of file + name: alkoleft + title: Разработчик YAxUnit + url: https://github.com/alkoleft + image_url: https://github.com/alkoleft.png diff --git a/documentation/docs/cook-book/index.md b/documentation/docs/cook-book/index.md new file mode 100644 index 000000000..6b28e4b3e --- /dev/null +++ b/documentation/docs/cook-book/index.md @@ -0,0 +1,7 @@ +# Кулинарная книга тестов + +* как тестировать веб-сервисы +* как тестировать локальные функции +* как подключать свои плагины/шаги/методы специфичные для своей базы +* поддержка англ.языка, линукса, Конфигуратора +* что за и зачем нужен Макито \ No newline at end of file diff --git a/documentation/docs/features/assertions/assertions-base.md b/documentation/docs/features/assertions/assertions-base.md new file mode 100644 index 000000000..9e4cd80a2 --- /dev/null +++ b/documentation/docs/features/assertions/assertions-base.md @@ -0,0 +1,601 @@ +--- +tags: [Начало, Утверждения] +--- + +# Базовые утверждения + +Утверждения для проверки значений + +Доступ к утверждениям обеспечивает метод [`ЮТест.ОжидаетЧто`](/api/ЮТест#ожидаетчто), который возвращает инициализированный модуль [`ЮТУтверждения`](/api/ЮТУтверждения), реализующий работу с утверждениями. + +:::tip +Не рекомендуется обращаться к модулю `ЮТУтверждения` напрямую, используйте `ЮТест.ОжидаетЧто` +::: + +* Реализован достаточный набор проверок значений + * [Сравнение значений](#сравнение-значений) + * [Методы позиционирования](#методы-позиционирования) + * [Проверка заполненности](#проверка-заполненности) + * [Проверка строк](#проверка-строк) + * [Проверка вхождения значения в интервал](#проверка-вхождения-значения-в-интервал) + * [Проверка типа значения](#проверка-типа-значения) + * [Проверка выполнения метода](#проверка-выполнения-метода) + * [Проверка наличия свойств/реквизитов](#проверка-наличия-свойствреквизитов) + * [Проверка коллекции](#проверка-коллекции) + * [Проверка на соответствие набору условий, предикату](#проверка-на-соответствие-набору-условий-предикату) +* Большая часть методов - это сравнения фактического и ожидаемого результатов, но есть несколько методов настройки + * [`Что`](/api/ЮТУтверждения#что) - устанавливает проверяемый объект. Все дальнейшие проверки будут выполняется с этим объектом + * [`Метод`](/api/ЮТУтверждения#метод) - устанавливает имя и параметры проверяемого метода. Для проверки методов имеются утверждения [`ВыбрасываетИсключение`](/api/ЮТУтверждения#выбрасываетисключение) и [`НеВыбрасываетИсключение`](/api/ЮТУтверждения#невыбрасываетисключение) + * [`Параметр`](/api/ЮТУтверждения#параметр) - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода + * [`Свойство`](/api/ЮТУтверждения#свойство) - устанавливает проверяемое свойство и проверяет его наличие. + * Последующие проверки, вызванные после этого метода, будут относиться к свойству объекта. + Например, `ЮТест.ОжидаетЧто(Контекст).Свойство("ИмяМетода").Равно("МетодБезИсключение")` эквивалентно проверке `Контекст.ИмяМетода = "МетодБезИсключение"` +* Методы работы со свойствами позволяют указывать цепочку свойств (доступ к вложенным свойствам через точку) + Например: + * `Свойство("Контекст.ИмяМетода")` - вложенное свойство + * `ИмеетСвойство("Контекст.ПараметрыМетода[0]")` - элемент вложенной коллекции + * `НеИмеетСвойства("[0].Свойство")` - свойство элемента коллекции +* Все методы имеют параметр `ОписаниеПроверки` для детального описания. + +## Доступные методы + +:::tip +Полный и актуальный набор методов смотрите в описании API +::: + +### Сравнение значений + +* [`Равно`](/api/ЮТУтверждения#равно) - проверка на равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению +* [`НеРавно`](/api/ЮТУтверждения#неравно) - проверка на не равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению +* [`Больше`](/api/ЮТУтверждения#больше) - проверяемое значение должно быть больше указанного +* [`БольшеИлиРавно`](/api/ЮТУтверждения#большеилиравно) - проверяемое значение должно быть больше или равно указанному +* [`Меньше`](/api/ЮТУтверждения#меньше) - проверяемое значение должно быть меньше указанного +* [`МеньшеИлиРавно`](/api/ЮТУтверждения#меньшеилиравно) - проверяемое значение должно быть меньше или равно указанному +* [`ЭтоНеопределено`](/api/ЮТУтверждения#этонеопределено) - проверяемое значение должно быть равно `Неопределено` +* [`ЭтоНеНеопределено`](/api/ЮТУтверждения#этоненеопределено) - проверяемое значение должно быть не равно `Неопределено` +* [`ЭтоNull`](/api/ЮТУтверждения#этоnull) - проверяемое значение должно быть равно `Null` +* [`ЭтоНеNull`](/api/ЮТУтверждения#этонеnull) - проверяемое значение должно быть не равно `Null` +* [`ЭтоИстина`](/api/ЮТУтверждения#этоистина) - проверяемое значение должно быть истиной +* [`ЭтоНеИстина`](/api/ЮТУтверждения#этонеистина) - проверяемое значение не должно быть истиной +* [`ЭтоЛожь`](/api/ЮТУтверждения#этоложь) - проверяемое значение должно быть ложью +* [`ЭтоНеЛожь`](/api/ЮТУтверждения#этонеложь) - проверяемое значение не должно быть ложью +* [`ВСписке`](/api/ЮТУтверждения#этонеложь) - проверяемое значение должно входить в список указанных. + +```bsl +Значение = 1; +ЮТУтверждения.Что(Значение) + .Равно(1) + .НеРавно(2) + .Больше(0) + .БольшеИлиРавно(-10) + .Меньше(10) + .МеньшеИлиРавно(2) + .ЭтоНеИстина() + .ЭтоНеЛожь() + .ВСписке(ЮТКоллекция.ЗначениеВМассиве(0, 1, 2)); +``` + +#### Особенности сравнения + +* При сравнении значений сравниваются их типы. Это отличается от стандартного поведения 1С:Предприятие, где некоторые значения разных типов могут быть равны, например `1 = Истина` + ```bsl + ЮТест.ОжидаетЧто(1 = Истина).ЭтоИстина(); // Проверка успешна + ЮТест.ОжидаетЧто(1).Равно(Истина); // Проверка провалится + ``` +* Для большинства типов данных реализовано сравнение "по значению", когда сравниваются (рекурсивно) значения реквизитов объекта. +* Поддерживается сравнение структур и соответствий. + ```bsl + Значение1 = Новый Структура("Реквизит", 1); + Значение2 = Новый Структура("Реквизит", 1); + ЮТест.ОжидаетЧто(Значение1 = Значение2).ЭтоИстина(); // Проверка провалится + ЮТест.ОжидаетЧто(Значение1).Равно(Значение2); // Проверка успешна + ``` +* Поддерживается сравнение массивов, таблиц и табличных документов. +* Поддерживается сравнение значений упакованных в `ХранилищеЗначения`. +* Для прочих сериализуемых значений (не примитивов) сравнение происходит через сериализацию в JSON. + +### Методы позиционирования + +Любое из утверждений можно применять как к самому анализируемому объекту, так и к его свойствам, реквизитам, вложенным элементам. +Например, проверить, наличие заполненной табличной части документа используя выражение + +```bsl +ЮТест.ОжидаетЧто(Документ) + .Свойство("Товары").Заполнено() + .Свойство("Товары[0].Номенклатура").Равно(ОжидаемыйТовар) +; +``` + +Благодаря методам [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент) можно позиционировать (переключать объект проверки) утверждения на вложенный реквизит/элемент. + +Методы [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент) переключают объект проверки для последующих методов-утверждений. Они будут применяться к значению свойства или элементу коллекции. Но не переключает сам контекст на это значение, а всегда применяется к исходному объекту, помещенному в [`ОжидаетЧто`](/api/ЮТест#ожидаетчто). + +* [`Свойство`](/api/ЮТУтверждения#свойство) - проверяет наличие свойства и позиционирует дальнейшие проверки на указанном свойстве. +* [`Элемент`](/api/ЮТУтверждения#элемент) - проверяет наличие элемента коллекции и позиционирует дальнейшие проверки на указанном элементе. На самом деле это просто алиас (псевдоним) для метода `Свойство` и выполняет он тоже самое. +* [`Объект`](/api/ЮТУтверждения#объект) - позиционирует дальнейшие проверки на объекте, указанном в методе [`ОжидаетЧто`](/api/ЮТест#ожидаетчто). +* [`НетСвойства`](/api/ЮТУтверждения#нетсвойства) - проверяет отсутствие свойства и позиционирует дальнейшие проверки на объекте, указанном в методе [`ОжидаетЧто`](/api/ЮТест#ожидаетчто). + +:::caution +Методы [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент) всегда вычисляют путь от объекта указанного в [`ОжидаетЧто`](/api/ЮТест#ожидаетчто), они не учитывают предыдущие изменения позиции. + +Например, чтобы проверить значение реквизита `Реквизит.ВложенныйРеквизит` + +```bsl title="Неправильно" +Объект = Новый Структура("Реквизит", Новый Структура("ВложенныйРеквизит", 1)); + +ЮТест.ОжидаетЧто(Объект) + .Свойство("Реквизит") + .Свойство("ВложенныйРеквизит").Равно(1) // Выбросит исключение, тк объект не содержит свойство "ВложенныйРеквизит" +; +``` + +Правильно в таком примере указывать сразу полный путь для свойства. + +```bsl title="Правильно" +ЮТест.ОжидаетЧто(Объект) + .Свойство("Реквизит.ВложенныйРеквизит").Равно(1) +; +``` + +::: + +Методы [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент), принимают на вход не просто имя реквизита, а выражение, для перехода к нужному свойству, таким образом вы можете позиционироваться: + +* На свойствах объекта + ```bsl + ЮТест.ОжидаетЧто(Объект) + .Свойство("Реквизит").Равно(ОжидаемоеЗначение) + ``` +* На вложенных свойствах объекта `Свойство("Реквизит.ВложенныйРеквизит")` + ```bsl + ЮТест.ОжидаетЧто(Объект) + .Свойство("Реквизит.ВложенныйРеквизит").Равно(ОжидаемоеЗначение) + ``` +* На элементах коллекций + ```bsl + ЮТест.ОжидаетЧто(Документ.Товары) + .Свойство("[0].Товар").Равно(ОжидаемоеЗначение); + // Или + ЮТест.ОжидаетЧто(Документ) + .Свойство("Товары[0].Товар").Равно(ОжидаемоеЗначение); + ``` +* Можно позиционировать на элементах коллекции с конца + ```bsl + ЮТест.ОжидаетЧто(Документ.Товары) + .Свойство("[-1].Товар").Равно(ОжидаемоеЗначение) // Последний элемент; + .Элемент(-1).ИмеетСвойство("Товар") // Последний элемент + ``` + +### Проверка заполненности + +* [`Заполнено`](/api/ЮТУтверждения#заполнено) - проверяет заполненность значения + ```bsl + ЮТест.ОжидаетЧто(ОбъектПроверки) + .Заполнено() + .Свойство("Номер").Заполнено(); + ``` +* [`НеЗаполнено`](/api/ЮТУтверждения#незаполнено) - проверяет незаполненность значения + ```bsl + Значения = ЮТКоллекции.ЗначениеВМассиве(0, "", " ", Неопределено, Null, '00010101', Новый Структура(), Справочники.Товары.ПустаяСсылка()); + Для каждого Значение Из Значения Цикл + ЮТест.ОжидаетЧто(Значение) + .НеЗаполнено() + КонецЦикла; + ``` +* [`Существует`](/api/ЮТУтверждения#существует) - проверяет существование (не равно `Null` и `Неопределено`) значения + ```bsl + ЮТест.ОжидаетЧто(ВыборкаЗапроса) + .Свойство("Номер").Существует(); + ``` +* [`НеСуществует`](/api/ЮТУтверждения#несуществует) - проверяет не существование (не равно `Null` и `Неопределено`) значения + ```bsl + ЮТест.ОжидаетЧто(ВыборкаЗапроса) + .Свойство("Номер").НеСуществует(); + ``` + +### Проверка строк + +* [`ИмеетДлину`](/api/ЮТУтверждения#имеетдлину) - проверяет, что строка имеет указанную длину +* [`ИмеетДлинуБольше`](/api/ЮТУтверждения#имеетдлинубольше) - проверяет, что длин строки больше указанной +* [`ИмеетДлинуМеньше`](/api/ЮТУтверждения#имеетдлинуменьше) - проверяет, что длина строки меньше указанной +* [`НеИмеетДлину`](/api/ЮТУтверждения#неимеетдлину) - проверяет, что длина строки отличается от указанной +* [`Содержит`](/api/ЮТУтверждения#содержит) - проверяемая строка содержит указанную подстроку +* [`НеСодержит`](/api/ЮТУтверждения#несодержит) - проверяемая строка не содержит указанную подстроку +* [`НачинаетсяС`](/api/ЮТУтверждения#начинаетсяс) - проверяемая строка начинается с указанной строки +* [`ЗаканчиваетсяНа`](/api/ЮТУтверждения#заканчиваетсяна) - проверяемая строка заканчивается на указанную строку + +```bsl +ПроверяемоеЗначение = "Ох, нелегкая это работа - Из болота тащить бегемота"; +ЮТест.ОжидаетЧто("ПроверяемоеЗначение") + .ИмеетДлинуБольше(10) + .ИмеетДлинуМеньше(100) + .ИмеетДлину(51) + .Содержит("работа") + .НеСодержит("зарплата") + .НачинаетсяС("Ох") + .ЗаканчиваетсяНа("мота") +``` + +* [`СодержитСтрокуПоШаблону`](/api/ЮТУтверждения#содержитстрокупошаблону) - проверяемая строка содержит подстроку, соответствующую регулярному выражению +* [`НеСодержитСтрокуПоШаблону`](/api/ЮТУтверждения#несодержитстрокупошаблону) - проверяемая строка не содержит подстроку, соответствующую регулярному выражению + +```bsl +ПроверяемоеЗначение = "Ох, нелегкая это работа - Из болота тащить бегемота"; +ЮТест.ОжидаетЧто("ПроверяемоеЗначение") + .СодержитСтрокуПоШаблону("^[а-яА-Я\s,\-]*$") // Строка содержит только кириллицу, пробелы и знаки пунктуации + .НеСодержитСтрокуПоШаблону("\d") // Не содержит цифр +``` + +### Проверка вхождения значения в интервал + +* [`МеждуВключаяГраницы`](/api/ЮТУтверждения#междувключаяграницы) - проверяемое значение находиться в указанному интервале (включая границы) +* [`МеждуИсключаяГраницы`](/api/ЮТУтверждения#междуисключаяграницы) - проверяемое значение находиться в указанному интервале (исключая границы) +* [`МеждуВключаяНачалоГраницы`](/api/ЮТУтверждения#междувключаяначалограницы) - проверяемое значение находиться в указанному интервале (включая левую границу и исключая правую) +* [`МеждуВключаяОкончаниеГраницы`](/api/ЮТУтверждения#междувключаяокончаниеграницы) - проверяемое значение находиться в указанному интервале (исключая левую границу и включая правую) + +```bsl +ЮТест.ОжидаетЧто(10) + .МеждуВключаяГраницы(0, 10) + .МеждуИсключаяГраницы(0, 100); +ЮТест.ОжидаетЧто(ТекущаяДата()) + .МеждуВключаяНачалоГраницы(НачалоДня, НачалоСледующегоДня); +``` + +### Проверка типа значения + +* [`ИмеетТип`](/api/ЮТУтверждения#имееттип) - проверяемое значение должно иметь указанный тип +* [`НеИмеетТип`](/api/ЮТУтверждения#неимееттип) - тип проверяемого значения должен отличаться от указанного + +В качестве аргумента можно указывать + +* Имя типа строкой или список имен типов через запятую. + `ИмеетТип("Строка").ИмеетТип("Строка, Число")` +* Конкретный тип. + `ИмеетТип(Тип("Строка"))` +* Описание типов. + `ИмеетТип(Новый ОписаниеТипов("Строка, Число"))` + +### Проверка выполнения метода + +API для проверки, выбрасываемых методом проверяемого объекта исключения. +Первоначально необходимо описать какой метод нужно проверить, к какому объекту он относится и с какими параметрами его необходимо вызвать. Для этих целей необходимо использовать: + +* [`ЮТест.ОжидаетЧто`](/api/ЮТест#ожидаетчто) - устанавливает владельца метода +* [`Метод`](/api/ЮТУтверждения#метод) - устанавливает имя и параметры проверяемого метода +* [`Параметр`](/api/ЮТУтверждения#параметр) - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода + +После формируем ожидание - должен или нет методы выбросить исключение и с каким текстом. + +* [`ВыбрасываетИсключение`](/api/ЮТУтверждения#выбрасываетисключение) - выполняет настроенный метод объекта с параметрами и проверяет, что метод выбросит исключение и текст исключения содержит(включает) указанную в строку. При необходимости можно настроить (передать параметр), чтобы метод выполнился **в транзакции**. + + ```bsl + ЮТест.ОжидаетЧто(Документ) // Объект, метод которого проверяем + .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение) // Указываем проверяемый метод и параметры вызова + .ВыбрасываетИсключение("Значение поля ""Дата"" не может быть пустой датой") // Утверждение-проверка, исключение должно содержать указанный текст. + .ВыбрасываетИсключение("""Дата""") // Можно указать только часть исключения, проверить вхождение указанной строки. + .ВыбрасываетИсключение("""Дата""", , Истина) // Выполнение указанного метода в транзакции + ``` + + :::info Вопрос + Можно ли **не указывать** текст исключения? + **Ответ:** Нельзя, вы должны конкретизировать свои ожидания, зафиксировать, какую ошибку ждете, иначе поведение может измениться и тест это не отработает. + ::: +* [`НеВыбрасываетИсключение`](/api/ЮТУтверждения#невыбрасываетисключение) - выполняет настроенный метод объекта с параметрами и проверяет, что метод не выбросит исключение или выбросит исключения с текстом отличным от указанного. При необходимости можно настроить (передать параметр), чтобы метод выполнился **в транзакции**. + + ```bsl + ЮТест.ОжидаетЧто(Документ) // Объект, метод которого проверяем + .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение) // Указываем проверяемый метод и параметры вызова + .НеВыбрасываетИсключение() // Утверждение-проверка, метод выполниться без ошибки. + .НеВыбрасываетИсключение("""Дата""") // Утверждение-проверка, метод выполниться без ошибки, либо с ошибкой, которая не содержит "Дата". + .НеВыбрасываетИсключение("""Дата""", , Истина) // Выполнение указанного метода в транзакции + ``` + + :::caution Не злоупотребляйте проверкой `НеВыбрасываетИсключение` + Многие используют это утверждения, для вызова чуть ли не каждого проверяемого метода. + Этого делать не стоит. + Это утверждение должно редко применяться, если ваш метод упадет, это и так будет отражено в отчете. + Один из случаев когда оно может применяться, вы используете его **перед** проверками на исключения, чтобы убедится, что метод рабочий. + + ```bsl + Документ = СоздатьДокумент(); + Утверждение = ЮТест.ОжидаетЧто(Документ) + .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение) + .НеВыбрасываетИсключение("""Дата"""); // Проверим, что при нормальном заполнении ошибки нет + + Документ.Дата = Неопределено; + Утверждение.ВыбрасываетИсключение("""Дата""", "Документ проведен при незаполненной дате"); + ``` + + ::: + + :::caution Нельзя явно вызывать проверяемый метод + Хочу обратить внимание. Когда вы проверяете метод на исключения/их отсутствие вы должны указать: + + ```bsl + ЮТест.ОжидаетЧто(Документ) // 1. Владельца метода + .Метод("Записать") // 2. Имя метода + .Параметр(РежимЗаписиДокумента.Проведение) // 3. Параметры вызова метода + + // Явно вызывать метод нельзя. + ЮТест.ОжидаетЧто(Документ) + .Метод(Документ.Записать(РежимЗаписиДокумента.Проведение)) // Так делать нельзя, так не сработает проверка. + ``` + + Вы **не должны** явно вызывать метод, это должен сделать тестовый движок, чтобы поймать и проанализировать ошибку. + ::: + +### Проверка наличия свойств/реквизитов + +* [`ИмеетСвойство`](/api/ЮТУтверждения#имеетсвойство) - проверяемый объект должен содержать указанное свойство +* [`НеИмеетСвойства`](/api/ЮТУтверждения#неимеетсвойства) - проверяемый объект не содержит указанное свойство +* [`ИмеетСвойстваРавные`](/api/ЮТУтверждения#имеетсвойстваравные) - проверяемый объект должен содержать указанный набор свойств/реквизитов и значений + +Поддерживается проверка наличия свойство для различных объектов: структур, массивов, таблиц, документов и тд. +Вы можете проверить наличие свойства не только у текущего объекта, но и у его дочерних. +Например, `ИмеетСвойство("Родитель.Наименование")`, будет выполнена проверка наличия свойства `Родитель` у текущего объекта и свойства `Наименование` у родителя. + +Также можно проверять наличие свойств у коллекций. +Например, `ИмеетСвойство("Товары[0].Наименование")`, утверждение проверит наличие свойства `Товары`, наличие у него первого элемента и наличие свойства `Наименование` у этого элемента. + +```bsl +Документ = Документы.ПриходТовара.СоздатьДокумент(); + +ЮТест.ОжидаетЧто(Документ) + .ИмеетСвойство("Товары[0]") + .Свойство("Товары[0]") + .ИмеетСвойство("Товар") + .ИмеетСвойство("Количество") + .ИмеетСвойство("Цена"); +``` + +Как вы могли заменить в качестве имени свойства указывается выражение, такое же как и обычном коде. + +```bsl +Документ = Документы.ПриходТовара.СоздатьДокумент(); + +Свойство = Документ.Товары[0].Наименование; +ЮТест.ОжидаетЧто(Документ) + .Свойство("Товары[0].Наименование"); +// И там и там для того, чтобы добраться до наименования используется одно и тоже выражение. +``` + +### Проверка коллекции + +* [`ИмеетДлину`](/api/ЮТУтверждения#имеетдлину) - проверяет, что коллекция имеет указанный размер +* [`ИмеетДлинуБольше`](/api/ЮТУтверждения#имеетдлинубольше) - проверяет, что коллекция имеет размер, который больше указанного +* [`ИмеетДлинуМеньше`](/api/ЮТУтверждения#имеетдлинуменьше) - проверяет, что коллекция имеет размер, который меньше указанного +* [`НеИмеетДлину`](/api/ЮТУтверждения#неимеетдлину) - проверяет, что размер коллекции отличается от указанного + + ```bsl + Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); + ЮТест.ОжидаетЧто(Коллекция) + .ИмеетДлину(3) + .ИмеетДлинуБольше(2) + .ИмеетДлинуМеньше(4) + .НеИмеетДлину(4) + ; + ``` + +* [`Содержит`](/api/ЮТУтверждения#содержит) - проверяемая коллекция должна содержать указанный элемент +* [`НеСодержит`](/api/ЮТУтверждения#несодержит) - проверяемая коллекция не должна содержать указанный элемент + + ```bsl + Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); + ЮТест.ОжидаетЧто(Коллекция) + .Содержит(1) // Конкретное значение + .Содержит(ЮТест.Предикат() // Значение по условиям + .ИмеетТип("Число") + .Больше(2)) + .НеСодержит(0) + .НеСодержит(ЮТест.Предикат() // Не содержит строк + .ИмеетТип("Строка")) + ; + ``` + +* [`КаждыйЭлементСодержитСвойство`](/api/ЮТУтверждения#каждыйэлементсодержитсвойство) - проверяет, что каждый элемент коллекции имеет указанное свойство +* [`КаждыйЭлементСодержитСвойствоСоЗначением`](/api/ЮТУтверждения#каждыйэлементсодержитсвойствосозначением) - проверяет, что каждый элемент коллекции имеет указанное свойство, которое равно ожидаемому значению +* [`ЛюбойЭлементСодержитСвойство`](/api/ЮТУтверждения#любойэлементсодержитсвойство) - проверяет, что в коллекции есть элемент содержащий указанное свойство +* [`ЛюбойЭлементСодержитСвойствоСоЗначением`](/api/ЮТУтверждения#любойэлементсодержитсвойствосозначением) - проверяет, что в коллекции есть элемент содержащий указанное свойство, которое равно ожидаемому значению + + ```bsl + Коллекция = ЮТКоллекции.ЗначениеВМассиве( + Новый Структура("С1", 1), + Новый Структура("С1, С2", 1, 2) + ); + ЮТест.ОжидаетЧто(Коллекция) + .КаждыйЭлементСодержитСвойство("С1") // Проверка, что все элементы коллекции содержат свойство `С1` + .КаждыйЭлементСодержитСвойствоСоЗначением("С1", 1) // Проверка, что все элементы коллекции содержат свойство `С1` со значением `1` + .ЛюбойЭлементСодержитСвойство("С2") // Проверка, что хотя бы один элемент коллекции содержат свойство `С2` + .ЛюбойЭлементСодержитСвойство("С2", 2) // Проверка, что хотя бы один элемент коллекции содержат свойство `С2` со значением `2` + ; + ``` + +* [`КаждыйЭлементСоответствуетПредикату`](/api/ЮТУтверждения#каждыйэлементсоответствуетпредикату) - проверяет, что элементы коллекции соответствуют переданным условиям + + ```bsl + Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); + ЮТест.ОжидаетЧто(Коллекция) + .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат() + .ИмеетТип("Число") // Все элементы это числа + .НеРавно(0)) // и каждый не равен `0` + ``` + +* [`ЛюбойЭлементСоответствуетПредикату`](/api/ЮТУтверждения#любойэлементсоответствуетпредикату) - проверяет, что коллекция содержит элемент, который соответствует переданным условиям + + ```bsl + Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); + ЮТест.ОжидаетЧто(Коллекция) + .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат() + .ИмеетТип("Число") // Есть элемент, который является числом + .Больше(2)) // и больше `2` + ``` + +### Проверка на соответствие набору условий, предикату + +* [`Содержит`](/api/ЮТУтверждения#содержит)/[`ЛюбойЭлементСоответствуетПредикату`](/api/ЮТУтверждения#любойэлементсоответствуетпредикату) - проверяемая коллекция должна содержать элемент, который соответствует переданным условиям +* [`НеСодержит`](/api/ЮТУтверждения#несодержит) - проверяемая коллекция не должна содержать элемент, который соответствует переданным условиям +* [`КаждыйЭлементСоответствуетПредикату`](/api/ЮТУтверждения#каждыйэлементсоответствуетпредикату) - проверяет, что элементы коллекции соответствуют переданным условиям +* [`СоответствуетПредикату`](/api/ЮТУтверждения#соответствуетпредикату) - проверяет, что объект или его свойство соответствует набору условий + +Работа и суть предикатов описана в [отдельной статье](../predicates.md). + +#### Предикаты позволяют проверить каждый элемент коллекцию на соответствие набору условий + +Предположим, нам необходимо проверить, что движения документа выполненные по регистру делают приход. Тогда тест может выглядеть так. + +```bsl +Документ = СоздатьИПровестиДокумент(...); +Движения = ЮТЗапросы.ДвиженияДокумента(Документ, "ОстаткиТоваров"); + +ЮТест.ОжидаетЧто(Движения) + .Заполнено() + .ИмеетДлину(Документ.Товары.Количество()) + .КаждыйЭлементСоответствуетПредикату( + ЮТест.Предикат() + .Реквизит("ВидДвижения").Равно(ВидДвиженияНакопления.Приход) + .Реквизит("Количество").Больше(0) + ) +; + +// Условия предиката будут применены для каждой записи движений. Если ожидания не совпадут, то будет выброшена ошибка. +``` + +#### Предикаты позволяют проверить наличие элемента по сложным условиям + +```bsl +Документ = СоздатьИПровестиДокумент(...); +Движения = ЮТЗапросы.ДвиженияДокумента(Документ, "ОстаткиТоваров"); + +ЮТест.ОжидаетЧто(ПолучитьСообщенияПользователю()) + .Заполнено() + .Содержит( + ЮТест.Предикат() + .Реквизит("Текст") + .НачинаетсяС("Начало") + .ЗаканчиваетсяНа("окончание") + .НеСодержит("исключение") + ) +; +``` + +## Примеры + +### Базовые проверки + +Предположим, у нас имеется функция `Сложение`, которая выполняет сложение двух параметров. + +Проверки для нее могут выглядеть следующим образом: + +```bsl title="Тест для 'Сложение'" +Результат = Сложение(2, 3); +ЮТест.ОжидаетЧто(Результат, "Сложение чисел") // Используя модуль утверждений установим проверяемое значение и пояснение + .ИмеетТип("Число") // Проверим тип + .Заполнено() // Заполненность проверяемого значения + .Больше(0) // Сравним с нулем + .Равно(5); // Проверим ожидаемый результат + +Результат = Сложение("2", 3); +ЮТест.ОжидаетЧто(Результат, "Сложение строки и числа") + .ИмеетТип("Строка") + .Равно("23"); + +Результат = Сложение('2000010101', 3); +ЮТест.ОжидаетЧто(Результат, "Сложение даты и числа") + .Равно('2000010101000003'); +``` + +В примере, я на каждом этапе уменьшаю количество проверок. В реальном тесте хватит проверки на равенство, остальные проверки здесь для того, чтобы показать возможности механизма. + +### Проверка сложного объекта + +```bsl +ЮТест.ОжидаетЧто(Ссылка, "Созданный объект") + .Заполнено() + .ИмеетТип("ДокументСсылка.ПриходТовара") + .Свойство("Номер").Заполнено() + .Свойство("Дата").Заполнено() + .Свойство("Поставщик").Равно(Поставщик) + .Свойство("Склад").Равно(Склад) + .Свойство("Валюта").Равно(Валюта) + .Свойство("Организация").Равно(Организация) + .Свойство("Товары").ИмеетДлину(2) + .Свойство("Товары[0].Товар").Равно(Товар1) + .Свойство("Товары[0].Цена").Больше(0) + .Свойство("Товары[0].Количество").Больше(0) + .Свойство("Товары[0].Сумма").Равно(100) + .Свойство("Товары[-1].Товар").Равно(Товар2) + .Свойство("Товары[-1].Сумма").Равно(200) + .Свойство("Проведен").ЭтоИстина() +``` + +### Проверка вызова метода + +```bsl +ЮТУтверждения.Что(ОМ_ЮТУтверждения) + .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) + .НеВыбрасываетИсключение() + .НеВыбрасываетИсключение("Ожидаемое исключение"); +ЮТУтверждения.Что(ОМ_ЮТУтверждения) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2)) + .ВыбрасываетИсключение("Слишком много фактических параметров"); +ЮТУтверждения.Что(ОМ_ЮТУтверждения) + .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) + .ВыбрасываетИсключение("Исключение"); +ЮТУтверждения.Что(ОМ_ЮТУтверждения) + .Метод("МетодБезИсключение") + .ВыбрасываетИсключение("Недостаточно фактических параметров"); +``` + +### Проверка соответствия предикату + +```bsl +Дата = ЮТест.Данные().СлучайнаяДата(); + +Объект = Новый Структура; +Объект.Вставить("Число", 1); +Объект.Вставить("Строка", "1"); +Объект.Вставить("Дата", Дата); +Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1")); + +ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число") + .ИмеетТип(Тип("Число")) + .БольшеИлиРавно(1) + .МеньшеИлиРавно(10) + .Получить(); +ПроверкаДаты = ЮТест.Предикат().Реквизит("Дата") + .ИмеетТип(Новый ОписаниеТипов("Дата")) + .Равно(Дата) + .Получить(); + +ЮТест.ОжидаетЧто(Объект) + .СоответствуетПредикату(ЮТест.Предикат() + .Заполнено() + .ИмеетТип("Структура")) + .СоответствуетПредикату(ПроверкаЧисла) + .СоответствуетПредикату(ПроверкаДаты) +; +``` + +### Проверка элементов коллекции на соответствие предикату + +```bsl +ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11", ОписанияТипов); +ЮТест.ОжидаетЧто(ТаблицаРезультатов) + .ИмеетТип("Массив") + .ИмеетДлину(3) + .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат() + .Реквизит("Товар").Заполнено().ИмеетТип("СправочникСсылка.Товары") + .Реквизит("Период").Заполнено().ИмеетТип("Дата") + .Реквизит("Количество").Заполнено().ИмеетТип("Число") + .Реквизит("Цена").Заполнено().ИмеетТип("Число") + ); + +ЮТест.ОжидаетЧто(ТаблицаРезультатов) + .Содержит(ЮТест.Предикат() + .Реквизит("Товар").Равно(Товар1)) // Таблица содержит строку с Товар1 + .Содержит(ЮТест.Предикат(Новый Структура("Товар", Товар2))) // Таблица содержит строку с Товар2 + .Содержит(ЮТест.Предикат() + .Реквизит("Товар").Равно(Товар3) // Таблица содержит строку с Товар3 + .Реквизит("Количество").Равно(2)) // и количеством 2 + +``` diff --git a/documentation/docs/features/assertions/assertions-db.md b/documentation/docs/features/assertions/assertions-db.md new file mode 100644 index 000000000..c50d7dc53 --- /dev/null +++ b/documentation/docs/features/assertions/assertions-db.md @@ -0,0 +1,79 @@ +--- +tags: [Начало, Утверждения, ДанныеИБ] +--- + +# Утверждения для проверки наличия данных информационной базы + +Большая часть тестируемых методов так или иначе оставляет свой след в информационной базе, создает или изменяет записи - документы, регистры, справочники и так далее. +Для проверки правильности работы таких методов нам необходимо проверить, что изменилось в базе. В этом могут помочь утверждения работающие с записями ИБ. + +Доступ к этим утверждениям обеспечивает метод [`ЮТест.ОжидаетЧтоТаблицаБазы`](/api/ЮТест#ожидаетчтотаблицабазы), который возвращает инициализированный модуль [`ЮТУтвержденияИБ`](/api/ЮТУтвержденияИБ), реализующий работу с утверждениями для ИБ. + +Утверждения ИБ позволяют проверить наличие и отсутствие записей по различным условиям, которые задаются с помощью [предикатов](../predicates.md) + +```bsl +ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары") + .НеСодержитЗаписи(); // В базе нет товаров + +ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары") + .СодержитЗаписи(); // В базе есть товары + +ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары") + .СодержитЗаписи(ЮТест.Предикат() // В базе есть товары определенного поставщика + .Реквизит("Поставщик").Равно(ДанныеСправочника.Поставщик)); + +ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют") + .НеСодержитЗаписи(ЮТест.Предикат() // Курс валюты не установлен + .Реквизит("Валюта").Равно(ДанныеРегистра.Валюта) + .Реквизит("Период").БольшеИлиРавно(ДанныеРегистра.Период)); +``` + +## Доступные методы + +* [`СодержитЗаписи`](/api/ЮТУтвержденияИБ#содержитзаписи) - проверяет наличие записей по условиям +* [`НеСодержитЗаписи`](/api/ЮТУтвержденияИБ#несодержитзаписи) - проверяет отсутствие записей по условиям +* [`СодержитЗаписиСНаименованием`](/api/ЮТУтвержденияИБ#содержитзаписиснаименованием) - проверяет наличие в таблице записей с указанным наименованием +* [`СодержитЗаписиСКодом`](/api/ЮТУтвержденияИБ#содержитзаписискодом) - проверяет наличие в таблице записей с указанным кодом +* [`СодержитЗаписиСНомером`](/api/ЮТУтвержденияИБ#содержитзаписисномером) - проверяет наличие в таблице записей с указанным номером +* [`НеСодержитЗаписиСНаименованием`](/api/ЮТУтвержденияИБ#несодержитзаписиснаименованием) - проверяет отсутствие в таблице записей с указанным наименованием +* [`НеСодержитЗаписиСКодом`](/api/ЮТУтвержденияИБ#несодержитзаписискодом) - проверяет отсутствие в таблице записей с указанным кодом +* [`НеСодержитЗаписиСНомером`](/api/ЮТУтвержденияИБ#несодержитзаписисномером) - проверяет отсутствие в таблице записей с указанным номером + +## Примеры + +```bsl title="Тест создания справочника" +// Проверка и подготовка контекста +АртикулТовара = ЮТест.Данные().СлучайнаяСтрока(); +УсловиеПоискаТовара = ЮТест.Предикат() + .Реквизит("Артикул").Равно(АртикулТовара) + .Получить(); // Необходимо для сохранения сформированного предиката в переменную + +ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар уже существует в базе") + .НеСодержитЗаписей(УсловиеПоискаТовара); + +// Выполнение тестируемого метода +СоздатьТовар(АртикулТовара); + +// Проверка результата +ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар не был создан") + .СодержитЗаписи(УсловиеПоискаТовара); + +// Проверим заполнение нового элемента +СозданныйТовар = ЮТЗапрос.Запись("Справочник.Товары", УсловиеПоискаТовара); +ЮТест.ОжидаетЧто(СозданныйТовар, "Данные нового товара") + .Заполнено() + .Свойство("Наименование").Заполнено() + .Свойство("Код").Заполнено() + .Свойство("Артикул").Заполнено(); +``` + +:::tip Проверка заполнения +Не рекомендую использовать `ЮТест.ОжидаетЧтоТаблицаБазы` проверки заполнения созданных/измененных данных. +Лучше сначала получить запись используя `ЮТЗапрос.Запись` и с помощью `ЮТест.ОжидаетЧто` проверить ее заполнение. + +Разница будет в тексте ошибки: + +* `ЮТест.ОжидаетЧтоТаблицаБазы` скажет, что запись в базе отсутствует, без разницы, был ли создан товар или он был некорректно заполнен. +* `ЮТЗапрос.Запись` + `ЮТест.ОжидаетЧто` позволит отдельно проверить наличе записи в базе и корректность заполнения. + При отсутствии будет выдана ошибка, что данные не заполнены, а при некорректном заполнении сообщит, какое свойство не заполнено. +::: diff --git a/documentation/docs/features/assertions/assertions.md b/documentation/docs/features/assertions/assertions.md new file mode 100644 index 000000000..8eab2f861 --- /dev/null +++ b/documentation/docs/features/assertions/assertions.md @@ -0,0 +1,66 @@ +--- +tags: [Начало, Утверждения] +sidebar_position: 1 +--- + +# Утверждения + +Тестирование - это проверка системы на **соответствие требованиям**. Из этого следует, что при тестировании, у нас должны быть требования к тестируемой функциональности, сформулированные ожидания. +Для описания ожиданий в тестах, использующих YAxUnit, применяется механизм утверждений, с помощью которых, разработчик описывает требования к тестируемому функционалу. + +Утверждения позволяют, не только фиксировать ожидания, но и помогают формировать: + +1. более читаемый и простой тест, +2. формируют "дружелюбные" и понятные сообщения об ошибках, +3. прививают единообразие у сокращают количество "велосипедов". + +```bsl title="Пример утверждения" +ЮТест.ОжидаетЧто(ДанныеЗаписи) + .Свойство("Поставщик").Равно(ДанныеОбъекта.Поставщик) + .Свойство("Товары") + .ИмеетДлину(1) + .Свойство("Товары[0].НомерСтроки").Равно(2) + .Свойство("Товары[0].Товар").Равно(ДанныеОбъекта.Товары[0].Товар); +``` + +В результате этой проверки (ошибочной) будет выброшено следующее исключение: + +> Ожидали, что проверяемое значение `Поступление товара 000000001 от 12.03.2024 3:06:17` содержит свойство `Товары[0].НомерСтроки`, которое равно `2`, но это не так. + +А так оно будет выглядеть в EDT. + +![report](images/assertions-report.png) + +## Зачем нужны утверждения YAxUnit + +Основной задачей утверждений является формирование и проверка наши ожидания. +Например, сложение 2 и 3 должно вернуть нам 5. +Можно перефразировать это требование (ожидание) - тест ожидает, что `2 + 3` равно `5`. +При помощи утверждений это превращается в следующий код - `ЮТест.ОжидаетЧто(2 + 3).Равно(5)`. + +Вы можете проверить результат работы и без использования утверждений - `Если 2 + 3 <> 5 Тогда ВызватьИсключение "2 + 3 <> 5";КонецЕсли;` +Но отличии от ручной проверки с использованием условий и исключений утверждения дают ряд преимуществ: + +* Всегда, ну или почти, понятные сообщения об ошибках, которые помогают локализовать причину. +* Также вам не надо ломать голову, что написать в исключении. +* Тесты получаются более читаемыми, цепочки вызовов формируют, что-то вроде предложений. +* Не все проверки столько просты как в примере, есть предикаты, сравнение таблиц, проверка вложенных свойств и данных в информационной базе +* Ошибки утверждений помечаются другим типов ошибки, это позволяет понять упал тест (не совпало ожидание) или наш код сломался. + +В итоге: утверждений вещь полезная, изучите и используйте ее. + +## Возможности + +* Проверки [значений](assertions-base.md#доступные-методы) +* Проверки [методов объекта на выброс исключений](assertions-base.md#проверка-выполнения-метода) +* Проверки [данных информационной базы](assertions-db.md) + +Это базовые методы проверки, с помощью которых вы можете проверить любое поведение (или почти любое) системы. На их основе вы можете сформировать библиотеку своих "бизнес" утверждений, заточенных под ваше решение, что облегчит вам разработку тестов. + +:::tip Рекомендации + +* Используйте отступы и форматирование для улучшения читаемости. +* Не забывайте указывать описания для проверок. +* Не стоит писать проверки ради проверок, проверяйте только то, что необходимо для кейса. + Слишком большой код (цепочки утверждений в частности) сложно поддерживать, при необходимости разбейте его на блоки (методы). +::: diff --git a/documentation/docs/features/assertions/images/assertions-report.png b/documentation/docs/features/assertions/images/assertions-report.png new file mode 100644 index 0000000000000000000000000000000000000000..dde82bd2cf1e4f6cebfbd9b1e4a0406f27a65c68 GIT binary patch literal 124820 zcmdSBWmFu|+AdfS+ylYgU4pv@g1c)VxCM7e2ogNFgvQ<7U4y$@aCi6HXvf2?5c~ggAbhU99P1@Q&{7Mq(ef|g@n9;rara_ z_0%~aB3#fea#klu&!5sOnxo5fHddR`{+a3b10m!q*>56v@{MC3UnmwsVI`Tp(Vd62 zt{n&W9m-9jm75ksd%krK9aIHjI8uMKLRVKZJMJ1wox7ip*uVVHMBzxYkvGu&!5bX! za1uzs8~GXS^-$oCiXub90_z(aC##V!bvmyf&4`r0pbD=hb^zMvU;pk5EK$J?_zUWT z8#Nc|b|?5x+Uccy?c0)u`y~FT*tae@6_4fRzKIj&wHM+V*Dx6%{bonQVAb6s=*E-% zpSy38`*1xz%NyAaz*@rp?Z)K}*3z8a-%pGh3E?Fur{9#ewzS2itgt`kwC?qz)hnq7 zND!Zj7qMq^jBiqO=Cw}gy0Y3yyWXVLGYAs%*U(;he5)KAZN6zB5aj9m1_>zgH&vRc zj3x0gV*>uE&JSxB_4rq-w;v=MDnUqK|sJh#wuns8k|;Y^f137dT)6cRXyjT&w_ zf69}|)ERl&-XUHtzEaaVOYqgM>gM{?^S;ezn*vaDap^4In8kA5*RkhS5hoTZsjk{+ zQ8P{qn=}YtE>5nz!xrK)X3DS3y!LJQth|3CIdlC*%Zb;N6v#g=#b@EWDf-fu$`2SC zJXc&4>_mGDRo6_IIc}i%^0{`fZd5&ZmEaxLDEc=H`lmIrZv($E=v)hx*L|MWGS4*b@u9fDB?oL$IGHnK>L8ob7Q`P-o*L_f;9U_6JXghc$|Qo$=V6m0`O+t)x4f%P8ng7S?tfdRr7~w=qJBnSH!(o4@yE!K2&C?}ueYO+v4dM>Y#}N3-<6*(PpC{1vxnomzhhA zxJc8DxP-*rWkDE=aJm`EpNrP>WXode=|hW2*9PT+d-l&~_kuFX`19(ys%%gI@Qb+h z(~K*2mC3B6JMUXUntU_+ufT z(aBwlRZy3fr{mwWW3B3VGEj&vytMy`pn?MEBg1*xZhRbalVg(`~> zNlQfh%f=vo)6?W*u{>XL?`YGRY7eV4hnPLjJ4M^ni`Kolt;^uSJl&(dWX1OFfF8lx zFQD?Ljf*l?hXwcU>+Uc4w|OQ=5bdhZ zC;E=W*efQ1D8B@jMI93{qY|Dp1mk7zoEB){;foKCK^G4jF{$*z3^f;fV<$1aFz=?E zx&Z*rj|9GQU7%B0e2X?(YHImF+W>Fb8w!L>9!hL`_k_M^e@@2t9%S$1!ELrj-J*jQ zFw0EL-FZ~k>WL^tsJ}ZRdEdZacHt>OZE`(=Gky9AiwcV64!2KVdMC2Bd=0?S@!ffz z5}+b4$|<=vM<->`;`}XMHOy6qYvJrGXG@FhMRn9;QO>&{Vkrud$Th#jQ)1$@z?NWI zTfA=aes~_)*-F_gv#^$yepD=%G%eVJgy!b`g1jKF>Ek^=)-lC2#)5N2@_W%K>J zf)M`u8hB`Hb|K~Xr34|X1#?Mf|3^k!*unG?!vv+yE%cwJR08(jvY zlug$=In-VjJ)VJ5ZN6T^?ora54lU%O7u_Y{0u65or;3)Pl&WhMIt4Tw}J(8;^)<73Yfm*%ryi8zV0RXliv z#_}lPk3QC_v3uskKy+}~9`JwuQ4{bEfl2?-Vh4mpr0)WdloQ)m*I{7KO{7@KDENcw ze)07Fm|9j*>&(FKmwOm`7?=1MpJs1$LjH+Fb;a%0DdhvA08qQxac4%dX2ILTANgb> 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 !nr&uFlhI^zh3iG%hw2|5GW!z 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[fxjQn8a@omE*K7KKfv?{Hj_txX6B(OB!#Y%() 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

!)WDY3SvAQ;5)lYh9&3?i3NH5 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ę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

)Sfd>td*AhIV(5F`@6{Uz=;L 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

f+-qePDj0Fwld6w69;fxUwcE z`ZJ31I|k6Ywj3=n>>#xqXZ{{LT%ypMeMjd^;d_XRABg2-H3`M+}{1xuVS;rFhH;eEsPEjqQsD5pM8Ahn6R-6?Jzi0Xv7dqp(^WKcC| z$30-xIQw>UnRA%15I@usqZkgogZa;mkmbZt^EP>`R_J)ksITdD=$R~@*eK06H3I+< zgnVJV6eY555}$>suw8rV@uv@>P76BFdZxYOxUzPG`quiHw_XIz1Vf?md{i>#*#K;j z?D_(V2&E+L^%-;u=#NNeWKEdW65b!V>ltqbUbYP4j$J|(h|zu75<<(Cu`33p{Bxj5 z6m5d%&B;E`i+|Up-qjSXR-#&3@Yl+ri|NThGdn2!Lqj)qtH%DD989FZfA^?KiOGvr2!HBt`_HcKoyWM}2Tzf4PxIX0Zet*7@ zCYNlIO(wH5vpYLusL^Qnga0lJwd+_a4w|)rQJw1kOV#=Dh>ngnQmfUG|8_lo7GwfW znKqsFZQJmCXH!grE6NAF!y>RVF=EVsL39~3m^L*#v3AdNUI&?AZwgl~tRsIxFV0+h zM5yl@N)#)E|C1e$CeA+& zMim@D_?6YPQ0By&qD6Hh|H?5V}y)bh5qdsTVuWaB6nvEi{u{#~R% zKJho7ylo)gH8(1;%Adwe{Iw@KbAL{pI6?LtIb$p4cY6m%o|xm{;!dt~E_mg;&ieCN znSVHfh}jQ#7p9_aduy^)O0Lws^egTibdk3&y^7$%hhQ$XF2$Y5B;<5Y!{`DFmKlsNjp@Y5ZRS;~F&1P?*HUjds; zRjHmy*_JqPSi~1}?qa+$MJ>d#Xx?Y%E}AhScDs7d z0`j_sd^2S`TalQfW#zvo&+UpW-(6br^+?2%{aAcPKnYJSwI-QId7`6o@%q6nR1pz0 zo^p_aIkPcwVB23(u{Ykn9K869MrE`8lKcHvkstx_apuaj0TdW=m(+Pv$-7P#s_`r9 z#mCn#DV5Irm)`Tghy)4fUV4uJ(iDAkJ#8~J()9SmiL8(g)4IN4-!Pe94Js= z%TvzQbfeY4IW(wKmQp#={`AT`_;@RJ``(H5q|I5B^LP9xm@O62A%R4gm~-v0H-{&m z#^B%@db}8q%Gr&8APv*48j&rFG1adxWy-e8w5^zfh4-SlvSK~U#}y+i@&Okp&hka) zxv-!gNy{|BHaePz$LBJ2`x&;Ky3f8Qg;}woJ9ZWNa{10jHk2qv>#6m*YnlF+8A2@){$?tS*`F99{5 z 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

`z(3%+U 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ř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 | ОМ_ОбщегоНазначения | +| Модуль объекта | `_МО` | Спр_Пользователи_МО, Обр_ЗакрытиеМесяца_МО | +| Модуль менеджера | `_ММ` | ПВХ_Субконто_ММ, ПО_РИБ_ММ | +| Модуль набора записей | `_НЗ` | РБ_Хозрасчетный_НЗ, РР_Зарплата_НЗ | + +## Тестовые методы + +Тест состоит из двух обязательных частей: + +* Регистрация в методе `ИсполняемыеСценарии` +* Реализация теста. diff --git a/documentation/docs/run/images/from-configurator.png b/documentation/docs/run/images/from-configurator.png deleted file mode 100644 index cb83544d25490f091366e7875b9befa4b86d1d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145575 zcmb4qRahHL*DVzH;>ESN6n7}@QlPjyh2X9&?oiyF&=$AggyMzbPH=a3J>h-7?>`sk zzc~-XMJ6*D*&}N*x9U4hIJ2O*JwiGzZ;UJ`)B8HpEs^ zQcYe`lG4e=(aP4|5(b9hyZ?6)x$cjoy~Y|P>P$f%Z=DC!+{c1`L=&!{jc!uQq%*_Prm=KMqC?kww%%rSJgMjm=hwUX<4c6!Va4HIs^A4Cl~W}{)E33J&OCtmcJn$?W;DUj3^7T~C2 z%hvvqxszDfV%cFG`O-X?d9%rmzEz)MSvg56MH;OW1domSi=hA=?UNplx)QCe*!CKQ z(<4qZo=ZySK+RWF&4D<#bPz|UB8;6cq+q}*#{1XD?%I0>S8|QnN z;vZ!_7*0;e=!6WuOB+juN9|9(!1)!dNEMfAiUg!ys96xr6lJAgUS9w5+e?$6IVetY zx~?!VY&5U`uwEr%9?(oAH+f}gq@6dIxGe1BsK_VUDLCp5=4@3Rhk09tsr|N;^$Ep>%bAL=*!P zf&GtCYoSr0lc{cx{m3h8kyeHoxKD>csD)ocnUI6z!pGo3LM-@Ng}6pf;^&tR=~}4@ z7`kqT?FJ4H|JIEPk0$S2_<>h;#z78Czuv-&|C@fmwcvfDL=O5VQPci6`z;mKfAWHm zQT|i(t(4q<^C%@G{^u7$LjM1&MuiVi&c|{@Sl$Hdr45! zG(37@qnv@5@e~-7!!ESHrG8Wikq!phj^G%1;)O<_{9oi6!VAM!B z4CD&tlIj!*MiQYfOY_lKJ z??lo_dq!%<|4bJ)4i9fJ{-D-eNYA$li8sFy@t2QTLVE?HXPX(YzRaP@N|^{rP+!I; zAUo@=x6m*YhI|9sVt+EtFR~RZVEr0aY5U2Hda*b@6`#0;psJ**mkMQpOAEQ$qx;nh)p<1F;`|h+fy=BQ)%2bBA({U*^saz>@L}uFx=Ivzmmf8$J~*I z5B=BrPVi_bp{TkPq-Q1z1VBridL<=DOa!VvBMZc8*$3-Mh}OJ}6O@Kf!$P8%F{gly z(um13fX@rd^|i4}b_|_A_A0_RQOmYu%+0Nk_<)K7`zeRujUE^?mH+re@+2xd9trSf%-{Alp*s7`mHb=sB?m z1n1w`3Zapc3kfdirlz*ZfLBiXice{h0bfB01enfyFc5SBxlM|avxZ9uM7bg=y4aLe zR0Eq}9reW9U@3m*gZoww27Kxdk_dLHwDuN?i=>I4N6rLO95nTAHzkajy0oy95i=zU z)@JZC9AaI{f+oJs%JW?cEt?>ebcjqTj?%I+;!DmtAFvsOeN*&Y<1~o-fs96ujT=Ns z`evX`4!Rd^heP0_A`(8Z%F5ji!{7rcz(f(qkxnoT74~mHW}czpA_2G>8F607jgykf z{`$I_@P5!lr6}F>+t~fRN_XCFQ;1HqWXUQeomP<79+O!)j;Ue<4NW##aBA4>`8tMH zPZI}GW}L(t*1a`ic#j-(>RXtMWBR)DN&Tp>QR6Xn zX-K1`I?>npo^FHiHPZuvfRQEk)+Y(OAMm~4@NZe^5g=MRgFUsRd_VGS&zGvewN^J) zO7^u$6Z}AFAr~$#GvYfG(YM<8HlHPbG&Jdj5GTdfehtx133Et?XW_zmtgwqCNdnr! zv*0$`n(Yc|b@un?b@T=qZ<{?R6PN5bt(}(bd0wK}WMZ>xgV99u()f&hf=;ac#Xr2w z_bvk&Jf%Tw=YheCB0)|eXlU4k&~uEM7Be}~Nyc2Ap8y5YRj>T01!FvhjVsO^QK32Y zLmpMb_Es5f$iqktRQnV8_6*67!Q?zK)Z%@Ki^EMolOfxTJ!CN1n9$kirs%B6!2R#4 zQN4^M=(<)irD5zDag_%SJ|z-ZFUJyA;O3_6Y0!R1i5k4K91wx7D(Lxi^~t67LZ@|K z+sNxKV2u0zN(9!>(~K^_v2W2CPC2t-vw4<2DKWF}?_N^#1x4U`ZzC`vHJ8ydfszz< zik6_T_n(t0gholuKy;lyPR#qAwt+7i2ypg@dsFMv%cJxs3GDzDGAP~2sV6438f?AUMB`|%mIvfYfqI>(cUK8H6*l^#4is|dtBwc)m% z3rdP7Bj*{VZ)5d-gtt)S<`Qm)j&CNr!8kM;bV10X%d4P7#d zXnfT!J6a#V=cNvh0~Ts+cT@-*b>n3{&CQdJRkqVXM{@>kSyi)-O23#R^DQS@j6~b@ z8%;Oj$XHf7GLnQmdTZ^M^)KNJiMdP7C+S!WTH|@cUBl0|#-o|JGZ@4C=bpTc>VQ$Mx%^07kd zH}X8izCn(btD?<&*`wz*n^Jwry-^JL)D$>QdnVOD(xIdMgIi)3orZi9lwc|tNTdCB zuB7OM&z%_*To-uekYulu%f z2Qc|6DC%&(wCcUTJch8Z^T9FTDFzyKu5Y2e^Y4B+8~t>%-WdGX_}cLAP#=1;7^9^? zk??$6R#NR}3%1C@TJ?SUQt3Dp_KJ%O`D?E^&9>;+_pR?{O8Bfj4x(-KSytLmNElFV z-_2Fh1Pgg|J7$zG*5a4oc{65YFIBMbxQS)rw>GLB-Cr?V-?e%zUKpqV+WezQ|SF*%K?~Q?HjpoVH8mDcg3R~+^kIDy_ z>hY2ZURzvU$HFUf;W#}X@fjyf=2L0ET*VF8udIcRt>A-M3c3z9#&_t>ANBJz^z^z4 z?^gN`TiJ(x;Sbr&x4>mu_1IJJ@1obbo~tR0|Fm;_e%PmfyqQ+DnXR!aX5j@acCI)E zrngcA5E(b8Re^7Rg!yR!FBVBOZodpZ;GHaD3#{yN^6Ts{MYGguvVkgaM0b9P#&1MM zdO@ImL`e4-HTJ2tNhX~<0@xi6(TK{M?=6GuM%F z?2j~7Dakj%#hLNA2C-)|7~NJTISqp!4Y*Qx_7!?xMs>&Q$<-qYEU`w}Ae zR}&MuZ2*zfC{!E7?Fu9DjY9(^JU}hl?m`e1O0km|l++2T?uY zc+?@)FnWA$*{=-t+m(j$qjVMX)pp^yc$EVEA(LnK{$2(S1~QLx==z^AzmZ%CO2ekQ z&~0+DCea~O+*<9iJO)twk!Q3)wP#6X)0dlk46~v7GzA36w%qKG-a3!ET*WpPB^R2f zLEP!G;jG)4XKaq^8r%e}pV$5F9vG%vRHFVKUHqfj;-9T>L+Tb-v#vTK+BTB zA?6I)S{uq48A+x-wY|mv5<j_D(rT=K#$|L*x>3IpmWOej7q__Wb&9?^H_T> zyI63CBOFH3c-%FH!JSQ|4k!sFK3ofHq^9Re;`YS3(5j+*i*7a_^;w^{4rC!T|8oz| zV#@sL7;p;*YY(y79xN%JZ@~{Wi}oZm3Pb=|)>zGIp>o!J0x7Gw5R`fz4+|K^_f{N~ zFKr(hYkrCX+HP7|hSDN!T3XfA6eCZfn(5L_YO@p+w+UN_M}mJyK>*foL?N{{nq%2? zy54P9XBWw-1m?N~L)t7>T{~4=e!G?`=8K?Ds4AlV@MznAi=Cc+sTF0(bqg$-81tV9 z-BXCA|1OQEU&}B-p?i(bks8?Z6wIRljj({N*t?Z~F(*7{XBC*zeA&_G>^3U_EU`P)Ao5tPVTiNe=+SUjxh-7J*woRnxU`>RMo}lYX~Kcc7;_+BLLtA_JNrKdc&PE))MCt8hFiWL07>M- zdIH`~%K_X2zhpNiNa@%Ozp6)R%_B@Hs>(77)ksr+UvcuP?HK#eOqdtII%(zKN#pnw zZbJDnz=a?!*BM{L=MoDgad5fKbjN5=$g!_&b8ndG1h8K1XobQ~+r;&~f5Y{4U zWoX|S>1ljM?5}iARATLu_&y*=l?p|}A>EgT>P9X1U)>2AOGt0XAk;RQx01NypW)$d zmBC!C4S)iB62*C))ZwWV2SGl?B5spHdo+!VTR418`1VgV$Y*f(I5j0r>7RvoxvBxB zEA<~V3{DR~oIZS)+Wy0dht~GxDEPs|!rc8kgIYSv zD2$Q?+3F*@nD)je%8Z0?a`4da&h_+!lB6AXbrOl zBrQMnh1$;Zf16Q|Hfne1R*s@ai608?cPg-T>d*2l$l%S~%l<)LKmJ6ZC;fJbMCt-D z{dS~rZf@EK=><8ac>@tf27M2^&VM}_!KELii>i#i{)>Wybk8@`UO5KtlmQ9sj0~pKhEwyMZ|1ods5j-IhYtq-fzj<#z1nUe^+d$D{Rz84Z%bG7o&svQf zd7bMCei+6mkf`G;VJJSAgnA73kD`@|Uv!eIADJ*Dks1-pJd(#tDL;Nu$N5uf;Wiuz zJI+G}J*P@qok-XgpMKy&SQi{a5o9L}E!fLv?hFl!!~UX_l^Utfg}hJT0HI}{4&C$op0U{# zidN-P(9E-#i8P5>m`rVRN0#;@g2InswJHiH0vqk&2hkS=nrFp#++^q&*YHXciv;p) zSmfOs$bRe&6+hb=^WyvO1!`g9fFM!R$mT=^Hk&f*KqdSqXE0iLC7|C~U&rV6b;rzp{dqm`6Cb*`*xaqbDd|O+m6q-C$0^ zRG$C{FneVq0C&J z_x~DGo?l8;0k2hL8v%FU9V;GYozviOp$0RV3qQNAD(YI|SCEX?1V251#2#%Jl>I5s zURFs5v=xD4&sj?>u=mS`S$29wO*5`B#9T|QKrUSEG@o1qom#L3Gm{`H5E9Y+;Wiztg9;@N4m30g#cH8{T}O_^tgqL!r^nktwgV9o45IFS$#@ zX(H8b+=@_EtdxmP+j0^c2IbEOPgMq3d>65UZrw8|kQ#~ff@T&{jJU(|2f$vf&lMq8H1YX->K2Fm&y*K4w86J`kQC5vl1hv{cg~9k-4;g1s^2G zAgff|qCs89rj2N;t<3y*V7m4eVCp2Ji|RNlNe~$!q`?5o%EZB{0P{I+g%-+v^wTdg zZtA3_;C>~mWr%(yW!_TNj22SKeC*MAZ`Sxz@Gk;314QD_{pg42Gtu`_4eePF|Z~7Q11)W(r zTpXtDj5wFvyzx;FlxhM@R=3Vnv$r8|jI_YOyAfDiOb+(6>Vt$R;>u|)>@uhw81!Lt z+ks%$dFFHoebTHm!_Os$-lQ2!NM(MZ7p5f%-KWd$6ffc&S%-dRCRRKKH|2QbaN0C_ zl|$)lj&$n21O-LO&uf(IQsQsp+(>8X$dt?K75KwYDh40c8c|w2dK9|OY!Heu_o=Dv zA!b)md2?;HWU2VcgZOb?iw;;A=UEe#{#b5HKk#s@vxV-zB1i7myk(*zDBL&GRiV86 zMQHSc<4C#gS>7Q4r@4C>+BITjS6Sjqd0W;2dpAU)iqabM-|cuKdNPyW;`^FN7)ztk z(;Ry8mISHJ43eNz9pW{5U;SCaHgYKo6KL6Gyhg*rN&>l7+v4lO?-u_TsL6z;qC0Wx!TH8aG~YKz=4}(GHGX|c0>?A?Wq*XZR z2`;&s*?~yU5u9EZH=~@T(dGh6k~)l( zuiL+D0XqIokH&lYXK`yfuDM>-zmjPLh$^%@-5p6eSc z#rSD)t5Y)|nQ7|}y_nTlWc%JiiM*8DR|I(Z5gQesR*kv)ZumFDs=Z0eHhClc`W@k5 zBY|YuT>tp{X77>ias82|9SVz?%TZ*+r+S;E+ylpFtcnGXC;^Yjz6Jwlhrq-{4KtAT zZJXcY@E3LU$<2NI5Sn*fY9oV0=5zN$rE{RXOGL6=elK()@0{v4Mg)OAG$JG3B|b$~ zTWR)s!nx!-anV_oV0)p-yyK8HmDu^^lSHgPU*>|nPYgbug;7wGF)oFJm5d-7*9Qg! zPkJGh2k^<^&p8L-#>gDU%D%X`lY{`v$&vG>l@cq9wIz+Nub9pC_VqV?+2F2l;4}+z zz>_ymYEIOi^D>n*#Iw#0^5w6Oa%W{{t$ikeMS`(diHfBugpK!^J1HjH%8lZh5XQsN z=uhhV6_>?N?K+PehhO^3bsV3LZG|2PzS|v9HDWGBMNU*HlSy%T{^m6De!`t8H&A)N zJQ4`_=qZ!UwaM2`56-(o!N)g3@9sUL∓3R#6=N9-ivtg^I!q^JQf{H0bxozdOOa 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%0Dq4NDq>&*wcdMWQb;9ZN{W9DRpmBx7-e| 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 AH2?qr diff --git a/documentation/docs/run/images/from-edt.png b/documentation/docs/run/images/from-edt.png deleted file mode 100644 index f6a1986c8e83efefb22f83819396199aafeb64a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80034 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 T0LKygyPN^Ej5OiuPv8D8;_&<% diff --git a/documentation/docs/run/run.md b/documentation/docs/run/run.md deleted file mode 100644 index 11e44b1b5..000000000 --- a/documentation/docs/run/run.md +++ /dev/null @@ -1,38 +0,0 @@ -# Запуск - -Для запуска тестов необходимо запустить 1С:Предприятие с параметром `RunUnitTests`, при необходимости можно указать путь к файлу [конфигурации запуска](configuration.md). - -:::caution Важно -*После загрузки расширения в информационную базу необходимо отключить у него `безопасный режим` и `защиту от опасных действий`* -::: - -## Запуск из EDT - -Для запуска тестов из EDT необходимо установить [плагин](../install/install-plugin.md), либо вручную создать файл [конфигурации запуска](configuration.md) и указать его в параметрах запуска. - -![EDT](images/from-edt.png) - -## Запуск из конфигуратора - -Для запуска тестов из конфигуратора вы можете - -* Вручную создать файл [конфигурации запуска](configuration.md) и указать его в параметрах запуска - ![Конфигуратор](images/from-configurator.png) -* Воспользоваться [интерфейсом настройки](../yaxunit-ui.md#интерфейс-настройки-конфигурации) - -## Запуск из предприятия - -Для запуска тестов из предприятия необходимо воспользоваться командой [Запуск тестирования](../yaxunit-ui.md#запуск-тестов) - -![Запуск тестов](../images/ui-run-tests.png) - -## Строка запуска предприятия - -`[путь к клиенту 1С] ENTERPRISE [Параметры подключения к ИБ] [Параметры авторизации] /C RunUnitTests=/путь/к/конфигурационному/файлу` - -Для формирования строки запуска можно воспользоваться [интерфейсом настройки](../yaxunit-ui.md#интерфейс-настройки-конфигурации) - -Пример: - -`"C:\Program Files\1cv8\8.3.18.1698\bin\1cv8c.exe" ENTERPRISE /IBName MyInfoBase /N Admin /C RunUnitTests=C:\tmp\test-config.json` - Запуск тестов в режиме тонкого клиента на информационной базе `MyInfoBase` под пользователем `Admin` по конфигурации указанной в файле `C:\tmp\test-config.json` diff --git a/documentation/docs/user-api/assertions/assertions-base.md b/documentation/docs/user-api/assertions/assertions-base.md deleted file mode 100644 index a8f846d58..000000000 --- a/documentation/docs/user-api/assertions/assertions-base.md +++ /dev/null @@ -1,233 +0,0 @@ ---- -tags: [Начало, Утверждения] ---- - -# Базовые утверждения - -Утверждения для проверки значений - -Доступ к утверждениям обеспечивает метод `ЮТест.ОжидаетЧто`, который возвращает инициализированный модуль `ЮТУтверждения`, реализующий работу с утверждениями. - -:::tip -Не рекомендуется обращаться к модулю `ЮТУтверждения` напрямую, используйте `ЮТест.ОжидаетЧто` -::: - -* Реализован минимально необходимый набор проверок -* Большая часть методов - это сравнения фактического и ожидаемого результатов, но есть несколько методов настройки - * `Что` - устанавливает проверяемый объект. Все дальнейшие проверки будут выполняется с этим объектом - * `Метод` - устанавливает имя и параметры проверяемого метода. Для проверки методов имеются утверждения `ВыбрасываетИсключение` и `НеВыбрасываетИсключение` - * `Параметр` - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода - * `Свойство` - устанавливает проверяемое свойство и проверяет его наличие. - * Последующие проверки, вызванные после этого метода, будут относиться к свойству объекта. - Например, `ЮТест.ОжидаетЧто(Контекст).Свойство("ИмяМетода").Равно("МетодБезИсключение")` эквивалентно проверке `Контекст.ИмяМетода = "МетодБезИсключение"` -* Методы работы со свойствами позволяют указывать цепочку свойств (доступ к вложенным свойствам через точку) - Например: - * `Свойство("Контекст.ИмяМетода")` - вложенное свойство - * `ИмеетСвойство("Контекст.ПараметрыМетода[0]")` - элемент вложенной коллекции - * `НеИмеетСвойства("[0].Свойство")` - свойство элемента коллекции -* Все методы имеют параметр `ОписаниеПроверки` для описания конкретной проверки - -## Доступные методы - -:::tip -Полный и актуальный набор методов смотрите в описании API -::: - -### Сравнение значений - -* `Равно` - проверка на равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению -* `НеРавно` - проверка на не равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению -* `Больше` - проверяемое значение должно быть больше указанного -* `БольшеИлиРавно` - проверяемое значение должно быть больше или равно указанному -* `Меньше` - проверяемое значение должно быть меньше указанного -* `МеньшеИлиРавно` - проверяемое значение должно быть меньше или равно указанному -* `ЭтоНеопределено` - проверяемое значение должно быть равно `Неопределено` -* `ЭтоНеНеопределено` - проверяемое значение должно быть не равно `Неопределено` -* `ЭтоNull` - проверяемое значение должно быть равно `Null` -* `ЭтоНеNull` - проверяемое значение должно быть не равно `Null` -* `ЭтоИстина` - проверяемое значение должно быть истиной -* `ЭтоНеИстина` - проверяемое значение не должно быть истиной -* `ЭтоЛожь` - проверяемое значение должно быть ложью -* `ЭтоНеЛожь` - проверяемое значение не должно быть ложью - -### Проверка заполненности - -* `Заполнено` - проверяет заполненность значения -* `НеЗаполнено` - проверяет незаполненность значения -* `Существует` - проверяет существование (не равно `Null` и `Неопределено`) значения -* `НеСуществует` - проверяет не существование (не равно `Null` и `Неопределено`) значения - -### Проверка строк - -* `ИмеетДлину` - проверяет, что строка имеет указанную длину -* `ИмеетДлинуБольше` - проверяет, что длин строки больше указанной -* `ИмеетДлинуМеньше` - проверяет, что длина строки меньше указанной -* `НеИмеетДлину` - проверяет, что длина строки отличается от указанной -* `Содержит` - проверяемая строка содержит указанную подстроку -* `НеСодержит` - проверяемая строка не содержит указанную подстроку -* `НачинаетсяС` - проверяемая строка начинается с указанной строки -* `ЗаканчиваетсяНа` - проверяемая строка заканчивается на указанную строку -* `СодержитСтрокуПоШаблону` - проверяемая строка содержит подстроку, соответствующую регулярному выражению -* `НеСодержитСтрокуПоШаблону` - проверяемая строка не содержит подстроку, соответствующую регулярному выражению - -### Проверка вхождения значения в интервал - -* `МеждуВключаяГраницы` - проверяемое значение находиться в указанному интервале (включая границы) -* `МеждуИсключаяГраницы` - проверяемое значение находиться в указанному интервале (исключая границы) -* `МеждуВключаяНачалоГраницы` - проверяемое значение находиться в указанному интервале (включая левую границу и исключая правую) -* `МеждуВключаяОкончаниеГраницы` - проверяемое значение находиться в указанному интервале (исключая левую границу и включая правую) - -### Проверка типа значения - -* `ИмеетТип` - проверяемое значение должно иметь указанный тип -* `НеИмеетТип` - тип проверяемого значения должен отличаться от указанного - -### Проверка выполнения метода - -* `ВыбрасываетИсключение` - проверят, что указанный метод объекта выбрасывает исключение -* `НеВыбрасываетИсключение` - проверят, что указанный метод объекта не выбрасывает исключение - -### Проверка наличия свойств/реквизитов - -* `ИмеетСвойство` - проверяемый объект должен содержать указанное свойство -* `НеИмеетСвойства` - проверяемый объект не содержит указанное свойство -* `ИмеетСвойстваРавные` - проверяемый объект должен содержать указанный набор свойств/реквизитов и значений - -### Проверка коллекции - -* `ИмеетДлину` - проверяет, что коллекция имеет указанный размер -* `ИмеетДлинуБольше` - проверяет, что коллекция имеет размер, который больше указанного -* `ИмеетДлинуМеньше` - проверяет, что коллекция имеет размер, который меньше указанного -* `НеИмеетДлину` - проверяет, что размер коллекции отличается от указанного -* `Содержит` - проверяемая коллекция должна содержать указанный элемент -* `НеСодержит` - проверяемая коллекция не должна содержать указанный элемент -* `КаждыйЭлементСодержитСвойство` - проверяет, что каждый элемент коллекции имеет указанное свойство -* `КаждыйЭлементСодержитСвойствоСоЗначением` - проверяет, что каждый элемент коллекции имеет указанное свойство, которое равно ожидаемому значению -* `ЛюбойЭлементСодержитСвойство` - проверяет, что в коллекции есть элемент содержащий указанное свойство -* `ЛюбойЭлементСодержитСвойствоСоЗначением` - проверяет, что в коллекции есть элемент содержащий указанное свойство, которое равно ожидаемому значению -* `КаждыйЭлементСоответствуетПредикату` - проверяет, что элементы коллекции соответствуют переданным условиям -* `ЛюбойЭлементСоответствуетПредикату` - проверяет, что коллекция содержит элемент, который соответствует переданным условиям - -### Проверка на соответствие набору условий, предикату - -* `СоответствуетПредикату` - проверяет, что объект или его свойство соответствует набору условий -* `КаждыйЭлементСоответствуетПредикату` - проверяет, что элементы коллекции соответствуют переданным условиям -* `ЛюбойЭлементСоответствуетПредикату` - проверяет, что коллекция содержит элемент, который соответствует переданным условиям -* `Содержит` - проверяемая коллекция должна содержать элемент, который соответствует переданным условиям -* `НеСодержит` - проверяемая коллекция не должна содержать элемент, который соответствует переданным условиям - -### Проверка методов объекта - -Для проверки работы методов объекта есть набор утверждений среди описанных выше (`ВыбрасываетИсключение` и `НеВыбрасываетИсключение`), но для их работы необходимо выполнить предварительные настройки. -Нужно указать какой методы объекта мы хотим проверить и с какими параметрами, для этого имеются следующие методы api - -* `Метод` - устанавливает имя и параметры проверяемого метода -* `Параметр` - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода - -### Методы позиционирования - -В дополнении к указанным методам утверждений есть возможность применить их к вложенным свойствам. Например, проверить, наличие заполненной табличной части документа используя выражение `ОжидаетЧто(Документ).Свойство("Товары").Заполнено()`. -Используя методы `Свойство` и `Элемент` можно позиционировать утверждения на вложенный реквизит/элемент. - -* `Свойство` - проверяет наличие свойства и позиционирует дальнейшие проверки на указанном свойстве -* `Элемент` - проверяет наличие элемента коллекции и позиционирует дальнейшие проверки на указанном элементе -* `Объект` - позиционирует дальнейшие проверки на объекте, указанном в методе `Что` -* `НетСвойства` - проверяет отсутствие свойства и позиционирует дальнейшие проверки на объекте, указанном в методе `Что` - -## Примеры - -### Базовые проверки - -```bsl -ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение - .ИмеетТип("Число") // Проверим тип - .Заполнено() // Заполненность проверяемого значения - .Больше(0) // Сравним с нулем - .Равно(5); // Проверим ожидаемый результат -``` - -### Проверка сложного объекта - -```bsl -Объект = ЮТКоллекции.ЗначениеВМассиве("1", "2", "3"); -ЮТУтверждения.Что(Объект, "Проверка элементов массива") - .Содержит("1") - .НеСодержит(1) - .Элемент(0).Равно("1") - .Элемент(1).Равно("2") - .Элемент(-1).Равно("3") - .Свойство("[00]").Равно("1") - .Свойство("[1]").Равно("2") - .Свойство("[-1]").Равно("3") - .НетСвойства(3) - .НеИмеетСвойства("[3]"); - -Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2))); -ЮТУтверждения.Что(Объект, "Проверка свойства элемента массива") - .Свойство("[3].Первый").Равно(1) - .Свойство("[3].Второй[-1]").Равно(2) - .Свойство("[3].Второй[0]").Равно(2) -``` - -### Проверка вызова метода - -```bsl -ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) - .НеВыбрасываетИсключение() - .НеВыбрасываетИсключение("Ожидаемое исключение"); -ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2)) - .ВыбрасываетИсключение("Слишком много фактических параметров"); -ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) - .ВыбрасываетИсключение("Исключение"); -ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодБезИсключение") - .ВыбрасываетИсключение("Недостаточно фактических параметров"); -``` - -### Проверка соответствия предикату - -```bsl -Дата = ЮТест.Данные().СлучайнаяДата(); - -Объект = Новый Структура; -Объект.Вставить("Число", 1); -Объект.Вставить("Строка", "1"); -Объект.Вставить("Дата", Дата); -Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1")); - -ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число") - .ИмеетТип(Тип("Число")) - .БольшеИлиРавно(1) - .МеньшеИлиРавно(10) - .Получить(); -ПроверкаДаты = ЮТест.Предикат().Реквизит("Дата") - .ИмеетТип(Новый ОписаниеТипов("Дата")) - .Равно(Дата) - .Получить(); - -ЮТест.ОжидаетЧто(Объект) - .СоответствуетПредикату(ЮТест.Предикат() - .Заполнено() - .ИмеетТип("Структура")) - .СоответствуетПредикату(ПроверкаЧисла) - .СоответствуетПредикату(ПроверкаДаты) -; -``` - -### Проверка элементов коллекции на соответствие предикату - -```bsl -ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11", ОписанияТипов); -Ютест.ОжидаетЧто(ТаблицаРезультатов) - .ИмеетТип("Массив") - .ИмеетДлину(3) - .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат() - .Реквизит("Товар").Заполнено().ИмеетТип("СправочникСсылка.Товары") - .Реквизит("Период").Заполнено().ИмеетТип("Дата") - .Реквизит("Количество").Заполнено().ИмеетТип("Число") - .Реквизит("Цена").Заполнено().ИмеетТип("Число") - ) -``` diff --git a/documentation/docs/user-api/assertions/assertions-db.md b/documentation/docs/user-api/assertions/assertions-db.md deleted file mode 100644 index 290dda00f..000000000 --- a/documentation/docs/user-api/assertions/assertions-db.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -tags: [Начало, Утверждения, ДанныеИБ] ---- - -# Утверждения для проверки данных информационной базы - -Большая часть тестируемых методов так или иначе оставляет свой след в базе, создает или изменяет записи в ИБ. - -Для проверки правильности работы метода нам необходимо проверить, что изменилось в базе. В этом могут помочь утверждения проверяющие записи ИБ. - -Доступ к утверждениям обеспечивает метод `ЮТест.ОжидаетЧтоТаблицаБазы`, который возвращает инициализированный модуль `ЮТУтвержденияИБ`, реализующий работу с утверждениями для ИБ. - -Утверждения позволяют проверить наличие и отсутствие записей по различным условиям, для задания условий используются [предикаты](../predicates.md) - -```bsl - ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары") - .НеСодержитЗаписи(); // В базе нет товаров - ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары") - .СодержитЗаписи(); // В базе есть товары - ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары") - .СодержитЗаписи(ЮТест.Предикат() // В базе есть товары определенного поставщика - .Реквизит("Поставщик").Равно(ДанныеСправочника.Поставщик)); - ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют") - .НеСодержитЗаписи(ЮТест.Предикат() // Курс валюты не установлен - .Реквизит("Валюта").Равно(ДанныеРегистра.Валюта) - .Реквизит("Период").БольшеИлиРавно(ДанныеРегистра.Период)); -``` - -## Доступные методы - -* `СодержитЗаписи` - проверяет наличие записей по условиям -* `НеСодержитЗаписи` - проверяет отсутствие записей по условиям -* `СодержитЗаписиСНаименованием` - проверяет наличие в таблице записей с указанным наименованием -* `СодержитЗаписиСКодом` - проверяет наличие в таблице записей с указанным кодом -* `СодержитЗаписиСНомером` - проверяет наличие в таблице записей с указанным номером -* `НеСодержитЗаписиСНаименованием` - проверяет отсутствие в таблице записей с указанным наименованием -* `НеСодержитЗаписиСКодом` - проверяет отсутствие в таблице записей с указанным кодом -* `НеСодержитЗаписиСНомером` - проверяет отсутствие в таблице записей с указанным номером - -:::tip - -[Предлагайте](https://github.com/bia-technologies/yaxunit/issues) и [добавляйте](https://github.com/bia-technologies/yaxunit/pulls) свои утверждения - -::: \ No newline at end of file diff --git a/documentation/docs/user-api/assertions/assertions.md b/documentation/docs/user-api/assertions/assertions.md deleted file mode 100644 index 78cbca29c..000000000 --- a/documentation/docs/user-api/assertions/assertions.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -tags: [Начало, Утверждения] ---- - -# Утверждения - -Каждый тестовый сценарий должен проверить результат работы тестируемого метода, будь то функция или процедура. - -Для написания таких проверок реализован механизм утверждений, позволяющий в лаконичной форме описать свои ожидания, требования к результату. - - -Как и большая часть API, утверждения реализованы по модели [текучих выражений](https://ru.wikipedia.org/wiki/Fluent_interface), с целью повышения удобства и читаемости тестов - - ```bsl - ЮТест.ОжидаетЧто(Контекст) - .ИмеетТип("Структура") - .Свойство("ПрефиксОшибки").Равно("Контекст метода с параметрами") - .Свойство("ИмяМетода").Заполнено().Равно("МетодБезИсключение") - .Свойство("ПараметрыМетода").ИмеетТип("Массив").ИмеетДлину(1); - ``` - -YaxUnit содержит утверждения для: - -* Проверки [значений](assertions-base.md#доступные-методы) -* Проверки [методов объекта на выброс исключений](assertions-base.md#проверка-методов-объекта) -* Проверки [данных информационной базы](assertions-db.md) \ No newline at end of file diff --git a/documentation/docs/user-api/context.md b/documentation/docs/user-api/context.md deleted file mode 100644 index 46a2e8a09..000000000 --- a/documentation/docs/user-api/context.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -tags: [Начало, Контекст] ---- - -# Контекст - -## Механизм контекстов - -Одним из важнейших блоков работы тестового движка является механизм контекстов. - -Он позволяет: - -1. Хранить промежуточные данные и обеспечивать работу механизма текучих выражений. -2. Передавать между тестами необходимые данные. -3. Удалять тестовые данные. - -И имеет несколько ограничений: - -1. Не синхронизируется между клиентом и сервером. -2. Тестовые контексты имеют ограниченное время жизни. Например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста". - -Для различных механизмов движка существуют различные контексты, такие как контекст утверждений, контекст теста и тд. - -## Контексты тестового модуля - -Разработчику тестов будут интересны следующие контексты: - -* Контекст теста (`ЮТест.КонтекстТеста`) - живет в рамках одного теста. Доступен в каждом тесте и в обработчиках событий - * `ПередКаждымТестом` - * `ПослеКаждогоТеста` -* Контекст тестового набора (`ЮТест.КонтекстТестовогоНабора`) - живет в рамках набора тестов. Доступен в каждом тесте набора и в обработчиках событий - * `ПередТестовымНабором` - * `ПослеТестовогоНабора` - * `ПередКаждымТестом` - * `ПослеКаждогоТеста` -* Контекст тестового модуля (`ЮТест.КонтекстМодуля`) - живет в рамках тестового модуля. Доступен в каждом тесте модуля и в обработчиках событий - * `ПередВсемиТестами` - * `ПослеВсехТестов` - * `ПередТестовымНабором` - * `ПослеТестовогоНабора` - * `ПередКаждымТестом` - * `ПослеКаждогоТеста` - -На каждом уровне исполнения есть возможность переопределить обработчики событий соответствующего контекста исполнения при помощи методов `Перед()` и `После()`. Настроенный обработчик события будет вызван _вместо_ основного. Пример: -```bsl -ЮТТесты - .ДобавитьТестовыйНабор("Набор1") // Будет вызван основной обработчик ПередТестовымНабором() - .ДобавитьТест("Тест1") - .ДобавитьТестовыйНабор("Набор2").Перед("Перед_Набор2") // Будет вызван обработчик Перед_Набор2() - .ДобавитьТест("Тест2"); - -``` diff --git a/documentation/docs/user-api/index.md b/documentation/docs/user-api/index.md deleted file mode 100644 index 6e7112fa1..000000000 --- a/documentation/docs/user-api/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -tags: [Начало] ---- - -# Пользовательский API - -Для разработчиков тестов расширение предоставляет API: - -* [Регистрации тестовых сценариев](test-registration.md) -* Формирования [утверждений](assertions/assertions.md) для проверки результата работы различных механизмов системы. -* Создания [тестовых данных](test-data/test-data.md) -* Сохранения состояния и обмена данными между тестами используя [контекст](context.md) -* [Подмены](mockito.md) алгоритмов работы системы -* [Предикаты](predicates.md), которые используются во многих механизмах движка -* Методы [получения данных](queries.md) информационной базы -* [Интерфейс](yaxunit-ui.md) для просмотра отчета и настройки параметров запуска тестов - -Доступ к API осуществляется через методы модуля `ЮТест`, например - -* `ЮТест.Данные()` для доступа к методам работы с тестовыми данными -* `ЮТест.ОжидаетЧто()` для доступа к утверждения - -:::tip -Не рекомендуется обращаться к модулям API напрямую, используйте `ЮТест` -::: diff --git a/documentation/docs/user-api/mockito.md b/documentation/docs/user-api/mockito.md deleted file mode 100644 index 95d3e2eb3..000000000 --- a/documentation/docs/user-api/mockito.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -tags: [Начало, Мокирование] ---- - -# Мокито - -Мокито - модуль созданный по образу популярного java-фреймворка для тестирования [Mockito](https://site.mockito.org/). Расширяет возможности тестирования, позволяет легко менять логику работы системы подменяя результаты работы методов, отключая какие-либо алгоритмы и проверки. - -Юнит-тесты, это тесты конкретных методов в отрыве от системы - контролировать данные используемые методом, изменение логики и ошибки других объектов не должны аффектить на тест. -В реальных конфигурациях объекты тесно связаны друг с другом, поэтому добиться контроля влияющих данных очень сложно. Обычно приходится создавать большой объем тестовых данных. А добиться изоляции от изменения логики других объектов почти невозможно. Мокирование же позволяет изменить логику работы системы таким образом, чтобы тестируемый метод не вызывал другие методы и использовал уже подготовленные данные. Например, для тестирования проведения реализации товаров мы можем подменить результат функции формирующей таблицу проводок и избежать сложной подготовки данных. - -С помощью Мокито разработчик указывает, что делать при вызове определенных методов - вернуть нужный результат, вызвать исключение или просто не трогать ненужные методы. После тестирования разработчик может запросить и проверить статистику о вызовах, как и какие методы были вызваны. - -Пример: - -```bsl -ОтветСерверы = ОтветУспешногоЗапроса("Серверы"); -ОтветДиски = ОтветУспешногоЗапроса("Диски"); - -Мокито.Обучение(РаботаСHTTP) - .Когда(РаботаСHTTP.ВыполнитьЗапрос(ПараметрыПодключения, "/hosts", "GET")) - .Вернуть(ОтветСерверы) - .Когда(РаботаСHTTP.ВыполнитьЗапрос(ПараметрыПодключения, "/disks", "GET")) - .Вернуть(ОтветДиски) - .Прогон(); - -Результат = БиллингДрайверГипервизорNutanix.Серверы(ПараметрыПодключения); -``` - -В этом примере изменяется работа модуля `РаботаСHTTP`, для функции `ВыполнитьЗапрос`, вызванной с нужными параметрами будет возвращено подготовленное значение, а сам метод не будет вызван. -Мы получим ожидаемые ответы на запросы к сторонней системе и уйдет от проблем связанных с ней - недоступность, изменение контрактов и т.д. - -Работа с Мокито делится на 3 стадии: - -```mermaid -flowchart LR - training(Обучение) --> run(Прогон, запуск тестового метода) - run --> check(Проверка) -``` - -* [Обучение](#обучение) - настраиваем поведение методов системы -* [Прогон](#прогон) - выполнение теста целевого метода -* [Проверка](#проверка) - анализ вызовов - -## Использование - -### Настройка мокируемых методов - -Для работы Мокито вам необходимо добавить интересующие методы в тестовое расширение. - -Эта позволит управлять поведением метода: - -* подменять результат во время выполнения теста -* использовать явный вызов метода с параметрами на стадии обучения, например `Мокито.Обучение(Справочники.ИсточникиДанных).Когда(Справочники.ИсточникиДанных.СохраненныеБезопасныеДанные(Справочник)).Вернуть(Результат)` -* использовать явный вызов метода с параметрами на стадии проверки, например `Мокито.Проверить(Справочники.ИсточникиДанных).КоличествоВызовов(Справочники.ИсточникиДанных.СохраненныеБезопасныеДанные(Справочник)).Больше(1)` - -Примеры добавления методов в расширение. - -#### Метод общего модуля - -Добавляем обработку метода `ИнициализироватьВнешнююКомпоненту` общего модуля `ОбщегоНазначенияКлиентСервер` - -```bsl -&Вместо("ИнициализироватьВнешнююКомпоненту") -Функция ЮТИнициализироватьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ВызыватьИсключение, ПаузаЧерезКомпоненту) Экспорт - // Собираем параметры в массив - ПараметрыМетода = Мокито.МассивПараметров(ИмяМакета, ИмяКомпоненты, ВызыватьИсключение, ПаузаЧерезКомпоненту); - - // Отправляем данные на анализ - ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(ОбщегоНазначенияКлиентСервер, "ИнициализироватьВнешнююКомпоненту", ПараметрыМетода, ПрерватьВыполнение); - - // Обрабатываем результат анализа - Если НЕ ПрерватьВыполнение Тогда - Возврат ПродолжитьВызов(ИмяМакета, ИмяКомпоненты, ВызыватьИсключение, ПаузаЧерезКомпоненту); - Иначе - Возврат Результат; - КонецЕсли; -КонецФункции -``` - -#### Метод модуля менеджера - -Добавляем обработку метода `СохраненныеБезопасныеДанные` модуля менеджера справочника `Справочники.ИсточникиДанных` - -```bsl -&Вместо("СохраненныеБезопасныеДанные") -Функция ЮТСохраненныеБезопасныеДанные(Владелец, Знач Ключи) Экспорт - - // Собираем параметры в массив - ПараметрыМетода = Мокито.МассивПараметров(Владелец, Ключи); - - // Отправляем данные на анализ - ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(Справочники.ИсточникиДанных, "СохраненныеБезопасныеДанные", ПараметрыМетода, ПрерватьВыполнение); - - // Обрабатываем результат анализа - Если НЕ ПрерватьВыполнение Тогда - Возврат ПродолжитьВызов(Владелец, Ключи); - Иначе - Возврат Результат; - КонецЕсли; - -КонецФункции -``` - -#### Метод модуля объекта - -Добавляем обработку приватного метода `ПеренестиДанныеВБезопасноеХранилище` модуля объекта справочника `Справочники.ИсточникиДанных` - -```bsl -&Вместо("ПеренестиДанныеВБезопасноеХранилище") -Функция ЮТПеренестиДанныеВБезопасноеХранилище(Ключи) - - // Собираем параметры в массив - ПараметрыМетода = Мокито.МассивПараметров(Ключи); - - // Отправляем данные на анализ - ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(ЭтотОбъект, "ПеренестиДанныеВБезопасноеХранилище", ПараметрыМетода, ПрерватьВыполнение); - - // Обрабатываем результат анализа - Если НЕ ПрерватьВыполнение Тогда - Возврат ПродолжитьВызов(Ключи); - Иначе - Возврат Результат; - КонецЕсли; - -КонецФункции -``` - -### Обучение - -Самая первая стадия при написании тестов использующих моки - обучение. -Мы создаем правила как будет вести себя метод при различных вариантах вызова. -Правило состоит из условий проверки параметров и действия выполняемого при соблюдении условий. - -Условия можно задать на равенство определенному значению, на проверку типа переданного значения или же безусловно принимать любый параметры - -Существует 2 основных подхода к формированию условий вызова: - -1. Явный вызов метода с параметрами: `Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные)).Вернуть(2)` -2. Указание имени метода и набора параметров: `Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных, Данные)).Вернуть(2)` - -Первый вариант имеет ряд недостатков: - -1. Работает только для экспортных методов -2. Необходимо передавать все обязательные параметры или использовать для них маску `Мокито.ЛюбойПараметр()` -3. Если не указывать необязательные параметры, то их значения по умолчанию попадут в настройку. Покажу на примере. - Имеется метод `Функция Метод(Параметр1, Параметр2, Параметр3 = 3)` - - Настройка `Когда(Метод(1, 2)).Вернуть(0)`, в результате ноль мы получим для вызовов - - * `Метод(1, 2)` - * `Метод(1, 2, 3)` - - Для вызова `Метод(1, 2, 4)` будет выполнен основной алгоритм метода. - - А для настройки `Когда("Метод", Мокито.МассивПараметров(1, 2)).Вернуть(0)` все три варианта вызова вернут ноль. - -После того как определились с условием вызова указанным в методе `Когда` нужно указать реакцию. Возможные реакции: - -* `Вернуть` - вернуть указанное значение -* `ВыброситьИсключение` - вызвать исключение с переданным текстом -* `Пропустить` - пропустить выполнение метод (актуально для процедур) - -#### Примеры формирования различных вариантов условий - -Имеется метод: - -```bsl -Функция ОтправитьОбъектНаСервер(ИсточникДанных, Объект, HTTPМетод = "POST", - ТипКонтента = "json", Преобразование = Неопределено, - ДопНастройки = Неопределено, Ответ = Неопределено, ОтветВСтруктуру = Ложь, - ТелоОтветаВХранилище = Ложь) Экспорт -``` - -* Переопределить все вызовы метода - указываем имя метода без указания параметров - `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер").Вернуть(1)` -* Переопределить вызов, когда первый параметр имеет определенное значение - 1. `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных)).Вернуть(2)` - 2. `Мокито.Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Мокито.ЛюбойПараметр()).Вернуть(2)`. Тут используется маска `Мокито.ЛюбойПараметр()`, тк второй параметр является обязательным -* Переопределить вызов, когда **второй** параметр имеет определенное значение - 1. `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Объект)).Вернуть(2)` - 2. `Мокито.Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ЛюбойПараметр(), Объект).Вернуть(2)`. -* Условие на тип параметра - 1. `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр())).Вернуть(3)` - 2. `Мокито.Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр()).Вернуть(3)` - -### Прогон - -После обучения, настройки реакций на вызовы методов, можно запускать тест нужного метода. Для перехода к этому режиму работы Мокито используется метод `Прогон`. - -Все вызовы к настроенным методам (добавленным в расширение) будут перехватываться и анализироваться на совпадение условий вызова. -Для вызовов, у которых есть подходящая "реакция" будет переопределено выполнение и запустится соответствующая реакция (вернуть значение, вызвать исключение и тд), для прочих - выполнение продолжится. - -```bsl -// Настройка -Мокито.Обучение(РаботаСHTTP) - .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Мокито.ЛюбойПараметр())) - .Вернуть(РезультатПоУмолчанию) - .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Справочники.ИсточникиДанных.FTP, 2)) - .Вернуть(2) - .Прогон(); // Перевод в режим прогона теста - -Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные); // Результат будет равен переменной РезультатПоУмолчанию -Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, 2); // Результат будет равен 2 -``` - -### Проверка - -После прогона теста можно проверить какие методы, с какими параметрами вызывались. Для этих целей необходимо воспользоваться методом `Проверить` - -```bsl -Мокито.Проверить(РаботаСHTTP) // Устанавливаем проверяемый объект - .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, Мокито.ЧисловойПараметр())) // Условия поиска вызовов - .Больше(1) // Проверки - .Равно(2) - .КоличествоВызовов("ОтправитьОбъектНаСервер").Заполнено().Равно(3).Меньше(6) - .КоличествоВызовов("ОтправитьЗапросHTTP").Пусто().Меньше(1) - .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(1, 2)).Равно(1) - .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, ЛюбойПараметр)).Равно(3) - .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(ТипИсточникДанных), ЛюбойПараметр)).Равно(1) -``` - -Принцип формирования проверки: - -* Указываем проверяемый объект `Проверить(РаботаСHTTP)`. -* Указываем условия поиска вызовов метода. Логика формирования условия такая же как при обучении. - Например, `КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, Мокито.ЧисловойПараметр()))` - Соберет все вызовы метода `РаботаСHTTP.ОтправитьОбъектНаСервер`, к которых вторым параметром идет число, а 3й и последующий параметры имеют значения по умолчанию. -* Проверяем собранные вызовы: - * `Заполнено` - есть вызовы метода по указанным условиям - * `Пусто` - нет вызовов метода по указанным условиям - * `Равно` - количество вызовов попавших под условия равно указанному значению - * `Больше` - количество вызовов попавших под условия больше указанного значения - * `Меньше` - количество вызовов попавших под условия меньше указанного значения - -### Ограничения параметров - -При обучении (а также при проверке) не редко мы не может указать конкретные значения, которые придут в метод. для этих целей имеются. - -* Маски параметров - * `ЛюбойПараметр` - ожидаем любой параметр - * `ЧисловойПараметр` - ожидаем только числовой параметр - * `СтроковыйПараметр` - ожидаем только строковый параметр - * `ТипизированныйПараметр` - ожидаем параметр указанного типа -* [Предикаты](predicates.md) позволяющие сформировать почти любые условия на параметры - -Примеры - -* `Когда(Метод(1, 2))` -* `Когда(Метод(Мокито.ЧисловойПараметр(), 2))` -* `Когда(Метод(ЮТест.Предикат().Больше(0), 2))` - - -## Кейсы использования\* - -\* *В примерах опускается часть добавления метода в расширение* - -1. Подмена результат функции для любого вызова - - ```bsl - Мокито.Обучение(РаботаСHTTP) - .Когда("ОтправитьОбъектНаСервер") - .Вернуть(1) - ``` - -2. Выключение алгоритма проведения документа - - ```bsl - Мокито.Обучение(СсылкаИлиОбъектДокумент) - .Когда("ОбработкаПроведения") - .Пропустить() - ``` - -3. Выбросить исключение, если в метод передан некорректный набор параметров - - ```bsl - Мокито.Обучение(РаботаСHTTP) - .Когда("ОтправитьОбъектНаСервер") - .ВыброситьИсключение("Не верные параметры вызова") - .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, Мокито.ЛюбойПараметр())) - .ВыполнитьМетод(); - ``` diff --git a/documentation/docs/user-api/predicates.md b/documentation/docs/user-api/predicates.md deleted file mode 100644 index 1f11dd002..000000000 --- a/documentation/docs/user-api/predicates.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -tags: [Начало, Предикаты, Утверждения, Запросы, Мокирование] ---- - -# Предикаты - -Предикаты это утверждения, которые вы можете передавать в качестве параметров. -Они расширяют и унифицируют функциональность тестового движка. - -```bsl -Процедура АктуализацияУведомлений() Экспорт - - ИмяРегистра = "РегистрСведений.ОповещенияПользователя"; - Объект = ТестовыеДанные.Объект(); - - УсловиеУведомления = ЮТест.Предикат() - .Реквизит("Источник").Равно(Объект) - .Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление1) - .Получить(); - - ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) - .НеСодержитЗаписи(УсловиеУведомления); - - УведомленияВызовСервера.АктуализацияУведомлений(); - - ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) - .СодержитЗаписи(УсловиеУведомления); - - ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, УсловиеУведомления); - - ЮТест.ОжидаетЧто(ДанныеУведомления) - .Свойство("Прочитано").ЭтоЛожь() - .Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер); - -КонецПроцедуры -``` - -Механизм предикатов: - -* позволяет формировать наборы утверждений и передавать их в качества параметров; -* используется для проверки коллекций, записей базы и так далее; -* построен по модели текучих выражения и имеет схожий с базовыми утверждениями синтаксис (`ЮТест.ОжидаетЧто()`); - -## Примеры использования - -* Проверка коллекции - - ```bsl - ЮТест.ОжидаетЧто(Коллекция) - .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат() - .Реквизит("Число").Равно(2)); // Проверят, что в коллекции есть элементы с реквизитом `Число`, которое равно `2` - - ЮТест.ОжидаетЧто(Коллекция) - .Содержит(ЮТест.Предикат() - .Реквизит("Число").Равно(2)); // Тоже самое, что и проверка выше - - ЮТест.ОжидаетЧто(Коллекция) - .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат() - .Заполнено().ИмеетТип("Массив")); // Проверят, что каждый элемент коллекции это заполненный массив - - ЮТест.ОжидаетЧто(Коллекция) - .НеСодержит(ЮТест.Предикат() - .Реквизит("Число").Равно(2)); // Проверят, что в коллекции нет элементов с реквизитом `Число`, которое равно `2` - - ``` - -* Описания параметров метода при мокировании - - Например, имеем метод, который принимает в параметрах структуру. Необходимо вернуть 2 разных результата в зависимости от значения реквизита входной структуры. - - ```bsl - Мокито.Обучение(Модуль) - .Когда(Модуль.Посчитать(ЮТест.Предикат() - .Реквизит("Оператор").Равно("Сложить"))) - .ВернутьРезультат(Результат1) - - .Когда(Модуль.Посчитать(ЮТест.Предикат() - .Реквизит("Оператор").Равно("Вычесть"))) - .ВернутьРезультат(Результат2); - ``` - -* Утверждения, проверяющие данные в базе на основании предикатов. - - ```bsl - ЮТест.ОжидаетЧтоТаблица("Справочник.Товары").СодержитЗаписи( - ЮТест.Предикат() - .Реквизит("Наименование").Равно("Товар 1") - .Реквизит("Ссылка").НеРавно(Исключение) - ); - ``` - -* Получение записей из базы - - ```bsl - ДанныеТовара = ЮТЗапросы.Запись("Справочник.Товары", ЮТест.Предикат() - .Реквизит("Наименование").Равно("Товар 1") - .Реквизит("Ссылка").НеРавно(Исключение)); - ``` - -## Особенности - -### Особенности контекста - -Предикаты как и большинство механизмов построены на текучих выражениях с сохранением состояния в глобальном контексте. - -Это приводит к тому, что вы не можете сразу использовать несколько предикатов, например - -```bsl -Мокито.Обучение(Модуль) - .Когда(Модуль.СделатьЧтоТо( - ЮТест.Предикат().ИмеетТип("Строка"), - ЮТест.Предикат().ИмеетТип("Число"))) - .ВернутьРезультат(Результат1); -``` - -В этом примере 1С сначала вычислит выражения для всех параметров, а потом передаст их в метод и мы получим для обоих параметров один и тот же предикат, ожидающий тип `Число`. -Потому что состояние первого предиката будет заменено вторым. Для обхода этой проблемы можно использовать метод `Получить`, который возвращает текущее состояние. - -```bsl -Мокито.Обучение(Модуль) - .Когда(Модуль.СделатьЧтоТо( - ЮТест.Предикат().ИмеетТип("Строка").Получить(), - ЮТест.Предикат().ИмеетТип("Число"))) - .ВернутьРезультат(Результат1); -``` - -Такая же история при сохранение предикатов в переменные. - -```bsl -ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка"); -ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число"); -``` - -`ПроверкаСтрока` и `ПроверкаЧисло` будут равны и содержать одинаковые условия. Проблему также можно обойти используя метод `Получить`. - -```bsl -ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка").Получить(); -ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число").Получить(); -``` - -### Особенности реализации - -Сам модуль предикатов используется только для формирования утверждений/условий. - -Реализацией проверок и формированием условий занимаются другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами. diff --git a/documentation/docs/user-api/queries.md b/documentation/docs/user-api/queries.md deleted file mode 100644 index c8330ed7d..000000000 --- a/documentation/docs/user-api/queries.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -tags: [Начало, ДанныеИБ] ---- - -# Запросы - -Для получения данных базы предоставлен API выполнения запросов `ЮТЗапросы` - -Позволяет как с сервера, так и с клиента получать данные информационной базы и имеет следующие методы - -* `ЗначенияРеквизитов` - Возвращает значения реквизитов ссылки -* `ЗначениеРеквизита` - Возвращает значение реквизита ссылки -* `Запись` - Возвращает первую запись таблицы, соответствующую условиям -* `Записи` - Возвращает записи таблицы, соответствующую условиям -* `ЗначенияРеквизитовЗаписи` - Возвращает значения реквизитов первой записи таблицы, соответствующей условиям -* `ЗначениеРеквизитаЗаписи` - Возвращает значение реквизита первой записи таблицы, соответствующей условиям -* `ТаблицаСодержитЗаписи` - Вернет признак, содержит ли таблица записи, удовлетворяющие переданным условиям -* `РезультатЗапроса` - Возвращает результат выполнения простого запроса, используя описание запроса -* `РезультатПустой` - Определяет, есть ли в результате записи, используя описание запроса -* `ОписаниеЗапроса` - Формирует описание простого запроса diff --git a/documentation/docs/user-api/test-data/test-data-deletion.md b/documentation/docs/user-api/test-data/test-data-deletion.md deleted file mode 100644 index 905a076ad..000000000 --- a/documentation/docs/user-api/test-data/test-data-deletion.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -tags: [Начало, Тестовые данные] ---- - -# Удаление тестовых данных - -При использовании тестовых данных нередко необходимо удалять созданные объекты. - -Для этого вы можете использовать - -## Автоматические транзакции - -Для включения нужно при регистрации теста вызвать метод `ВТранзакции()` - -```bsl title=ВТранзакции.bsl -ЮТТесты - .ДобавитьТест("Фикция").ВТранзакции() // Использование транзакции для конкретного теста - -ЮТТесты - .ДобавитьТестовыйНабор("Основной).ВТранзакции() // Использование транзакции для набора тестов - .ДобавитьТест("Фикция") - -ЮТТесты.ВТранзакции() // Использование транзакции для тестов модуля - .ДобавитьТест("Фикция") - -``` - -И тогда тестовый движок будет оборачивать в транзакцию каждый серверный тест (для клиентских будет игнорироваться) - -:::caution Учитывайте -В транзакцию оборачивается тест, а не модуль или набор, поэтому данные созданные вне теста не будут удалены. -Такие данные необходимо удалять самостоятельно при необходимости. -::: - -## Механизм удаления тестовых данных - -Для включения нужно при регистрации теста вызвать метод `УдалениеТестовыхДанных()` - -```bsl title=УдалениеТестовыхДанных.bsl -ЮТТесты - .ДобавитьТест("Фикция").УдалениеТестовыхДанных() // Использование для конкретного теста - -ЮТТесты - .ДобавитьТестовыйНабор("Основной).УдалениеТестовыхДанных() // Использование для всех тестов набора - .ДобавитьТест("Фикция") - -ЮТТесты.УдалениеТестовыхДанных() // Использование для всех тестов модуля - .ДобавитьТест("Фикция") - -ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() // Совместно с транзакцией - .ДобавитьТест("Фикция") - -``` - -Механизм не использует транзакции, а запоминает в контексте все созданные с помощью API объекты и записи регистров сведений. -Позволяет: - -* Удалять данные созданные с клиента -* Удалять данные созданные вне теста (в обработчиках событий) - -:::caution Удаление и только -Механизм только удаляет созданные объекты, изменения не откатываются -::: - -:::tip Разное время жизни данных -Механизм понимает в рамках какого контекста исполнения (тест, набор, модуль) были созданы данные и удаляет их по выходу из него. -::: - -Рассмотрим время жизни объектов созданных на разных этапах тестирования, например имеем такой модуль. - -```bsl title=УдалениеТестовыхДанныхВремяЖизни.bsl -Процедура ПередВсемиТестами() Экспорт - ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент(); -КонецПроцедуры - -Процедура ПередТестовымНабором() Экспорт - ДанныеНабора = ЮТест.Данные().СоздатьЭлемент(); -КонецПроцедуры - -Процедура ПослеВсехТестов() Экспорт - ДанныеТеста = ЮТест.Данные().СоздатьЭлемент(); -КонецПроцедуры - -Процедура Тест() Экспорт - Ссылка = ЮТест.Данные().СоздатьЭлемент(); -КонецПроцедуры -``` - -Для переменных получим разное время жизни - -* `ДанныеМодуля` - Живет, пока исполняются тесты модуля одного контекста (Сервер, Клиент). -* `ДанныеНабора` - Живет, пока исполняются тесты набора. -* `ДанныеТеста` и `Ссылка` - Живут, пока исполняется тест. - -:::caution Механизм имеет ряд ограничений и не работает для следующих кейсов: - -* Данные создан не через API -* Данные созданы в клиентском модуле через вызов своего серверного модуля, даже если он использует API тестового движка -::: diff --git a/documentation/docs/user-api/test-registration.md b/documentation/docs/user-api/test-registration.md deleted file mode 100644 index 24e7a80b0..000000000 --- a/documentation/docs/user-api/test-registration.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -tags: [Начало] ---- - -# Регистрация тестовых методов (ЮТТесты) - -Кроме того, чтобы написать тестовые сценарии, разработчик должен зарегистрировать их в движке. -Регистрация выполняется внутри предопределенного экспортного метод `ИсполняемыеСценарии`, который обязательно должен находиться в тестовом модуле. - -```bsl - -Процедура ИсполняемыеСценарии() Экспорт - - // Регистрация тестов - ЮТТесты // Регистрация тестов выполняет через модуль регистратор - .ДобавитьТестовыйНабор("Математические методы") // Набор - объединение тестов - .ДобавитьТест("Сложение") // Обязательно при регистрации указываем имя экспортного метода - .ДобавитьТест("Вычитание", "Вычитание") // Также можно указать представление теста - .ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля - .ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Есть отдельный метод для регистрации клиентских тестов - .ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов - .ДобавитьТестовыйНабор("Строковые методы") - .ДобавитьТест("СтрНайти") - .ДобавитьТест("СтрРазделить"); - -КонецПроцедуры - -``` - -Этот метод автоматически вызывается тестовым движком при старте тестирования. - -Как видно из примера выше, регистрация выполняется с помощью методов модуля `ЮТТесты`. - -Он позволяет: - -* Объединять тесты в наборы, указывать теги, по которым возможно формировать отборы запускаемых тестов -* Указывать контекст вызова, например, для клиент-серверного модуля (или метода) можно реализовать тесты в одном тестовом модуле, проверяющие логику и на клиенте, и на сервере. -* Указывать параметры выполнения тестов. -* Организовывать черновики, регистрируя нереализованные тесты. diff --git a/documentation/docs/yaxunit-ui.md b/documentation/docs/yaxunit-ui.md index 4e19a8022..2d9ec4304 100644 --- a/documentation/docs/yaxunit-ui.md +++ b/documentation/docs/yaxunit-ui.md @@ -1,3 +1,8 @@ +--- +sidebar_position: 5 +tags: [Начало] +--- + # Графический интерфейс Расширение добавляет в командный интерфейс конфигурации новый раздел "Юнит тест". diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js index 75fb358e9..39388937e 100644 --- a/documentation/docusaurus.config.js +++ b/documentation/docusaurus.config.js @@ -1,8 +1,7 @@ // @ts-check // Note: type annotations allow type checking and IDEs autocompletion -const lightCodeTheme = require('prism-react-renderer/themes/github'); -const darkCodeTheme = require('prism-react-renderer/themes/dracula'); +import {themes as prismThemes} from 'prism-react-renderer'; /** @type {import('@docusaurus/types').Config} */ const config = { @@ -95,13 +94,13 @@ const config = { navbar: { title: 'YAx Unit', logo: { - alt: 'YaxUnit Logo', + alt: 'YAxUnit Logo', src: 'img/logo.png', }, items: [ { type: 'doc', - docId: 'user-api/index', + docId: 'features/features', position: 'left', label: 'Описание', }, @@ -142,7 +141,7 @@ const config = { items: [ { label: 'Tutorial', - to: '/docs/user-api', + to: '/docs/features', }, ], }, @@ -168,14 +167,25 @@ const config = { copyright: `Copyright © ${new Date().getFullYear()} BIA Technologies, Inc. Built with Docusaurus.`, }, prism: { - theme: lightCodeTheme, - darkTheme: darkCodeTheme, + theme: prismThemes.vsLight, + darkTheme: prismThemes.vsDark, + additionalLanguages: ['bsl'], }, }), markdown: { mermaid: true, }, - themes: ['@docusaurus/theme-mermaid'], + themes: ['@docusaurus/theme-mermaid', + ["@easyops-cn/docusaurus-search-local", { + hashed: true, + language: ["en", "ru"], + indexBlog: false, + indexDocs: true, + docsRouteBasePath: ["docs", "api", 'contributing', 'lessons'], + docsDir: ["docs", "api", 'contributing', 'lessons'], + highlightSearchTermsOnTargetPage: true, + hideSearchBarWithNoSearchContext: true, + }]], }; module.exports = config; diff --git a/documentation/package.json b/documentation/package.json index f5d57605c..a8ef6d8ce 100644 --- a/documentation/package.json +++ b/documentation/package.json @@ -14,17 +14,20 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/preset-classic": "2.3.1", - "@docusaurus/theme-mermaid": "2.3.1", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.2.1", - "prism-react-renderer": "^1.3.5", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "@docusaurus/core": "^3.1.1", + "@docusaurus/preset-classic": "^3.1.1", + "@docusaurus/theme-mermaid": "^3.1.1", + "@easyops-cn/docusaurus-search-local": "^0.40.1", + "@mdx-js/react": "^3.0.0", + "dagre": "^0.8.5", + "prism-react-renderer": "^2.3.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.20.0", + "reactflow": "^11.10.1" }, "devDependencies": { - "@docusaurus/module-type-aliases": "2.3.1" + "@docusaurus/module-type-aliases": "^3.1.1" }, "browserslist": { "production": [ @@ -39,6 +42,6 @@ ] }, "engines": { - "node": ">=16.14" + "node": ">=18.0" } } diff --git a/documentation/src/components/mindmap.js b/documentation/src/components/mindmap.js new file mode 100644 index 000000000..520a92bc6 --- /dev/null +++ b/documentation/src/components/mindmap.js @@ -0,0 +1,121 @@ +import React, { useCallback } from 'react'; +import ReactFlow, { + addEdge, + ConnectionLineType, + Panel, + useNodesState, + useEdgesState, +} from 'reactflow'; +import dagre from 'dagre'; +import { useHistory } from "react-router-dom"; + +// we have to import the React Flow styles for it to work +import 'reactflow/dist/style.css'; + +const dagreGraph = new dagre.graphlib.Graph(); +dagreGraph.setDefaultEdgeLabel(() => ({})); + +const nodeWidth = 150; +const nodeHeight = 36; + +const getLayoutedElements = (nodes, edges, direction = 'LR') => { + const isHorizontal = direction === 'LR'; + dagreGraph.setGraph({ rankdir: direction }); + + nodes.forEach((node) => { + dagreGraph.setNode(node.id, { width: nodeWidth, height: nodeHeight }); + }); + + edges.forEach((edge) => { + dagreGraph.setEdge(edge.source, edge.target); + }); + + dagre.layout(dagreGraph); + + nodes.forEach((node) => { + const nodeWithPosition = dagreGraph.node(node.id); + node.targetPosition = isHorizontal ? 'left' : 'top'; + node.sourcePosition = isHorizontal ? 'right' : 'bottom'; + + // We are shifting the dagre node position (anchor=center center) to the top left + // so it matches the React Flow node anchor point (top left). + node.position = { + x: nodeWithPosition.x - nodeWidth / 2, + y: nodeWithPosition.y - nodeHeight / 2, + }; + + return node; + }); + + return { nodes, edges }; +}; + +const Mindmap = (nodesTree) => { + const initialNodes = [] + const initialEdges = [] + var id = 0; + const fillNodes = (nodeTree, parentID)=>{ + console.log(nodeTree); + + const nodeId = 'n' + (id++); + const node = { id: nodeId, data: { label: nodeTree.label, href: nodeTree.href } }; + initialNodes.push(node); + if(parentID){ + initialEdges.push({ id: 'e' + parentID + nodeId, source: parentID, target: nodeId }); + } else { + node.type = 'input' + } + if(nodeTree.child){ + nodeTree.child.forEach(childNode=>{ + fillNodes(childNode, nodeId); + }) + } else{ + node.type = 'output' + } + } + + fillNodes(nodesTree.nodesTree, undefined); + + const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements( + initialNodes, + initialEdges + ); + + const [nodes, setNodes, onNodesChange] = useNodesState(layoutedNodes); + const [edges, setEdges, onEdgesChange] = useEdgesState(layoutedEdges); + + const onConnect = useCallback( + (params) => + setEdges((eds) => + addEdge({ ...params, type: ConnectionLineType.SmoothStep, animated: true }, eds) + ), + [] + ); + + const history = useHistory(); + const onNodeClick = (event, node) => history.push(node.data.href); + + return ( +

+ ); +}; + +const Node = (label, href, child) =>{ + return {label: label, href: href, child: child}; +} + +export { Mindmap, Node }; diff --git a/documentation/src/pages/images/report.png b/documentation/src/pages/images/report.png deleted file mode 100644 index 884d8c3fc8689571bde9b0e582ac847a50c50ff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22109 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 diff --git a/documentation/src/pages/images/reports.png b/documentation/src/pages/images/reports.png new file mode 100644 index 0000000000000000000000000000000000000000..6579ece015d20f0bdf9d3256f60d46ed2e6bba27 GIT binary patch literal 310440 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ęNy~CuA0kQRGx1+-f62t`1vad*TM!$9FQv&?`+(}@*?kSZ&$0) zT>Afm0#RdF`1w0mbpC^<|94>hyg9?XxfzZN8~`h=IXw9hLIp}raPme6C_Hs=K9Hu| z=c13;*SEKcD7pW#Z`6lL3D|#c27ZM860Ta@u{suxkvQM7g^l&&(Q|%onXFny*E;d4 zZe$eu_TMYr5XB|`!%2XF%zf`L-3m3Cvr3&V%P~4GIYP9gl1-KXRMX2gbDCC?-gS)+ zi2wNCFc?bw8wNrN!DT*@@Bc=|@O#ywA~1J$*N%Y?{0;zXNSi%~0^L}0foPYXrdX|v zPx|?Pk!z2%1eo*NIe&q^Y<#y?$*@Jt{-K@MrPlKc%5XlvosF_X-u&;Me*)n7EJTh3 z#Wh_x<(J&-4)}NQYLrwz{8&Ds7JU8jgXOyrm&AEH^v_Qc9>g~`cP}Kwq(4PIqCI$L z?q{~1jE|3wOP#s6x|rD4O!4O(2P zuf$-wn_}(X%oxF}URt7__QyXV<7IqnD@r{wir>2aURkL% z1WA5XaDBTpH#gV9tcvp&{HdXZMZAt*7lF(Q3^D$llDrn~&OO<+->O)1Xa10(z0F%- zGHDCnBI=*cia=1B$tlYzAxX@8-cI10(<7}=)&oK866&@OM_UWfyX>it(+V5ojno$R zZ6naKtN;G*1HppaqQ5(-ENaGQ8#jZ6D0B@+3f!42Ziv@#QY!rdi5eJ5M_&UqwBCOC<`8Pc4aI2wd z&Pa`xWs*JP3~TX+oLz^F`5s{uT+ipDpzYMe9jwUNd@(vg-r)j{TBZN2>%uFh;2?+w zkCg06B>PS!Pg)wJ3O|eoBxUg5Nbp9KIUlwTI!)(1R+XG;#HbW38^3sS-M-&P8_%VL z_x$4evoL?RMca6=v`MW+0`g4~iAtKQCThvl_0{sQh?4wPNC&9x8tYV{_H1^U<}36m z<{Y?`QsIuKiZ>oPXRmpHJIIJD}T9m#UlhybUZ!-4Gd390(GR%M^=x>~^ zz0Zh%&5L&?OD&R00k>S?+W!50%Mk1Rpx(@l<0xM%UVzAmXF}R!iIXvYWTGq!ioN;Q z@+PlHxWPuIrxTk}PS2^)+BPK_#zfqPR8ZEa!Oqfqn)c&K!vk0yxbgN4n$GH=Fwv-$ z?!}~Fw7Webuc_(ZY6*(5r%GdPI;E-dU8TcI#py}oFX`SKMBZ@xrbOsB>lMnMWUBP% z7b5Ph&($jjsnxhV(H6`3vwT+*r@0Xj5oaJbH4OK9;JE7BnqPn<=b zJ<{Ei;>2s~@|?vmOlBRsSz}0Yuiy0)VSVX{Pqq`G;qRj{{EX%KunC3`)vdvbp1eSz zWqy1=B}N!^oyFuaX5v$Ub15|aoBlAvHspw;mP%Y4s|lU%zne7Z^t+068))Oms3H4q zGZre|+`WE*L7FeZr%X`(wrCEPA!JuBNehJ~Lyq`20Y|?4!a{{283LeR6JVkL1v>fr z`uhR>h^Ub0#vg(Z`z^wH3e%3-=Xy?F)s8FoaplP%jEF}39f@=t%b0MMgGci7>(Vg5 zXbl_y09ksDEgy(`Rhil);aL1|+f)4s`1M79`+E>o7+Z)IJ<-#Vzjk|$@#(4VfUIy= z(DPFNlwiyxKlWlqhfriY(@5I2F1R)7erRZ)iW(93nsvDG$vy=p zQrn3tf?v%b8}sY4&!H0S_;fU*=RKlLUD}@`+u@Jx_V@w(*s>-4J7&A(U%k{;c0LT| ziPWBs*gt!$3FU3OWhyH%o2al-rm&OvRNGH`A7i`i2j4XTGUE0!(NGZ+Mq}02Kwa+s-HswGw|itJoX_gz=?{}uvT+PagZ(EyJ2*JGrWvpX`z{id- zdDH%s;tXJsKV)SPE^ZVM>bQXKTW5D%G!Q+s2h{y4rqpr!3^6e=MKm;UosZ`~=mBNz zNLeIG zfX;4jcY+);y}|I0k8NdATX8-lIA|H;hq?nb_kr|lA^f7o2r$oUM0arh(1w$ai06cU z$e~LQv@>jCX|zX?#w%A-ji&{lg+K{);kA}7TZ_Bc-<^4wv0ApKT;TFM{@hUS%a14x zIN9S;B>E0jTu`z^-%u`rEvZzl1RWjmxjWaR6bn{_bi+iY*$p<#xcqNQb6Q!WGqQYz z+URyti7|beg6Og>@{SJV#C=0KZu+k^MyHbTAe^YQA7ZyT2^|C2?`ZaoJ2zp@l-lzg zQ$7z6u8h_sA5ViL7-v8?R#INUC|L+SQ?SuFwv&dtSLH9v!HEQp(M)6XR*L68w&gh~Wsx8TQ+6mFRc< z5`t)Lc8^gt8WBCZyewg69vk!YTN@v?l&Fe2iN0M8XydTleP&!TNnqSq?jQA^m@ZbK zEuFU!*>^Po?MIE8uBXH>*LbV)X*T$|wz3qML}>)p`9_#?e_C@eP z;tEY}qi^;ytmJjeO_$2tTW>i;@pQ%`rm;0&1yzD4m!K12vl>O+SqC4t!1i6KTqWeF z+qw9oRuXgucj5(+A38-dcP@cEPb9ee5@+GhC@kTz2;7Vb#(^ zQ1h+k^C$brFzcg>vw=DuDuyf%*cwA)9}wSV$NHEm(8t;~z0KLN>iVmh*K+1`MRL{K zLjT=y2ut?X9|BUWSsQpw*`SImuj4#F@Aq<*OjV|=@0fOAOYwzzWp52UXikaK>R?R> zWr`%LVJdOu4616cgVD}eF1s|Vx(5o-iC{FZp0Cy6E^%ls7JqztZn4j^8D>B0~H7@iu-QqFQ3H7 zlpiUmEa1J7uh}*D-m_tFWSodQPqJp6-#5vF1#~F*n(An_JrnZF1q`u>ol!lxBnEXK z5*QTp5f%04aSI^t`w>uNKEKT&TXEz%d*7+^Kz5Are=+vfacwQ@-gsLIv{0ZF_ZEs< zafec@xVyW%JCx!OTHJ!WyG!xn?k)*Va0mo=)4k8R``r89pZvoo3CXOrMxL2@<|~<` z63Q`&F&vpv3tEZCvc1`T_cFwHUVx#qVZxGeYZLZIgpS%`lk!<H!UvBK1W_?Jbgflwu|QHMZRqWN<@Y`-aXQKIQdb>|h^h2Qo*{F>y6`!stO zOrQdg?4$$rd;!bU7XuFKg^D`Q*IaWV8R)J7=#s;<^++sP^)iyWHNI< zl9pFGNp4`9nS5gA+Ar|!f}AR7jtNfQ%5mM*S^&EhhC^RmtPylWG9cAn7xHb&(-8;u zPrVJ9cgFQcwn$8aHXp&LBV^oRI1Ro~zk5COr{=K0j5PeqejB+JsNbi|-NMYAJmdby^LmFD{ud1Xj=)qb?gj$_V*lAt+W!4wx1Z-{rt+Y9N^ zPo90LoLEmg6ORJKD~;hijO4dw-AZFAY^j09DPEVbBZ&ss6<%vn2VixndSt~`x-q4d z+s%WFCg{FMc(K}?*Rs)?q>j#tXUG8% zv&6x@?f_UEa8aAJ$;w%`uux(2_HB=>}w~px{xn#LDEMKX;wjOU}l})D~*Rc>0$>TrVtdmnVm;%B!4fj zvtHC&rQ}AVE(rxUC39o@s^0mw2kiUOnagb#p5B~?k1V8$_Qd#`fSAdqdbN~qSw$k- zgAxS}8{XxY^x8Z{0~d^Ls?_!3&{?fll$huVJs?gU3HN`ZBt5P*{B$WzURtc zz@15&i~iJ=)n2-<-oaUc>vWN#ASow>geuKY`{>G{p{4aBHQj046bkF10^!9#>F9;@ z!@!`MeTAA^IW(=Ef+rH91^UBU;AE*iNIpb#?c#j6NgHo3nQ?aaS zgujB!*N&uD^{J}2ep|m(8|QvsHu+$B&_eK>;`w;H_&~7lVijMY-SP8u%ejV+%SpCW z1&Vy>@xx_$ZXsUB2abCVOexCbx3)(g#~ScQOB+L~=mv(`rVrj}B)6GaU+*`D1LXUL zdJqOij971H3eJGf^sb5^TmV}x`&=WRqM*ia2Os=nIx4MJNU7R*f_K!-*(xkw*9AyN zlGY`|UUw4j$%A;s$vMl+$?I?lwWw2BZk;O=Pl8cvgH?mfN5_& zmFHXV^j-a^|J~Z@j%}OX$k)!Aj)lvm5Bmxf%lU0nIF3q3+$Qw9)_o^$3+Vc30)2i-xcga|h4+2UoKioIxcuch44A)f@S2Z>AP@c?Zerkpk> zsA%_MypxW~D_`p67%sa|TgQTAMyA_5~Ch#XR9omcQ; zj%U6&T>a~8>rY&7EJ_~+zEIiU*R$~g+t4iiyJjhFDybyjbv9aDelo(ok@w@mz@#sopnDz|V@ek~cA7aAxRuhdBUv%n5S@n&{pk&L=V zbNOc`Uwp^%?{X233Lqka-(uH>f&bit*Y|)5inH10!DIHqS1Jp<P>s;W;0?uB%3yvk(FVr!2ZQtikWv;G;Wlg)S4Esd1Q?&%*~ z?hK{W8Q^*&LzBP65%wIb0&Z2XP;h^5$Mpp%DZL91f1pl+iu<|wepwH7~ zWEaziGTZ9oYS8q?wzTCcRW~|Zg|(IMn(+MeR6FbYS!G*H7P|t}=1>=SK z2O6`+>lvEzVCCQyA&$UEJiBbhW07KFJY<*KdWcBrm9fT5CC_lVYu-AQM5yx-hNbYmcayk!=lxJ&b^u_*6 zt__D}8To*HjBg4nx874)soCko3n}a*W@=^Dx*35dYH09PKW(LJxe6z<(C_+T>isnr zhO8eM=~2+QITu0JjLguvf~FNx%^hCVX_@^zdb2u0wAoddhL025vt45*&@1)1$Ha`h>n1NU|p;&Z81W5 zDPM(UYZGa1fH(NL{kd%ScKRuUV;iW}?@t4)`NWa3fD1nuW3IGsdaX^ZS}uW~zf-ZxUqIEca0p=A-uYI&JJ;I+GjH z3+1?XPI{DOevXS%_VgX`%*fDv)&Svw+)zDtt>J=TyCb&Fi17s3Dd=`Sh z4&l>nOC>Mt9+10R^2BmF9l=1n$X#1I@fl>Nd+KM1lP0IK-RRuK&(%jyfp*iq)A;FM zqc;`Lh|Hc$XoxcNK;;uSc38p&qx|T^Pgsk{<%ikU7;QzzcLAJt6x<0fK5!Bs)2Q21 z{@B}+h3br!rQv-2T!~F7*BIGne#HDFOkNW5 zHURqD$&b6T?*;@=;R5@$chNVYo4Q;qbR2Pg(JPO7s?mp-naA1to_Az^$=uSh+KcY=QGYEW{3SbTa}Ss{Z4>uJ%7WY z$<|IkWf{LocdfN+Tir^tSCS$slj)f&r-9*Yuw!PtSs$E;m;3fAu1_I+0+&+rd{v4) z0qIoHlLQ&U=o>^ir&esC^0`o=viT`>VN-wJ0P~c0yBPhKvk{$faj{H9K`mkLHUq{9plczh;Uv#w`lqK=L3k2 zMk9LRwd|zcUAl9q?U@hbOEhn%kNK0!InxD3a>&D385jhGZ(n@YZ>E%u5=m*L!S2ie zg|G8QW-=j77Y4Esa)fu@KsL?7muAkZ2f50+SYlk!N+)(waOz}-VYC-hIW_dW_xw$dj^YTbN~% zDKDn}6A!uG5VY|DHtvNV)Dp6Bm`6c*M~C+=y;v=qqOx9ZQyMR84|Jgs@R(>n)2X?p2Skl-HETI+7{(XG`xFnC*2ZvYpKwmDu79wBt# ziMS(Eli>Dtj=Rg3N;o*mGT2$KfWUua0nQpsi??oTonK=#hMVvb-MgFGO-9oJg>gkD)__`mNwpaQVc6nNqv! zi8{OIlnoF0A$JovGuQElW!m**nFaRS3DO@9h6J^|fBTUYl$J6ACePAYL^K5~NZR&5 zzKNA?E97-4L~>`FJ}p9lAy)zp^Cs!9`ueHk463@9rL+xhzird=Qwk=oQW0745Pi~E z#5}SJ_VrH=3Ue1Z+2nn$-!yr#q-(&C_-FrC;@$!5FxsZul?5(Lym z4T1gBLG|R$)Ug<%&do@DY#V<1DOmZ>H%B1%b;pjeR?;h9Gp7SH+tir`Vdsagp`vA*M{pTo8-K^4?BxZ5Sv%YkFe2xu1?6g>weU8+%fa-qh zC_jqW@W`Zds00c+i0|C+CRC_(l(~H5T~>T1nl~KpW6{R;q0;yFaKhCdho^mE>FGOT ziN14anV8SHBJVYb@EqKf&0am91rK<40sAS;)h=7)a)q>~%U|_wkL_fL27G1uC~KY9 z$6UUNWio-kNf3!&zG^F6GhT#(KAB}+z|U~mTM`A zH$G%Musa)0YP)FJ^mes!GI!jNt6ts!L{t^g9xqAPB2mP-8TDCm7AB3C9e7+BB%Iw2 zOOLcj0g~I_qvfe#Yp^I*!8r?$1S?--?&=!GG=IR0;q#^${V%g#f)?b@ba8B^h0N!} zPLhuf6l#{8=;CX?r3F|bhORe)UZGg%R+n;ymjrTJT>c3Qgk+%?S04llfz0C}8kS!NJZO_42;mX1ff|zT(^I;&|YLWN)AugG9!~c zVa5^5vwBdXH?5q8U?u!Dn_gi}U=)Em#~8bv%|NVQcAGN~X}kKX_JXLKxHQgzs50Jl zfD7XT>Pf?7eW!rUj*jz+geO)3 z8Li*^j>TmAtKi8D0iU;YdWlP}FFjWSwubTIHhZ>45?n@&Y_i>?U(x*WY9rOXE~c$A zWpY6cascGmmVlXGfc*&0sOOcPwL$4kb?8iR4YB1YG6IXbhz;jbk^q2T$d#PMsh z8^5Id{-oqnoyC>Hq6qr1NKBo!)>C<9_*Sdwn@P=1sRhqR{7A{Ts!|RGl zo2Cn!nV^u4^!!_PKBF8uq7Jr9BT_kfZZKx9DLAG~I8x3!us(>yEfwYuD8Et~gAac= zlECBq;)33V+RAWMreh3tQ7fsemLWcKfh zVcvDCQHsUuSnflGf+eJj^_&-H=?}YwGc0LS=D#u^cwbz_%b)OYjZ??q)2=$bV$()% z7P=Q?u64Ls9XU+(8w2>J?CW}kU5=PPN4q{QJiY&oq)9SsnHD;2(#!FSeB8&c!B-v7 zsoUZ+I>waZKcg`=R(3rZ#-e@0Qt;_M!}#g$yyv7NCDZ%-xFRDZ(>bwAcQGlcm070m zxlpZnfX_gfk+^ZF?{WCc`HbXwRop1hdg0x~4MaPR<)M-5MAyGSE5=)`1ta${-Y|ws z?n5uoU#E=T&G_=0T{Fx(0h9o7Kb11<2DdVKr{{ZGK3;EWDoHkCsRk%ZU?@@KZFZ&- zz%$VNyV%{!^(_YGb>QjFj)5{dhREdsJUkWb&x#x=mFbxhG5S{LWSy%(MeS5yeDvhKlc z=|gm=vzF9BxusUz>bBrLq+;$+jOh>qVM-e5_O`-UT;62ZQdDjnA(`a0UYv97Ez(LM|ks|=XB zz8L+{OgzS^>JSbNB3R5n@&_xj4dp}IU@I~*m9Sqol?hJ+nOwID`zhnBrMuEF9ZRDM zV97(`$gU|_bFo&~*4K6(01yjZ$xf%=Svk@w{iy+kz8}G%;o?4qSUt#fK&9gl;l+yp@>`i%N|sj5^MRB5L=1RFQ!r7t{lX&oNki*t)rms_V%UH5 zpyGGt`yyYY{;kV*_OhYc3&7dn`iac-KTS}ncSgWzT{VqT@9Nm*Dgsg@Xy@({Vlorw7jgzem+_4qaca<3!s`hJDc?zaJ^-h zlI0VpuBP6t6(SIAjHf`EbIv3?4d)_#Q(Wi5{C5>)_QB!AMtFe!nwN3N?2IZJ_rJ8# z(HXR$?lkJbxexiIeOSCjt}enEzyBQ0!RP+XHj+>Ak+1Qb7)tlvenq%3&vSUB)XHot zC}xz}C#a&|9Q3_$*5=*Zq;;hcbu4fs6MqO76B_f^#-YZ5gLDl0)(1QmE9W{>lW_dW z5Z?cm>!1{8@s2^@~`Z!El^Qj<84}YXX^9?}2{#x=+#Z)|9fw*$oR7@p@`X zq1K;@c#oC!*D>S2%7OnL8$nj!!K3}ltJ?7saIJCL?a@MkKZg)p&3IyFTAogvA16=w zkG2NQXCobQv-I16jH5iNw`nwgrAPi%3<@V4Em*>rWU>ZFS4B6=)$lxo7ue^sDfA7- zsl%+Md#BauMEN=XUC==@iH*Cx)K^cgGE(R95+2HsNaV*Y(e(J*e_`JKTrRyJ!;kfg zN*J}wUx2f)Z$+=upPX@apW^?8I{dpXU`aHhkf#jE>7*Jq2J~`mRbF)14=y6lED_4b zy?0b{dcB#uTNBNy*~e);9Tw>uMQ#9<;vvD+9Nzc(^serC`bTHB$A{s% zDUH7>_&@%5+|ghj-rC$U(*Qe7t{O%eNcZ|06fps~tn;%&Vdn)gaeO_nz0QT^v~b&vc_DJqy>YzGOOkwQ-6 z`Lw>E3$*`UXf+#U>R*@m5$X8vP696+Heb{$K9JSYwCQASryVVjk8t#y&D>7xr=K5F zCA+SNJE}A9lDJ~>bD8^O*wAzSmhr6OTCkA5*5Aeb(@WrpL1l@cpg0OqvA5*`<+uvu z3(y|skDN!+s^-X1vn}Tr^W$3uhzgP|uE8487!2f0-#Ty+I&J&L8pY35C%E3AG;DXS z)N7gWsm{yUz6|(=q>3mun`P2&{*-?9I8_xrb^RB){y*xS1{>}A!|3Y_!6cqeE)x$6 z+IQ}w#&;O%`;$@<;UU>7zzc-wd9~ek&W=5%O3-v;=f@L}m`r&hX3$tYi~Y^|=gKo@ zi?$72D~%_2>C&$;Dz^WHHmvjhdl>z5HPV2&az-*g(!tw7`-!^?m9lp0$>Zsmy^RVn zX=?Epd4sJPcMBmw^u7Z2`WAqxiaB!~9;7#`s~P&ti`hSzHgf4qw-W{bG1pWT{)nR~ zxeBceevxO4p$cn#)R3wOajo`$`u5+iFhnDr9mx8b5901yQrihyt8N}jeeP>4?twyW z`z+Q70*~92sxEx0IA~^+7qwDzyE;83|97)|_i%vwp6Il=gclXj)M+vP5m95*#+8;H zF8j2UlM0R6%`bUY^ar{Y$)hI)W))LaoY5gypwK**;()>EP1|4GSCV&VsAfxb@9U?W zUOThDE*9>Snk|~k5@3$f88)qDKP^*|iZ=OOCJTdn;idaQ>J7|ZxBqojJG&si^d*Kw zQMAO!L$dEec=^oj}@!xJ2|_Llt+e_1)7>3=kCM&8bj2|5X{DBMx4 zq{N6bEj%J(3vM0ok($~(n0{&c$qXR(V6dHcKgWE+3B=%(GjeR)Z5)!7|#rC*X? z95Nr@dv)Ky#hlI{r&<*2VL->+@rbIny1qSZ8eOFEMWP#oMI3ecOPV^Gzcz=bYMUlf zm(D4#?0IzT?HiN}>Tf{jKYgbc%W<%3=(KIF=B%LQDf)g&CcAB_0?6x+s)oiKdiyk;$brG&1bxv-_y zfu8L;oP|8n=*Hr_QOgeZMk%RJn}h;2VV)FhFD@LZ8eZoZ)$^)gRER`xw6O183Kc-2 zzKk}k2~`m$d^>3?*&tg8FD@K~CMg!=)k74Tt#l7KtYk(@Wsf)$r(cwEfdCf4$0xUszb+pYQAIGxcRs0+zIR z9@pr#OKEJj)UoloU^X!wk1Q5R^XQoc!&`_~H4X!^ohOat7a!# z3!A<+__$H7tC%)CE&;~gojIi!t1l!w{o+QYUVmXbT>LluprC0^VQG}KG|Xdc=UitE zzFQ*BM3P@;b#a~*em?zJ@c)TFSeE|JDFP0we+|b3@Ojk47%)0fs16`q4|&N}J`!S% zGk47y4DOZdgFR^JG$BL2z!KV{^)|f7yXaRV#@~#CqH6Tgj8DpRwIZM*wiRinso9TnOSV*ehYC`)#7b} zU-?Z$9}5aUHBQeEZ(@s?+JzR=M0h>1sbaZRS(Q?j7tHsPH;T@P%2h%W7l+-QS@gsT z*)Va;a&!jxRy8GIoOvI#YosJTFb>M}l)WM~Xzvd&UTkSQeGI)Uk7azq+gE)&5;^rfx{13N2H|tW|7O6vFQD^eC5<73}hA$?eIxfvdi^i zH{F{7$4|Tfzo5&>VwDma1Uw|Zbf*mh?1VDtvlUCyF?uhr`_2{jW18P%k4aEx8%aJs zbkhBO442d_YCU0W%NmznZmuND_0wj;I8FKuVzB?j?Rl>Am9eY6bioO?$lhg7e1%5F zcv?bkAiVas4W6GBQ(-gwkO2SB6)K5Xg)+xzyj+WscS#TzeJ<27Ttfvy+2}?4>zegB z$J0^geF9TfGeN(5%D4ucZLXhrMQck0%UxXuIBfCejjRbb@p;Iyomma-NqUsOaF5vtf6;yHsl-fj8zrq-uuzsV?MN&f6hRj(f!vE zNWUo__M`ANeORtHt+*R)AF?FN$fGL;a9-1?LR*rU<>wD1PI28y--+t~-s^gmOTJ#M zYaB$i>F;`$xro0=mv%mMdqYjm{QT4P_#ls7M2=ZIy=F|d%BMcq;E4UWA|#>WHd#qh zR+f^3BbvPyB_h0zoz0R(v3EH!KOz%>7kf*-%=CfaLa0`mki?780u8Cg{p`R;WPis$ z*}fANR3*xm_2ZoQ0}q?bip#S5Nm=2-FqSaO(h3n_ErvjBrt9&iIqr z@#@o3Ssh8m4-dF}W~0XHgXk`AhVmT|mt0*OWqfX`ksf+KMYn;wz-ro2I(%m7i za7tuIP1c!;jlp0f+V**YUTMz5xTm2Nh$L2;*d-piy0(r{fL*yuEo5dd&w=81fkVHWa9Y82-?BL6h{L8)wb)YIRjJ*z&7lA|V>(Eck?yqK3&6u|RydlCtz z8)dQME&1Q$T+UZoB??vL5lb8B{aal+_TJg04E^zAau$x)0V%cxJFiNM2!^r$O#jn2 zXOf{@P-x-{k<_Y_4s5|3y;>{=jp>*V91`b_g<}hg+FL65M913A)u8HQN!G(qE((*6 zH2Wxt`G+hPChAiACje71bwE;~ta!?&=y@$a850zZmc+uVR;*W-)gnRvuj#}8r{v(s zzAprfASS%65IFIZ;bDo;3LX;^Q+m&i=g~V2vs@hNT5{%zJvfNdD$EZPO6Wow>idgRdOv>nEX2n8Z zg$E*P5W4zJ?1+u>J9D%=z4k#|sZV{<{l)(?FmR;iEr-+nD$YeN#+*9UAC0opMi`JKl~&r9;UoN*z%j8_yl6{B|i2WyA6=a?l!I@!|2&Xu6}C zoy=`++dy^+kfXybnXfz(-i!5^I8yVW~2g5dk+`y z*JK5yBdtMl;X6F>X-zKAvuLl&dU|rxl7h1f<~00mh0q7a^y+vuD$(rOB7$ycRTc3t zZ210bmr1Stx*+Y#zxE)CG^n@?S#Z#N@~9c@o4-Cf%Y?hpr(AiCrSm{Tj^``M6kcW) zw|q3?l73w9T|e*2EK4B7ZJxlKs-hbo#DSc zaS{F&TF77Ypg&km%TD&&W-u4F5!Pzly|*w9W;GHG&I1a9QLM={BBukzO23i}scu^M zTWbBs*7MJR5leU!s^`*jw{o>eyE%Bru{R-1_b{okbuS~~1JSO?RRN;M$G&(6xAD$9 zJ$3lIM#7AK!}DV(!ha1oxZF6i*q;*Y-Ve~)(ORKSw|_}1V5 z|A~?EsQ%Aa`5j&TP&c&B6YdkaZY)M&chdjGNhANyUvGuCCi(<((Y?uuaE>lBEoEk= zU^q+12EebV7{JKYqv5gnOv2diM^18v#Zsb{fNDCwXR!@hs>iJqoJtnrQu0r44f7Xc zOlqk+wTipCNok7vPMIO1h{~!*QHgdHyrB^H>ut03eHVx z^A(eGdoz%ix7)JTwRijZtoU`I28T11kS*WXEH~R6>EjG!C6g<&G7!#9TKjc65wn$$BYib;8^Y$`lSwAc)Y%l;qw|7+^0WX`sR5_dz0Kkcyct{9^?aOv0aVEv}sCG zqcwh=+S;@0iT14Z@Sc1*LP#Ok5xqA(qsf~sTJ8F9DTbt5vomc@KeaeW1Fv6Ac#nD( zgg|&^)JzB`B8_SL8_(>&a-+Tayv&2o=vk~I`>a26rN0{$IbXS+TbggIk!)eU3v^Uy>293~9^Z4m?PA!f>)HM?;bZ&^S zY^1Cr)}ZYAzjHv*^#5zXY`t!V_p<%{{h3OAvH&@61|dgwW#)#%v41?uW>cWC$nIlXO+}(Nn^ipcb%yTyE0(P_wPAM8a96R zIY_wD!DT>ji?^X)G51}gH&Ljp*JUuNaQ3@eC~Anz!uJX}vXD+JIQYS+<8G58gbs_~ zYA7@+N^*B3;x){rhFEvaJ8=m2TE)S8MTDIlpH67_UY9;cgwkxD-^?bKQ+tNMcZt|wNor+ZL3Od?>iuy{zOm!(Bf41M&hcd3LCwDMb6sa97 zZ%&e&Q;FHKgOZ45eQy0DaN%&CphX~koqT$7d2zbdjz>JHQPh9jtw_?RH5)r$iN3v@?RjElsvmP6AvwXZ> z$gGb$oPdF~ADsG8DROoO7snxQyc<{n;tn>mnJ1Sh(pEHMFv`t#uY%>(Ke13=K|=!{ zKFy4}>KYil|8qj!s9c|Kt_^2o?a06eiHFmg8a>LODon7k^M}T2d(QMT2Do=Hw!>n12*I+F=`kBO@#8&~n+0drRlWF1Wi!f7 zHMahHP@7H;L^Nsr+n@z$A*;F8uFFhr?Q7Rmsi3`#2l6!DYKq7E-6C~3iC`piA9%J{ zOUU?z$XIk!>(a^0E@J#mg1gqiI;!VYAH?xw65;qda{p6&W3G<45%AMAk>A8Ciwf31(U4iSEr)5L zyT|T{2$|;uwd$US7}k+CN2^?oxsmeo8Pg*8%EK+GUc;K$qLNh*RS}J+<)PcPW*XQk zX6|jf~p>sX<9B`Eziwt=$Jc=FogY$temLI(Yx4X9T!Tmi3MN zTf=8xy>T`ShjFKI0e7%hdnV5=@gTP%D|tOEN%m*jp9$HYM4}S>y}?pg#C-pcT`+uv zFg3${eaFVek|c_{6DCXGuXNfxs=Lo4TYdWam)-R)Qt?@@5EaSnknJbH_UPPvJa>`a1hf(=i=Ea@2ka6=dn&5*C9fHep3ZEyBgpGkfTf8L1 zPa0BG(zpkjtC48`J}e| z)JZj-N0uul%ka9frj25st&B#0p5-CWwmWlWJ4+%!Z25L$cJZjmf!3)wdvl`^YI9~J zNV5Es^(-cBfh-`_D?&v~zOb6?qARzY8CjB!sqjY{Fmmf{Hw77k(HKG(B}N2}(%dL` z+ZO5qJmo3v^hwA-QU%?=;i#yeJ%U>DrMU6&@NvGgb?=9oWwwDK=9~A{Jo!aG3Nv#0 ztMSgD?%w-N(=tyP(R+s;&a)<@@`erhq%j^i{wQOlLK1nk)b=6V+XZUdvsKTT@3b|1 zKVrPzRUO?4>OAcx6FUF8?dHKf7mNNAgAoyGb_DRcOnRDB+$@?`)G+AR3vNp&AINYI z8>j9V$i99W*ao6;lr)wce^pJ(=~i>fw5)Z8-Z)(>fv({#4;N=^Hl$x_WO4X-@u~1U zPw4OEn*`5V|eN9X5Kwo(GJrO&2g-_LOgUA+!(Fx z++wO$Xv1eMj5zN-<%R#`p^bGr9chV0;|&YrbLyoaSvj ze9s4;U%H^%0y zmcXLt(`D<6B=-4f>Sq~Oq>nF=5Dlc=o9PrZW*>yJy5vrNdW;qMH0Mf7r&4pP=P-Ym z$ok>PgwQt;l2{(}ireU~t3b&W_a-Hzz!1p&a0sVTABTYp zeewBRdzx&mQ!di$b};SqH@{a4)1UYpiILiBjPXgDf`4t@XgD{}K6vAuDd*`}i=yRD zo&WmvHYA^HyMs|8d3)*GQ>k{nJ^lh?vrG(~fd(XGW;tQZ@F;zlzB|@2^)zN&XVAPc z*UqL3#b9)66LB(%sX1dAn*-B{a|mZoD+yxf{np>yT@A?po`jrCi}(sq#1Pz9%U#q2 zgXHAKZL2<+si!xxUTMhLn$3OpB({8bN5;R55JT9o;8c%Rf?Jtn)#>BNpPHgWCGcxC zrne01Wz&6jd~-EN^+`BsTT^{ix>mi5hb;mTu3gq0((-X82_5l zbHEl;d9NKE9h2r&7?0t;j_j6GdEMs%{wS2|ZpRjLZYRLohWX6KXGL?BENC3sJbv#1 zZP^)3B>~+pjj&J@o1xo~iV$h#>5_wqX6yH46)U~5sQy_ew{*5Zz_}*nb#5`%=TS-A zxw~(Px2s)>5SfVhMxs!xf|E%9)X7SxQZiIuSaRQ!(PPhtVOYu+(114kLt${ccGr;{ z%6|~z$4}NOrk(&6Qf+ zDWjk&8}vard1-yd(3e0-|Zl$GsOwcpanS%`;)CU(55YLkmWR zqCnxYg?p@Rn83RHN^~53EF)vNntEXhzw$yeQ^{~%BxDyszoY2W96w1!Pfs&e5*Kcq zyuctn=?Xn%)iKfL6H9Dz;QJw%_wm7@^l@EWdP86#p+e199@PN(%+f+|IgLHS3SHTN z+*+4u8>=HiJy~iWtV@<<=GR&5toPk|Ec2P{0_#O;QjP<3w|@Gm#51f}1auDS(L2O@LdTfh2#d<&tt_wdmd1o_1%4jMnU z_}ZLXh>Z-p|GZXs2JnZCHT48jt~aZE<@E{3$Rwkjp50%H^XWO~GP}euF#=BW*YY7p z>bS!3O9yW<*e`80&d>Wqn05b_)v-$Kk0#2U-d||<=4x(kmPus~Us=&{gRDiXm6kgQ zs0R2fi>;wP1nBx===lju?YurOD-fy&T6I3YIo#QZA z?1ScSm@%ck7~aMt)!Uw86S?$pWE-8Y@&mLxyr84q@b#K+5Ti1Wdb{WwRg96DlW2>h ziar(t?rA|!0Fzt-k5E3{1k&U#;Ewp=nh$V$lP%9fLCFp`>6PQ1ar?Zj(7^vp4IS1L zSZ9WDI@SK1djZ5tVf85ikSzcs(D>2M)|vL38QP{#qcUMNGmlZW2Oz`g91n3r~#_SRb;rlma^-Oc!q-oYu9DbAKe>9RpI+k89Q5m9%h<6zC8X zw;1iUS=%=rxv9MYh8i^{u{~6xBxps8=Qh6+Q=chPHML(DvrilN-b@tE=Z#rwlm!hq zYrA(sZQ$pQC+q11mr6WH4W+>q^!#Lsub9@+0lNu}om&Q8q`_*8S6`6M{p|(DfoQ}P z`n#p>Q&le9>rNSn_mN@vTdMr5GsR5fS1sqG?7O^rZ%)-%KFmj<^>7F)Qc_3H?%VP6 zt(1Cnt@EOJv_Cj5LFBh}P=(-z!EXTKdc*`WyE_(hlq&T;`y)^vvgXWrqgo#2qAboP z)}w25pP8v&S=WMXHB2eL?XoXthk_+ueNdRqefS|*SET9#YDixgO5&4~?EGto8|Gg= zF`*C}8@o_%jfcmqm#0>)1&^jXA-O8d#iciSii}Ug{_}Iq&lL>l4M1o4*bC>wjPuK_ zWTV!NMLHC-dT)H3(HmmG7a-=y|M@O{Iv$0k856TyLEO=eRTv+2XB%0i;{AH+5y7`%abgmD?|2 z*9WK6f*UqZBPIwFEY{K6H01^p`7+ z$j^t9HWu#DeP;P8dF6-(OEb1JDqUvmCNh4G$K)mSgp{5yR9mMxK1owplmt;Yg=2C& zut=8kwk@;8RiwoxpO6JiH;9aUn%!y+l*4&RHRE!;F}x}lpHi=Td@yMKP~O(Wmhr1x z4I7xTti`cCod_s$&Z`V=qHIy)zq__DYvT$ujC685wSpsGE2kAEQd3uXYb-4XiC8zc%L!`Y_9SuPFFD_6!RqYRSwf^KBCeC|&Y zM7f%*r>VAMS^}P8W^SS5OttOdX=IX%)D~Odf%BB0+s;O&)$hp~H=@kAjXGU-j-%3u zs^c|Vo6liyACE!%{*iL9v5Ie0F0adi4n_$3SJ`5CA@)W-V2=}>h4}o#%=~1@)LO zvu>0aQf$~x)4U#j zZ36;b9rq!)BgM-+Y5)3(reF0ilDRJ7eSHK~K7gMj^$iS2thxNPba^s@JLDSohGF_I zKN6NXnn^CqUtaI~doGXkC@(sIwQ=2{5y)=neL2{P+HNktG)Qgl;?wJdQk>46N!$HD z%!MY^T>hl;hhn>P)e9{v;tGCBwf|Od@z7h5gfN>}joQm#|6n<`FwMOj7jF3m$(z-CJ;A8cRMp*P+#mJ4Wb^B+WtV!#HYkVf z)S~opM%R_u{(-ktrXxRS_iV1RR)g1rG~xl=0W7>a{B4``c)I^(K49O5FD=Hq^J&ui z+GGxP_L7lrpSu&v=U3{FH{LjvGj)r#rR0R6?htqs>2|>G)JojO*f|!tFsYj{^`5>* zG(=lqXe7XhZ+P1|M>D<9V7}R5+%`MvdMe(($Fe#WvhiKHxJPZD_!BnHPxTa{IlB0H zxaZ|h=*!`o%zVcpYGHATuB3M)Iu`q8hRWiY*W!Sp9X6VOXT`&WgmbkXZCai6udL!h z7`W{<@eg82oEAmi_s%lJM+2So-_4O*N$xw{{QqhkuEHfm)zP^v9NuF$K44oA_s=vr zy`L$4LA!~Ag*0xs>jHRU)k(DlR;DNO=l_SYcM7g_?V^Q)PSQy_NvC6XI<{?hY}>Y- zbZpzUZQHiZ6&q*my+56E@mKvfsa2JmwchzYHt4BV<%k~a_>m=Ou%gcK1_ zD?QUG?ojME`>C4Y)?4WjTX;WBj*gbJ zOQvBW)ilJKMD|8V_Momq^oZ`)*$%CqA}-l*mY1rmQd;&v=hdLTDPchrls2HLl1;N~ z#5Hj$l2u)Q-EM=rAK!5F@5DPFVyPwrtZyb;H7NLiH{k5>=b%7{Fy6QVhYNOWt`OVi zlr3VbH^14O0>MsD|Ec?vy$w*e(ls2P0R(99d9uoLB;Q({!ZR17q*i$(_oh7UmF=7S z)KgC49d&807R)Fn9S!44zwd5Mh~^b^D+yY~q^zpF^QlX^cs9WGS=>Yj9JqQw=?3p`0W^{BTy(Ss1(D25cG_=LddwayAJCRzYa(jS{YvJVD zPDT|ZG;Oog^!B4E1a4@Rp*(BqVA9Uy_S>1W5MtY>GWW>~)D+Jv1c?Pp>Fo~`$O=eG zCF(?XVeG5xo1Fk=VL54oXoX4gHF!r&(?sK6n;xcN8FNPx`wO-?rbLq_iep$@SXaV= z(y@b%yPJRXzpW&TT{GS*NuU-N%>8UC1A2&h;!d91K<#DXO95l486yzJ-uz%@d3-zk>rrnW{ed}znsdk0A80phV?|lN zDqdACi}S#c>7xc>Pf&l$BXE&Nz>|;9T)(+CqOr{_ z%t0$hWQ4IDCF8^iWk5=rLdxl1|# zP90r0=3%T=%4D=!q6O+3P;u59Ofob~06W1K?SJ&3EL^ciXJ^|Zr3yb#{yt5>KY|JE zvo};He~tQbLvgRHhX5%>DJWgwDCCz`%e#dlIR2v^0wolTe7o-jdptd z-uw+PrKy&vjhW&2xvI{b-zq)4DMQ;cn z4PJ`1pvr%=H)4ssU&H|8iB%#CW2e$i7ASi(uA*S(;0B)YhySTF$@to#z0qP*t2WF} z)BV=oon)RIJP%+cGKx@B@5++pQQ@0;v07IhA%7qou9VXro75BUC@ZKbV>54dbyYs~ z=i}a1nQ!N$&Z2zYc)#N9RIfT#AyS}cEybD*#Y=VyV z)Zq}sPv`|J$%QHe>w^?{#Qjv7+V_1>i-%p^;;r#8UQpz=(tX93$5}o_v_OycBz$G% z@&|+c+K%w{yC(VX1jZho2i72gi7#tXvL8a_AK)0PAG1xIjEtB!@a91pMb|9lb^iKX znPwG6%bASC&x=Ko*78a`t9PxQx%&szQ|CR!hsu94F_onY!>cbLYdG+PO-_pu$e>k$1I@$VVwwf4P+4vQLA$1|rZ9+dqoSvAUg#jEqIiK*e;F5joq`r(3# zRPfVOu~XE3=Xm7dnB>fo1s>1yP*(#^WBFF{=ZKbCq+7~1Pe&4?!{uh`jyOF1b3RGk zJ2rVbHw(Z4^~5)#WvJjKy=Z;^OQ8Ydwx93i@qs;||C96wY-!)Z0z^_QY%^b{j-2C3 zjD+V0gi(1U{*am$B-h9L;O&lx{4qe;tj-aS0nnE5T-1Tyh9808u3R67?d3t0F47fL zZTh@o?}-<&|FANGKJ@ncq3B)wfJym;wlZGYXeMq)BD~V$d0O;!`O(Rwgvw|) zN!noj>^6i`){D!nidMLjI}1ZPP%qv&=06W5YksUOB>X$duC-FdpVG!4?_$UZ)?T2C z-|e+5&O}iANV@Lk8%o?->78TByMar=O)I4HPyA-L4qG!8c>D+GXAs~*!)8&onD8?$ zpXZ=)^ff`+othZ`pqIVFZ~OU(UB=*H+-idRgC*ZClKP@#@qT?y#^C*Xj4k#Ps}#B`&xf(dD#{bEtU;c!Cgs_BH}Pf&cL5VM|1O z=Qo|1#v)+LC&DAP+weH73e}ro*dbJRz8#z6yV3gbZ}{>5-o%T47KJkYYyu}cM3Y^D z*4u4cbz|Tx4fH{`IW|8W*BprKhh?2N7wQ_)-VeEgWX0C*?bH9^YO|+cHMTmwZ)|M$ z7TH3HJBK~dRbOOq(_ChndfPvm@w;6HSUx?S5z?fL<_Z|yU654ko+0<9ix&m{Sgqh8 z5WYW}xdc~^L7N0l|D|!@Ym{K(r>(Xd~w2FR&&$9O`9(`;~4*2nn2Vu-yVYSmd%&*cu8^wXZ2}sNe z;mvhLy*{NcCQQGl{$4BjS53E@m2L1g-iEZ4=Xv9~2zN!`{YaUad4n6#>5>Innw9c0 zOYX9dvq)+3$M92*Si&u$U^C3+?q=K*6~01C>?J#Z5_jfG`#oIX&)-~vr?r8h^S*EX z4_I!BybZ`v9}+1{;8g-{YW^+nuN()0-+~xGJkbK-uUn;vx%i|fb%Y-v$3JouxW_H} z;!`E;%pePYO|!YnY)#?eC6!s*Q|+g-OWCQxKQq%dyKL_PqKqp-t%Ih7y(gN2Hjb}( zwZR;3J}T?u)>J<1={r4ff2~XR{+HD7)V4zR{s8O!^iA)&yO0&A7F&}aPj-hVQASb4 zVy-UQ)Zq^M+N%gx?;Q=*<~dX@dClpdEDE=>rrI$Ug%6AQcGks6&G)zS^4rDT?0g!MZm z3AUR4w@ZGVD!w}t3(`sDc)sx|o@$Z}(7Y%TTy`uBlHKLoHEu9>xc1m8Z0b&Y2U^x$ z$LC45ApZAg%k4>{$L}~j^`st&MBkq4~NBRe6n8IO{SqMtUztzUaN{T_s zQlQoz`14yft(vGu84gUPt+cx`q_J4UulXx)NBY| zwD-gh2z&FZyCq;2VD&#iAcdT>#0+=by4LsoB5pkAcLD5jLjyJge$sfNsOu55@%jZx z)8g=RR!a2fT@?uF6F@^Tu(~69XjmE;8~6=o1;U96O_X%t$3eKSGNHsKG>x5j?r4lq;_bmI?P(hw zMzni*Lgf)s#AX}6au=z{rI=rk7CHXpJVqGZMQ87VC`afLpJsqMxEAedyiCe3qcP=- zw-&!VAU)Yiqu*|&jpi!G^y7sZ9OV2~ngr5s7l_kAorP#$fHxOYv4oGJpY@RMQ(~N6 z-3qTE?~zRUl*|}NqsI*_XkWr(J<%2zIf4dx^2(d+kBNVC0hm7}uxo-gXd9vXb?9{I zRjYOLXt(@D5B?~Eo@4Y|z4;#3!MiX&4An6w%RSbxQAhf$K_cSXkjc1)HZLP{jvKew zYz8J3f!akP)xDz|PiWeThZ3z-a9geN%S8&tCF|*Jb7@}B_>k?8ES_`v>2qnHx}#4c z8^yJ=L@xLB++oe4WZ8k0EuJ+jC5~p|G5?4&>@KRI!ENY?M-|!M0Vj089q&#Y-2E7B z;mrY4xuHv8++PEcAbfkHTAT6-%A(1v#DrmpTe-Ez4zYxyEA9yTqV#X-+*etu;KX^f)WC5IOp|~ZDr7$)5ea9tmd|0StA^O3uh}JZkePVFuv<2BgUJU^#8_KD6oR zd<%$+B0yX$5Xp<3sTTWci`8kQ?7#>b(R;lBM$S8OH10~^2kG1`0FL~O*m6qp>qn_)h-T3#~b*~@%2NAC}W3~Wa(_yeM2JhCl5yF z8=?}0zTF%_vw1rOGi~^U78-pITr-4>m*UxU(UqF8tgrXDUysEA%tY=J65BRz_=C}W zf)4F>gK$KbL5k<>$O2+#n@{EkrTz?@D#`TB~gak1yOOx4#vZbG!E-Khd^hbZIT-Y~aK zgLOA0G4)?JhWwco%a_u{?glLh&EKE_s4j*wrQ$z#oRgQEi2{f3>4>nH(7{`0i}I$Z zIzJ@|NsM(E0)NaF&)@Z$p@D&WhD1v22(mvhx5w_!P*$^M!(==5^`ZQ@^?<%>liM7a z2#z$knP?P$e3psk8x*oBQMCJViGPRlLvG;VFgiUJd=kIDSi7{NdAi=z( z%W&O+B{~TcB()QA3sqY|t5D*BOYtbsoiFpPu|{k-6E73C+e-<)6`pkLf5@nOxn|Z> zyJmX3Kk!|Ot!ppDm{*8-JwuPF*bKqz4=uX+ovgSS+mUw{wvQFuI&~#&yA=TbISyEi z@B=J$Fg`JdmVRug7(<7OWau5I@?Cram@iC&OT}e&?vk#&Tm+TMICX;y5PqwHWHflx zQ9)EiRgxuy{UoueuD);lu*@7PG^wH1T^BbPX#YvEi%m-{W$uSsxIkoNbesJ2lyfvb zR9_x%YnhBs0W@@LUMWU{%2sRWUta@)mm$jVvseq-9L?Ey78xC%F4M9lyZ_%CQO@m#ptpM@8$-7Gw55xU4 zxHaHU&$exD#KDBa>^5uAY-*-r2*m4L69}9PDxB~%J=W{y1AiXM3z3SM0xho=)yLAEbY?t za~V@$d{n5PlPh5QY<(ubDs?LLTX!DMdz7riPHnH+6+5`r_LS(Axg-q@ihyHRJ9u4h83yPSTz z7|QH#L8!iCu$S@(Lj|XB#mievkTKS8NnyQ_eGX3u~Z}YxDY6=YS0~JQY`7nbYzOo z7)>dY5)?LLe>Nk?%v?G{zsaTZGQc(d%z4y0~H@0@LevN%9QR-PJFpcFY$R z-0YN%x!#i-QzGF(_5cRMIpkiPZu5B$rE^iEeJHwek9-KMO<0n4cTzsM4Vzq_^Lhh4 zCkvg&9PDv;Eq`hCp8f}xRo{Spu9wK(z{+^hVJ!P zTxzd-g-tQu59l-QaWxoVCY!}KXR&73*fTbX;d3SX=o+;1c0Emww1aVUf+Cka(-lnj znm<3^Y#%JPgmS5(efwH>?Zvep$B1nKPI5o&j#rqHUoIgT1BfTFBlf~2MLdDVNexRp zgy{NWlg0mosS-W%5G9@sjMusq36{YAU7PR+W9F|yDuykIH-PIjt+D+-6qsf4qQ6F7 z2wLlEU&&E0p-9Z!S#mtHg3v!5cv6qeU&zYFuT%bKCKk2?HWsD7BR_SeIoG7}qQ-Li z2D>}`(ECkG!_KFdn=5%qC5(wAVyTm-KQ5e5X9_ktcpt`lx5^+74qxnwp6Bu+IC;&7c@A~P)Y6!<4G{Z_B3{gyt9 zzj=#n+*pQnZk^Xe-&_$fEPtV2lKpS2Q~49T>89Ynf+gKu}IgMEkk+G>HpN<8{=J*S+8FUG>EL~*d%9ElleLzV*JeWq9bC3kToZ8= z@VYHr>54s(8c0V9e@C3c{_6vO=L>PHGiUEpM-pO&MwEYXZQ})dTyngEk@{_+*DPJZ z`O584`A%|bYG_o{l=h;Oy)gYqk^L}T+RRx5I@Z%3KsJChb3x)I#ATL#Jey?~=evKB zJsgiK@ERqF6&)Mtu~^W*yBge@f_>NiNMOZ6mFIqDo?fu)v8n5k8W8s4!;h4LWK@pe zZ8%7yRpm9dA=7HRo8ktm3-PFfOB?hF3#+ty^g^j$vYQd~LPXclnAR+!9~;3MT}$b(98>_9IEtP%z9>nv92g~QSDasD}NANTdE6bQDc)EX+fn{@hv zAPcUNiU*^=7f=L_G;ih3AI5knQa_Xn9D7I{&;>YHW1YxxAiAA`G2S_@-%!UIAVQt! za@4Jf0X2#H=0ZAYQvQtq!Ln~k61Tx=~aZZTf zXsWy|hE%`LWRi4tseIUSH6_ZA!kt3MNYxn#V*L?&saG6Ra>#n)Sj5UmGLJmtgnd9m zoY{m$Kp|x_EthiMTfx<0bdZrPlLFVWw%#s!H%+h8R(}(Iwr1)$pS*eY8naTHctL!0 z?i|v;WX@!bkIJ<(ka5Se(~k|IjD<}G0)-@CM_MLLrk6bkah15(3{(*Wic1SL$3HQ? z>Kb%mYzSG<34xY} zsBZ{f%3@MgsbuR;5$bnpmH=0bYR#a>m&Xj%= ziK2abUs!*hKw=~aNZ89V&e%fkd}}~+l(&~aT=Cid}k25P-Sb18DZG7wJh!`*{eg#I9yZS z(yu(wMfIlrx+NacxJT)E`Khw>M3ra_@T+>ETr=jG_~a_6J})c!+9_N7&OW5L<&{o^ zvQP$bzG9$tb@(x`#gJ2xfrHeSVuJ)o$gQsvBzJtS=DQXUHBSs7G*(vAxFkpEyw|XO zc?T0gzG^>RIf%Gv+t716c~_Of)nC^o;dc8K4hl(ouphg-?T5GUL}}q4L%-e95}d{l=>!WhH54m9mnxy?BW3YKJ79%`0hrIT}9o|@4YTX@N zj|eyV+l3eTQJ4Ws*IBA~Xu|?^khATLn8hMUTVj_IY*T@z3~Z~fRJdG^U|UMhPv^-_ zUgPdV=@{1ww5bVdb#qQ0NL#p8J%08t)5D?=E;IJ$CcTT}1{=OZU*Rj7O&ia!lP;E( zQI^&=LCcRsCv1uef-tK$?plUNX=8SjqPk<9fxA-w8TTWV&$8)|lK-k|zwF@qP?w~U z+>;9vK18D2@=hGg$^3#5@kRUNOY8LPL~mjEuk#3O*%79H%TxP#NI5vL(k6)i4L1wz z9UWyFh5wB8OSJz##`^m5mGDBQCJ)PK182aETRfI{V_NQ+?!=t~&H#V?FF&*3XdH~o zz_Vxd?hy3%$B-~^>>R@?_v=z=^d4c323nkDl;IX{Ptu$E=>gsy&-H{&8)`mz(x9$R zGW1h%CAYn66{Q5uiqWB_h_3$w3^ zInD^#YwtAlrV8d7G|J{f3MLRDRMbT3|7H)gj%pbc@SgFyGVpGaepVDFv8m&NdOT)l zwzNe~Kl;5tK{6j?tYOVnB*NHaHxg)&*5_^qOF;gcO|hG$P^HE7_beCqPL9f69AY)7 zgf*Mc={KrZ7Z*B#L zY<9P=$vx}5n8j9w+-iZ7@L zxrHBM%3y8KsZGXYnpe$|$r^r)&p$@ZzTO)jJM=N_R62Y3jHWc|^B6c)ebMsX^>i{q zX%e{D2?-*~s6UsZs76gEVp@uDb7We2m;!!@=L?EK2-G4?Kr^{KU_hWI{R%dB#c@f7 zqGKz=!lemZv<_%SKSB=`$X5m$mJmjyj(yrXOF1Rj{w#;fQ8bk@T(-wQXSaF4GU^T7 zNxd~-vKcM6cHz2gOn#z%7_>75&yNy`#+f`@KbSSsUo&W)y%bB(W}ku z@mIUYgY^N6U3w`HTFaqxdK#e`?T->tl!a26=+2-6bNy*%*!*=v3Pnup`Rqlr86|~; zL1<-VaCo5rWO64)$rt+OXD{xwhLC(ttZbc0*1;Ym;&UJ3Y!+}Z_!^5%VkuNo9R}Oe zWiknrK^54Q`yGj0Kyv?WMmhx@&N*D9^nvga8X9fIfz%++JtCc}6XS+ORx9OaLQQ^nckrwgsO-nKpY66Z{q2w^xgDt612OrVB! zFxko^M?wu zYrr!II}%=}HRP?X5?@j;J^R;FX4PnLE^#-z26 zTz>ZBMek<^T|8texblJ{5nkw@QYVI&&TB|d^D>`7PDX3y(brp-@~Ja}WIn)5yw_Bh zbafUidC(yzGeDDaj$6mzQF)}1eP%l{N##yUK%)|kPoDmFPdN=dM5JBR9=?Z*?I(Hivzn}3FnE{7!RZP=$ zn(nBLw&Wj&K2&KnJ?p+JYV<*JMEkD#=|F-rp;nyAtZ2v-AkeZj}NL zAQ3t0xgD)&$K^*Pf4%M1g}ar)=4qCW;4f2obR42>R&IoJbZpFwiK66=t~Q=Y=*h{Y zSWcw9hz`Zq8c${N6lBiND|mQ#(* zF@+T7&9VV;q95)p)+xLo#GN%dAyBpEqvCb349Dc+vab&m=j$VUbR7N%17Y$1e9aF; z9IjRyV?W=dPpRP$f*A*7A=xJ?eKgboIjfe$!NvI*_uo)J-PemIIy{NT?o|1=~1!K&c2#Q1nY;4%Q92#A$~V=iA5DV5RGPTY|= zHS#;+3KT@a`knC~Ej|9Tk=bWpgYP1ljP(saM4jhoeMFG5QH}L^Q!>vNu)UOzOMa5A z{vf_e$IXTrp;T~Kkl2BKz81U6{=T&us1cUpNCxHlIbG#p$C%1|$-RELp&%s%r<8n$ z1CaVirV^1n#&X*Ars*6cxY!tb9$#f`JComh*Wq%Pmnhyyo6+BQ(Q0l&sU)v11Z>Ye zavQvF$|JKr&)k0`xn6uMvPhJX{a;VZYP8eym6Vb)U%p5R_`Bkgl7@Erf<`8Q#L=}z z7ESBARX%JiC)_eQ1uHkpj2f}~6&h@#jW-0U@RXmg=6?)H7E=s&E@0)T5#imx=R99#CVFp zYlHL9t0qC9gm_-qdlkVW{Ah?#e@(tG*>k&8-_B%`U=DBKda3I9`O!tnIK{SjBX}BA z`szl$<0_`e8Q81n8y(nq{C;nVndv-{yEpvZp%J+@PitrTj~6mmN1RbadVZSK%xpgw zNc(&(8Ukc}l>=Lto}ue5-uhNPPGoBBXEXA0=(58h=?MfeW?M7TWt;qVb}@I3`v#I?i|u{@iR;N?8E;396S4B za%Joq{eN#oSwm4#Q58y5;G#ro>oUzYW}v2DP)H~yKHi}Zv5Y5OYbXZxI_dM{;;nM5 zi-UvplMPOBvf8SbweYjBV4`}cxhf@b-m*;Pd8aPDn%ZcFU}739oBu5Pd)uwEUEsHF zNkbCj$Eto69Gl|1uP_|IUvj;EM`gm!GunSmCG$|FGg-UjqLtFOPiKAQq=X1TK3C62T}I<#xAyL7DyKZQav}b_AJ+7gEhMtpl9$-N;{TmV;G+rq9Un%& zpHI#4hI&N>p$b%+e}{Bdib&6T{)hPu=kDU$aVJe(ED;53#j$Cjhi?X!hIMzeu> zzZmRsskldPI3un*2K5^^`s+<4bVr@@SL9E1Z#uQ! z^Cj{vrc`S6+f7?uWwgbsO&^+s`-3sjSjtB3&B|Fo<&4;Dl*g?*ZiBnD@nG1_fc*G9 zLjO(I(9=y?L;w0G3=Zh@bhG03BK^iXk}4k0beiw?XWVxcYI{gn?tSmeVK*ZqQo3g^ zmIkIASEu=OcNJxSXnATsnuA<#*6a1kZGaiZW5-9U9wtLLk(mViL<_+C-gkGiiNy_#oqv#9fa!5!fuK7QQF=b^@$- zEV~jo9k%G#0c{BPRb|1GHih>cNXah-#_Nhkk)NzVC$KEG$LT0dKDgl?J4BbTwn9Rn zAzKrN9YpG^@kYXcxrm}83FGJ+HiV5fkTU}9>bIIg6Y6_FNCBq>i<=%_Z!9X^Z1D z6+jFy<^(Qk>S_@((u#Uci7@^#D(U?=tyFIYXYR)J+cG0FujL4%(~|8>9{!r=lNn`E zQ(b*M&_g}O1H_Dyqfnk~pYfQ#PaIL80jd)Y=lSM|%%V97n($ODQpc{urIU*!6(=Yi zx^*q+Twi459w0nSuw~bUa8?Y(@zew8<{mHCes^nZK)MQO2tg z?NiA@y1c?Mry3%iA+B`5v5(uAN6g;64bQ7ZqO0eA)p5;f-%n$}aTYK7<-BpAlUCPqzW&?J$V&@5!>sp{$L>1!Bg zP-W-3sceUE1mpR>Lna@*`w7W>pGPe}dVS6w=Q_%?zifG&{B}FeR&?~%gDm~0JXiFJ zu@KHG+|-$Iih5nUQnkfGnso$rC+=E{C95E7d^@h2bx_@VyzEn5z^dD1^XpRe>z-@- zW9^To1^E-8Z(!m06Q<@XiL0Xp!_6F($yuR)o!ta1eyJ;QyBoA$1I6NED0vnI>;uhF zuF{HSTB=0I2fU-OUD1+wET4pOR~xgMcoQ-Hi@Cw!+@BcZ{ekvDt{s+BwLdLkhurS0 z_xp}Y+)Lp~L%jzw#J#k*RmxjVHYlJJ{pEA0-d_K(HLd?a5x= z?H667bY|O)>54ph%2jEuwKk@{j#QFcqEtBnxrA>2a7X?HLc56xl{spvGEBg3fctBj z^p-pKCpOwG&3bi5NC$^n8Bk`Y9>zlewCK#nsB2*rlC?@3$pOz$ANp}CPM;E>zHEuX z+s~zh&7`dDx6m>5ov9X4{YdJ-yaQUkMImlRp%Xu$_6lQiJ(+voAVYWSF{_qymkq{< zdXK4#!Q!1da-l1OaIH9-bSPXlNvIJ+OgT}JgQah%iEZ$XeMvDVUw4`o_hJDv&WOg` z*`qH<0F6z%K8=AGEilq0)axRCy=+b5?HtE~L*;iJK^vQ;S$AJv=0VQG5;r?z!katg zp=hg@kze5q*PZ)=;vi#;JKtB?8|0(yKZZMOFfcx6dW47T49F_;MKaEybI%xro$Rk_ zxi#N~((ZPTFx1h?sj9e|)K=N_nq6vGC$5;>i%gb{$-7ll{O>!ovuo((Y@iH3*8ED1 z#@n~&0&*@bpReCyux1goTY`HmdgpR>&nlDrkj$knin>jTonUlqm$q7p7Zzn?czs*$ zIzm(a`~fSss3`L|lXGz+sMF3E%5kcyap?u0mrrdrGX%YVxmjP%d{P6E)Y@LrObc1J ziw@E(6?^py!QrrJ3Rg~O`^Ws~?~Hk!URqij9+y)^S8_oP==8c!S>*QVY&p!J)uG$g zB~P;W_;Mm`UR2OVBB_wZ)@jVsB7lV~{iz<^n~BT?W66-ZpvZr6*CIv&#{NqCSqBJd zsf9Hh`ub)WbtMaTD$C}&vsJ<{>ID1bwgC#CpJuZ38+tGfn>8Lb^0L{y?BhvG_bAXA zizOT9;{q9bnLS|w`qky_j)d~*{eNBzU{Dt5x0rXMLk)0azpy-W*H5O-}l@nj9gLc^zuw%%TL#J_Et^zRyt!_ zT}zRNLrIeEHE6>+W7qBHt5{iEqi?PH$f`_y2@D7~lesisEI>ksyBu)EBPhtF{04L` zQ?7|BQFTT`4FT)d*it9r_Cae@w_8&Kh49iYjaBqqWj_&oT9r`pwlOKNB$7v{XXUjG zY0w_KQva|^rsaxq45$(`lY-6>No7qI>23)ptdkhoJy7i(D0c}UF=rw8sq2)HdPPlV zn<80A48mwr*2$2`k}I-^%GYtm7J3qH@I$!p!sVl3PQUvAC&es z<4C{-cgde4FZ_I>M#7nzYifZoZt{{^cV()`gw4qyTKZE;Y75XA8jO<|ypHE#Z4oRcwq(8RPLBhJs>RpPPjfF{B>y z*65-3gR}JD`Z?u;VSa82r}5+o-j&Y$$6azw{}+`m8-<#K0A5$ZSo7>w6E|E1__fC; zftN-nc9w*QQ`Jh8>|BHtw^FmplU!8Q^3#l7`yX|g_*AKPeCgSOe8GeQO!YJ{WFuZf z-vItg2z){4dyw{*M&sAi9&FOoNcS>k6;zxfIlV7r?wZ%=kEHO9p~Y?Zp#oiwIf_Ax zr1VPFpYKVe=Lr%)hrB(H>C4ri7u`SONw#*5aosgUocZ|%OwCbHABy84(8G8)jFv4E z$zUXeK`bcABatXQEof8n<37MC)gBAm7REfV*U+kTCt7On!8?E78yg(8l8(EkuXe=2 z-e2bVwc#Az-M7Erm|67Yy5xifu7_dlgP}G$mbh<$xFv5Ijf`Hl-E&PYW%KtX8+GIUdqd&CV>FK_LS(cfZ>Ei0T zVDjm93fa8ILg9XHQULLDD|yOzh?{sTS^31PW8-D7!c?(Nm|WBK*gK4tT5Wg~k7sv- z70Ib`^A7tFm4UrWhKz~8 z9-cgsKT}a%s)q+_PGH9#S+$r(M4ugCl z!f@Xrk*id3n86~!%8V!2KRr9`7lTx@hu%I4Gc@=}=W%1Rs#cza1w`lDpoR~^& zSnwoYlDQ5FVJesGe_2Dg&+qyaV2m4$+lc}x{l(|^i#;K&O3ZIwClUeKr*+rkCW3bt~};ET7##OZLG1j zD1HH`Q&Ivh*9|oeK)SeyR9Q;8z}9uouF9@A2mdMx(rIgi>B64srmH=O;e8e;~YvO!>N=g%>5Wb|rct|~L z)U~!ldXj_kzQNxJvTm5p=xFBnidraG^Rho$I}}v=$y-ofkhP`q%;4tRrJ(?9RDH-Y zlZ)R(2pOQA*w!m-$*PhE{2AhUQ*p9jd7O9L>vWS;$!JZ|rcT!p?VdJ!oT4VrBwkiB zBqI@iBbncfDK&y9F#p;0v6qfDtIX9Nz2u$VR~m$-$CwbNaxxWXv=ShS_Zjs7cR{PY zDs9n!+s--=a*xL&)#v?=Mlrts!JW0EzgvyLp3iB^+Q>Sb^CFi zQZK92a>#1;(ehR0V1GgjK^(bIBX^0oX68UE7SEb@EnT24tidtGJu-NV_^V@7)Z#K}9Ee2h6N>^;$6JDXG#INFubhGL|`QH55I7PYa)s zqg6ji7cb0xCPpemz^U2@w2oL1GaG;s*R}NCb&)r5bAIx-giBeX&laJ`hD}B5{s}w; z7liw^_vWviyjDkOV943?DuAa87|wdq$%aGoR_i{yWw{y(C_9#HtjDH}QLVbqvDM|= z@uhq6dM4VLP$X)j)-@T%6@J5>_z6X8bZKxB&Q`wan#q}f^!TN#zy7FgrxYxFVSa-r zp_mV8*qb7ggnhCw;{c3O`+Z5{eGwz9@_Gp2Jw zeC>)=d}>Wk9~35jnfc~uX2hC-dKwx+XMA~5gyFEpOr3lsl${Y4ebj#`Gbb#p)a5g^ z{(4s`aWZwPGz-CYMkh>tiS8Sf%6RWZfDWagwL(s#oUbB?b(MGGJR*yET*;}u9QSVx zmzc*#WJJz>2xExk+F6y1%7XwA4HFAcR;FFaPoyV+C_&#+2IP_un`CR+QI&Jh3CbzM zK@GJog8YM_ZDqIrY$H6v<8k-yV&k_P=e>o75<-WEyef|#kzh5^gZbE3yyM^EMQI3R z$}0;)Wu7$c9`wtP=3pGshrf^h(FDov-n;)QK>7U9n~z+DO)o#|mKXNRTyB$)`L>%#8Jxf-%opc)hFOZ?K&ud`&z z{*;y)B51kGOhGCk^lZvS+@9hSLQa%LFUg-xUYEzYm~E74$S-Kb_qBkh1#3A)H%4(v zQ@|E`;R+L_7W#fm<4)(bCP6;hMQ3q<1UR2fhP#)oEV!g5Adyrra>Y(HITdM5N*QtA z|3YfWx;+UlTtEFOD?bSN!9o(i9~u>+P2Y|~)7G=BEAe=-w@xLcxw>sXay?-~8tZb2R2l__^2?aEM@$uF$6!#} z%buxgihN3<3nRv)iA4TT;0#F)URn~j94A%fHHa)Qn5V=?`L_)<=|ZMxziAirW%G73 znKdSNnmutm#!?HjMc>(%-<$&ah)rxZpi8K`9^mK3mXuviN%!DatDjatAeZ?gsnh0A znMpw%^B^4r#*voNKvAe3e>% zOKB^xO4#!jkPN#xR95IqCB088+`>!LkCcWVN46m(HrSJ-A!)i5@QclMdrRr=GOw{- zet{D=U_J66_KfdrGG&S_%)WECCUD!p?t4|GygBTU7l=2dmMu@Y+_>*PG#WgeTQ#eI zIljB@;(#Yr7kZgV#q}+f(11Q?)Wj zdm;;8;yhZ9z$V@>xASJEOV2AEvKtzsBT|Ht(-tjOb@2PQ1P;zcwr)Tb?Lm{^0Y*oi zed%MJ)C#4GyO(EC-s;Zvi9Wr7fsgkDzdzy9B8P+jR*?NO)3J3YZgd0bYK2pEvOs&S zogHTR=s1&FDW)_nb38DudOf~8B_k1hGoEkFF5Q&*>a$`|m{*2CQa3k3HG6x#{fu&x z0;~|dOt^{TT6R-QNlmYwemro)qu(23O6;~l%zgEGVXUDLo(1#a+$C|;6Fsc%a;}C&iHR{|-PAaZku*{MaF1)P!ok77+SFZ)$sCV7?>-<~>TO$qAc0M-B1!$mKO<|6wYM6R}iLAYuBUb zPLW4hW;G`{C5pko1_4>!*q?JJR$bq{s6*JL!E7Jn>md$%PGQOiv>ssW;7q7P+lrK7 z@Ltn>pF4`1y`#_s3+;9>JUSyX>d9!$*CP6B|(l0l;5^zi% zD32F9btiJ#-KnNatoEnuX*pbMpwL9XATu{RpZ);^xWF5UC;g8P@fz^35D^FlJf$tP zwg|z(329Kx=dmE~DsP4P%a4FykFl%n44D+3f0h=03Ka~lFhuX@L&^Z6D$bjA$VEvr z&6r&uCwH?lv}q^XSRE9f);tC!*2Kr4@qVB^LfB??4F#hT=~BV+3`*bx{(2B?-Q4mE z(h5Fs@I*)#D^*@}EUc6i(Rz17;<0>=$!dHXp6asDe?-eORYk=pYrUM6&uzW~pEJhG zSxVbGanWR~Y-Nv!yDZS(tFzGPih3h=e^$eK0BrQI=qpmX8j)k!^Pa4O9Q8WP)=DhZ z9%*lTG$y{>D=?Yo6#^HFew(eEXtFu{R~#T36Uj*#Z5j;1ggV&khbQobv{Q%1SHiLF zGO$gwMiR6&KR6`2G7I?#HetMc_V(CsR6b+_Em))ALBQDpbc_r5flP+n2b(Ln?1aX< zhsoXTLxAUrv0L{ zg4m8Z>pzW%_+FO8Tc*N*-7p%e#>pEQF$$a2Dl^=iI)I--2AX_5)(*=De1XnO z(5FXruJ%saz*xT+BGBF6Q){&;@Bc~ap?R!!z7UN(!~#Wr8P7Z8OA(sr3xlxMVh)PW zw4=|-dxux*Qq>9?P1~lsFVf#9&eW?9;hS}wKE0jJ;1itPmX=;pE2_k^-#}n6? z*z2U(0%R*4TpPulo?#0lB*oY=&C>^RZ7}mO1+rW+hu1lrE%pV$MXr$pFGf`+_tGrm zKV|2rxJ7hkV%%GT3A=j-L4D1v!Xc4Kne@l^yG^7tIWVrZ}22 za1UWAN6cYh`CZn9ky?VDEev4M#O<|6HiE zTP!{Hy&n{8OqV2W7C}$9Ijz1pa&`QA1LEHG>4hp++v1*9(krgQ^gFEW*|nb^7dU|C~{(ul;!BukUyXiYy>G##B5gQQ+Pr9Y#Lha0*-vNapl=j43q zn~Fu{G?++ysw|0yC5G$LhxKB9g*m^$(tyOqx=)uLZ;Nm!u0<}jjZ=Z23Q5ocZ>`C? zoJu)bRfd7p>cwkKn%g|jTQBFnp|2^dvh%NP{p&>g zU_Lbc-r~x&T9sVgsJy+FO>p^WC$0m5lHSpcc5{g>B$?K3KTK~O=A-z!3&0^HvaztUz^n8? zGSjJ)a$zJGEP zt+Lr{Z(HL(1Ts^nCALr&p6!0|vG?1ag7|(Qua(&a`^;#|G>5}g+oq;7@2D8qT=MYf zy0d(}i`v*=eeqGWWVD`3mxCDJPBFYTacC7cQgWx#K=8=7fve<6NUh;GcW0LA z0atr%gM?9cxE!&k;X8e z^ME7ZdO|?Rgk5tb08k&>P`~YzDj*~lYo=WUTkS(76tpUUPs!^I}M;?z}Zn z;3EzM+QL@6`=ve*K2J>GtyJU}*l)O600SB8A19vU*x1T>?Jk-wTk>Tq3xFY0n?H}` z>0$(yn{i_e$IbAfMuGgrE_Ib~cWzW30u9}xXw8}nUv*ji=4;YedCGeExneL&k z(uR4Tpv$eD&LgRf`KMERxXIf)BWK}ONKha!JI^HY%<4=gD*P|@H1PFHj&1!QNVGE*o9HnsWO{Hck!o-k$2jv{f+)dMZ)%4 zEE>EdfbG!!!aDJ;3|Q@H5*@EWehjaTs`Qy0!x4O#WOlfPIRE+wm-hwxXDmdq>L0P>X=Xi|tu__R^Y7m-jfqzTv6#XB@cfX9d{9lJc zabk?qh(tOSxrh0#>{90kv+|O@S|IoZ;$2Q&SgElPZ;&rvFfbwkpN`gBOp6NVf7?67 zzrUyeNnOFI!#u-uZBq(ZYAPJBGlx04Pb{wdDg(5OvbxUR_DCJ6T=6zz95={Za_Db| zZAwjMB;Vv7vO9v%fI}awPgwGNJ{6?((tdS%i}tw^{#u#q6e4FZqoSj7(I7v6Ut!wH z*h^*G;%6qn^`!R^8<=>ByB^2n$u8H?RMP_s5<#ldQcK@9hReZSncKJ|<&&!-=JA2w zZAEF4(37}7&Wa?Y*GHk68m%A+csd+`{%_`=>sed)w~|?i1B$J#Ws?7;ekK=8Ir8G^ z(PfD46{n<#sX0DQ$ZrNq3koV-hsS)ayHK#ZVe3tn_1*LLr>8iJ&pr9C%t#S@B+;kv zkT0I*BVF#%=T=7Qcj7-BriNnZ*`VP;H1dn`qhr$q$BQTeIu4w4EGWv~$TQ=OIGxe$ z4Bo1EBjUlK94085ET(WE@6v=7^9-a@(WK;^Xr3)3`sq^onlG%xbyK=?FZ=>zstG!b zv&v-@!nF!Wy|3B9q{L{spt2ntNXn&%{Vrt*O^-}_J4Tl}GKw*4^4&u6e2H4BfV=rk zO?_u;8q#deL9xnIO3R1_T&_}Q&F9_aHL_wQ5jkuEBE zi_NpV-H1uBN^++X>)+%A9kD#W((vlMAn*B9Tq^qN2!(P+f9PuT1Bsaa;Q!$QNc|8g z8qDhhd2w?Th{&AR+YOt057R2mKZ+tj>LLkb?!Z#(0t#Rsvg`k_&4Wg#NWal(Jl%cm6@ou*+m&FhCu^Q-5S()x zic3DwG~j#xV;uWf6jRv6O1j)2;|tb4e-lpve1{L>pyV{!@C2YLsEj+Nj_32O1eD4m z@5~wCl5&O8sjBl^#`ITow7Z)Qqm24v4lb%@D`fGCs?s6THk{3)`wxhyIBcSA|4r%N zI*ecRfRB175hc3j&`Y)IJ;mqHv6xm=GukC~ov+;VTotAmEWbRIKmfnLA9EkPv|#=z zJc790g|cRBhXUWy`50At>rX=eo1z2b`Z?8N^de6(e-M}Ta;CcBV=+u7cZoKCLqH&u zfzsf1Qp@jUm)6uI3w+_daD8=biM_;F*V86s7BDn0y5059gt}UNih?1et`x^JV$lHgqA|S*- z`6nWeX_72gx!LQQyx>N-@mjZhE*o)NJw<9YE$^3(xNtlcRttylQ*_bsksU%8Y(i*U zT$$J$<4;V2fN}AFT6P;w2PHumDx1?-@m_owl2+>n6P}S<$gOR*&?7xXaT$ppCk}ev z_#p%Zd*Jr#h2nx)v=w>6j?4yqg~)o0aO}Wa&2d7ml*vl(jJ@&$ho-PfiwvOfYi7Na zTW-hLSseV<#F;A5Cm6CEP0E&rBsh=N=+1^4C^q96TYFn6RhOSLrk{!em}nB)FgqQA zDCem`UWN3(t^qsqoYPGk+Av~z-rjQru($u@8_#H|0wDh#+JPxx|K^1pen~3;uw;1) z=e})r>;ZhRZVkVrg8pFoCa*`rUz@K$vzgI6ur8`ohLKZ_lX2aG9ZnWH9tiS&m!c^k zBjLboCxR}uT+#Z<_X|urxsxDOgs99KPAqZhHmr7o2(eD(#B>{^q-0E3JVSlr6pkCQxM(ifF3q`&Y6WX@e?5~Se@l(^EPdhL!~pZbQrP5u3sy2Wd`0*df>>Dv=rg>e(X%& zZ+B4^Sz;AiR^TBj63XslN*V-vdu6VA?E)D{1%Hk^(jG4y+2S5|ZTYF;2!v7qy zH(uflto!B{kYFiU1SV(mvV`zB~jM?=ws ztjuzx&eQ^BC5d0=KVw;Hjfw?td|Yc=^Bui+BSPPVpEz#gvFCEvojX&?IC;#*HAf%{ zj|C5}@@Hg#3(Qd)HDUeQ+FYt%4xD@tQWr%=h%O1#JZJp0Y=MFT3jh&f8|cUpGD2V8 z_O<6y^xG0i`js4bFeME+TMCC!p1w8Mw~SGlg0vJ#%R)#*yC})DWkBQ5WO((B1h46}6&^{QUD|A@T8Y4{Ss7(l+J;D^ zj4XJz;{2N@j})N7y^?eNrKF|fUYSN4`ja(6q~nLr2nhFJ(ifj|DjU>R?dg@xLC%bg zZDAgKsjWTv@7jVPUK^K*u1lYc8QBOkKk?Q_sF}fyg1!Dgi4)Mk-+7U4?_wzc5S=-B z@XTh(GwRgVmm#8VE??4hW}-zCWf6;eNRl~_4X-fP{gtb{?^=}!Tl-^jzY^Gn;-f}- z`Z7v9ecx8{@S2-boH_jtbFZ#vz}F!g#rq?Hxf_zdDN{lREQER@TZ#mCQ&LizWW_R>x&syvaaQm%6P}j(#7?9)Ru=vlwQ3jF> zQc2{eiq3R8xZN5J@oxE^^wWre}NXPDlA>e57ivtlH-L-*KHRWg%K;LNwZ9*o0(T0F<%n*X6&N! zKle@-%Nyk58d-mFXc+YK?D~1S1lA2!CrC6)BN%qq-Yg^OzZ+d_D2YiVuW zxZ(8$$g9ki_wEuU$bR+l(ka4ijA{$x;oEzj)# zE01H*lMq`qa66}U?q%HAE^P!^DRLI*SESB62Bp^4W#C>~i$|+EBFxhUbdR8?IQ@pi z3Q;r)Ryw%(hx1Sd0lic~qw&!1TFKlNJn&fS$>+2Qhc894aw8xxgX+FLXvT)04adqx zzcG5Ag=pDZJgNpMmFI<|!<$l8$AorxZ{Ng=;%GhL8UFTpXGw_qjVO-K5iYsH8pixo z$T{k_`}$twoLPq1XsR)9wWY`j@&z+FIyT*G0fWgpXkx}>k^DJ-m#j?)f^#l2ATtgS zo5Y5*T~-fP?PP4PkDdG0U~Y+_x0JCgl@uYFE7q7(*1(+tOYp(TE7S*_&Je=E^c`9Q z$+^#5dA*fG_;L}coiTqlrX0{Gc%6nWcV{SWjXRpV=&RVr8Aw0wh2VrH8pmi)$cvg; zbx%wkOz@|Zk3q=RZet_fgn^hD*6f|B>Dxn{TaFJ`*G{M9VbH__#xK>OxF=g;UR^A4 zS+UCtfoH!wPoCnj4%``h8G->2(1M|aR7pxaICJgU&PTFu8JN=J_4HtBRbLvY0Pm!X z)`HyUMKZ<{-Ri$GKoupHlYbRT&BKGvDdO?+MyH4-c0l3L?yu&H>2xZfRk}X`hmDa* zg}t;&WG(y_K4?#o{%m1*(op_R$crgGol|?uLSbqP%Q+dKNKbp0C0qmq=D&;xVf^PKq2!TXD?b%G8m$s<>Sw z=MMHhXfvo!xfzcGcz)8^c{p@9^d(!D&@iPXX`e8fsuWz>H&K17j_7D(tK)P;THKV| zxmIJf&#_J=M4d?eQ+r*OHC!pL0NU22DP{niX!WjfpE6lX>Ip70B*su zUzTX}1MW#2^Z+9(Q+X+CWdtgVmFE1XWL^66R8{Cu%5pS^X;De`0^#(S=~3+kG@^#LJ6hge_$T?! zBTl!82Z{F;o@4n)Bk|Y9z^NkbOCl#C*a|3;jv6Gaoo$6~sK6z>M!%kJ`WmhE{MxZ< z{o$X~CB7Z*28GaZ^J56#N>FwOA(JD!s89;dg1bG$o^$L;7&q{yojl-)$|JDGT=a*= zWf0PxGxIgn?9BejOolWmK$l!VZm{>t`~a@PkiF=UUJyJsST|XCD=x=(V^}y0gmfY! zc&ZW_@{63=#6_$t?yBr~zz@MBz<9pN0f8oIl9r6VqK1*jZBW?W8+W`dzUD5I zCrlW=T{wpmnUvYM!NTP2UP*d0*%L`2&nCPYs=hSQc1MY@PhHkmk3e#qzhH0dFXvgF zMjBD-)%P#$$a%oAF%^dVWA4GIPF;NmBU8y-wJI9&^&!5{N{5Hn{n;MW&mBp zO}&s5@w(A@vG&{lxCetQNPGbhd1QNuohAG{hUVJHiekuy^60AAzbnvIPIaw6dFB4d zbWuo-tR{LPc`z=kk^cool9y)N)_Ek48EbeNKHvUmp)= zb#nua|J%B|iwz}A#`}>KgFD?&LCBAv;~ZCBz*SC zbv9lAH=eLCW5C8i@l2_?r$|ioh`)r=0TLRL-=zGSZj$Rej25O;f3z0#8fI*W2Sq?I zE~k9kw67%fjF4Sb$BRqev}Ppb1&4(x)E|UuB3ouTMicSJ#LWS5@_)!RT|mA8GsD+A;tf}; zp0}k=e#HE{MuL}@_IDd`o%GRzn)eV*T#=_`d+*c0yc#H-%Eay(hJJ29n2-Lq;eLxg z$`-sk;x1%SVM(N!)js1DAi_{Q5s!Q9G)2xm`hkQsHr&eJgSLpLJrWp3^}OJUlA$$0 z)(uU0>+q2Img+>>9p9fB9(i}?9z+K3Q5^4)E~hp6kWP54_8(BHayGlPpnzoN>jshc zTNt%EijRrL1Cp z%<929b%xt3=dXG@Vl+7bO0#Rho5Akaa1rC(*}!%0=*oCof}T?Ro-QZGJWy{%VduN~ zvt(0vPUoxI6#jO*%GcD#wwm%>+|M#%JAdq7I)!)ZZ?26nJYHU#^rOlPX}<(h7((ba{;^l>!|k+_{b+^hQFQe_;NEEQG556p*mLF`X1Vucf$ zeQgo2%Pe+qMx+4ou?D)?2Lv&nR7TdTE)I%$i}KDq?)?;}SPq{Y-c0b7cnD=GH1|w! zJ(87bek?&d}+ToHo%iCmlW=|?{%Kr0qcufsL#o2YwdJCzv&1a z+)-NVER1so8e$Fx74p&W0s!&C&9oWw+Ab~JmcP`}e|(Y-!g+yQDapbppH^+c;w` zfIISSND8k#Mtl)_L67dQ>fWF*<1M=VmK1ZA-Sfs5hi5m~zZ6*Kwmas@hc(+9fYzYf zI8@i?SCglK#W|P!1OD%1DVXf#Ggo_VMfp>!JKIqAPJopbY}^3q&&WDoSGBPoI4l!T z3mla5U=YkQ%ddO~j(zQnxu1C)ytEj(+p%dAvrA8>kp0*GbX}Xx%4Azl2mI#fy1ieq z!I^^OV#816QsZT?k-1H+IvN%Yt80w?nW`wI18;olY=Zxkf~x8H+j)O&rAmSUWN^;A z?FBjm|H3aW_hlr=N;9j3KWc+CI_a>3U(U@-8BNw1=NbBZlC=8y2v_!(@xQDh)E@FI zu3@M5n*HPHyq?LM&H$p%1>& zu{y8h<9pUc3%?{UyE$`xEgdfF8NZbc0Y!?)@QpAqtVaw&AksyRf|q_0d!cKu@z`R? zS7c(za5W^)8~Wq0%8(+*$3Op;90yk)1|I=5l-# z5tuAR$YMu44!Tvh1<@WuA2js~U7vo#`Im|``do{8a}-3>!%kkTjj0gtqV4lus=)p= zF+Oe86qyvS@m`RU!|5|h9BIH#RYy%Zs=Cn4=Ics!O_k?XZB`zU;>+ zb4<-Pt|{*E$k{N0cBWzH1a|^XS_ILeah%)2mq<29bQzA6Jxqi;s}bl}si`W3D9OB{ zY43AKmDN8ws}dUMTu@9FYEDwWetJd@@eERsB!}J5FTrHbe|{J|A8=Q z{7*uWKoRe1_iY*QQV>llFWN($o{1SuC@L-2bRKAVG-VxLcTjn5Lzm|*2n?D1!cQ87 zw~bZ`o` z*2?~`=cuxqSYNF<)F~ta*WSdQL_y^r_WPyYxny0=~PRlKXFHTC6oW{usxJ6&QVVk`n}zEXmxxF5zP+SVIRm ztYb0#dlf}gdB?5#L?C3P>PiJ#b4xQr$+|?Yo2lcPa+H_t zHHyZ3nNZkTSpHE?oX&NFH!Bfv;>94d8d_6NfreD4^O&kQsVuy;m^*qFFE5z@G4l!Z!!EMnQB07~=v{Jx9Y=3bH9Fpk4hnyHC zCMJ572ipB5QQViUuAS{g33N#NvvNh_Y7!#VAxhzkHOW;1UJiiivWn6V4WMY_o$9(YG^$J4EfIv**e0+}v8LKadZw*Y_#nRJe*gZea(p|En}RcYmvg86FVC zM&04TFj;p%^a0!vHvl{zd)nPYI-~Ah`W4NL-5`-N_MJ!exwPWujux%2%Z=s;gPC>e zb2E4%1xDVMu|=?>ruD~vB8bY&Zu}Q8F03{YDk{DUZ9q7Cieb&4N`6hUTdq4+J9%uu zuV?@hx}cy%XII)RakehY6Zb7SW&?(d&+y_a}U3 zina^K%*=~9smgvC8V}9>en$jATYLBc$vUr)(o#C6uX|&Xj^(ja@`XO9EmkhF06xN| z6j6^7cilbr`Wu?fShii%i+NQ#nWGzm&V^f!z(`rnh_z^mygu#dVbQvm$43A%Qy-39 zbB~Og^BMi}Oim?9A}hiZmzGhxIb~+*YVw%hSYo|%Z7jM55D6IrdaHRI|Gr@cj+lLk zds*Bi^(nL1BgmlX*C|bKVgpF&5&dg#(yz0X%bP^u1^B^mi_%CbMU9f+J7`UxHq3a^jfH zfVE-`7pQ`exZ7hO)}z-qsSrI~PqVPQ6UeJ?&nZuiRM}%8y%pQ3I&<*Ba+3Gq_j8IW zDc8KCxaAApyKX6JE^q3tajdDdvfm%!o9IQizc|HdDdExOo1ErlRCnE9M-2ovG-9Wq`q9 zUtn_HqW8j5)gua4MPsf?My2x8J5_Q{QG7;YF58kNQKhx3B85l5%l$R|n@B~T@=Wje zu}UZ_$NXwKPG9~+5J$TCpkPtYK*x_TaM+#lUw3ISX9Ec>x{R`alm2$P@+EuFK+?nh zkP-ds2=5+3(S4-U79uNW>hzu&U+Xr(@?OwyE}98vcvrGcU9q45IR}0HOPS&^7WHTJ z99gkq*~VA1VvRqc2(4_%%g!LSjk4a=Hnfk7ihoQw$IctE#o3M>*J$l+$wXx~XnAh< z;%i=wN`24!epmEeOFrDf=1JJrW)7M-KW}18#dbYY z4kd;EsN8-Tr}&M3K^^pXR-p8Yu80dQpC2zv`XGS*ElGIRsT%+NOgB+(7Y?xegpG`A z>DV4p*KQ`?&RD8kA!4q+Of)8$L`?}FHvyC`-jHOiHreg&?~}m)?YVP}rPW}Gy58oN z^cxt)ufb-;JF0`P-mOA9@qYIh`L*@5%I{~s9*=GL+bv52tsa$EC5ARSta@{egXSuV_}OEJtRYN0Ev+CvQ~GSL-M5XAnsX#w3zV z-J$xFQx0zy%nB(BtUIhpF&im^_fKc&V`s!&Zr}vMF_!b6px{3bF-l&zSusCM=OT0D zsQFsl7|>-e2g-}-sq__<5dmyepE1aECVX+86Z^s2GXs=Eh0^LDcnJ+vW098A=E%*} zon%Q32_;;6$dc-v=J-^I8)L7R?wTK%+UqM>KIlyJn9e9ld@WTCCmjMw31&|>sa#H> zmQEcU;+>dd8H@u*){i%Ls)A1tqys2Br>g(WW}&Z7G%z^g$c6Th$EeiRa^sw$ys5}` z4=%q{zGdn~>Fk+mV_`wrQL_0aZTn+w-M4bjNv!u3AM65!ER+oh*h{hV$Gqv^GR6p} zCIXRKm|}0t*dpJ(p_YDPDxYhDW;{b)iw)WvXjs8rp63NLB{0u@ZBBPa$By8g`c~>B z2r%1E*fm$N{4nQ)#*WAwlW@zTD=u}+|7g3cF8DMASnH+mlGO4ZjmMm6c0diuN);2~ z!&L=^*Licf!o+|o{b?Q!YTh)ZcYKqEt;iHcHe0wYP*H5IeYGMTUlDEA$_iR7_#9x< zvle~4AOzT+h`jts@Me9J0viJi{Zvd$7&dYOj;AJ909RvJFj203p{mb zt=k*kG^KZL!R?s8cXSYT7a+9PIFpKl)s+z%u3?{2W9?AHP+2naq@uRuNdup-L&!;a z9$XF-TNkm-bBmme2hoYGsO1eHeH^q?E3>`VCC%mO-~727s`R<1^;vV24nO!mo49hy z;kY0vQFT=x)GeHk<}Kk&=bVy?9;`>EWmli z7~N(>5%eU4cU5Clg~YBaA8jE!I^yXwGRN&xLg0i1Hgp?*3z*CkXTJNj+%DdFnGDHW##eA(C|R!ih6b?!8R@-{*%Ha5j%pt+;6r!w zFgfyc3hIPG_0m4n@WIEF)0x;dv_$XKBO0kKBY3JAIe6(k9{tl$T%6Br@YV~uQ!Q$$ zHGW6|F>(TO#zRZ)7sB97bHgo>|FEOnX?I|O|I?j0$BT2-*euXvvnXHGo@+9|UosFD zm9hb{VevcFdzlO2=os>6-@NXE#oRFZklJ>#N>c7(bwrd*+biroP|*`ARn%-!0(JU5{CbT=`0&YS@a-%LaV_ooxPIpDeELh*=svl|G-$>m1RWdhfmPYD zRuyeWVvr$NxY@y6iLB4>50t<^I1*Rmk4Gz|Fz_d@bFEYCfYxYO{*|gci>;;j5GW=P z`ZtagG#9L^;|r7@3DsFe*SbZd%*C6@uJ5EbO2a%T!wuZK4GVV_YFUq+QQdI)>B&+} zo`CtvPlDAQl=yt6FOkP0W4~RlZp&oOR~jtn57=hw&dU~e;jtQyMxi=R^=%@5oQ?9t zn^i=8pURqRQ{3#LlbR|tt{9^pnyNy$PpdEbOyWb%bntB}T3C?2nHhjPUJM<)KUJ(U z_}U7eHc`bE(PD>=JusMaU!v3YK*V?NS@B~$eJ~+|31h8<0{(<8S7-CunmsPr2H&x= z2#L_{0J{q*P2uaKBVJUce9P9NEf?zBsL&4QWJR)n%?aXs8jhb{5f-ua*=PcG3R!Aw zbrx|Eh4SaokA{tRB$G?6fZyw5t@I5Az4`1|G96MKc=r+rFR{fa5c?uG-V?Rg3g>l2Y|2=$H`2dBROO%&phBRFR~4$$8Hv_jK&8#}YPLs0YdG(%5YfPOF&K zA1-WVL7q3S`Nv;GsIu+4pLBY@KtUn5zfx%~n?MqdGqfdhJMuiH`V0*6w5i`pa7<2M zOt=yJe&ax}vo(H8#yx5sHyEpG(|ENosr2Ug%CwK$2wDfwGfBJAMnuoZe zweE?yN=we9sz~j{HLWrDQ&dlBaw|@+x-XwJX>;~uWT=LN+ShxbYTEXX_igJN3{UF_nS7xTb!0Wu&=>N`BnOqUD{^&x=>0 zPOAyQHdR^dlVMt7n=%;rKsgE5n25p_o%s=zltS@a`FkGSxAsTs5=t{zwEDq2>3ar8 zt5;%DTe*Ub;gLH!yNm{Hp_xjjr|Y51r~Kc3(Rz*cMYTwSj~Ce3XI2d*hCp~|DggEZ(ftHO`)zvcTWWK z^k;{s3QkWv3LX!humq0z`D+8l+aZAibE4Pe#_2kJIzyoGS7o8HMj=2_JcTN2EEid% z8Du+k>W)qmBNo5OW^6C&yl^J>+wzhgN_@B%IVV&-)(yp!+StOLy5<);v+0?Md<-W4 zp=03C1iVerT!LFF#=J3>{PeunFmzL3kq?=;JIsd7{`mMiHpbJ<$+b|VEnh|UKa!d@M8 zTd-+p9=5Y=y8o&B75>#V%YAQ5XvZL}pfEp2UH#??K9Z7}`aZv?kOwVzlBxn$3pkn5 zDU_QMGnvN6;&Z^#_53wLrfwy=(Go{WuAoz~g2d^+rxcJByp&kf`6CY&5F#m`bS+^3f}GTKF0pQRS+uwfNHh9YeUQNLJ2;fP$TKqI z)3%uWc@snab95B^-M=^xHX{POFgbbrG}r;#Y^cRi7U;8S(49NVd3IljK6%~BA~~KUXrZG6SkWMe%x}eBO1w|kiVp8xnc}Z zCGH>VlN$r zy>g^EGxthsTXUn?+Ol&)zmzz*xDgOhC!z#e_wYM(`O;9+$eZNHRq`J+#W7x@QkPT9 zzwg#ZwYuqlQ<6(EIqv?xT+&mi$_L53JkY;xhM`^pSv882`+tN6Rqa&AIT&>j4lNlD z$RMbc?aqO>6*vhIWCdehV0Q8iv7t_{WWb<+gZ}_Fy|oS?L|#D^gjw%4i}Qs*v9(K^ z>Ro3mW->)ZPFpv!+1x0XXB+|?Q9?}@_FsDQHNe9cYU~_XO!WORMU`)v-MNLhqljbi z$s7GX1VtA(R?=?WyU65ph%5Q1C*5`zayGtF=w7zL{D&#!{*uM0t^o~LsJfe%R;^@V zzFR4F&q3k4SvT4@>z+OPt zINY$KPIM8gs3dV_wBFg%Zb%lS(D~1AX#tlVNvLaz^rQg>)2N~u+=wLmq{o=i&o@%w zC2n?kE?4}0F4K)UZ~gbpRy{aPnRT~(#CL{Dp{pNr+gAo6RADGsPu`%Z_RGr3Ceof$R)S&M;nzh)@UGH?{uBM27Z8ZEnV`nK=WBq;NJ zPJnh7BcSWp=P>D;Fl;WSz6HXY#67*ZVS5u(x@7NZ((Z2=rNs`;jz8WFQD9)3i$SD? zMTPU690xVQN;w`vI-1xJzAZIdfVr{gNAABwD7UAgd7p86WY+&lkq8eb98l+69aclN zjDVG{T6U2|_DTFfC3=!&F1d&xbP1fAC=WG&X!hKQ_Jz z3zz7IpQ(b`G(Nx1Pl}Kql=tNdqZfML5&%@?E-D6FFcK&e@|xRR7Qy??%AzXmu?HjU zg5GO9!ZqE~`_J|*osaG{l|z3CQc_TOEG!5wPnwi(+@q@z=7vPdkoH**Mwh zjHh5tVKq<`Mi^hFvYa7o^w!dtF>om7h+>{I%_~92P>rEIF_%ccEy@Pqyd>;BapjBQ z6Yd<+2Bcs2w@H{;kGb?Q>{!v_bNSC$4`Q_ZzP){C_dSt4@W{CSs^=yQIF+oEbA2UOz_8qf@e+nG;RbPD~+f+^%p9u~^f>dAwo;%gP4e^Q~W4 z(VE+0#Ne%cpSi&EKDTwkU$?unkWaDmUU3{#_`M}m#E&3fy(G&M*R^6bKGcA( z+T4tMgp`Rw&Hw3Sy;J)A+?KcfRyk1ZeK5YIITM1bD%yJd$3fMCcipOZ$6!KDbRDzU zierR_QdiRDVipN6Q37@s&3@4pC3D$sxTM7P%k?`>SK>3mz4qL}&GV^h0q2H6ntJ0a zC50(?jc?U%TZiTe8+BG6xk{kdQe@rdlZ#?40xZcs=g=em;YtV8SG{r`)~hb z;D7D3s#-eOiKndiyaswlBi|og6>VcY{*c&@vGeDjsFzKTf?ym#A6CKdHN$-q?zFiiF65^ zKB4zJRQ+bQsM)DRfo#@v(QiE4eML3p;)}pqr+rAylM<7p3+@y*&N6ansuWnWlb0NJVg#Da)$dq;`T(w1c9 zVf8&`Tf(sDHKHPVly{N4y$`H7%P3#bNbDc9q@FcJlNLQ_ z;v-eH7G!7xle0FXPn#+E99dpd{?J@bgYml9emDpkw?2O!7UyZO`YI~ZI#&MNXU;@~ zTPC=0OmDzUv;J%Op~nk(1u509TYC;sWgIb4pbVb zz(u@u-8Cr&iR<}k_PAzMPP>)@qeseQwf$P3k@;(*11IA5xV}9umvQ!q(h=3PuOXkQ zEWS|DK8!g}>FjoxLcP6;KSyZC*P*(m9!b@^Yk>r<6>UCWFUI{aXH#FM0M$9g>DH%N z_bcY#i`A3Yc%+t>V1t)-!){|sN_)#r@r&brSV=Pu>8Zv z$jT)uatL^TZMtwu6{~MpXb;1+vm{}Xea22_%QfC3hY#ngKwB;e|G!1@?SrZnnj()E z>ji)HDc-u|a|@k}CndZ)$J2KnO(t$XmCP04Y#yur#rz<)6b+f@rY?&jrM_)YD7=T* z(2|JG{TI|i=a>!{&Yk1IA!@V!Q>#6PfI$xueeC-$QT;#fgRbYmx%QP4MelH&fVN~f zWOjT9)#l>K-TcoJ;4e=tC^^kvlmp!j7~lUtX7K$|vJlcG^Wif^u76##oQ1Q#G<|3i z6P1aA6dXV+lB`&gBJD#Z%#;tQnykGx8) zE=*}sa(^x0XKmYc$Sm~Vf2}GREb`&+&;3@S5b@PcF>d*=*L)ANkSa17dGcK4_@niO zMC2OTM{{$jpXZkv$>NdFyMpRix(!r21u@{jUQxeq6n8Z8e-`R*Ay!AbfJz-~9LK3! zAXL|3vg$M2uTs+7&lf*C)sJz%xSW1XcZFPKpA8x%P&#x>>i<^$|0%$H2c)o-C%pA6 z545*JbM239pNLMS*wIOtA1F!E!we@aM(s&{!@pxOJ?Ibmi=e@G?Oeq+?(s~D5^QfN zZ{Yc)kmiZjSf}#?+V zuJbLG!&HNpSekMm9NZGlWrpahjrW%K>&tQ5bfMu% z6xpr$1>y#c{*{=9>IqAn-Qy&151{k*s2pa{ZaVLm=g;oP_pn&ZIT^#pU^MC4ltDV=6MdJi z3(Og6UXyGgFGOu+{m8JbAud_(=>h*<&1`;xL6tVa2BmMp2{fUvMmn~UQ#>73Z*}`- z;cbI$Uhr@hCnKXYkB+?T6BO2nyaPvb4r`KZd5w)lN_i*Lly)+!mb%`J9O+xF2^N)c zU&E2AzRLLJ##5ced*Ct&J8ZAfD7rw9Z=XhFaN@(#7ulcwKeFCAx{{`Q|DISAP3*~J zV&}xRZQHgnF(#NyY+DoCwr!r+=I_jXKhJkP?|T0_>vVFudv$eH?OpY`u011?JCk4W zzk|n)$*m%k3JbLs&udH>#_JNHRt6~@Ujy*hN4nSyrW=){`kG1v7sfbaajNGrHV{GC zK%E#--_yC^2!7M&5jE|njQ+SkC^aDAU@*fbLS(Hye(8=6ZM-Wo(z{ z96b1Jyme_u(f%Yvbv(z8d6oCFm-(1L`Qvy&G{iNtXNL`ssettd3mBjlJWCRu_~-MC z$v_PAiv>ynVObG}CAr=Ne0RqmlLPPsKn5mJA)4tqNGWX4frt_goVFYyP62(j7^m> zvW7Egd5viDE`hbJpH_3G4v7Go_*jowt8Qf{e`hhqHfsr0Td60#M=w6!Q=X+eoG}Sa zYE_%d+h}SEDSCr1)~gnSjS8N(S-hv|G>$XV=O$8v+752eaK2b$7_|L3f~Y8H=P+Fj zId7@lN2gZ^5br-f7s<7i(E5if5Btz_aBxVLCbRgrhhAyk+}?Vh+vv8$mMV?3ziqj3 zwX?iYLvFQn;Gx}*`+i?{J39avY+83%u@T*%3CuG`!w~i7g6hAI8X(K4`5K%&)!b&T z#(z_#>I#GwdRFk-rD6SeqsuCp6|cSCjpHDiT9SZTQoPBaQ-;?bwMzZfg78Klu79?AVWJOVhO0AUvic7rny4z z8sE?2-d>b1a3Zp7Jp$wDSl=i(JN7+&0)!*&JK9w_Ce)6|vG+t0J4u{r;n?JCBgS`09KGTZ3-D#ut+_K+)vVa! z6FK)D1(RHSBz}bK-MEYJr?gh#oSaFCHMKe7D=G`=5&7ySZr%h0ln+~xHF<4H(4BqQ z@)7E7f=Xil;`^ZCZ|mTIEb8k&!=NydZcDahDkH=v5ryKTqtW>wuJ3p=>eIFxBu8VW z!5B6N2CUR_9ZD=mU$q`IW=>B^)%WB>o@|+`J>9qoYHiH+LyCmBW8GwmBbM}S7P9C0 zv_T;?KbXyzt8i0!#pcVKM(^4qxgInOW?T}t-bi#SFFwOm!KpCM)A<0#Gs1{azN|5; z$g))HK+|#Iv)2fVBwT=zqKlyz_2iNu@(nab;sj~&%RRaG#tou1LHZvx!|-U8t!9W* zPW%jOB51IATlXf)SB$hU#+dsNYCe<~VDZ;*8JpB9TQ>6Cs~;bP=fM!`?*=!1nHiH@mf$6A5j_TZO`$B7ni zBPKK5$*3pw5Q$h<%>S8j!jeGAz4AB%E<>_Ru?iJcYl8mUll~{c-Adly6NA+h+gEB= z4&L6+dH}WtsG7+N7Js|FS4FA%pIme}q2XbGK(7V#ijvqhS^J(@mB2!K3(2EKr{@6w z1r@*z!=MPNjdNaIXli8M4K_Pte50y&?-)Fi`52q}avo179|iI1ZD*lzPlLDY1sK}p z5>KG%!Y4~*H#dOC0BNdphPaH@($g4iJgr@1Uxv1Lr(5B*&s+Ux3hji{V6$qcK?~@l zve%*877u_u8z&OrycldOb}d?QTfGa+hVU#wLg>g>>8Qg6n@E8ra%DOu2YoaQ5!5w07{Gct=RP&M~6+`kyOkW|@Z7QD3>W=|$wfkwM{^@pP z?qVZ}NYqh&QBhoGra*`USZ!?NXEds;1LsQblz9Z-UC~tV5DFwZjp6M88*?oI1Xh>B z70K}h4{DAC{hoBsjCF(srxHglO?NAXfpya9h0q96{3(61t2HE7J@1hv(I|}j`vr5v zqx`fBWFbkAow!C2^Lu)X)k;SfdNma@E=#e?p$pYid=5|yEWZk``wx^CJ65c)rY8JV zBfZ0p;pYSG8z%dm!Fl{>#vhI`Kk*W4XmiNMtyXh~%i7Opv5H>GHR_t!{RM91e#O_f zrhcn9(!64}DzpWfwj(jqUG5RKHZAR7rwzTCDs#DCxo)##;zxe#fwXXFOmXH8_uS{U zS2MYH@!sLF%}>pu^r<|V_iS-7pQwMpbFloyR|NfZqn2bCUwx~;@gro6_RgGtJ{@~9 zM;!v1-^xUc1q(r16krMkYHe0ku_JKLlxMZD#p7AUpSo2dWsA8!_7YRs^QN?3(?k`z zq7DBya)FwxPwKP)w$fU%b|_MittFuY^H=g==Q%XKltd35t!z2`{K%8eMCi*(O&XAf!;xTc71EDGST)_NPq{;3=BL8H*dGRx?iI=2NpuN zIoVZNUl}Ky;eFO(k8N!iV;Hl5lk!aJQQQ}-rSl!b_Y5k$SoC1%w{!KRciY(e+-jR* zp(~6?W%XQNGIEzCr(~fCPswS8t6VWqBdMCQ3CZxk+)D9{WY(akloSGY&HP||u1L|$ zma&olu8~;7>0BOc?Y&4X7hFlI5S&PVL6&r6^TsMUoXq%Kell z;0}T9R<5YW@=^C^REA0Po7v*~uhI4RZL~JD{~LePlc^Wo65 z5~d06%0+tDo8i~H%se3{PcYTG_}L=!b)AYn`{jHJek358c6Lxmw0rsm&k=GhgTGOm zBn#J(ey;ut+yjzw49?(@K0F_&&-c9C{{5`j__B9kGx<p}_ z!OK|V=(osCdph_$*L04es=P{bw?9j3)1i8tZN&|Ju_vQBEsX8HA07dhD~;ZDv(F2w zuCA`*)IaW@|K{`;8}0w(^na7eks6axM;$)>u1{N}-bKeDO?=Cjqgiq^MDP1ZNArFO z;3J)JwUqa;2%Q|VPnlVY=Otq4A)0p^*`p%>Z;$Z|4w3q1*{n2gKq8k(#Pss{zD0M? zC4zJWW#3}O_iU;@t4SJ}e`orCp8C5V1;4o=v)XS%M!x;-4qS}>({xIM3#zJ8v~O8$ z$^t60TzsAC(5bm~&+gbOJsfiFrF1LlF?^~NWb~CUL@tLSiMOYNzok4S8$SY?Gq|06 z!mCDR5;!iN_>>m@i#fFZi#a&AqEzKQj*79{Ptx7A7lmL~;{8~X!ha=!Ykf^VTTK@< zj;yN%?Ja%qk=vf_X^-)q;}{h%2Dy)aE^U#<{p(BP9wl5v3b=kmLK4;M*US?t8+qD} zS73}YWRf4Or%Px|ZaWLI(HqO(5&xYGKr0zwqJ*0Q&Yn!G zZ<{%Ffm)SE^kl+}uaB;v!`%@rIwpOkDD>jg|2)>ciArg-R27Ih7?xakD-Z#-|h7tJk>6E_FdpF<^B!XlM5yt zzeabboZX-dissDT`45TTIbJ>c`=IUszMmxlz>J>!@BuAoO#(to&b#bo)}hNjr18P$ z(bjU;V1SiCQ2sZ)5G%|~)l{5EaMh{6;1jXCtHwmMLPAyrxEa>WRfdf6(=*$^+{nFH z_xx8(Sq<^6Od-(edS|9#HbV#wAFg1ZRh)v#MvtaFh=~WZuPeC&5G#La0=Y_9rW2(=sj_@~6QDM4R!1=Pxet-GDU#Oc zQb|z>@156ys?*o^A@7Y3Yo<&SteIt@w-M%qe>eWG_*{U4?~f0N-z!}CLZoq`vtrOn zrhy!79vlcQkJS!Kq5)sTqI=BJ9;zWb75$Zv}yfQA!+Q*bjeVNZ-)=n7;ZHU;j4hS zoD*7{8gmNY2a;~O`YXDl?yy*24FpAwYIBO(9j-t6#!~4u=NjJ?!gHt1S81B-ANR)k%oy5psL>^6GkjZ&4l{KQk9dlpA(0VPx;Jm^K_s(c`J4C6He2_) zwNFPp;Z3L!iuv3Fmrv=d%xT4|ZVDXF3V-gtjVM$3Q#n$FV!nkdEqnEChzm0wR#$zn z?7vdwgr|<=RPmB482Q5k)Z@D7g3L;QXf-D5<;;Es_wAFn~kd)ew4KJAla zD=JK_fKf*wWoSlqTYH{ggO~=7&J)ZKTKL@ga@M92;Kt+ZsyMPd*?KwK5EXO;G(z8*_>5gUV(?AJ~`S$+_Kl__s+T5=Am)QvU+nemnMPK>R}Fy_uU)OV6dTQ1#dN9?gE6*3 zd4_$Bd%di1GujtW2zdRR_VpQ>&9)#LdhDn%eDu@#`u;$a7Q6X%&L=0P*x`@Zfwty! z-@v4}1z(a-RktD5Z`G{t6<$+0j$*I8=aXR}aeGRQIXA1VuZC|77r}urLGQU)Mg5zgnt1|rn67DOzou4G2 z|G|;g9{%(yrOta8bJ;Es#QuaPKgxw!m^Xf$`d?U-Djc`nO|+#@LA1zezZ}`cX4fyGLb0pN`#bj~cLzHtWkh z8o!SmaX24;KoF8N)D*|1Y~f_px?h-l`!dFkUNy*NG%(e_m|CYNy2E$CE@OIOD9FPT zB7|mfwN1B?d`VraSq!_*8fr26U{ALasWc3I`+lp$nN%+@T+jx^5^%VBhDXD@Gz1d+ z$KEemdm?H~s<_Y&ymM!{PFTo|KfLG3M2V56*4-9`>%g{#en^@x@x(iN_GA|DLTGa^ z)zg!>uFN=fe}P{4;Lox}V7G%zkc^sG$WTOtX0Ua}i`aON=9Q~B;l|a`9Sg%*ZMNr% zcCP0MrefV+S0I{Rs=Gg0wITXxV9ixX0N|eSTTz72Xl-FpGuvOo5)8xgZgcQqbDMp; zthij#Q=`J-<~;9%kpHq^@3~A9e~@ObUc`OyXZW?g1}!NgMsWmOd`T)`R@c&{B7n>Q zPy}?@&RvxlS%Fx&S5AF~$kZgk!Q$PyyoOsVX~3cHUGa-IYyQnzr9-sVmef^@CXlU| zqh^(?)Q+fm_mjJAM&Y^w*?i6E+vxkPnR5lYYsFfyQKQM@aw&rt45P=K=&g`xZACqD z35?n029};a389b!tvz;7*xaU*~7x^31+42U?Ae8!b+BaPi$eHCni2LfK`qcXw<# z28%uQSJMl9qjn+43gmC#VSH%9_L1~ph(3S%zUWE$Sz^JP86+h}vL6ZXTk&zv2B@=p z!WzL?e|Psh5Z@BI;hJ%Xp?^={sb(%jb$Eg#wopl~^MUCt)99I(i993>``EY{D^C!5 zdyvi@6c+=}gE-3eNqlSmP}5~ceUx7%PZBr21_f(y`UcV%;Hi&>7`3qyM94)WxB9Ne zGHKrCzG9wz^j~vrJ7ESTA6s&6mp1%`$jKE_P{21Yx^vtnoetw(1g2qGeU<}LOk7c_ zhxnX`M7?SlceKDAn*hAbog_Slm?)_68Uug}kU3~r`q7DEZ*MU5w$c*`Bh=hRJpCLB z9s)sfnf!cj+7RCEk`Ei$C#0d})Kny&k4N4;2KSnyizJb(JR#%)8>V>G-x>?9Y z=mJrKJy~At=kxyaHj)NK(5;?ADYXpn2zNx*9wUtQ4_%Y^4ktsUvL@AP5c4lHjT@Mz zr<`(~w)EcUj$R+O6G=zig^8qpl>Bw>IzA&V4U2Kb0M;&K_PD0y8Z;~=snpdCpSI>y z3@j`JJS}lYoC;J7P7*m-Tn1)s!{J?w1njYPb2u`{Kh(h?V;qW?|NJxAi3=XO{u@%2L zX?UN!De8Z&7;7o`4_k#-vfm$mH55;d0a3 zp1_AFNb(ne)5So!+fku|yD`RV5&d`fF7Ve6zH`GYBO=f~8TWq2NC!Ab(rM33X(g$5 z<1(SEmr#EX+nLD$G13cK#+9bbo-u*$1=Rw5C#L@?=&id)EiE}QOW0z$o<+@9VJBxw zZzrm_hA4ZX*;`s2D3R6jd$J8oT3hoOlO<_Gu3{8FCBZq`htF$o%-?~iSuTpys<}ZQZ`Um${Mt{-IcMJSLR(}o>3^cW-L|Ii70Py-;sbq$| z-kOR}Br#V703p!1pHWo>&reM2j!zpPP|#4Qp5|~{p1*y+(sm3%X_f?do>S0np*Pk> zs2aoZW0G^Pe0zkmvtf$M%qemQzSmKehgdbwV<;n;lql)5>Og<=oiURvn0NsybPVRI zn{A5vhg(0(nsUi%mdNA4%g;5^bl}SWp5U&h2R(?sp9;$!*`rM&o}Aq8QK+O(&_|kV zOgkiuo0&a1lcwC-79;#B+p-7sJu46h>w);w%k27*(G%KcYdxEJ1RS7xdVk5z;|KO* znfy-v%qmOyJK%JrWhGRd8ny(Ox@eg*J!YnLuHSBvd#I9j#oj+>^npn$Kw2xiBnb_ zX@=m3=ipadNwo^Av0Y@cL9cPyrHq*}BzVOERH6Z$dIWIUL+V$d%LDt9~zK0JYX&9v&F)# zE0%I0-W&WOFA)7LJ2>hja4pn#c6XnuPAA{^&E3Ue(c!bL>0b1g4aq_^jmy+DaX~Iy zC}`ao%w6{%+bF)#e}mpwG=k_vI{nD5RiIPqaFaF% zn*ozdZOA{MFQVg8)~50HXEa5n*B~g?RyaeST5aX+w7b4#R5*+idGu@!0k z{i4Cw4CSj-ZvRj>!P+7OmVgJQM^k8*QhtP|lE}{EPN^-s&r?hp1kJ=k5ikRhI8E%s z&6P>ISvO{LHxI)ET-QXuq!MNP2XD;;;jO@}klKRSp9Thf*wh9$Ta+cZ7tyoH^Zg0b zcmsgr!J~3><-nMXn^J1?(e~bedYfi14{E?bmBGk}r}rl7#aX8DL_G*_p%*<{j|YG5 z5KeE7Qj@6)1;Zqb9vWwP;xb{XA4TWau|`1*K^%s+rNrJ9Vmxf0{yy#>pO$aJe=tgq zn7`2;H8G8bxG1n1%~tsO1EhU*@PFlb@u3T0F3Ml$8^4*ykRM7y+%9_Lq6>J7HE47B z`m1x7NiRvhr}7gT70Wnq;x5-@5tk;zKw`6DL!;Xq14%a8o-I`!uv7}>#2mU{`@Q;d zR?wIVKZ9UO?RW_JXUkUM#A#K0FoNz37*!A7$`e z!p6ernr3F@q}i!PSxZ=y0Y-f+wy9l0h{+d@Z=O_8X;_~BVy%?lq5LE+5Ji%k^V$06 zK8el%&}j&0bxSBy<{i8KZa3}t^`eq%eWlD?6O3~hzS=tM+r5$*4Ou_h#+KeX;Ns^N zI0>`|rT-s(oXqkk-M_v<^=G40Q+$##Qk`N0YNBR+mTh=qM`GMTLbV{Ku|5kg0`_K6 zDaroE1ih`sO=ze{goN&<$a5C74r8^1sB7V$Mg=ot8uAvVY zbQ2AE-`JJyIQ+AWk()x$*t?KBS9~9z8uNFzhOOacUc_GFC^ONDdb%6oJDQ=s&I+nO zI7pQ~vK#F0h096ky$(R}T_G*k^~POQWvGCDdaI81uAa&)OLzRJ->!ESO~d`9PItwH ztw8VOlUGP^#Ai!DzU$%tPyWb^iEG8&VDcwgYb>ObPv7N`NIskGPFuT%r-VWlr^Q@MwhvRh1mDH-sD$c(oFzc76MOoj@cYB)Xkq$DViuL|z8NB5d zFXS}dyIxVK?13^(nF#Y-_Ddxc;6GhUnWwL%vFMGg|6vuM#vHl zZsI>Vhbk%v*k2mSdB%*CVDrWz;mk`U(^ zdcXdCr3QD^iaX&ck%D@WJlR3xPov%-Ie}rp^p(t+?BfzA1UKwoz}H(Rk6=O5hd06a z8zXCU-JX1d&1>3>&$IkZcbU1$(xTpeeRYc@OI&^cdDxoWKq5AM_@6&e0|J*9Z?>K+}>U7Mt-jn|mFvOhnz>>2(&PH?1N z5BBrnXi&!Vq=DfV#C}~1f#93&u?^2)Vpnpz4>d&Y#X2AA<+^jSYn;?h29QvQrSK7@ z0>d4XPi_Z3S(AQoB%lWD`v@|WXAn53s)!_;Nf`6mb!ufb`o8|C7nV=j!QySODu5*V z!>)4FGsxjuo;{JpQeFWW8ESbZOP7b+{111sRRsa;#*s|b^qqg0nQcmI6+PjAJ`$nK zZs1PycbclKJ>ekI4izfiMLUDUL>5@}=1k-f-sf}@LL`*J#-KXpnapnsiHVnw2(#jV z0F!9DABimBu&Eo+VqecSVQ)me`IAu3@zc+gi#vq7rbq>J+8HvhTc@Q) z9a#3~A%{f^^czoJbtM*ed8_~@%xa6SKf(UYQ$j2CDBz)xQwK~z6{k;qK4hQ`1;3*R zFr^i^i2*TC(UAvNd$MX$nX{4XpCjI%_aR?;W&aRaMRnWWoE-QyAF1(zCs z6l=(9WN@&0aP)m)3^5Kw!h3LJ_OOE&YIV-H23r+)l z?Cg>Gk7L0pbs+X?C$wp}-+pV1+&XC0#_Tz!Qf3!%t{#81fAhu3yq6#nS1cm_IBXII zjY4At7xArx5M^*##s*FY4YZI9Nbx@no)XhYRDGb=0vgl1bQT)A)xh# z14$8Y?Y12HRExfr5AHk_hCrU*2&bN)sU`t5sS`XhIf4}?+o9+K58syrU*sQfESd@f z6Z_SRIOtG-v)RaTneC-h-N+4xm|U4q#=JnF5XoJgtql$fW9l$qqv#FNSvl{c{ z9oN|U)Nw9@t&1>zh!{O#YgbDp-$fR<>#T0KGJk zZN_{M=EVh_@^XSeh5O6T496`5(B`Z3xaM7x_x^}bOhT;8$IgFQ0D3J+@VMUTJh3b( z9=G$g?%CO!W$G607*m!IwD$>Bq=|b!ni9;;0zMWlyMp%-hJaR%AB;iox;o++1Y-7V zQtW*G(DgzVm&7z1iy>$)A=@&LH=3S+ifh$MS^7QB>_Jh5>MO%nwopJLlshb}L^k(G=U4kF;AmE^V(Y4~sQv8Ga1DCrm%Yb$<^#v-`ZM`PV_ z{&QO>y*_Uo>|6LSeB-({i5Bk|aHW3|F74jJ)t4|YVhPKU^@P*Pefe%BEM6O($(U)v zE`3#RBQmAj#Xlh}A~ePbwpkw#`KbkbeP_h16gu3+oH%egX(|Ix-aaD`RvMQ~+?4HF zTn;X7eIb&5uv$)(?QjWiVow!%`0gubq+bynOb4RlnV#>@s0Bc%_tl4BJ6Cw1lAOHf z%u1-4wP*M7>xVNXV?;x1;-CHxf|1o$FneO+-{F42GfU%XKO9|%yvBor#8*P;Osr~s z< zEY63j^gtPU*au?Prvu;FA59l6Tbp)-#Ae^Z_*eG9b${a0rJ=*ft&j8z z3F`Z1uw~u*KF(2OS_yle*HaiT7x+A~Km^5*p64sv`@&*DqSOH=$f`v2aYfL121B|O zp?|Gqx~pA!Va|F1-K8|(=NDP$mOk0P5qHnvL_$bq0k*3(0@jyrU=(&21ISSuV}Kma z(dy#Xa=K&-J!n~u zGT8Dt@R@W>DB6Gdgm;>&H+yQBpD;|XY5Xn9IO!Q-j+a+OqfPSQF!O^vlZ#%n1)+R- zvVv8z=acm&NVEa4>qq04v9qwnd=c(Ore5o1jl}vU40)U$d_eUkw97ZoZyQ9?RW&z% zoE^UMaw1+V^lC6y${ZAnB~6TJaYX!hfS@>ALXa}TO-%6mQb+ac8S3-TI&YS+tz`?y z$l|a;SY(>n9trCCkS>>-!*mjk^o9byXwx@<-tLY}6lNZ5=9gc2$UVsm>b=aLq+q8~(+ zxE1-$L={gZT}8wKTe1S#c+54uv3<0a#0PN^_Q?#`79EBua{iH5Onp*%U18c;QU!IR zeoeCw-ME(}j=a)ehD=ja_2{6#jm$L)a>qPu{p5VRc($mTxqi!V)_WmFOGWlN^&l!z z)Q)bCj!~iv2wY*hEIZ@KWI^@#p1gdsi1rLbG@Nl}cUQ@kC<6O@wisq;`iTk-reixQ zHp%>|-`cILp>ik;jvx-m3VmUUi=cnL`w1(+-<$=K9lzP@k zSo4WJ!{C>p$j)c-C^z$z2U(2Nq0;po(yy~0n5V&M?+?{za*&I;O4W{+UF-W$k`kn1 zD5x3mNQ6yX>hC10t(dV939W4B9+CV}ojy_Q?IauLa!vL{j8TuP+kG0ITW7XUG5r_S zZybD4&@2ZEfITWFz42WaE|}e`XSk3LmtO|FDK;@p1W0ro$Bc!srem6b`;RAV%Hqi& zca5Rj&YcgSWf0E7!M%PM*?u*VLYjerZ43uxzH$E7I0+uSe+yeZJ}CH)hAU{xM2L9U zvpf=OGRHT#fV!p%sPmy`|C#*&Eq$t}AZnb@-t61W5_AG}jZ+rrc^eixLZ3MbquFFjywc$*7Zf!pBuqqCAnN-T2QuvZQ`&J*JFG@=dtx4Cu zr;Ji>KOG{ulR!yy*ay`-zoe%#p&YLGWSFSw>pwi}PzE%G6_CmbByU3Ya#&PWVWzM= zpr;9F9rHacEVjIV6Po=Z?u!vTe0oU6Y5o;3sO;_Lc+}DNrL38CECG~M6ZI9x@VERV*zp-*%rN` za~3oHZf5VYk0g9~GRx1X31#y|0&#_NrK%Z(qwk_%3>n15I#L5f?R+t@f_sTMa}O1w z7h7R4CM$FMahptz*0)rfF84-TiC$2PIRn?T+0Q92iUsf{)T)!OtrPkSVsCfu>rWZQ zje{dS(2X@N7Alj8GEX+GK3HV0b&+zM zFG^*mHplfuW2X=b6eF~W_vJ#1B8yJ1-#Eh0dhw>+$G{Yc!X=&y^q=e9&(vnq?Fc`Ii zDPi)VmPKpaVzNSpn9R>Mr#ajLO7sj{1>x>Nf`pq-+Aoy|7^8`W&b(|IFN%LBwf~^Y zSNXcdv862qXN0f4^Y9BUJp*H3l3X&_5BYX;YE1B@97xYOK_5Kv$|~QY9rj$|QX9)J zmngV&9Q<_4*aKZcD`O3O;yPz1oNSeJ24pt6;&+blGeAC9h+6zlQ9?)ckI0?|JJ)XO zN8V&H&}p_cj!Wd$G#Eq2n|l2$M+|Wrgd+@t^W}$HzsCep;T@(O)S21XMcPhM zLTY<9A-(;itJ;fTpM2Vr;#tWhH$Ql$9ly|uJz(Xzdsm;7JhRgNoZl`s{dQab93$;mvG}?L(!L;o6xpI zJs-LCM3~RpZg48vDO%jMz^G~o?ds}0LsvITifz--`B-5(3i;bug*G`wT^3XOgB_0m z+vRIlAulGgI#!gd%JgRIY^7=6s2nyX*+^dEeWkbj8F0f|qv z!K>`Q0u3zKF_Y~7VMhOH?l7!Tge1nNLdA>I)pT5lu;Xf6Jb=`|JMUXgTJCS3sy*@2 z((tSATVX$q=z4GJqS-n41--c?J#j5m5g(lg#F*(#0%b3x*WEUo7b*R=NXbVp| zYu+cX+wKIE*2ejPdtw(z1&>yPy5DLRgBb0fc4Q>uX`?iJYyVIw1bG9Ze$t9gZ$3~4 zK5!qqd($^R`q;g`9xJwcBEE8t@7b2o7y}KEafBEu&tuz90)}Rm)d= ziKFKPIQz+whU0YD)6L&Mg)~v`H1K*nAGaL0*$I4OcBiX{I9I>LOaCVo(D)K?yy9v}#gNVJ>t* zd47pYUk;z~iprf^vH6RbH8;DmJ-?L>q?JhM2KS&9NLIB#j+#~c2{{DH^p!U?#CI2L zO0z}2QURIwB^N6p_gmNq`}pZO?IUklxutY}4_fi} z6?X4W8+;>ug&Y<26>L;6TIQZ6;sP1?&#C7cI)%IWkJ;PTdHiW8UO;qXOW3UrFJ8EF zug!o8Tp-d<*7Invc|zNyGor`~9Ba0f(bmQhE^dIZ(xX?n^w-w+ky}o*rjj@k{ln0E z?~7sTSsq2E=;R!1$?)5e7!WZ3Y}`Ou?m{u zbP>HkDFu46g-($Yl349qw|vLw^4f|1&~YEy6qhY<5Zjt799$!9t(qz-!u*5K3qf3( zEmz-Pb|UVdq4L8rK|9s)yI~;Ye@0GFE-{F}rpVH3zNIUQYccTIvgrxMbNBnFq}@tB zXF!SZCNTY7O=~WOv)``93P?(*^JV7t!PYgTS-z@+4O4fY(#+R?7DyDYxbrQXsb%}< z-ClhxEqb@Bx;LHMHMv)-XzFl)rbE{QBVF6RrgRjT=2~O+V0XIwhUfJ_u(gy57C$*6 zy#8WDvg$%>t|gOYhGlNp05CWf(TpS%TwklPQJ*Cvz4dN~cksjC$%U&Eu~Jw(VdZMboNz1cU&9Ftk09}quX0S{ zip9lGKbzJU-LK5J;=Ba3PMm+;`%R>y<#oWW?-Gxk+y@KH!p42%Qjio_r7G?)vq1O( zZ3Q4O#%@l!3)`5Fb{v)nGNE59a^zwPH#XB6Ik=wi%DvX)$vn^eTy@@+aWbtvZ1fRD zh7py5bfOLYg$tc_B6*_9-o##KL%LnK$i^*f(i=kpN4`%x6r{}gJAYkWsMV@l9XGip zqL%%)O@w*>PG^anPP}ESffiy5iYwiLLtYN)Q5{HKY%hemN-hGcDc-eq&rxN0ZNwj3XK|RUC~bg{^7F5D z4U;nggeimM29~X^N8s!nwKEo&dUN6xe!Hn7l zA3ZqF^X{T5J-|6~MjFcqDS0wxovRlRT2T@{_m~6A7ATqxSonOS4Wv>Pk76H)KqP0R zUX1*$$)AREA=4XjlXD03UMnCp!FS2;-#D=RjW$2px)+xWus2+HM5@P^6as#xD}T=% zhjV$V^F0Vt&>6mWu4+lgh_glAc!Wsh;+rA6VY*FcjY@tO!eL*HCgLp(x8bct0qSi6 z8ldbQs=J9g|2Ek-aEY1cUN^yF#sZ%Dg@w%NYbncJ$hgVgo`d(ABdWvF zj!q{Rpr}J2T&(6th|jJ^{kAc4ak8?NBrD-aGMiNHtcAPR{pa|STAV3I=4lK4BgMpp zEa?KpVde#-iSnr)jNLaj|s0 z^1uWFk!KyndrvJ~h)R13afv4I#H2U3y${*5o_t1Qfr>Uy^AGqdhUXgbg|Gcpe$;hT zB~Vc;U{#Ad2lOBmoFf<=V5M8KKiG4uni6iRguk0exK$NGyL4_A-09R3B5zok=Y*)*?~f# zyGJ@yYTD3yu@GApSG?0FX}yVQR%xK*ALEL@vX-d4ygbN%OACi-n=781RKDZ5K0~sc zu)O=(MA}+#Z8(r`e<6>0YB-f-{Y-VUsZ%xM9Fl$i)(o(wpG`{vDu|Q%o($H#R-*r8 zLo65pd_aDUdCt_*lEz(+Ydgc41z znO%oFV;1Ca|5x?+-+?piMYlM=^e98`ohNpFMX73&LNc+=^Luq+p5g;Njx{hux-xaq z-`@Yp4vOI;mt&vHXMC)Za1yi3tmFbtudLeHWZ>(Epo)!J2`iAgT|K9fUMFD|Vjtx{ zrIY@fZwyJ$6F=%z=Z{enP~0r-az-rrWbAz0T^>>axcBS{Clk!JM&7s^*K`H$-r{Wj z$7AQ8yQC+;p`rZ0#O1#!%+s&f|1G=y_fqt57)`%H+}s{J`keNt`Sg~}t~icXl2{@I zx*#{L1gLh||K}`ikhwFzaXc)!VDjwrD*!@O!#;wF|1KAG6@1@R_Cr*Y!h_31nH2y1 z|GN@91~%x23P;1%*4LQ(r`k8PevFI}sN_O_4{t7>d;>WwyNmu?So*(L{SYb)D#PDs z2^mDX$@;Cx}40ewdV-L^d`uIQ=s5capy)z5mmIeNr|X>tDYix)FJ`MYy=MaNc?H;wikF&Sw*j@!GgQI{0uv z(`b!w6*%FwW}~$Gk@XH#0u@t9WkuF0HS5s#l|Hhnz83150ehBT|LmeS{vNldQwTSG z;{(2t*?yFwV&gPEptd<9b`rFAoi#B#-;)+kTYl<=?g%K-#=zL|>k=O!vU9vmg4JG? zE>L}-N~UZK<9j6qVl@mh9J+Z+s!Jqib{FJhM;wkJ;OB6XSQANA5eijJ*L3dlgN`-F zqX))RNNuwfI%E(3a9f)D;977g?Ox^8AeY^z>!jNZ7g~H`u8RffETWOe05rHPS*XE8zd-(d3&N5jYXjFo&Owt!89C7|5D}>uqrRtt zD>!t8nO?ql)11@Un-uuFpS73R6Ig(fv;U8*ci@h*{ocRZMvdJ#X>8k#ZQJHFc4H@v zZBK05w$mhyolNZf=l<&Vto6KsnRU%I=hpez$Kf%6r`l9gkg0Qlm9!YNmG(9%9*^rS zbrq)Wj^*)LIoTQ^4?Xnij)63Zx1(R8NbOy~Cz}Kb>7$MM{MMXWl;T?vV0xKq7fAVY z3+`JL+}?VGFXS^;9C{GSw9eQ!hEV*Ws(x6SrTY=jndtmVU(tkjBsT{GA$ld)-Md!Z zM-Pg)zqOWUr@O1>NM_|pLg?JVq+3KoUBci+VKgPVgBA8nsVC3H88NxPR}0lrOIo=? zpKn-N8gzyC#TRGujNK!6?ih^(W^z-R<`4XuHZcKdMH(>y;(;Ye1nNAj6Aju35yzu~ z&wOhvEvM!oQy)njDrgKxXl>rXsMLm-oXL<*mQ49$Jpvqdz}XIs^Z{%kX1D;o1c zc==6ZvN}0`N*!UsD0t|@M5xFm2Tf?3PiYT!jfWro0nR*kD&QO$;J;pl{!A0a<`|}hfk+o`;rIDqwp1xIh}HKvBalI6F7ExbK&ZV73=Zwriy!4 z2uqoa(v1g|mPUY-nd8fw!ON6zNj4*mHdG(MkAN!73Q1lNZz$SXndv)>fm>Fe%VI*v zrT1Wp!=th&L>aGO$z3Xc;TBN~(B&}Np^%*k^o&d*Jf${d_?7*{2~HFP+C5 zbc3))UX|;2dCA=M1|b9CJ+q43U`H-7xF1ee+7CeiMO7+PRgI(P0g)U6R&h}iGp zu(ZXN)e(l;_-^dIKFz)8N@x>`VKTk^_V}!-CeDZ}QNKWR6Ei#%hdty>e)QP?R?hgs zAow~HJ59k!*>BnN8-H}Q{66(qjqlII_ipSzn(`l;Td3v}N_j)+$q7x&#d{~-F9$Be z4HKGl@cX)=xXIaw9)eWA@5f@HI^@N@!c%g7+Q8J}+)-(azWt?SV`y>N2*AswfOc{n zMX+p*8M>p*)6E*lp>13^XT#(odaZ6Cj;)^ME zC(govaClS)5?y+Qb=w^)0oDghcV7-;`jwEeoJ^nR&Kg!NqN>)@dsbfHShMvXPWG~S zz2GI|Ta8(`D6iIf!yq|$OZea+O5aw?5;nrt3#qKGG+|J~l-w9?V?-#F!W~pI9r(`8 zJN||xI4~omob6^Y8lXAijJw-PBHmp<_I_HF^u5xQ^?NyV#NX7PPGxM~xt>MfXuKsk zUw{+$W6#uz8Gowiimsr2!A{!K;S7JMh)sF#J@kTQgkREckA^M54<85^Z*zfDz|1s&0x_}?fgzw)c4yN`*K?v9*8 zKCo}x->6G8xm+NcF%WV8)HfZwMCi7TuouJt*~^VyBxR!xQ$UNH8Io0aJtIO$_#Z|b zPF*uQtv}i1&e*8j>;V$Bg%>cacZ^~7|78J=v)&1E=vuR$+G_Trvg-)OIfp<#GOYJg zkMUZ&e@Z)yzwduq@OrI%fhI!2m4B*q(yTLv8$YQww=AiCd_8OTW@ir5-fC>wg0pvc z56R^hJK{TMO>ehSa@a#ht|XllrzX13O~=&01Au7c_Z;W!i2WmAa- zra77ML}&GSB~AKwnCyM}g;X75f_>u&NZh@_c|A`PzKaHJAbYcWu);2S-5mc?F5F}< zhzR}m?mHxaxkH{?JYZON)ze2(-H;?bl!iIL)gki-x{+!AiSe6|t`z4%aq?{T^!x6@{G!%W$&(DP@Q3G5y1*FQ!oq0u zd7Gv|Z3p?b(UBRG3@Nrk2&THZa@C(y&u4h`z+T=PqVwUA23v8GZ2V%%5YJHZSfc zB#8fdx&5s2MqX-S2#kideSKyry{qPDxk!bNnr3Pa56uyQq-NSn5B*3iPf8{L;6)^t3WIdZ&KXiQ zosRBy#eH??#`slnq>O(P-QZ9yYP#63PRu*{oh$ zP2o;2lZ)iwA-Y2ZyfPw6;b?L_Y@a2A!*+*TiZF_9bbQ<^)05Ldd9OTgUt#*A*viT& z{|aOK*+|cH2$_xLG>`h~J%*cXuoV}qG9~v422%55CLG{$&X39h^NUu>9p)Of$T42# zZFxGtEs3!ruyx*a1$z^lDaZ<41;kQjs;fWPLSI64fA78dP(O)JoZ-NC%auqK8))25 zO^b*dh+ahVs7y?&Ri=J4xBx{j8PPszz^h(oJP}%`pg9tD(tHyYC$e-;r`J)oeHuvJ zcVC+cmTOY_D(DfQ6M>fnv00?&;uCWuppyd!VwqWKDVToDh;rVJ!w&~*kl}c0u%KP! z2Pqtklpb@-3*sm~*&noyjuG6PHOD~Llia7~7qD)L3{7U@oR4X-6R3oIj!dVmW#!~o z$zrrozBAn*urDTaWF_}Eq7+WuUCx%W@H^BsCi`?A`7~E)x_G!)&&B2w+w4o&6UHc) zcy`0@68WhVEQ_4S)gI3uSU&Wv8m@_o6KPK=Mc7uAE`)a6{jzZzW;k^8SFsX;0-F$E z=rYP`GpPD<*_NdM2M$mR(rjrp%JJD*+R-Da5V_}g{vYy$tI=B;D1NLQ2)~7YU zffWIDhgy~|KqlQ?bV{t%Y&=*lBGuX3@}jt^4MT=Zxz=6v$3?+6 z+~cLWfTBAMCyy6j4i%H|z{S8rIdK*9pQ@wMC)O<0htz=OmT%?8dP_JqmC&8h@bc== z40@eH0m?|6=krqbrG(YHIaZ%Peeca5LcMc>m@14aarLlh*o3fTvQ$+6DKnVr2o;!ywYH~KO5H3q z{c9ot3=XC89-aT01)$$nt9WeCM4SkP>kOu?inMy?k(=3OH%+Bz&`w`hbOO@nL8xcZ z9b-B$%Z@w(Uw*N0$VXMpopHNWQC7Au8O=JwZ`xlbB}FY69v=Ooph(w*vTgWQ5Bn*8bv&9&24rNuCYb}Bcg92p%l$07+U(A@rNVQtB$}$@ z?5ETgJi_3#0`#SL>9IzIGwH-0fmi5eIYm`?s@jc?qzH>~9f_GP zRjTgu`N&_kvqZvzDTRU+`#2<0zY)wwK-j9Jsb8Y$g7Ba4#tnhH@j? zU3y+{2`Uh{FGHyJI!qY~xPWSP#8}#h;CbTJESAKhMsDerVLtT zB7nwWT~n3rCIWU}vZiess*R;&M@+j?+e7GemgQ$uzlI( zXgiZ}h5Os?w>SLTK=XB%aL2JEznXPz!HJH5KVz5S4-S6=syyyYTl3Bh(A-drm5I;{uG`-nFRLM@aaAbU;W{Q5E;h(_OLq;f2W z-*@PEd}M%)3AOtNGc)7QFQ*a`mg-rHv+d^?11Z+x1YZw04f*wL{ep|#g26kEBWD~c z=o)uSd8su3Vx7*FnBe zzG&!aiperZBTT1eJ@VC5pC-HLr7;09N7q@7LUS$fjSx+{Z7J&PEuv8>bHby#A< z?opYCj>{gLF?{cMHpIUWFm~WJ@!a@V%>^b><3q~1&Hs_LT&s3DK;xD6faO_be>2+T zjN3IKu_91du64AQf4Bv}_~IYBb{9K%B6dD7ai`2Gk_V*0GO6Of?EvFA48!`v!(|u| z&+a`5Qy+b=4uP=TKjW@Mp=2l-Y1r{b24?N3iES`nMf96|fA3N(mljIg9M1_#Ijjb) z7ELk@g|hw}$4TA~}lLOJ;P@Dy$)~-O+$&?XIi_JeZtfgfy;1adk>;Rx8A1K5dXzbA*R(u8Pv+*sPbR z!dQBL@NhOKz-Hd^*`cnhkg2RAsauEzS{9$veXIx(E{*wE#D=*dy4gv#3MJWHP-@B zU#h;5H`fR4H&xA^7y01u;oaMB;`ZmT=F4N)7hp#yYVBn4H%gX56+ouRb+}TmhRn5X zq(}6pp$@G6+eW<9>&Adi1uub1AhjttkJrts6#mtIrGsegc;Jt*g&Qt(8ED%(b?@dx zs*Yc>Jd#N20%UGo^LTL%1Oy|?Bl;Hp?2Na}|Ez}@fnDrq>WnPQ;c|7^0T4t;x{lf z91;4`G$Q+!n<`b_(B z{>`$%%$gd!G+Fy$w9x~tjMjA%XZq{dL5ZXuSZ-xt<9PSDl?!^Y7Jm{(-qcX8TvyP7 z)NR^qB3t9h2w)&>^&|Q@%VGE|9~58Ip`s0OLVErjDqJMhno{v4C`&+S(lgp1RX`UE zSJ(u)&g_;TJNf*>N!>mki-0+){#c>&N5hHg)n0i4fym8&^G)Kn*1}L41X7&SKS|cI z4(?>k{gl|rbj?>o9qP(K*5B@Ldd1@_rv`VvuCAxM8KJR)l#EQ;hqNzQ(;~4S9$}XuT|x}5<4F5#S>GbXxGQS-uG7fstgGe;-?c4V zmCML=KeL@Y5<4Mn63JJiG+IzV@N|p!heVgEb(8Z$G&_xBk1GV8s1$k9169j}S0ff# zKdM+$@09#d7m68jUX$Y_U=HSy?`&5S4LYYgs*%@{e5q4?={HTEXPxMdwL+^Rs}42K zc>YIM!SmR|tt$kd-*~?i{PKZRw6AZlaPh7`DOGNTiykH#)#pA~jS0nP$$z{^^q=y* zXtDeej%=Y9L`uXC7?!Ed3v&X9zi8c@mN}9*;g}dGJ_TeiYql}f`H*{hX&dIvZfh6F4HOD=S+>UaC2t`qn?0*%QrP#JEfGRzO9{x8TdRl7)t^RCwh}vhXuOb>-W3o%BRoDG9v8$HoJrSJ}T#byWd4%nck8eh7?x)|#H#-Ee^xQC!mdJkL&MTb4_xa$WZiaXW)y{mh!l-NOLsJ&qv- z`2MN!>p0iL`pUirOq(^x^W8l#nZVT+8BCx5=zGG$kj8=x5gLzp#BD_0{&0C1>vCz- zeuvlf(jQW_MX*z?BC-0^O0;w*QTMV3c;{hBVUU0N*ks=Fo#EOyxMaPwQ6K4RzS;lX z=dCqu^ zewHU(pKc}~AbkCDmlhlP9}vq*jn4_Y87xCg%i*dzv1x}$zHwF)A-xxH?Vbro^HF#g zhdS)vZoWWmf3q_3HwrHW+j}ZP3Su4QMU1!Vu5u`}sAA?z@?hkgYWUtVZ$#$Ze_!z{ zt<{+hljpg1m+vI#Nx{G5rg*r*g^uX#VFp3*;4ZY@{0~MOMhd6|OeMr-p87igyFsm&sMgtPM?yjKOL2>p4*+Yr$HP% zc5(kg8i!bUl0eg2hv1s6uw%Y|$B@=daOI-mTz#E~!fmkW8C7XzlMg4^%dpb5WlnyN z>#tvm8+pG^KWyUB00#mhMZ||NIoaW{KLnu_Ole6#k@*)WKD?P33pB5bO_9OZGWjN` zJCV;@3ppMJi$VReZ-x|QZ&*yDTbT6Q8~MES=1~@JAb-^=8+ouVEk46iwgNCUPv1M> z{$O1}Vdb#(HuPBf^UF~Qj0uKYepcyOez3%lZF-f!3&_#H)){R!#$I)VM}-PUT=`aA zbDye&dD+B{>3611DIC>@=v|qW?dm(_Iv)+lYjs#b?_bbX`&5LA8?{~mRTmPH>X^X% zs`4sxAi*s3Lj1Su|8>m+-LXq>ln)<^xc=rVEiEQDNBzl27%q&tTI4S^rUpdEM8u;0 zZ1$w3oS?z#n~#k0B1G^_Utdz8Wfl2w-X1gZuWyK(95IRDsDGL#%ty(ntIR%`%IyFI z0vGPC_C19mM?=_>oipzgxy6*UuAk{J#0CrbxX3Nf2x`H-afDhg7@JN?wcMG=1k`)k zK9b$rSEUY$p_l)1lf|e#5Ce^*nbrO5?-$5!XD&WtOhk&|K$e%(=G^$B8Z%5`o->61 z%B$jM%B0i3er0|pzBJrDlp1o}O16SQ(ky3sJ$N9CSRr>Nc~{F=?O`{rS=vWaX0yCB@A1b^|>>BfTR?9w@?5O`fNEW(jg=uE1aYUI^TJ8`RtCs%l|Vz+2WwkZ4Y z=vM)!)HQRLro4i34bzX_v3eDPrQhleKhyeH(^^elkEENsn5mLjs+b%;DLr2r20dfq z@QG;YuElGu_Y<_^()-{fSR z5t}0;X*8P&H2a44*G>T1uW`UKQCpg7-KCTKM>)NAWSf5TYV93cS?fYIt$w_5h>h;^ z%Pc02+(wsoQj{?{bumPxjFK)3$=B)D5$hAZ3o@>q15ZJ6lkXHX3|^HAiR~NV3)|ba zAK!^J3qSu!m#8zE*SfDp>;QjayFl-3armz0V|PKjNE(?4d>rOACWTv3~x16Yqe9y09`d2JZQB>>ihYv6Amk3 zOo{NK|9d|u!W~iirLO@+Q<>8z_dU`UG1V%tB$tB#j%S`vTW1-d89AkeGcWQ(mhd*X zjynL}oCeZie=9FHUiQBPjolc2?g+Cb9`*cM0?@rY^WJYrPH79?5ia}Y3~LAu%r^P) zM%V}){)w<>XQ=hQV6ZPLGYs47c`d@Hx#uAOZVSE}DLS;d(It&jwf+NmiEG|eKNeQW5sH9rHr4;GrL&5wudHenaDvUx zO0jp1B^yA+z*v4B476!`vlpm&^!se+EO~fs)`>|rsC$ujS{;Eav_Y}GVmp`oHNls=HHz}W{o z2La(h&P2&=hqnM~Eua5l4*v`x-Kjej=RbRBDP;XW4ysamomBg^6(Mc z$r~F9^d#bXPlLinar`0bX!dFqp(CsvU?rplrxl?MYen8A3@1vyv)(v!`cS-^5S_>b{v@{B~{G-DN~kSC_rz4tr|5onOms zim+U#1gBiZD}b`IFHC(=E3p2dU#pnB<;bM6Z0JcmJ3L3cw||yz_nw$Yz#9TL7{+aj zXygpw=eS(&qabVJHFZ-Qm=AbcSP>AE@yoo!PV&2%?cde17fjbeJ~>fX0y129myUOt z!P{H#ZV}b8)MTMy$ct`zp~G~qi%&O?Q#U*9G-Y_!=9ZYaRE;Q)G>GA?Y`T3Cy!|Qa zQFVQ|qJKTjKyl76Jd)$Q^?n%cN}c7S`4&Lrwg~&Hku7Hh6K_@1cCc4ISRzv08)Xj8 z4Js9h$b?|hqol~RVIY{Ak$Ny-eNc|Tj-h0OsunzO0k}vD)}?pfEUTCcF!ZAA@Z9Xl z!IS;lnMYXnOT=}ZGTx7aCg<0e+ZPSI0&QnxlT`}>hBs2X=yKZ znxD(%ly00(E>*VP4_@6Y`Nek%9GFKkc+v04;i1XaF?f9t>-CwM`jhSTeJnLppQ$>^BV=*tRT37X`y6l@Y zc-$PwC{Kg8hOJiXiZY$Sk4^B;W6M38g7L@YvKuKNgMLTq)s-V``oAJ$%f;&IYSyDq zZ$P~PtKj{LNsk(bGUj$<-`3O4@Yb}ucOPDPRp0OR9#{U0)92{&{YRn!zlLD@0*YDi z(o}SAzCt%%tKY2aCf7_rtH4S9rnjQ!BiHlPInLjoclbg|OAN+0I;=G-eI%d3)&wBNXI{U~|Dbx{GtU)TPE%>>am#y*3P_W$@_Tet zB_q0MDw&^I_ONJarn6g-gp+eR5Ww6htpjVI*O#9zF1{C^d)1sv9ZLWJx^0`2VLj?t zoNo?q4)XY`HBpIKm>;dFxJ?XZ_nDB&zH*c*4v-cO-d-@QXSJ}h*e71s6kuTjWnF;s+%l<U51n0x0JLUFA8`dnGkX_%+HMZMiV6 zj5B}sM9b(plV+@xjcXf6wU{E3nBZ|Rcj$md2NvNB1P7yZu143C zP@o7Fz;9y2HNx^g3QkM|+?w=Dou%ZH4zW|nKRx*9o z;!a;6QTVt5n7WN1V~Av&6?t+H1kzaG@lhn7=R{fbqXw%l7RQ%FnQ;BBZvS1(Xvv2E=-kkLl`UPyLNbd;|@daODf9fs;Rg?3SHAuxCZQwGJlt;>t}n zU-8e}Sni*23SYIuE^`f?8=-DkrL+>n)w@vTPJal)JpEN`uVhPDVCQy+f!fts7c=L_ z(wJr;Y)=-)gXv(aHVB6Lp)EP`a4^kMZGvqZA)g2_jiqezUf31 znRx*xdY7D;>&)m4?{})8t6twA=s~n*zKHD-=V;5=?5HFw?6@v8p}6Q}a7 zE_1Y0Houg}@H@1$24z;nf2h*2rjY*zd(_`YwZSfG<9g>rkXz>o0wR@D`MF+2zf9Qt z!1h1gk$hwic?gh?IooIeQ*rQyOO{kNl#Wlkqv;si3r5<1&8s z5!U`m#>0;7Hh{|WJ){E32-3~1z}Sp$cDFN3D{CxKAD77@{_%_nZQ(QI$p%w8{OIV& z_hHJ2LiT#tr2r#2I@E+tsj;V^-)rSPQSK!D^})pf3P3DH%D(uLR&1iS!NPUH zAowA-=VYLUIkaIB2a=JV%y59*I+i2vD{z;HnDxX)|;mDA%CMC_qp`BxhTU_4e}43(p_*8?lr z&HSz<3C8c%jPJ@)WYy-3Z1L3#%Sz}ADl%dZ*Fo$uLDN#pxLs$?>e&PfL&p%io07)& z9z+ia5QKs`vANCaw1Cyr-rL+C`NhGg*MP5BELyd`9tfaN=c5HmlN=WA2uK$UtL~wt zff30^cR%5rEICVYy3dVflj1+`?a6$_$?9cDrPAHZh4pi?f`#y;g@4M`t<)qcUXIAD zXFKVuy)YX|p`m|L7v09TH{6IP>$B}hH@iLq9mlGnghktcku2^^0~?YCE{Y$JzgJ?6zD?wtb>Sa0!KCg(W)-MY;GKvIt9778=LZ6FmVh1x!aIQ|JiXTl=u-bF^W)JPJ{V z4-OfsTG#fU{baA*JVZ&%?k~EKrmcyGAztG|Vx?1O_>1v#_3OaYTC_N+cs<@G58_Zi z_ui*APaqpEEmOY8a&g>EgT0=ZbW_alSr;@vT*1En*DxQ!U^b_bQBgOOq+&E)`h?%3 zsHOrLn&>a8@fvtnctl#1#}&kn?WqlYiMa!o>Bp{Bm}lf@b^N~CSa)yg zui%(Pc5G&;a2Uz|2G5+ze#D2Huwn1*NUVbjt6ugsjBc zT)R1TpeHUMk*BEd6#fePE0O;A2qXes4o5t7D)Ti7-P%mW{){P_7e6C_J2dcVeAV4{ zt1MhaOvm1KUjbCxe3GNB_aADZ>UN72?F+cw+&RnCY3fxu{b@xr-yl@JA`^bzjV(oQ zKh;AF5jC(~;u3fGIvV0&WFh^4f3aJBhs zZPtrj%HYsbCpZsdBNH!!#6?skA&6ag7p)wZ(b*+1|9)s39>IhA7o%wj3M+GR(J9La zv&{^T4HGWH%(~{GlsL;K^56$8Vk+Vu{t^loYut*?DF$-|Nt?mB(?1-COlc97cv|tQ}INkFE!@^euimJvvKi4hk#?x*@73uoSC1Kn+dp^6pIP{WO(&ph2SbLybbzUy< zCglPx?KHyTN^I`IXS8;6xtXq_KfbAtJ2I1V*GLzHa;KE$G?T)cC)gEZAQS2M z6LJ5ZLjlnKgy>5}#iKMOw{v&n_vmgG+!~4gKjk(mpMvnsM_$ zbdCcr+*(foj*T}E90;~9^l&|b_anQjlUt(8OjAYV<;`?bgkts2gHxPDlCYW6KR1&8 z9=(n057SWiPEDG$oz77l1u)UPw_+yb$q1U=T%13!_l`Z%2xYEv!OcOagl(x8RB|$b zt*}Y}n9vcUBT`l&u;U7nq)?zPf^JQImJ|MQ$L`741_4Cfs>9W!;AV+y?*{1oQ-keg zHL*glKrZRWVd9munrw zui*y=$%e@Y{|ip9lG^G7En%*w7=6gU10H&{Tx!|1%6OVGbl3fwx4b1p(YQ#{TX4z{ zGTaW<;zN=E0}iujP0pH~1zWFuq*oak!mlsCm*@i?+Vt{6?r_B255Y6h;RJ5?FI^?N z#5ht}DL+D-zQT&&@lq(rjFh5uTqt~Z6~ZXb=CMO4;*Jbr_KzBmq>z^cIF}2t0u9dh4jPsA<2v2PKY`e=dwd-99qZf&R%@EIV~c0DidU;opX1v z)SO(*;cV0QWk0R^5^Qg2O{sH#R|GG$m*`n=QD8 zpk^Ia*uj&P$t)%M^l8#3=E-2wur8i~;H&4c{H>F<2~4d`Ksf$inZ5wcoopm?>FRm3_-E50 zD6!uhY)Q8`(RQ(M75rM*+-ZtaV`HCVe>iJ{MV@AI&yPY4rqh=dLnY&}qDVcmvPV8g zpE)=orFkJZ+MLsJL{`|6;$~GT6$A#ON5+Sw%tE#EDw;D_&5Jga#kLLvCeARWouca@6~ZD56H&m2 zxaC`C68lla`M7dTf`Knsk8Ste=~u$6uLV2dc(Xkyty6zRAq&w31+#i)QBxT53Xr~gPC8Qv|4{ZDRaSe)GE%5=QeHsN(fkFyP4l?1e?SX*Pjx;9v_=NIO z^LQ>w93Qzly4^rXWmq!PUszmTyOqHclgEq4({pt3ltVRR6~P_C2qjVKZ0eL76XLhs zAM=Kad0j&SQGeK}ArHp96|-(7+|S* zX+aOivkNs0k&_|6FZ)$rF#G=l!B$`;kv$o&I zOG&-u(Ub^238ymA2Q7fywmT=_qt~Lh!(qv$rAQt(xdMC;$;?GRiF3%G1sId$F6G`` zlV8n>3V8H3&)UVja>2gM?}i;=#}0`^5^sgsE3)Ot!gF^+rfbQJlruweI+9jg!iSR` zM3Z~|=B&?ZRJ8sv&mFY_#Y`zNyR@tzViHc!77-RcUGQRr4l?+*BS_!q89g(;nk^Hj zdH2=)K3&zhdI$w9d%Hta?XjUHaW%49I2A_Hv+KQ9(Cc9Ol^gvHw5j6Hy!DI1@Jl%B z$-No{;0-^#;5qZ^1b?LFA;EfS)y~%MH0-MrX;ls&0QduH`4k4il3ceXW|gXSiK{^t#L`Q%m0hR`Jp#tr~N z0=*1QUkeV1vg%;g>0=i(gSIpZ7q6#jEwGDT6jqme^gF{``7*?OmxISkG_qEEJEUBO zj{ElDXw>n({-w?RhM66PLv}y5`B0U`NZxd}CIHvpE+Q%i`nm{px0qa>$5V9|r$t|*K6iHghO=;RKJ-GuzCD^;lkvLH zl?4yrBcc2M;=@hGxHsQhw|wA&+uS5TnTrz4?$0u(|h8reW<25VlL@@r

)Sfd>td*AhIV(5F`@6{Uz=;L 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

#^I`a49-*aa1&u^t_56OMB!`(oM>JV8j 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 literal 0 HcmV?d00001 diff --git a/documentation/src/pages/images/telegram.svg b/documentation/src/pages/images/telegram.svg new file mode 100644 index 000000000..fd71cc560 --- /dev/null +++ b/documentation/src/pages/images/telegram.svg @@ -0,0 +1,16 @@ + + + + Artboard + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/src/pages/index.md b/documentation/src/pages/index.md index 6c8d97bc4..cc3bdde7a 100644 --- a/documentation/src/pages/index.md +++ b/documentation/src/pages/index.md @@ -12,174 +12,27 @@ slug: / [![GitHub Releases](https://img.shields.io/github/downloads/bia-technologies/yaxunit/latest/total?style=flat-square)](https://github.com/bia-technologies/yaxunit/releases) [![Quality Gate](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=yaxunit) [![Maintainability](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=sqale_rating)](https://sonar.openbsl.ru/dashboard?id=yaxunit) - [![Build and test](https://github.com/bia-technologies/yaxunit/actions/workflows/main-build.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/main-build.yml) [![Build ocumentation](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml) - -Обсудить в [Telegram чате](https://t.me/BIAOpenTools/12) +[![Telegram чате](images/telegram.svg)](https://t.me/BIAOpenTools/12) ---- -- [Назначение](#назначение) - - [Возможности](#возможности) -- [Пример тестового модуля](#пример-тестового-модуля) -- [Запуск](#запуск) - - [Запуск из EDT](#запуск-из-edt) - - [Запуск вне EDT](#запуск-вне-edt) -- [Благодарности](#благодарности) -- [Лицензия](#лицензия) - -## Назначение - -Самостоятельное расширение для написания и выполнения модульного тестирования. - -### Возможности - -- YAxUnit - это расширение с открытым исходным кодом, которое используется для написания и выполнения тестов -- Разрабатывалось с оглядкой на JUnit5, пожалуй, лучший фреймворк тестирования -- Предоставляет движок выполнения тестов -- Предоставляет утверждения для проверки ожидаемых результатов -- Тесты могут быть организованы в наборы и выполняться в разных контекстах -- Позволяет быстрее и проще не только писать, но и читать тесты -- Результаты тестирования могут быть сохранены в отчет, на текущий момент jUnit и json. -- Большая часть пользовательского API реализована как [текучие выражения](https://ru.wikipedia.org/wiki/Fluent_interface) -- Предусмотрена возможность расширения функциональности, можно регистрировать свои форматы отчетов, добавлять модули с утверждениями -- Реализован [плагин для EDT](https://github.com/bia-technologies/edt-test-runner), который упрощает процесс запуска тестов - -Подробнее ознакомиться с функциональностью вы можете изучив [документацию](/docs/user-api). - -А для того, что бы начать писать тесты необходимо [установить расширение](/docs/install) в свою IDE (конфигуратор или EDT). - -## Пример тестового модуля - -Для создания теста нужно в расширении (в отдельном или в том же) добавить модуль, содержащий экспортный метод регистрации - `ИсполняемыеСценарии` и реализовать тесты. - -Пример модуля тестов: - -```bsl -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - // Регистрация тестов - ЮТТесты // Регистрация тестов выполняет через модуль регистратор - .ДобавитьТестовыйНабор("Математические методы") // Набор - объединение тестов - .ДобавитьТест("Сложение") // Обязательно при регистрации указываем имя экспортного метода - .ДобавитьТест("Вычитание", "Вычитание") // Также можно указать представление теста - .ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля - .ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Есть отдельный метод для регистрации клиентских тестов - .ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов - .ДобавитьТестовыйНабор("Строковые методы") - .ДобавитьТест("СтрНайти") - .ДобавитьТест("СтрРазделить"); - -КонецПроцедуры - -#КонецОбласти - -#Область Тесты - -Процедура Сложение() Экспорт - - // Реализация теста на сложение - ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение - .ИмеетТип("Число") // Проверим тип - .Заполнено() // Заполненность проверяемого значения - .Больше(0) // Сравним с нулем - .Равно(5); // Проверим ожидаемый результат - - ЮТест.ОжидаетЧто(-8 + 8, "-8 + 8") // Проверим второй вариант - .Равно(0); - -КонецПроцедуры - -Процедура Вычитание() Экспорт - - // Реализация теста на вычитание - ЮТест.ОжидаетЧто(2 - 3, "2 - 3").ИмеетТип("Число").Заполнено().Меньше(0); - -КонецПроцедуры - -#КонецОбласти - -#Область События - -// Также в тесте можно обрабатывать события выполнения -// Например можно реализовать подготовку и удаление тестовых данных -// Зачистку временных файлов, настройку системы - -Процедура ПередВсемиТестами() Экспорт - // Выполняется перед запуском всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза - Сообщить("Запуск тестирования"); - -КонецПроцедуры - -Процедура ПередТестовымНабором() Экспорт - - // Выполняется перед каждым тестовым набором для каждого контекста выполнения - Контекст = ЮТест.КонтекстТестовогоНабора(); // Контекст набора служит для хранения любых данных, нужных при тестировании - // Контекст живет в рамках контекста выполнения, - // таки образом, через контекст нельзя передавать данные между серверными и клиентскими тестами - Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах()); - -КонецПроцедуры - -Процедура ПередКаждымТестом() Экспорт - - // Выполняется перед каждым тестом - Контекст = ЮТест.КонтекстТеста(); // Контекст теста служит для хранения любых данных, нужных при тестировании - // Контекст создает перед тестом и уничтожается после его выполнения - // В контекст например, можно помещать созданные в процессе данные, что бы потом их удалить - Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах()); - -КонецПроцедуры - -Процедура ПослеКаждогоТеста() Экспорт - - // Выполняется после каждого теста - Контекст = ЮТест.КонтекстТеста(); - Сообщить("Время выполнения теста: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала)); - -КонецПроцедуры - -Процедура ПослеТестовогоНабора() Экспорт - - // Выполняется после каждого тестового набора для каждого контекста выполнения - // Применяется для очистки данных и т.д. - Контекст = ЮТест.КонтекстТестовогоНабора(); - Сообщить("Время выполнения набора: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала)); - -КонецПроцедуры - -Процедура ПослеВсехТестов() Экспорт - - // Выполняется после выполнения всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза - // В этом событии все контексты уже уничтожены - Сообщить("Тестирование завершено"); - -КонецПроцедуры - -#КонецОбласти - -``` - -После запуска тестов модуля в EDT (используя [плагин](https://github.com/bia-technologies/edt-test-runner)) получаем такой отчет: - -![Отчет](images/report.png) - -## Запуск - -### Запуск из EDT +**YAxUnit** представляет собой мощный инструмент написания тестов для решений на платформе 1С:Предприятие. +Он был создан с учетом лучших практик тестирования и предлагает [множество функций](/docs/features/), которые позволяют эффективно справиться с поставленной задачей. -При разработке в EDT процесс запуска тестов можно упростить, установив [плагин](https://github.com/bia-technologies/edt-test-runner) -и настроив конфигурацию запуска, как указано в описании плагина. +* Тестовый движок, который выполнит тесты и предоставит подробный отчет в нужном формате. +* [Утверждения](/docs/features/assertions/) для проверки ожидаемых результатов. Они помогают разработчикам ясно и точно определить, какие результаты они ожидают, и автоматически проверить, соответствуют ли реальные результаты этим ожиданиям. +* Мощные инструменты для работы с [тестовыми данными](/docs/features/test-data/). Создание, удаление и поиск нужных данных теперь не проблема. +* Благодаря поддержке [текучих выражений](/docs/getting-started/fluent-api), код тестов становится более читаемым и понятным, что упрощает его поддержку и модификацию. +* Кроме того, YAxUnit предусматривает возможность расширения функциональности, что позволяет разработчикам адаптировать инструмент под свои уникальные требования. +* Последнее, но не менее важное - [плагин для запуска тестов](/docs/getting-started/edt-plugin/) из 1С:Enterprise Development Tools (EDT). Значительно упрощает процесс написания и отладки тестов. В один клик вы может запустить и увидеть результат нужного теста. -### Запуск вне EDT +Все эти возможности делают YAxUnit мощным помощником разработчика на непростом пути тестирования. -Для запуска тестов без использования EDT необходимо: +![Отчет о тестировании](images/reports.png) -1. Сформировать файл конфигурации запуска [вручную](/docs/run), либо воспользоваться [формой настройки](/docs/yaxunit-ui) -2. [Запустить 1С:Предприятие](/docs/run) с параметром `RunUnitTests=ПутьКФайлуКонфигурации.json`. +Чтобы более подробнее ознакомиться с возможностями YAxUnit вы можете изучить [документацию](/docs/features), либо [установив](/docs/getting-started/install) все необходимое? попробуйте написать [первый тест](/docs/getting-started/first-test) ## Благодарности diff --git a/documentation/src/theme/prism-include-languages.js b/documentation/src/theme/prism-include-languages.js new file mode 100644 index 000000000..0f888307f --- /dev/null +++ b/documentation/src/theme/prism-include-languages.js @@ -0,0 +1,23 @@ +import siteConfig from '@generated/docusaurus.config'; +export default function prismIncludeLanguages(PrismObject) { + const { + themeConfig: {prism}, + } = siteConfig; + const {additionalLanguages} = prism; + // Prism components work on the Prism instance on the window, while prism- + // react-renderer uses its own Prism instance. We temporarily mount the + // instance onto window, import components to enhance it, then remove it to + // avoid polluting global namespace. + // You can mutate PrismObject: registering plugins, deleting languages... As + // long as you don't re-assign it + globalThis.Prism = PrismObject; + additionalLanguages.forEach((lang) => { + if (lang === 'php') { + // eslint-disable-next-line global-require + require('prismjs/components/prism-markup-templating.js'); + } + // eslint-disable-next-line global-require, import/no-dynamic-require + require(`prismjs/components/prism-${lang}`); + }); + delete globalThis.Prism; +} diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index aa57f4c61..1fef6412b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -35,7 +35,7 @@ // ПараметрыМетода = Мокито.МассивПараметров(ПараметрыПодключения, Ресурс, HTTPМетод, Параметры, ОписаниеТела, Заголовки); // // ПрерватьВыполнение = Ложь; -// Результат = Мокито.АнализВызова(РаботаСHTTP, "ВыполнитьЗапрос", ПараметрыМетода, ПрерватьВыполнение); +// Результат = МокитоПерехват.АнализВызова(РаботаСHTTP, "ВыполнитьЗапрос", ПараметрыМетода, ПрерватьВыполнение); // // Если НЕ ПрерватьВыполнение Тогда // Возврат ПродолжитьВызов(ПараметрыПодключения, Ресурс, HTTPМетод, Параметры, ОписаниеТела, Заголовки); @@ -238,8 +238,9 @@ #Область СлужебныйПрограммныйИнтерфейс -// Анализ вызова. -// Deprecate +#Область УстаревшиеПроцедурыИФункции + +// Устарела. Анализ вызова. // // Параметры: // Объект - Произвольный @@ -251,8 +252,12 @@ // Произвольный - Подменный результат работы метода Функция АнализВызова(Объект, ИмяМетода, ПараметрыМетода, ПрерватьВыполнение) Экспорт + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("Мокито.АнализВызова", "МокитоПерехват.АнализВызова", "24.03"); + Возврат МокитоСлужебный.АнализВызова(Объект, ИмяМетода, ПараметрыМетода, ПрерватьВыполнение); КонецФункции #КонецОбласти + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/Module.bsl" new file mode 100644 index 000000000..a3ab77ff8 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/Module.bsl" @@ -0,0 +1,37 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область ПрограммныйИнтерфейс + +// Анализ вызова. +// +// Параметры: +// Объект - Произвольный +// ИмяМетода - Произвольный +// ПараметрыМетода - Произвольный +// ПрерватьВыполнение - Произвольный +// +// Возвращаемое значение: +// Произвольный - Подменный результат работы метода +Функция АнализВызова(Объект, ИмяМетода, ПараметрыМетода, ПрерватьВыполнение) Экспорт + + Возврат МокитоСлужебный.АнализВызова(Объект, ИмяМетода, ПараметрыМетода, ПрерватьВыполнение); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" new file mode 100644 index 000000000..0beb0b7a8 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" @@ -0,0 +1,9 @@ + + + МокитоПерехват + + ru + Мокито перехват + + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index d4c875462..443ad1ae4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -273,7 +273,7 @@ // Генерирует случайную дату в будущем. // Максимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаВБудущем(2, "часа") - будет сформирована дата в интервали (ТекущаяДата, ТекущаяДата + 2 часа] +// Например: СлучайнаяДатаВБудущем(2, "часа") - будет сформирована дата в интервале (ТекущаяДата, ТекущаяДата + 2 часа] // // Параметры: // Интервал - Число - Интервал @@ -295,7 +295,7 @@ // Генерирует случайную дату в прошлом. // Минимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаВПрошлом(2, "часа") - будет сформирована дата в интервали [ТекущаяДата - 2 часа, ТекущаяДата) +// Например: СлучайнаяДатаВПрошлом(2, "часа") - будет сформирована дата в интервале [ТекущаяДата - 2 часа, ТекущаяДата) // // Параметры: // Интервал - Число - Интервал @@ -317,7 +317,7 @@ // Генерирует случайную дату, значение которой больше указанной. // Максимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервали [Дата - 2 часа, Дата) +// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата) // // Параметры: // Дата - Дата @@ -347,7 +347,7 @@ // Генерирует случайную дату, значение которой меньше указанной. // Минимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервали [Дата - 2 часа, Дата) +// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата) // // Параметры: // Дата - Дата diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 7ed943772..78d40fc42 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -338,7 +338,7 @@ // Представление - Строка // ИспользуяИмя - Булево - Необходимо ли использовать имя объекта при формировании представления. // Ложь - По умолчанию, представление будет установлено по параметру. -// Истина - Новое представление объекта = "<ИмяОбъект>. <Параметр Представление>" +// Истина - Новое представление объекта = `<ИмяОбъект>. <Параметр Представление>` // // Возвращаемое значение: // ОбщийМодуль - Этот же модуль diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 6c70f2bce..7b95cb6ab 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -822,10 +822,11 @@ #Область ПроверкаМетодов -// Проверяет установленный для проверки метод Контекста на то, что метод упадет по исключению, далее текст исключения проверяется на ожидаемый. +// Вызывает метод (см. Метод) объекта контекста и проверяет, выбрасывает ли он исключение. +// Проверяет, что метод упадет по исключению, а текст исключения содержит(включает) указанный. // // Параметры: -// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать данный текст +// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать(включать) данный текст // ОписаниеПроверки - Строка - Описание конкретной проверки // ВТранзакции - Булево - Вызов метода выполняется в трананзакции // @@ -859,11 +860,13 @@ КонецФункции -// Проверяет установленный для проверки метод Контекста на то, что метод не упадет по исключению -// или упадет по исключению текст которого не содержит ожидаемый. +// Вызывает метод (см. Метод) объекта контекста и проверяет, выбрасывает ли он исключение. +// Проверяет, что метод не упадет по исключению +// или упадет по исключению текст, которого не содержит указанный. // // Параметры: -// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке НЕ будет содержать данный текст +// ОжидаемоеЗначение - Строка - Ожидается, что метод выбросит исключение, текст которого НЕ будет содержать (включать) данный текст +// - Неопределено - Ожидается, что метод отработает без выбора исключения // ОписаниеПроверки - Строка - Описание конкретной проверки // ВТранзакции - Булево - Вызов метода выполняется в трананзакции // diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 8f8fd169c..14bd1e1a8 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -53,6 +53,7 @@ CommonTemplate.ЮТОписаниеМетаданных CommonModule.Мокито CommonModule.МокитоОбучение + CommonModule.МокитоПерехват CommonModule.МокитоПроверки CommonModule.МокитоСлужебный CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242HTTPServiceRequest/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242HTTPServiceRequest/ObjectModule.bsl" index f371f2d92..11b54c9a5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242HTTPServiceRequest/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242HTTPServiceRequest/ObjectModule.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -44,9 +44,9 @@ Var Body; // Возвращаемое значение: // ДвоичныеДанные - Тело Function GetBodyAsBinaryData() Export - + BodyType = TypeOf(Body); - + If Body = Undefined Then Return GetBinaryDataFromBase64String(""); ElsIf BodyType = Type("BinaryData") Then @@ -54,7 +54,7 @@ Function GetBodyAsBinaryData() Export ElsIf BodyType = Type("String") Then Return GetBinaryDataFromString(Body); EndIf; - + EndFunction // Возвращает тело как поток. @@ -62,22 +62,22 @@ EndFunction // Возвращаемое значение: // Поток - Тело Function GetBodyAsStream() Export - + Return GetBodyAsBinaryData().OpenStreamForRead(); - + EndFunction // Возвращает тело как строку. // // Параметры: -// Кодировка - КодировкаТекста, Строка - Кодировка +// Encoding - КодировкаТекста, Строка - Кодировка // // Возвращаемое значение: // Строка - Тело Function GetBodyAsString(Encoding = Undefined) Export - + BodyType = TypeOf(Body); - + If Body = Undefined Then Return ""; ElsIf BodyType = Тип("BinaryData") Then @@ -85,37 +85,37 @@ Function GetBodyAsString(Encoding = Undefined) Export ElsIf BodyType = Тип("String") Then Return Body; EndIf; - + EndFunction // Устанавливает тело как двоичные данные. // При получении тела в другом формате происходит конвертация // // Параметры: -// Данные - ДвоичныеДанные +// Data - ДвоичныеДанные // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function УстановитьТелоКакДвоичныеДанные(Data) Export - + Body = Data; Return ThisObject; - + EndFunction // Устанавливает тело как строку. // При получении тела в другом формате происходит конвертация // // Параметры: -// Строка - Строка +// String - Строка // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function УстановитьТелоКакСтроку(String) Export - + Body = String; Return ThisObject; - + EndFunction // Устанавливает тело как строку JSON. @@ -123,107 +123,107 @@ EndFunction // При получении тела в другом формате происходит конвертация // // Параметры: -// Данные - Произвольный +// Data - Произвольный // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function УстановитьТелоКакСтрокуJSON(Data) Export - + JSONWriter = Новый JSONWriter(); JSONWriter.SetString(); WriteJSON(JSONWriter, Data); - + Body = JSONWriter.Close(); - + Return ThisObject; - + EndFunction // Добавляет заголовок. // // Параметры: -// ИмяЗаголовка - Строка -// Значение - Строка +// HeaderName - Строка +// Value - Строка // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function ДобавитьЗаголовок(HeaderName, Value) Export - + Headers.Insert(HeaderName, Value); Return ThisObject; - + EndFunction // Добавляет параметр запроса. // // Параметры: -// ИмяПараметра - Строка -// Значение - Строка +// ParameterName - Строка +// Value - Строка // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function ДобавитьПараметрЗапроса(ParameterName, Value) Export - + QueryOptions.Insert(ParameterName, Value); Return ThisObject; - + EndFunction // Добавляет параметр URL. // // Параметры: -// ИмяПараметра - Строка -// Значение - Строка +// ParameterName - Строка +// Value - Строка // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function ДобавитьПараметрURL(ParameterName, Value) Export - + URLParameters.Insert(ParameterName, Value); Return ThisObject; - + EndFunction // Устанавливает HTTP метод // // Параметры: -// Значение - Строка - Имя http метода +// Value - Строка - Имя http метода // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function Метод(Value) Export - + HTTPMethod = Value; Return ThisObject; - + EndFunction // Устанавливает базовый URL. // // Параметры: -// Значение - Строка - базовый URL +// Value - Строка - базовый URL // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function БазовыйURL(Value) Export - + BaseURL = Value; Return ThisObject; - + EndFunction // Устанавливает относительный URL. // // Параметры: -// Значение - Строка - относительный URL +// Value - Строка - относительный URL // // Возвращаемое значение: -// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок +// ОбработкаОбъект.ЮТHTTPServiceRequest - Мок Function ОтносительныйURL(Value) Export - + RelativeURL = Value; Return ThisObject; - + EndFunction #КонецОбласти @@ -231,14 +231,14 @@ EndFunction #Область СлужебныеПроцедурыИФункции Процедура Initialize() - + HTTPMethod = "GET"; BaseURL = ""; Headers = New Map(); RelativeURL = ""; URLParameters = New Map(); QueryOptions = New Map(); - + КонецПроцедуры #КонецОбласти @@ -249,4 +249,4 @@ Initialize(); #КонецОбласти -#КонецЕсли \ No newline at end of file +#КонецЕсли diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index bb7da505b..7ebf637ca 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -77,7 +77,7 @@ // ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор Функция Фикция(ИмяРеквизита) Экспорт - Свойство = ТекущийТип.Свойства.Получить(ИмяРеквизита); + Свойство = Свойство(ИмяРеквизита); Значение = СлучайноеЗначениеСвойства(Свойство, 0); Установить(ИмяРеквизита, Значение); @@ -154,7 +154,7 @@ // ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Добавить новый Функция ДобавитьНовый(ИмяРеквизита) Экспорт - Свойство = ТекущийТип.Свойства.Получить(ИмяРеквизита); + Свойство = Свойство(ИмяРеквизита); Если НЕ ЭтоТипОбъектаXDTO(Свойство.Тип) Тогда ВызватьИсключение СтрШаблон("Метод применяется только для свойств-объектов. Реквизит: %1 имеет тип %2", ИмяРеквизита, Свойство.Тип); @@ -203,6 +203,19 @@ #Область СлужебныеПроцедурыИФункции +Функция Свойство(ИмяСвойства) + + Свойство = ТекущийТип.Свойства.Получить(ИмяСвойства); + + Если Свойство = Неопределено Тогда + Сообщение = СтрШаблон("Тип XDTO `%1` не содержит свойства `%2`", ТекущийТип.Имя, ИмяСвойства); + ВызватьИсключение Сообщение; + КонецЕсли; + + Возврат Свойство; + +КонецФункции + Процедура ДобавитьНовыйОбъектВСтек(Тип) Объект = НовыйОбъект(Тип); diff --git "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" index 4643d85fe..c2a7ce9eb 100644 --- "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" +++ "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ ПараметрыМетода = Мокито.МассивПараметров(ОбрабатываемыеЭлементы); ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(Справочники.Встречи, "СохранитьИзменения", ПараметрыМетода, ПрерватьВыполнение); + Результат = МокитоПерехват.АнализВызова(Справочники.Встречи, "СохранитьИзменения", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда Возврат ПродолжитьВызов(ОбрабатываемыеЭлементы); @@ -38,7 +38,7 @@ ПараметрыМетода = Мокито.МассивПараметров(Объект, ОбрабатываемыйЭлемент); ПрерватьВыполнение = Ложь; - Мокито.АнализВызова(Справочники.Встречи, "ЗаполнитьОбъект", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(Справочники.Встречи, "ЗаполнитьОбъект", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(Объект, ОбрабатываемыйЭлемент); diff --git "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" index f56f56e71..b4238820d 100644 --- "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" +++ "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ ПараметрыМетода = Новый Массив(); ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(ЭтотОбъект, "УказанКорректныйПериод", ПараметрыМетода, ПрерватьВыполнение); + Результат = МокитоПерехват.АнализВызова(ЭтотОбъект, "УказанКорректныйПериод", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда Возврат ПродолжитьВызов(); @@ -38,7 +38,7 @@ ПараметрыМетода = Мокито.МассивПараметров(Отказ); ПрерватьВыполнение = Ложь; - Мокито.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(Отказ); diff --git "a/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" "b/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" index 6bb311c9d..958f0846f 100644 --- "a/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" +++ "b/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ ПараметрыМетода = Мокито.МассивПараметров(ТабличныйДокумент); ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(ЭтотОбъект, "ПечатнаяФормаШтрихкода", ПараметрыМетода, ПрерватьВыполнение); + Результат = МокитоПерехват.АнализВызова(ЭтотОбъект, "ПечатнаяФормаШтрихкода", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда Возврат ПродолжитьВызов(ТабличныйДокумент); diff --git "a/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" index daacd19d4..39c2b26b4 100644 --- "a/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ ПараметрыМетода = Мокито.МассивПараметров(Адрес, ФорматОтвета, Авторизация); ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(Интеграция, "ВыполнитьЗапрос", ПараметрыМетода, ПрерватьВыполнение); + Результат = МокитоПерехват.АнализВызова(Интеграция, "ВыполнитьЗапрос", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда Возврат ПродолжитьВызов(Адрес, ФорматОтвета, Авторизация); @@ -38,7 +38,7 @@ ПараметрыМетода = Новый Массив; ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(Интеграция, "Методы", ПараметрыМетода, ПрерватьВыполнение); + Результат = МокитоПерехват.АнализВызова(Интеграция, "Методы", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда Возврат ПродолжитьВызов(); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index bb385413a..be5bb387c 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -472,7 +472,7 @@ .КоличествоВызовов("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, Новый Структура("Флаг", 2))).Равно(1) КонецПроцедуры - Процедура МокированиеЦепочкиВызовов() Экспорт +Процедура МокированиеЦепочкиВызовов() Экспорт Мокито.Обучение(Интеграция) .Когда("ВыполнитьЗапрос") @@ -489,6 +489,7 @@ .Равно(3); ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("")) .Равно(3); + КонецПроцедуры #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" index 1f8c6a58f..34414c2fd 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" @@ -130,6 +130,10 @@ Процедура ДобавитьНовый() Экспорт Объект = НовыйКонструктор() + .ДобавитьНовый("Товары") + .Фикция("Цена") + .Фикция("Количество") + .ПерейтиКВладельцу() .ДобавитьНовый("Товары") .Фикция("Цена") .Фикция("Количество") @@ -137,7 +141,7 @@ ЮТест.ОжидаетЧто(Объект) .ИмеетТип(Тип("ОбъектXDTO")) - .Свойство("Товары").ИмеетДлину(1) + .Свойство("Товары").ИмеетДлину(2) .Свойство("Товары[0].Цена").Заполнено() .Свойство("Товары[0].Сумма").НеЗаполнено(); diff --git "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" index 6597ddbaa..5ab296940 100644 --- "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" @@ -1,3 +1,20 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// &Вместо("ПередЗаписьюДокумента") Процедура Расш1_ПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт @@ -7,7 +24,7 @@ // Отправляем данные на анализ ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюДокумента", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюДокумента", ПараметрыМетода, ПрерватьВыполнение); // Обрабатываем результат анализа Если НЕ ПрерватьВыполнение Тогда @@ -24,7 +41,7 @@ // Отправляем данные на анализ ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюСправочника", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюСправочника", ПараметрыМетода, ПрерватьВыполнение); // Обрабатываем результат анализа Если НЕ ПрерватьВыполнение Тогда diff --git "a/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Module.bsl" "b/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Module.bsl" index 7e24fe427..fba4de1bf 100644 --- "a/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ Процедура Расш1_ОпределитьТекущегоПользователя() Экспорт ПрерватьВыполнение = Ложь; - Результат = Мокито.АнализВызова(Пользователи, "ОпределитьТекущегоПользователя", Новый Массив, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(Пользователи, "ОпределитьТекущегоПользователя", Новый Массив, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(); diff --git "a/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl" "b/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl" index 3336a3f0f..94aa58f90 100644 --- "a/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl" +++ "b/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl" @@ -1,3 +1,20 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// &Вместо("ЗаполнитьСписок") Процедура Расш1_ЗаполнитьСписок() Экспорт @@ -5,7 +22,7 @@ ПараметрыМетода = Новый Массив();; ПрерватьВыполнение = Ложь; - Мокито.АнализВызова(ЭтотОбъект, "ЗаполнитьСписок", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(ЭтотОбъект, "ЗаполнитьСписок", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(); diff --git "a/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" "b/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" index a8507e276..5db6d642a 100644 --- "a/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" +++ "b/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ ПараметрыМетода = Мокито.МассивПараметров(Отказ, Режим); ПрерватьВыполнение = Ложь; - Мокито.АнализВызова(ЭтотОбъект, "ОбработкаПроведения", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроведения", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(Отказ, Режим); diff --git "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" index 1377c3499..ca4460b4f 100644 --- "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" +++ "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" @@ -1,3 +1,20 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// &Вместо("ЗаполненоКорректно") Процедура Расш1_ЗаполненоКорректно(НаборЗаписей) Экспорт @@ -5,7 +22,7 @@ ПараметрыМетода = Мокито.МассивПараметров(НаборЗаписей); ПрерватьВыполнение = Ложь; - Мокито.АнализВызова(РегистрыСведений.ЦеныТоваров, "ЗаполненоКорректно", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(РегистрыСведений.ЦеныТоваров, "ЗаполненоКорректно", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(НаборЗаписей); diff --git "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" index 1da418081..c4786acf4 100644 --- "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" +++ "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" @@ -1,3 +1,20 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// &Вместо("ПередЗаписью") Процедура Расш1_ПередЗаписью(Отказ, Замещение) @@ -5,7 +22,7 @@ ПараметрыМетода = Мокито.МассивПараметров(Отказ, Замещение); ПрерватьВыполнение = Ложь; - Мокито.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(Отказ, Замещение); @@ -19,11 +36,10 @@ ПараметрыМетода = Мокито.МассивПараметров(Отказ, ПроверяемыеРеквизиты); ПрерватьВыполнение = Ложь; - Мокито.АнализВызова(ЭтотОбъект, "ОбработкаПроверкиЗаполнения", ПараметрыМетода, ПрерватьВыполнение); + МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроверкиЗаполнения", ПараметрыМетода, ПрерватьВыполнение); Если НЕ ПрерватьВыполнение Тогда ПродолжитьВызов(Отказ, ПроверяемыеРеквизиты); КонецЕсли; КонецПроцедуры - From 9df06952b0fd8341b6e09cba1b39f112af40abb1 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 29 Mar 2024 00:18:59 +0300 Subject: [PATCH 41/47] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" | 2 ++ .../Module.bsl" | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" index 0beb0b7a8..f0f1d0ab8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" @@ -5,5 +5,7 @@ ru Мокито перехват + true true + true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index be5bb387c..172a6d0be 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -34,7 +34,7 @@ .ДобавитьСерверныйТест("МокированиеМетодовРегистра") .ДобавитьСерверныйТест("МокированиеМетодовОбработки") .ДобавитьТест("МокированиеЦепочкиВызовов") - ; + ; КонецПроцедуры From ca7084101bbd24f4006bd3f3ec842983e8908042 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 29 Mar 2024 01:31:50 +0300 Subject: [PATCH 42/47] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=90=D0=BA=D1=82=D1=83=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=D0=BA=D1=80=D0=B8=D0=BD=D1=88=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++++++- documentation/docs/images/report-ui.png | Bin 171641 -> 192159 bytes documentation/docs/images/ui-run-menu.png | Bin 17377 -> 17798 bytes documentation/docs/images/ui-run-tests.png | Bin 127759 -> 40759 bytes .../Picture.svg" | 4 ++++ ...1\201\321\202\320\270\321\202\321\214.mdo" | 8 ++++++++ .../Picture.svg" | 14 +++----------- .../Picture.svg" | 12 +++++------- .../Picture.svg" | 16 ++++++++++++++++ ...0\260\320\262\321\210\320\270\320\265.mdo" | 8 ++++++++ .../Picture.svg" | 18 ++++-------------- .../Picture.svg" | 7 +++++++ ...0\262\320\275\320\270\321\202\321\214.mdo" | 8 ++++++++ .../Picture.svg" | 14 ++++++-------- .../Picture.svg" | 9 +++------ .../Template.txt" | 2 +- .../src/Configuration/Configuration.mdo | 3 +++ .../Form.form" | 10 +++++----- ...0\242\320\265\321\201\321\202\321\213.mdo" | 2 +- 19 files changed, 90 insertions(+), 54 deletions(-) create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.svg" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214.mdo" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265.mdo" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/Picture.svg" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214.mdo" diff --git a/README.md b/README.md index 2c7b724ad..db042666b 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ ---- +![report](documentation/docs/images/report-ui.png) + ## Документация [https://bia-technologies.github.io/yaxunit/](https://bia-technologies.github.io/yaxunit/) @@ -29,7 +31,12 @@ - [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation/graphs/contributors) - [add](https://github.com/vanessa-opensource/add/graphs/contributors) ---- +---- + +## Использованные ресурсы + +- В продукте используется иконки из набора [IntelliJ Platform UI](https://jetbrains.design/intellij). + Copyright 2000-2023 JetBrains s.r.o. and contributors. [Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0.html) ## Лицензия diff --git a/documentation/docs/images/report-ui.png b/documentation/docs/images/report-ui.png index 87842ff295ffc1893615d27f6b419685214e74ae..12d9e46b93af71d856672288590a97760549e2f1 100644 GIT binary patch literal 192159 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 literal 171641 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

    P?Oa^I$ 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

    * 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 d`0L@oD$|B_WpC1zfTH3{TSMC diff --git a/documentation/docs/images/ui-run-menu.png b/documentation/docs/images/ui-run-menu.png index 1f1bd4a5c610e5c1dcf6390261758976263af1c6..e08bbd8dce7de56dcf1fa8053cac1223c6834a1d 100644 GIT binary patch literal 17798 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 Ih4cge2R*>!X8-^I diff --git a/documentation/docs/images/ui-run-tests.png b/documentation/docs/images/ui-run-tests.png index 811e7fb743cdcb15f9f0ebe6471187562494203f..6b545fd906df185f3e3b80e26cd5bf84a56ba009 100644 GIT binary patch literal 40759 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

    &K8==yc#tKhYbF(KFK&uap4@q)YOLvh(qnI ztygi*=T*e~lP_MnM5dYAVLwNp{+1DXsprOdU&p26`63$i{T?NM{(Nr^xBjaDcUC2n zb{c9vBNBUsWKIR$86a!Lx1#qcvdy@wbvLT-F^*5kMFjP)fXTA+zOJw1h96?QPp@&FB; zX@nQU+*X*MpMOq5sW1dJoQLT_P*9LRB^P~@aWM`B-=jWz6_r6q(oh{$J1h@AE4(L~ zO+-N83TWQ``lKp$670%>0SA~Fbc90$crB7tV@Oa<u41FaYIE5Tj! zCXhJ+pV-^m^GD7$^#0k9{bx%)< zxF`}C&HYqTl2x~kIjj`|;H#y622oMbhzoG?wBM6R(m3%$`#H3LMtzwJ48%!hv0d}q zhpt&l+2mi69=?TG1XUE;E2(coiGlm~Xt^qh5_UC@`?rW?IbDG*dvs!{dB)tehjR@VC#Q$Y ziHzr!q?(>3#$@#Z&mscN>wdx`2`9#+`VQbvTR4MenMGDXfvURHtiPqj9;$p#qA*=u zF~#ZY-XB*PS>QKU^KR5fp$I@QfVt9~H81o?l&%{W;yQ0}nsx(%68-R@pdf04Ly^=f zpdnhQez=(O;ll@*q3$dX1t-&Ay7U%y;o4Za6*T!!M!{0x@lxjfBmf2P*YPwdRYX+8GdIL3k~B#_#l^^XN7857eAMlYL{84 z8ye2QBi`NF@xi9xd-eqp(Jnqw8WIv>ONf*(C{7o6dE>?n_82K$U11uU?@)2V{IP`f zM-V$uaZ-O?A(L~?j=|kpcp^DD@sl}^|I}pu^{+2F1;I`)R^EN}4T`7odQU+zIM8?6 zUnyLmRWC@Ns%ub)bxS~vo&e^F-0bY3?X!?Q+yOF%0O9ok#Xo7L^vKQ21C*s_XsG_> zx{je?YCu5yc%>bKKc3$s6v$}(>kABbrKF{yw4Ius4vUHs$C%nagyOlsukRR!AW-xJ znI%Sjp)aEgkO0Va&6n9GX_YNAu}G=BI0v=guJ-lyDIO-~G?IC|%^_4en@6RGx}VR5 zbQy^;?bMH7YK+=bBVz(AP2m zgI1l|D*Hu+_?1#@cuZQ5V$5UZ*n{}@bkRM9Tht_^pm$!yGJ3B*Eh|v8t%C2FS zdTB{+d!X&bpCJ{6z_$=c>uosQkk+^PDR=AD4H!S|h@w-5_`9s-tFF|GC?pB@@MaMj&21Jno|Kj{1UG z(yN;!_Xk1{k;h-md_)~0nP%bG7fk0J<)g-ISxzp?OjMrE2fcljisiq(eXl&WZ&+kx zlfWfhof|N}TD2x*dMw|SC_HZ)CnQ{OYhY{}WZw+NBg16DyM?N4@WcZ8Wr$Ck_e

    c6>*l#a*2IczMho8Liy@=@6 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 Gv%djfR{j70 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.svg" new file mode 100644 index 000000000..2f6dafbbd --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.svg" @@ -0,0 +1,4 @@ + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214.mdo" new file mode 100644 index 000000000..6862fc789 --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214.mdo" @@ -0,0 +1,8 @@ + + + ЮТЗапустить + + ru + Запустить + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg" index d125eddd8..6c4094ecb 100644 --- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg" +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg" @@ -1,12 +1,4 @@ - - - - - - - - + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\236\321\210\320\270\320\261\320\272\320\260/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\236\321\210\320\270\320\261\320\272\320\260/Picture.svg" index e37abd826..30a940623 100644 --- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\236\321\210\320\270\320\261\320\272\320\260/Picture.svg" +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\236\321\210\320\270\320\261\320\272\320\260/Picture.svg" @@ -1,8 +1,6 @@ - - - - - - + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" new file mode 100644 index 000000000..9cbd45cee --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265.mdo" new file mode 100644 index 000000000..1aefeef1c --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265.mdo" @@ -0,0 +1,8 @@ + + + ЮТПерезапуститьУпавшие + + ru + Перезапустить упавшие + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\321\200\320\276\320\277\321\203\321\211\320\265\320\275/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\321\200\320\276\320\277\321\203\321\211\320\265\320\275/Picture.svg" index 552f0b974..85123af3f 100644 --- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\321\200\320\276\320\277\321\203\321\211\320\265\320\275/Picture.svg" +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\321\200\320\276\320\277\321\203\321\211\320\265\320\275/Picture.svg" @@ -1,15 +1,5 @@ - - - - - - - - - + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/Picture.svg" new file mode 100644 index 000000000..eba7e6158 --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/Picture.svg" @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214.mdo" new file mode 100644 index 000000000..c2bb1e86d --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214.mdo" @@ -0,0 +1,8 @@ + + + ЮТСравнить + + ru + Сравнить + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\320\277\320\260\320\273/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\320\277\320\260\320\273/Picture.svg" index 71a9fa157..0334713d9 100644 --- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\320\277\320\260\320\273/Picture.svg" +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\320\277\320\260\320\273/Picture.svg" @@ -1,8 +1,6 @@ - - - - - - - \ No newline at end of file + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\321\201\320\277\320\265\321\210\320\275\320\276/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\321\201\320\277\320\265\321\210\320\275\320\276/Picture.svg" index a189ec1e4..103604d8c 100644 --- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\321\201\320\277\320\265\321\210\320\275\320\276/Picture.svg" +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\321\201\320\277\320\265\321\210\320\275\320\276/Picture.svg" @@ -1,7 +1,4 @@ - - - - - + + + diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" index eca5b29e2..a22515cc8 100644 --- "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217\320\236\320\261\320\236\321\210\320\270\320\261\320\272\320\265/Template.txt" @@ -66,7 +66,7 @@ } .failure .status::before { - content: url("data:image/svg+xml,%3C!-- Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23F4AF3D' fill-opacity='.7' fill-rule='evenodd' d='M9.20446966,8.00000012 L11.7854095,5.41906027 L10.583328,4.2169787 L8.0023881,6.79791856 L5.42144836,4.21697882 L4.2193668,5.41906038 L6.80030654,8.00000012 L4.21936692,10.5809397 L5.42144848,11.7830213 L8.0023881,9.20208168 L10.5833278,11.7830214 L11.7854094,10.5809399 L9.20446966,8.00000012 Z M8.0023881,14.5 C4.41253722,14.5 1.5023881,11.5898509 1.5023881,8 C1.5023881,4.41014913 4.41253722,1.5 8.0023881,1.5 C11.592239,1.5 14.5023881,4.41014913 14.5023881,8 C14.5023881,11.5898509 11.592239,14.5 8.0023881,14.5 Z'/%3E%3C/svg%3E%0A"); + content: url("data:image/svg+xml,%3C!-- Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%233574F0' fill-opacity='.7' fill-rule='evenodd' d='M9.20446966,8.00000012 L11.7854095,5.41906027 L10.583328,4.2169787 L8.0023881,6.79791856 L5.42144836,4.21697882 L4.2193668,5.41906038 L6.80030654,8.00000012 L4.21936692,10.5809397 L5.42144848,11.7830213 L8.0023881,9.20208168 L10.5833278,11.7830214 L11.7854094,10.5809399 L9.20446966,8.00000012 Z M8.0023881,14.5 C4.41253722,14.5 1.5023881,11.5898509 1.5023881,8 C1.5023881,4.41014913 4.41253722,1.5 8.0023881,1.5 C11.592239,1.5 14.5023881,4.41014913 14.5023881,8 C14.5023881,11.5898509 11.592239,14.5 8.0023881,14.5 Z'/%3E%3C/svg%3E%0A"); } .skipped .status::before { diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 14bd1e1a8..184a578fa 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -32,10 +32,13 @@ Subsystem.ЮТДвижок Subsystem.ЮТДинамическиПодключаемые Subsystem.ЮТПубличный + CommonPicture.ЮТЗапустить CommonPicture.ЮТНеизвестный CommonPicture.ЮТОшибка + CommonPicture.ЮТПерезапуститьУпавшие CommonPicture.ЮТПодсистема CommonPicture.ЮТПропущен + CommonPicture.ЮТСравнить CommonPicture.ЮТУпал CommonPicture.ЮТУспешно CommonPicture.ЮТЭлементыТестов diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index bad878f01..706a639eb 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -1442,7 +1442,7 @@ true false - 16.0 + 12.0 Left @@ -1886,7 +1886,7 @@ true - StdPicture.QueryWizardReplaceTable + CommonPicture.ЮТСравнить @@ -1928,7 +1928,7 @@ true - StdPicture.GenerateReport + CommonPicture.ЮТЗапустить @@ -1970,7 +1970,7 @@ true - StdPicture.GenerateReport + CommonPicture.ЮТЗапустить @@ -1991,7 +1991,7 @@ true - CommonPicture.ЮТУпал + CommonPicture.ЮТПерезапуститьУпавшие diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213.mdo" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213.mdo" index 943d35224..c5f111e5f 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213.mdo" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213.mdo" @@ -62,7 +62,7 @@ NavigationPanelImportant PictureAndText - CommonPicture.ЮТПодсистема + CommonPicture.ЮТЗапустить From cdac055ebbd71e917591ab0892c8f34f95e592d1 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 29 Mar 2024 01:59:01 +0300 Subject: [PATCH 43/47] #304 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Скорректированы описания устаревших методов --- .../Module.bsl" | 617 +++++++++--------- 1 file changed, 304 insertions(+), 313 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 806a927e8..35b6160b9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -68,59 +68,6 @@ КонецФункции -#Область Строки - -// Устарела Метод перенесен в см. ЮТСтроки.ДобавитьСтроку -// Конкатенирует строки, разделяя их разделителем -// -// Параметры: -// ИсходнаяСтрока - Строка - Исходная строка -// ДополнительнаяСтрока - Строка - Добавляемая строка -// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками -// -// Возвращаемое значение: -// Строка - Результат конкатенации строк -Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт - - ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ДобавитьСтроку", "ЮТСтроки.ДобавитьСтроку", "24.03"); - Возврат ЮТСтроки.ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель); - -КонецФункции - -// Устарела Метод перенесен в см. ЮТСтроки.РазделитьСтроку -// Возвращает массив на основании строки -// -// Параметры: -// Значение - Строка - преобразуемая строка -// Разделитель - Строка - строка-разделитель -// -// Возвращаемое значение: -// Массив Из Строка - массив строк -// -Функция РазложитьСтрокуВМассивПодстрок(Значение, Разделитель = ";") Экспорт - - ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.РазложитьСтрокуВМассивПодстрок", "ЮТСтроки.РазбитьСтроку", "24.03"); - Возврат ЮТСтроки.РазделитьСтроку(Значение, Разделитель); - -КонецФункции - -// Устарела Метод перенесен в см. ЮТСтроки.СтрокаСимволов -// Формирует строку из заданного количества повторяемых символов -// Параметры: -// Символ - Строка - Повторяемый символ -// Количество - Число - Количество повторений -// -// Возвращаемое значение: -// Строка - Строка повторяемых символов -Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт - - ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СформироватьСтрокуСимволов", "ЮТСтроки.СтрокаСимволов", "24.03"); - Возврат ЮТСтроки.СтрокаСимволов(Символ, Количество); - -КонецФункции - -#КонецОбласти - #Область ДатаВремя // Добавляет к дате указанное значение временных интервалов @@ -206,11 +153,292 @@ КонецФункции -#КонецОбласти - -#Область Коллекции +#КонецОбласти + +#Область ЧтениеДанных + +Функция ДанныеТекстовогоФайла(ИмяФайла) Экспорт + +#Если НЕ ВебКлиент Тогда + Чтение = Новый ЧтениеТекста; + Чтение.Открыть(ИмяФайла, "UTF-8"); + Текст = Чтение.Прочитать(); + Чтение.Закрыть(); + + Возврат Текст; +#Иначе + ВызватьИсключение "Чтение данных текстовых файлов в веб-клиенте не поддерживается"; +#КонецЕсли + +КонецФункции + +Функция ЗначениеИзJSON(СтрокаJSON) Экспорт + +#Если НЕ ВебКлиент Тогда + Чтение = Новый ЧтениеJSON; + Чтение.УстановитьСтроку(СтрокаJSON); + Значение = ПрочитатьJSON(Чтение); + Чтение.Закрыть(); + Возврат Значение; +#Иначе + ВызватьИсключение "Разбор JSON строки в веб-клиенте не поддерживается"; +#КонецЕсли + +КонецФункции + +#КонецОбласти + +// ПеременнаяСодержитСвойство +// функция проверяет наличие свойства у значения любого типа данных. Если передано НЕОПРЕДЕЛЕНО, то ф-ия всегда вернет Ложь +// +// Параметры: +// Переменная - Произвольный - переменная любого типа, для которой необходимо проверить наличие свойства +// ИмяСвойства - Строка - переменная типа "Строка", содержащая искомое свойства +// +// Возвращаемое значение: +// Булево - признак наличия свойства у значения +// +Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт + + Если Переменная = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + // Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением произвольного GUID'а + GUIDПроверка = Новый УникальныйИдентификатор; + СтруктураПроверка = Новый Структура; + СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); + // Заполняем созданную структуру из переданного значения переменной + ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); + // Если значение для свойства структуры осталось GUIDПроверка, то искомое свойство не найдено, и наоборот. + Возврат СтруктураПроверка[ИмяСвойства] <> GUIDПроверка; + +КонецФункции + +// СообщитьПользователю +// Формирует и выводит сообщение +// +// Параметры: +// ТекстСообщенияПользователю - Строка - текст сообщения. +Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт + + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = СокрЛП(ТекстСообщенияПользователю); + Сообщение.Сообщить(); + +КонецПроцедуры + +Функция СтрокаJSON(Значение, ИспользоватьСериализатор = Истина) Экспорт + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.СтрокаJSON"); +#Иначе + ЗаписьJSON = Новый ЗаписьJSON(); + ЗаписьJSON.УстановитьСтроку(); + Если ИспользоватьСериализатор Тогда + //@skip-check undefined-variable + СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Значение); + Иначе + ЗаписатьJSON(ЗаписьJSON, Значение); + КонецЕсли; + + Возврат ЗаписьJSON.Закрыть(); +#КонецЕсли + +КонецФункции // СтрокаJSON + +Функция ПредставлениеЗначения(Значение) Экспорт + + Попытка + Возврат СтрокаJSON(Значение); + Исключение + Возврат Строка(Значение); + КонецПопытки; + +КонецФункции + +// Параметры записи объекта +// +// Возвращаемое значение: +// Структура - Параметры записи: +// * ОбменДаннымиЗагрузка - Булево +// * ДополнительныеСвойства - Структура +// * РежимЗаписи - РежимЗаписиДокумента +// - Неопределено +Функция ПараметрыЗаписи() Экспорт + + ПараметрыЗаписи = Новый Структура(); + ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь); + ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура); + ПараметрыЗаписи.Вставить("РежимЗаписи", Неопределено); + + Возврат ПараметрыЗаписи; + +КонецФункции + +Функция УстановленБезопасныйРежим() Экспорт + + Возврат ЮТОбщийСлужебныйВызовСервера.УстановленБезопасныйРежим(); + +КонецФункции + +Функция МестноеВремяПоВременнойМетке(Метка) Экспорт + + Если ЗначениеЗаполнено(Метка) Тогда + Возврат МестноеВремя('00010101' + Метка / 1000); + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +Функция ПродолжительностьВСекундах(Продолжительность) Экспорт + + Возврат Продолжительность / 1000; + +КонецФункции + +Функция Модуль(ИмяМодуля) Экспорт + + Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(ИмяМодуля); + +КонецФункции + +Функция Менеджер(Знач Менеджер) Экспорт + +#Если Сервер Тогда + Возврат ЮТОбщийСлужебныйВызовСервера.Менеджер(Менеджер); +#Иначе + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте"); +#КонецЕсли + +КонецФункции + +Функция ТипСтруктуры(Структура) Экспорт + + Возврат ЮТКоллекции.ЗначениеСтруктуры(Структура, "__type__"); + +КонецФункции + +Функция ЭтаСтруктураИмеетТип(Структура, ИмяТипа) Экспорт + + Возврат ТипСтруктуры(Структура) = ИмяТипа; + +КонецФункции + +Процедура УказатьТипСтруктуры(Структура, ИмяТипа) Экспорт + + Структура.Вставить("__type__", ИмяТипа); + +КонецПроцедуры + +// Преостанавливает поток выполнения на указанное количество секунд +// +// Параметры: +// Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение +Процедура Пауза(Время) Экспорт + + Задержка = Цел(1000 * Время); + Компонента = ЮТКомпоненты.Пауза(); +#Если Сервер Тогда + Компонента.Ожидать(Задержка); +#Иначе + Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда + Компонента.Ожидать(Задержка); + Иначе + ВызватьИсключение "Пауза не работает на клиенте при отключенных синхронных вызовах"; + КонецЕсли; +#КонецЕсли + +КонецПроцедуры + +// Выводит сообщение в консоль (stdout) приложения +// +// Параметры: +// Сообщение - Строка - Выводимое сообщение +Процедура ВывестиВКонсоль(Сообщение) Экспорт + + Компонента = ЮТКомпоненты.Консоль(); +#Если Сервер Тогда + Компонента.Напечатать(Сообщение); +#Иначе + Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда + Компонента.Напечатать(Сообщение); + Иначе + Компонента.НачатьВызовНапечатать(ЮТАсинхроннаяОбработкаСлужебныйКлиент.НовыйПустойОбработчик(3), Сообщение); + КонецЕсли; +#КонецЕсли + +КонецПроцедуры + +// Возвращяет макет +// +// Параметры: +// ИмяМакета - Строка - Возможные значения +// * Общий макет, например, ОбщийМакет.ЮТМетаданные +// * Макет объекта метаданных, например, Справочник.Товары.ПечатнаяФорма +// * Область макета, например, Справочник.Товары.ПечатнаяФорма.Шапка, ОбщийМакет.ЮТМетаданные.Заголовок +// +// Возвращаемое значение: +// ТабличныйДокумент, ТекстовыйДокумент, ДвоичныеДанные - Макет или его область +Функция Макет(ИмяМакета) Экспорт + + Возврат ЮТОбщийСлужебныйВызовСервера.Макет(ИмяМакета); + +КонецФункции + +#Область УстаревшиеПроцедурыИФункции + +// Устарела. Метод перенесен в см. ЮТСтроки.ДобавитьСтроку +// Конкатенирует строки, разделяя их разделителем +// +// Параметры: +// ИсходнаяСтрока - Строка - Исходная строка +// ДополнительнаяСтрока - Строка - Добавляемая строка +// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками +// +// Возвращаемое значение: +// Строка - Результат конкатенации строк +Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт + + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ДобавитьСтроку", "ЮТСтроки.ДобавитьСтроку", "24.03"); + Возврат ЮТСтроки.ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель); + +КонецФункции + +// Устарела. Метод перенесен в см. ЮТСтроки.РазделитьСтроку +// Возвращает массив на основании строки +// +// Параметры: +// Значение - Строка - преобразуемая строка +// Разделитель - Строка - строка-разделитель +// +// Возвращаемое значение: +// Массив Из Строка - массив строк +// +Функция РазложитьСтрокуВМассивПодстрок(Значение, Разделитель = ";") Экспорт + + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.РазложитьСтрокуВМассивПодстрок", "ЮТСтроки.РазбитьСтроку", "24.03"); + Возврат ЮТСтроки.РазделитьСтроку(Значение, Разделитель); + +КонецФункции + +// Устарела. Метод перенесен в см. ЮТСтроки.СтрокаСимволов +// Формирует строку из заданного количества повторяемых символов +// Параметры: +// Символ - Строка - Повторяемый символ +// Количество - Число - Количество повторений +// +// Возвращаемое значение: +// Строка - Строка повторяемых символов +Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт + + ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СформироватьСтрокуСимволов", "ЮТСтроки.СтрокаСимволов", "24.03"); + Возврат ЮТСтроки.СтрокаСимволов(Символ, Количество); + +КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.ЗначениеСтруктуры +// Устарела. Метод перенесен в см. ЮТКоллекции.ЗначениеСтруктуры // Возвращает требуемое поле структуры. В случае отсутствия поля возвращает значение по умолчанию // // Параметры: @@ -227,7 +455,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.ДополнитьСтруктуру +// Устарела. Метод перенесен в см. ЮТКоллекции.ДополнитьСтруктуру // Функция, объединяющая две коллекции( с типами Структура или Соответствие) в одну структуру, если это возможно // // Параметры: @@ -253,7 +481,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьРекурсивно +// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьРекурсивно // Создает копию экземпляра указанного объекта. // Примечание: // Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.). @@ -271,7 +499,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьСтруктуру +// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьСтруктуру // Создает копию значения типа Структура // // Параметры: @@ -287,7 +515,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьСоответствие +// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьСоответствие // Создает копию значения типа Соответствие. // // Параметры: @@ -303,7 +531,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьМассив +// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьМассив // Создает копию значения типа Массив. // // Параметры: @@ -319,7 +547,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.СкопироватьСписокЗначений +// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьСписокЗначений // Создает копию значения типа СписокЗначений. // // Параметры: @@ -335,7 +563,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения +// Устарела. Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения // // Параметры: // Коллекция - Произвольный @@ -350,7 +578,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения +// Устарела. Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения // // Параметры: // Коллекция1 - Массив из Произвольный @@ -365,7 +593,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.ЗначениеВМассиве +// Устарела. Метод перенесен в см. ЮТКоллекции.ЗначениеВМассиве // Создает массив с переданными значениями // // Параметры: @@ -399,7 +627,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.ДополнитьМассив +// Устарела. Метод перенесен в см. ЮТКоллекции.ДополнитьМассив // // Параметры: // Приемник - Массив из Произвольный @@ -411,7 +639,7 @@ КонецПроцедуры -// Устарела Метод перенесен в см. ЮТКоллекции.ВСоответствие +// Устарела. Метод перенесен в см. ЮТКоллекции.ВСоответствие // Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. // // Параметры: @@ -427,7 +655,7 @@ КонецФункции -// Устарела Метод перенесен в см. ЮТКоллекции.ВСтруктуру +// Устарела. Метод перенесен в см. ЮТКоллекции.ВСтруктуру // Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. // // Параметры: @@ -443,44 +671,7 @@ КонецФункции -#КонецОбласти - -#Область ЧтениеДанных - -Функция ДанныеТекстовогоФайла(ИмяФайла) Экспорт - -#Если НЕ ВебКлиент Тогда - Чтение = Новый ЧтениеТекста; - Чтение.Открыть(ИмяФайла, "UTF-8"); - Текст = Чтение.Прочитать(); - Чтение.Закрыть(); - - Возврат Текст; -#Иначе - ВызватьИсключение "Чтение данных текстовых файлов в веб-клиенте не поддерживается"; -#КонецЕсли - -КонецФункции - -Функция ЗначениеИзJSON(СтрокаJSON) Экспорт - -#Если НЕ ВебКлиент Тогда - Чтение = Новый ЧтениеJSON; - Чтение.УстановитьСтроку(СтрокаJSON); - Значение = ПрочитатьJSON(Чтение); - Чтение.Закрыть(); - Возврат Значение; -#Иначе - ВызватьИсключение "Разбор JSON строки в веб-клиенте не поддерживается"; -#КонецЕсли - -КонецФункции - -#КонецОбласти - -#Область ПроверкаМетодов - -// МетодМодуляСуществует +// Устарела. МетодМодуляСуществует // Проверяет существование публичного (экспортного) метода у модуля // // Параметры: @@ -498,7 +689,7 @@ КонецФункции -// Проверяет существование публичного (экспортного) метода у объекта +// Устарела. Проверяет существование публичного (экспортного) метода у объекта // // Параметры: // Объект - Произвольный - Объект, метод которого нужно поискать @@ -513,10 +704,7 @@ КонецФункции -#КонецОбласти - -#Область ВызовМетодов - +// Устарела. Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВыполнитьМетод", Неопределено, "24.03"); @@ -524,6 +712,7 @@ КонецФункции +// Устарела. Функция ВычислитьБезопасно(Выражение) Экспорт ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВычислитьБезопасно", Неопределено, "24.03"); @@ -531,77 +720,7 @@ КонецФункции -#КонецОбласти - -// ПеременнаяСодержитСвойство -// функция проверяет наличие свойства у значения любого типа данных. Если передано НЕОПРЕДЕЛЕНО, то ф-ия всегда вернет Ложь -// -// Параметры: -// Переменная - Произвольный - переменная любого типа, для которой необходимо проверить наличие свойства -// ИмяСвойства - Строка - переменная типа "Строка", содержащая искомое свойства -// -// Возвращаемое значение: -// Булево - признак наличия свойства у значения -// -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт - - Если Переменная = Неопределено Тогда - Возврат Ложь; - КонецЕсли; - - // Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось GUIDПроверка, то искомое свойство не найдено, и наоборот. - Возврат СтруктураПроверка[ИмяСвойства] <> GUIDПроверка; - -КонецФункции - -// СообщитьПользователю -// Формирует и выводит сообщение -// -// Параметры: -// ТекстСообщенияПользователю - Строка - текст сообщения. -Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт - - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = СокрЛП(ТекстСообщенияПользователю); - Сообщение.Сообщить(); - -КонецПроцедуры - -Функция СтрокаJSON(Значение, ИспользоватьСериализатор = Истина) Экспорт - -#Если ВебКлиент Тогда - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.СтрокаJSON"); -#Иначе - ЗаписьJSON = Новый ЗаписьJSON(); - ЗаписьJSON.УстановитьСтроку(); - Если ИспользоватьСериализатор Тогда - //@skip-check undefined-variable - СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Значение); - Иначе - ЗаписатьJSON(ЗаписьJSON, Значение); - КонецЕсли; - - Возврат ЗаписьJSON.Закрыть(); -#КонецЕсли - -КонецФункции // СтрокаJSON - -Функция ПредставлениеЗначения(Значение) Экспорт - - Попытка - Возврат СтрокаJSON(Значение); - Исключение - Возврат Строка(Значение); - КонецПопытки; - -КонецФункции - +// Устарела. Функция ПредставлениеТипа(Тип) Экспорт ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ПредставлениеТипа", Неопределено, "24.03"); @@ -609,26 +728,7 @@ КонецФункции -// Параметры записи объекта -// -// Возвращаемое значение: -// Структура - Параметры записи: -// * ОбменДаннымиЗагрузка - Булево -// * ДополнительныеСвойства - Структура -// * РежимЗаписи - РежимЗаписиДокумента -// - Неопределено -Функция ПараметрыЗаписи() Экспорт - - ПараметрыЗаписи = Новый Структура(); - ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь); - ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура); - ПараметрыЗаписи.Вставить("РежимЗаписи", Неопределено); - - Возврат ПараметрыЗаписи; - -КонецФункции - -// Описание типов любая ссылка. +// Устарела. Описание типов любая ссылка. // // Возвращаемое значение: // ОписаниеТипов - Описание типов любая ссылка @@ -639,116 +739,7 @@ КонецФункции -Функция УстановленБезопасныйРежим() Экспорт - - Возврат ЮТОбщийСлужебныйВызовСервера.УстановленБезопасныйРежим(); - -КонецФункции - -Функция МестноеВремяПоВременнойМетке(Метка) Экспорт - - Если ЗначениеЗаполнено(Метка) Тогда - Возврат МестноеВремя('00010101' + Метка / 1000); - Иначе - Возврат Неопределено; - КонецЕсли; - -КонецФункции - -Функция ПродолжительностьВСекундах(Продолжительность) Экспорт - - Возврат Продолжительность / 1000; - -КонецФункции - -Функция Модуль(ИмяМодуля) Экспорт - - Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(ИмяМодуля); - -КонецФункции - -Функция Менеджер(Знач Менеджер) Экспорт - -#Если Сервер Тогда - Возврат ЮТОбщийСлужебныйВызовСервера.Менеджер(Менеджер); -#Иначе - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте"); -#КонецЕсли - -КонецФункции - -Функция ТипСтруктуры(Структура) Экспорт - - Возврат ЮТКоллекции.ЗначениеСтруктуры(Структура, "__type__"); - -КонецФункции - -Функция ЭтаСтруктураИмеетТип(Структура, ИмяТипа) Экспорт - - Возврат ТипСтруктуры(Структура) = ИмяТипа; - -КонецФункции - -Процедура УказатьТипСтруктуры(Структура, ИмяТипа) Экспорт - - Структура.Вставить("__type__", ИмяТипа); - -КонецПроцедуры - -// Преостанавливает поток выполнения на указанное количество секунд -// -// Параметры: -// Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение -Процедура Пауза(Время) Экспорт - - Задержка = Цел(1000 * Время); - Компонента = ЮТКомпоненты.Пауза(); -#Если Сервер Тогда - Компонента.Ожидать(Задержка); -#Иначе - Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда - Компонента.Ожидать(Задержка); - Иначе - ВызватьИсключение "Пауза не работает на клиенте при отключенных синхронных вызовах"; - КонецЕсли; -#КонецЕсли - -КонецПроцедуры - -// Выводит сообщение в консоль (stdout) приложения -// -// Параметры: -// Сообщение - Строка - Выводимое сообщение -Процедура ВывестиВКонсоль(Сообщение) Экспорт - - Компонента = ЮТКомпоненты.Консоль(); -#Если Сервер Тогда - Компонента.Напечатать(Сообщение); -#Иначе - Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда - Компонента.Напечатать(Сообщение); - Иначе - Компонента.НачатьВызовНапечатать(ЮТАсинхроннаяОбработкаСлужебныйКлиент.НовыйПустойОбработчик(3), Сообщение); - КонецЕсли; -#КонецЕсли - -КонецПроцедуры - -// Возвращяет макет -// -// Параметры: -// ИмяМакета - Строка - Возможные значения -// * Общий макет, например, ОбщийМакет.ЮТМетаданные -// * Макет объекта метаданных, например, Справочник.Товары.ПечатнаяФорма -// * Область макета, например, Справочник.Товары.ПечатнаяФорма.Шапка, ОбщийМакет.ЮТМетаданные.Заголовок -// -// Возвращаемое значение: -// ТабличныйДокумент, ТекстовыйДокумент, ДвоичныеДанные - Макет или его область -Функция Макет(ИмяМакета) Экспорт - - Возврат ЮТОбщийСлужебныйВызовСервера.Макет(ИмяМакета); - -КонецФункции +#КонецОбласти #КонецОбласти From 96caa3860aa26a70672881cd0da8800bc2db33e8 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 29 Mar 2024 02:03:30 +0300 Subject: [PATCH 44/47] #304 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Вывод в лог информации о вызовах устаревших методов --- .../Module.bsl" | 16 ++++++++--- .../Module.bsl" | 6 +++-- .../Module.bsl" | 2 ++ .../Form.form" | 27 ------------------- .../Module.bsl" | 4 +++ 5 files changed, 23 insertions(+), 32 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" index fc5453033..1faca3303 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" @@ -34,7 +34,17 @@ // Сообщение - Строка - Сообщение Процедура Информация(Сообщение) Экспорт - ЮТЛогированиеСлужебный.Записать("INF", Сообщение, 1); + ЮТЛогированиеСлужебный.Записать("INF", Сообщение, 10); + +КонецПроцедуры + +// Выводит предупреждение +// +// Параметры: +// Сообщение - Строка - Сообщение +Процедура Предостережение(Сообщение) Экспорт + + ЮТЛогированиеСлужебный.Записать("WRN", Сообщение, 20); КонецПроцедуры @@ -44,7 +54,7 @@ // Сообщение - Строка - Сообщение Процедура Ошибка(Сообщение) Экспорт - ЮТЛогированиеСлужебный.Записать("ERR", Сообщение, 2); + ЮТЛогированиеСлужебный.Записать("ERR", Сообщение, 99); КонецПроцедуры @@ -54,7 +64,7 @@ Функция УровниЛога() Экспорт - Возврат Новый ФиксированнаяСтруктура("Отладка, Информация, Ошибка", "debug", "info", "error"); + Возврат Новый ФиксированнаяСтруктура("Отладка, Информация, Предупреждение, Ошибка", "debug", "info", "warning", "error"); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 24842a1f2..51d5db8ff 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -99,9 +99,11 @@ КонецЕсли; Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда - ДанныеКонтекста.УровеньЛога = 2; + ДанныеКонтекста.УровеньЛога = 99; ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда - ДанныеКонтекста.УровеньЛога = 1; + ДанныеКонтекста.УровеньЛога = 10; + ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда + ДанныеКонтекста.УровеньЛога = 20; Иначе ДанныеКонтекста.УровеньЛога = 0; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 9b89b0725..4283e2b32 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -26,6 +26,8 @@ Сообщение = СтрШаблон("%1. Рекомендуется использовать '%2'", Сообщение, РекомендуемыйМетод); КонецЕсли; + ЮТЛогирование.Предостережение(Сообщение); + Если ЮТСтроки.СравнитьВерсии(Версия, ВерсияЗапретаИспользованияУстаревших()) <= 0 Тогда ВызватьИсключение Сообщение; Иначе diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" index 04a3d1e56..70e3150f5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" @@ -709,33 +709,6 @@ true true true - - - ru - Отладка - - - debug - - - - - ru - Информация - - - info - - - - - ru - Ошибки - - - error - - diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index dbfca0e12..013789fbd 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -26,6 +26,10 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Для Каждого УровеньЛог Из ЮТЛогирование.УровниЛога() Цикл + Элементы.УровеньЛога.СписокВыбора.Добавить(УровеньЛог.Значение, УровеньЛог.Ключ); + КонецЦикла; + Конфигурация = ЮТФабрика.ПараметрыЗапуска(); ФорматОтчета = Конфигурация.reportFormat; УровеньЛога = Конфигурация.logging.level; From 463468d44dd66a6c3af16efa65be2f38ec9c771e Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 29 Mar 2024 02:20:58 +0300 Subject: [PATCH 45/47] #304 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправлены тесты --- .../Module.bsl" | 2 +- .../Module.bsl" | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" index a513864d0..311c0a5f3 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -38,7 +38,7 @@ Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало; ЮТест.ОжидаетЧто(Дельта) - .МеждуИсключаяГраницы(3000, 3200); + .МеждуИсключаяГраницы(3000, 3999); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index 5696c2f8d..8b626e5d9 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -364,11 +364,11 @@ Процедура ВСтруктуру() Экспорт Коллекция = Новый Массив; - Ключ1 = ЮТест.Данные().СлучайнаяСтрока(); + Ключ1 = ЮТест.Данные().СлучайныйИдентификатор(); Значение1 = ЮТест.Данные().СлучайнаяСтрока(); - Ключ2 = ЮТест.Данные().СлучайнаяСтрока(); + Ключ2 = ЮТест.Данные().СлучайныйИдентификатор(); Значение2 = ЮТест.Данные().СлучайнаяСтрока(); - Ключ3 = ЮТест.Данные().СлучайнаяСтрока(); + Ключ3 = ЮТест.Данные().СлучайныйИдентификатор(); Значение3 = ЮТест.Данные().СлучайнаяСтрока(); Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ1, Значение1)); From dca7667a0d7bd748cd694b68b8bec1578649d89b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 29 Mar 2024 02:40:11 +0300 Subject: [PATCH 46/47] #171 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Описание требований --- documentation/docs/getting-started/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/documentation/docs/getting-started/index.md b/documentation/docs/getting-started/index.md index 5a4098bc0..7ff83f31e 100644 --- a/documentation/docs/getting-started/index.md +++ b/documentation/docs/getting-started/index.md @@ -12,3 +12,19 @@ YAxUnit - это расширение конфигурации с открыты Прежде всего нужно пройти через [процесс установки](install/). После этого вы можете попробовать написать свой [первый тест](first-test.md) или ознакомиться с возможностями YAxUnit изучив [руководство](../features/). + +## Системные требования + +| | | +|--------------------------------------:|-------------------------| +| Версия платформы 1С:Предприятие | `8.3.10+` | +| Поддерживаемые ОС | `Windows`, `Linux` | +| Вариант встроенного языка | `Русский`, `Английский` | +| Поддерживаемые режимы работы: | | +| Тонкий клиент | ✅ | +| Тонкий клиент | ✅ | +| Толстый клиент управляемое приложение | ✅ | +| Толстый клиент обычное приложение | ✅ | +| Web-клиент | ❌ | +| Файловая информационная база | ✅ | +| Клиент-серверная информационная база | ✅ | From 231d74b8b0f56b18d52ce1fda711708639cd56e0 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 29 Mar 2024 03:06:36 +0300 Subject: [PATCH 47/47] Bump version Release note --- .../blog/2024/03/29-engine-release.md | 42 +++++++++++++++++++ .../src/Configuration/Configuration.mdo | 2 +- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 documentation/blog/2024/03/29-engine-release.md diff --git a/documentation/blog/2024/03/29-engine-release.md b/documentation/blog/2024/03/29-engine-release.md new file mode 100644 index 000000000..f9e82a8da --- /dev/null +++ b/documentation/blog/2024/03/29-engine-release.md @@ -0,0 +1,42 @@ +--- +title: YaxUnit. Версия 24.03 +authors: alkoleft +tags: [releases, yaxunit] +--- + +[Release 24.03](https://github.com/bia-technologies/yaxunit/releases/tag/24.03) + +## Новое в версии + +### Документация + +* Переписана вся [документация](https://bia-technologies.github.io/yaxunit/) +* Включить поиск по документации [#289](https://github.com/bia-technologies/yaxunit/issues/289) + +### Тестовые данные + +* Добавить методы генерации случайной даты [#269](https://github.com/bia-technologies/yaxunit/issues/269) +* Добавить конструктор объектов для XDTO [#271](https://github.com/bia-technologies/yaxunit/issues/271) +* Метод `ЮТКонструкторТестовыхДанныхСлужебный.Фикция` не работает для общих реквизитов [#218](https://github.com/bia-technologies/yaxunit/issues/218) +* Добавить метод в КонструкторОбъекта для установки реквизитов по коллекции [#249](https://github.com/bia-technologies/yaxunit/issues/249) +* Поддержка записи в режиме обмен данными загрузка для регистров из конструктора объекта [#270](https://github.com/bia-technologies/yaxunit/issues/270) + +### Утверждения + +* Добавить утверждение/предикат `ВСписке` [#283](https://github.com/bia-technologies/yaxunit/issues/283) + +### Прочее + +* Добавить возможность задавать разные описания для тестов с параметрами [#276](https://github.com/bia-technologies/yaxunit/issues/276) +* Сбор лога выполнения теста [#282](https://github.com/bia-technologies/yaxunit/issues/282) + +## Исправленные ошибки + +* Падает с ошибкой создание элемента справочника с настройкой `ОбменДаннымиЗагрузка = Истина` [#273](https://github.com/bia-technologies/yaxunit/issues/273) +* При повторном запуске упавшего теста из Предприятия реального вызова не происходит [#248](https://github.com/bia-technologies/yaxunit/issues/248) +* Исправить описания устаревших методов, чтобы EDT их подсвечивала. [#304](https://github.com/bia-technologies/yaxunit/issues/304) + +## Важно + +Выполнен **рефакторинг** модулей YAxUnit для физического разделения публичного и служебного программного интерфейса. +Попытался по максимуму сохранить обратную совместимость. diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 184a578fa..3d04b03a7 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -20,7 +20,7 @@ 8.3.10 AddOn Russian - 24.02 + 24.03 Русский Adopted

*-R$fu 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 mC^+tZrkd39L1XWZX3 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 z znx2Zw-%}0jiv1OLfPdShZ%?L2kRj7sDLGnp$N`D`--4B-)XRfC&5*b|1e|o)bX)e> zuOtU^h0m{bm0VkM%vu=t+uej2_1%I-O~g4?KQwe34y%`B%lYhcpi8P3X0?UcU6#8L zy>x@SL8{MuO6K`bT|Cm(*Yv?(UwAK8hy+1Cq$v!I1CD<}wVRj{?VHA>74gGmQU^w- z0n{F|gpF7dUl1biW~2GszH#B+{4;J2A0E-0u)g zJUG!jeXh+Gxx37$eY~r&Da*a3Q}(zn@4A$2ZW_x!FVn(1ORxcRj;0|m=Key z4^mJDw&rVN6icE_7TT*P+96|~4L6U^FT#~H`U5>x9iD}upCn%Qa@yZ}Wy>_SmFE`q zqA+`GGm+Hw(DgX(l`%^SQS-%ozl>Y3%VCu2CDrtHxjZV`S`rsZ=l8Qb8ouNNMN!+W zX>e^}l6qy!Ot~zdK!1%Wh3VFOs=32$o&X-F#n~gcXXA>=8PFE8x+GHQ{JSC^=ZZAH zyE2!m!JK+H$1grbXwyGio$IY8F8hzxCrzHBZ~g-Lu2NL+|I&0qQ|G zlm5VrzE6yUn{f;K(#<`2CN~TB`edcnj}KFsD|Pln_tB`Ia|M4ph#^PDV9!pM5{8lm zO&g?5E}YktxK4Sm3VZDT0Ed6IY5U{B#{;4?UAjnBqUNNz*77K{IrZ=gi#qjs1;~03 zUv~=(+$KId6kDBMDo&ZdMe0Wk;M zAz62dV#P$ zeGFi)A8i_}yQ`FPwC88{9`eD2zg0aF2~5xL#SB#hPJR@^`;<(!tCdAEb!gL!j&5AS z>`7g72)uuz4U$967Riz~kf!=L3D|*f9GfmZTrOzV?(W0uDa@96DG?ADm;=~<@vAz) zOEbhZ?EEF~bfq_+d=99}`V?W!NzRPKhJ5D5a4#?gv9apRka{YOS1&opW)bOUoTWW~ zrIf#B7%8Br6~>DiGMI`L*$B(cOn}|=JUTVu#QRM02-DU6Bb1gL_WB|EF>8u(w`*7T za%n8i$_s<)EygzA^V7huCuqVwTZdKaVKQ)pp>kkrEpRZ_G(KB@kbz`+NVj@t^d0Em z6sWg{YmcI2!fmy3BdyD>kUezdq0lsj_k59sKvXs%7pk$HbYgp|&8FmXK%U*b{_W&n zB3OqP936-pTO$d<8z3O*Q8e%<<~<0P%io=Yg=rsCF1avU1R{)%2+N-~KHeZ+m_IU8 zbip>$RCdM$t_7{C^1=!yvkFodIJVaR{`Wyh+lp?4BDC(LfmBUK0L2yKQ9IvkO4FH* zLD0i`p2Xcq`H@{B@h8(&8Il+A->lZAh7wGGEt@HG?pCXPM>ylB4B#3 zR}e)s)jd6L0lZgsm=;6H)%2}szMl~&4d56w=;Xgo4`C=M`EwheN=E=f1THli6On*! z&`pH9F1@|Rgu5fYew}Qq%N8?%WL(q3BxYbMc1oH5z$?qVnrztEvq*J1@5qhdF5Nvw zlD$Cxq(>|mH*62IkJ}y!PbL$6EG}ew%woWO5`Gf$JX=XXAM2Dl$9~^ZUkZ>W?rxts zKdRF6ObHP>)r8%!>fP1%2wDfW%>?o%0)IQ;yr#50qG7E(Bgys3#f>?B3c^uPh0W=o4Y8p8ZQu+V9{)K)>@}vf&^Au!SyZheYe{6p zhzR8l^jxQfY~Q2AIrzJ~Gt z`&Yc$;J0@I-ZTMWG!S&_kku?b=S(^$!~U=+ZOx8k7WHNx&@R3wWgjb4hIb+E7MIX3 zLN-H+l%Lu@#sSg3PW95!3Rc9E_->p9=m2Ykq>JM;%0q$lpK@b83w8=!fP$`GINZQQFMFXie(!U>=)3J026J9W|9m%S<^No2@EBC>j!0f?A5C=Je8w^h z<($Zk{T|@r8}j>CVajZlDxqM!|CB(MMz|4DM+el1cf|MAv3rtWvgxw|>wS(I^?57K zHDIG==N+5SdW15Zw8j~0*_~AQ$Wu2 zhN^)}6q~BLdjygd-oRrM=`yLwT*>-PyEUcN_(mbAE&l6JuHWLpeXK5$EW|+USsTS< zQJ3#=R*KQ*xz4!>RtyL9V=%PV;jf9{k`Vfojc^Ow!O_}Y_Y?CPw#Dy_P)8ex*<75! zMfahR4vfXc;zjU;`z(kzY|Pj|S;45U9A#M;V&DXAXEU~B%Vh%e-sp}$Ky!AZ^j&F& zpeCJZ7lNLNpWnP7CYDRa2a3<}Py7gEJo07_pC^OawzjsO%-mfF#mgk|WvD1$;okq) zP76gM2JRtrD16Wh;4{80(WL~&%OW&I=Uamf3FSfHL5(k7?RN1f&DjNI6TT!Sr^PhM&-le z5y4q8nV&UMH|u9=p`ziZ;OW6MljC>OY{ssZExFSK6}p3_{U|lZK7|jq>5;A04&>V0 z@z(tiihIep;Myu2WdIn=U)Wxv4+%rQ&xd!l7#HYaZsbCNU%h6J@mc@!gU zZnWoM=XUyg`}F@Uy=POo7*woUtwasn;QMN8F&YX;;C)0UFIuD{y9_1eV)`!-EkDfG zV(_Xq^7r~Y42ei!_7)(1^tOYr!TyQFJ0b+BF2m_Rm<%SZD_h~0dX5n%?^7vyi)HUpgkdJZaaPFmNlZXZh%c@!-l?)@7G)InU0 z+nWMc{5(+H3v#5|`R2SqglLnqx-6s1ibBNp*%a*e;BL?VzVf(=p<(QT^-DvcBO14w zd|#X{xU9y0`LRVI%FU@TDkI}$lMd0)AoHHTX`v_8@BO+|^7q*A8`|O4uAYNq@sE*m z7vI{CW6XW=JaTTAudvRq#-DRZr!cx-(-v?@2sThP-{ZkOu>Vb7xwOk2fVbT#5)X;c z*V2zXfQ%avq<4q4v+4i;b61ihrtG0Q)is>>(R><}xA2DRNpW#;56}NS_`gN#*z-2AN2pR0g>2op)(iX^_C^G7}@`v;ZLak3Iix!MBu#@ z|Ct|5Duz!rJp+RX7cS!4^~nFu`3c=n)6^_n0+WcN`~2^;HW#k`_LT- z;aEmK93QuMYs!6oIUH2@&*zHn#O^Di`QT}{VPdB$8JP52a-#0p6_k{uBp$C!X#0lk zkt2u*bEPO5-iuIp{+}DOTHDxUcc`?%V3m$I+k^6zXc?W_K*v>mD{(=&|21VmBuPZ= zMjg8-p$S0tdbyq*SOs48-?eJR(%i|87Yp-4bxIUyE*^Gl(6Pi=|FT<#Jinx|Ycdao z-K2U|I_1k+>5O8Zj`<=vux+OVJ@m4bz|2{lN>2=>Et@w&w3XKzW_GW9eK>l><0b5q ztXdu2SfInzy(gpnN5V7sb|iM~$HvYv%Z49av#EVts%&$cCfN1HAfiT3W$*byg4XrM zbL-kfn@qnKVW|8@^;%DxT$68K;ZQh5>=YqTI?}Lm=2q!2wdqDV^MA4dDEsvV)5d=s zF8+~`lasT)_I3D7WsBUC@cwjBqqMiTAK7=}uF{)+t?qzBb}O`d{y?rfKuUp7O2>$? zTRxc(&DhR|nXIa*6H(PoT#V{Hc7%J{q%Llrd$7S|H83ciKWF8bluO}$bpo- z?n;hfU){Y7G>d5`4a8bF=~DEpBi7OYmzYNk0 zk+1(lu*5I)$BKlv;I9D_seczWcWdYKl~&5-bY;!$@fLsopbXZZVr@}%^hOI!0M7)) z6qV8fo16#d0Sd-K`!p$W1|?ENpzP)E>ww#fC6jS#*GUW05%h0zCqG>N7Vk69S}+yS z?sCRF=s;g*4hoV_s?JQa`Q(e=e(FfJbMaTIl)r1t9{L$V?`sF?o?h3yUL6SCq;FoF zFZjU!>xh)Eu6i0bbV2^A>gtmM=iQ20TD1BCKx}g6Bj{s91bnmIX78#i_;|G#AzqX) zCvz0M(F4of#G_p<1&8E>AF|UbhbuRwjh3FpEl(jmIYB8z2A8~uP^}jzNS#q1fv=D{ z5*Bu8VYx|)_|!1ewSgnnh3fF=^;3blq`8K;qwn*5o_Iij*bE&X2{$r=nRe)Mw-J&o z@PKUm@^9%fPHoy^BT7Tvd1TAOYm#zU&3EtHroEC9)opBv%#Zy?I6AVu+gP2Phj2gE zbuh}X(3@(I_1$I35sR~QSfC)o5dNhwi$5g7XqTKVwY$el_uCsP1A}6beLAtLBK{9S z?imkO%xG}`2`!G&73?VQe+AuCbKbpLb&e#0&)srzjf~0}{e|RxK zWs4^v?ia>ll3kIhMgc8QO!X`}6M+8F0LhHfd0tiDJt3>gWlWaHQVn*LRmb5z`mcVD z{9VpDp9cE(?{&2!!733FkK>>C(a@IA{S=YzP6WrCksV9^21qguD<_Vn@2PkTMA0lO zec!kwDoQ?@(fr*>{vl8im3r8>dHNZC;X>02!~T0IdYgVnZhz&HDrGELfv!c=S6x2n zoXXfI-R)gSxW;~ng&KN9m8@avHr)mz_uGlq^0U)?Zt!wyU?7QIO`GkjeaP zu?hBrJu6lxsXA(kQSlbaOhp+@?F#u_shmn#=O60opI~N@vr8&b#bCNn6=W#vH~v^6 zb>l`(DZ=|P_K{AS3jRHg4dQe$Q)_x2vi)&rEGcc*2 zrku5zGT%!Px=?_wxGBGsb^H% z+vNH18#=<^z3kOsd9xwV6y5SEd2J)EiR3J&GRtaWSSr_Vp-tveK}EQqZ(le|zRy2- zG7>wcb%N@2Wk$!b%rvYe&RyHC9&C2?%9S*fC4M;a?PD!Wx%##qbGmzETwLEh^!K-@ z&pW$lQW0>g{kgX!I&Rajl|)*HAneB1u&cez7WesS6LK?hnHeLF(JUELvn?)h{gx@F z{2vqmxP`NM>>Sb4Y^O8Vt}aV<6XX0af(C^`TkjzqQ(Y979D?YQs%NaKhKYNgXm$HFA4)U7=*N{doa7X65{gSegw#k!I?%flWkia;)XiYGNVqhFNGnXl6H zcUml3^jI%KL&8p-%Pn+7N|#H$6h+zik8yjP@(zDIeDD=0cZyDR2_2N%vryo$@bxgt z$j6R~d%M);Pv)sent+TD{XMHUs6h$Vg_4{715Z=y9CzA*MjM>&K-1}m^5;bd((%-k z{viyz1e02j>^>QlYfTuf9tt)gH`&BVuo2`RUo0txS;@@2inc+_LJf}Vgo2$fezBRv zy!(LO&tknW;cQ5N5%oY$X$LI4GvSYK+28Ki+r^tFRcOZ4BQ>DSsZ}OxA$s2YhVQFz zR!<{u0ZwAe^+sCf2D%9*YSsaa;Od0>syQ`nrnGFMwy)dvg5nacDXfUH7w|4p28J>o z2W%0T@?l(+%5A}0H6lN?m8pxV(9$~B#r3ha5kv^tnNAw4>Q}n-3hJp@l4q~bPnZql zkE^CDA`O!;%Q5zk7z?i@oFJj1fqj@{V_UfRZ_VPvK_;`|Pj&EA(XiWB9D2>x$ik`b@_?L+(#9L5~ z^sgtIX;emEo#-H+^U5TlK6ew_*X(EGn2eU0p3yu`KoxrXH@zG^C+IZp;18>Hks9IZ z8{WX8!da>l356OJcI=!5#7hL6oJ1$Xx{7TWCUt*as%;IRWeJFeLPD^a?^GKCIWT-M zg`a9sXSnx~CNFYnXl;{nKz~n?ZB`oZG5M0+W~9DgtW^kz4I$@qzqHsHJv2k+G>X{Ptyd7NK~IWf8RIVS@Io??&WOW(Bw z87+7_ec7%zbbF=2RQL3|xGrnah{x#Xp14$(1a&y|_uyFVW*+@{c>++@5Q`9h_hWFwvU5oGXIJ?tzB=o`{ zvCZVykzY%Gpfi`EH2s=z_HIS))VrpvFA*Ml1&LyX434V%2%lx76eKCXni=o}-7JyE4a+;-RgWH~%a z!qffWFdxUBQhpS!R4PPwWOQvPypxDFIE^(e1AV(1P0|~!_&9W=%uf0+oX7!(iZ&J? zf7ct0X;A`a!WQ$pMC@NWN@DySk-%J|WuxeXJCN#+Iya2bK!x}sexS}4;JRNQ$Xw9( zYcUvgzLChY3)R$#A_t8~sr`AUge{Eyghf0W?p-j!4Ku?LXGeexR7l2T@m9$_j1k5` zf{z&?M~7JS&;O>inQn!q#nIM>%~j(tD&d=|gH3=aIa>!0SzS7O+binVj-GsRsxOV# zT9vP9a@|J@kXEi9cSQug^cE10LA_YeT+T!j(YJAu+3*zHIjHe&fa8JoxD>noEX;XmGD=fT5nX35!kepLF&JZRj^qurYZ~dj>e>nu z3PQ>T5_rl1g0*R+m@#fm+~K|!AUY%aP2Qb&{(CY(wv#tC6XALd$;@*29*(;p?pI*@soQiXHY z`olH}Zv6RIQ7(6KO6srAzms@VB(H5& z{OTD2qBI4r8WXIR5X*USC3R$Ity~Y`*}n{tKe6LEMMfvkHWWl`k zjlYKtSWJK!WepIgd2ZPEoHa;fZlbKtbMZ~7@6@a*DS6S^7)bO8kHy4qbBXQRvp?{m z=B%{X-jSQ7OJm~o7YBzSva#ompVcydE|l*|`*r}SGkrFTn4)&4S=;doesYc3jjINp zPJ>N1;bE2Y;#H~#z!fG~oqNXIR?DoH((QcQ!KjKK+0OKp9ySm{pvaMZgdVH|oF_CI zECr8n@KBIxh^b$pA?s$a*XN21RtoPhEVzQ^3SJ%tN{(cD*8#*PvN|2p;W{G%qGdQEw8JOg&5INyX%QfW*9_N z*4=Q4RyoOLDflmpy2I7TcPwfx0942N9{Pxe@$28kd&_tVToi^Oh_}x%xdDZ>v z;HY@d3`f;!)cmcT=~N&soNMHr{8(-b%%~N8c|+iZbtZ;nte0X^JGQqx6oXBo?L82;3)-4^MS?n;||D|=IEM4sIe9VKDMHUz)szWnOWN-kPQNjAeNicWAvl?0xJPLG2 zfWvs=!;a8i*=gy+alg8$fM&@EW0L8Cs@ak;yp2Sz(Myp0+^-Gw(wc)cz+%1CI*c3U z(Q>BBPknR0C!}Ms%n$PYl{`%=r+W2qTpfz>`bJ{Ancvq8x{em9Q@-1MZKLzjZrft@ zoio_sQWn7y{c!%~$sH-2t~mAE{|21%JGUz5J;j7^qxG?^Sxgez@ne2YwBH=I4r)l6Sb_g39DalvL4*6Sx3$U_C!wkhK~e)%xtMm zi@1@2SA>Wgp3JC2yIRrYSO5jL} z@|1Qw{369L*TWwvrj^j~xv)c5+?Y{Z@t9ylgt8)L;E&BFma9-D{4*g{&N(y(iMPj7I;%N21+X@HwbsuX#B#A(0h#Gje+L#!_zbC*i--(~l$p zt1%r%0i@o>*$^4WghG_#ABk~8Qf5wMJBaZG#Bji1f!huFaF=#TsZ4_#fvn%+r8eHV zs~tq&*4OmuM9IHRhGRoiOsz>egSD<>+WYLPOZD7ZVB1!s=!y`e$x@R%9tQo~;eM?3 z?$-p#5&Q;J&FLQ$0ld(IJIH;j!?A0WJH5UB6(}1;xKWD#nbU{k2--U6)9=;o(&Q-U z;I#2pBBqb(3=y!lwx-28=6Rq-F9NuK*#%vUhWFNvChtCXP^`9Wd}i66a5YQHmDvse z3E;fLs@`}{MH!a~YqS*)RTMJy;f4xKr!ZXx)=m59qpGPLXBzF+dDpo!v!hPEKlunL zRWjd5z>AQLg^ZP9`7%9B_@CpFP%mM!?uWs~3T?|TQRCY((3jKJZ!>=ZiZ|jXs>Dp{ zOJs86V;X8W?N|z>i|%2ng=uwI9q~?OmWy%DlhE!L($qg*q~ps#P27QXtS6=#Dhbs| z8aB8t79aY>PL?lyg%Ox6b_EF`Bj(|@ODLh1bkiW! z0nh62!{!i2pCrOSnY5d`5D&dJ%iKT!2kV150^K|FJiq~276~HQNgDPl-1ie`B_QCH z{oejPLi)o7DZ5kbkfvT;d1Dk5NjLS~^7u>HXO(c!aC}D^3$_M^*Et-_jh$HI^9q5B zCq4kdbo)Wk(5dfP+k9g-5V_v0^Y%$H=2S%fKHe@2J|@rVWlk=;+~O4+82)d`*&Pz; z?JDRWqZu5(JfF)ikM|fUd|1;l=`#QJH}>Qg2%DL#;g*y7HkM*2t#5W|WA|A|Lv(0* zZzHpSZLMBf`%*B`>vg1YI@c)9l|(8yk1onqq1Ik=j$#$TZr|~a@i7b*mU(Y=@EZ3p zbGTQ%lGYWVC^yGD6Uw*Q&qNA-uwSgcFP$vHb}zQuS!+V3jj;}War^qj*=!jxXr3o?DVKw%vF=x)OmaD{ zG(KG}t)WdN=X*JNhc==#l{*s!rS8@W^v_<=yD>2mrbV`gnOwI;R1DHtej;{60`BMg z#kL9?)K67zl*f!k*`UD|Fem0AeVC`?C${2D_q*P~(^~$p{L!Wx+Y)Nmdkwd6!3E$E zm3VGgVN*m!RTtx9cUCh>3^loK*hRH(s}xs$wCYXUtdZjxtFObE6T30Q$jO`AE2UpKTU&?=$u}|6d5BBJ?wqu9G@EuAvF9bnE%@hk^cqbZKwkWgEV^4JBP~TX zGI>8TVduI~m_sK8S(yk`_3@=r;d?hBUJ%1O_&_mu-fp9hl}Vp*gGXqvr{)ut9LEL?5j0Z5KUbG| z+RhI~8{yQHJuHRKyWi-+ekY?zUS7Y(6wMFok;J1jC0WGaH-+wa87gcE*TD)sX&Np^ z_&;8nYqeN`!Xh4^zq0pwiUGN(M+<{VYf)*4sSrof_fimxi;hU)H;r9=hzk0!AGE>5 zm#NmRE%Mt#7sZVQ1xA6?QczHSpS~yar4!G8$vS@KHzB)p?xX`D!Eck()C|`j1Qhr* zd+2BQf^a!Q&`mYaz(k@R;ixbY`;xekB#N(lDGBIdGajv^1LTEc~Vpg`mA=f))j4BRO44F+qZ12H+;L% zADCoNQQQQ3A5~TzfQQ-BUscdTeZvmA?db#7eMhS>tej&>=PRRXH=iZLGDv5c!!mJ%sbLz|7f0Nkd$bBuuHS z-yHfVUX+;(`xRQ~t@ksvRLxCCir@k!?P04L4$rkyh#tG9E=6GZw=$J0K*5~Pt*g8;arAS+Ed7j;erloIot2$ z=woLVBx@_x%j}B{TY)NM-Q&EjMM1yq*DvYX_Kbq7k!25@a(o`dDqukUQSqf(4;#I* zBvw$^BwWExaqpKI0rggyNItT7QlsV4!+E8AS+eS%f%$fb-~JdJsgrka{1|AICx2L( zUdc5w`t@7&<|QJ}ROb_UA1i?itr>hgm;Xb?!bq%{Q+r+pJQyvdi!HOMUdtG|F0KV{ zYgJx!=wVV*lRxz+C`lq?nfS|IW_609)_(gVnBx?{m3$W=cr|S|Z!1?|#(}l|33vgm z+>rY-b+8pCh1=>uFST&E5ne+L-m=E_QId!#{i*6hXJ++G>n5IU7-BQMHhuya8{I6< zW35Kb)Wp1;WPVQvhcx|S$QA6)toX}()7dP<)NJ?8c!E>o5Oy`8>x*-58)bY&lz2pt zI@SV4iT8W`gs?DJx(q!Y?`*6v8toGDV}NA`>D7LO;-40mXYnUW>9nH{)&x%oc-Htz zvO{1fHsBpW$;?~^qH#|T?gfs*$4>VH0`nx!$NVwo+ITg*^5$JAOi&P;I-Nd>=X{Q^ zyU~DBHq%(&BmT&bX3Dk8$+h0A$Iz9%6F)*ratzBQ$}eXt`vb@}TPs0|x?*eCzXrVILw4X?aYG*Q0x@G`2a zrR*g#N8Md@ik^UpvV@(&@B?|sjQY0N;3?)cVv9FKvnT1SPs*5?C>zGaQ!n+y?-vU+ zM*ewuZM~6j+m`qIycxW|9vCNOWb*hXq7^MDG}y~fcw+UU#>;}Dwgbkrb3>9OLzcUa z(7rK+M<5<(%F;Qm+^rb)_ApOC1;7~Ql%-1tn-JUjC-M|@1n)HT!qOyTbc+aHbdnkz{KynR+RU>B1B|o!1xY*;PYmK( zOoHx5U*mDkldruG`#XQBk-AW?a&HLo&P^=WSo_}MCOYT9UuK_2?kpyHZTkFvuV0C2o38qm-{U;2bNJi_d3e|A`umSkkfWLPEt_YV zkS92FH3SvH3}I-S=U}pbWx{obe<`QFVzuT`&lYYH3*Xi-ZKZIyA{m+J8>Dkr{;L(N3*o~`(G>#8ecNBk)WCew? zn@N5{NU7bOvxuqVnk7(ICtk5|n%RU30-H7Rf%pULz#Y$66X?RaC71$;_rQSdJ^T!w zrXfz3p*eNr$k91$)_W|lk6^bdIyfn#=bJc%72aP=-PoSG`d~BEGKN`NpwAD=#D`Q!c<}GUT9M75&sGsDfOoy2$x0Su#|^u2iMwZ`*HZ zpTMJ&%WFJmZrso3KPG7v8GQur8cdpdl4LkFmtg?0@tDWc_CqrJ>-PBR9)+z3|HzG| z7Kvtl2o(Re`;r=<}}MDn9A;V@N^fR z>&H6G{kx;&b-P%s_>F$iy+{{%FA-i+!=- zuY(ECf(X%37Iw3BBKh?B6P#13@>W?s=i3K{9PI%n7N5SC>R{UmA&+hU_=(76w-;O$ zr3tA`(DXV@2D;HAd5d-(tgDfwrm~dxdeMIN`=Dk|I7)oS-sqC4wi(?-lg=!)fh}qH zk-H}(_*tM7*$^NS-ll>9=+MO?_GYZZ6s=iLdWTiSoNt}w0h41OHZ=DhUF#9r}~8Vc+oa zH&i&OqqZSS!+MYPN4}t&3ULK^^q|%F%pYr}}ATM13 zc=tD`cBG9~tHf}s(CS@7rTUWWMT=H2R zf1nC6l57}9IS=oLU_x+a_e7;1mNg$QQtPD-B*!aD9na#vWTdf}ObsLM#uul;a3-hY zym0MIbw}|&KR;&k3Hm_>s`j&Lsc@KJJb}Z(g4WN+%GB8}>j%kghkhLe=5SOl{}4_^ zN{63%hU#B6e-1x@r(chTBcD~=|ICcmM0MAKgWKm1KKfR8=3TyoK;*n$3S?%V-8L{F z#!25=t~O9oVHk&nDkw}gK)usCL8yQ7^=TZPm!wm3+J1vQl48>AHQ9DT{@kE+fNa== zT{<6;_>K3MJJ&qGbu95d_LiOTkz_&K92V9RAd-dJkH(%`8v_Vtkalg-23`W*#kW|R-U`Zr z2Pqgzsgeuo8d)4h|EWo%*O5BPny`t$x`XPtuP|G;Buh$TtY4_&emU0Iw@%bs|5sG} z_5XbY>D*V;#Y-52Blmv4?uX3~@+3FS=`Eb*<|m)H@_3t7c00E<5q`>WLs7ixi|5?e zWE=*#V<1B+Gx2{wGT>zks?QXljt{s~S;}j-!^HkxLjE=f z-2FdToBtbeV+Jjj$X(Zw`mv~7A(NsYV zZ{fo4$^{34{s;5=e-3^|GZqbt2_8`0O8`FcMsKT!WS$bgp_)TCtHIeS&iBI0!7Zac zl|%*Q#dlA|XiJeSr+qNbXdt%$_ zOzdQ08y%ygj%~gDKj%E}{?H$L@2ht0s#vuQ#Piolgakp`nMg(vU0nW%9$A2uT zvEvodQrf&bcWu-LejS=S1ekr0AGe1TzxMrif`MLd-(U8`avOmOj8nnec#wY+dHu?i z6wGEg?wLUu&R^N|IE;we5GGRN7Ha?s^nVSXZRS(Wz%MJ6Z4vUgzb&eH(g}+Pe|eZP zi5s(chbbf8rf2l?dK!%-H z*DR+Il;4l_t&nkR$hc#m-gh0MD1ffKB@kH@C9eyLQ6d?nPGX^h!fAi)HCMLLD1`Fb zU}F!sOG{*G4$36YsEj3ljFvVtQmSGXT1#4wd4dZkP+nOh`m7P$jKEC`ZRN;DW72tm zZo4?ArJf zIrxap@a(5ZU$(e2)46cGT{D0*SB4)f!U&UmciiiTAWj= z=E+P-kMGu2nO^?^4E|ef&;od74*u%UtUMy)%YT#+r%lG{QC%ETHpq!BwiTjlMkOo( zS|V`~l0P+a8d|gAcJdN=+4JHp@MtpNc+seY+w|dG-uSdQ2#%+a#MUymVGw1C&zujg zS~~4hhN0MPW%^;wBW#y&d15R#QD;Y6H@JN*I^pfVyfL=6WmEN5?1fdZ@Qm_&S*wcn zJ!0hNA~t{ZfL+F#OIFwx`C^{6W#~+dMUG5Y{V~qI`P#od#dEl5Li{_WKRvQ6*)gz9zRUjoGE!y=VLY#=~N2leG*yBQKj|m zp~xDV|D+nwV4WGvO#K9{h!5uNi@a#*)%)vT22J}6{Y+^}PEaA3_6*)e6T;lJ#>DsF z&y+8sabqsNE&Y>>V+3fzzBhPzB~739qvHsy#$zeD{hn`i5odMmoH{@#8TQtzcUSbO z8qQ++LG~;rywI!p-Qx;6;ru_Qk7oW&32ISqF`!C%h*h{3ib(lCHE+K`Mt2q@k)Bfw z#rw=+$PYcNZLL`BoBxZ&(Eom`|M!dkFc$GY{E7d4h0vF{i6VUi6?MIksm`lAF)$~u zr^Aj^OP4kXqR=;L+POQ@T+Bagm3}KO5BM|@l!3Z?2!&l}{g0X#s^=w%pnQVh=PfoF+m(!q97*@9>ADq4Vn-@3rT)c|klO?VY(}anK-RR7RV%d7j`c43%7evNEGCCnsWtb^#{vinwa84Bi!28yF}@#@3SA zaSmO_DQg)7Y2S!&>A{OHHoTwI_DRS~bKy}VJ8^dgSMX-a{^QxD>Roj$(rQ5==H+Rs zAirXplad#Z_bz#`i!$$*_k&9X_;T$%9NI?GSzlanY#*G1Xy7U*21jmm*{&iZzFqd1 zT0V3Iao$2btMtZ88oBsaIlniB2opB^Y<0ts^Z_(#Pdb z(sXvFl^!WZN8wNC4PkL>d7 zSFx~{87|k7-CKvYxYU`pdJ&9`C-WnCu{^w7C|OQj1`C+v;P)vY7v*?e7&#G^d--Nea|R&b+OSD!c}9z zPJWX#=S_#DQ))V#*zyvE6X?ju1#U_?xfuNvoJ($5q#A8@Fu9M4;-PgA&rEg5tA2-X zQuGa~rslsmpG*4ngC46rF40Xw@gHXp#5=&^x7_W#S+41(T}>UUKrHrWhAe%57}?D2 z8?QWAc?>$*jfOzCnymiCd=ybZ0=e)Pq;~tPfyKU!{%&3@(NnzGj@qo#C`6?p3G_uq zLJwIg+D*dzA2Uf^V;0jL=^u|bhzRxL6_k>ZJ2ymb%Q@KG;Y{kJnI(XPqGkHK>jBq> zlL=!b9=ThY9ok2qGG@hQ9GCPBB$P(YyWX~37K`EXX^zt6tteYoIduUQ%mOB3OP71F z9aj+FSXgRwdt10UC8x+&3vK7;ld!aT0CsZ&k*#i5Gzoy1qIveWX!+0B%)yM*N}CoFxF z#Svq}`?a8%$oQ<9{bA&smr5ZZvoymeucbwouyLsZ6mdZ;{`LUnFylx@qvAA;@A>jR zQ!ipuv0YCPSQ;^sS#(Rytql+km*=g}i2|>w^Y7J=NY=9N^7jb!->^tJ8iJ+)*cXOT zFfRSxyKeSveCcV&)T~CTKA)WLYwh-$ed|t8Td~NyCR0k_ONMTqTbpdS16TTd-~O#u z@hU~~Ga>m|)j~Y1%Tylbe8;Qhj!7c4nqojyUGma#$GBWwLe-pFCkBFX0E3r|(>A4! z?jtg#6avq@xu_O_CwvSaYE*kg^Vd>`i^VXXGE3I&+jH1twM?Q1788QKwY>Y$5vZ+0V<$sF%$1~`wRi(X4oqaU6n<#C#J z-cZSI@(M@H;^Y>6FcOLooP)%9%1(3HAjz5xOzwm&I~z;g9T>ixJ2O~hO-w7T1JTyd}Xe!N4Xb!ko)`-`*}hLd7g zAU84hl&VHBqv>3sKwjs&TS#$I?nu7rrjvrdSES6lX2#|WLcK^JLvQ3d@bUIF2-?~c zFtI6dldPt$qNyB_DWfPXy#2TX6BO9dfo^^L$-neZmPAo@LZMKt=Lj#?DUYy3F<~`N zsCy?Yi>;|*g4}E(G*mJu*f1_FSv-5vY|}O$@{Z4`U$)!Tz^=RahrXD*CMImg>Q1&{ zeSD&EcVWTp2p7Ph7GipCFc4{CzJer0K0hTDq_=RPs<&@F>CSZ9swKx#uJx7j``~P~ z3xQD>eO6OO%RCcUY3i_nVWl7OvvTQMK(PTDD63^vf@N!vrRvZsm?g?VQ1D;=_s550 z4QE#$Cbw#s>DLXxhNEqT(>DRabj~=n!wBvtjXQ#Vgw@`mTYBy#Wb&-iVpF&ye=;fl9+;vJy7=C13&%2yQLl6p+emX_ z4b2Vn>XR9hA}K_nW~to{2j@*pxS^sm71nyUpo4jBJ`$JAZ@m#c82@x^!WFf&_zmJBiHGwT_6=JF*>Mn(iNvz(>4HcUDz7z}o3 zq}D2Kgc1n(=A0EMdT5I0lmtxn#};y5&w$1uXwoe@M31fFWrfeIuamIp%N$XK^aqZj zh2KgTRWVHy{EsM0jJFk?V6?s_YffV4PiXhee9x_$<4UqAy(_j$qP}exGCE5^(CBoX zFG2kLOktmWg;DD;v3E%&<4T@OSbY2l3Go^qV<@sN!)tX2|GR*N+wB)P_1rP&`Fy~C z-I)$SrBKhUXLm@U8%3;_l2;hiE0?fg*|y^a0KUIX==5ezP3`>Z67X}#86bL_bRMOC z-ZIX?^`XG3#Boma2RzTN!5`wwdzL-d(AUX2&YQ<~T~m}qzXvWg3+)GfVWcWGq+9JT zt?}&{vbZYmY$wqthpoCz#?0Xvf!7n2x@-6}YQuQ2S~bcX*hFzoTH=A_Hfgp*9^-aQ zVzOIlfJWj?;Rnw8m{N#jD+)S3+kY~*R!aH0OZ1vxB`~Pm>d5KQ$cw|ycl*ev+2BcL zgR;NHZi_3wsE_Y618WKd2cclc8`q;R74o@Z;p8?MFLULRAnLGp>3xY0%orQrf)A`* zG$M8t2+GOs+3y6+kaNH>Z@%}smoeg;(k3?$dCfveMq8 z3_iC>M|<%ShYXiW?NKmfW%rifE{k#5$=>{9`CaX0>aQcYQ6R_gQHdj6@E40(9|96I zP7q2F61!Qp<*IXW)&*CojbV3t+DVvGiHi?VQuP-qmjgYsJM@u0sU@pw5R_GS{^kEc zl}J`uA!7dg2o8oJTw+{EI(_>EYp@*Cp(f<*W-U{dtM2NVPPp0>UrlZ8c+4H~43zFA zh1nt@X~}MsC*B&YjbqtY0L;s@Hn^&afV=aW6cqG234@@xBpaioF{1f-&>!8jQNB#` zM6HaNg^j!~SOtD+YRfd0Z)W*BBH^O#>mqJ5c*=Kn7S~pcj4*NFr&xRt`gwio%h0{v z@7M7!kKW3v+S2CwtOLbrK>smF3B^B9P+)du8?b&J^x8e^z?Uez4csZZb?!?_9!$^1 z;#Q^VC=g)v3Nyaqmp-diy+X;&FN+Xrq@EpF(g^9rl=`89VtQ*aXWR(K*Ok)djFp0q zIB7r0GiR7euS6w*X1XGpAsD*o5Jy#>jbg8j=I+JG6@p)!nmlS!%JVkp?VQ}z&_RWq zyw@^Ug7v0dyQmei4f%nWE!E%e-IkRxR-v)6rxJ&MlmIkey214o4HnjM=aR=;#ysbh zSh1oY{%Rq$svjz9^^fp0_T?XMQ%7sg+?9Gm=0X@(=R9W3Mt>8mhT~KBD38VVLjCb0 ze37`o=nm*MUv}DPpPA1?A9v1~%y0q0wigZvY~C)xeytzIIC%RpSzO<3y`3);rH%xs zTd}6A6z{@UGe)ZYsiUpX*!!*e!hnpwPUG}oOPT;%oN@wV4Y-RZk!vVYXdK}(af20q zWb)&?O?ZvSj&Lb8=;|yBkH4M?xBK762KcKU6@z283Ntpel$G$2EzzH@xM(xpWPh>% zLl-X~KwFiO@f|Wdq)9rfEs=|gDu^RHDCBh=aP|NEs8$7@v}nB@?+O!TBDA3oKSo^-vknwD^@@RS!8?);NPSHBaeD?_XxOrb0uJp$ZXeI zZZ_nRRpgM#s-HuDRHa`j>}v#vj|~eR@bxYo1^-lw5d3*oq1cTrY4?@0kr#|4y)4-_5dT#6Ro`jtIr#Cd3`jXd7m~T1(bsE1I)X*7Dx8q5|sbmdF zXN7?{0{8ynBtwrgLewgs-~hWW-Zp4%ZrU9pYcm=1v+a}r6?Fo_A&FyqEtztZr9~H8 zeQ~ouJ)KY#A~3IiZ0GY`t@}ERoCHM>?6)8JmM{F5t|Nj?MFG;%cEIEFLM?=b5Q&O9 zIhrbDq&;U}q8z3fkYv2bzc!L`9-1L#C52>{P%lDB3tx9jlOFitv)eSEKcMZ z;-Ho$l>mtb$ScXKo2D~QqXm6s$~ndJiR!<|WmwJar()`+b6oF+Xv(Gd!P-}!79c!{UB z9GR7zUVaBMzmUbN9Kv5h|GKCzn%QLE`=KKeEh^LLYNzq!eOFY_zXLnn0nUiR!SH3A zDLAcq2@vsDjQcKT^GY<=fw^e&@vUHo1~ykyeru&xH*qe0{vNybc>wTmW6E>OMl|>! zmZ7_uJ-mg^X7Kc@(S~6-Dft9XFep?FD8fx0FcgVCqp=|r&P4IqQ8tq54j7oF^^P@U z1BN`FefTYM!?f*eKPXOQ`9nW(AmXrIN>CFXE&H(39NlgOFBpzM4&+RKw7k0H_iT^M zWhLPXBJB+g{_~g!?uOLc(wwexL*B7S*4MI2gzbkbgMXlURiUca%N0!t)e1F_BT{d7 zTHtNke-3jFZav(WoX=Zr@yLKs=^oO)CbRz^|hWsD_M<3Eo{0dM~;XpIG^UrL~G=Cm!ax??p2}mp5AgDX`nmB-*uX^l@|<+ zq42tfsF##%^XvRYT|bb#97#%WIhch{?{-&rdF1D)!e37x9AdvaiO|Mx!UhfLpC{{F z_tzioe?+uh-$sAy3Z2MQnC9oe?1t0Zft8;OQ)yJ&od`%AD2eZwhMst8-i>#Glhm*E zjVGA_zfN4qOtD19sRuA#$1!v{d0;x{Dhr)cr91>VRA7b@J#{pCy&X)>DGX}=?kMz< zbSI)EQXF>d!ixy%Pi{O4{RPh{mM0QiK$cR9GN0yp6t_8+bp2v_Tg61&nPR^AkA-X^ zbUTW)DVSMeyV(nOallN_L~ZvD3Ywn+nK^nvjm7<$t0gElC=A) z`&$?a5g8R#XvEGC_}~B}g|uR0ErsXS3Ax{MMa}-*Ss{VTAOlmOR)8__oezx3H>3{s zX-QKOA`&?~4C#dgo}`T~q?aYp(V5CrtW!AJeQ;=wc&4MN^q|4&Ua7wa!1I2jw_5}t-=X?}|>fvLhWsCNgMb2Ua4uR4qp!KzVXUvETqVm>t$ z4T+H;#FFGMd6fXOj{I`3pHQ?~8U^|X_o$b**RJy)kgSr`<}-I7N%J8e%5#$*2&U;M z15PR;wjxd z+BT^f6*x}4XU)2xCH{FlIA3FI_FT({Id{_BM6f~oD8~86&xb-hCv{^xrW;DomYPE* zoCKDC-g;9>>>z;PNm-%eBfh&}ZE#XOXv9_IWQ|k4MfUZtQj-~Cx--RKf6C3OCq@J@ zN0nw7&%csOL{z1Lc%Ot_fWPUn4=l|v>T9kBA(2pP7_#(aSKXzHSNkZDOHCJ28gFus zP*gp^8wM4NZp&bFUf*7VXDh!_#$|Nw2)Hgi)pI?T~NX+&Yauf5?00(l(Z@{%xx`sI|jJ^kU)}GG z=sE>HkQ#&#zmfxA--UB_m7fN?KB5zZPohG#HkdVlLuASN`|zAwZ|B&aSAzrlAjpVJ zCWvqDela~du02|-5YkU%aK05A71v5VVH$lpvKBth@d+3t8N(5vS=z8snq zF|Nr%a{W23ZtI$jP9o0mXUFA>1k-JCDbL+)pWH(eY<+i{Li>-;ZSTezvgU8aZ`%wJ zpK;sV|2@`ufR`Hqod7rxM8u)DM8UarY+G<2`wace_@#8M-*TJD@L#n!j<-MKn%T?W z0|1mfemwKNq40SJUE zQX+E7)PC_-HuJ}`7s}iy)2KMTq`8&!mJ}Ja*n2tG;S7Yp^r-dN%qjcuMxTB~bKq8@ zvtjlJIC5BS;*gUw!X6OG`T}D3{3?L@$#$2bhJA@_CHV6F8U`FNw#=ii_i1PIA@(wr zr{*rY=&|7|VftNt;=7b-zBDC2y7aCdxdD>>d(Hh1X#MZa^NpIIwPm9n11NvI*!@J@ znhD|N=l`3W6u#-5w4p!Dflugu0E32IwI>tnJs25SY-H-xj7Tv?URb9u-8x7llnq+` zhgG)r+tTMc%vbOTlUlLF$$C`=d44%KzHn&0{cDhYYh;-rJ1+?Nz$w~$k9~zmaQL$D zShGzrO}oU>dz0l?*-wKtHSCI)1PG_mCu&6ht)X**-%b$TSwZd4*Bh8FX_wQTFugNb zz@9R&Ge7$N0I9UE$mXK@_B+rGJ^t+sf`vRg z5?WjdUYgs+!xWcur4-tf{Ru5G*8G;M7Ck6*5r}?z6-Xrmg$wo`zFiLtFNpM~hdeLS zl6?|T!yy6{+&z5F4b}ub!QH<{HuQH#*2}WLTl}8FD!~URIsk75i~C99$9a{9{TKFU6Wcwk0!0mY6Um^?Hhh2|jlBF095I1hbCF>8EC3|v5Aidx z+;;8uEO$8!<;!PmL-1%t?EhdATeR-D{U%y=cg0Y5mr1+46DPbauDcoEV9U`;+lPrM zsr++IJZyK^wX44g?F>XI|9^GU|6w8F{8x%?RggTHWv=lQlxQ({jvda8S;G{QYL@1I zUe*8fAJOUmT@L}*P!Q99G8v72qv8tE?1n^YsmdAS`EsQdx)JHI&@_8j8K}^mrjTLh zOR0iIyu-{^iCRmSS8}S_FLEnVzr+q!-6uQ1|CN0s0$Bc6wDwG@0^TQ(E|}waclV>H z%xPF@Wxyx^GW4Pt6n>1Grqo6}=xz0}RQp(NgLBbW?#nym1ujv48FG01e;|+-l|N!o z5L5pqDy+LKW3tx>;ZkkpTwTe{$zqbD!>jnFxr<>XeJS_O7g(rmu=;1+ zj@a^BF(O-v0RA{UzTo@p!owk zS8)7g#jC>6{{Y0}bKtmCRx?aZzsF5Ii%`xLJXbYDBnc2b}6zSHVBsoE8~SsT82U``>-&37eD=W)&R`1Ly|a58~NRUZuG~ zTHgX0+x}pZ7xF)*p@u9c@o5C8=Nb+&20ALogx5Hltpw$~5Q%il%k z{)ag6KT3xG>f{%3n0}A2*h-BKTxcugXKZj*cduh2O+Domq~xL9B4=mJPV|}+Kh%nk zpH`Uj2TRBl7k*QjY_t`0vxT5HE`BQ<3Gem#$8&s8CSIA4ixv3E2YyK1Z>(SsmNuNI zXIHq^bN;~bBD4A7LJnZx89+%y(czf5O1pVags4um{kIEIMH^K2SdX$ax97Kkw-cwH z(w70su`p7AgJ1Wap%{strRr6woCXmZ^{`*pZalJjH2%y3E={f-2pZi6Qp`8!^g~#8 z@K!}6Hsa-9Se{+DykmBoB2M9dCaEafKoJok%1OSDJ;fr!R4$|QG3_;0LG9dS3z+qH zBR-D`d>IiGe5mL8!;>MK^_6tdDWXH{z~tX+CdcV6Q?gZ6w*^y$B+fpt>>IpzSUy4r zor(d5+fF3B5jN-98|Yp~RQm!C*j{r1TMmNr%F~b*4__LHuVXOEb{L^S{*5)rPwLuX*f3*I9aBr7T$S1xtC&8}X%UqvKen`L108<&4}KeQ>EHO&@g}>2tMK72Bq~!<;@g!??&{uGISn4+b2Wpr<2W zu1;?OfG>?GnMU4yY=K%X*^Q0E!^9)w|4qgJlr>{76ymuChGk=Vu~XPJ-}#5*Y6}N< z>|OZ+I@+3IcS_kkp$I+mXuNQl$M-S(Rs((~)-ax0ClY$~CUWN=m?cmAvF{gO35bYr zGa(^0`F{iq{6<&U?Z4a*j)YTLS198@7e=2*wg1aLS!s$A_$Zi$F-~J`BgPM9_$Ij}VX5bH;LX^m z3B`3t#Bp`ud^UDZn04X@#X)}5lYXvvQkJPC&6 zSCP0`8bPvF?ulol=5g9k!L#mU)+?Q|Njp?oa5P^&?x^$T!Iot=K7FsTP5FNt0aUz} z3>}?K9=iItKaF=hzEXSvwtpQ5%zBpOn}65Riw|k2wE1x5n6{huWC6irIK$Kl({FKw z_Ys3U^;q-Xq!fJ>wLV^Ynxlte`wE#6_ZS7=sFxID6Whc`(Dxr!X1nedl{&g>h6MV=)GM)GyN~zIW{tzJJmJ`EoUJhyg%u} z>KoGT_H|@)-dh;BVp2b4foAk3Hd9ifeu*Fh#kAOFx^wPOuh0Uou zOakN(m_kL=o*pWvWMnA19jSdC#j6a4xv!evdTj_VQ^?5Z;{z0>%L33}?b$yy*U7W}AanCU*Oy%|ud3*W5M8guNr0kt4ZzFj51NfQjLv32I1WmK*`Uf?OGP6y6mmCOc}&A!7rKYIUpIZM-_=o{ z45{9;6nJGJm@mT&D0F@Q?$n~Yfzs?UH)M~L=Fg~cAC0pU{9@b1>$p@w!&4st0A`L{ zN=JEG$sv&uR~TfU$F3wYcyIHh?1#)b&&rv*UiB+w$c!f7;66oX9jJGX|N6no^j0~l zyj$59*xB}{1FX%^cG8H^I=iN4{-KldD(uYT-!jd`j={f@IIYeMK&Jb&huqYuDx zS#O`aSh?UZ*l#M`gxI9dvZr+)AW~bbuJ!7)Zevi0I%JOz+dDmQSi2-+7Ta%45S+U; zwrUKCq3^yOuV(dcrb2hfdaF*_TLKYtC5gfvd*Y9tEg>!bI^VW;eZG-ZGt|s*N}RKt zSWndl(6T&9q8$WCe*nf9aeSe4Bi#b;ATYw5|IFZCFOGM%yofrNO6{i-UvEw^-{(}fg1h9XE(6P-8)Ocu=*X9(7Y_h>~zKOh&t zCrKCyewg({pA~BvTc?;#e~Ga3VPbC}eRMMWUqLSWvLsymZs+;TFA^}exE z`eIhO^^s9Ot3G|sp7Btqif^LBY+endY-2B7Ly2O#$mYzBSYB0guzNqn_8uJZE7qhX zUy_Em6B7H$e<6`dTEmy%*fx zNyY|08;nsn$mhq5J~Gr3OK$j{1?+y2j_Vf7Rlq?Mv|M^z`8M@OVeNh6HX4^a*yDsx z?gUlh&mE{yC7mmD`+hA7+_}u~Zi#)aLp@Vy%^KIK{cpFX%g`|o`BbaNLg0>dY69)i zB)mlBC$f(^(ZFfbSAI}uzQRIjmGL1f53%5e=W&I!-aDi0y++}&KRdIWeW*eMK*#SZ zAIW(Sg&Kg}M9c==)+U|(p1TqLbL(E9@I$G+`ABBHC!my~d6PBLoH#k_<;<;1%3*TL zW{9n=GN|)faC zRoYFG^TdYie@lF=QKG!=N(s7)`k~|edm^`^uXOR)>!7&O>dZpS>B5iL%Y{TdFuP?x zBi8eP#C-FL*=xtsW8a@My9{d%@+$u6eiIP-kuk`rv(=b+8!|eTCgkvaL8WV__)N{T z#wR^}igNA*ID|`(J$Mw?WszIO^XkwMyB(2ZDGqB{UcNP5mrG;qBXmkm@%Idr$HcF3 zE~b@g7N6|7mxy5OD8Xw5I>U+@l;fS%_?$02d zZw2f9(?QS00Nqu zYs{~k$3|FD43~;%^LK7f9|^U!}C{DIeCvW+e$f7c8)tY9K-(XZWLa;>~|TTtfHkNn>;Y%sZvf~@V(6r zr|srU{2JFNOA?>Ox?Yp>>GQsA?zqY+7LA#+wW5Rh@wQxKh20W;{Rj=__Oaq02b9iWFE_oacTa3kTUYA#_cj-Km^ zbx)lS#j~rlD+^rgcn7Nc*+FRI=7F`X_>kJ(Q8#~J$Tn_B^tl`!Ccts@2 zE^PXhuukIqzA9O6V`943p}NRd+FbSBG#l8Xf&DKO7~epEqHC&ECNjm@w*`F0S&JoegyZd9tHmQgXs z?$U>bLj?VFF9HnYwmGlC(>2akW@((M+18acm^(=34E5S)=2xthESV^-It-$Y&As7E zgi$b20^}LzA`bh%#M?UyA(yob8@J!Xhvzv)&%wsLdrrN}dESB8an4J#W(^fBZTV{P z*h#)`>zDz4Q(gdy0_9I;+o&Vs*(p`{T5yz-n&MoF5`$h_7~`>t z75-WbRSugqJsnNO3_9`2cH~$;{z)JCeNd##j70q~k(gX3{87%ivyt)AXfwMpn z*Ol7CzOP+ehZlxAZ;EGR!;FAucQac$0)fMg-t($0l?K-n79{8@bUI;1S@V>{lUrjE zS7?-gxX3Zo4S%sQZkd3PMl>(k!^7dlx?}8H#C&wbdW8cS8XZ5Ju_a zZUL9AC5aXmpb1KmEjU&%7FrDGZ)rLw+h3!SmY&aa_W}KDF>G?DyzEu79~zID?+h@- z7MzK3FA3e|3`_^-h@|Fm93O`6z3wv$ceC}_ENbWrU01_=Qx@VfS0A>{$&7z`D>=uI zeHrvHv7|-=5qn&LlYn9^^zl&Y>;zD3`z)}XHr0*|@H+z~|J}^|iQ`~LRs1L;ZaH%^ zrs?&}@J{V*31zYsHO10oT?bfFKo{t)VbHh4gyvaUJ)e~NN5im(UfWCQspi)pk*ICJ zpqpm@Ad^aqgEPrWNP8ic5e`n03N;9PXwggFuN757)%E1eHMS~Os8L0o@uZ9})-z$* z-&gb+XQzWU8(E^XD!tL2TwJ+=J_Ep%m!{L%_Zyk~CCr~q^JQ(>Ikgo~2r3F(^S2@S zJr-9VaA82L!OOhh!$TD?uU$V-PZvC|`| zPD*eAHzm(M0pv8e)E5@iP$ZVVC#8QJ(RsWXQKacU6}7kDi)bF4(Y#qG{cCb*G5$!J zK5VgJ>W*WP$u~NCU~fLv6{Sqijy_|>U;>?e9$i8SKC`wDWn+^!*;Bb`m1)~qhc-$R z8O?9qdRE>imwTFRn*$hyF5DePXy?$w?*bsYSYv6K&C#Eomp>!# zDrh%(v4z;tOFw^NSu9hQ35kqL^VoY&5}X_NKaEgtT-+ya^E%lW`#t@wC1Yd5GT4)D z>JhXozdta?u)rLb(=t*4N{K7iACpv(tmSLKi(P_g90%roZ-Zq5mr^Z}Lz_(0J#%qe zLqgQR!MiFYlGf zcRdU>v{-@+shvNy%b^!Y$LRbE@hCFmW#(Vm{Fm9=FIa2DLoJ3Y4B}VJ4gS$kY!UqN zb6Z(dQ5))`whQS;bpib3EX27C>lX~4*?@*X6LHyx8w@|__m)9Ozw#8c>ojVIFl z74K{z*1ATlw}6kObMFIH(V5{~yg(LP6WJhh5)h;tq-ZTzoY`gEWi#4G7QG8sqFbL1 zTL?7U-w!+FzQ#tcg1R@^kt2zqsHPZaxDt(2_Zr5il>HgYWIH>2h7>6l$!FsJ9`{aa zMCL_yqb^vHdRUH5qUE5$u(+6RvGF{sR1-^=_iRMyKLsPue9@3sLXai)&mOPLJ$PFT z{Gvzql;uUW@;8&`*N=teFua4&RVC@knO8zSwI6m{sP_J^f(Zp3ElZ(|X94Lt#A_i{ z(k?5O^~;Zor~m#O7nC_&Q%f-(IhIE7x8*TgNya+5-Zr1OW0xt1 z%`itkc%ty{`Ewi!CP>d<^M9IJ6ir7B&F^bDzQq4+^6I3aX%%q$WsNVo4>wut_)9>; z9lmv8*cGHwjpKGYe~#1WrYa8NL=}>hL}B}2R0_FGD!VoJ?E_z0C50gTZa0`pD#4c% z?!sBg(v2f)p}w!#m~0V+<#96QjPgMI$aGY_K`3Hcg*r`ce}+c%9@km_s|Kw3eBr`> zW=}~5|A(|^eZAAOd|Da7&BMc^cp6+htz2a33TrG zoTIzNkcW9r_PW>M{i1FL;nF~k=vZ2FAA&N8e!TQNa9`=L9(@n`5q54fUxxzeHjcy>D88FY>7qf;X&?FRn^+# z&Hj4p$UMq?ezgbRl;)H&!!*}<_zi1}1gp6x*6(kvMO@`E-zO!!wrQJ)z8P;lZ^jdz z?m({Fn*_$+f-FW9c>Yn*)(o6?kAlmdTPRFn5d+q?<%&FTj&v+oEqt-dmkT|s4g@-W z+M%?^>UA7ctUn^3m$b(JWP}4`$Ls<{;cU%GNs9{p-P+?;+#RF?M$3rLg2E=HDs?1P z#xP}Cy6bm2nS_HENrqi&R?5ug!O92f#Po{!TQ^ku*)zsv0>5WoP2gM@NgMU~%`Ru5 zb}5EKwLhLZ9IUA93(%+;E=nwUUW?*^Q!uefckC zkq1uee1J4NsMq=r(MdWRTdm$?!TNhSDz{UK2!0i+1&UT)UZ3phDlSWqt=^?pF#cXrz`llIoRdU0!Rpj4tRaK2i*khYYa3XTc`XS$+$SmCBD=vhd4(Rz8 z%~*qaX}4HzEsYE~lWbg4wwk;Mx2 zOER!X${L?w<@;*h7&~b=@^e~b4ilYcAE@W@hXzboZ&xEKUE}5U^@5J3cT!}AZgRe; zRUbQoQn9##K? z6s^^*KH{TT%TjTmZMPq~WjIV5M*Uo>YsIYJzpKe8R7<3u1Z;UuqiN=zy-t##{jgm* zN;u|}VD6~o$QycW!kkI6N7Gd!+dj}y;%9u;U*W-j-6>nRshdh9yx0A}n48-ZHkRsA zA$QiQ8&L6}-gSU5ER-pubsjN(rXKZSM+o{TY5)qXC)IN0VwvQMF*D14h=ck2LivMA z(TvX)v~SCz`w2xn@48s~Sx_U8G{&)<%qut zLcXehs{WDCcQV()n$u=>owHC}?%d2k`Jb|dF%{og*zAsN5U^=9DBu5Dl{akU-!}Q{ zYt+y+!a%Di6W%WWUsD1VTPIu0n9X){E++Kaf57Wys#K{`rAn15RjO2}`djE934KR0 zO4)j<1f$V_o3;YFln?(EXLCBM)rv;`Dh`_!tx%v=jwyZ%WzQ&}TNAS+j0E zu`$s^Mns^~UAfnu0%+ysIVIsZ|Ez+&OiWz3mAi=Xy*&~(@c1~rc($i+vL91+aY{ybohDG^6 zS#Jg*k4=VvCM)4EDd@MHj4#|RZ!Dl!l-kaD6?D3C@r%}P0BF| zNT=0Q>})51T5fS{+wT0P$0!i2Q}+Ag5;J9X1%SnGSvgj%0T&meW5VR{qfDkGo#i$y zdV{1>uXChb*+r_{T<%DVy#jm<0@zC2+KRyK0@BuUGo|G=M_5W-X^pP9DETN?@~(5_ zU9ZzrglU!hn=xyQxG9-)l#yaoR)KX#Vidz$j&zvxT4&lyr7k5*rTiS(ww6n~kvuEk z9~g{|GE>p|pC;$3d0A0Dx%owu$PHqXd&}tNjh~;F+&jv*36*NyuH08e7b#gDkcV)-rp4IU5>DgFb& z?dHra{_`Z|P@EypE@Mea+J1JO^C7N!7{0DX_1iX8|7iW!LZ3k<_br+=<=gKja4sW*E}c5k zr18bi@(YWKm@;)5TeoiKiN_vx0H0!`$|)I0ZFa|so?BTV%?|wz(>Cx##W{KmfTIUt z|86dHtzps=w7As)CytdtWd*Qe1h(aEX3;OdvoR})k#FBi?vrwI#I_ni=E#-$$G{w-)4Rm#5kQ<=5s00j;1;L(9qF{G~N^G9ChaQDx7VL%OHE__6< z6h}6P*UV$Wn-kdL8cpj*zu>8+u8ysqb5_33OW&0?FZ7Sc z_rQ4G`Y8vWCSAF;e*;3SsT^8AkI&xQLd+|la$hZ(xZ4jg>=&WZfA z<~X^vM)C51a0*j5^Uc_IDSdPb_crjvw`3#VzcZOd8+TEf+>>qt?q*a|Z*}1Or^#-i zI6IXyr&1~Kjv+2gK(Acd;BOQ8)!35GEfT33=XuPMCmb4K6V9-GDHpb4L#AOgHS1o))?E*CJ&%^)o!kD@ZGbmdx^ zRQnPf7J`q^hVt;uUYbMZxpSP&DiQLmuw|ul!8;_9FdrB6+F~+KW>9AG!aKkhPrbCE z;#@M%oaLOwhnO0Xcv`YJb3Bc_l5#A{TO^JLe2Tq914fB2G$srm=@0D%XE=0LOJHOm z-fkxJ7dj^K>mvPEY&}{>*<|b~Wz91!c)H+zUbwdhZEN^D9%MQmdfF`xW765_=?>eI z<#uPDf3v_b^YnSRcds^9e z1H5Izu9xeI1SqpIC494-*Ej(wARIgeHkC| zjRIR)5}&xDQt>0l+4{OU4V0;hyTSROv*a9POB}A=&Ty4@^W|8s zHbuu>Yt_m zTIf>-PNUJtn9+ArR9wu$g^PG*-V4OUL{lWdmy(hqu=gmV?zr6ndzwm5_dQmwru6%1 zoN#yU%4E&WLm%KLW2O~regOduO4w`+#IO79)UQ*Qg2TU&w(bS^X(k%!IiiLw!(y>G zzX5c}?zB&&RR+f^pTH@*UpYE11sIi+h6rjlZ^fWT2h!A4v7zKf)BEnG)zVMcw5tcz z16}?fC1b~ucbWsgjOURlCdPjH9j(6~&C-ei(|UR{TefUw>6TL%&%DOnb8w7+)?zK` zOIC8ELj=LT{+DixwIS!-XPNc!8+0rFkvC>osolIW`cxmslQCPyVUF$G z%QkCk#y-%R7>DhbFq+(X58V#D!QLHp*b^N?>xe9lA3eg}!&=&oYKWUI-LV2#VSxwl zrlS~@^(m9KEob^dBi;QEvG|vb=x%+HakY((ZPRV3d)S*9N^FQ9A^v)-+N&8DRb(S) z?T5VlV=f83ZsWEZOW2ii<@0h?{}5>mcmzdL-LZS8a$m|syUbN4ygJ-mWil;;xW@5{ zbs?$yx3l+H4)&O~46L$`>AzXjhX8-IWJbSd#ahn!)T3r>ED@Hy7th&>DN0?-yZvrs zRrB|FVO&=lg_=41%lo|e^I2#xgvW=6lC^C?I4~igPkJYYC@*tsvaZr0?QG=%!Td2IW947V(aWAMXwFtANkY?~)B zar{i?RM`pn8-&4613Ac_{t@5!)n zJ2V*y!=4gI5-40DurWo(oD)C7WGSy25@vmYr6s=z3<;!- ze!>ZcipqD2|2HLlQWjl13zY4GUp|pC6hM69Q-Li3ysx`Uo+PXRQU_%MN8d@F)^3$B zCB4I6#9<^{qu9p_gBU-D8AoPHS#OiF?lufsC%}OPQl1ijjd!7k0Q-qa0<;oNrj*$* zDc`PbrEC-+6qhAo|NeudSJL|V<2c&5<9!~f>))hqmkGGmmT>#DRvr>bxB|jIN;`Ue zy0jf>Yj(-Qhth6p3MBWEHs&hzy5I|O0*lXl1925MUyJ9UuB6vT%3`pzIlWwa$y)%5 zsSIN*L*ILZRXx69UScSI0gXwzX@i!kRQ=aS3Wc^jGhZ6v|BHzmCMBpWAu&z9g$++QbvP|qTc{!67{Bk%Yo)_-%3b=3y* z)#TQMxt6o0()$S7u$m+$)uB~}Kl=8!b5FM#1e=sqjucK8`x6o9#?@>RYxI5uRc*_t z$4)Tr!7=2ADve`k`Tyl~ZOsMY@#Iv)C* zg*#XCd$U2*_Xs5{EP!#(4y1uhtPN6+)%p#i(~7s*cKir?Q(6$}mch}DbD1)GEzhQx zIF?0hxo0@xdWy`VVoL4Gdm75*bw3+t%wyo%chQ?m$SMh?@2hvvAjtdTgE4C%M;3m@ zs;vh|i5tV@*LU#va|M661gvL%2-sEEe-N}~tl2^?%&0S5&{8YMfAXCHz^ zec)$fMP3Dla>Na;cy?EsCjhZp;A|e8%y6y_*>eRZB)%M}+Hy&n4CU+;xZ5p2RHK7{ ziwv;B$Yj`^pF!9TIahiP2w)xDBVh4TMd`_K<0g=`R?f#LyWv{}I0TrMJTL7^$+AV# zEoq6lY=cj`9N+Q^%oRxKahrfz2;^2&p=Tu2ll-iD7}^McgbL*71nROR{5F-s&`N&Y z1LfMPPUwlQ109~JNSCB@w&Z1_o48#H)PeAn92r@Eq;sJXS7{IaPpbgTP@| zN&A?DinLcwZ<;{pgHp!I>Y>20kHppMA&AmCS4hw2Y1O5n^r(ho-_)tD?cYvrRtxc|9a>C+hS zP3*?4Pqn3gUN)K8d1M^jPpZQ}aTqP`{g{6KUbt1*7xHU8jIj-RkaaGD>|+NxpwSc5 z_g$vm8;GY#CY&-%HXb~dn5+VdOZTyJr_xvIiSGX#uSf@Ubl)ClyzXrn(L@02x0!sJ z-GO0Udon7zC8aL@L{$mG!_hApNxtnhqV&P|`Ey^;ri`BH%4<{g?&a++0ryk zQhr7}0_rmC?f2=7KanvZc)RG)YwX0d9nR1uQvcrW>Z;B^QTB2QQxC9f<3_fe3!rh2 zZrt-=#cWY#XcmjygD#OIcMx~}5&=DvQQE%7ior$s9#-8w_dh0k2`AUgX2H6X6ejfL z-o7;)aOIe-mT%*uai5Xf?iGe~YDR5O4JRvIs&V(nyZLY)Na)S`uQtQ~@!m9xG_!x| zM1I{~f@`bxbZaW%h4kRA#EesVf> z-k!}DbxoMhuHm!$@8OfQOWy*}c-5fsppm@t-Y^m@S!8c|o1Oz7Wk$^B3{?!m*|S;q z)hn#(a67}tyu&kznH*fP<6kNoUBoTCSh3RQowuGJKm36uvwvc7aw0>cuRqDu2G*fg zv+j)Sn!;}(_w(^{eW?>*5KvC#(19G>BEty^^rEeIiWS2$0iPMLSm3A5%kW|%6bckfyI%mX=zQS_c-$+l za{NM~E(2lC3MYJOs|yfx0%3fr_k(`jo!@yCD&N+fb-n_sQMU1xYH0t~#g#sroLf+_ z(sy1KN&B3^a$eH-;2;4)$?K#=7tbrN8`>qDG9i;Ec0ivf0ihqAD}6Uxg4!z3qAjEg z;F$&H?h@#Ul02F7;fO$BP$MZ*Nx$+q)*vuBQUJ4akieEe*&UL{K_3c?R<;8uP&(`t z=SrWqz|vC5(>wvZfC)J5;R)x=yH$Wm0Bzj8ij_NfIraA zRjK;B>2Cvle^eF$p4?yNJDjb!grY4w9FO&EB_))Y%P|+1;i=K#ozMwuxrN<7y&)Z0 z8d|HCssq2HYH&lm+}$dLr~sZDUV)0ch84{VUiFwf{0URsRXw=i8x||>#`&-Yn8|j_ z!yXbrfL|Ei{+C~*!8@WF-jxsOjJSCRIowrkm|k+ZLHq@ZJAc5HfVf%&T<{R!`0%-M z-i+>kgvN-wJS>^m1tv72nM_7JYt$n->ih&l8QraTbnB0+iwh?ge$CRO$2d{uPh7)p zJkX^Xi4~jXXmuV0$JJ0itGGliKEZ_hT>Py!c@vSC%%wGXcWposxUhplnuDF`GOulMlYtJ92ldOpr`E^?Sbms7!=6>dURkR_uBgTpf(1 zY|@m%U%bM8k41c0M{lyQ3x#TMwK-GSRB`4h+8veW)v6tAT%4JZ0-idg$g_i*vx|w^4sKgjY*6EX0U+B_uC~MUe52-8odDZ6^N3w zSd>j>#A%g{XOhH^)=?zf`#Z|;EbXYG*aa*)Jt`n#bsp2kz|#Vy7UerLH^---j^S;H z0F+Js?bu*V(j43b-dr!qaB=3_)L-%~aAGhzSM_29X2!IaYYf+bA~~3NhXCq`iu6hs zm!Izh*y#Gsjb4=N5=Kc`DX(1`oar0zwm_!Y`R${!37nE1ePeiQirj??DM=W`lJ4eG zrfmcoO-ep}1WqgRr%O-jsWl* z3g{V}Wux@K8tHRin(weHf63~jufSdJ*P)x1%kCAqcLm&s5%5@JrA1vIo?B&=>5ApRq?~_096M8pKBEemKBB<)0tA8Z)`3>&p za5pCp+*{vEq`3b^>B1Y)Dg3Wa#Z5}%N>sznL|u6TrK!bt8-wx&4egr!*(p=?50Ucy ztWIW5iu)tiXmmzgT>pa!Q{|MDwO(f8dQ+ui%9{o{FKYE2i>Ycg;v@X=^VD5_#p{aZr$HzAb~jyq-1(M@@@|~B&ov{u5Qf96oA;#;@h*fT?N~4A)n6~o z&YhaC@24WY1{VjoUfYYF;I{YkT!TCcOKoUN1?1gyH?>mes73`Myp+d?*OpX)0QP0q z%EaHzv(f>*b5oVe>(X?cPvaf&OSqnwg{`zp{Z;Ddyj(9UcxBa2s+$YJC~5P(JhIEu zrli%wxtYxcFY=>u+feeYyFnMG87N7CZNG;_M^vF>lqm!_qy`X zP-Q+<|6u(ip-+`6RjO3|mq^*DMDIiW5l>P7%9FT-CDK4~e?ihz-9SQaE?)kQ)iPD8 z{#nvU*QCej9ZKZ?8z5Dw`g=%)K2@qzsZym%l`2)LRH^z0ONBmFs#K{`_4k#%oT98W z(hGHX`1s=Q~lm;`pgFGV@EZXcXhq(ZnZ2 z5$IubY#30UeUf8Gk8Gj3un!bA~*- z22)5PwOjXQc+0Sxf;C%d4jKEG^4+BMlmtf+uublwpS+;B%pY+R5EEof$iP zsneP~BYk#3I%f`SVfB_nq~w%JKdr|rycSK{Hluo|7aj%;wygbZ+qi+> zcci0n?35|3!WclcR$Xab%?}TK8e8XYCda2L@%3vG?N&}+$^o`5S;oeqLSS?zu*0GggLB?@*uV2TO!|4=S40wdsq-pCW z)Cl)+lgAP~FWqTUe&p|hQ!>QGy1=ocQn#hh zPIDn^Xa(%*j(}c4QnWHyp8N?ue@|es6Wo5AL?NKKcdYqi1A}A#r&}LnA4>2oLAZp&0_yJ0-5* zY7)MjD^7(Ya%{iULrV!GRPty)1-~tTa|O;#a+HlyJOtFMNm(UDO1SyXd@FfM3X}2{ zKPl@4NTr-~2@;<`ymt|#O8IXPS0G{Aq^!N7pmuYqgK($8bERyL9Du;iNWbi~(sF1v zte5y}_D1eIIIWb4lxM!Q1*?>cRa3E3s>Inq%AuN+sXkNkEPf71+2s{W8vv27LZm+&OL{$3LINhwb`+^y1mr8uADE+j7>#|Llkr2UXV3~n96HB3&bQuRL} z75c8B&ByZu;EebibxzPz%st42(`Hi!X1n9B)#m(dvsy14bDS6d>F3H>oof>4Q!JM{ zAB*OmI!ul!oFHF!+>Bc1#M5r2tSFbP)C_X$-bBWQ;;C^y{Zpk%)n$@di;GtPp?nbmS>DPM%;_q3^*|e=JU1Y&rRz`7|p3u52X%ORsn?b9B z-(MkH4jUG&r68~^%@X1WDcpJSoF$L^qw{#A&l{M>e#*l`ZXwanLfX2CeDT3AOb+YJ z=sRm*-@l$!GHLHz9zetX9f|R>kg?%&UVCLei&_n4E{EeSjSscCb0G5wE;Al&VE%I67$z9q&5ISJUpNbwmnV=gs9r zOa~0{GPB*bfS;#MW=@I=#ivrJcXwwZJ?hZy4slpGFy#rp*rLb3^*ub=C+5Q7Y8SY& zo>;_$?_Dw0N+2q5LD^Tnih ze2P~`-%6}|3CHF>$D?=8rN!908Pug3)>Ypyaq2R*`VQck2kxOxs0(%h;0$XZ9wr?c zeLT&2E6&R4-@j$roR#dV{tOewBysshp4L+fnX@#VqKNhk?3IXj<;ikI`kOo}lW_qH zSIKNtZ5)$#mx^=BPL3hbuyPh`5eSoEjx>Rtz$OADGJ#h%j68T4R(&sUQtu-4*`;om zPk}0mxrQ3f9XNd?oMeHFF!7@ic-i{_Jn{=X^SZ!atN_+hIVSNotmcG16zCJ6ocS>X z33P_Y5IpZuSR=5}a4_^4BI!E|tEWmBpTND7C4K?d4FW$_frzlk3g|18uva_n^o4d8 zKoP)N`Kg?5331|Y&v&q3hr}%aS4*HUM)FoD&^6;#f#LS>=siwAOB0Cw;r?xN*M@j?Vkx_o5BNgp{W35 z=4L4?0mCY%B@O|{ZHJ^>1zLOcl{{DMepxQ(77F|}8SAvuXOdfP&LsG3B|P<^_!sC~ zDSyM{I_VlYAm@G)(A*_ZmDoYbvyHPXf@(qA`Vb(1Y>_n2xF04-eBFjZbE$*W-2#tN zCp8*5Z5OV34Sp4XJG0qoe=kbvutrCx%i1bnFYvrXZmZ89cbaWDe@oaD$V-y=8Vb-! zdWr=kS4@C$(vHS|=Y(qInM6H_KdHj3N3CRNXXDcQN|Dx&Mx$;cdGuH8SRGAlwJNl~ zX}cq;RQ>a$LfAz47yQ z#o$=!D5oeVo4mqO$169EC$cg^yLkB#;ASH)JsX?58@AG7%E~O*9Jcv9C0uu0jpA7# zx4a~u?EGTNEdsj|fL<})?ybPAL|vFqaj6}hryoAb48URJzL?CEe6+s)cuLP~&dZY$ zF=F!Y#NB{n@?KV$!@1lt3_hU*dMbwQt&|qzQBYVyX}Qg5L=|UR-Ti{`zoLg%^}iuI zR>e+P>QVOZ+0WrTA8K_RPOD&PpA|6Y6`4dm#Z~yXmFAJVV-BCq-$1~~HpKb5VN#pV zpD5?+Rt1~C;M=u+R3FiZ=E*^5*HrQ%eOAfQEv(8)=IPG0s1oSvcxxiEaT97S+r^R- z2iTjPOuc|`qCB(Gd3UkwJWiLiz(s2Q-8eVOT`Wakr9uz}@s7P2q zn!&l$3<}E1FxwqF*<&v`!{K$uc=xI8_?QdGOf}NFV_gDWP3S7@xZ4U(uzuR-EIe6= zPlqS?(6ow2o-Mda9wKt$R`tf+MK67F4rfoCB%{oa+8w&nxQdT+T=1_#l|P(X2|42&*;XT3 zZ{KV7wXQ)IO)^|=LP1$oGRpamV{lY|Sst7e$eA=lCh?Npkh`773sVJL-hy)##$oLO z6uV`Z4RL0VG=Yf?3k9qMxMVm+tGr<&pi_`0*9zQOB%UOJrPIq{y+A=hb;TB<6E@^;4RQuA{ZCmz8S_K>@KYtNs+y!tvy_~C|ij4kHRRCz{aISc* z*>>8wYIgJ>Re-ZdDBso_gOu*@+ zgk_h!7D+g@B^(#)ML$+4_c;P!XQHLfZiC2QA*CYmTE!-%jO`@?*B`8sG)ev~0<*D_ z|6mX2-R+1+>f_vY_(7WIQAx)O0&Z`Oy)u8-l%(hA?*iwWoe-*M_o7Xe%;2uJdS1HFz3dt)_COj(isruiQ3Vqj7aS_(sJj%^wM4i|vz3K|W zQchD-ITsp=w%0(IKH<`9LX^j7Ar-5A&Q-swOPPe8V#CbIEZA)&u=yC?YqXtDCn>$S zTw^`Lk54_$k+v^0tV>;L2WcGdnH*g`lV5+6(PY3|JlQf5FRPhzGVPEi4>shw9`Iwi6)Fjp?RR(~MSYK9)di`&uPqm6> zU@xOIe=kZlreptvZ`q-dNqPT4 zbns7M|C+gc^zLt*b1lYWz(n5f7mnxdPkC}uHsS4hF}Qm@qD(m)UOSJUCa%JE#}_=? z{Et{+RrODh-C9J}@m*|Qy@}m11aAevE>oAv``T8BgV5jjdQF;otMd1LHYe zZ8$Z{QrZ9ed@{E0<>1M)q`B;5V@gNrH@}Owhds;>Z+}5St0ba*ETnB+&ZdkYs`cte z&wBB=gbm=4!Ef{S{Vz~Fpb3#~Wu$JH&t~^V0&J~m5ths0`McS?B@JDtfwYQsLubxp zPuemE=wDLxdN2H=!f4T{9TC<73J%Zblj*BCJfs;_edN3?owYx1#i#e(+;#6m^bAkq z;EI2(Xf$qBsNK9BjS_-zD?H4m6?;fOd5Tn-)Fyde|5~kIZR&R%%zYU)e$9)bUYjIB z-1TVWe#k5FqefyVAp&QCEjw~Dbr!RJc!Af>3J3?gq7j(R_pVFVCNcPX-u!og`l_{v z_uS5olq2jvTTazT!%bgnFP8~=3ak?l(+J$SC_{`KOO>J2EZ`F)K;$XMiX}jgP-y!E z+?DLS)+%uJ{38{1?gRo-_Q3%;<{}VLKS}{$IDAH+{d`@@|6+T?y}c{NUntNZewY33 zd}~G<3qu4l=WLXG$??SM&etpz!|^tWsFnbeMgbtzH;s?EEw-x={qlr zK-lp!~EE z0$zh9A5wNHZcwK__z2k8%AKz~Cdc4-z^X_m<=08_*1alhodX}qzoYsCBeI;F3o<>xQnx_ zPAqo5avLc?936y%{8D$pHUaM*&%v9Gov-iyp{`c)cR&F5w3KOhQ%I2f7oCFbQr~*> z9|`EZ?35kdz|M?7d}>D$7p`vcr0RcLD)e1LfuDXsPEj$rt}fULWCYP_(Ym=}D=tN! zQ-E9BQYPsF7&Go6TrB0BT6hP=8>Oe;Xve4CXsp%7VzpigeaZl2J~5AvKiWuUcq@88 z(TxVi6YN>J73(EFOWE-0JuLiKSFtI99jnEPcWe{7T_@ePGuxyi-pt|+N73xx%errz z*V-)_N>;AnShr|GeXf^tB{CC@`VXOTT$l_rS~T^#(f&jVMVk(=aYqIX>K3tY{Q`bm zw3GJ=rKi_eWKc-KH=>B*;_|B+7QVXd6dzm3oLP(c^=uM%ef=I8AK%05ic!L~(FjIo zPh--QXBhl?CPf-OS^;Udu$tE`16BWAX>{%c#5JX>;;!S*J=%-l=u3|^Zu1{Zm@20< z?!=!=1r4F@1DgdHKPkL|vm0zY$=A|F2GXL2o^!{KW zeJY39b0BwB{vB3_j!#UXaujsy$DNga*6;hMxJ#4Pxz}(WseB;5FL%As_tLPt^r7#4 z=YIq-`rCPoz9f{Y)ada7%X(a%aXrwz%p zdhvTes0U|v#QpiyPSEIUI$B(GSI4P@2zgyqubeH6z1$?^n(qqjBR{9|j`cmqZVGnz^ z(hn(z=9e|9X3_x&vM9hTEIP;H}p< zo?Koj7n+QFyJDqJ>-ZLC-{OjuzUxREDgKl9(;>qLON%=g*S9udE;hCsud z|Kj%?`y+)bWpR4N1Xk~FLgNm%^3i?O&}ALrlCjBF#F_nvD2eIKxcmDvprM|V>nc|I z{!m=1RH^#Qq|u<&`_X*tdqjsu6XB(+1P&TJqUzCdpcfJPs_KCBUnMQxb%*gt-5VpM zDpmhoa`rH$;5Ixoq0L{L6jiGJi=>XR*O7a@I(T+yP4Vu1XkA_L>D>)`xdlT>Dfis} zkkgNc2W4d%qFOzKx1Skp`cI_p*~x)ID<*S!rO;ex`RMo5D%0cU?Tv?v0ll_j>f;_o z^|rV3PD4AMdaVq#@eF!vJms#wc(|Q^Z^VnZR)e{xfm!@l>h*wa^Wu9~x-MqwAIwZmB zJOT*uxI8>PMpsXV^Sx@$47mCDUo|aG*(9&-cn1U#>V4%$&pJtjSAd)HR!AjP`Y6Td zi;KrqVzyf8c#9oN^(dl(0|>rsa{#U0h`WCn7mC5%&+$D(rI;}&d2+qM2QaEssZym% zl`2)LRH?ck75c8B*vVhrv|o>q8q^v&{y&(SKS>%BF5ZoJXwKUIO!&GgG#~h{>?5a2 zl`2)&kiC@LGsifdt;a7Ul<;6rbzu9aO4*6i>a=rrqCm#!YT)Uv?#HM~l`2&?BXw+4 zrApP`NOsB#Gf6wPn{B&}a4Mq^v&NNxn7TA=R*NVBY-Kg5>`>SM2o685!eZh~*_K|MW;vUzUPPaeFJHx8o)PQ6yJj=;-6M6LY z?IaAnjqc5=6XD}aXt*059xje8{r^6dYo{z_C!43f$Q_^U;K~gO^~81^$DMcI#n8I$ ze}1;C8SMOJGQVxh$F0j)#^0v`)A} z3zd3BK$|2*1^YPe-H!W4w9sBg5 zTdP_`=uUHJ-A}yu*cOr>Z$;s<3B3Dr5d_qv&A_4bYFUe_E&}|ShuO1oHWOy8X5X0t z$~7(oCUs)i=n=H39)zDsgZ0#M=FFJRmvfJx^)w00XtBFR)9TJg8PzHRf8#-Bzxfkq z!Pyc+K|Q z{?fg)^)O@E{td^er*&KMpF3r1))lW9z$$|%Yd0bE0 zCHgy!wJR;wQb6W0DX*!MnYH#PS!N^tlBc1ghR`-C6n~ReF+51-;mxd?Gn3gX_i#L` z42@S5bq7Dj<9(9|V=L1?p2DxI4v=m(Q(kVtsx!&`;fBe(K6iidJe>m#xG4`#Y-z0e z{8eV|^B}U%{furAaH+jD`Qan*jy>5RFKFWgI z1@v0haT?cF?m7W&9I(ftG1MIBp->26>}-S zsdvk@iBKRQo^!?tpb>I?M@e%H7dX8b-WK=Z+fpwAF7t9FKav;sy^`-EQXf)Y4dj{y zA4nQsfv%CxiR0FfrQQT=Pg;_e5{Z>uUsQ#DeXfibrszldP&*T4shn_$1&nZ(pIQ6 zL*-twJDx!hQeVnO%05QAgdc8|_@0M$HKiR%TnA=K+n6Jli=V;LHe;pC%O!w=0%*TT zzK^DW+)_lflk)2?5Sjo-mcbeUx~Rt`4`I%D*1iPOq>ft)sJ4}K1xP+!q#XTxCF~HV zy-KaL1AkrR3APsRI{oM`_uRDU-!bN?Y(9CjFI7|v5~}`WsnDlNm8!pwG+J~<7n!6g z)_CpMETt5mSi|yt8mhL4CD_j$ZQ)@~ojS|$vsyy@Q#q4Tgt0uI%%i*6kyn+D-RlwI z<)Yf^`zvHS%hF%h%H*go)e;j3%-nMETv--5yMJI4;iFxBxMlPJn)_BEsq;O&*zrNU zJrrAwC7hXj7lU6mQ~KC2dNrk(Dn6c)UQ68=3zx- zo;t-@T>=F~DePGJGe1sSz|r7nEQeDlP$)H^E0296PG+J9raZwHTlDz1zK5s##9SC$ z?G~HExcZ^Pu4EURv0Ppz6;P+qDE17sPQX)+DNZpJq=Zp&m<_Wh@#Xk^1U>XFt2TRPNIC_Cw%|QcGBuT$Xiq2A=q7y-CRtG-PK{hU8`-*u;;}o zyC?ttEz{<#WLNcPm@p=Z%eTg|99qbdt!Auo4e8uE)M4ZBVw#dC zbZWV9Uum3KyXf7SE#(%z@H(bmCiGEl5TF!T6kyRwnVyr$`Evpog)+(S8UvZB;sn~- zbdmT3V3fVh3J<~yLj)Kk{$2tck#au!q(F^?*;oK$Tx&>MAuxBJfS%BRO~TDSF2E)r zRw6*K<5vNtMRL8XXC3Yvkcnh=+eN$l1(+P7q z0tR0QI7}6PqXb^kC2d;|L+96_O5nvZ(4Pl60iEUJVc`Zz>&pVe0=WhO)Et4oNtHCc*?M%Z{H4VE2UQr8|9VlmMJJ?01tqNZAF|637xT zY+X(Azh25y@?|V_+DV+I#2Y031SBIRKjm^w@-0rM*wx$k4!kdA`?)}uzsJRgZ1yr| z`hFGIO*Knd%LyNWs}}_1>q;736psRxEhTNO#yVGW%T5URPKReC&adUVV5x@;sk3N- z%^rOPZUY?VG+8O|ID4Hyt=(z3K5dWkR)7=i7JUfY1fWk!-G@qhDiuGu0*#9$eN%h{ zINz7LlKkkUT+LQzT`5T^k@8HFxV!|?OXa#rcS(In{pX&Rb5af#rQIkHEp5230H9r< z(ICer3V6G_U#xrQO<=%3xheGyA7RJ$vzWf42T#;jH>6Yb=Sqb>RjO3|&19pzD2vp? z+u67~6MdCrS`TYYsHYLVvO;0kqtkm56c$X4y0xk9p>@nQqQYz(|6~J4Giu-`vk9Y0 zeSe}H>v*Iuc$@DIR-@&p#_QAYN`#k5Zprpd2ni=ZCZ4(GQc6nCad72t%$~lQbBUelkm!f92v(j_ zKv6*vWflw8ib=k`JddnXyIHf?k7MPzWEO`~%hyIpxt;Qg&AO}^o0;>)F04gZ4D z^?OC{c5xD+|D&@B#qfH?YTKD4ndA#(7$w0L0jxqPUS;!Zn?Lx9^Os4z&CR*Gr8Ff^ zfj58gTPhG@QI>eb@97hAo%~Kpy7o%GRl=DkK%$Yb8ayCCBOo*W=uM_q;w_Si|C~qR zK%#Rc(nrFv9TK1v0P`21u?ReQ21AG(-z89IjdLuBUYZ^Oh#~tsbT1vEzp3`e+Bz_ncG zDlq3_a;~r{t59wVkO%-}OF3&o1YiZ6bds)IoN;GM`uwEPc(`AzU%QlXp>&;Na9n}I z?wd48<1}{C#%XM$O&i;`?M*heZ6}Rw+qP}n8{h5!z3Ie74UyywCo zqx4YV4B?|EIbQ}l3g=+=I9im}U@4nY6B77+4ho@o5uoH(2YZPirX%DhHrT#@UxTYD zWXZE6_b_U>#R6GNi)%dZAi$LpI$kpDKcN%+aLA-dYKWztI$2c|lwClKc?VI46BwEfU;r13gmI&&V36DoaGB7#k2!waH`+nA(nFZoIFV_qvi4sL$- zZ|G>}cQ)q~lmt0-%}_NMJr!b^Lv$watMH&<<6blgOAgy;gKg7NKz5Ps>*Tq??2HFh zZC-S0M3EeMYHEaK69MPg26XK*Wp4F?-nX?tk(Z0Pu&el=YVAJnq&3)8UKfj!Pv>8s zh5>k(I|;K_$}E70?I?PpyG5f6Obv}?F8hZfYlwNbs4v((&tF;OHUEEVf-l21o0 z1726OJQ2dj5?0AZ6gI);l2LZ+M~N7L{Q8^>otyy-+Bp4w{2NV2V5TM1V(Qz`dO6#; z5L-HbiCq~%=2~-Xe<7dkBm6g63N^gegBcYJx`4er(HAxHI86;)aMKXd z`y^oXLb+gdUrxdzx^StWjov_sf*%ymziVz8U8_{xK=nEKB#zMd_N#4vP8(nuT|}ST$k*gc z9p+_7Ln6%~0Un=jy}T*0cNsTx z#Etv5Oi?|uYnK3`Fh92Q7X)2xmnL0EYwf2Kez8LhNTEjXCdr4&a9ZE2UHqOyp+DUd zCw0}Fpf7dwsfq+H?>E^6=^l=^pIZvbumDk4OHG=6jf=IXHTq*3?4lCNuWADFBMOI_ zMl=aEe2qjk?)%B{fRwtBv?i$^e-6f8)+X~R^21viy#@D`Cd9R0^>Z!}Ah&dSPkG1$ zgb)1?upuVd3Ca29)3@`8{jB6w3_9bPv8VQpiP1F4<%|j+?Do3Mq@U{zU20lJ3Qs1J zz`oN|PHi)@Zp+SjfkRIwBoKM4maBWx*x^;<$wKAb<6X0vvo<4ElZ7V?N#_B#}pb4DCo_`=g&A@3uVhH|;yOAf}2Jv?W z_$nL8Md+ZX*KcKe8Nxlw7>LGfsuEC|p{A^M0!=O_O~7v9WDG-YGGqf@?w5|Adj8Ph zz?XS06;A^COH{Nvu-^9GMWpYmZjC-2ecukY$o2e{N807(W(>`1>3HU@=CA6tL>q_B_ROV2*B$}PCwP(-E+BCNy&V4` zG7P_C1FnduMF>*SZD3aQ` z?-7!(yq{siLcc97zNO0Sf56Qgd4v?r$8_&h&@4ioK!vmBIe+$hQDl+$am)FxuXUP_K6*#LN zW6$d z8s?_c#qS+gE$x!DR8&@$4--~aNLMQnS2I!4y!?-6zuO=pzG|=4$L%bolhrYWo4XSV zi~z#s86+IY)dHlEGnL1FcHct&mK%|j8mQ`F1(nsOOJKTSn8GD;!f4TC!e7Z@P}}m# zde;k2C2T-KT~S1|Bv$|rW$OGI5?q2}gm7eLwFjwG-ES%2k=3;I>T&9e^ z>_VX>X)%0JiHq2YD^0%Lm0vJaIlM@^C@3Bj0HiD5Z_@me%!E4v6r&z`X4eDa4(+Eb z&i1fU)WD9R!Bp!CdIhIXLkrV)=Ie*Obnk#20{LJ+edM=0_{xuT8PPCn$IGecJzEsV z{$qmmws2f@j;hss78!xrsNb`C6av?fFQ*&QFNsKI`{vz$nYJ&`1!bd&H-zyMYktW` z<>{i_^~c6Z>4o5yO5*Uo`oh9rb&vi5WOO%&=Z+RKo+hJA6ACkz1TX}c0BYX{Z9tAT zPQrY=z70<9SBy*4-0cB>W;gd+Uq#IU#6#J_a%Aig*)Ybm{X8I-C51ecr_fd&<@}P$ z8^X|(-Y_rSiO|m&>~6`}z(2~s8td($*C-HkBl_F3W4^@r3Fwbv+|Ka!+ynXR)q~~8 zfaFd_6E2els7buK%u!UKDD`rBW4IhYcHBj1jvJ0P4$+L@9ahK8tn&ExR9t#jIb zpGbQ1mdcLETO+Atef#C>aqY+?N;HOHY!XNM$=ZQMFVPD-*$SEJ0R=pku?n3#A!&W0 zHZ!>|Z#vJ}se=kT-wNCz#`+l?RFfh~okFQV#RT{JU~xZ%P-M+70`cF;3>Sg+_LJ!pbS#_K?W6t9BxVcEsOiyyMWuPSAT@DB z7|Z?qJ>z}x7lzz1bCJr$ZR0s^B7a>L1x;CyP1CO8n?b&NkQwaXQ5u2ir9wP8&u591 zbQO1mmMH1$9Qqv{Ad=j?mpGngX`Rv1?9Tg1-fO^2laM^Ii|AI@p^SO9Iz)+Ql-T2s zT|b@td@~iVrh7`Uxb(-?l%!xo*m8yhl~mgIN~>g*c`r@%wURo$A@qM=QuLga2);E$ zg9$nI5dq99=-okp?uUC&VMhKB=Q_RZqc6w-T(iY@A5DL2eCD~H%+yd~`tK!x9 zV|(ok(y>=dqli|xB6m-PycgAT=Xm0(lB@#l9}otFupih*c$S zhQ#^$r}HZ19$DY={Gi5HP=Z`{)6k%L7xsqV4X7- zo^onxmc3s!4wr;StC1j-9hjaDr5(;xUC9OM4=tsOKNDbNZ03DRvu{7pS5+_H)gUUI z_)v;ev9#UdtlWKFeH-~<)Li2WJmC}>K|SJ;0>(f@U6u3!590twCYc_t0{5Mu$kkX6 zxV9_nGW<->5gH2D^kt?bGvdiD!MH(}w}%!`65-xqBhj`;(#75JVu~~yl<}hU?n{V; zs7y!1;l-(BjR+HEl4lP~R94yz>8X2 zi5=ldA_BgyeIje?8$&r}SvB3tQGsuP(=pr&4YMEwhIX9M-wqpL2UPCF^%H|CrF>@jYIWH)(l=q1yJARM*F)#^3(7Qu!qQO7hoN(sVu%_aat(4-ezSJAdn`c2N6B+ zj{M_d5zlbv2vbs3krwV++Y~*{Y^L9JKs!^&xdJt}Aw71+e$b*RVRU1g@{qN-Rhb!Z zs3!SjV|O_dnyxX*_>xXS$`a?^s;?>*q~n69#O+iNScw{;B_mnLbKGvoDuE)3Gyj*+ zmABfMJ4~5wPosT)8V0f3srk_7qOS!XJjJ;*Zg>t#xokK)NESiA0G2}!7J3eqgw7_u zNvJyW`T`9!rvG|!dLqL*cSakle8BF!rPEk7YvaKqTN}EwBe857Bm={QX>W z<}9$EDwWdytN8Jc-Y4(}{AY_Kj#;jq%#oO$Q9*QC+Iy*a-!F+VkBoxe4x1zA3+#P@ zcO9%nG?dA{9tf!wXa0?trQ-605sJem+@|7TH~R&1y%T2Qa?_sV;-JC-d@z;THMMbs zE?jE2=Xb!m{GPjD;O-*A#>*-fe(oV)BlC>vp{CP9;TG3u$27{GFQ;6I!dEI$pN|l( zhM@NLrczeM9NS<=gkhE0{d%8*(GU15Mwo@~X;{wIv~_VTBLB zGRRa_+*ME=JePrx!em8W_?kBB@!L!NX=AN$RXsz_dj?-Xpi{gOka}%DpG)(CO|z#H zJ+S3xqv^Hbb;y~k)0Q!~f~+UlcrX|B(A}>t=$wNT5k|a?#LZl_LA?Op`EUTRQ4T1C z(S6VslV^gS#Bovyr1i;nL7ok-tbWE!9>u$Iebro-jQ4_w=fHk>^0_{U?v@|pFf-L3 z>xg9)z4FmL*PET&?}HoNUMpdaa7yw<+fxjewcIWE?avWA3C`OXMCy~*;>Qb%Ct_fI zE|~|wlnIkt=Ob9x-@j+FFPcU}wn#RGeGrybqtz1KG*Duxs1GRfP?xsSJzp~#8x`I0 zY0NArsEB_3%;NIA?We*P?{1Y)ZE{@+f&uQV(u%LVJ0o9kcbQp0MU=c4R4wLt4naOx z^T12ReRw1kh|fD20o+BbsE0}JC4b;@x$YSoMH`{ytIM;Q|9&Yw;QVjWBRECtv^QNt z&Ho0JZL%g+M*+NwAXB(KTOztbhr5B81_3G;7Z=H+tiS6$F>C}_R_?My*K6ZGLo1&h z+$vZef(b-Vr0(;I6o<-(6pWEFZ)+v9?zTwk$n!a~%5C%^_`{Fxy@sU@O0vsztW|GR znJ0M;Z97Hz{=D%C{0u7_b{ylm?N{vHDz`kY75Nj_srkYV?P^gpPC=cbR%rv(zQtv3 z%>i?H=cJpp&)+TnJjeGnf1S02l4-Gx?S6-M{KZFvtymb_LoCoB=jMejNin>7UxRgy|#Hl6R4LP*-)=uDI6k{@gk?Qw{oF+^q38Bqse*RdLQ7)V%%;51?Qn{Z0FTJ8(fyxxQReK zyLv(E*1qthUP|48>!)qiCusHO{l5Cn!vn3IoKIQfj|Nlo&OXCcVa#*&3eAbA_&jAM z`=f`XTS%AL5LXC9R9$}7d^0YJ%Z|c}b%&~bVXkz%qoNl`i+kHWVL?sO(_b0CuT=sD zmI|NXp(g&hayB2E?sSoCtUP?JD3JA-P{hhdCZ8@o?M?KIJsl6TlIepwwrS)>p3B3Q zaup>nIz}h-Pp-R{TENOUUL4MLnAZbu&rKi{*;A@v-cftM~f{? z_3e_8T4*1hH3rh_;|(b`_Lm&3a*}h{`Gnucu>`9+u`ejlnFufR`_3Dgsv1^1Js!vK z^T*X~gZC9Yw;Db0^aFYO+NItyJb?Wa-vy8Z2=B8sFf3J(`r#N4AYkMD53>AqF8pO4 zBsz}{S;a4QAaanhdq0`Zivoq5VCKOicV!5@yu|QgJHd3)scRej9@kugvAt-jJ=O% zu?mp3tb<=o=Z5P`z=s&il*F5k2e2g0eqQUbVn&m#edOVk``l(QdB#G_9QkX+{~**$y%ft-3+KAgB52(O3ujjYD+C;0BJe zqI#!jiELPSVC6EUT94tP{6vp+S3TG{84AvUAu z&5d(^HnscmF28jWc<|N|*&C@ag52|Gk2rZUDN9;!_(8!i@#H#Oyg(}J=iMbZ^^|GC zS!c~X*`D$%Y|y;M=2htR)f@sVN;MT3r+-SDt_XWOkj;ZZ16z8}k679MTfOY_&(GS- zegt<@LTfXuiMA=<)KNah{3kp2=5YtFBJO(glDDRx6%HR%T=i_FNYbcl5;z=F|4?jLuPoC|tUd`D;FSY?s|-ICYt8#~ z=waTdM=ieF_s}o-;S7J!77VaNfC+C7dZ#Nv-6toE;tE68NMbg*VLhH) z7^3lgZfu`8B|VYEULV z7IbBGP$(SjzM30uy{C5klQ42wNK%Rl9UBK`n`_1j$|tHfwQV+S0(u8Zp1%p(m#>Q927pd%3pm)qCxko$jVB*i3jPKhWOJ8COdSxM`bi^b^BtbVcsty=!S~-e6v%^l4 z3_ij$`5I7~gB{4{#D3CN`>Eo730gg4D+reeLqzdD^;Cp4&=YMQ>48nB$UdI2lX&(Q zAZC#8jUy<0*1J(7Z%^rFuD;znEYB-9&+O#TwnnvQIM$XdQ0))O4VhPua zVFGY=*vH-Z5W#t3R7^u)`<&mFZ|Ru!xXxrAs-8{*s`REBxETSYYuP5L?g*lkL+DpX4KGqkPMtn zZr0DLnyi)IWJ`C(N!TXiR3DMMIn>cgt(?>Ft!vzp2*jm(A1B^3J1=bG_k_7L#<=dw zT`w+4-I2>bX#uAI@j^3R=cQiQfKajSi*p~k=Jas`NS9UYyzGE`wu#Zb^?pJd?8nk9 zmHWYbq=Jg@JSVsHrBi`lEhph1kjP-*?@)2^_nkY<9C(%=2fyqe#*Chg(Vc+vWIvX| zMs_=H+AZx4#2(7k`xd%7)|PppINs)!{gvKuYcwL6O%`D8P)Uo`O1V2s7Ib*kfRSZV zSyR=E&KIhDF}Q4yu+bxR`xUx776Mn@sdSE=l`Kj#P*sqzrXHs>b$9^|Ms2pZ#Nkh& zAttj!?Ep@~UNke_S0oCQ25nVT293K|sjI3nIHQf_@!BF7M?U!PLC{ zIbx6j0+q&wizQI4+LEc|N8d^h-iGef(wOcEew`Ofr?IVMceJr8q>ttOKO8*MxfT0s z;(eohNIdd*s#bIw8=Ry2BZjtZy9|4pwegW+bP(tTG1Y@N&M0JJ>in?a_UOvw$$ifc zu{EFlfa~(M_g9MA<7=={mWa;2kDSH@P=r8P`u}pck3*G|M?3n(1;fLDxq3{GC0IF9lmZo&(eV-`ukV#$7`!exT-{JNBUA0p^4nBOY6t{*Z> zag1MF7D_#7nvZLk2|YOg>5Qh`SyCnSX>WFP9GS|S+*<{_G-^&`xp^EP6!ujXTYK~1 zuHgj}Vn`F`Th$!*(@x}uxI^g*w)W{Ut6)WuWcJw;F_bKMcn5PJYy0RiJXyvmf2=K3 zWJgjRutjsNWsG8~?n(hdeR$SvxRpt;%RV}O)&{LZrhktP6-NB&p^>-v2BshOa~YX2rFTqMgcu9gE3Sz0CIGJLiyEcUGTV52=LY(-;ziRPCEg9&;^ z<5Dq{kp^alq)6d1R>4`7wnjS~Fx!lTzW1x({-Ag2urB9}XcXwMQz}-j3U>;kWtEuA z0a)4__7=z~=iNiT6)v$Fz@vAph79smUOO)SXtKzlnN5XHD|LR!xBI~ZiLc2ASCSw) zgq_9}?Sv5G6B!qu^&D|+Q!&_I&)(?8h0#fh^0DwzV3#2AOc(j*r%AiwU78BQ zObnr0zZ0H`hqe;hK`214`IF&T24u-N^i>_EkwVOdK(b*`Rrl!;$6TaVLJ9u=3=vov zaunJ*z5o;H)<%l$>4dS-@e93rga_4BN*XSNZda6oujXV^Tax%z0kyN5aS-k1JH-?5 z@3%FF)fNXL;UBIHu1JH|??QCfaVb^v=_6%sJXd#G z6hac4hBr-=Y8~$!9j`~o*2~VJ4&+;?iIS)9LM~U^3uHk}*&!`)Q3WbSGcW6=jcf_O z(jX>_1{_=OJqPM!D7q&Hn(>^9vZ_KWv(AUxu-mRGS9~F)##Q6j9cd^Vx4vl@)9Hc= zWC$w(>eplsk%eZs$9_@L!E?^x^BQkv%+Jq|yl3*jg^_7$MbKV1M)cTO`Zkk$kJKH>-wnzP? zPJ;di{Sy|f6o#PN7h$-mJ<-fM$j}@}htDEHaVya^um@g9Y0^K7kp^krGnp6#Cq$r> z%BsYA+@VRh5mYfe5Ou`o`B>z1Ye>Kmg$RJQzr#G#8dP5_H1lu^u;t7Q(h8+}G83&# zHj0`6?;!{)DNVL1m5k|qr}8HP=$#FReu5Hfg*DMJW!rd@KYlfMUZ86&#g>Y243ZsY z-%ZqKT_f>Vl8cX6O8fjdq)0(mV`GmCaj=AaYQsG!ce63n>kSnoy2Z3#_bEHg+sWn# zKs=|SeOU%y`KLDuGNt!n)HSUZc_rLG<~%#}254f!g-zkjs~y>na{Lr)3^79mci15( zOA5b}Pk=mpe|wp9lK@1Hdp6CaJ)XZ}5KPN>m6BL?RKF*T zb0EK28e09Q&tVMI{-3xqGX^(y~^DN17Xq&I|$P ztC{?67opOZ^b4Rk4w)^_(X%I!D&W}0ipnu|U>mfjwnf*u)70pFvd%ElzU!JGm`B^I zG4eKh!;MPK4t0uf^aFgdNT9xo&|K8)k`i@#5`p)?#^#A{9_kd=QW1Bmf6|3?oFLnR zQ{^SJ|8r+!-b;GqG;n|s#JsJ&$N zdSmejq(ZsREzhpX1wdo2h30PQe#`wf_408mfASHX7ro}Y`2}W^I0b;i_<;umRK_w58IWNEPZiBI5uN({IX!9#85?Jji*wX*k+qVgIdwhM ztB)#x>RA?1kyh13{DJ>ku+XI5tU0zrf!!Y|&u29SuP@O26Q4^uJ6VNcBe5StIyImZCcH6FJryH#YC+hFrEdP{SfPw zQ$>6l^i_i+##V*~Tm!XzwuIs8$6}>Garf;B34t4&%#$w$_iNm03>s6Z$2q$O*wU7q z$P&`gXrL%&TdWlDC$j7WtRF(H}ChRrMdwNoDRnqPu)T0~IueE`t z_Q|n_%bfQK%}+y-e5GAqc?avyc*AE{M5KODw_6*3{da{6xw2E!Yg5Kpy+5T~HAc{# zEkKq$CB}V9@NV*kWn$p^xI=X(v;D>R1lU?_Y{~jrtW)bQ_YFo!gnQwk!1hsGxqNxT zCs}XpurY9OBJG`KWf*1BYsff@-SKQT;UR*LimxH@Pp$Elwm9Ttn>|g0B&8~-TO$4B zg`dw)y2|8D8=f?6szHJGyLEp0QfG`#r)H?<8l~cGb#%2AGqGoF+T0zVD&E?FH-Gza z42F=rE$j91%QDxY1JTlaX4b~#pQ@ih4Ti)5?blouBNkId03BdMVvW@Dzz7%d)$@bs z#mAOs>Wlf*=Fm_=iC5$qR%q>n?ah`a^5GHz`$XLXvwdyom89j*-V<8a1&D#3eoJGP^lNz>h~z1`|& zz5z<(Z%t{N%aj{F#6OiyM&$Jt@f_h^Zo4lX*L8JIHuglq zOtGOYj4sK^V_x7=#<`1`zKbR2TE^@9JltmlHjZ;e%R$b!3KnXA&GCG*RibVMNPEF2 zBCtNOmQqntU(QIXa^nWt1ZKi*z34okmhCpz<=I`UOvvc8mHady#NPZB%X{{Qnn;V* z$(JpJ6`p~l^MNQwe+VX|@i(tcU$7qt^Q>r9LILVKmGe(F{}q3}Z>H2zVI@+a+ zpE@x6kzbV!<HnvX6z@H=3mLH$ygh&QZxJ_N0K@T+{q88QYulXloD#F zc#YX~j?A%>ApJm&Q!II>m^rdT2rdZRiQjw(UCc?6+FCTA?hAa{KD_wlY6sD8j6|Qq zCYtzgDi6MsN}VocXh=3Ixqi!S&G~7m^Z~a#v{aqJvN2qTyAow>T?%>v*J_ldsRu^$ zGo3#`Oq=C2pRlndnTy%56SJd=WNs(4j^)dP4NkrG&O=PZS~$|q9R_Rlj8R?9z#Dsw zITo80j%C=95)XP0YXKKycJwd*CJApr|W^ysysIi%^G)!^e*_g~% z+?>AL7@J|Hu1Rt_MaG}rb=2b6QBUclDNe0(4`roeZ*32_sfjQjAD^T>De$vKY1-af2eJ8WFigf&NnUsffHY z;rrz1lYEd+s8)M+gY97Z&7zdx6^^6_W~7a8933>WgWiXJa;qZmXnoH`ys;nkGF$+g zL5^g_ayukDf#b$SBD1Ifv=gzfHDr3npQ~97+uvP9{aRBsp`bVelf|yMN1@6rC~@)# zW?DOQZpp7hUy1UCzoy4kMTP26+vAC;(=kIudT4#SXA04oIoB|A5>KUMj%U*GJ}7&A zSp!07i%I+<`5h=I=>R7*LaK?U8M=2_2(4JhHzbi@AA7q_E>qusIqg)Xyd#Nu#MP?Q z6I17e-o!Gp2}7D4dE@i9k8u9?%nd8+Jz!;GboI-ZLLQ_n8sUXbS7iGWSYD)<8(60m z%(X{+_gAjFOh_%LfpL+oBsl3=6n41HZ`f%)WFN7e))9H`vw5!qagM6_njAe7`bFwm zf$G-^`PF-3pZH|IIW~GPYYr#1R!S0(TN!g1$F?<|zzo|}nWT1YFrZzy4e@>wkL)>= ze^?Hd<0K z@ulTw?#wm_m7%evw)=k{k(ja-eRUm(Ij0`mJfW&G&giq zw@!$mZW~o-Tauq#c13?WDaTYaoA-mDdy^~E#w;K-?)?%~TR+a?er1jJ{er!LHg{*` zR3d9CVq-k&YV-kfEMZupumuAAc&57^TTdX3Gcigh83`dd|MB;1iPl)WM#j!|RNZ;6 zZ|1KRT?v$%XrXa`KS#K3=Pxra9W(IyxySJLAIk_Fx4UJZUC1_m z+S~II1*vH9s>S|%Sc$^D9%3R=y(Ry=^L9Op;EqvdG;_MibUDi^KKSshV@lH1RKePH zOKc_ihw_(DmFwXp88vQ=D2uCdM|gO0=H}0D?XyGl^Z;HL7Mu6*Lr- z$rIxFKNwu=|6y=d9-W^3ps1Upeb3}BlGz@J>OF$Vn*doDX@^4yHgo!4ef2*gU`8 zDle#E(q(c9%NmK^R9xj(SZ4qBT-}xM+q6kZx28nUSI`L4C&_Q{yGk<0?Wf3yIShj> zb)QCl$b{OC08Aa<$KJ2Bo(Jwwc97rr$b2fq56&i3P}b3)pk6}4e61k8v!q*Try==* zIAGT>xRFZJ{PX<`$h@{8Bc~ZbNQI5-m4ZL%@01X8DRo}gdJ6y@8%xW7yd`l*$RqZ7 z^!|FEI}aO_HTgeCt9;X~lb%W0f!NJVy3+a)o_(lQ$fPLB)NXqk$EZDG-t3*-8lPZY z`|1`Me;o#?ASb=`dXB4#et5UaxjmvKwN9cd`zQ0EjkRuv z!cF@U{8aM?(qc^tBrM=UCuvA@}J1hePgkF{%> zsRtGdeZcB#F4~_BaoP8_UpqI-CEEwy@zOZkc=?j_!q&_e6kGogcyspU)*`*;P^ac~ z@V#R$RuB+?)QYUtJ0KhI0(egiZtkW?>m`pkZ~{k=;wG;DYy~7xMRccmA92@RtoT7m zVBz`%CEJ}MF04<7!!q;-1(cO5JRPXA{oP%?o#L6--No>%)rq;q7vI$m;HF!hZT4i% zR4Yxno~D%KMinni($Q5tyU)@#3)gme4n#*+6PH{!uCpKrFWl8?sc<||xd0({7cuB{ zCQ(*!v*4OY$0&altdb3DZ;RitC$z2*b{uJ3;YicQR?%ct4mI?qk%K+esq&++lmH33 zh-cG+m|5VRw~bYFd<1+Vrwk!t3n1y?)8UF(le)!8G4y1$;V`|hs57@(AcJ-)X+LX1 z{q0C0ACTuB)ohd&J$R2@YihhqUvt!5`ozO2E0RbOt)dP-TUW?ni*)O5CoX z;NW8LlfG?WMmy{g_sOV)(!@jPyNhc583=t9MHh6Lg#`;#_AV%VO)%?P9)rKy`!)O0 zIHdSFFv7n$_HsDtS6;kP3u4ctb99XgNo@EFw8SIjwF&GPrnqafn40l@cQuf$JoM2aK}#R6duZ0&ggVds?OLV~s7K(;SKwq*l`wayFQ<9TF^ixth*LSW`e zi`IL*FSp;$w3!p=0N-pLsykpPzm+_r6#37l9WuHd%fVY9Z&#zV70f zEL?TV1og8Tcx&nu0>9=EQ4ER)2piYDYa3ydrFIE<6y~_^n=O8se#ih50_kLRnUlIi zu}8#DX9^x=txq$9Rfch;pZ#N^RsE9+>`^Ma`x#=3L`!#_`Mid z$n0C!gKd7%aIen?Z7?Nx%j9;mFvsBiNm^lO9XA4Db$DRuhx(7ZDNC^uJXS`9oBn<3zs)n>>bn z$cjk_GQiR|)6k)v6t#Ln2F}=@CEi zBhCAnyVk%E9TbS(kxg>(l^!y}cH!=D2EDPtEjrm1^-rwgu1E`y`asO%yzn*>a$;-E zXQ>jGn=oH}xXInuE^WQBj?k{ktkXXq8<0ioP!$DIfqcp?XV#QQnVWVM=OU1P2)fr~ zT$Ho1BwS~tRZEH^p0a}yv%5c>FpKkwW8W|$_LzQdJ?*EW1%A3xn3TXli>maWzOeJr z6O-}w-uBcnNm&xwMxqwj44v-^K8e+y6abBNSyMQS;x(LciDOukwXJ^6fbTO?ru@lGubEw@KQ*P1YE_z;vsSP2Tj@X=kU+nH+Fp_mDF znsnxG&hriZZiQPXR$j|D2}CZxBdtO5AXZwdClUX<>7b*97o-6-O?R;qh6NU;QP=N( z5*-7LsPNk1gn9>)uTBjXLyy{Ijt8aYTD|bl!SmXeVuJ4YfxI*qsXv?0HFF95vQPo* zO^#3;XM^QPmD;}24BK^tk0c$Pl1AGlHctz?+5@b&og*~4D&z1(%ukokIZdaoak#-r zf^tcPU}0KD62Gu@7w?d8b7lY62Gb$H-o$;&XAzugppoQ;h_BAla?SyjeqZ*=kw-ns z?{skx|S(xVq%OZsAdaElPCTsJ3#LB2*rDLpW{-3MNu`N#M)=*u`k-YD|meA7qLaq zn#7=kfots_$LI}jL*e_>7z=H2Q8pIBMJ?b${Cp=kHToY>wB#e5mD{lZHqgEEwjfa{~f&f<^O*_dBz`(EN}Dg*`;~1yOE(?u?;6E$9@Nc@pzkP zGVp$DEhP*6hoxRDzaRgvk`?6^${Amovs7Vs!EPNF5~!3ueoPx0hdxp}^tfQ;OxLr72*n^!{tlr=0`gQbHX50gzyl&v1_24T_8| zL80L7BE*(p|H5uV&eKL`bvlT)tuT?2k+$SP7Ic#hg+{ubLzO|w1Bk<#@yQ(jd*#5E zZN2rhI0U@X$aK*ogk~C^L*^dNv?`>weCORJh}b? z(VKbOmACjVb*eBBR|9#Y5LI(%$ghkm=j`E%qJy>Blkt`+$FTC{v5Sg?gar0_=5095 zX_;z?&CjN=>@eGc<)Wig!08Qff^{jw`XZyM6v8po|Gw0SHr!|0fWR$JHXVAkuzOgy z2=9Vb%hom%G#Ute1E*po&Kuw8@^FF}eAF7d-hCMRunTCte-LhA4ab@M*m7c7joiry)<6a%MJJ9>izh!hi~eTubLTEct$_UHoVHiXiENI3?YI0zf|xqi?dg z*jzDDXyJqzVKJ=}LYU`j*ERtSw+e@*6on>u1|=exe0q{tX0cPM;DaNdX$u!m#HydV zlQ584V!O{caSvNwzd@glb9`6>f^Oy7-Nn)7a9xJFBtewuZ35|KZ|D;H$%MnUb?*pldu0Hdm&A5kH zF?^d-rd<5!!$wdDfmfe=Mp8?+rQ1Ji$x?GKftUJ%XlR>6_Ie{@Z#hYkNVM=3^(184 zK60FeqNaHShp4^%v(&C(gD1#@!kr@tH>d~4&W5K)qE<|YCFbz~u-7glJi`h48aLq4 zACiphh|3mCu|Qas@`gL>Ltk!5O|WVg?hw#Vpz%O=i)?mXwjP%=PI`R> zmt%eoa?G|f(A>d#K$knvT&xL%=VBX}P?hA4Or$*Ptug=jFm!|#~{G$UB> zr>`Q6g4aoK@Ms|w1bQh%Fli$5#PoX%p$hX=(ZP1tM(h=2mYnm z(4(yoI+6sS<~XfT*qcQJ+2MX^W~W7g5OQZuYUYZ&KX)!kx4jNqKO?&OWRYwb+SZo* zZYuJK{AZ(a|FhA^T`&~dLs2p>gl8P!2|g*xs!vSB;bOlkhPz>792`n(1`~T`TBnar zU?&~&=HR?kA68wL9)c`O1)R8@3k+To`#`OKX+|lGK7fgn?in&O7PgPKfNAETvFUvl zwXE~e6t+Xr&ipSP-1B68MK~SQB&U5?o}PyW?8jP5vH7IUDU!4pN3G`4@$+T8$n>B{ zwiV!*R+7-Q$7fR=0eFFa+eo&kxK(9Fn;k`VGk4Cm;oqwjY}Z&vv+>6EC)wU}A*?l_ z(6MW;uo02Dz+V_X^dloCSgly)f4_Bnt~W$GH{%=4X{Q|OOBym)x}u92Ub|2*h1NWU zHX}5n=BrI`T9uYPO8YIZkNFxJ>0tY4{l%Yp->@FR@<-H})6Y4}*=QFV8ZJs?2asu~ zWZB4c6X+|BT0&o+>MsnzIQwi< zpARjQfAxe+89A8heD@holkZ*SBCWzC(0@yHTth2C#V7PnDvv&!Lnq+24QFXKg3KlY z4bJ`jDNm&hL#Tek)nUbB)*$G+TY_FXMtg=Oeml!qWlgFE$7f2U)OTI4K@BTLqHan) zBt=2zO3kddIv&aLRk4tbu9Ul6c3Fajv%`isNX8^qrJ%o`Aw3zyiT3vubU49uraB(5 zm$A}+GXFvqVk(8*jMCFC#jIB@KHh?bOvv56&|J7|#;PCvU^#afV>6#UU2-4=7QUFV zZ+pvFAvGTJJlk_n8TWLJc`W# zy?iz3yV@;L4+ZcqI##|^gpUxdiTe`9oz1{#Iq1ebL3| zxybu|z0k2(k%M7}GIiN-6*GG3FJZyQnpv;_?C?YUkoNR3!dj5txj8$Q^6t9{3Fx4m zWRN<7I=zo#Cocj?uAgyJMRj+qRRAI(EmlZQC|? zk{#Q|&3n$dzhHmZYt1!gjjE>>xw$9{TiBU8 zVGk-^$~v&zfJBqkF%%&27o^jJrd8Q}Trqer;L->nr?2P! zBi^CPJ;`4kOGKb(`Y~%wbh5~G0ik|ET;1=VI9m}y;v2R7*IHR3{Z-Zs(5J(aaQ?r} z5XS$A$#Ir5dJ(aNLv{%RuSRb>_yVbO38BU$_`B^( zIO9xrUPyNOV>%j)q0NW|@2g15GcU=AOP2>_*E!hCPiD|4^x4r@rWTJLnDC`Ih*`%; z=OUjm7?r;}G7`f{u`k*(B{bCbiw#(TIUj$z4DnAEJJ7ny+l>X90*iY5hTQeVm~Ic0 z8XXi29|je;mnb9lKEfck<&9&l#WR}gRBz~Z2lKMt1$?Pr1JoDc*%Ir`_y}jXR~Qorq@>uwr3>|5{oJNsGNIj?j!K@qQ7U_tc9Dv^n6v5I*V!%>A_>9;R_ER8 z-L^dlo@Y~d0p4-TB`3mnK3RWP8(sW^RbY&4%VaVBmG#p9uDHmNLp2OEvr>QX1syprMHMe3 zBnsP&-+mvTY)#f|D90646`L1ysg23GzwA69G3&gi73fx#B^`2j+Y0P|tVi)rdS1BM zA^S#XTv-V>1=u`(eX^d>kFnj$I|vh+MbyXEzJ|@L@wS3L{8?DLyo@wMH#10J-ONZtxAy^y6GA>gyAmdB(r@j{akIpU`;7`=@4HAaE-BZoXCg2cQ!r zwu?RKTZhy7xm~<6`}9&ZMTsEYf5US!7n0NPp=q7oj59{NN2R zCdb&J#bS`hO0C$EXg3a_nu@E}5jv*@<A9e! zCJJLtel7y$4J)@3@91Q~i*+W|zKUHoV`>d~*etcFB$-2eBZC_WAqoD6A!h&EUp&A( z{hhgz`Wm-4oI8uVL%NTA1D8_XejgK@KG`G!1JiX->A6?@&yVqKQK}}sf`q3=+aaY% zs8=zc#YVvHw^DN3ONy!-^1%3a`}S4mj(P2>YDwrh6w3gI?0AvS}DE zhN2I^-1b`vbduAnh+MN_0sbxiK*LRG6Hw-Djwq<~{2Cus zSvVVA8@tpIB!Oxwv=xW&8?SguMgQ$$E4Q9+uT=;5RpVk>TAmhBZ)J5>sPpkNsiL>J zsX4V@nvta74--V_&J~7;SI(u2MVe4+3zUYF%6$5j;Y78_IW2O&_sUO?liRnpt17Kv z{T%trNwNJf_mY)SP#1)jcnlnw#MLdEjE=bH$G+oJ>9Os)h^`Q~_vCphp2<1Vur&d;>#^)wdDUE2gN@9iO3lsbFsqFz?&C@GS4BIMdQpy#n$uiWqk4GmY#*e>4 z&=a$4g#A<((XnN zDvR3dGv}r0KMjqt*5J82#WLSY180-|k&OiZIHscDJcE#MqIEp&yoN;}bzM!qM|^bB z*Z0pSc_B<}Glj>~hhR;y1Gy`gAYZ}cNz{!}+Hr6#-W(%dxtDtg)dJA5SUM36HUw1t$^0+>W zHXqKH6wi}T{~;=x4GnzKqD6+|%F}l=O^qxNj0RsE>DR_s&fxUc@frn`y*Bl0qkxWMK{7girZ_vj zVHFfBn`)$j@@yKv;&1-;eM237JHik_-xT*PTMkVkRz%^0w8bK{)O`x=M6x)yu-@#!f~b8v zVxs43BINrj59CSt8_JuZ7H4;K??3Xv@dbIJ^Q_(_(6|Tc74@1o zgEHq=zQ{A~5tLFN20GuePfvsDF>h>TnpUcELU<<->fC5B>5B}f50p-~8?{P3 zY-)FZaJ=L?A*^P5Cvs^|?%;Ar)nvu!_?FY13%3eIZdH=Nt2s(z+c%{J8E&vqhLXKs zA~!D;&D*`!RUdY}FZSlWkV`iGbRm3JY{9mlil*3qSb~wUZ`G5Hlbei_cFj-1k+Dr7-m z5b00LwQlmMd>>{_h+(92le-w3O7NV$C7C_gWt~B}6vBh71J;*3t_&p0K+RY?!@F!J zA80u?v(Uz5UZY zo`os}0n_HKeKA)fhZQpBMx9mbiBeb_F{?Oay(FqO(&_~Z9$golf`$7_f{=vCXrG%| zm2++kCw$%>zaabzMzitfNbEU|)C7DP?ltaw6ytArKimp};Phs_Dhp3@o~baAo;)k2 z&vmpc@w`_Wi*0_sgiTKj>7r0b{1h8*zL zuZ#_LX$3qwaa_b&v&n^7#`k^eNj2IZtvw2LMHA0S@BvP?c)-H(=$_~YcD8UvUIg!* z_kSvrgy8Cu(BLszep@h@Ood<03MG^9kMH@t3 zmZyeGMX;cZ7u{KSwCGKsFT|vm9{DBTXXhWtODGQ=ktX|V-n@p9EVvGW*WpbUFZ~AM zJzOZFSjrx<*5jDaa8w7`Fue$CGJc-G?m5mJ%04Wz13!KFx#^tM)pyfk{cj|-e~ox| zo5p`I0DwHreU?P`77tLcmN8kdTKMQp=K47vOzsr89JP@^RSqj^4+kkFt`!fRQ+%vy%x#Im3IkO6!i7PQ@-d}XH4h7u)X$|%3 z4^MwbvZkC+V7{e|fTwC$O}aWzkjd`kDPSZv43BzS5g*RtnT@8+Mt2v_oU-J7U|*Kw z$M;*Y&f#8YJ)TVy0OH!5Z8&al(#qR%be;R*uB*DFPbS_`e9`q}*?R>|o1f1aL`~){ zJlNMhMs4La_U!kuB7h7+oN>R`vpzyJruT!_$i8Ut-Qx@ovbv>8;y+P+S)_(BY~gGg zEF36zXRsy2;f6nG@>Zv=W(ZV~PV-jeGWfB~_{&OiT1 z-%QysyRQPEj2?WwXHLxUu(n?)R$FcKCM*px?Od*KO_+Tz^@6ic?*>f6L_haSU;V3n5YrZx?-n`vMY)}YoM=dgy>S<-loAy}19EIxN z?=X}tFDf)fTv0%? zV~<(>7(i=Wc-u8~0)CXC45*X%2lrzD1__pURQqjXpmHLntv-sT0jA+jN| z5Vw>yFb8z9Y3KgWjzO&9ZqmfGGAKs!E#Q<}%p5|W`|{{Wt9loiGR52}C4z1&Q4m6! zfTp64=mi!g*Uwg4!}ljWNy~UfX)2K{PnG!z%ztI8ulWDFqWBbYGGLgZWaQ0B-!VxS zeKD?_Fq>+*s^c_)8SwhP=%t4K$*NdwtO-ajjR6DQwTNhDz3Ny(FN`{hFtiMQ!#zV} zQ|oEMgBAdum?NXixe0e`Tfj4xWUJQx$iWVF88m-4bO?By zG-YFfyB!n>(X+d{9nc3*I^y!{b^ATT#9Oetot95>1*=AF>s`9O;f-@IEiLlMK?FY= zx-2W{Y6UG_4whlRU6v-*bR}b8*f(43=!eU&Uc3yeFIb z(N%i3QX;DXrh%N%x%OUEURnFvB@dOx<-MY|^kxz&2UUy!z`^T5l2cz7BtgjR8Gf z)&p{W9j#Lunp0w9BcJ)9g2)D+)r{~b)`9u(`UjLF%~Ix|A}4s)evcLTC}H- zKsn|LUa++bDq@Pymslf|*VllQqe|+^p54}iJ6!Yp0E_DHHFNtz+V6h5o}QB1bU-=8 z+f1|P$IN-wC3gZj!@*CV3c0jjORT$5a}xbGx51VSiGrvtY@|;gzsfUsAkD~;2>oOG z_Tzj7<%4|D3==@kkM4-u2zA&nXVzmc>s9sS518yvJunfTBd|)`ay^5kAO-*1cvUO^ zPY19+UbxcbPXY;PO&#Bw9JQ!7>2f-~U@?eYTb7-2p20aZS1xev*#a4eYU2&9<~@j; z#NoZC3#&);!8zhSp*WtbZF|O)Xz+^VIIPtKGpVt`jz@MbbqU)!vu#|#82g2|r|xtK23T_U1!SLg?u^>D$W?$7m~Ore-sheG!N?R6ii}6C%B1fetMx6B&j%dpX1o~d#F%N9&_?)I!bc8Z zW+USv_^~ZMY?wnQb1TaBVIb-~gOjuKSgVAw&~RY^rWRJy>qO`B0O0}50~eG(Na-=H zb8|wtRfpZA>Lccav8QiEFXiqva%GOcGSih&XZYicm*ru*B6YO_cG_0|`lcg?nY09v zli%$pP#bEGYIP=WUX=wE9KsI$2L|Qeq^5UYv&r9M(}&1+b8>?EnOj<&aVI%fg;cH3 ziN%kk&4x2NzONly;Pj9_e+pqpl0z1vOH%Gw$3CZ3_(6*ID`*Jo>$hYUP*YT|6ava` zgL@6RUCyZt$Q2)fq}RWQb$nP6F2FJbl6dOy;T#o zV5x9A(*YxZ$3ozz+$=x3)nPBZy|i3YyhC;1G773MHM%NXFb!?hgr`07zk7Z-(l?px z$A0sx{wJA(RvQ3Ok2Wn6)y=)H^!!gm!+Kv+6)E=s^WDdV15zTw#RP2uzrV@81V zHO{6zhiorEmtPg%Un>Qw{|OyEge6WGy4OH!*fuL_l#vrjD%jZxU{LP{zqI-q&x>@2W6kU@ z8-y&>Ki5lE#|}ekQR9AzAsPQ_a|cY;-$YRo*#tn7{5QJ$O2BQv#AIIshV`8*1q?Ce>AtYemhFKCi%XLpu7a_AdJh$Mm!q%gBPH*>4HV!!zPa8M+m0!+ zyY;{1V4p*vPH5Kqrk9+bP3DMc2EN7?x4-z3o5v&Y)a|ZB&JM*VGrrlkG%>sG0{v=P zAN&`5ZD_w);$o#j#gmIf?v)aKUN#yR;jb9I2`l9q^GOm zQeY3Z4s<}PoL;(ijXl0vO(c5f)j%mBNGA4sUUY!EKNFwne?tR4Au@t?qMvrh&iJ}Q zq&as_wQf7`qgr){YSWGgb{GwCwfyZw@IPVH2|@?69c0Rb-JkE7O~?N3VD6o^Bu*#W z^L5Rnk0Lcj`-KmrEhTA489slaj5L;i|HCsR7_Yc<_ZLfe6-!17$D1NPYaDm!(kRUTboBu)8k(%2{Y@`PuG?C28fiaLh2e&!N!abBAF$W54RKRSw^s%FimfND`!^CP{jzayr*J5O5d& z^xhWOd|EPx0pA=PgOUBbFy20CotEOeEQx8G_Z2rxU{a8!Tx;}CE>G*O4zqamNoz(v zbOcL(+Jdv2uyd&aNpqJ>!B)t1`#Ne6iC&itU1I8-j>Bp+J1dZENAwVmH=}YLU|U{- zHvK2eecsv4IR zby;7^)-HhuwU zaCP6wKGgvWSc={M>_1IUoy` z)43$%HnUQ2=(FM+OHgYxpke15d57)K4zBXXOlwl*Tm@~!pB#QRJ+g;$s~KW}DIulp1B8{sSM%{Ba3rV`#^R0%Wxn}4#3g!M^Tevj{m z5(Z1X^!9z+G#_~*whT06XMp|5{$O|-M7jKGMOIeQjVw@pfg^7FRVr`g%ZTU4x> zO)(2m#PzHYn2+zx4I%}N0Lqmj?8LJ^TPg-{R;~ZgzS~eYuTbJ8d&q2m(n#^X;pQoV5o z9^9GuOg0DJ1fkI?fY9i3z}M5`K%jbNqNMSbD-6kMwy7tO5-JP@cRy0k^n_+z*5L>s>l;brFK{2taY4ou0NFyKT_z^4JPq9P)*t7Fs=a{e(w;us58+`|AI zFyFlacp=Z>BKeDiyuYujUjR??ZNuW*v?VbO5ko(^G}UOvo5f{%3EMrhO=vt0KW9$v z*ihI>C%I8c8|v20wkPQl5t%#1EtZxsDY?;^b73-5S>#3pwVh-tmgVZzcILQ!xJOUl z+D!Zle}H*oejVcAPbB~YnLR_p>=p(MQ3?j$CqojA1B>h)l8*{Hm}L|PgZJo#y1pVL zMD-k=!;zRb2E!zlLu1uAwOhwHqyY9DnX|o+yVSHNF%651#VB241nuz~M1kOYw;sHRIK_O3{WQ&Bu++iLaXc+!ba<3YqfD(V<{-ABS8x^ug z?FWOsXIIiJN6|RpK88vo@$-5h-sVk`ZZQnPW->)^?9;P=+<`;3HCjs0Xg!(IWbl4> zgBn>K-R?{hQA64HvB+z7A~OzcCRR^F=~WV&n~V0j>xagRdtSbbG}*as9;BUhuMTdr z(JW_qIZ1~0q%HXgq(C+l1(4;xBes5vzgr#YMS!l+`v^1HG>(w!P`OTzjUFb2?ih7F zj8xijs%9&xC_8CY8}vLV_+&_lwRRiUCS3+Y#RR0FX{qgEPn+^63TpbSe>Z-YCsQ#O zfQj^cY;nXHqEwP)|AwUXWf6-+I;c#(P5O|x)izUFUTH9kc~hbfJ%q2 zBalGx(us|+!{`m}T6^A%5AOxiHEsOtCyiwB^^6q8zzE(P&Y_$Z!Cw(?RrAH;x`G14 z%w%kM3Z=4K`FEtY*9TE@XJRu*U}}MsDQXT%Xw@TB4>%?fNpF?H@Smb&f34Y&K)nkD z4a28kcw3+Y!$5?A=9=l;rvqxavw)Qv}T};(a#`glxLRaiqDfBi59OQKk-r5#eoev_j=x5JGVKkU#wa` znDEv8VbmVnvtKMjllU*_@BR%Uj~+D#Qdl*gIbh#gz}GvN5)5{9M!7l3ro;sRra1c! zn=)@)<6`-kUAnolhrcAI>4IVV^@Ck$|9BNuV%!-OXN)qqxYYWympl%@cZmeXa zYv}D!ynTtsLi=*04)Pp1fWL^`qCvXY z&$6}eB@zSIWZyv8>@a%~OFQe9+ObN}X)LK}KB_Owmc38RrJ&$ndmnAD|F78$NA{+o zJNCE>e@ZHwsXg=wcC&B!hu{4d6hGzsHXBBd+8-#aen802E7#(Ui5bHT&yr-dgNHdD zq&Y67Y8_o0?d%w)KFtj4)FK^SGS1rYgmRRUtD&UqT-)x#%6cyR#FJ^%ClB$&P+eJf zc**oLKCNFdsHP%n*$iuaR(!f$LW2qZco^`O84UL}=_6IS8&q zSYFC}!H3cE1>Ji~ch&bg@c#=-r#0Ve!D-ToJW>zxK~%p1wN;r3>Ktxl>qA&8;ULWp zFaFmOB)32P@H?e~|ru}BjO5O(SrrZX{um7XJgXmo=Ui#<#dlGobM2;no%S=DU z*|sbz+<8Wc+1I@8IF|Yp;J{^+dpP-yogK5;Az^kg0ZrV{J7>JN@ zy97UP20UN&T{~YdCpz0XgUrh6vUjr%m7QYn4n0CRnX$G;)CQEVnihFXN}c08TT}bz3(hy1{}EO|(#asz zA6W>fiAk*0(?`xWkC((ORle-%SX~iISBxh7# z$)0I4#!P=HES3M~;8Jy3W70@c{#`M&0mvcpM>|cz`JS)7*#k>y-(eoU+lx&CfL&IZ zW-CHfEGMYQYsZsyx%Kh3d)!e6XhDj1-O8~Y5Eh{>m;O0sQ}<b?JS9 zaj*J_p*-Cc^rdGP88-s@ARk-9U)Kvq(tdhA0tPS(OupUD1L(dOrrzsrXSLR%OLMXcT zRBgSF_$Yqx7N8P2`ize+RN_b)c4`*h%ki*=6^ z_Rq>lXEqJabHE|v<4{37*9;ItoALQ43|9}@G#im0FXO)svdMpTiX3DENH+9{mAmQl zES+H`On>H#mR76%a2GI@J%p!v`&2C{)Lm`6yWBd3^~V5=7+5)L;&Vy?$yO zZL2(tB>Z>Qr2Yu&YE7EQ0c5S4Z=a+|tk+1PGE0>}pSibMBYO9=M~YB3x3w7a2!3M& zIIlCLu!K|-1Md8ozPu&Te#jUBXgxRvQn=_(H{8GNsNwN8O-4=DH<8xz(zUQ%O{umG z=1j)=_Mwk9zoZK}m-CJBc;h90RpI;U!gj&4p6uK(S!2c zZ-JTiFXQu3ePF)0rkEzq0&mS1dy;lIOC0pYJDLd#^O909BRNJaoHM{CXtUg&I~1rB z_%gPQL8BNV<}Ms5rC(q^40uhZ=viF7)8Ja@8d{LWF3+Ltd14*^$bw(Lt7msq&7ikB zQmVoxX0emQO$$wr!NctrLYiSgJ0_Dk?sIf-+j_YZ&4M3V6{h zx%&?>c*huOilz-mc2&jQj%QCgZ;%!8U27i6aPhhBI2#N)Vh*#?(FhL#Akyr|9|e-f z%xT&kJX-+&8oyF#WOcwa8fR>wzBrXv6=qd1b)$@}CxOJ%`Js>-j#=0@>rla#RTAOO z`AF*Ip^|=r^z0k3kV%!lc`gLR5Hj(?YUh9-iS>E3+n(A*BUk0c%eJ2h;kx$%_cBJe z4SOsMk6r%AYGK*i+d*c$`K)I-_JBl2xaPkjV9;~=*IO+Q=5Wik*{&XC{Q{^iII1=B z&=@P*<^R_5u(#@cpPfC99RK1Ysno;~Iqj}8T%UkV3G*Md?Ppf~JmAiNatt>p$FP`8 zaz_5;8I6}B>JgcjL2)Ar=|zz!P^T3$)@F!v`~KjJ1wJ38*+MWc@hdomkAnO&p&-t4 z6+Dk&4J(0YxFJ9&6)acTz2j)yZ%sbo{&m7JWiZQEF`!xc-4$!#_a2}_a{hau|3-GD z!L~}y`wJ0Gr;>SEkoHpSrpoN>U~<>YvzA5I2ZzYLw`SX@A1S>hI~D z1ph(2o)is#V@_pK?oaVim43-wMQ#HNbE4j%JSvvyPHvJ+4mTVhBI72pg#YJ5771z) z@6iC+sGvz+O|YjhCPG}9;uJ@58Y)w??bA;zpgSEN=V1DE$(_wdF4dM!mTe>j=o=VE zXhF>hD6J{15gj+IS^QNsH9#l;cP^tPCZ&mrIHcUnO<71U=`DGGH|di7fp#AMoLGcN zmB@>68CrlUAHA?3kU36XQYf`&!!ZgRq1wfg^fZg0t#X>7+^;SvM%9q~hy*JMZj&0X z5aq6Z+L!Xo`@#4CAe%>XFG|vqgtm;mAt2%rKr8NnabE9l>^MkWl(Nk(w5Pn(%1v$} z>q5V_Bii|2;NGENRNFC>C6N`nqoht<`j9!z* znM)n(*Y8L!;X!4UD0dZ6xRbr~rTv5^b9i3=E0>DfQMIvukayJ>bbN-z*3}`$;R7d>%i7!Z zDIT|%3NQpduqrhKvh6Hz1C)|Pxzt^QJe+Ir&nIgWt>?gaK8Gt4@y1v&{n});JB`}X zd{%`nw(z8Mn;1VgH1N;v2!CH+N?%}1-ECs*m@L8Q>?o5?2Nvtw-P4Oj2b#B*b-%a^ z#UyV?^?*v!V8hqlo2Pe0_N)Ns?dWU%m41hWO@RR*K$C1%p_h2G!qsDl? zx0q|iZ%|_4=qAw*`)P|mJTSbQYrJ8s<;{4}at?dXVofE}z+w6JDUI2hoHs*oQi8MT zdF^~A<~+oQS1_{txLZdc51$w@yhh+dmk>Qj6~Tv)Sr(X-#zMZZ{V;-H1VR}(*JX`p zgAQzJ*X)%;I5q&yLCWH1H6lp*aQ+0H`{G0Nl?Tnb(nkq;wZbMI_KO08LX~LET#;&K z$1pkg((Z`c7oLouoz-)74Bt|H!xlXM;*~Hs`Zxf z+yCO6Fzgsy^82%2m7GZ$`Vq0RZOoBsq9E-Q&9t;XsnrrO-i8ZpUnKVxi2GJIY zrxpD*4%tC=@uU$=z=F;=k21|PwZZ4oMXhG~=e0~;%DZ54gJp7m z?B)snG-W^UqYhAcp3?6e6x`=aWq94mSduEIsEEUK+9t3`^PuSkRQz7i$8wrzSGd(f zA=`y9xYVZt@frkA0fjS=c_*~T%EiL&)H@~7Jc0bud-R2NohqU$)cw9JHcRPE=sct( z?7JUS%-fJ}2hKm1AG|~E`PVI~#pz)EQg$kYf`e z=#Cx&Zkw;AQ;3e-7k}Vj)s}ys8{fAs=_Nv0To))bKf^j~FxyotA4g2ndb2kHlAx}e z2PB>k^@WDg!>cq+H9ODKT(=eI&hHyhaf(~M_nV}PHSTk*s#1qLq%&Om-Qa$8p_upb zfy{+q9K%nfhUZxhjswmDUk8L6;%y@vBqDyvDEGkPLBE0H+mDI!NelkXTa6oXv6{nn_npo$RojibL!UEc@MV+QU8Ls^Y@Mp*R`nIkMiB54Y{C z>UN)I-zQ8NWb~bL53DcT));SsvezZ@9Xiea9)k6$r(XitNd$5L^!3M|Q$>m13Fp3_ zE7#Sx1$Y}>f#ezTxeYxt11f@CIOX1mJ>$5n2TNk;gnW|O+?fm-di?>7M6thc*3iH7 zvwp*JGlr3Lpx8=s#djac=h#=8Q*zY|-~Nns*e6+`epXE;v$({fg-oJ9}m4K3DdO zgnWF2rEBg{?ya7f37c+*a69UuI=CzIUZN!Cmja4`ks;bePg`j|mIf3p4hRL7c~JLk zzVcZ{XS1VQL%&>;eXggK&{1R)N)=z-c1Qzv&t=* zq&oof1(OCy^H=3C8p1@0sY|AfU3n_IjT?Zv$5tktF|Pqs11c|9_&6Y(oR_`yK=7<+ zcRXM>`P;hnvaNywR zA*d`tQ6yq34_DV)(NySM@_ZY3{Ge)DR;RTSB3<=`!KhtWpMm3G7rz@%9a6qJb(-)#Ze+}A_{7y-$%^Id zLI}ri+11Bmrw&3kwu^G7s_w&Y`}}Mep;_;!=&Ew_sltHlj)RY>90!;HlN;=4$Zj|HJA5)$IQQw zX;WLMQsS&Hcm5qx=p=_}-XE$jFJ@bgS<23_oot3>ToOvvi>!}d&a^(IDQImlM#Gra z@oAt~7xx5NJ~!$34kYSi>Wl_roPAd1&jq^}Z6YR~Y_MPg%CqR+4kf;a?ZL}m{E{*J z{>F=;&6q-XGl(PQsTDZm>?x1AQn`HHRR{YRr+=-}goPb`%;|d9U(K%gynV8ETH?z* ziR$Ytk?(gT9M5rN3jyH27!*@78JOC$_}fOfR82~xl0N^;sD)}Q!+6-D%)+6Qu4v$V zQGz6A90ju3GxtV6Z1D!dGQDE7R#zSAj1YVWuT3wl;)9(Xn#?_n_79kZh{kDlt36d7 z)6Tr5_7(1A_%2o7!I-E~NBRl*L2_;3(27SvLCX{a`w4XUM2=4(Fs&f)GAO(;jWj}W z+`4t&BOJHMRu|5=zQ7d}08-Qdn(0my9)1W;xTwLg$6Y8$VB7_ZDOJw7w@-8-_wP%7 z{XR5W1|N$ymP+NoK3wKgnS-ZUVld$c5$HSeb2EB~zny%356XVPBt5>H7WF+()!e2A zo7hVRMWrhVQlb@Gu=`W$BMf*G_*Pq#fQjRRN$h}*63dugtqyO)^1%$U>&Juq*Fl&@ zRagZ4O&C2e;uZH{MEAFz05LGRZea$L@!xb#mIu-=cBntjo`^chgU|Th&q5c@AcsRI zJnss-%_qWrdA+?}Ii^u(@!;Iu64@-aq=ZRt+!DM_DINCpY1C*>bZHG*TWZcz?yC~( zpCZvpdudf!FYFGlLA71v|~wis^I#>qFE7A(1R?&=$ziND4;g`O10o?3cX z=)h5(kj@dHO^t(r< zuAo@1;;VH8eBm|NxVm&V2%>DUC4|j~`8ooa5#5^Xwl1PB?63q$s&}QTES7Bfp4c{* zT<}%|NG}oWb)PNA$D%FlJnT8l{jx3;UPni?IBw6Q&Mf^-WZv)Q8=hzZc%H`R-}{Oc zj?ImzD0#G*$8d4${24*F+E4Sq=N}7(e4Nyml_K=G?~j)J*=JwGmq%kkas#g7h$f&BJ)0c!8NUYE4=SbfT$C1mkkt&%fr2+5<^*= z@o)-9pYMwmde*hXwW-8vZ|Xs(?67g&OCZwU6fJq{RfCy-tH)(nefUSIPgPn$fRlu8 zD5?#znitm0t^JQ#Z{yvxH)T^mnHd3u|HPXoUrP6?fe2C2fY!s}z7}XB)CPX_b!+H6 ztj(A4(#!x-vKy0kNWLKim7Ttc-seq2{TTHI}xk&zuhm z;+=5Aqd13cjkB!JZPdhq^`(+eiqy+;=;WgG4U+Fla3MCO_YC?CmqL8Co-=xa>cVq( zX2WIWjPJ6)2mz%9Sh_tfc=d@s6?}xV)PZOjeZN@odM5QhXZSZ}6p$z$q)sS%RFOkO zB9M*!6}pq#$61Y`E1@e_ODyF}^r0Xn0dM{jMVXJ)w zDd*HhAAj?4OtkM?lgf%VRX{ohxwpQOn_kZ4vD6)1jk*^9DybALC>O0LR^9m!XC68+ z5yMb4UVjX=ezrRqvC=M_rYIRQ|ClFR{s?UPPo9*W&tG~;WIp{pqgc;c*oU4i3_tXN zMEyOp{U`c<()_pI3h9uxL_v#)m2$TtfJu=7x<%yeIklbQUw*;$W^Sre)m4^5(W%S( zJ4J3NEZt01YIlUwdn?508}?Zu5b+UbHD`6qb*P~J;vo;MT2rBhep3w`eH;;El?txe!^Xy{j79lhQwkcddN3MB_y|P*yb+0piQ5CVsz6 z^JxrKK$t~#w@-g*hDiymyO))W(S@+YxCBYrT0sE;KM1I>psk@V^Ite6ZGVluo9jI9 zkRI_F3n$NokI~5v1iQXX%Mqj8wIOO1E%iqpCi=H>e~pw3=@v(~tevHU0P}H8(#Y6K6j)q4H^F2Vu-5*YgQfKA+v4V} zqS6wlIhHZ5I?obE(b|ymNFopv1aLx2a zACAy^a_y|Gu2hTYDxKcc_O>zmJ#VQgZyDLAIxyz!0+W@@_8*Mzg6kW;M@>@HdG30d|H|>vkXy z7X@qLVyTc`mz2qWrrEyB^rEJ|D@tlO<;`4bPn+=W`Yc|w;HoMS8V0#n;jWz06Fa5f zHEFtnx0Cf$Q*8Se*8EX@*?zUJ+E@(6-54Q)vP#$e)je{czo`U6DIXaRW6tU+HVk(_$~*S(99zFH-qxMU3%rX&}oAK0K~V zr`;HtUaH<`i4`f}Oxb~~j=E}%&Tq^%UumOykv2x@jFfB1nr*l>Z-J^aQnw_?rW4jIl23nHhdpR*AlD9dB#UEyCuVu@QUnxyzKs; zuec0S$8xpl-8OJvt&J&U5EUOwLiR5xVZlO+MTL=kvl>k!%cy+~K*_y>Z=N;4@8f1PK``K!)>* zd|FpiKndmY6~vhgDY3#?f>8iwL?3jR;{tF07_lDnpU7yvQ)VbRFIn2zFnSVd#?d;~ z>IPzBHGV?D-dk2KshZlEO-B?*b$9a44NJ4MR31q-aFL`_pv5&M3`H*2+T^6c7;~(R zPoD|RJ5U3q1?(_S6T?}BAj8{4ebhTuTU)M`$uYOEM? zHUs-cN@i(#gHwbuX$xU(p$g~v_JeYogM9_3_d8A)YiDi{+?yDTW^RiX^&T)<5dS7~ zosDGhz^^ucXW!;HCO=AUMiGO^?A6DSr*{cs<&1&P-l?-BQR!>6njV!17YD{CrGmqG z82Y#UEldy5=wM(4$Gp|x13sNht>bHgUufNW@APlu48XuS6wPwywFjW^Et>f5(?W|4 z4PuGuSKz%>mSmCw>_!7pt+z91d{x-o7-J4UtNu~4E6U(fWiC}MG`@C8-2VF5q3avh z;iSPmJJuZQ>Ai$pt^+2p`>hkbwK%AR>&E zZq_7kToM+0>1x71);T{~ZwmU>uxK4<&7%R1oG5gCmQD=g&qA-wv6Mo# zRONo({B~iRS1PaocS%ZRPithx{$%%H4}48l{Ffql-LzZoklff-E=Xta6;-bB}4>e zQb%wGO2-Rxx>b%GWEr4j_4WYG)eRpPH^vs&3gb^uFUEVro5JTK=Vt@vCOI$%&#Y{( z4O9A}PO_Z$a*%|C{)1nMclQ5MZW9gTwhEyxXzAF+?1N#A!XpkrOugy)lb4jp|Ks*%$+UnXw2w& zgIV)nZ$6=<>>(v4Xv!*^j9PeaBCdo8hp1Vhep{D~ZjHo2XNM;1$U=qXlDvDXdOy2_s#DOiD@u!by^lt7`O6#KEU* z36I5uO!BKsCmIG>Y_Y9x(N=J$F-ahjLu*_wVKr!Buw{>Y&4o;+EVI;nN-sZ4XaDJ% z#b?|p?JeP_xd*h5W!~Uvphan^m6_;MPbO|HrIftt%K( z2iOyKK}l6MhY~ZLL>K@yTdc^E*T99Z4FI27Z%!!i7}~D)qJwjp7naA>3XaV4NwEKL z)T7~;^-DWU5kG9UUS{iv@=}{mYe=;jFZ!O&!VH0EUiB1=D{A`l$En?{8jvx)qGdHjXm;mw}_!(@$KhO`KjCHsw>qVILVt#c;zo_i=^R_v`s1e}4K(xNsI-gGH% z%^D{dWkVV`tGl%N{m@g)2I*Nfxf~8EL)$Du-`Vfk?4cQ3C>NZfwQCke>hJbft?e12 zEs?O0e5XO=yELiN;HtgghnROxOJ^~gdec&oJ?Y?OA2W`4L0JamTCi^j5{#fFx3{@L z3l3rw$%dT3#AWoR52i_!cjFx`-_YyGHj7AeoLWq3@9OxjFWVX4i1fe1>EaerMZH0s zDT}+Rp+=ocC9NrU&&1?apqK(^J1)^}k10-~ZsWHKYn)24w;-nhqA)Z;tv+aT+k~Jh zM$}&<#)u_8^kJ981f7Q=j3!k|Fg`SlKIGDK6h;T-)aI=58^&Tf+=VjtB}&r@&US93 z3Nb>m&8g!}AYbe+{b3Er8Bl$)eD9(B(g~ms@INL0&4GFe+xz0Me8scar z#3{c*0ZDuUvM%blt1p~w@Q0x^iDMJgMg(z)UIi8E;-5&FuCd_ap%F2HsQH$>wd zwx0Ywt69*5Ism-BK$~5QBYp+mF;eLm_joZ7B@Nw4ECp|cO}Q@m_eAbxN~Z_#^JHd}JCG}?sWvYy z$T9=3n4>OyAN5h?(+$@;Jt@4#kt^BwLM?dA>s6TaLVW$I_`1+*{H<@g>?YOwVyl)a z5-K$X#lol7$pvne0}RG+xYU4OX5nbi5?pRl=^i?_B#fVV%JZ3;a2P{|*$p>Dg|bzy z5|6OQIAq$HAQfX$Zc%&MQVr^(Z9AR9c6y!FM{)Up+j~4QPR2+5Dx3{erwu11tZ#pX zJ9k;Y<9rgBcJnV$b@rp)DZvNRDB~!(=gS=kmC9#X)8sy{SWmF?ZmICgl~834%?hU% z0YYlNkn8o-W?-)lQ&P^xo?Ph+o9aR}AYvue=gsM*RP=c*f5gWZe2&71QC!W+};z#)PuTDP=!W%{sjw zSDqSE=E5*uzP>EHsx?~aCH<=^d*ltkabqxd32(X=-pUw_Mvj=)3`e}Ikuzi7J2dqD z_xz8CTA7OF*#1y^N~q2hTY8?PQ4)KWPE)=Lq7!0K_*O2%!vq6FISPKx5J4+COi){f zYB<$y$<&5o@raS%bI+^-`0;o>O*Q>4==m=u)3mGK<=<>YmDf^$3rihcY_Snc%?^st z0xs%dO_L@IDD~^(4-kQ3c`l1_YRW>nyeqT{(3h#r_xyoQompa672Cso3{SU>iGeQ1 zLxOI*oLb7a0Gk8BRzJ{W{vJG_0h7L6HMG;W&`q=ZR@1P+?m)M#x6Ie%fp~n3z-sJ3 z`eJYyODrg->Ct*A-HT=CMS50+PNlP|?lAw(3`Q))dP61;dfY(_MRPSfad_qMbtL>Z#Rl=BA>}Rb~T$FD=3Q z?$3~+in1{oi%RlYF1}Wj(haA{f!)bMTKQL>2fLWWyF~>ou8g9IIT(gD_m`AL=}R0P zyNzX}kmuL#mV=d~0tj)QjR&@?_cJccsnbD>rN$vgSLij`u7;4)5hElW*@Ec!(a!AK z_4uh8ue%@8t=6=eKoap&-lWnC22$ow%@f4O1b#Cla-t40nS1CP1G^DObmx~2lCOxae^gRa7k`*`*WUY!Q+ zOplVX@=I)uL(fT`D{En&gE`)JWo{I0#?WL^&Zg^EjYH+{H5c!5QAUEtA^CeK4{xJo~x|j#VkW^ zGxlk)3QPpdaRV2ZtI#&nhi?X@sJn-RlNPpF_T_FE=d#REh5jW(5Cc=n+^Ts7v0 z7`eb4Bt-?7fD4Ro;K)RsC0_@%VS_ZtPf&d7_C?a2AnPnA7>pH& zQ)gIKXQjp4czX_Otl?MqE?2S9haV&H^Ap~nV<{F8b)=B<5atOe-=UE_7P)^dK19WG zixYfVibkbEr>d1&nTWZ~-ix`7dvionrJ1^|I4Dlv_N!2fJG25*PqlzpgvhJ7O*yu2 z{UnDA=&_iZW*0Gn&uohJ&NyG(*=0XHIY zUEj!n%E8dW)oEmc#ditC%>|{+J*!k^EMcvRv^CGAf=BeF#|I!k8`v>+m!bqy@u z|7$vDQ=OuUd|%=vugcA~&7Y#| z%OrniD{dCs6f6%q18+PQY?d&|V%8s53kT1XGuvwgwBDFpShip*khx4~k8vH$q9SJs zzqMGj*3C(vos6<{E?ZshbWY|RvdR!lX6~hZ_UK}yk>>TA(x2L9HL&6I0k^U%oQSw( z+cY!-_P}BY{;Yd1N>IG;KZ1MVoihco=Z|p?vJon+d)YAFo@Y*)SGDX@zOz3PEIPU- z)BKUn4^J)@N}c#DkQt+{YYZP2KI;8EM*@nBjPXOhPlug zzsEgrLOT~3DPVWuQZAN(*&|*VOvNhT=gOSeso9`{-CO6Y8+C1|XXQ$e3v~5C^PnEv zI$^mtBK~Qu^TYBWSoH5duaq=4ZU5c}9(fEI*q6pm%H)UAyR!%U$$41f`6R%`Z9M5-VI_T}mr7_E3dya;`BvwW;#PrX7#YZ`AAU zz8_w)IcV2ta%WhmmfN7+ZYDDR1k?Rp<$>M-mfTGZf4q$B^IX^U@wC5dvU87}EN(B! zxoHn1q@gXCJ(ROwi(*9pJlu~z2e)$_FBLaud@I&u;D3L@oAesQ2H%j1Xf@&t$2~|o zV(%#KiYkWw;ajRp;7KC-XbFn4H<1NAR9L3IelP-BEu}JuHv0aGs3V5DVe-pUf`jZ5 zh7dL^)+Q`}+|y4;rruf!$EtPV`4W);3sdQe_z2U2O}5^q2?_@IZm~-iCG8jY1@E6LARl0lBH-+o2Y^h`^wMh>=v31! z_zo**>GzEbFboU2!i%(=LEGBUTUY&ieI=0)e}x_Px&bT3{hZnR5uvP($}U>it@ z?0F(|-1e1*&!D`L-$P|KoH&uN8#)@DZ((HuBe~V$w<%;jBYM8fhTl7Y5XDnr(+bb( z0;wKgIb{L-<{(htDD`dAGR|`V&Xd}S`XO86>ylSSG1i4};eM&$>R7psxH`n+l{FZ{ z)y_QQ5i@MP=$EfebYwwGSAgU?E*wFx9nOOBMISOFs&}+O%NE7a_mg^MCB|X5VtP^$ zU{A4w_#VdhoM?jL#wgso>fwm8?vB61mCZ^GT?V>*^961|Q+^SY#?M;3cmFwsP-!Wy zgXVrM3r^M}>N@ss{p)X`rgvcAZCM71n;%Jzxn#{KfVIIVtb|zK5D10Y&Km^YV999 z(9tEiomwfqGwLc?)-VWB#3O2ywbs}w!t00=6k2wiU`u{Tf4Z{0>M0X*J}LFi<`b*_ zaM_EGc*Phv9RGg#kKhtZFY;*F3-KK0lj!`ojV*zGMLF-u-V`ASo0K6FXe@beSMasR ztegsadYz_>zJbf;>&gD9+Zm}TJ6ht5ukit+=hBj$%*SpA*rLsnf3Q86khX5yCi$?$AfJx`W+ntn|SHMnlH+IVcuuhqk%! z^4&4oCRXwm+|eCz9$H&W7CxARp?Xia4YO~VEuN^baF66Y91%?ce-xED;;*_ovU!#~ zDB$K`3r!V*9S*jQzeAtP@;&9h1ZyOne#I(%xPo!#urHr`)?>uYn7bdr`iYvw==KBCpf>^4Js) z6y7`I@|wv9i9tYx{{Fm3*PR3&omq?Q8~tx!T+l5QC`bUM7rj78+&%7TB}e6cVY%;7 z3H%MsGw_`sH1`lJ7!1=amlE##Bdnn+WK4n_WJVliIa#0cX+3DlL&g4)1Xnf3ckvfM zR)wWslD*$~x+=yV4%J7! z{k7g{KW;g;;C7_LP{+(U;QJWGS-qPM&2h*@dWp~l3u zIIjBQ?yIKR5kQ!-G#O0*nC8#L^0U#yTi@a*HYlHhS!~YZZE2fr>GV=a-W5-~*uk4Q z_vy@sg5)otoH(AehOH374tI9ies@i&8Dx8?(Hlc;ZiN=L(-I6=%EDOsesrpq8csh=7 z#jqX35>*t#e`}WntVq}Vl!NH(W*@mO70-D5rR>j|II=d~v-RcEkME)hDn3?-Nqaw8 zy4z2a(p9caNuYH^%MZJ5^yH|gcMe;f4?Nt5T-f8$0X(T1pRNcDA{om4KT;<|K6>#Z zRPs5VE*v|(cdu|U0&JjPPn8<@ZtZcPOezccM;Px77dhMtuz;abAYJICK%IcJq94D~eJA#}tFMkbjxhjpx!@;t%iIYiFe&7aS?$3> zaFz~Qnk4Kav)aBI!?l!Jxo=cTmLL^; zP@7##;f*-?@GuzvwbOINnvh^^&EN38^{!->lqfjqebVp$Sa(jlsS2UT(w}4lLIj4G z40O?9!(Is#ivG1p0hJ2=|8V=z|Hj?FfRFr^dX}9wE^4a_OKZa&y{j88MIhrRPfb|P z(cw@F_@vzb){$bxd^$jmBM}nOx!_GB-2t=k^ucJsyXW-hw>qhA6T6Ojn0tBZ<+%#w zg~GIvlAVjdR;#p)$pR3pK^>=#3YWx#aVF z)$NId*=W6H-YGGTrneP!JAwG8W+lR-?Ol$Ro0a_g)+2s;qSd5%L~6sgSmRMXaRb0MpIj1Qp9M4=vk#YlJIKqO;jgc!3>w2)IMaxC6M?w~kC1l)6lTRbNPl`iEFwR4>TdnifbP5kf{89j_8{SAc&g_DCD9; zCm*iwOH(T6&quZ&43#m^&8?V#dF|r;oZVq{Z_TE##P?pP;%p6Z>)9W?u1oUj-(RxT(E-w2 zwZE`x9vfd(6C4Ga;iX9FRn``$(Z zyy4MXo&l8n8^76y#R!A+jbGW~ZFLTJP-H?_t&V_eo8&BRUqy;!3tUv`R??5IXGEg! zjAvAfY&`w4$aSu-jTjhxYzWDn8s}FAOITfZE-)nGW%pXH`YCbneg#`C1i*Wark`bZ z$D$CR!txuv60@2+M$4BRNm3I# zZl=pUnO*SIoG>fcd7Lw01>yxZi96jKciN?+*mjHKpYT^`-JfBNjYMO;R}9uyNw1}m zW5pCYdL#;cwZ-uR4@7JW-mG2qLhYT93O(YA>=15A zma0#&CL=*(TmCJyu3Aw)rhG%`AZN+OWf*#2>j*dzt2~eu$TPqs)}X;`1PEjGQEA4g ziv*qETF!{Em$nRCxkhtI#KKG)3QiP<;~jJyva}I<)OJS3T!?ytfC`PH_Q>`E?aHeX zct#^o)E~gOqA7B#O3|J`etD7``XsMf)&``= ztE8JN+`JSH?Gs{Lc94|1>mrNerGLB4?@75HU-qoQ^X@lnGmk7bFsn~{5UttQ1J?;! zY;vPhC;3?lBYu;tCz_0nQM?adjzvkc$z9<;e@Z; zSI1Wef0{S*a-Nv0GM8hi5{s08zyD@!e3@Sjxrv1itzHK?tGIM>u5gBi#AuAn+OuIs z-8G4W?&4)F%|D(GD;zzW#5d-1=g`rBW^!I9yKLi3LM8&oZBHHT*sxT8r*`SuGaQbW zv$YHB(Ys{2pBXt%;|dmxM7#Q#X|`KwCqR9RRCN%Kg}Jk~9-I#?Ra(m}OBeOx(7GP< z>p9d5|Dmc^A1gabQ`zSY5iS}MdC7&>g%?e(rWrA^Kd6-~o-TWHY+(-C_UwZ6*nYy` zJ{FpBlK0b@ou(FE2h;kZb}5fZ>B42FOr*B}AgXnDLHyz5?w{_MBlekNYk?A(tslU7 zT0*lrb-MzmTF;QI5RRB#fXE7%%x4t{&mVN2(m&LfJ$|5w@WzpLz5dn)b;6`I45nQ6 zu5QmzaXFy*Y5KD`s(+J5a8jnr#qq*sq6&D@wP|?p{w8;>zw}4Ra+uX%=>=s*pK&SL zMm9yF9Bk`~e8}$5s~b~hoV>wwB_rl7vN(DHL!s_~Ks53_)b5U7|B#01yIX4w2JKEi z*5*N}Q8|u-g^zw+{V<~RSAzl4b-NSAlmQUO1p4j5HJzi%{M3l<6Vw;6rkvLWhMNtg zYW-=Nhl?Eh!^jBt9ny}=&IqQBxSQBltalv8_VaI9?q*-8^%n@ARCCTZRwB-v>HKEs zr#dCS+8S=pcG`xlIc zysCeRhH=Vu;agHojBG+Ll|t^wu}!}iRHgB~-7ipfJli2!eK3VvUA-7gbJrSs4-lwq z4270k8;t&_tex;ml{+NJvF^E}{Sag6NE|%RK*Xod^vLyK6=~hmvQr>b8{0DZQ;~RX z`OZkRF~4ilS@Gxvr`D>H_46bXXPSKblax5~aq$w(kvdzk+?=VuN)Q+cS0YT_f(s;r z(IkgeU757op@u7fcJeRA5=xsls_p6D+v=wW^&K#EnW0v*tp=)4$=|(Cd>ZsLcR{Ci z7kYsZMGBCP{OHqh4xMNa%#iZh&!TTIhP;Ko-%~*r2IW_^dUnxV6?BEvXl;Uh|Gbjw zZ6ks4?>t1C%Tdlyb7c}9ZC;egg^$%^uA2b9qy+jgNo?oy+Z>2NCPBXov93QzEW1%ORbP>&h0Knjx!jcky4`VENKPo|^F&aTB(sT4*O+O3gA+HApQe;Gh( zFB0Nov)q2L0Q+WC1{=rh{bx_I$rZCohvdZTtn0<;LN<%UER8CL`)7_~@dGVxw}|d- zsK&Mq7+_{}_k4GC1IemX2fQ|**xTEf*>rz}(G?Zg?Gcp8GdOuVAN5n_eH1uW_I~p4ED-o0r)@HA3;vI|N^1yaUuN!ZJ@|rcR8eg7l;w&Bm}hGjDiMpt#p1 z%bE=E(1sEwBkrWrVAa|An7GLY$D9}6U=yXqUrn)IQu?u(phT}fA$TusO_2i%6S6BNn-pFl?G@ydoU5LL2$qkr5d;n+zam9nbY8pS}fYXIx(0kIUM4 z0y`iU6Fj0YJ4f&sI`!{0YTTjGr~q33c`c-VaHD<;QGF3apYIvvk8 z*r8*MmLd~)etll`(X*P-i6LUZp<+4nA|vVV zm(iZ@v&KxU>5P{|3@ARw8rJD*4`)(6$`U^x?U)13(GzV9W|pK@l;#ppkYo)k-<}bE z9^mNLFPGGxPOIHGr%yywN=<@)Gn3S)W@AoKo!qR$ zt|CM6gjyg{KvUpH&NIzOHGVaUuFQG=$QWkufJu{k57S2qCH)VBti*drk(>gllb*&U ziPUW5oba%Lc10d@m-$??I6oD861Maved_XlRgEFg^6>Ug*JBygvG!9Xr^T!*=?bp}qifJ*{F};9#Zr zqUCOUa<_qvH{nqInQ7vw*NaSjzv#_kB|gXC3~?W{fFh|-n1I-f9%3Sw_{2)@%fZkm zHau@d9X{SnD;Yp;SX3Ve8&gX%g=&f<9oBHermk^ej`{OSsZ`2coS}rC%{fpd<1tKI zojYlT?WT7NOHrs|GHW1w?UESVX~N*)Oh8dQ8!=caWWu_$hb7uvt7V3(+jj<-9LiRz zl63yKrXZTy6f+9Ob9-OBga{uwufeE2t{vfhIl+|0-W~Ba#9+yq4FOG)`)P&|RmnJU zkIW#`8r;g#y}PkweH65AZ(iX2(Djq`j47kM3Qs(GUeNJIj7-0 z?5pn1)L5HjMT;f&&-{Iz+NScO6EM)4A7aEij{u{7?S+@0OTP)MdXjxd<6k=P>~_qo<^dT3;pIx=oY!Rw-g)_Hp># zGzrmCKRw}=TjV{-C|?(5x4kSLEmIgkFsMLWCUpJ!e}jdG+RlA_dM9l0fnN6@Uw=ca zz_?Zef_bW3Mqw&a6~Nrfv?3y{NW68$BFEEClQQnzV=yLswB63#P=ge}w{`%sr=_-s zi%UQosNDp%{d(Nu9svRvPw^(Ep#@up_xJ+bNZzhLW;XttWW@~M>+E!r5gFSy*Y1)flvNtOv#a@Q5O zR7X~+;EFq<6C=2i6P|1F`od1?h9D7h&suqfk=S<6G!OWr6_P;QuTaEO5P=B===)*I-)~` zW&lW1i7n#Q=AJj4l}j7dra*R23cG7);&#Jn>G+mdD-*hbtIub&{ee@ak4;f$nZe`u zfhVBaX#D;$Ha!B|aIuJFaTX=I*H2sC@alm&NiPiKM4Mth}JG$RAaMS%r@+)_X!2 zc0T)6ww&on&)kd6CmpK(@gPo1#V~y#SyvI+wW;qk-BQl^>XsV-zLjF2)x$s zaz_;RgSG9^Tx^UY_rrOkAl)2`f_!qY{pU%mmByiE##jy|Hs#R&C;e$JS8FLAGz%FsL5Gono2> zlE=KUYZxwz?`8-bX;FJ^$rwwjRGF-g)6VwlzmRy7DqQ8Lt`y{D0iXp6e9Z-whypj#unUM(wSV& z{vY#HmQ$ACh*CA%vMkoNyOw5v7D{rD#%_XzUbAoc&sm=nQd_Mp7LRAd?k@~5AS#m2 z&o0P0ZT)+=iZ7Md(g7DOm$sq1leZ>g0erLXd5}*p+K3ZxXLpo>c%*A*3;;{YFBOP3 zw%SKf-Du>M8~`g`y1#y^cm+YZCDE^T7gN9>$xVvC6I=!8%BuU8dZ))mPj9z2s&F57 zzu+yJ;t6sUCU1F--32o*CE(!SUA@0iL|)WDk>Je&S2+@BGvs_p%rL3WvSUa6U{l=y zW`&%%oSB0Rx9Tr_t~6Au)Xw;cam4P{O*_!snV%oCu#oEoM6$95V-(k9j=dJpc5z=| zDa~(rDl%yWE}qY|+B47w7v|aSNuUC4La;$MX0ZX)6A>2JA_^*^nxvP)a3XjzuS_ms z7ByqYqUjQV*+bsq=ODJ?DJQwvVkV@CVB6YVdRBtZ$?J=OME(zx2;*}BAHy6Qd_B+? zsGzE#oO@7BM-?$Ba}gi6M_HxrTvqIU9!B@H79AH{VlaLK9h9D1z&$G)Yhyp;Xw{|v zYd}Z0W_LLH_fu6QPcxtoe+7%s_L&X49-!yr<1=WQI1wzGM@6J|nd*e2H-rLA6Z8mM z_N6#JPJ}?OlW0G4v-?;rv8+4dFDvQY*|tMfJz#$i!7VTapRt(18v%RsBr1lwSoZwc zO?jm)a#*)Sz3hT~AY-fgig&zaElo=NfmIMqk{{f%MKAhyp4=u#y|sY@6J~SzPVsVX zz#acLWN%`w@U)xUC`CtJlXM8eSs3WEcK^mOg1(>Xd#K4A^ac4nc-O8w0duZ!V){eg z_wVBLOZ_!J+4U=RkNV8|u6eJ-|2wY!ujS;=zZutmC)odSj}81c^}6+ZKFQF*^FtdE zeO|wwW-NcXv>rF~Y&zbVdI!SeOm0H-tmc=zqa$9qvgLuUjN+dy?u=gye5Zi7|6HxC zJMO=ROk6&GJ&6JU`jPgydPb$c7aYII!VW$v2^fq*&eTDVg10~ED`E}9kc7e!{1@fr z_dqmkSLHbRv=8LDcO}Wy!X?|2l*xjWcTX;*|K9oQUwp(hnBv&xJ(!ngBJmuee&$?u z^J&8KQKmnYbl_}z5L+ZH?^S^IhP66gq)#pR8t>72aXU_M&Z#P$=;Htt1>fiGNN{%j zbv9cni;c5CSYXJc-)E-&KPz;~@TtGVouRRypfM7DKfIf|!g2xp&;BcDZSE zT2h-;7La+oag(EuMb|>+XmDFk!>HD8FaZ3V@fGu9ZkM5U4WWqJ>!fY?s%5vT@8b{S zl3qctLq;*^r@x_iFj6(tnk`Y_7SBn`XZ=KN`Z$W%z$vu*mLE|dj_cL#R|THUPn;2z zGB?EXeptYp3>#e88We*Fe;7bDP=3&4b%!=9AI4~SId|ZC=B3X)jCS7)TwlLjbI1`@}_wj`Pd5^yk6i=hyMr)Knur}U2MsT0b z9YV&ik$sfT4>O{ruz;>iJ899 zDR-hrRo%$$9@YFaxOybyXLbK!VXwMJ92mhi@1%;$)(GuYs3!9bdsa6!n9oi0Tv+Qd z$eOZezgGO%32@#)b7B35mJwI%MOtj9Dd?Dty5}E9(g`tIE)VKfXyvo%6V1}Dz<{eu-rV)z$L;d>9$Ts2YX~p_b+*Fsz$>JV*3PNCklR?k) z`@IETaChH`GfN|6d&Gqu_6>7VJ_SguCAhlX~_a?{RrU za<$@N=jVTFIQv!;eL$?mT>i4s9P1hvHt*0EzhX<+0dJe7UxbdVOba`=8vih-7z1D! zEIy%anL%Jho{Ek=eMK*FTEvL&G$DX9rqjE~MKyQw{%&%w_qLDXC=S!3qtX*(!*6of z;dEX)+Y$_LFX)wkH^_Rz+nXC*xqk;3K0hfaDvpL`z7E$uA;)e;3Kby@|9Yl|}8Euk+Mn(rpFU5IJ4;&R~6n%w0DhsuNtUhvn+Zg)M8 zdnAKaw!1F=)ONP{b^dTNy@zsChkODTKW0vuoKa_8M1`fg*lHPlM=%4zNL>yK4r*;v z<5uemry=dW9Cn`rqA6Oza<_T9)RHF?UaJf=yB&q!yUV#h6XE|g_&WYG8uEF@Fk)l- zbqXvzH;Rx5w7FRROXnwhof6CO*-?%I9sen-@7@rq2jPLl>pE)xZF4vMc*E;ufCv95 z85UKcJJuV@Yk$YGj;V)UvO4IGWOBWL$HT?w&1of-e0$gqJ>vQXtKH3k%wR(P+VzB2 z-QgX`Zy?H4WrTs(mEM0oG5tJQ?8>n~lwTe-n!j~7@8wc^Guqx#(oD2KPL7>^zY{0H zVP_Ylsf{Z8V^e_;hb_|{R4G`{`^Tj+d#n4b%Nv`fiy{n^1^uh?)ZQHBrS8}S!=3zS zG_T{GrhipyKza7a*M%wB%TtDD^GhDyS_}M7ozV9h<#Dgz)C~(|g%wX+fSj41+oi)e z4NZQB?5g$zlQUiV7&J?r>GQS0+nJx>eU#**=Pl!h>j4ZYWu&2DF{fvS5&999ys6np z!lwb(Qyk}$PzyPtF|S$9n7>FJQh`G3+$~?5 zTHY}@n&$6HNf~b8x#~(<#64&{-4|9b$7T-38W^jy1Gv}*JIAaGbvM+bp2+67R+9xk z=O15exyI^8s+>`NIfn3QgpVk@KX$0k8n|)@=j}o?nb&-w#aiyejzbN~PDcN|2=4LV z_x2LTB@(xJi+@{2@Ex6KuLlv1{IUkkl&^)0uW#=fep0D`^eagmhz+>AL;%HC|LL!2 zFaGK~&ywQ@KlYW?BqrAegY4Ix_9Sup3(a=O*kMI&M)HeR!xoSwq#FdZxm}E5Bf=>) zHDrG%5g3i@xslaXyiGnhenv?8?WRK`m5V88fO`Yay( zfsV=vq5ePRNdKJoPJLAVc2=?BHRU`!5WB9!;2&Tl02z_)Ci#~2Nk;e_u_Hy#2yfNg z9SMkK+Vbx}+m)o8-hX~`T4NfBa0m+hZ&AkXPEPrt%VSQ&M;`ZZT$i63q@)rmrsQby~&xBBSASG|$ z2(OMRRb;-CS!93-gJI$VEDQCAp`8z-j)G>$xv+hJt+fgU*F*E>-=_FpFjzRQbmve; zq7B9K*^pD#lMrJ|U0UDdjKdaIAr9c3F9N(gQq^r$Na1CHBU z40RpSf|BHIg}fX{Uhyea zfx^<6;Uz_M>LN*Xdxkf6ZwUX8v|*oe4d;WR{O$1=V>Xd5-@|JDi(wThZ9MbkH|?7l z&RECkT>%Hmj5Fg+)i+s7)jzj`8pF4;MsG?1rX&;d-ca{k)LZqwQ(ddye;N|~k-Zdb z5CyrZ`8_M5mQo0`D5QVAXMOKJ{rT@R;csg0zgwdy=>*%rfa>|&qJaW!6KBFU?W|^L zAs2vPhs5`*D>h!HgJcaESzqX^6Uza1**o5|QGh?g&%xVUNW z#CwJG{{l)YHA}S)|Ndu;dG>S1nP*hwSkY*qN}PWXrR^|B5dyF%q`EbwJ6o4+30o?kX2ORfO z!Tm;m=#d^LjvtsT{y4>D*Pthp z=C+29{Zn~l=T_%9k_VuUr5Uetmid^Ad~ZIGLO^i<`!lMW%OJUzBSKrQsz3$U#A43d z+>9T+Vp-JDkr9VV1eUKcdli?oY{{OWAub;89GMjIKg3tIrSlgq(}Laf{S>w5WD{I zrRwrCq0;|Zaq?*AGY2+7W-*p@e;EjKzmVUUY=3!R&Q z)7+tyr!5`W=%l*Nvcg@e)YV>DHc(bt@O8^yc9fQ^4HiX++fg0k>A#S{hb|NCMfp(u z`thfm{3rBp(|ll=UZul4EvrnSu~ePNBA3o^ex>&5zA%TOuUIHVC*0`w^H)DLpO|+e zN5$I>7|H29m_?g02kFzA~;fkmu%PikIt+26gn2ti;3x-FjmC)MQ>%R^?y zpTBptqGmSlX$JozIg9&q;Kv`(@88@AWfP8*-#OVScl4PO+0P9Wg|%O)nTPdVjR<5t z6V1j1b8Es4Yns{%mf^X9yXjwIfbpt?Ocx2CSql+8L2;x;!wFS1mRcy`^ZFlnPny5v z{lu9-Kf@t~#Hkyg*vPkX%qNFjrWa)F#W0k3#Sp~XKT?WfW@ebFVsbGWdVfyQpY9Nd z^PVBBWg`c~`~(tT{y`mB9{}#&cJ+R%a@yL+LP->!+#cBj|O0@3~E-qaEDqC%L z1)!-%RyP(s^QfYJ{u}=Op99IKB(VAKE-|$mPtkVhM=h53_pP|ww88p_>d)jH2{0trof^iw0FjR7a{BS zO1Z`Pn`=uD*P!gTOm3*gM-%-FzhC`R{Z8DOv}I?rRPI1-x_7i-%I9oeAx z_{gll^Wh6zEo>K7RFjQ%hQ1(Z&2`-HsZXx`Q1C*4lN&8}s0)4crbi^IG%|bmo!I)n zC*`O16z=c-YXsh+l?jv=$r6)G5zH_6PaN_ai(3f~Y!Uqq3uBSHeQ@$|*iX=RVh`kp z6+XNAF$Ds>7QM=;e9$+$?ID!DAnTl(=)~q75y5or)Vcv~;)K~XIzLB0(Btb$i7`ZQ z>>qh=wfp-_o_y=<4f~#^izgxquoo+?M-18n6CZyeR&h?pgWws4kBBu?Plt~-JOWc= z`~5RHLO{a6;HTT~XL~6$@CnG{1jOENezkO5#@dsOb{+2px4Y__w55X-Kk}sWw;EH4 zHX!#|qqrYW3gBrGlg_D+D)U|h*+i?(P9lGvnH9KqV&2G_<)$7XE{YTOtnCjrZuqzE zrTE&HM!lP9L#U{!wiO0pVGPfiNx-w%$y9%hvZgKj z#w=XPr+&MvSC1)rJF_uJJW=99{b{@}YRryG06_>I)hgaaTT30LVo#EwdYj0YZ$VZ%`c#EB+J8`qK64MwUXG{Z|!$pnO6}Vuelvww0 zxZu$>&q~X_$koP|0c48cC+?*`w#8swXysepAt5=V4^|q|XN+?5@qLRu#b8%^ape@uySP`I)rNSzNBsgfu;l1(rWc46dpzE6zMt6HfN6CI5<@9z8(05!vFcuFfp#x_Bgls?HYk88xS zHgod9$jn2>$sauMu*GJtkZuCk(6|VL)5ivgEIGx0E$1EYfSrHNHqVI}N5d&-{0pFc zEdA8XQNE0nro6)w8UT@>Q%+h>TirzaaH!nRN!5Y%L032a4eeCl2!~4<*y2jk?Lk-1 zsLY2MXr0%Pum+ofTEm02m8TC^5)0KX$m~s|pVO1-oz;-yMooT&AJq5B|D9M#bO zv^&uA3TRKpo|$TPiiBZJMG(YDXBoR#G))+RUj?0(mXjC&@I|YKl2*+&M)&a_rMm`N zrGWcbCZ&%p#`g`qq3CnB_;^bpRAhynhmD5zBHZB-Ea&@gmb(}Dh;@gnBqO5<<*I=i zAOV*SAFj+abf=5{7|jkzk;5o}!?I79duqi6SO~LgN)=ND{omp;BNfF;h)RDXgo2Iy^V*~3oj=~jc3m@*XOTN7fNYK*gD&g2QF_39sU}uPuq8W zg->NaD*gvWLi=ZBQKsKG!H>seF{k){+BL2n6E07Z(e?Z-2N?G~{J&UKkcmLlVl@#t zOXB&3{H0x+V)JvCm4}}`-)!?c4^t2NA@VU8IWJpkpgPdhR<&wc1I80?6`iFSqCsg| z))z+J9kJ2mX8M9w#p;J+&l(33M~@CrP|FqSW?(l5q8>>QnPAq%jA6w&el3h@qQ?B? z2nFr4wH^?PSLjQ=i7{LsY&SNaP)kU6608Tkz)z!cHN%meE%!|S76(S}ZzW^u-w`Z5 zCI$qAZA3luqs?js)(DEpHAf~(9F<~Kh6lCWqIFKaYbT`^sYvrz(=IBDhk42~19@pv z4B*&}54xIGBZQPTWTP-elxM7ycfDY3Ps>z1uN&CHF3p6Yz@D?PvPsE2T*UiGNDs8I zI`e)KIQ+h`Qf!zY@Ob>mh?$D#RU`!DlQGkwgO+@a^(=8TW(!n=V{D@*M*AtGH>vW` zR6Xx_AwJGK;WaHcY>eYh{^TP`F`i8GuEm$(y za&f9$k7yyvdinJzc}%}6c|swIWZY=btjVyMs(0$7w{|s1uLA5-ERhVmcYJ%;33qrS z?}#Js`ZC;j+_0e31%w-uv$pdNu9L7YHZN9Y*);eYOxP%@fHU#? zo`uQm%zQNJ{6cF*c*XAxi~kFmencE)`(CNYhz$9zz4KkKJr6&<1gE|LxGhVvTVlZH>pj zX?4S-mzJ>B?(nNi*yi{`%w1f3w&VxHPU_r*{P~rK1`)$pM@3A>|8OE$*-bu?Z~YCg zaG5i%Dv?dfL#KR9v#b!Vvx5&&BzY~}suCRgec~zEp62F1^Y*pS2hKUK#?1-bv^?zR zhqVkFT>bzX&3HpttsjbB)}|9Qw6#iF23UoBmGEaHCKB~=pOdmF3Dr2%Ieb;;?P)L( zJ}0Kt35S;-_gPenVs6EBmMIe%{2J5}i)uwkH=v_$bD^-!LCzeNwY_xfdcRN!rHP6>12nNz^L`y6;A3(?@qx*fr6P)0dU2Hufgbsok5)^h^yLgxoNOa z^9L+9w5N37n=Wa4NlrRi;I`}25S_~~o{IG+fSbI)mjq1eXp|GDKIr<`58m>ZI#P4}Cr( zdxaJ(k}PX=j>G|`qwv$fUT}-@J2_2a>ARbP4yP&b{W7k4hFMdt7W^Fo$#)vcxTgmi zc6zH0+M!an`%MI+L%flQrZluH__pAhB1cT7t%D={Wm>T2Z6oMVd9n8VSA5CIQ@j9Q z6w!%Y!fM*UCgORd>P`aRwuH^9VI*#SDWATOUZ|X1jG0w5-p}`l*3$<|OsxfowvM@# zSL6Shct6!kebnY`#j}zfm0w6kIL*3mX#*0&B94R$6+Wex$F14_x<79=Ic)wlvVL8w zfiaThzxTKH!~cs|?Hw%R-lQ685FJg?4cADcvB3UZ- z;lRtTy{+iX!u1}hEfTKS?2M;L@J+xPk#-w*>K04t-bg}=*dN>n#7f< z{28JOfj_5L$cS^-iV;k-HV#d z$mO8t3j{aiDVLQMm3Bw+)${jRt*Zvl3884ZvLfv(G^~PteKRpsyWTnC)I1N^$IGn5 zFCD~WX;;JRNg_t-@C#|WFdX<~^{tGtx|f`6u~@j$byep|)2ZZC{&X-)Yvg&ViU zhD%y0a@!Jw7sK0TqTgveM)G>*6Xaiapy&nVyZGMVKKnzELFTa$ufD-p%{#9Br%5|j z_|M3=?FI}yl&CFE+Ml~Oe7wiJ-;|p*&|rX}wLyE^7*@P}mdO{Xp3SRGR&me6N}nZf zhjTZL+#cB=en`JLY{Ws~g(qX_47gIh1l%A!I%P5Yep2BL-nE}=@jCLWyphw1bp&w5 zCh9*Fif?CHJ5l}#dj|hrMkw+y-E9yfG;QL z&o1Er*S$g)U5W82DvHu+#v(ZCy11-Qc!eAlYAlqJYX&z^NaVtVb9Rqsc(zu#Y+u{u zxNYXCi>U`<&AWr$Vx(-$Gzz{~LSy2RF{y@;HoA!sj+}boJEPv0?X!69w{dZValOH&B~28a$NYII z-jD6|87bSVAD$a4No32_vl&?)8kp!ZO9hUR8B`uLRryE#n8+yv_kO3D-@MTW-` zQ2+o$;_g65Kr#jueGrK&=CR$}dZMy64H^ItvW4>HcZ-+POD2CV8kM5w=ElZ*=Q?PX zn!CNe-h}u08Jr>+uOF&{ZwEbIT7}kHjOJ>lO;bAU|L~1X@gWK`>T~SFw_(_|p?~pm z?jSYI$+q%q;=$?uLm%OMSTQx1Z|#kKX+sAtfS4_q*f2NM>FuDZV? zI>ywz*-C~w_U9xu>2n9|xDf9rs>3ai5Ra(WU%b()Qt@39vLtOIx{$L>pm#ozgi-wN znwf{)M39mscj;cffD$IVZ~xtb%ro>pW0?^9FCG~W;_}X$&@^=Q^xnZO|Bj8Y_oL1F z6Aa0o*mKB0Yn{{7WGST)u|HYSNpsztGlj}^rwtj^$#XuEve4iywQUWOBRN>PPbP5oyTz$UWJiRSrt~YaT=dozusdA(L?aXywrb2r$Me8THCn^4a;=o=M!zXz=lYU;6y5aB! z2c(PCJ|3;7T_WVPV_*NUchib}~;>(dtKJg8hgXhvDi(vi9_@m7=Z!8qSxBK{g7qHj`7 zyIbXri1dHrdh*A|N5~BUP(#Odx3rgJ;?~GG%abvi*J(0(MKzS=sFO#^7Y6KH(S(nb z_bW-=uxn+xIn%ecC)YU~X>*+MOX-V|x@CUh$sJ@8e za<;q1Q-*sc(qPW1>SkEYNCvnrUUS;Slkb}No@i7U&QI9DSlLpk@spNdHdnAZnSgJ|G zVNN}xx@Ev(qfylsd=h--xQsaenRxF$0Dmqeo>3lZAP}-ZZ?-WbGS`sam%p2~OTD`2 zN3be|(fP(xum01iV}a&s(?#g5{MMi3T@V!ARONp3PK|x~S64&CR14kg9*Lv}zC=#! zH02pxM%Qx+=!`P$3x0rT-+4WOVVG%xETS1fpaX^Q``)xtz!?y~{rqpdQUCinEZHJgaNbL?Y&de zv)y(VD|_&6i-RPe!ax#!vNN!R&IYhYCBbvV{8Y;w0k>H=xqY*S7#Wv*#_!so&jR^9h1RNWGnjDXoQ>Ae7M0#31-BQey!QiD!Z*`!;UV%b6ZG0 zqRK%1zu<56L4SAy@B5Nl+cSeHm~}?O=jHr(=)_JRx4-(Xs0LBIYJ=UKY2Ku%6=XHT z0ZiAOlc~-75RbPsd?qtTyiRB$UQJ{JmBDL1w5gBBHdaO6qpW&t76tlPIs_5Lf}`TL z03LX3q4y~k`BUxwQ~QG&V*`dn1dT5%dLo?9Ul#D`@=KIMNy=5(Xd2pn7|*sdI|?hhj-#QcFeNG<^=mr(Y zBfd*LuVziJR@}sLlFz7B!=K(G4o@)t^at#j(V;TP^~Zd`3Vl1Y=ts44|KV)xvzdT| z!74$LH+x_!iQRG{0w1Z)RIZo8O5yJXMs2lxgmmeL_1=4t8Y@~^(d(mb zr$t41URwjC^E@>S4u6>B-Qc=dh;S|vcx^VQGB@(7Vtj1bEa&+{XxT?4KXEbVKdJO1 znSLjZ=o;O+zw=7KNLHkAt(NMUG~=hda=B!N=(@v88OPKwz*we^^bJy`?trOvc5C&r zF+0^NU;gvK&!m?6{jJsMZDR^X1nP6`*%3~2z_|t(bT`KZa%|TCP^>#d%IP%MT2vut zGmqDp*_lp{xwdRvk}aw$nBS>kSI7OSbv!N(X|?o+Z0yV$Sz&6EBlw}*vCTJ46=~X- z^vP(A(vLYNkP`9_3dXNzwNpV&;JI~{b_KENh2{VsU+9F8HfT*eq%`B|wLX=_71yWB zH*+%Us$1ev%xhi$z~_cE8@wbmNS*(fUwL}A->%u_^eqCRg>|cSneUh}OpiK-{Odag z0dhdQRc}Z~Z5=}LobMV32|6cneRy>BF02mopzW*2N&Th!Q6ksapytJs*UL>m^$Nn7 z7?1$LH|-fCTS8zk!JXAKf?zkXSFh#l(yk$jv(_{y^cQu^SP-FOOU@@fV7iBindYq1 z)e&tA2Cpe?(e;fL>9`l1p>8!79J|DFI zf{<|CZ*_+oL8D9)jV@2+aO(rrUGM|DH!G?rZ z8IIbS>2yx;d2n$j@^fi*>;8c)o7bt3eg|tfQ)j?a_-h3QiT!$v7u4B87+F*SFtYCs zPbOJ%eO|Q(h@^B7*Rs&Ql{c5;2!V3Y7=s_8fP#G(9WwoOy}ENJiX07Zb-WB7zM%_@ zlhz7r^u~BPP5Hk!(q<&x6GNaf6pzWEn>)fkgf^-~Hxf%Zu0*#5&)Jf?Xh8fJ2j}AY zni5nz?LKhdZ)o#Ft1e~aWfpA)RvBywBU>nhy`Fj}tg z$Iz5@lRw%*)-Yn=g@lf!6KRxjXWg~h6~L*#CL34vtAgYHQWulh62mdE(>sol9GTQ$ z@6pk+@9_Te?1pjKi6r7{$ZCAXfg1;dFp{QRhE`KTVAZf}*v;R;{o||A6rL=~;=(O2 zD`;l}ugHGK*OsGTg1%C*6k#TvQydrVMCU*YDTk6dbFb^u4~4b(lNy~8M#h|+A5bdP z!gt0rR^ys{LDIF_eSSUF(rM(}ZI2gx_^J-DgGqC&mO(wQltM)6`Bf#cM!YzDqRa)bBy+q0f+_!P)J|JsHYaJLrA%3S}Y zYY9c{`qv%u+n%%gsFQx%BWh$X;nv1RZi^*@qsG0vHe5@V#Mi}(Q5gVJaf>>X0lMd; z!;I%<4}4}^*lnpq7 z5#qV?$}iiPRD}d-IiGA|jpkA+(a_X+;D>(^!NSAmI6?ma83|ijX*={=ZFdBzrM)S( z2me{H&vWo|G3R^|5RB;p`94ou%?0*kg2b>I{PP9Pt}QN`kDzF~(uT8C$W^m9J@TCf zDLdeM2LPrI61>>H8`PCvRO4RJu5IPQ*rMgR_fUX0p&-_(&g{pa4G{kPM_Obx40izG z%i<55_2@;{VC1{+ttw#>s0J}@O~*XarPS%;vQ;<@tuND&Ahuy3LO$XjC8X^Xx`4=Y&VT*CeS zMfS)3*zRvT&Wjp{XL(mT9z(!+8;Gs=*T}uo z+N{>Z#cN5tPZ@v+UZJBx-*An|NUtYFK3b)2wa|9KKnKNZ=ZZ>DHCH+J1*Zg5>= z9{gF|jtx-J&tAK(8?T+cD8HX4*WS+m8rR1esPz=Zw-1l;3Om|zBeZ|z?2O&Z(QFfy z=?(3jwtfTm8@}<);K{D;A83yJYx;GQj*qpC<7X_EtFBF7U#`|M+1S$d+|ymAZ{d0+oos6ff?uG{*q{D^VvQk*gQIus^m8Od%}_ z6otgOWNJbF8TwQ7B?@hRzmC-JYx`)ElDXZFVr7&=^IeyIHw?n&*V;qpC8k9+#Wb%t zRBo|^#grNv*OqU6f7a+={5bKo3%`UQC7M1K4-3SK7$ridkNj%)gOD2Ez2u~#rmoym zbYq~&BoGuN43`JRyS_jKh9Htum!;9Cu1ZBAQVuP`H?~<;6`F#q+&TraGb2WnygUtW z6nQ~ES4KulDqXhxCIekkmLhXPX~)JBTKV#9Y!6_Zn&?f=7G&#SX-b=|9H3>1DxDEm znx!cE_6gg*l=q4b*V5a(ctDmbEKgJk+x(qpOf$p&I&6V1Qd1o5X90e>T^iwTvm$<` z<-f3BkDp+!0#-WM)+@GNJDY(K3a@|3lLdQlo^5(1E?pzWy`EX!jSGZ{RSOxho0K-> zz=e_7^e8Grif(P^CxS>u|DEX2hjWVf0pp-rU4SgdmGp7R3^mjYd!BL`lv{+Mg)oF( z@Aq0td(85B^>{VUFY!#?AL~jc2T+32^q!MQJ73eeH2`YbWoS3AdLfvPd?eF4UgxZw_uR5mnVSM5i>z7Ah8EXLIpb%pI9epe^ikmlO`vZzj1NDB3%Cpv_G_!%x2xKhIIVC@s?Ma+B=Aj(5&yKB(mu;4&HO^X4^?+L zS&ZT$E^))iNNM{A=xnd{iWy+Mebi1Bg>o4H2#s z&Yj!FNs+vkUq3=Jfsnx%-7tvq{oB|OdetwZq5zKGx7lz@Yx{F|gPj%)EX{byyw>V^ zWkZM0v&-uzZTM!(Q#eaU@kv9B{F?;paw9V$5ZOfXK8eE(ee$YzlO{QMBg;FFZ|Xt5?YBc8o&fE|+t(k} zHkVQZgVb$hxUZL$5l(MOY-S93;1*S$Uiq4Q+_9XWka+ml1OGtr-{r4zJ&i-wsb}RC zjRXsqi|-%Bfc{t?-u}QVlVeQBf0G#o1byJw|i%@fTBRHEL)|iS{DtGg*79?Wm|a zGDmSyr#cCNg+<|IU&+~M_%5u_f9aR^15O(gme1TDb@d4T-3eZQ#5PS!IKq-mDx*9j zb~}8As}L-kKLavR1daAvtoH4zS>E|%d$y`Sw6UV7>h(n`t8W9Y?RYr7qx@USzcO>~ zDQoM9jEng)gb9b@pnqsn~Lh!N)e(V9NbU&b3rq?_)!$d>-O!$uMy0 zaBNmp+>taA1)_OJ;t0QVQk7ZeXho>kcH zPxHP!W&Xu*PnJ6(I2>llSZ{a7d1{BO0J8qdT+l=^0uD5nZ=_N|g)erd)^bjnH7LJq zFXA5W`CZc)cZ_OUu8Iu>-&|{W2coO2DlBRWsEgy#O}ovpf9H6hKIT?w$c7i3=x)D8 zYlC3#?EBF0U1~EXe45A-Z4Mih0EH{K=+5UI_JTB4I)x_g@cEl-kF{8U!;_;mYx1(cW zJ+=mu4}T7s-oF@>s8XP!p{|oX;lK4lVeAO#!C(A?8o;bZ${a#eq474(d9l$&cjEy7oS@aefX?ubYnJ{1B z`V&obh3T~~{nHxGF$dnyStD5AOmUW{U=E1mG=U!<5ax%o2ei?vgyZ^MJV&wNL1!J(=}}1l>yPFjxiryT5(L$-yhYl>nj;!BErMz60Kh z*v5_JIo15(O;vz@U~MSp0f$)ezRu%Kf5$U2Ckjj^qwoGZNDV>$^v+CC7DkHthzt;c zG{FD?hE(@^;>z~u>{dW*9LTZLHd@xNO?V| z`pa&AwFAhvTEC&gl4YE-b294;`nN>T%)~p*=51bl}9t0$1dwqW;UATH-4pDs83Owvd-XBXZY~fr_sl_$SkD`pL)~go?y^{NPiL8; z?L|%qI)J4@euK&v9(MWpGD=&*NusjG@ADCuPFqnP84bLB&MM;bh?_MpkDXM{a(U;G z(Ga3PjxaatK)d^=?J6!mU$;L)lCfIc#sz953;rwKIetz9us2q<<u7mfU{j9Do7AOcIKR;K@RYJISFwDUBT6EE+0ov{x9p$M zl-u6euUKor?X037?sjtmoEOocUUUm=M9=RbEf3mcx_L5Q~IDY+K6_6PLz!|VNF+JKFq z&Tfxg^VA5CXzH6U-0LC!1%qF8rj6_zfuyNGcd(?wY5~V5UE0NMOL#15nDITWVsmEC zp-5`wRhfk@Q$h>_8eoX6qp#mxx`RYgeJ(z8@u}h&V6x%!dj!%eezROMX)Yo_!z*}g z=IvB*17*VIG1%T$cQ}BD{`0-dz*dc68Bezv@h7^TsieAb{o3TS!F5a8%Hn;b+wCF9 z1xDS04RQOIHP^g1>JQWI{EC)Ho_g#EnsBqTH0L5KT3kV|s4_15xdRxQ7@NW+lwGzY z{KD^CE_tDAIIJUT21-q})SUNT-4=tEIQpuV$NhQCg?4bT6c$$vDDGRIvH1^aS$O)lX&?@boXt^u zNAVj7i2K~y6Wb}ooz?R*di5I;R45gk=-M-W=?Px!=N8o?yjU*IqvlI@fF}ivo9akU zd9`E{Lufbjs!b%%)gg`;(e|R#NNo%r$k{0|@=F&1~Y#mZ1#i+QY^22M>PoU z|GMV@OT4vmg3Z-bT0E)m8;q*ZHJbEj)sgni@PgW&MyC*_P=C%KeTKU%C$|A3Vww09 z#nG?*Te{W~Il{I?rLb$$tAnIlxcdPcP^CP1tHLit#IfnVo*FSB&sIsYckc|L*!qg5 zQP0d~q28+?%cp4a{sRrZ_WNi?^@8;U3duwvcfoo6WN`RK+D47EC1sqmH)U#>uE1Q( zsG@TH2ywQ*{rhTYi5e04afjAcNR_T)cS`ZjvnSFaY}edgs=%@8PJ1Gr`dl$mGspW4d@r0)kwFDb&V7@9t|p@7)5Iih3s1 z9$hOun6CTEhqiF2YbfcNAd8z32|$w5R3feux(82rG+*8xNUwcgn;g&gibuA5psyks ze@qwHI|w-lYuV`2sgBM!X+RYB=;?W9`x@`H14jQF9KTvpQVw#sbQD;*;U0~ta;Z9` zo`)~ja}tKrZY+4{pQY?tCH!tvU6@z$Yj&BO&5BK)nVJThy#Ir~=X1dn3R18f+&T#8 zD##egFu^OsoQy8aDzo}#=c|v^*z*GgosENJ>Zt1X@=bM^K$(0zrwK)bxlZlEoZ{wT z^!deG1NKo!@*tGh58UfO3*8Hir1LODg zdCiE367F@$z$>&?L42Zz*6kbL<$($N`*@E{1SXu{+mvA_3NIl5%A#b-qU0yKbxxh3-mg46${kFHXrP9) zyeGJzdZ5W=N9vMQS!ty+`k9KLb_~qldE{V?3PLe0O0HK^XmT08-?8gdeJ}IXBgZuh zCN#^vabh90P=Pw-Nh3|carw)tCtpKDWBzK8`uv>Dxem?UO#rnr$_2?o@tj;Lc!2wT zxLhMT!|OVB@winZ^$KVy*2J*J=l3$yiI*?rxUI?fOi)yUcmaMY*o|H^S`B4m)FlZ< zy;!Wd5WB&6G#_YLIQkLVeKWL@-K^*gpJpgdsV7y3Kipb*drF&M+eDPZ}i^Um!GlE*7oxRBrG-Fj39TQ~#WN?XH@mx$pAl?Qs@%TsPWKhvXhD5}CBH+o@4OI0)FcJgLD)!%CF zMl1Y?ELjb6pUd99$qhUea0nHaVI*mg+b%_!ky`MP-#)^VPi&yzQgohvX)B`4yIkU7 z86|~^f})_?IyO0_8r_*|E+2Y%!iv&nhp{FtlBPZ0V(KAm4VzP{bzcAzO{Q`Y^YOam z@3RMnrU8FdRs*|ZfIp|U6T3wV`%wL4H0avoG9K=%KZdWUiAoV8^dcymA- z%(u2ZxU?uq(uUNxG7yn^Qu54_qJp7h%XKqb-OkSiWRko$k#dXCp_jma&DI~BJcG;? zir-nozooIt-)5u|-FJ`Rd!9-h6UVpWWe~rIKAZ zNIz42^TmxZWxS)%{37dt1<*V@b#qm2+ONz${MGBj#*H++v#~{QHeFqxr0M|W3ZZ&$ z8~}sO)7Tk$vOIi*fD7OMeYwt~$tOi_q+HG%=ib0f)_DpX`Ynvrh-pr^TrX{^jXZT7r>44tVg-*q z(3gOqp~_*wsQ13q4i=s)D0|}am`bzD9#gt?$M6{*C4qrYMlT4UI~`AyV(t-2PW~Tm z=gBR(24zTOB=mPq2y~g_0qBE@QSKR~)6Wlk3&m7z9t5*((4;zPQ$~!&yP)%0mdW(P zT$3Xk{qcK3hHmd!5MO3)XAM%tpytyw9S0`ll+z9xmrwyV38n7O-C2l@;gGb06HwpMx6BZ=h zjt=auDt(J8GpfQF^y(b0;`U!|*qASH*3)t=5mmP9S#WQzY_^_LPuANLf+c|d_e+h| z?aQLMJV2{$v#(^AQ_p?OD9@>%2BD)RbXFpQ z3D+kq#R>LnkuJ?A+(sQvXSQ}oQZ6XM6BagBIul`CHDn}32*sm)B{Bu2-z?8z0FP*|#4wG>K8lpV3SI8c z=~9?4SJnX5YP*)l0F&buYQF1zkMEFcA|t;d02buVjOP*MnZyDeDf- z!{*Ic;T(ZKjz;>rDW6EY&juXw9W+QB*LXYJH_qKmRDQP)sia$W+^#1IA5GTt%3qy+ z8}wv4Cf@daJ&G5fyu_Rj-QHzvMdlDs*A$lbn_= z{RTQ3m|&;+G1VQm!+oyq5|R>%y)HlOx7am-^4#UF5DqPwKc?uFgc1p13m(;tQ7-Ie zh|~_*J^h4{{_Qyo-iA7~;Edi8;(Lp(AsaQE(1TcGp~)CZmjU39m-ZlU%qo8y)AoQ3 zhy7Z2oCl=$Aje=602a1uJ^Xz=h9&Pt%uIj2U7TgrCgWvWXkc=vXFbr>m~jvL1xSL6Q7&y@^~IM!^1j}{@rsk^ZDrQ z!^S<^VuIi}V1(j&TE8Z8QeRKRQIt|#78sFKg&-Rgviv&w90{!ct@Rwscfq-P{)yz7FWgSzn-Qyje4 zzc^e^zxE63g;7vp0XJ-wN=RC-gp*+Ay58IYwh}I;WZ<-G*-==Mvac6+B}F## zLI|&M5u|nBY|ZY-sCz*@xq-@QdA%3&4?73X8pTrL2k$u2d@E~X4KjA~|0pu>8z37wwW*jFU6FeCAoAa>6 z&~8!ArEI)-6 z{ZiFVa9lsa;|YPsjh+@*%ibE=RELN^_=RR}Zz`fr#81H{QQnXd5!kidxR&#pX3tT% zmsrdhx1%jApB&+wNny8NAdRE>+1b@y(V7MTYUGui2#DZ85zc%u^<}~L< ztSHZ@`B$J>)h_0;Z*u?mJXeOG-!<4iwb6)tHhV)FHkq%EN3f?HKXQ(NXR=%miZlqP zQ9Mwcv{N+kFi_>t{W+xKgJoI5xLIym%{9=4UhjUD&I8$b!DNE6Hbr|T=UkZa1%a+r zXSvB%aCKa-)mjp2q%8xsr-tC!Ut@Dq*wMl~IOa&i^OJn+eum6GmqIOd+JTM~El_G# z4ISvU`s%iE^x;yWtd(!WV_&}C$H;g+6a2|jH$L)mtstq$op;VNl4rk_TVE(Jdw-W$ z8k9V>d0#Q~vfgrp*7NFLoOA|_0^SV7;AtY$ZV?opOGye7g}V15fpX{C>DaWj^qNEu zkhYeY!nHlREZ(8{XtV_Vb*TK~2WC%UGRHJ}{|c=4y|=%9Lyr4kgK5NyZK9WG*TJ+8 zNB$#Ul$BAxI$^-4epeJ1Q`A!1N23tWj}7KwT^NA0;VE~{{i+fe1z8WB*(lXP{ritl z=Gffi!Ib$R3WkqB6aXQ^2~23V=($BWpTU9MnaXkEX3QV-qt8j7P8GrxU*yAYBDM8` zDU}%2-R&pD@xY8=Do%gvJFTuZ>)mDYVU0PzHHN^*14tp(U^-OpB-+3oxwy7pEkfs~m$4j)ZfDq6X9M%)1F;Go zTamM-tkv({#~D?*>=*)r0XiVkO9vnH1pxTNMw-6~ zrxGDk{`hE?2a~Loi#NgQOiM7FLa^-mb*Yq|XW$C6$~-1w&e=lZ2t&Lb8M}ZIm&?`S zd6}(0cIBNyAI@MfhH-NsGCxQ)z3>R{GaDh7|H)GmF@2x={Qm#4cu7f}1wJzS7j0s2 zLE=mJ#uHSKIMlCCf^0^_s+?(D-c+m0BJ=(0@dJ<{&OMFV=E8+)+`M)+!p)_Lz`K3+ z(ocmG@rM&8ttw6$9rd_A+1V1C&Op}!g!UMX;7m||f6U)$!g`N}ht-Dc$8(>*9F{^! z*C7~X{Ff2np%$HImY4iYIKlG->2nd;kZpO+M=KVQ|A*3$`a$buH@(p7V0(B;_t@b- zMqP;JIZyF(Zi`A>L$?ptX!de%UG)fI(}!Ru?CCs*1^92`7P_u3Kc4Z@**n93*ucYb zHnC)IBKG#J6o*_ztw(BM%G{?D6obT6ihO&M)6MBxsc1F|;971wJcQRhEPU@HULdAC zMw~(8i7i=}$@+fXFR9m3UG>~RIo>PMjx#E7^4fkL`G09=AO8YIq7ULD(o0|9()fW) zHY<(=GO8;W(EgoMMaLm!CD_WSy?Be4FO(_!0!UjXY|d^TiiG6H7W3*yP{?bU4<;Qh zLi+NYH{XZG!^3~WUx~(mb&FX&Kykep^wrwuTR-JpjVlOQ9$jPFPz`y-l&w?eH_9GE z8oLU1>)>6j7f7fs{G_IA{USm--#NxjH0(M}a5|9w|7XQT|6|1o5Z@_00^p^eIQvBp zj+OG5Tk;;)FN<2;v^5wTl3Sz?fKU=&$p=}NvpoWiQ#NiotID0r6Rz1adW=Z!|GM4n zv*jrO{o7I3b8<6!Dh01^h4E2C*eL(Xg-9>>{FlW3j`Z^%8SmO4FuyBhr(+gxqO^aM zH>QIG)=nC=P@<_OpXpB$cBLfLEm?tw7g}29>Bb{Iq1}{WgN~AT1887-{DQOOXZL^k zeAh9;82_I9&R;TD(rD-I)gC)X5#=6Js)gt=aW$ zEAA}h!InA-J+$&n^#`i}$kHnsVTaUd6|>fx$U0PTd-!h--{!}Q{>wS}`3C!u-%P3O zYhqPQ^9T0+y1i}KYWO#d`zPy5g|@>eyrKgXlRnZQD^W!_k$ppkYkDqo>}i>}G3mC7s>|-NlbgX| zt=J9j?Z?yB>>pT{lCHkboveyNZXrp!p0!4u(K)ny^4t{B7Z<8VthHCDFu8n{$tsu7 zTTv1E(QK^VRor8T698dzG*~K`D!D#FfvZLx6xVsI2lh3h=SD_-xEMdNz&!}tjw4;L zVN>6)`?(_7CF7orS*<|&v8&iKw0j7yv|0D~+gi{$Okqn>En4c_%UOi)^W;J_3`|@9 z0AH3DNHeOe3)&h&<7UL!h#h~omn&Lz9J*h3y1%->vLb})V0T`yl}#Lk;;Yzxn|GD& zvG>kK6#vd{3-_L!6gQSwtL*5Bc%9WA#i`IgL)YhESNJ8P{ig1WD-UJAH^0c6R&90K<6ya};0mmiJk1J^OgsGX zIQQ;GkZ|US&Kf9q*yLbt);XrudE(++Zx6hTQOH?zy`MdTbX@ok-~Pi69Bu>E-~jA~ zlh$WLPkTTMeaM&P*y|OCe7=#uAo2C_d4cIZo^crf9-tUOs5Y9;i#p{>Q)nIbUpbU< zchdP-EE5xt%72&6)lPb?({m@9+Nc{IEqvV##1cDKwUxO6FU6lkCITDKRF3sN|k?I-j{UbUx9 z3?Y@&cr}3+nCg%l!`~ObDW|pmLKN5xT-=g^JI4$0Tjo%&)Eyt;_fTa|tEGu_A8^|( zN^e(syj2<7Fp%-M#Fp2falE`4nB>hUh~~#)<3n#2DSz;oMyR8e6%HtMgtiph+{+03Y%5(NoxhF?WyGtl{4sax{~3OSS{a8KigDA zkakJYTTgrPE?^y&BvFLf_XjPh{aUsQ7!cUcP2j@CYgSFht#Xnk%$Q z?}`1AVL}Eovmwe-a1#Z8Qpgtk|JZuVt~i@;-S$lg?(PsQxVr~;cMoo9+@T=^cXxMp zcZcBa&;)JVU3X`#v-hV{KcPpDr>gFn*SylW{x<=H7#J8h(_+6ho?TN@^Fe3|`A#|0 z{`(JpHUtL5_nXKTLX-Mt%|ozAz|TaU4~`};tqnneSeNjo?k^!lpXun8j|6I0llpBF z4hJmye7y)e!uzcjzomZ{rU1KF)7-v42A0fnLF&tXVv3fC&6D`MJ>2X2?cz6AtxsM* zN%{;I{$1%v^AtA2aGef7V({>vu93ZxxoU}Hzra7&E|9XU$S-C170rE5!MF3OFo8{@ zPT;fFM19Z&O(d+QP;vO9bK^an2%D9MHKK%MQ|xw9t@UCGEB|(9>R|rVkSj%pSzzQU z#Bl#!9XmdDqidJOchk=J^{@KE$(H$S*^To=q=AZ*K`*BOw>29~RA>uh1~hZeSUf3x z86In}ahM9_L-rpE0|xE0e4_0gBp8Zm>go=9wkLq2uUeN(@l+eR>PUz$4P~GzUq8q}ur0zo$G5M9(EA3`L@^__o9i>= zl5Gem^o;owd4e61_sqhd>@#q)r7?RWL6+ZzHN{3_c#pvBrzy6dx*ho^v~N;Z#M~Up zqUL?$WdrKgz3RuwZJfMTj!`WN1M;Fe7C7Og+-XUyNH+pBM2w0Xx4ZO~B@hIkqDDpYoDX3+PT!`x#K ztLwB9L-|ytt-Fsf$mnK9hIVkbgZoMoy&KKV-u-zdqEcnYN_jLyAnGHfDg<>Vrq;mc zUHqMJ!{@_q+$jHcXfnuu7J9?mb;x!B&1T77(wZe#DYC?A>N7z^c$qCno_cv8de!!z z*5;)x=Ok>cU#~OyZk?8JtsHH+dQ0RYLDId|CB88nLx5~yOJw+E zo)RbWg^OT+OpWivu_^3oT?Linna>R0uE~JD)@U6m*lDIEE3}6Dz1nY+P&SYChq6vx z`h<3+8#p`yr2;xahe*w4_9)O8P*vjeM&Iez2*oXsE^kumkC_5DPBthb20+H?;D-q* ztRS>*g!9bDVP4EAK5%g(q53BH9_RnK zh?~3oCGODt$2O=d^AtC%MI-={lQ#UYLiBvkYIWQB$_E2iq*g3-h6F}He3ce659*yG z+_<`bpz77y#d;Ru?jCK~l`y0a!ZazrGQ%lR#8$?d4{{OSF4&Iu&qLq#c!I?wC?C|# z7zvBYaekPWI=ou+*2gs+6mxEKQqARhMibsP=#KY#zNI5-R^{@2WxK(J&&wc{`vH=) zIKAFk8?m?ai2M}PlxOWKXGt&}Z0s;FxsGbDh1|r6Kv0J6dT>1|tm_s_=gs9ylAo=a z3O7%9gvWf%Y=tHzd*8t4O-nr%GyipLl4j?eC0PX$zxDamlhj$t{>^6m`j3!T>Ta94 z`m&sfhRpX0Ul(aC^P`>I?maA>5LD+q7uqHZG8PFPJOMFjyY=9~|8S#;rpa0w5w`vl z_8FkiX|}@Go$o(@((&l9l8HbZ8Zg-HY}j8BLg^ODxua+FXq2XGPeX+3 zx#M?t@G+wBeGvSfb0X%bwJ>M3oQLfx;mV2ZDk@DF*(wh6_q^IESx^(vqB{lAy;_9!g(5E7IB_Ym`AyHcng6 zoR1y>o#=HH3GK0SeDYhf{8IIzYgGI#Y(6pNL(?e9u-hZpGq+_?IfJ?%fc1ol@k=Ro zN#}g2Q(yL)z@hbJcONjKuR<{0-iZ)+;VZLvVyZ12@nZg03>l#wp{4e}C z7Y*pZx3`TY&`W1bt=kw^cb~J-!R{9DOF?iW_0-$WEV@>%AzU{=Z}nA!=~$Y1wmGd7 z10VycHo-c3p1JBH;jjh&u4>IJ$KbcQvb&66$*)~dbEU~ihv6J9{l4LYluwK{tqvfD zSh5zv!0R?ipgdg;At8^Tj@)YIl28JdS?ts%!ua*u1%y7AXa6e)s&xL^kq%NLx9y)o|z{(J*in8XRiq52EG- z{kgz+QafiyUkf`6**3&px0*8@>Z+7eT)z73ZFBi_gg#O2vf;2gC zg`LCV*N0@N0bf^%Hk|E;fR8FPp-nco!9@Q^Nu+%o&U*`@ncGTeEG59*l1_Ig9a^#V zj*BZTwz6adpuP`MyGL6lhY*sC1{|KA(Yeg^fCNetQEZNbcx+jAi=EMIUI9!$^NpNK zDoShqj&wO|Cp1Nm!IZVkKZk7doi?cvt4V<_ppgtg)IFZmd}dW~~!>Y@%!3 zPgKIy^9o~#Kgo zOvvG_>BVz-Q!pbM%ABkvJ~X%!Fw}eVV0$c1`hDd6jUT1(^H^ejo8sIOKeIem_y(RE z48C5S&?*s*&VV~&XV$XH?@m_l$392X>dhWB$uuI5nt&l~);zu5XVXLzy!dZXo%`w;Hioajfhi!5cTtr{QONp zSoDwi$Rl{QaU|h!*^W%`oFfFJGq&V8R9esvZ%rCq!We^zSYJBRlDlo=Vb>eAkFZYvE~Cbw212Eju=$$W%M9e`5S8GKq2d-QIBt1;{-F1V zscht1wq}#!*iFK_l~7iQt$kD;-gk=dE8oR?>NLZue-uPn)7Stc~e`m~}1v94#QXv!>>^Y833$PxrAH2Z)-Cj??IsVDE z%&<3-qg8vO4jqL+HX)|V_Ilrex5$Jg91tL8v^71FR{iB6a||dLxp!tT#B4NS=I{F7 zv{H_!-VxMd^^rXA6t@|h?-G6IJHRm)Svv3Skl(|~5YyP#Tq-ELR{!lTJxsua=|w!R&(#4* zywH25o+;K!Is4Ob_Go9fQ06wXys4}(1+{Pb5Ux=TSRBBK9b`$PEH%fl0A0kDL|805 zQLBmWk!d*e$}4;|Fcz?Z`_({&8@F&R zMI8o|hl!6a-8q(?NmAlEKH8w(td?7HU2oTVrEPrCzcYDAXF6i8hQta1WTy)gFWHMZ zRX@f@$U)fMG%eL8ca>fOBS_|h>QE!3PoYV+P2vI^N!cnk95(bx5xDjHlh~)Lc0+iW zkw%HF&3Wj~A*|#E`LC!|re}f`Jer4M9uHs06E;|KM#=o1P^K1w;_mO%ZtXmO1D5@I z?*YiAyQY_zcM$Pp@Qx@{cfiX$_=sa;(EISkk+5{$+uY5{W~dYg!yLcK1uhlmRkyxIj?(*lfe0y{di)ultABkH5bq2u zr_FqCu9aFSeH)Y$;)yL!=W_$B1gVzgN`ad>ICx?u(PRasRj0FVC8q2&@>L8r5X!F< zh{q=5J5CLXQX>A1Vn^%?c3mk^+aqvcvcQx7Zxq|%$lYL+Ir&WSl(;_Klf~_SwVB2S zz#9-=8@)udGyTfa#LO*yepT@Y$sDaJ7(}sgvAgz?W_0-0VTK2%NZ1RwKyAIOm0|@OUIg9i5S?pOO5%YyPDCrko`j#owF4JU_A=b?ze3!qf1oc={@H`7mWgH(^P zo(N|X*ze~e4El00H}}R|MwrpL`A*TfUowrcxByKXVzlAzYmb5YX=8^GnHXID*qH3t zm;(XWD@K~kkUA@3cPMqj%@}Sa=us^fec!z96^GZ_%F@-8Q~1K5x11t_rn<}lrRpcg zsvqvuMJaPpCr?UczSk>VMcs(RZV9VOt+SBu`O<8s7PTq`6x`)xF(nvD3Ke>rDUwP` z;gilfs;rihgu)|}y`x5MWj%(|{OxsDf1D2gBP z*tSb`S1--_nC|<`;OJx7V^n6#fnYBN0zz{_H|48}TvZO$tSq^AR(}6cPL6D$!7C`b zMyQv$r*sO2O|^-doJcI8y1~fP;I`7lec>9*JNj)T6upULVjO+ys3O;CmRB36^tr@X z+1E1)JQrK6```K|21aK0CEhF4gFh0j2#L9N<~%!P+>!ALHPp@ z>8o<0S2Q! zSS8=#66za#;IxD2kh6M5Lj+Zf3)wStl$Fs&)<9zj=mDpI9Rse#-sHg6i0vbmdz0iT zJ|w>|vTQ(=B_kt5A%8C+CN&j(6$?|2HUzh8GNHkFG@4)<@q%H;ch{aZNl1vcbB)zy z?|U^N=yQrGy$+in?+rIezKQl15pdC{erIqDC{-eP&fooIiUSy+nty{-beD+wXs1uL zc!zV0*mCuz$Ib)1#iQ0OLU#te5jE=`H{d#bwANe_FDIlXAbZeC5N)U)aq2j^LEv}G zE7+Ku=;e$`-+WG(rt1xT7bzE*fpaUV9@;qvUln1xdfv8Mg<#MPG$VLRmfgL}xiIAH z4?(j<7`LpMUVBTo_T^jn=Z9Ngm&_N8lbADeIZgNcgpa^7v$B$_J#>^wKE=&dvdiWK z^MyrS)|6$FawiEJ4I<>CM24*CY4#f$mPU)-;xdki*}Md{+HDr~%1G3Q`Hm--^2R=E-V3khEE@ z`~j|TUa7N2?7)$nSuCKPToc*FyY}KI+jB|u<4U zCbch^z>!~Y6|@48!D*=|YMe}mJ`5~c#{J)mL~!kLHYRhvoRTiWyp0uYWTugfp96c8 z26XCV6xwFMFD%r4{mzf-(%;?K1*Eoj8CFmB;(2|7rBtR{27^sDQ0)yy78%Ou^WJRk zw+?Pcx%IHlHyKAO8=P81CXd1~qLiSS?9m#8hn(nfi3Kj6QrzI4k_?0>$spMxwBeSZ zd2CA$;2r;-`X0h=WtpWCV`R%1AN_ul-^P51<^pm7w?D|PA1z{7ss!s>j(=|>mZJ8{YQ`&y3quPL%xL8#7oT30S4n8v_x|jv{;5NshN>C?rhPF2@UDnPO6* z5pX-jc?Oxz_6!GdlUpyQKTB@PR+tAB+nCSygZ9qKhx45J*yk|0w|?kv#wa^bhSXz9 zEHtalITXkKp3qH{^m~mLP+6H?@+Au<=Hhp&Kn`KC$f5|RDp}5#2`5+XNzkuRXY20H zJ~;AiMX;S?nrvxA3|LV}6j{Qr2kD6UujOba%(JX0a@=`HZ_93nNy%bvWu{(P@MS$_ zCe3f{%hh-t?}o5GMti&#@%F$@71OrFj!j_hr9l7HP?0{rrz4VuB8fYvac8u=yKTyx zE1JLB?Jj&+Qf>Dk&Nxp~TGEJqjo%4W{nLC&>(g#NW^bO-lNw|A9tqYgVLcCu6Q>B1 zVq^l5*St>O-)giP3v_fv|M6*lzvRsE>n5$~FxoE@iEE`1H*B?1p`9)^NRs{-O>oHI z4?z7^boG<06?$a8s41MTVtQ3&Qnl-@cYHaf7tN8Gw9I}B^=~^duplGDpjU4aCCm4=9xeh7PkC~#uN2a zLShrntcfDKY%Kr}2QjVhA@Sb>j33fS1_!w(Ikht1JiaQ(v9x>coDu%Yp-3)`t)jvG zY3c4N40AkHY`wLimfbZu6H|jV?Z_x zbd92F4N49lm~&S#dTqbYHOkS)0o7(oK&h|z;mJ9b*%Y|cDCIvzVdpAz1svX%)U@L!BYM9o&_1CLE2P~4B5Pi zr?lGnuRW5PjTfn8^Q(d1)rGRv=TPfSbmotOQ^RLg`#trUAMwUWW?i(&r&~j)$b7C#oZrlAi5_v#SU#B6$kiX{>gRlM_ zaDE5X%{xI^jfCCoe=8s#}~(?gzTt+iR0%C0DdI6^a{8hCXv<(6Y$&4!$j6|6!*WWlLCxyqB2&}5=G@lzJBh2jqiG< zW1rL&J1aBq^tq^D5J**$31G=xw0o3jDPBIj+Tf~$1qhV$K1pqt{ti_DNR1>$bpo}h zEjIVVj6_lGPEE04+TxA)^ozF8NS+wdst_RsQ1HZU zXUalJT*TF%WEu%P=$Qq{t`EyGz9lxfqHZxA51rV{7aQ524ewxsr|53C2O<3z_F8tk zAuW<@4vU`@wIUjAyWnlvf5WQ{v(&$kZpj?2rq#tr&N|JLcl+hyPTL8Kgvk^xbA}Fr z+%NYU`x=qno4ggG+;6t!&;00@!RO|?E!=a*QWR>!-YHkKc2n6j-m|hoSzICZhBJ9C zR)K$iN?nY$%uI^yMXMK8rup^NA1wdt}39>v=nE1#aA8C}hhW{Iq*<^TLY6a@>fXZV5s7FWB=2 z{nF9^k&9%eM;fL?*YZLVm(ca8*IhlGwl3hv%M=>}g@k=#bkW4%>* zq0gHImtafyX+hEgH_c2)5GL0tL2y@&q;@B4dOuJ-^RC+AuFu;+%MLOtI8dmmEneoh zS8NN*ZfX2_6$k&=yfxfCy;KLB0aR9M6`;mYz8*Lth2HL=j(jcUC}kgJ_Z5?4+tL~C z?#MAUh(mVOMq#-6!kWJqxTDGhZXhv|>pJ7^`R>rx=Z=fMo z=m!D0g8Y zq^*?$)n40j>q8raw4K0+j_^CkPx%iQ25+LlVKA zY}u))!--bBt$oN~01+{$qmmhlmDui}U=tT5R*PDG`|e_zKXxuB1C+cGq_yS!fqh={ z(ARYnamwSjPxHXT7vtRz@j5mWDpjAl^^q0%Nx^I|wl%=|1Yg;?Azx%)(AJ_RWaFN1 ze9{ug_hQ=zY%^gBUz{g+l)n^?XAV96ERD?LI03Rx%bc@;RKImPi|B6zr4nBLQR>ff zuiYH*X?xy|V17e3^#k$f4-qA?+T!AaGp+vX<%w{j@mq)?NX?3X(J*eqb3~xPN)RljYxH;a zm*0o)ZTv=2zqN3@iXL-n=`U|DDL&>Ck8O79wQVkY>GKB>9^Xw_ZGj`M7ChZ9w)9?y z-6C)W{hgH$KU?AV)^SQkF0Q4cDa-4>^w6v5qS%~}L;{QWoxDrKQ@dN9A%p6`h zzY&HAe1s?uyXOvMOiDLcu|9gf79o=P!_-6~vHAW~fDQVDdxmZL+qQzM@rl77s{#f0 z;U-w_1jFj>{cWceCMyFWh?ZnJTF^n7-tXCS=XiAi_rAhU;wS%Fce*rt0!-J1QPwy7 zv>r?uJgM3J;*!9Q1yAfxz?}X0aeMBEo}dU1&`Y%OYjq!w0PqTB;X_W0SFg!N0svqP z3JOZOo6i%2)i>Bj=Yu>D%KQ%)L~(2w_gO^pJDjdLl=zRfq8 z5>9UXQ7Ev;{bF6BWJC+Jj!eQAmUVN>dIN8ppZ|aPnq>%IQwrg0kkl7BrB9^htQ;NM z3(xD9J=%`pZ=L!yY6?m_!%eo+c{-HTXML9#4Thpm*~$wAM+>P6g0$63Z(AQF=kxWL zy;|VDEBy~!)Ml`H+-A#o%ym#)k~~R=giZ5i+t|q%-?3rec4C2{J*M8*xhxj z$}#iN#yFppOCe^%9LdNW6geFn?-qdhi$BpAqbxW(00Es80-sc~njxJkoUpJ570{39jW0ySCA1+Egu^t(8x6{HX0Vtqfmg-$r6{qmxWiA%8>_&YLKlBiW zjq~Z4BMM$(9LDw_<#r@V1##i|PU`3Y>ntMKUm5Y~8>X3mrpS6kf()w$jmru;3vo9ZhAl(@Q+s8v>ULnb*hFOhQ{O^tV>6v_{!!*zN77BwqKIR{HIKi zxxA89Epy6Cq*=N(%I_{PP{)Moe6rvI(Q!>NhW@o;_-cFd8RUH+)C_w1q~w|~RT@Uf z@#Vx{;io~tz#%9D#h>8Rwax58XY9qfQD3-@>Z0=FX1Jn&DS`LGZ@^H4z+iY|`i!+l z5rmUJt*SJ1Y?;P!#!^61J+ia#Q#=rCr>_Kx9%9h%%BjrPEqu#J620{LLLHkt8zEE`;Hbg1uX9&V zoqFvm#OKb3@@sSmyO5wy>V?+F|W7DLz@Vuwz?utzn z=R7(2elixTw*1jS<1^+~Yxjo3Ma-1fXOch5@TJ32Zg_(WZoj`p+oe(wZij-1L38_v zRNO=Pi(}RLe3KsKsp0Sja!DB`?`iCDB2(h6f52ffj!bL?K~PuxF5$t=X2@3kW)c1@ z6V4clJvs9m6{x3*UFK6!r3cu6YcWiKfHN*G>|>0A{(8Ys>B^sKBD*6V(-8lb)ECxt z$A^`UVF8E4Y(5y90pu2}t71uvfNc{+xPA6KU*b$YE0pvz>v8CO-+==*tC0ul3F@!8?|V2;7WpkY^nQTOVgFOXYZ#`rOW zvmj|N6L+<4A<4mM@?nBk_4~RNY9s+Rg3cX8Sn+SYiv2sx!+G2x%ZAI*YS3kh@l#>Z z72VhaT)w8}X#Nw> zefH$`#>YV;xPr3q=N_Y9z{o?ZaV?JXb>xB^?sx6bbBNaRj?d;&79ip=X`;Bltcni{ z@|%7AxqfxwaWw=S1hECJcW_gvQUmNV2eQqb)9&tFu1P$y_~#2Z6Dn4^_j&yBTbu`a zu@X-pRe%3boZn*B{Un^h{IIR2vB}9TSti@JTG}1CaWHpy!Nbt#t8QPpDLH;5k4+m6 zhaV}``q;wM1$3~#`y++BO+!)e^2-(LE zZ~vG{dP-k4t2LjCfj-uLdv3rzLIrIE~wgHVITW1jB7N!K$M^A-ydDw*{YS~;$I^V3-kV%zpS=9 zpl<ScfQ=ilm1?u1zEppNnCDkkt z)c2eRD~)mD84%ORCM!E0fAx$;S~$yg4K7eVQXaa^^Sc>h(5{OzQ-UH1>z*RBSYhNq z2)O%m?pnz#Z?^L)wWKwCz#jaJge>bv>c41r8{Q=xq)>l|Ps!#|s+b)MY zaweUY8{pqmWVxt{(eZU*&fua#2eHC&XCVZI$^j*WUM!~eJ+!%>N1py(Trca4AQa$c z^I_gCHZ3gb)maA?+LRVFH=`%45i8-+^4rkpb7f86v^(v(hEWC{j<$$~ag2Hib~lXF^KBP^^~KeABJfk;OFAt_jwtn!Rmd&| zD}RP2SvIE^x4ub+SkI~^lH z3vC;|tWjP)yz#)%WS)T}(<3n3sB2^ekAft9JS9PNH(c+y%7HsxD=|XVA zk|$PHXOjXc4;ENb6B3*GpY=)s`A}h(uGd2)RiL-n8PqN>sWw@)sr^?@KH%_h>GG@s zH$J;SQ}z2iVrlYsz2PngodPl!5ssYNcLcI?b=F8vFzz#v?r1-BjpM_O)F`cOZ}kHi zPaPvZQ1bHlVf4|KlFV2Vd>odc5+NB1wROMDQhU!YPamT~0wj*PMHOFFW;#ELZV5rJ zl64#+%SI@|$m)ne(;!ffzntYZU1`)h^f048N$DPeA|?ISQAm<86_MM@b=!H*X|ahP z7-9%Cj48xuYD{bH;Fp|)&WmXE+O|V8Ir$Bug_dpNU|7U-2ddGG&7ccBSRC310ntsN2yen97#+W&_s+Um!VoM;B7QjQYo;HYtzc58YuTE0JltA_l{@&<7Ij z2`yjaFEAkqGXn9dS=ajA^i52yZ3HaG>A~xC8#`9Km*29LKvSL57vT0yUUdY_1-GG%^?*~5bDD1zT0PZ?-$B46;*?ps}X!c+g=6W)0`Hb$Z6{HD;It~~R26k}XtiRPzm0U4%6+v%Hn^02ljJ?!4jgSAb|IJ+;++GY zJPi1l(bC~jf8DH2u+PaJJr02IgNa=ImC6;4?i$ggjikB5*ql6QRi&ec`*(UMn4NjhI+p71xk@ zE@Oue6`sX{Gbc-L zYSf-$`5@8LDgI=>SUt$)mN7k;26oow5LsMHQ&m$_vg%uSvsk{>)rl1Hhh~cGW)E@@ z>#x{GA^j9LeAKnC7;AFp_EE|IyDdddeCYh+kjaI;U#LwStETEr@pFL=|+m@wW}v#fddg<6}D)DRuU@C{h&}n297G{#)?on9$!xL zrROeDc)A)9cN&=U;zVp*UoTcUOn=)#svmREI2l#;C&gcg*4Mt-dx=Qh^+Z|q3kTWZZta7PiYAr&i_ zHGH^02EYHi-l^mMcSbbDf6`;_x9PhxaEEk)B^hro=OvC}x|>FI%Cs6fX@~n+SuVGQ z6uFqav*kv?B)aKf-}vE!@v4EJ=v3G%{C7OU#^&ZFBwK&H#?7xWQsE}z@vYaMQ^b8!aT(I61V8_Wu;*jM@kbRinctREcg7WFL~~~UDZZ$7 z$4RTH6Y1K}vvDk<%z+=CHSp7T9N_1N1N-XwO&LQ&{_XWZkF8!jL?7(a&aC@{9~<{1 zMHV3h`N?{SP_<44I6Lw_cn;h{%rck}=N~7NPb(be>1U3xXr~r$b+pN7bs4InA(K>fj>KLwk zxEPA3cl5@eXTK#2dR3Aj4T4ofh90TEGhr@KzO^dxS#vj%&kTeE!JmDzn-j_hg>E}5 zIO8VuOLg1QfjKq%iEL?!)}~fTJH2Fcu8#xQM20D163|xt`Jp6>VT0Xuk1x`b9mLMY zpQsHzLO5+1cuwQ>HS#akaun5cG3Q!ipo}UHz8n6xy(=~6T`7!^kra-fQ~P*BR0)8Y zZOcfDcYXO&cHPIkNV*T&G$Sn!h}DiK#giH5s#B#EZ3 za8ug@mWL3|#9OaSSR;}lV0F9j#`Lvt2$UY+6R$1E{Fved9?ug~jE@@4q)}CGE|irm zx^>U$^G6s?dx7Rc3F9ejCV%atUJ?>Q0AfrJLG&BvLTmDd$ zK^P*etp+W$aJAX;hG`-e*A7eT?rbq**>cM_y4+N?ttyM%NX*nz+>wExOYh-%H))1X zO#4{&8v}WyZqCm?uyLwjLB#8G&r?XEP#QF-RmPJQ{H2#+L(Ixy*3+M+GMn?{eo9^w zLs_lP{Q|t9zP`Q+$s!W8{yoVM4I^VBsRqeG|09ya8+8o_`Hj+$Nu8SRsk--5T}u}=G66-E=-RA6EtMQfmDzcB z&|YHpx2b_w2$Fa#M>EP?u!1A$m2x1?*CZZ`#-mBs0~(n9Pf34+94=D2pS|A`+RYY< zGaTU-0hX?6tqo7vyvnSxv}}?wx4Su7t;D&kvfLPa{x${wF7(MiQIq>elflnEX3x0W z@sA0L`3o9*9c1gh9%*#tPqXito|sm%`dF=MtSKwJ_7K`1CXkQfvRr9SC$LcpGadVW zOjl95UKjTyX5man6A%d-JkO?HXt__vX7n6dxhQya`S?A)pO95+-@(gV$hM* zDodVjT76#oqPGZuV7w~&OQqsNMqVu8#G|$PD+tL19-i=UeL!{dt_Blc^klyS$S+mbXjXU< zNPSZWWMi%b=GK#f#n{{4%mrf@f!QLnB~RPYF}&D|5xxmh33jVP&pDv|s|RLOct@eUC+v5i|>qX@cF9`ZHy^b;*hE`wF!n9K|?fawP<@+~e+u)Xh z$cY?b^RzNt?hS$8LX2XLn7FG5&9%oV7aqoCgxp(1L&;L4B?oZ^0^DCiSz7o|rad#5 zafk~9Y6XEER682ZnVa;j~#ru&^AM{i3#zE9*dX#Wq4Q*4ln#(%o&S#{qge`Z+w56vs&~-$VJq z_m6Xp-}r0Q`EBc++j)Blb)H60rjU-fge!Vl&PJd2T8M|6KEd|R({&6I^~`eCpQWy# zgm6&wq`p{LKAJo7;l@Um;I*s@HN%tls^?!0>XXR8&<8uQb6>6rz21YulGHb4Zyyak zPv_H{Q`9q=7ojZcZOGODj0B!6vpJjcOf&hZC+_o+oIfHkDRqvvW{-Z!ehR7)ddrLf zYhWg`MwbY+1uY$@I^haWF0|Z86R|~3(UN)a*;vhlVB)7p-^9|PMAW}s9z_lMT_L*< z)0J&JVmt_ZK%JmUvE4ttqzP0b&eD}t{n>tmWYM3xFsiejNH#?q51CecW&Fp`Bu_wZ z)|HI=Mc^D$x3%?1pn*n4w6eXqslM1T3LOG#~UD-gool6w%+Sv7NxTw-9~*VD?53 z$(($r#*J;8h+J+ZDcssb@GD5B%SbB-siBL2Oz9o}XG-7PkdBZ6u_o;656#;pWFlv< ze5SID%iN6C$+S((v@$xuR``$=8xdgC^m?{QTVj6{&ccG6REQHa1V}Yuy{hKgl*gY8 z7@CUtaESGX*LDec416UYImxW)t*f_4^BmyG_=fyNU1NbazLaXTz&@_O=Y~o$U0Ezi z@!t%#d-c^6JspLhlkPawwM=f1dL`h#N3f8*xG9>0-x=tRC&a(JVDi;c<7cg7;1S3= zs-&Swl(aRw6AI|RH)(hz_4PeA%6w}#r{p3f^IC7MJ^4W!^fFfF!b=_q8CFqc?k`D^$(rrMPI!VDe=d#vN*`lVLXt}{{JLN<=<~sD-o(Kr z|JDOiYgx4)Uk$4g!qBbj!4+Y4;BVKpiTQ6ysV2@m*RyPF%j)^jG313w!pCza#|m7h z_qxX?;$B343ht3&3)C4b_ls>AI-Lz98Krv7{p8U&q~9ulpES1f*~(tw?PsI;NwUPj z4Ty{_wngOLmkmEx(-q}C@Qyw;B_=1TEFMZ^#6ca-R7Vqx&_$MyAws9H7)H2H9aKza ztXSKP4k$@o_0hX(ks70?YJkIw#o=a%u@`hsSH>0L2ig&w58=n2IS1yxg1DpX2EVlO zJg9c@l>CJDUTtur7!O}(J)2Pg;KBIAH>ykd3Yc1`nX=>trDT<^C$UJRPVp9zhG9-Q}c$zMug+Oz^ywy>^ZG4>rN`^~AaTa-}UakF1 zTn6mCU$F*ymoYQY>n*Mdi+3I)u0He$3e-0VCfE}OJV$&kq4~h}_C((wiFW?OpY?)K z2-Im4M{P#)B@q$*PYSK(IZok)LG<>m4XA?cPurM^qo^9N*jAcs{lSC+Y)GG&-@#{l z<-*!j@r^xGf($<=0xn-V;@uS3d=2NiORz;}_G3G?qUl;W0ru$m8wODauZ`-NZ(?g} zWAlj9G=A!C?B?g9iS!xG_tpY#!Pl5n+P^X2k2jNBn?J3DN3A?F7=L)T<)4mOSuyU= z6!DT1eQ?2xH^B`TR#SAgWs8l=(yY+0T{R1}2DKHSU9q)WtCXEu32aK}JnfRDe|MG{ z%^4$wIE*mo6$7CWAhBt@4>$qmIP-6H0@~3#xNa-5h8u;E?6T*UZhn1wEqW@m8 z^$n_8r1J;vwBA6s$t;}B-QiG%l5vZPUE`1WC(LE@{|5Mjj0=$KtCa*53 z;V89$0Zlh^jUVjo5J?ps(@;@fa6Js^8Y-b=i509RSCuh1j~$D1Nj1?murh)3FvD_& zPdZ9i|Ndp3Fv~SG+gyVJJQ<7pQ7I$hFeh59% zE(^D2{Bnc;66#gngymqS#JW~!sP7F%zP;@^77^2uDD~z6X-Fh;;_NUXRrAR)h9ID_ zLux4Q_bd>$wN74n$Ti?16xMmx zmvi!W{*{ZnBWTKm>rEt(De7&-H`dyf>ur_`5ng0Uixuv5#+(_yW9X@p!o+0w;DG-3`wbf+ zLm5iQ#d^jgF+TuWeW?xo^ekA#6k}giG^x?C6x@>-lrl_r-mxo{-EoI2VE7gd_J;jY zI&LvP6653n*~G@9*>ZU&bx8_64`hX&8lh$r=HXSB9eif>-R2?<9Yq4YXj%5{EHB7Z zxXSN0)^v5No*@1-m65uji~1LFrS{vju?V0(%{s?TeFtP%_&mH5w6VDhov7r~*A-KY zQNU>Nk=f$uZP%?<%hTxph3ek?_%KPpW902om@7_*ao}n;wXA|8&*cVfA5Fwco+i%L z?Q*^pk7QYeRU6+u5{I! ze0SS}%zY7PY~~QZvZa}9Z1HzB1j6>q2cMT&TMhB|s-}#mQ%lt{JzJ2ZEyXOYEp~R) zg^u?~Fpmj2Q|)8BavbJct(O#`?d=e2xQ0VDPfmFHalVAKP)~tr5VQSq6rv^%eMfdT z5^@W7{t)cxB>B^cU%^56Q%$tpHnwlnAe_M?8;D$lct5MGO)&(sG<5--GCymhMB`hBQ~LndO!|DHl?<>V&T(=$uT z2oRhdYbwZ;`K(z)wJC}CUA855h9cJ{J)>N@-cDf|iplF+m?2_Z63T{qDC0j?vEkn=df~7_T53(Ba0394#8c5ySq+sclY4#K3H&v;O_4378qQEyAG~F z2j}vgbMLJ`Q2lh*(_LMA?ez{u_H(8kxeMYYpv8nW&`wvR2u#gi(p@26i|hLQV#`Hw zCE`qvI7UD~sX06?6(aA{_gCR)o?lv0)zwxA@^;~a980%qptY%6xVSFyVP7(#m4p%5 z=#!SpKpnZ|%m6*Qyvs29`>iet$GgUBNkqzm0-9ZtBI zjfBmSVZM>m=?W${0~3JX@+~rX`UN>eEH#~NUwzE|pD>=GW~~nF3mgxPV_Q4}JRDBt zRDRIXZ+fN5yTKR5WQ>dq0G>x8amvc$v+UMrWr@ZyS|Q(gN08Oe-OYRXbLFJxc<6Y$ zZ73TzGelqa@IF4WL9`Z(E(ezst-`d?UrF~S-O|(zJikh!5u8LSCnbXH2VHHy0xnu_ z`oUK?>u#1e#J6?}QTi4r4g2%NT!j21%$?kM3uRfN4HFvlFwOCvTUt89rL$ZDAp?13 zm9p`u^~rC%_@i=czRp+-S~FkYG;tp^^4i1Rs+SiBH%WK{q4xO@6=DSc$z? z3{f(q_I+$oGPD#%!xwktCOt^8aIsz_MyHO;A0KO#-pCZ+nNcBioh&G+bc%xXQBz|2 zZlcBdwZ@)huw)1(DdZJIO2kpA;Y|{U6kV!X zJ-{4gJ>H&v(v;UDGz#LMEeMfPjR0(Bd!zl1m;3n}JGp_mTPQYP+gu3CtpC&fJvm1q zBclTo*=14=D#_PWq7^S`wO~kA|K5osI+>uK4R}64tf?o~0uW~^dN4ilq877BA6QhQ z+Fscn|NDqVZ=vVmE_9V0*r)2Ukg1lLtj<_ejiP(?3)_sJ^<}6(-Kl5gPG&Qkb2svbd{0en{C0pS?b-CxMItq&`*uEm|s>vEX_eICO-_vy!@Cp`% zZE5^DB!hppo6Z5mK%I-MnXxd7m`&X~*tOH_N)>0boGUAGObCTWa3N2u1}=inye86U-Jk3Q8Io!|x9 zq*Z)IbSmmmfD;k!T^-_JUpDRvGa9$_h}9~as|dwVnx$WMN7ZdOX@{>rRWV?iV48vY zbw7u!CZmzWW7@cu++&Gqk#Q@|Y@mBR?H~23zZJ?yjBPv~%GiyyrLAk8qMh{ipU)3e zU%>=Bkz=djl)TwfwJ^pgviE!uQjUrPfh9kX}Ct zMBeYKYR`rYC)9A%G{w19(R6=%=2JDHmtih`3Y^M zAJ5PB#p4l&o;MXpw8!H1g^nB4T?ywON1kz@;UTXLEo-hG5$ta1h7f++$|Q{r{? zB%4t!di-bJid#&!Zcf%DJKiIWyxS|xYb4>~a=DA#@msp#73I3DyoO47OW>018?>d8oRU0d*Nu)$=2eGa)>^SWHqmmN<<)~b5UU5o9FEbEn1*|~7uc9QzPqirL zh8as_>Y5Og=@FO-cXsvmuw?-c(%v(|aRTzo;%131HBGt0;{}Nf2=1RY11DU%kk4(N zTn-a71$Wsd$J>NUCZ)!w+!JZdKjw?$qmR&|I*X&PulY{&JK3)4y^o8TElzLUJhN6P$dxht|UV_+445cXBoMCf$sFoA;t*+CPe-FL$ur$taX zy3v`Tet^&Ae=j61Xt;9_Z^iL#_OF&l#yR3agWsV}1)=XT1M*|Tg42m3w+9>(h{Omj83RUuoxDIb^ewVLYXB-P@r}2`O!} zKbIny_&YRQKCDRCUwPJ_wvLzG9=aFK@eAI)Z<9H;6|XGxAzh`jns|1Ztg9 zclnXE&2qU&9DEw5=!{VA5lyxdXfg1m+FKbj$pmXxU9~$m5a2&Frg=YG^zHjmq_p1E z2+MB2dcU#|1lX3$cdI-zpb*(DmBWFnsw$1@&J^+D0=2Fld?5ex+KWY1OncoJ2+kd}4HC2kvWdt&l~_> zt2toEl#>0eVpB{CN4m*B_4U(RG5(p6MA!VR%Y>Yxv1Z&|@3NPGpfA(BU&LPcvv%&k zo7$F;@SeGJzk|||we7}d=VPxH+kQOv8!xxzEUBC}Ku)el^JeDJXKqKoD0R!%h>;P9 z)^OQX>_kba>EZdYbBlg(B0t~DdYibHxG4_>LE6UZ@lnH24?}hF4-(uxdPp};$b5YZZ z$ioBRYAR37$G`s$W3>m>XANzlV-*uc*jJk z(6MP&sUwxhCbglW14C7^v{1D1L$;3@P zOD-lZwUzl8#L+eP%yaYpMsOiaCafk{Q-S*`X zM&)Dw7@X0fq-h{-*Nqj{s{^-hT~Uc|Ir|lLm)?G{1wVGuFC)$-)bZ7gmLlYs$2Go9 z4}~6!I#$_6R+O3$&)bc)xS0vFM}oAC>*|#t>S6Z>t|q_-1Ju9JhJRltdh#^^x{l+e z#1oLoO_Vo+Cj#_f7c!g7Vlic>=*(D3@t@8}lfISxHrV;^BkIY9eSgO{&3(hM{oWa)RCFWZy2PwDv zp$4BHaMuVU5mh%2JjGp4hW{8eFQ@wUS6!>BaSoUuUk`1n$?BURYJ}jt86fB_0_h;t zCYgdkFVI^gz4s!vmTK0d8vZ5RaJ?U{Nm1PE>N6uHTmrQPQaz+OO;jP@u!&*- z-d#8(q`mww;-_?#kLcCYkIsqIJhN#(j-7m57ycb<`+TPjiK?*JNITMpkmhbqHH4WZ zI*yE0^qACIeK=}CWXiv*dt!%{&%d;R;1IeDC;!JRKUmFr)2lFn*G=U}YaOR!pJ19J zF-VW*RllS(wB>4v8h6+L`hi2gY~?`hIJ89b1h#J6>~DdbPFR?H>uT|H3~A#gfJF5P z`W%mJw+B80n)CoP&?~ezU)Fp;P;u`3p9WV|+Mo-Bcu!27ULiXqZ<*m*vUfrmId$ zp_wR{KvZJ-^ZG|5dB3jv%?xAf^=gEp$V;RbIG?gBplS1Wc1j06kB+$8YqK1(YJtiL zoW}Wn5TK{8?;3bkqU9X6Ie^^FE`{D-HDX)bVuiQ$x{sEUE}sSlCMGUL454Bb({Gx+ z!3!FBVYItQ2%La3SK1oFq2EnAqVYzaRb#JSWtp!a*@bxQdGw&L<_4cTYat(FWW&cW zG+aUjnM>Ps?1dFl8*5e6oqU*=Ngc&>S~(}vZ=JE!vn`F=rxtDAaUAdgm`q90`Kq{E z{BUdclne%%Oj#$&>wpsax7{CMDj~EK0X)g==b4H-P3cfUb(h+GIEpnUEgUcE__If; zKi&a=q2w!==#wZoAx+9*NY&1%M~aIU&g4R^;KVj+w}pFK%lJWvq9ctF7eLOs{P1ts z_K~HIoCsz`Al~DlM}+nRr^}XaTHJUrdb3zUR-)uIYu{1Dw>qnPfflZZZ97ZjjX)66 zMS_l0C-D0260#d#CwP7nP94)nTn?d* zPQ5G+v!A>j;<+7o*nZ&!O-*knxr^?j0clS>L^o$>n8bWhB zr5S5%rp_-TF>^k`Wh>vmpOFoBX78>#>;w%9S;$%m#+-LtVy>d@@n z^sX_!T@Gxn%9)suGolD?zHNG1EdYF?Xc+T%8@vsgI5?aC?#_d8Y=vuWb!+<0Elcuy z0z#<>aB3P#hxSOqwQD;DGMxUeQ<<%o>3^llQGJ_Q3RhED41D%voL%wf{7ri?m!iNV zfSn;!hgG#e|IWtRibg*5Sa15I?rn6NFAco8;4Fd$LNalpc-YLE@BNy1YIQ&dl$_;urUUqcg+A@TMJYs$gDd5U|FI^?|{O82o;^t+7)ow5d8nI-12{~e0)z*^N;(D z2|aVC-9i%4=F~1_vZi5@)+3kH3JAcT<5HdAGW0m?a$hxHtp3OS@EJ zTicmNMuuG*!$vxfJbrcgALT8nMuRYgO5tPo?K*8Mdp9t``6M#;jngrRS|oA(lO_~+QV-x)RDyeArR}s-kE=T-Z?E6-m%Qj@5sQf4EUD=ZU;INQi+pC z5vLDjW@glTv`6UH5{~_L1#sl#Ads?EBCNdL%?aG@7)1t^{)6C@%y7=ag2cVqvYHmL zSl@dhCgk4u74@^_eez-#3mB{PdIHX=&(lC6@GOx{Jk=aam@fZ<6Q(rv2LE6(F7R_V z9)2{$SG!@JuZ`xsHhb>J6e%V(g}35d`97;YFCzP>q=@;b1X5qH+ng?7k(j^Nh|*AX zjoGM*2(IlPCOxaOB0p1wk;bOKlm7L5dir1N z{l%Nd?}evQv-WMq5gs1i_0q2|vioD<^?o;9OW&L=Y;z;uP>YIF-h3G(83ExhA7jdgMa>lqjl4W2Jqc{-P0 zQzO!PY*6+1+{hwCwjU7ku+QtJP~c@~8!wE(~ur)Ab)u6ke_S;~OGZHTx4xLj5)D)b1CDL7ndtKsx~= z5hd8utfu)CRnn$S_) z)(1AU$FW?|lMEe5Dz&?VcGp$SQI5JZ_0P& zR8rRvZ>CT9JU5Kd?2mG)z+29&HPK}vRAfe#h>0feW6raBB4}$+M*?b|zUs8kaAE#s z!fYsX_wD}3`Pg@#Ct(c%*5(!7eJUL^5h4zKn>qFov>krW*%TqDiPd@NJF3~J;Y25t zD_09tsLBPU-1h$KbLc=fqcy)^udN@RjUqM~{>$7JpU_>I{yGInQ~PGZ@^Ecp9J z{{*4_8`e!rl2Rqhj)lfwJzd2_w(zWaRorabA3LklnMQ-t;~*aCG7%Scj(`c{tU$RtHKw@7u(ma@lJ* zz_(csnPf?tsvBxSCb%eV*=JfxOngLhe^Tr(_>cFF@CqJsYeu1J5{hv@FK6wlo(;k- zgKe9<7ym81=)k;OP<5QYW1Nhu_$2UPOhJYey$Y?-Hd{nm&Rx;Chf;s|%k$6Bys1>M z4iBL%H>Ay0U}qHJ-Ea~~yv#XqBYs{A6E=DJOD>bOrVi>`*kU^cfAbs$1j6?B?DSc1 z#j}`@MUa}y(QzM?a8~KGM$?ssw4HjR7S+wos`X!EQIE9mey$jv$wHzRc2|;f4nhWC?}*7%N{mn2$ifLyR192 zzTGxW?8&C3#^f&E>cwnA-ZTNrLO*A@E6OX%&b!O0%nUbN3i4btN!kTP> z_qm!kJgrGC;R~}K+xmi@_)3l0gr269ODzH33Lsl5>caLir&B!~EJKgdDLj~kf zY-js5jU7 zL-;m*mvXauqp4;wW`#$miWyq4>(qE~KzpUiC^r}%7y2{eB4|^VCxP>{Y{flI#f?PGE6#gYnWnkSSdy*yT}CK} zKNofI$CFzu)nAH%-0p}Ij1SMd>*vZ0Z|99R4%dpsMytPKNT#!866RC7AXx}A6_*HH z{-_5#rEqx6YicHjG;bN)i92Ph42Yj`kiq*|{@~1TIPfy49!ZL7f^7B()rwd9Po#&r zY8G$6C~aS`=j*x&0+Ct{O;HnD&_Ug&`53dLY`Vhr9Z8?Iug!)WPM`VVBd7B<t~M4R2Z|NPH(xQuV}v4-Ik@1 zQ4z^YyQ<|?$?TNw6s*l+pS$;)lf}B zy%0H7C2WQ{X*rnYbvV%y}B1`<;Q&j z2BCwzK~kOg`Gan#2)T2)Lxp3C5YPOltF$+6C*5*--u{4W{$;O!6#IAX>mQXLGWH|E zGVamOz}pH#uSwVD@WW$2ce_nVyAzrrQ>|5BjqQ@hWxmA=yFZKU=>u zLcVV%kv7#loaSE&RF3)1IfbMU|5T|ryBN56!VdpVGwSzIP)yJGHK51l*7tz7aNbWp zlMWT3Fx`h$VUtQoPAW7>sP#tM*~=pyGcG43qe%r=Oud+q*b!6Q8`RF$5_DkA1wcs6 zko%oxw8JOHN*(;TNU?0v?pkpkTUbMq>ONFFTWpF=_FQfU)f)9%AIiq z+SL3ro}6-<0D1|+^uh)DKpk^cQDX%FIEd_&*s@hZe%#OG`fb~=!b-sP)x~AAlkDX% zQ}{2&3<1IjF7QSDjOm|IvVT;=lmE~&3{qs7DPN%h$(6Z%rigumVva5|hqRJ3{)-}F zu(cbiz9p?1hkmPdz*o7_<%Ic?&=FsHKbVJRq3(%>i4%}NC~hz<9F3cHd^~7F2f0sj za8Ew;t6JsovA+0CMuDtS*{g%m^P2^TS zG|rrs$HL77vTBv6ct7~w57o_F=7wE}(7YioZH9p?QXOKgJNURT@K^$@YA6qM8y3Sy zSW;2Z44yQ?8K!Y+Syc7)VeX{63qGY^X{|;ORip9y$TIGnT_zZ#6;vLX;rl9-RBxw` zMVf7V6)%=c9iE(^U%3KoL($YDfq|g>SWp|=N#6Q*f8k>utza@Z)NR@2TV7N3^R|nI`7#9?q7>aqa#+Q(B{C-xjILbcZf*k z@b4^%YtEn}J|WDFj5x2$40SaNMbop~8|kULlBZ0Em4~HvLN)i2am3cY?A-y8D>vGZ zDHNG;{k9^suLZ zRTay*IF(cSG(VXGD*5K2v`Qd0!eR>sSb>S5@a(w^&KJ`0AhvG#{_*GC8Gay8sohS2CzKK_b92xtlv;-v0p>Jzr$~$jhjj?sM;GA-TLZybOZNO)I#)Z+WBfAD zL-(!jYLEc$X47-i2MqH>0i9PvySLrbeI}?PBj2b7nRt+eyb@=JV@7CpM6L*U;62L_ zSfYDy>>s-y_J34?V%|*nFb?R9?<_K%h8|}1R25ab+v3W);3MTfqPGGZ6UT0}gY@wm zdi>a*6&GgC)J%{f$tmfBifEj&i;R%$VOvV*BJac5HvJPKB{ESf%mYM~19?*J17g#w#erh&-U4t9~njfqh=!+-l0QOmgQ1hooHS=4_pJ;lvX zTaGD(JR$tp=iL!ur50e9bUJyf+d+$EiW))zaeP#;*IVbH@BYY^ki~f>NrU6_kB+UZ zNXXRV#2Z*Ri@f&W9@6Dd)2KE?y1h zF@eul5b>Fe=Z%Dhpir(nVudp7(>77wpk3pPj+%^qcY2j#uK6D&A`~Z*t-Dbe6o=}9 z<6B>`+}|SCw|#r^k*JXPxQF59Q_C3H{w0bFG%U0E6m3$u;B?mD3yeUenvC&7#S4t{ z=8({!WDZ@-SGO8uN5-x=Mn^c4TsH>(bDF2m&xw5RtQndr?)AJ5Bs$)&aPe3z7JU|}R@FGOFg zLZ*=$NIm0FQFjB8-hy9*cS=keKI)0P>huAxs7VFZY@gz!8y>`@PNk+P6t;7E+;WMu-=M)3by+i=Xe-*Lw6Yv5g1X9on~F z0KfhBWA<_%(UzlTM!Tnw^RCHV`W;5jwmq{wSh7n1;-!tcB1b}Z?>rE8V94<3i7ztntd@Z(LWY zB_$3S)c6=D85xlX*+t;6sRzX=AD)4Q8t?3{G7366KH(>VX??x&!s?#CHaq~sfrnc^ z(B3hFd~xb;N1L-ycdMT<*pIk`!c#bHR-XP+SG|LjPdFfK>o4R{Q{3<~%|1+q2EAz= z%Qbs)F~duWqNlOdBI``1s+EqPf~evXSEH*teuFzhZZ_=%z?U>;k0jh#7c?4qmlVMZ zx7ZnqQ|80mTa7IqEWS`0bx(6_S$HN#Uh)WNC+AtHfep!4*zuE8UE;4=#ivd4i9Y}He3k!WN?s#{{Qu@sg5960RfDZ}ruA(g1uZ1~d zuw#+RS|+X@@)KHfog*XqJ0eipt+FW%#D0|UH%`i*Q(jWz=9R!d@BNv({<>Q_m^QX< z?_80FOTf$v&~|F+~`fM0d=i767^_ z4ZXTm<#u$d;;txRt2o28h%xq5Smo``2L`mKXy#_gT@HM5 zowYdJ&(!L5rav8BU@?G2;eXF#AFLW$c3uto3|?bP2tjc+3eiQStH=k6}R)!!92-PgDL{eYkAZJ*!0 zcQKOeS^*}mH-%t0%5gE9f#4s?+PBbz$HNHM?2PDIsqxKj@0F(G>qx1Ov+~rB(mdby z3otixJD_r7E2VPF9&+mBGvLp>3;TZhx0v+>+vt7D<&C{erS1N*@$C_e1=HUU>eyU| zIP;rt=UdU+P5t;wbknk)7Lok~45v;E>NQ>QAwdVWH+^TM2fNKMAxaX_?Muq8C+^(md$^VPusGT0v8prhoyn1cN9UorGrTpr{@@cPGdjM*T`NFDp=OskfF$-lKU$3cHjba-_%D z)O1nbBuE>w%#zi7J5xY+24eCj(Q!_r?S)@3fj-wRqiv-D8C%T8YnOmN{GKQ>Gq!G$ zQ(3hN=2cKBsG>-qeD#_Fx_9+^40N5b1N!lDciLbabJ4cgCnrq^rG+aYl{{4PO_5bx z@xDD%>o&z;(EztE3pw>(JaGlUqO7X2<`)s{605%~7XA%G&iiXsqoDGv)Ys}EY5hWi z#PKaXs$ zr?pX2m}3EvFQwsN&!FEn@kPV1kxlakFV1QX=2HZ)E4<8~y4OOH9lj*Ox`47xMmgT4 zG!x*q^jv~t41Gtcy5;Qzk3T!up0z7mHPXXpaa#c1V4Hg zV#$aTt-z-3e`<%sNiJFbmJv0P@UDjR4Qa@I{ zCvJ)NnnaG4Lbi?4AQ@a4)Y6N=Bw3w^{3@&E(zTFiP+WF51-?_$OjV&?{dLPHjW4@f zQC?8fC)4PF8=p$U5Yk6NVu);@<^>#S*PEfe(&VrD)!TFpUMg{eUTPOQ$oS(sW`4#uH?|1o{m(yv^o42%lY)s#N7Enf+}xI)jCx1T-!hW(t{nQjF|LcqR0y zPf~S2jG(wy)hz^B{E-66Ba)3ceA%EUw0*K=Jhk7LFlUZmT*TJl$QRS+3=B|ZEL+Sr zcrYENTih`GW4}|hs*qjql;>!zPR;u^DQrxV`{x0$*zizzSJh=lwED@x6(2U%oV*VM z<~OSl+;G*j_L~GLS1}-V!LY${%4sYz)5>o7&%L7jk*mJ+#fhThrTr~1FM3v2qv7s1 z_tmsKHUF?;xci_s?7Y5vIJv)nroT@a_P(~Fd@;UDuF-7Hx`@7zq}kSL0neiz<+qfzfOjY$hu<&8=uen)N%m0&q)j>AKr=Q91f zq1N9cPEx;}hW1YUh$Mx&oAWlAWh<;BQ^E1)78(l98VdsH0p6;vOY|$XZ5o-V zpx`=w7-}lwQe7!iT2X$`G4Wo}{Sj4)j~l8wSg{=)UEcO-SN{MvRF$~0)csTd`@G5M z0uaKwVR99l-hcTdG*JoZQ5YXk5F^Os?bt)q;2e%;H%Eoqg<`?&V7EOoC-%NHc-za6 zyTo;vU*xl1P&O?dLO=J8e9c^HbhiBP8tI}A3@;J!WY%5!|Q$Z zUZ%UwLM!c-T4{GmBH7haMszcv-J>w{Q|#$%&v1%MNfTu>#NFzWk`KYQpm)-Snrm>Ht&`gG317Z*!aWk{S|n%eLbHRzMr zgy~zxosj}#t53yxF)i43t6z>>t6X@jVQe-xacA3Rf~Y$fqiBT%K{I2C*Nid!%Rw@K zx_Uj)w@}sQL`~4FQRT*{)f_({cOiP=csX8UIE$2HW@Z)~64DH>^^xIN+!l7^w&?-T~bt}2T<$@z|mm=Yg{hauB z$HWwdfgoQ}frL(HX7qNMsHr{4aMKxSf#v6yPdx+s$XMh7T7)Tt982qDvuwAK*Y$ir?Q82A zbcf7lb0%9(o|0&c2SOBr*Pplro$KMU=HYkhT?{#=g8iZm-7t=YJU8#>8WI=g%o|*W z;l~g$A|hPoT(>dJ_+{%)e6O+{1<7l^fsC!6B_Pp9s)H8s&ZQjl4EJPSCkk8B!TMyf zfJl*`KJJ)IoOu_QFr#44*yGVXi$j)2bmesLhhrY#p}Uj=YCq3nB(tzK^m+LreMuNy zu;sG8wI7zBfM7y%41OQk8fxVqpbm+qoo=*}>9i9hHab|pzj7yK_9tU!l1dKE^6oJ{ zc+6A}5IfKt9zU(+w{VH`1GnD=@+5hFrDT0c4n&l2r-@cBa>a6=TJ(8}=?d+fe!D-c zu-M$KxEBWASv+t;u3lD{?s6K=(81-2N%auIEffO$@PX@k#tf3^&k&+&ixxR(QOzl;mPirGAEVF`orS=TN18=6;o4=7ler9y#UheWYQ?KIX0n zEjgI>dLQ+W_J5P;cxaOEcQq%&kp%f2_;aM5-}T+L-vMEs^xvB35efk*q?&Btz2sE5 zeZ`4v$UlFNx4JuSTITJ6l?4q(j5bkYrox85u%#~}#op2}VYXRS;2R}SS zUjU{RBF2c^4?XLeb$lv&NL%&G>5HOQ4(oF(9^5?CaOC>K?EONU|+p4OnWG_Cr zipOd4{~SYj>ACP`K){pl@@2ntxE~58KEp=GT(vHQ74`0# zZ|ZvHt?Vryo$Ae~KlgiBM3~=K8mQ~^r#jR3Q%|-? zoauk+wf_sIq`wn3kRAVmv~nqdl?rTi(?;3dy60#oMX2Af{Q0vKjF`^sjdoi(>bn*g zU)Q*VLxj(^Fg_rD&>pA#|Hr~UrgZslN{JA)cyx@|m9j%Mbt3Dp^UXZVj%7_ClLDxT zBFV34+jd1=9R^w($AWgMq#PITDG(vONhf(+<@)&G$0LEpZS^dHp?WrIp$%%6wKlab ztQZEMDZYb)T|OJ@E;C0a_IhvT7gh#fPb`I6GC~l!>Key>xay!Q3+Xs=s2XVJGd|qa2an2J_>xwdfyvvHux2mH*K-+s7*|yn^qcT$=sy zU%uE>Nd0yPdW!<7wR#gsO88OxnK%%eKIfR|<(RAu~O@0&~<3XI3&aZ#!9Ccw01tA-obkbm}ui*T6KdWUheE}&lDh>&&>Og1e!0WxK$_FEj}(Y-Ws!m0IY#7+6(bivN- z530w|AKlyBa28AaY^yGKay0H{!NG;4Joewp>$D4p3BG9PU4E1zCF~O8b`+%d zr(1Qzp3VEvI2cN~&1U6pUzhA%MlQef#$RtQ7qvmcpie9QeR1`?%P(f+9of(s@`t6r z*eyrwt#uNZiWNp^nb?VT$tU6EOD{j@y`qC97`eT}v zy@%UVCea-w0C+!xBeMkA4qAvg{m8|o>0&-2w8RMnK7;Rbi=owqwb}!9XErC;4peP~~an$*H zO-gLodlsRpRu;q_SlD~8-8!4Xdy{0kL_lI`uWAcARw)`i3+|ZJs1eQ7H0b?g6l`#Y zB)-GPXuHgHm8jUD{)oCVrM5Ax_nFLzwU#um_|f%wctU(c(jjbXT^%v)XYfK(pf7CH zQIa(_)bK+bVB`G4V$R%j%u7-2O&fcNaIb=ZXy} z%9HhXyxN}Luig^WD*BA`+~LmkOR9di&|5x43I;O%FM?OgybUiHLJYS<1;gaTiszf6 z?Of@9?!BB>toR;?9J+f5E#lyjj!eMePfb2GyaR9QhBr@3!_sM}in4ZCjAY5?3Uv=_ zln<~^=-7X`UYjf1BWGWAwau9OlljtxvJ0;kXs1((JC89-=`bz(f$S$0@I`8u13u1_ znas}F)n;qjEEe#mGSR_Eov~J(J?5DfaRi!uat3IR9_H>;`?hbVH1wE{A30B)#Uy?o zD^hLmJxGKdTVMAr3WBX2M4#=fn}(^?)hta{k#tOMl06%IvKov zZK%aEn7Jy0@rt3wDC6Qbzq4NL)Ns0_+nGq*Hgg58Xp;EUW(wQQ_jER24{R7(NRiGm zzKa>G{hMk4WokE?!dDVOwVN5!@hyBqsp6x^g*U-}u)P2pv^$W-vkC_rxN(CE2-Pk+ z*0ZFhs?p!il;sjbJ#@xK-?rs@Hrpc|dK>ac5~QnoQEj=TKf%xZySJt5G?-Mk>I*ht zDXGz~LcpphGm<0f3Gg`Z9n4DM3%!-0ruq|Zu=B^d*#xU!>CkEIoN%i>J8^>nI-|=m ziEvL!Sx|n}QzTh(<$jPM=V5bzk@-EA)<|c4A=6UpMz9%Bg&wNtN~N7>zw^X^6+_Z?uxkB7iNGT3 z4f&nbCwGAz&?*tI#+Q!Ag$(S*&Yo2WNn$dgi4d&W2@uwah0lMOy0idi141G|&Qkw0 zReFq|U+Rr<)~J>)E!=ZqUld~ViVRQQ9nniILAhhp_{*6fBAn5 zvgm*4JdcgFliETaJWBt$<4=HkWMdC8GYMjRyS{)?(O21O5n5=8J)^7ULI(c8LNpx$ z{iCz{mT*j!IB}L&zjqXUg$v{H6ru_LcW*j;+cr+~mwpVXQ-5y%UVii_9p@^}U=L!c z97DLz5}cc8nk{6|1r&({m!4EK0 zHx|c`y$?x_@_neI)>`Y&z*tF3x=t1H521sJZl`NqsYg-Dh1N@mmVW?r*;zUHxKN7U zXp?)QRG?>0YcxlgRzWS*{92qYSdAyTPH_1)2ocnjwXi`2#aa^-VxSx^lKPgGSdAFK zjDF2-$~s5Fi{8AXA{esDY5V*_wE4I43SpAW>#x)clnMMDSE1a<_X<~>;RAu;+}>1$ z8cbu_>@@?zv0tA4T?+^W4Zv-+L9}CE^N~t~ZjTS+XV@-AxiA4o_*QSiSdKiw%F|>f zL$w{+PRxUN=}fzY18@M&sRo(ML#(vt5YFB~Gb;t5>a)^BNk;qsLSSN9bN8NudicrOu?|A(q`j*c^G zxP99+c4IeYW3!EIv&qD^(b%?a+eu^FPA2BW#+|<3``x?l^Y6^8Gc)VKIs5GW+j!#H zXX+%4G#!0$!)HJdhlXa8o~!wt=9~3t&3n%WuCZ=`Nl^;|RTUU6(zcjnj6jKi~8pRmo-WL?#p`%F@N4pQkXV=|PDI$dvF#?|)SIQbp-}1xerKD9&hHIn z8lp*yO%pN_oX4^*eaV6LUQ4ZU17*;WR>_q~j{`sDHS$ z^N9B?+L8Z|Rg(@C=QifdUbRf+86}fNeR;q+%u~d0POR?6#jWd@R`BFlDR_^`{;z58 z1eSNODeRcRUzOg;mDQVI0sq0+Wrub0Z`k6+3TktuZxn$@4z{@d*0L}9=@fny?{PZ3 zn3ZbyLf$vqt$2yX2JO*g_h&)cgBzr089&YQJoJ9ua;0}%B25`jv+5HRaC3Gd_sy;q zYa~RDMn}{(H@3eY8o~+vWX&AfTDWiznzkAxaO7dgaB-#Kqky&OUcml!|3?BGfF!JB z%F1;SaJ+9mY*&u`IHLEjC7V}NQ4s;;e<{?AW}*r161drGfJ3b&W(=+Jo#pWJ8Ya3S z-BEEzkL_!{%evQ60b3DbXji7vdH*+G@FDrn8*WF`?Y5#nvHNk&AU$G~BU7-Y68ez_ znfu|RfXxVX3w*d?|F?Yn@3H}`;kWBoMblbXN4F&@xsLm^@ zYDjqjSY(so8T_L@5!sORePP5yJjCBMw=QVS%PQi25iwBCfko)ws}{>w`7Vb>O6q{q zlF5nBo`#2iDSVuOj@>kg-!CJx8` zT%MV?-lffMMXRKmvuDPS?`%^~Fpwq@mIIMQ6n3^h^92b@L0wVgr|tJ&wM>>T)~Khd z)rWFZykQ&0CNn`^;O&ZdLM*>#ja{yMuLsd4K7n8r_%tSpK@`kl=wkoHH^>ZLOUg%= zZj<4NuYO)Soa;2ons&_P7{NL)+Ko_=10k}-rs;Q!`+sK)2R1Fy6k7O@iX>rVD_PO1 zS*KzfQ;W=L=_^0`H?x+PeNmI5Z3@D~H=TLLo{=2+cC~z}RnyEJV46tLiyBp@&<~i- zQEZ&(I&tQ#U0R%5eeR=^gX_fNuE%U#qX42`ajTTbh$2uFn)Irw0U&<#qPm<0^p(5p zS~l+3Qj26M|3>p!(>^?qkPI6x*V!AB37*hES;h|NT4rQ>5sgnVfnh>#7DF6<>=&73b-QCIhrB5 z9gh&?7LBIokhtwK+`%^h1Blg`7%I z2v!_<07$d5TxPEc(avJLkDw@6&glwjuXwv=bPD?IDd%#QTQ9Q$Qt(#GpU>NYd9;+iRfn$#PU<#tG4>f#k(>F&^r+?VvbI+bPlnUD6D=s6i5oWd`mMzXWCB@Q ztzPRbOPXio^+f!Yf;WHv9it6eubq3E*lnH`QyC4#u({l>uV40T2r@2)+UoDpwp%06 z=IVeCJ$b8mdDh8ty_LGxBv2ROb&@1{CEuxTlK_ zo*w5`#<%Pf>Qo6nYxv`MjCsAf338(Q3|0a@Mo&hKPw>jjY)z+eIv88i*M$VmF-@Zx+*1K)kH+5a}Y3aRdhg5~$Ug{1GDXGZ| zY;#xn{6Jef%&q}$__G=z7Y*?V4Ih{GIiI13iFiGo?4xmZ_OnT%nORlz#PVglw!6pT zx~6O}OzDq^VI0-XN}TRT_nH+OUoj(rmQZf?Ku0ct3^Li125(y&wzDVxauEW$l}6}9 zrh}RMVbl(yXl|Z_H{R_DZ|N2@{i0|IhQG8t!tw}yl(4)onr|ldCtv7Kf%|V3lI%`i zIur0A0m;I7?m@eF#20#*K>Bh|@N~nQU^uJ*f`46AE>b5{u=JAmQvrt&eeq3&!x6d< zPk(pZN}u)2>7!`%a+z@X_;BNY>8u`6W$l$Xr;k6 zc0H1dL@U2UtRQ4(z;g$kEDj)C;OLw`dFPL0?ubb~#fI8dL8SAQfx$Z4ps5t`-ve+> zwCjgKN;GSj1<4s4GyFP-h1F7`yf1K4DV%O}&6`dTW0-XMH*JyY55>VXYXoPTUCEnV z5-AMLh`#8zL=7U#-=|olS1gl8FSGHiPB?uz9?&zb*~pbV zO*MxMA1Gg}QO5+v4HSC|^;la^%}q5g`Nl9g^wE&20b@ufg$N!Oaxw|leBwJ7lf4Qy z1$WAygI%Z<;1!lW%KGSdm4)_?UD181$)wGDHJ>5FyY(h#vGQ@yn4%jkDvzo=LaT)G zV65p4x)X{MwBtb7QzdIa+eCD`+uGtsU?!qvHd}@`@gKHdzfxqNIcv|q51pI=y{R`? z*r=iifqN1h#7uB<(fx(7*H$JE@T5mq9g;A(q}~cEx2diKb3{bHvM=M$bZ$Q*zdHZO z1Hob#Ji9@A{Y9+R~N>tJ`Pa(h<(C)`9`!S z=01;Y-O&~3Xd+PLe<^@*>bRZoH|Ezx=FLVWc(gY14axUZhw4o>X>j<3C|Y>hzhY*^rWWLRtp zZg+7(?#746tB=wdvb&W#dUHDCMAi^@Y;`?|0$YZbIrpMY*j-B8h04 z9o&oVdS4TM?ZI{%cRSEV=M4Vx=vlHrkNXD}@A3k?e_e!)H%ln;23ji+dFwj4yp!y)FOFxUZ6;C8n?-6rp(=O(?9J8K8Fj%8a z7Gvw?8iL^}nawNZv0XnPW2CzrQtS!to$jmbZNr$=-7eDv2xTX36ez zNuqWEmYgp!e|$s7hG9iUA0=MZVX5c&zD@~C#_B{k%7Nzp??yx72uuV5s`j5uC1HO?mXk~P;nMT9|XA&d5ns_n?%$Y8} zao=+^_xf^$$D8swnk>J8-LAlxfD%44>yM0-nj)hOLm^mBd0q=eNW%}v-y<8!@{CHY zo-p2jX^ogPKc!YaM9e#U>pSA25MCE+syiHM)~K_GPw&G2brxamh~^}$zcw|fv_GF5 z=FG{NeSy4(T40?%Y!uI1+XOCb`A>k5DR-fuKftZ)luK9FUz0PjQN}q5M0;|X5`Y5F zRZIL8+>TXUg{A7^F1NPPrT-xPet(ZU>Zvq5EJ?vX4R2(DAp(70b1MHMtxC-Sq_Xlz z1&)givu>_!O3KWttlQt&in<`>T20D#z`E&)PWwBtRZ3vG5)!a(oHFbSVIWPo@WgcrwGwPd>GCR2Xj_ z7)%pw_a!HX(rii!)u)FcN7?2)e7&wW2(8m@>oOt}j={zdR4~I3gNKKOh57wByo0~h zoPAXDvj}md@AovYM&qOOl_z|xghyW3NC~EBkY@CO6{vc`7?{fR3~j(@UPDBk+f@a(3O+U0BquYcNz=;ZM)DB&ADD|+rk$N(Xq>vUJI7V$is*rJ- z=g_KcevXaP-wF2;D>+L1!!nHwI3O#MM!5r>a=mVOExgj}V=%bC1#&f$q1hea(Vz0) z6Vw5e24k}*WLT9~dmwEJORLht>X?aL1N`6KEW5NVP5w$T*a3ji4bCQP10I-{!1HPa z`w5420p7HqxrPLH6Y5q-+86M8ny)uhjE5WJR(I7`n|ZCg@58!5&=&ybZPM`$F3p6} z+dSdDr3=A*qo3vRL5x`!3QDgDHY$b5KV+|N6~gbUZ#!ON`|}hlMGF&j^SJr?V#&29 z3ekUj&NIH|&>tM&v^h9?h~6fVcLqmL%jll-!& z7!s3V8R{n-US}eI2;Z~j%r2YJH0H4%PrsTPpda}S+^i4%vGBlf3YIi;e9SAW&NI}i zG<6X51a!_E@m}Ma=%ccMjrC@=KULUNpwkshy)KbBBtTvNWQ@sciwC|BGu}?OswUme z;UebcZvW{~d&R;`{;ug(JUT7gi(d*lfh?G3T%ztJnK)t~aM(nR0XXu~{nu$ff1RDq zAKhnS1-iuJr-1B*`ZzQL?<5gx^<}d}oI@^&=dzO_;YM$jiu-L56N21*uZB~I-@?}A z;5#9&?ZoE`y~jDwN!2LZxTgzK;O7l&?;Fl*|0z!_V!{Nj)?4XE9u9$P<~C@Mf#VW- zodG#=*;lKl&qzehz~t4$3%7GZo%a>1@Hig$(yb<6MJK9S91`iY@SwW43hy@#Ue%>k zR4;?8Lg_sdTEtoiY}OVAzPybDu<#sLeON!4D%#zF?V0d{)r=&xo^@v3Jl}ju@xTUa z($3a|;#O{8Yb|*ihRXGUyvuwzSFYJrFhaHr+0xjhP~fT)imAy5#YyY%>Iy#Fp>AqJ zJC(kyZB2Cl0Hm&**;5nRhdry&=ev^4Y-5G-S&eV-y!DVTih$?osHd3=pDDo??HN_C zD~|kTsYWV(;LkdW;{>Jp-3E6<-$!)$3kAw~`CUSO{@EunWO%VblTRGd=Rzg{HJqlx z^`JA1A$M~Q9wZE<^@<)X9l4R*4a?&ql1Rl5;8@@+lJHhJU*4dAZb2ViE0as?=!u6Lr&?rubRiEwef zedXAU@*np(M_Wt|j&XQvyj8g{*gwp!&0!0UeX7N_60y{+gVkDe6-7J~j04G)1DYSQ zM7P>JyOx=<-^iiO8mo;=MhMLV)MGN#<-YX`L<&|soj|mfDd|x-6Ozy?KtvWh*Sb!i zrUm%xsqP!>`bomkDHJ$QerF>NoFpaZ(TVF_amHdetkn47n9BS|d5XhJQLaw{3F{2- zvWYf74{s-5Y%oJF&vz zm<8};I-z8uVGs2JRU1yROx>*VIZtVQ)_aEBs`wZrjo6rN zcKp$ss*G8q1yfP80)}VUaKGs44Oe}5_%#kx8f0S%DU(Pn-BB_%Cf2EK0#??cGT;!~ ztGmLzkZ2c0c`ov|YDzR3s<#k})`n5Wxu^@aI3n_3_3T{Cs%j2?5}@AMCH(3^Jj=o)%vC^yp8aw2JaGSExVqAcmF6*Q}=^itiO+D+W`dv zTfEKuLBNSa@w$ynzn*EWdj&- zz;=WsP;lIe&vI6(oF0Hfe!moQYI|CR+Ht*)Asp6JfH~S@cj=Jj<&C-K^c2xGb&1kdp)iqeOVaqjad~6MxwWJCEirouzsec&)kPPr;I(9M*c_ zFRT9Ts)_B$c-Xx@Ig6bg_NzOuXgl>l0+kiy_7GqH?xCa%-#hdcTdm=IZ2&hR@y7pR z)9oB&b{1zqdcR`<`|dHi)R&{_9}x1Ds^1YZPvwrbFzaqc*H$(wgpKZdd~U_vw^kEf zccY8NGUu{iu}ERF8-p_SI{LI28n@@&cITX^@>QeBI>R9+oTt>G8howIF&WSwnq8>* z_J!kD({<&d@?S!lY(D7KO1eMZUm|eX!v6gEGzCJ$W8b#ryu5o0K{h1L5crE-j@WC9s=Mt+Sk~sc!VXo=frF;L1_gvP!k(Q#+7))6&zM&1MSd!t zU4j$yFGVqJcTDs)vJfLy4hro)kXt?;FdvH>6@2pkJ}p=jN-xnHg=z(oj^6JnmL4Tm z4f=`Pdfq^oRF)Q8S%nTeOa^bah>)2X{B@0e2^%RP)HT(L0c>p1yq?J{wo`RSx+EN* zc3M5u0T z?gt{_<`SaK>h=Jk8nY*oE^QSVWg8!78@_$F_;Y9U+U*+=L&|5=Z8X0Th4Fip^ksVd zC8IUb&F7w1UkbRU8g}g+whc9?q=Ekc>fPv zrw#fs-%CvLHs|ShyG4|(>xboLhC@b({?6H&B7NsYacgUcOt=~<$%%*U!*I6ad1r$= z6!}Aro}k)^RyvhcNludn47V1%^$cN00~DPiLygAX)R>=ar3mS2n&4?5R}&UmfDRHE z2qm&-Yu$O+ab6_;tzGgyKF&+RaRX}h5FX45#gz^axWa$now=WDt@jfG>NQgb)KKqY zyX&xGwY|}F%sL!jR~QofKbNX7K}kk;f=sm6&<+J2eIk;VCq-s<{MjqmrCO;YWmm46 zVSyr~x*^;)b!>B@>0IZ&D(#%4Rf|EiyC+RNEU+fCvT0BjX=m7N%hB1MK9ijlcx%bW z1c}D%jZbP51xAK`3GF@_(a@`&}FvXk&~6qgOD$Ljv=nxOxr3~hvfHk z+Z6;&-o6Jbf>*&aIOF#PiQ3)vVeElr`Y<@z^rV2A_wv9^Y2~FLhH2l8y>V-O7nNV@ zZa8`$sT7*!FsnMn?N?SnPS`MDR_~DUSZr4wh>_5LsRoDb?ag|itNqkcbHAo67$CYa zSpjHnUOO4oZH(@G2{VPk8$W;85Cu874+h3uj{QEWl!JS@;x*cOq9)Rbp*-e>MBO+v z&bpYJSzwK2d5-p^KEnrE0~yX@~SxGIz16r1oV4x110@Q+OYf&Z`*{u5c^$TCte3v`2|F0v%BP$TZuc{Z}T34 zd+BlI)a>f)HFA+DrbkV`r)8(iJ(E})AiHO;#JsNTN+(4Oq9*kdKcRCn$>#XL1?%F{LW;2HMB*;+eM zp{smLA`OxkH$uJ-vt}m>rjtjB?mc2+kmvly`(CJ6?tE?-?oebr`^{={HeUaHFc$J?ngOT7#n$6~_v#|A(38#Wg^7-aF8ENu%I9y#`S4Il`MZ6$-oQP3)<=CAQxv6(F5|Dbp-4F2YR z#gw1yqT0z(H0)@f4~Ht}QiYjEw@y};QTYqzv(ehPXGSkWfAr56;>D^T1xg>-bTmAO zjg?u)b&V(Cw}xTR1!~H;Ztp}j#!tWMfrHbdxxAus9g}GvM{t-KS<3RiJ6<_O_VMc2&2s-G`S1Yxcb> zMiQeS32->%fuaIrScOV5EGB$x+7;VwsjFU~&(oyXjezam z-Gq04p44V3M5&2&M04|KXconN7}{YVI-F^iD$UA>dY9ge@O~66nx-zo6x!spMp+t> zZJw;ikTu`#vi;W=sjpJ@Dv~)*A|VJe--V zbr8_S25Fc@Jbo36<$d?2C=M`CmB?yIYUzr{HVh@3*NS8^paKj+q9kg{T9{%5?YZVR zZ~&wU=m~B0g(a2RTvFg6%`-V9`l?Jke`9y)k`z!xSkDoWSRFBeXTgQPcT6fU&Fo48 zU17hG9Ctmma;^IP%C|g3z=oAQljN7c?&WsvprY$P2(ve1MZ^CdweXC#XvQ1ey_Tqh z*IWaNAr@PNmT%BBH*>8x>L0u%ZV&yf|GjlPiVknY5`?%FO`rFOk`3mT4VH>b6v{5=w4lmC)_%Rz{OAQl`!=3MXDLa#N%nY5*X5Ch3W za(MMW;)WAVU*E2eOJ9wh%-pe0q__MudVDq|wQrJJq|M)*1sZ+d?r)Q5V z8?ZL>GjSxOz7!{2v(L9zDJxgeEVNc#aZpiDQG9MBp6X=G)^rXgoY0T>(UU_Wl!-Nx z_doWMy;E^~PsC7@=2BS6q-NqNP^`Tn0$W<3O&O4RHl{Of$3mhdEb?jiTd2uEuZzGAqhdVm;e*!YDZ&bfM~ zwKBKOt6v9`M0nGRtb9%9AChu`R8lC^8T$-BM2qDj7p2Py-i|5)G2-74m_&`4qh9c-H?@%g?@xwM ztg{A6Kt)bd-mbs}$bptQQ3oAu0;x@HaiM&O;0E*sBf4CQ{~f^Mf0B_Od`B{_ZZBvC zW`8-Rkr^7lH7iDP(V-I!{HjppaRz+mN35tdbhQ@(Urjh3R4q~* z>+$s8KmXk&Mnn(#jJmn@s3sB6h-5iQguF%QZ%d^FF@GDq5PRe^GSC2i@9Iv|!km1A zKO`;koS{Y0$c4daFWkMWNX#O6ctZiBfrI-Fk$b{MdiO!+%0fd6*w{uM&ts1uL2Mk6 z_Xc^78)l>axxM+^V1v@fq;N1e=TSDIl{y^7|660l|NSb#|GtW6Tc@vidN0fR_zxMv z9ecO&W5=xb=5w3k$F&{qo9g8QYxwr+>47T)Qn{$mkE{5R;bB*K)6T1?)4siysHB;g z%ieEUzidXh!^Es8IGLsZ{_hyDiT|u+;NywmKZsEFinN3j#&J;yG0C!Nstsi}b&Z-E z*EL0Vb9$=I1Y4pu@*uPWo813RlIW2ySa}5(>*;^!y7pfYXRxNDnXuwkNCQ^*_>5Ict*nL8_o+g1}~;BDdy=goNy~9HspKz+^>5iy+=#Jg0onvNk*BIz4J5i+?Xskc>)> zBz?`$`*eE-zvTsKLg|gQ2Ds@#@orO-KS8xb^RQ0FaM}0Fay8{&#fiRJ>oFsHE|Vil zl~uLIy1q`jzJm8Ta2f0dcl+rTXix|SZ;BTKPFLy&|4i~G&6rW(W4x@i+hf{fVD|#l zK)~jkL@cTI!W-2tKe;WfiIM3n=?wm$tj{Jz)h=iR=|7Ff)7P(qlOGpPt%=!pLl6=u z7BBO>vym|Y5Z?NBWc|%}P3B>OX;=`&arxfH9addmMMD_vWKY5$Y9332Q}zi*o${4n z_Rvqeb^1%EKO+$G$8_1r*I7W`@MjMhS8qyVXGrFhg>tKXpXrjdM1p4H={`J-#9$4+ z-%i`Xd348NOg~w9yw-b6>ygGz`<1Zr>#2#ng7-v3xjI*x5L32q(arPvS}g(DBOu*= zes=knq?&iXNnj{KmjRf)ev6;+Mt!rWifX$6SkLmIpksH1Ykex#uC zDz9cq{<7@Qk!D_u>Z9|6(#7WY&M0o3_rq6?Lc)W}Qy;mV>27A7y&rt?+5j~+FfMe^ zMJhTc>+w5>C}{hfCp+gXX@z%sO7Kr|$ePCBiOa{}Ebu#UNH*8xRFU7ug7_W>bZOdk z-_b!}_->J1)5RN*aatS?S{=6Nx#@FfAiW$9fAO&=_(%7B;!5FipkQKRGBh!9!9Lh<*)p0hQRp8We8*GzcU!y} z`*&HRyq>`;FDxomE^M1y-67m4pE$Nuu(Rg+x*p!^gXJGmv1lP$Vcn-BtQyQN*g!!D z@`!#^-tm8Vj*S*A^U`{pkcTV5Vm_Bh#z4jJ#qG#}-^Eo`u*qx1=ZsENUd3_;%daA5 z+KkBIZDejpD?yR?5BJVG9Zht? zxfJOm0z}rP*IN+I+HRSE$W>9b+xd&q4UbRcEVoPmO=HA~KnMaZS80)%P8-H;% z5pIrmD_pOR$*Gv|wxG%iuCts@+YIvPcM=N84iI{hx+OUXo_whK+suXsxM>r(F+KC-;JB&QlL z;iL-=hih*mUEX5CX3s5k8Y5OLq+my9uFenf`b8;!RAN}ZIaBl1e}TP+A21XcIY`7? z@m3T{rp`Y$l;1Yz{;*#*wY1KAcKzHQcxlnVV_M2D;-!P*0gq=_DDGQv_Hs|2rLh~? ztV)B1cULIFdc1q&{hZczc4zsrtxx!>8@X8j`ja*>P>k4)^Qw5Psuf6es@t8+(~aJ% zklRc9Ju2g~&~f|$Cl75=`vHvD!^D24h{)Ib)yao!n}>dzN*ZI(^_}pL=(pHKU@F-_ z?)0wFyz9wEv`S>$v*ZCtYa*_X78X|V8%=+Cbu(0ZpNLg{WEwYzNFmZJ1aoQ(UrGf` zYcu$cc2JzZ5cblPtQP#j$MWSLB>6R(6wD~hxxVXRHb6<+{z?2=p&m_`Z+A|yQ^Q{8 zwnm>ogJ>NXCzOpiv`s)v$SaAD7+k7(^@;7kt)!jr;(r$K_)`Q+XWIj*AjW!6PN5g$ zSoFQXy27~K_5eVKDaL6B#Z|D`$kD=tKtWG23xHzrYM`R9dW_ng4d zvB}Weze)yC$AaG7mO!s|)FQX|)N;)05guzxfJYpTvEZEMNazOb<5}cN1HwC^KXV`K z%LjH+>E-pnx205FJF$|9^ihJo_)v7&?!3mNRaFelPSkqEkdoo=f{W+IS3v&)WVwDh zqr#>($jSk{&V$}8>A+1qC2gcPKRuI~2M=+Ac!`VwiGlmOGb+Wrh)7B{ZO9jJ>rDTw z$zVNi62l#Eg<9{1#>f4fC+RWu5(hPO{_88Somunb__U&Tg+%yD?7@Bs-nrvKDsR7m zS@BT>6_s+7Ujv`R5sKw`aHra7*R-Ob*SvQsPt4+n!5bD4Q}s{Zk3ZDXBiFsuUo-o5 z`iYOlj@RUh!;=VzZhG6H?Tiq2PS#9f3aD~_FQ|3AIpYY>$>)$-oqgzlSMcL(D&`%> zp6A&NvvV#7X`!#sgEMM-A2XXIAA(+l@7H#OFQ)8GBW6cadlTp(KHBVj-^ywqy29Fn zi%|-&3>sV0%8bFZ2n4E)$O6O6oCb3~p5)5jP3p*$pJ=+ckk;*YeipZr&(+JDHQ|>i z!&6tJwby5Fzjw(;cu;m3E28qT=DCiJeT zJgEm%ub&+sD?vl$%%9en${^tI&)(e2+hbSu9wJH-L=G$k)m3E8b`B)4a?h;FBKs(b zchd1Yw!MpNVtYl921nZ&oGKzUaN3q5q`U%-`2Z+OV$i>pB`yl0<`p=0jU>O1s`>YD zhA=7hiXW>+vVD&vJQh_(!Z?^zdaAU^L9v74&LUMV&;m&GTyGAS1FUF7lIaY3M@ zC;1dUD5~Q~|29NRO_w>AJS(m}qOxSj_|!uy9*Ri()245|l*mgtn2L)#m;t`yCUw|w4z}RXhPZt-2@(Nk|4HkbnNwIE`WIF@Hmvw}Du*mL|3nOm zR~DA5>h-_t4D7G+?EJf})aG2#>s`sz$l5)7Jawf!8a=TX;aodLs7^To99!8Uktm9i ziE*2AHk7n95%P1#v^kd~bfnqD{2Eli2v;{smZO7qGg*$`ybf21#z2oq(IvybJiXF? zSdzVWmGNoK#=6(`MU4mt_$Ddv{O8a}<^w z`d%Fu42HPp&h8{Hhi?{{#)Zqt>#FpO2#Ij6D?;Zbjh|&Wl=*2c`E727O%&y};$4OW%eFB=c2uIc2;txl~K{E4~6w1y&|xk@tg@&OL&ch zTo+eTt#hW+a5}kiq~9y&M@JCPZbirz{sa;Is)_#GiIP`Y__EUdff7usslcg8U5X6Y zi}Vjcl~J(wOtx8Ib#S=krE+MxSe4-MW6C*xl2Fp9aOzF{7CDGTHTz@ z*$Hx5W}vsoe3V}v?18rMVcS%(#kmDW?zuC|X3K5qy+$uwjn#33P?T`>MDIGY;`m#s z!kR#!6Nq_ z;T+jXJ>_ca%osFg3uU;v*u+Zz^{Je?`H60$Z@ZpTFQ1 zZm3wcVYiy24xrJ>`uji|okp;#J?`WLUatrI*dHF&2IC^=eLE|(IUQL7>zBx~N+c7Y z{7p*0)Y36ZDH^^!26|1g-^q9-TwT#8e)&}CVe+``DCz7NI)+DXOf*bi`(ueUf=v<$ zuQc=8qRCFq*fG4BRve?vu%t;d-umCA ze{PK+PVzA3CN5t&_Zp745L`GWS~f%iJY`Z<4~AVtLEl;dU=5MsM|Yijd+5W;GK%_0o0ahU4Z(qIhN=%ze--=0CDE0 zMAb4SRKohTbH{+WoxHZH#I$GCaqbYN#&=uYP6jUn=s2vIaL@z2;YHRH`VxBV5dcl4 zC%R@`L3>35COck=irb8D=-6qkoU_)4W334zUrO#TmGD$;nxevxVCapRRJq{m6iS95 zrT)qUdB%EsqTAY(jGmj5e@n+^!nuH;lL*(#1G>C|!pQ5Bl)MEi8SIX(vO@5N-OhK_ zz+WL3%cdl4;c?bxf{nt#&$k{ZE<)sqS`RgV!t`xaz9ZgF=v1TNm794wUPSqdpC>!B!)GcNRr(J=A95s3!aC5L`OV}Vr`N~}|;@LS*NER|8IrVs0cAwX+A+x&?Kzqh_L;Z+%xsVhGIy0H9GPEtJV_GGPNP)VU87$-&nkfoWraRrs#CM%Bt86uu;}Y`X1}HQfWe zG0-&f6!8VKm==}r+Et`^(bKfEvyW>8W-=MsIqEh5-KOe5uS>9Kjy>M=Gzxs>gORrRcW0F z&^(i4HwnyPuK!uK+t;S%*~5`{#}kE-9!degn^QWc_mrc%ZmRUWFp=krvV5l-ZTf|t zP^gaylqaj7tv_7#TCrf^tl#VPz$p0cglktXC2s5|nyl)_r9*~O zst-#U)pd1SE?9nr|Dv+4e$n-?l~VNaU9}xPy)RPrhuhz{{8xX#qNRoYLTn@5O1B?` zQ84f6mBi}k$uYaKtDyVlNxKdfQof~C4%kXa6YRS;ZP<3;)F*XZa5b;l^d z`AzmulNav=JP>D{)c?l|T;T9D8qr4R-Xj&w=%~clWIBs8W-jw=c%oP!uE^ zDlqFYvmSAGsf&cQVmH8{P;bUiDJtRijG90cLOq8ZDfBJZiPdIp&=+9dVRB2t;euo#QJiQyrFD;{u(xH(vP#vM51k0=Q`)#NC|N%q`b7nZR;P$@S~6x0_*H!r<~{ ziHyvl`!{v_MIK9MtZ`7qM&Fdv3`%4`^{&2YZkC55@V+7R7DE|VMd#I|_% zj6V06vh1vL%gaA?0;R}U!UDc`9=f+JaI^C3_lMc@y4S%av%(22{O$R{vz(YHlr8Ne z7ah;^J*glUt(7GIoau1cDL`W@YkS=eF7E<=>u;V6i<^rUiVLp;#MHV*fT(2I>DMv- zr+^=kZns@m&emr;bNbck?cNNu-JaoLd=5H(W;%f}qmkR=CZkcAw9A&^g?fTt zXFjKe_b;fLARa>;U%aqEMm2_kG z01Sgfl4DDIiS2S%YBGBL#Y(v4e|gDpE94=_#6l@Iip`WKP~Bm^au0kXIcayyWW82w z`M33u{J+u8S485J`CqKu<-GanS_BjLrF4cPJ^K~B9YL!}+}c(EM7uWdHt_Kbt(P~i z0fV0BmoKnCXo|Wf!$`F`a|Lf#D%tTR5zUF2Rg$lO0)Lmrr?XP$Ihy3D@#ozO17T_> zavV{z(M9DSn%)8J=e-~d2I!@oFK_~?wGHe@N^h`8^ypD_a=cey<2v#3v=q<8(`BK$~Xqun8$*ahmPJk%aXj zpCz|qz=wEk=`-iCifvgJXV!0tgeZd3m)12HNKV3OtODgvESG2uBCG~ z(k*S-+FON+r|Z%2^KV~j8-wyzVcg|L`b(5@YdGZV zj!AXB9MHzFp5wAi`b~!DvO26Vb>)0Um6n1G8Zhg3`@AaXtxpZwUwgb&N1MFI4l5~P z&5E}ZO^4lRVZG52TEc_ zQy1UH(jK#Leeq8&LFW6yG?rRKq*>8jOP5n#WKJd71h9rJSu8=!NsL4d-f$MFMnEyyk0Mh`!<%s;zW)CZ z^^U=jMr+&l%w#6ElZkDclT6sLI<{?Vf{tz5wlT47+qRQ0v-h*#Z~f`2uIj3;wQAk> zh4VTOEOQ+UGRa7C@e)x0bGo%hMxnd4;mxy@$MdSjG3b)h}%i zv^z|o^XUE^uYG|WhAOCWJEykldWpg}#$m)QKH5 zPI6*IUzQ`K#v?ID!AL@m!j9%~TkYTfxP!u%V7k(3XR&StfLE4P%I$W){Vu|rDyX9N zB_QM*ytrrxmkG{lY+V!(0MB`q$`O1kz$s+-U56=iyi+iekjW=66#{7!H!@PB>xtA} ztPZ7g4j>}3GJrBRHddz9p7Iq8T*C`%_+Qi$68)dXai>4UhHS+#)3E+Dd$?1fpNKgO zT_Z{^kYmn_7O;m;jT%qo2cQn|9^M_?bci^r z7pv8TSWeLF7KsFjf*=d;$ZT}1bq@x%a=doLXN|Nyq_NT(vc|EP>$~7$+A4*ni ziLFd2f{;9(vc~i%86OH7hdyZa&YDAlZiKWf|x8OdPn82*8MQIk3 z7*;I*2og@%xbC)mBKeUz_2F+tca+-kXMK%lp0Gq)m=%~J31YLcTD45mL=??N>ZT8C!b%n!yUS5U7hF$^ zp*_CpTiB+iqPi}dBd@kU7_VLVEhxCyXq_nv`=7I|{ExX|vNz}FnX1);^WRmzfZ-_J zBL;X-pK2pDBeuT#L3|o>MCSIksw230&Fyptd%$AdK62!)eHR5Abh$)kG=w+!OQZWC znPNCDj3!nH#XfW7iwphP)%Sf~>)CmGUkiSo$O@Arewt!A_q_d}&oG@Scr!_opk4iE zd3V$K&ml}lJviPF#3nt@?X8madYd+NKJ#Il`M%=m2C2BR0ezdJsPHxm8!{DxUi2nI zqW!iPR?z(S7B#4lHT5Z z`?)L65?Y3S5MiE-MpHVGJj}Q_Xy#?Sf0~U{R~-{{eamtf0^gBr${o3~hpH<>KYo%- zcy;S!8X)vw%IofC#}2vo+DNPi6%p`fND)QmY%`1}$|K+Y2z`!;=0RYB-J8Er4&?d{1c7#j4#2 z^%IDZ@!ruRt|0#PWW6QQn4OY>Jz{t6pzw3lEihDu?xI^wyZ7~ljEVW_g2&O3?aD{( z*vWI~CDVE{s|7{B5=S6XjJ|4Kw&w0T<+>my2! zO0PI|dlo!_!l|FKi)uEIx`%c+#!v1SwG}k}anx2idNs?n85yV|^b0J>BY$sVx{m%D zId8stpQisvQ<_^2%$(s|;{{`eU0YiVXQ3b@)X~vUmpeW0|0WD|bRKnno_3zW`Bv^Z z{srvYw)5|HXZ{wi(WUD96WR9$UqbEtF>QApajn(r-#t=g3{y=h zo-x(~=9i_3k;ENqJ~Iw-O`e1bn^JavA@Q5_?APszZw@k@cmrJKVPGxsMGy0pTyy`1 ztW=Cofn#HOIa_c&{2VX0Ga!hu#a=Zff}^wEUaSOn*nht*Jp=K+afr@;j2mqHIw-4PM}Iy-+FU15(@O`V~Puo&rm zcf6bms-xu{e~8T__v|LZvp$iiD)#+)(KNcAAF9&Cl6)9gz+4faG5UcHSq)4`>|XMG zX+Bl=Yq=tH;hyGfvLX#EmVOJkE5j5$*fp+hZ%5-L<PSL z$YSX!)v(k$VmC83rY;tTONYF67twecMpl?wSOpcWdmD?aWZFcQbGS-{bnE3q=C`o` zlW8l)^<2NCq+{aM($5ju;Ht&zSaG{Ea+(h4JCCxoMf;$&{P5&U8|#z=dSwjHF${-y zt)y__rcdY@6kLBQ^0jQ9}VKB$;Or2s`jH( z>r$IXU`(0J5S89o58odfk^g5e)Ja=&*a`>T4!==>J4LG4t*Rk7)J2SXv3!8;_tSfA z4^Ms{6@0%qvo&|_DQC__pT0$MK0$f#Va>PY3I@+R&P_4enbEPEQ7iR{keTiwOEfTG z7Lq-iO8j6n!?8@IIUUT)`DQhU3UiiJxhIQdpiSY*Vz%yapL)+1!F z?IuZ#PZw4y&uNWI@xC&maR0QxKbu6?!zevBCgOCKo+IR}9|4U3xXTlEZ1V zy^*Bu66#DlhMObC_sA=(l{}(>3-KbZ}kg`2q@B7McwjOyjr) zJuuT!L#bq845QU^-Dv zcI%$Uj}Y*bqYP-rayy27g2?Wt68a&wU4-i?(l1x3|CMb+#jO8Gjw|kwE%Wb4b%!Dh zi`@yUV7y6~4-4K0m#!9+KcI(6$<6H6Je9)WPK<>qlgs@dWE8)aaF?b5km z_SDW#bcwnym^$6rLkENjmgD}uo9Wm7yG0GETc7x%{WD^r%y0U>L7mQ&PWmQKZNlYZ zwb-}s1GO3rIGdMr4`$pHQstP8qydAn#JdGZgxzLAF|7{oY)xq@Fbd5MI@BkTaY%DQ zLG6UJSL{W+p=jbaB4~zjsHicS7u}eLqE(5=g_#l4Fz%dbapGFyq!u|9;(n2u_Zpux zErW;i5f?|CU#(*4tq(Hj9{*Ct&-G#csaIuFq1PhX*}>wF0OV_i%N;v#&;m6GyUvBx zNOt53*%8<88Ed4i$!I^mhfLob`l%_@Pqmx$5L;i$1xqjc1MM0;N_I;FCR1o3%WY=4 zX);oD(cp_54|9)a=m4*l6PvRcGkLq{3P4+pT=~c;_LvknDkQm1Fr)=u5lHGxSv?Zx zRL`nPP3yn(JOWKCn)*Z}9q5E;2$XY0QeBEAXdWjVFi2+5K?NsU~Kb4VC<-kDcSQ#%j zrX}fBd;^bT1Op2Qd`UI566$szCsPU&A~<&z0+PWn0MPxv`@-~*`?)dbiYa$bxZ0(a zGl4o=?<})jil!v1nHb-&lD+W=A00&SiKrpg-?_>We70LwwDW)EKXi-QeRLE2i!uML zSKR;P5dX(^{lvF>GyXS8Z``us8lqj z>VaWwa`JD1V%);IUt!8$bdd;M%+XL2<7}Vxuz{^8-rCGsM#O-8-)Sal<2rU9GnwewxD?M}H7uNegg1Ht~ZRq8a|xnE)bEQ{fJbEEESeScj6z>^;qJYIv% z@KeP4F8ax3qg`}b>Yg8AlMhW_#G$J=y{El{ZyNRncuTk^a{EUg*?gQlsW0QVlthNm z$*CO&thq7&_&i|XYuoIh(4N=``nPg1@uCLUdPFT&U+fl5HC?I`=}O&)Jxv32!!1;F zvpZV_@5@QD0gcXWI=)sNg3L9zkuiiP#<|{@0hS#^ThbEX%-x(FJ*t4pQs*I-) z%4Qn#)klsMp@Gp(CdBSCdwQXk!iCR-CL!`1&F{v1OG^oiyrs6gk3Yf$o5Xu$CbT3w z=uWBP0YN5fkAXh`F#;Emd4GyaA zIr@+!aubD0%t#;irDvXm!xj#70%>Hlf^rKT9_Ju`XWD7?Qbr;hLRRlU1al~%buS65 zZ=;RhCcxoi9({OPmL8s{-(ztx02@;N$ zbHGHfR!Dojw-O-;f%7AY-MFL6N@STPt-2dSSCX@hzGz=Wv&JInB-KdtXl2zQ674og zdEi%4wySAWQylqXa7X=iIgVP6<~P`iqVL^3uUB#_lw#Zyu1F0ymZpVQ&myF9v|VCSVuVz+&YI*>A@Sz1Ym$j(ud#$q1X>Xe6bz6YXQ_RkR#g-- z?Z8#I0kXJxqK2bf4{9_Ar)!^XUN0e+p_7+HQRKYTW#4ad38ltze2fVuc*poUH;Q~W z${@QFN03S z8#>)K4q9P@g9IJr)T;;P;G1D}OvP!D1^7m9QZs%JNwrxjQ+u-s@C8F68d4$}_`+Ka zTaEHQ9VY#0ac%#zICNB54YR&|hqcX0gDy(O$LAcX@xs~tzgy2|tbieYd|lY1_q>ad z7zXEHm)(%tI=AnwKf{seYoThlE*7bGu03q3pmrLY{FzGEV!es@6|w!)M=>2z_#H#P ziT~N%RbBOVKbhNoQLW_0w}8*q7i8B>I#zY`;5Fq;>|=Fu*#D(>45|Dc-=}rjYo?%w z>T1X$mRegXlng^OdMGUJg`P~Ata3vit%&|B|5*3Y1?sn2-fx>dGes({(dgRNMYGV} zjhNBk9Du{Q1{!}Zdaf9L>YTu@Km15rx(gtwl1^35CnC7|^Yu>th~JPu2yx8ovt}N4 zrqZ~_eZ;M6pNpNVo;m>oe_6}Cbzu%H>rJk2iCLPd<7&p#m)?3K%Q_z@j_~Jac7MN5B=*;@a>9Yp8ndu2r$_V&1}i1B3A7$({DG@x@30c2tx=LAFA!P-|X zD>?2!=uvn*cmU;q$>j^BStls@(Org5FTYnm;Zjs^z-r8Yi~XCdGHZ|dfw3yxSM#Q0 zXCaP2jmMTB7YAbT_D-U$iZQayUdh$#jQX}LhrqP!rtN+PD+J|*(bj@JRh5`iHly}uuUdZ#5T7gWrtRK3mo7c7>q6(#$4rY3*DzW1 z4W((>W?+L!@UTiicKe>CE_Mj)?!e=E>`vO?Q4c;D^S2k1!ejHV+78{(uCaWUgcg>qo5PMll zxDQX~E;ktdn)o+n__UUn)heJzyuW|Jb-Ue<;^%#ibtM~1@os3#C34^b zyfP)YBXX}%YT{#APFbn@b^Ir{aVR4)b`vCh|7jfg z``6LBM09=37jOkGWy0kV8O&{>*9gUX+Vqi_Iq}DEw`2%xSM>ELSc|%^+k3QCnZ{=a z+SQ!2VaLD8neyCRujCuY&c!cNu@snn!@fY?RUECAt z>z5z&91>j|Vi1mD2<*8<{P62{EBiswUZf_AIbYys}b zC5jp0y`*wvy$zbZQ~3$qRNZ9T`-(@CMW7F~aP5bBr$$IQlRnon!NK6+;<=``7`-ic zKMCY1Gt@ruw6$Bf$j%1bOuh%k0vQD};UrnqJR3qvj971qcw$eXwBDQYjN7(nmU#5^ zxJ9R*PL19vrTAa-A~E1om3TBYa*$l0wc69RkL{#!|3Sqjz^ZKxzUIiWDK)3la_S*r zdC>|twqGVxxz=tG#R5FHvZ%x=+ZxH1eo&se;|m>*>8K4uj`759(xx<{uH`t$HQ(3rm4;oPuo&u_?#-T`nKH?7SCZy zp#WF>bj=G^U4@$K{!C(oBewN5dCY6|@w>7r6?f-5XvdUKs4iphmg^|D7yj!VyE65(97y|Hye|`Hf|8I|wirt%cX*hrs}Gc-YaMiOB<1SeU`BfXp7Ms# z`2pu65c-!f6*Yn+BM3uCbA(Q43q|r*I)Q_7N090@2_1%6xKOOA(0XkpI! zSLskV3AeAn=*)h9n+H*${OKUhQHfb~3L3;af{hSv;XVn0qYID#avF4d5z01iHqx1> zk8mBBd{;DvYs|lq6=j0Z4)sk3&66pKK{P?@6*awBx@j>kEF5Ufm%k60wqt4N^gT%# zR(^YG)>#KXj_lNI^2bp0jtOiP3Ypuacx<%*6Y1-$Caf$GRE})S2WQSn&yFk`5z!6o z%E*(p$lu2}uwPRUHTob-6fdHz?Y15u0O#>X?nUk>1A+1!YF_WyHJ6$GwMg zye6CFm;QZ-zZ7reJT8M{Ue4V!g?%EYI$e3Drg^YI1CNPyA=9+qsZt_JNTqX*2bo8b9?p!?^!fIZ(b-|s9ntKmkWMwLVw7s+SD;k1228E>d^H>6BCSW0TdpsY19~e#zMI2e| zp8{nT)uMi#`RF&5mM9w1pcb4N@B2mCIShWwxQOcsIHI?waN^K(cg%6D8|IBWx$c-7 zeevMK^5fg7cfxqmyY109efz4!MiYk%Gsd%FhPi;R-CiOcL7gRWYJukIiJm-+%@!J z;izb-oVz}ad(oC4-Zu)I6Ydn2wI-ByYMSj-vahFHEV4G>_G zh@d%G(X6dnq*V?Sr547bL?0%VrJv@@!zNua=Ik(pE0sAa-Y6%=b%&9o-BYr~dy+;0 zPxq@?wU}leo_v-_t)>PM)VBy1sE4(9Ht3`IDk2xD6~@PG>&3B=y0wEVyDC+Bg1Hq93KE;H2Z#>*H7Ala0K5wQj)k(Pgl}0;BxTn{1 zIW)t$f4601AMon%3BMn+$vjozFO63m9dM#$b=h4ZV;R%NmBci+ZS%xu;{4ipQBb+> z;hL9T4Wk^!_XA?CaH@TKsVlsngwzP#uio-gP*Ef-imcSRnP)aANR(G=N$j}+9kMKt zcT^N%Sf{~hulF|OisTeVe%1xPw1tP1s*O2bF_3Gw5AM;29cunCAm^N%KNX72 z&US(E$zwH>-6xH0bHEkmo?TR69vnfvx@@myv0su9UX-b_b%x5mLVCoSqo8r!h1%IT zR@}@-vJ7F4-9;&Vd`;J8aV8V1;AM!+rJk>0E#(F)@cMLi z5@zIXDes1eQBiZY9J;r5sygLnB~!=1_AjEOrXd)?5*cwrYDz^i#val3OsUe9VK(jl z(gKcWe3tgs>6+GJ#*1uuBQ7&eQa>pk6nPyW2Tu3k9U;NZ8HFdIQO8gC)tS#?D%s=D z8-AJogNNMWH@G4i&~D~PPtFz5ZO6-zt@bycCoG&;y7?c7jCJI+D=JNodpN*Ij|Ac~ z2&T)K`R^}t+3$-fyB;LNgZ%4Ti_}_}?eR?xUM|ij15pP%l^-@XD2iLU-xm&LO11fo zS4P>Bs|m5SrF=}-C2aiX^4B%Pi>Fqlmrap&d}*!^yoShAF*b8Y$Y1oJ{O1czC%)&H zVZH|tGyWSjeoy&VuJdnuf?om&?;bmHgh=?y(fWsV{i!X3b=1KtXrS8%2O8ckLLK5b z#mw`H9aS4guNU#vpLc1w#VrNGbu7t_nDO>}hTPl)Nq4BXd zcmwK4JFC3!h=4`MNH%W7wf9Q<#RptSbzaQQM#wI1*dzV|PFrnQ>Q};_h#yyMJmMWS zli?RRlHA2Ttcs^pq|^^ox@#woQSMFy#C2UnXXW7S#iyU&{o>fDik-#$=6Rh&HP=@h ze?Yj3L#W;u;Im=#9E@$TnzEaacw%!`Tu4?OM7flQzE6sS?q zh#D6sj7qTP?mHl*yW;tI#A*6ygf0&(!0=k;XuRSEmTUhtR+HgLbE58RhBxD`bTQZ( zY+G1l`S652N0^z$$!5|$3Y@+@?ipTuS^_&wBHSkHjaa8oNhxogDRs9LtO)I7hdcl9 zMOf(Qv#00%ySGRfhR69Cj`;tjYCSv`aA;CI$78W#lo?iy5tdd1$FNYs)KH2PvAlxR zbdE*^ckt7N9eGLM?5r^Er#Ct;P8ct#Oq6FjcEqzHxZ9_=Jb!|s>(js2ZMa3-9apaE|FTT^!=86ny4)(zj zxm$QAT(!iTx24%p=-2WdH6%3e<8qQxA5Kokpt!e^j(67D>vFc*_wjqx_TJlkcd&?G znYO;+FnioS(xu}aOvtX~Y`UQ-rbQ_tfi-v6Vicx)TD)6N;)=|B@Qi+RDPFrf2c*j@ zS^f&Ad^=*~J14U>`&~%dy+#J;3>38dg|87=!Ape~PQul}mrkzCF>43Sd@t2}o&tsM ztS1N}7Wmwir>c`Ty+mh(@To2HJ`8l_C2D zTnn*-;F#8TdBa_Xj1;#&qF!p_cKG<+5G({Lp81xs%WB-?)43iTPbjCq`3jszmK7P- zns?*5}^2{l0nnsvx2G@a1HG`aKmU37%=YmzgOK0HH$Bm9)c->Q(y zoIl~~?C4PZ>-vOgDqq>|P2od4z_fLycK)y=rC$b3&@}TUU?09oD(l~EHn0k$dG>;+ zoTp`AEAz|EiptS;malmrNPc>vQSVfO&jfMpI+^GZ0 zx-?C+mN3F0M~crvA5U}VC?Gn1MRH9Et?OY<;}48aVWBLcO-G9FKunjk;ERtqyLE7V z5Gp>3%Gj&31Iw{taxJH|a;k5Xj>E(q7}sSU#yAf)>!w$X~Fnfa7k9 z{*#Z#uU5^{%$qf#0jy`uKL0(mc3(zN+@zBIu_JY@{W0vCUHjC3a2{wpo#V$t0O#7a zwX^BX{qg+#AH0kL(!Um_rw3`+ow zhsSF<#mqspn<8YfAOx5C(>9vbiMWhK<&npfR@%rgVI@Jl{Xnd(xWth1Sy$8k10u+>+e71eu;)4~>kIwGyP;56BCv_}i3EXC8R9L=sr1yT329{$~6` zMGL`H5P;@5NDKZz(PJ{}{VkY{wm*w{;c)V0)?o0&da4WUmw^VRmk690DD)5=3`;|1 z&Vc}+IRqOzv^N_K{pK#$-lTp<9jfdxU|y)s-~<)M9T(`c2Qd?C~Y=>#)-{TUsPM@pqpYfqwZ_%IwZh+I=PLn zKp5*{Rs4B&NS+Or%kHp3I*>OjX1ss} zAA4xZ40pnU&^r^#O(>f;+Es#^wLGysfFF(R1ar7vmZpT|>WzCJniRPuv5y{(c<%2L@WKCT+#lfo6c732(sK9DFHOTV z=Y8K$w++vb1*MUYq;-Rh4L_;UViu9g;%jdxi8T>fRe76eE1+ddvTXRU)-KT>*a}~C zV_NqVNOx2~+LCuC`xigodV;SiZGK@sE@!zMe-G}&ZPwt6Ch<3-TquvG2oq}OOls=2 z`L_KzV*mI@5ZTY`yTrLP^6y7O_@K>(`*y)dZI{!#6ZocZ9BU%;S@P=u7i^GsKlHol zt(Oq6Rd?d`h_4v zzl-)zu#1`Etz>o&ISF=V$btkuj7Lw4{NU3ChePzk*&>=-n=z;?~xuo zky*pRRO^bu!V6%*58GblTkv$gvUIPneJL+5HtC<1AkradpIqz+Vul2Ie$eN|~HjT|BRcz(%v+on2qe_3K zC@$W9$OmHxq5lc$_W3{MbpHZeCXTW`)PnTA#o(K~T~vMHKxG@8;JKY(=$HgYXFb|s zvbSwjX>CbT>Q2~H`9PUZw%ds!*{r(SnS#$ujA(y;Z5o$nblta~hiymOpkhi z;sEP9@{Q2@hMW*p*9tkJcHS2~`}w?*^*lwC&w zW+N&>8|D0lx&+hX7?v@Rtki#6s z#04^q174Ej^(e>53+tHRQhQO3jfIXBTQK@;njeO5M~xjQc}l^!YNS8sQ?QV<1aIFe z%aZ=DwSB|?U%RAtK{0oN1i3i3n75aR=zVD74paIRkw@Kmt))>lpZ-Hpl{=&FK-5`}k-2OnR=u3!nf}DXFw_{jGyNCSA5`JcVB21m6y0wuhpgUqEdSfOcfWtx zhXsdre}y79RzBV7^tS-zfDG{ufO@fbfAL7|LcJy-=MT24N~zaUv|_cnvOIPFfc|JZ zXWy_<+%1}Xf<4q$V7b0}O+b@debD{9e1e_tZ%VT^LH!^|=G;Mv{qAIkka()NX+$Yo zZLJcN%pk;Xqi%I#FR;ti+&DRWW|Kw36hjka#e+hj*_K7BdF-mcUT)^WhEniOvY~fjskk@0m|`j^P=oDdlG0O2J=|7!`276eJi<*-rwLfdpTv#D#+-BD!Uz^8VC+HZNt)6>8*(JawMYAN z5Xk7bzQoF=us7=GXP{8KCd$O>2az)U4U#6lOA4xrLz7ENl#mvHLJx!i2?ooXce697 zU`}8wLc_RHQX1@|DI7Q1o@h)2T&R^J7n1!6vf*#Lo#x$>sZW$o%lz#|_t@vZQyCp@ zk-Q;b`j@+n4p$V$x%DJ0_%V=teVyKqpRhXS1tZ}9R7fKG)*&>{Rst)3zkL=NuGp|R zVpI0e^_M{CK%6$0*l_)XgX|en~9*$D!wKZy|`Sn1u6-y z-do_r)tN9Z#?fe?HC(oC9DP7)z;JLqN4QjFq@L6EKpRsId^{Lhp4ErX1qLoDZ563s zfK!27-dAB&JX46o>-(OYs@u%|I6T%Mn9x3M#p7v7!;k4^8m)ByjiN-?tY~oOMB^?e zK9}7ebgbADQR`zSn7Y4?Xtui}3~AJwq7~)_n9B=eB@EB~ZOB3HxmF->zedC?0EFQW zkf36MwKUCJ;k@qkecwoy$lm!-wJs%PK~a%Ellv3dE}6AQ`|Wv~?58|(l>jCKFSC6ZT+Z#WQa5>TKg(oNj3 z&aD#c0uJ_6rhF(rxxi_v@AZ8kwa1hEyIT@&fZgCArLZo1?}S94^jtlh-RvVVp}pSIAs%(!|eu`B$wiWGnAZ%Jlyaa*ABOQrE>3^(gND5)v|a!XN6 zYn-g(V+-?#(h9SlgEO`UROou`kT*k?>o-Pl@$bd5B|P1d#fsVT z;&u`oAM=uLEPs|})^+d8XzZTra?Sdo(aU*9^HXA7b~4nG&@zNMnf7H2yZ6Ft=!a z5f+`lUV`Aasd?k};NbxVZNbpEzo{B&2W2fqA;DhA!(D`}m8G*r;v;-#+D>+dESx=@DYOqb@7#9jt`k*}c4t&2q*ZLrzoN|4d2n`&2@x=er=$R|1JDO!}fnKq3EXz;m>Cy!C|h< zAT1T)L{^WgN*IfiyeZ2z4XtpxLQu6P)<&sslEX(2CXN#w9lr3;xI2jB`^Gbhtzvpu zk8Qq;NDyg$H*ence$((r53lG^NtlAml+G?k4#t?#LkfsSX`cA-6x;~6q|1J0WvkOH zJu1LCVn(;etX_|js-PDbAnZS}h1cNfXH%zIy>l+say2?OwV-o2G6VH~DYegg1x5ce zWvXR>Ap@Tfs$-*dNo3e(Z*;vWf*wu!lMFMd zvp>o1oJ?&iHvTTPipclSy3{FJuO#n>A0rx~caP0Rk!fCwbuh%nr%oR+v-mD{R9+gc zjCs7ymbSUy^QgLk<)0wf70HSAx4(kJQG?GrrJMLlNY3$Lzsuw8l$Wq z&^McIsbUu>SD!ZRRI1%fAxpdx!k(eTnE7C0;A<{@fHW;?Gii&%I3%lcehmvAy(x|{ zp4^>#M~1pQ><19g>o|kZ>4j~FCC>RW?2mhaSdu1hs7unc*!hFph0#upRPz5Xpkmtl zr&Z(_0bE(lp;kK4+V1Yh(hC8Hx^nXlcB@@Mh#FMo?u3ab_Rm>$s*{-1`m|%@`U9|l zi44ItgOn9~kbEGK1;qrvqYpX1mk&F_LxFYWJWIr#fTlxmPwHn^_eqPcpSO2Ke|xGl zwDO0bX7YGXtL*KWMu(dY;d=No<8JZR?DTGo>x}FM^bc%5g!lKa{)$+mNv+pUX6G7w zE|ke%d)#N(rVuQr3?nR4dRp5M!n zdM=?0rC{dxlqMmKZBx6GI6Yich40L(qk<;{V_<>!uWLpozI!y-964i+CGYWfDo#~K zQYoKLU%S34F84*n9VEP;b0N#RB8sHRc^H&yM>u5^TRc>4#3u~9&CtA_5hMwciEhso zBoVQvxhIP$cF~sM=X(RHaF@#JOR|h-X@&+`En*Q3*lSuIsevs&UGr!F?+y0p9)NQ&T^J;;iol;gdp1(@NFiqKLi**{B{2oJ~s)41qg+Z8D^-oM|w z1UH{K2o5GU-C<_~>a?~TGCHF6mw&yEaXGu_aY=1GH5kUBW3=|jr=?3pcS{!&dpHHVXK*O|X{1*7NVEj}U zj&5yAm-!+~z}gx{R$z)`SRomsFic<02%12D+_ap`LB|7yWs1zmQ?3E34GN=)Ugb;1 z{J{@-Ll>I-^s;~}PO}nWLa~{@v-vXi^$TZ~M#98*y5+O7hLaE;M;Azh>XAiXg>qJ? zWsf9Xj!Kz|b!9@XZzuuWLy;2^y83>Nm}_Jyh<0M);FWHkCTAK$1@RL%2J5kH)1Sa{ zW4fITU%`+O=pg_tqIkI=^>mNLY|{;EiL~{(dv0!1bNBm~VcBK=M=shpkz1lprLBh` z7TmDk=G_w$VdIwWCZ=q6)Mlk`m&i{SRaik690|pm;Y4S!f@IuN0j$Qa2mITY_ua}L zA5`n!;y8w`2I(sUl`9B#RGczmuEg(*jwZ_`gmXDym-5OKDsU=mDWZd_b==GA>*?dMAZ))Yv~7kzicWcN*9^sYcW ziiY4rev!WBHUB`x$XxQ~YY&#%Mx%#+9E`ghc;ddK-k>kKr1t}!8W8#~iE-wCM98gh zq%R0^c85g_1eR9Wd9tOpoTo+lIlLJy4pe~h|G3ye8 zS!y}`v8%<`|Exp~Wi^f1d1ttQ%`8eK%674@(UDxVu5g$$LALi7uz$Kb7&$;cy|-SW zh!#I|+349!J^7tf{sR9e#dF~8%5cPyrYm1Qy}l@d!LJ>Lic!hF7>WHMM~}DlgV7b+ zU_m)GV(k0<^DE-RX@Uq@zi*<$PV-~$L85%?e%%xP{d>I?;n`#Uh0UGHmfK*CaTy!k zB~Sd9XF2I!1{JozHhp0z3DcdPK69MV_l~cDcg8&!6@m7VjM5 zm3KGn%ejqLjuRu?WlP=3uKGcyHK(bt2mY}4?&Erd!-G`bk!{#~vgEgwN!RfeHfp_Q zyB?$NtZE%({=RNFM*c7gZq#-Ibt9a1ole$${9v%SxOHoi@++y%B&Ia1O#)((oW@UhiHuZaKDGy`iXglk0?NF^l?j>PQ_xe44nqx=l(;F1+Mv{bpcC7p|0xy z$l!c$;icvH=SCGc>%};0!W}de8CD=wL>_PHzOH+HbF=8xA%}VJzRzlFT!>Y#lx!@>8!Pp;QaL)@Qm`W^Ca;tyVb5A1P01opJabOB_kE{ z;^jVZTk9;~H7HmTdjoUu>75*y7QHy+KE=`o z#ia;O@u8+Kc5fH(N3pq3^|;{}??|kO!<$K@4yYrSFZN`-Y#hAc0&i`hW?!CFx$5aQ zzU>2pnBp_rLMufPwg%LgAGiJL+pw)fN_*RV8*inRLfA$OhX{9?itI1kk2R{hQwK#n zhfg$U2y-^MLt{DH^(i;Jo`|Ut3KUB2i7WaL$@p1f=HuTOFf0w{xwS9f=v$i&sza_R z(GrTR?LLUlpnaqR`VIO;0a~C`#FJ)hBBAY1rdY&)% z_4j?HPFoejnCjpypCfffgDPh4hsh6iCnRy7`CdTD3P7Mxv4S6vI*l%&08Eted@H-| zvPL1rJtCcX;~>{nox_6@Ka?--*t6hrbB*^9F}6E_bK~lqTY}TnQHP$oKuEV&y;3l{ zxMz?((@>=~MW~R*ct275>V6f4!V@+pJ?37zT<{=JYdcz+=%YUH@x0nvJmNwuFq_x( zSQ~KNfi~)P1lKWfF+@(CncG~Hb39#}W92=B0K-=G;_)?PQ?2fhIn7=4E>G(h=%I55 zhhG|RB;=1AEY5r;9%~zwWUyQo+Yc1y37UQ87@vm&rlY6oTPvK<3&#s^jD}Z|@iFg| zF8pMd-GRhItc%FZXL`j%1A}wKe{y6%w@Q=3X!cx@<3yOZzKIt^e()d2t$*dh=AsgY z-LYiYC*!wh|ElrKdFTVi3reoq;QAMd%Tm?A zVaBiLN)DD!i5$+S46U(mrktmAIoIs=lCI^ABdSqSTEPq*qwAOwGF8qi0^?70IewVaMdwB2n*na#nE5PJ8Jdq%}W`I?}G|)=x9GZQHJN$F|wAJE_>|j-8He z+g7JyR#LHTv*MgQ?}sza7-#>zf8KkKwbx#AUK3M^v{J;j(Mw~8iB`?3ZO13$eBI zPoXlAWE;_l24oQNwLPB~GLB>^3Jo#ron4g#yBwo=8&!e=%CCruUveme)PoT~qt}(R`6g6Ao#8>Nvcf zgExre&T&mrao@riK*H;ZE;iUZ`^nVm<;k!~Sa6y$+Oa5H$M4F2T|AcyYC*GYQVDl) zIk;4^r;f4-dV7$sKx-O}$ga*&JZ=vg&l(I667J*P`aU4VtN`xS?dS^Dk+NNr&^pJyyP!OAsrYKy-g@*m$7;D^3daL6 ze!n-yWjD7RYg^7J(dswyk~??|vm<>CXVnd&gMiIu(bV@L1NKnf`_t(jOJKu@E!iSX zQ=PTs*EOy*NP`~&$os~!FJdmyDLlX3*KBspnX{{_;_;GH>sor$rOwLtYjV1CzH|qV z!4kT{$-11U>&LJtPYzm*2o5h6tE7LdA4^uhKKltUx1;iz6((%RJN#hgrD(A8j-U>3f^yS=!W~I9pUv zV|o!oyGW2>Ba&*AWeX&i2^IoZfUx%4&^8#qF_(u!2JcHAZ8}VXyBXZJ+O}v3 zQ}PaaiDxmeKJf?NBU(Q7Nl`4S6G}hP5A!{P6RhA?84CH6esaTtH7Z#&j$n{nTo)d-EtCykwPVY?_4 zS9o$J@hxUR!e*lx2sG?`&$9ye{ zEhUW)A3?``8M;FhHly?WwBuxwebO|mUYEEb?1j9Rur_>g76OJOG@4d$W-@37Q_QQ@ zQr%A_GBFBFSAClf=dIq`Sn!1{>zLnC4ylRXjh<2el`>-ZDFoGPA6j>o97Q;xxkZ2< zx!cD*m$?$m31(}t7PX!&5m~K@yI$FHOxToJ{EKrfW5t^zG`r&TnDLp@DtzLJR#KrD zXmtFM`MFG_5+!FThj<2&)#zRqeAv#B;5%D7??rBpyLWZ^sW-*m$^C9v?E!V&hux%& zvoPyMTws_&r%r*yXbxuho{mrpp{{1|j*5K}AztVEw-VttB7%q8VidlUZN(oy{$cxS zR6>tAA1q6ElaRIiH!mipwun^}*PJ^6kZAchCn;CO5ZQofwR5VF^y>aQlbWWm>7TM@ z*@AFIe93c81%P_V)C*v3{&frytyr8~Vd9Ec-C8JEc~xhU6a-TU{U&iZHkKun*uJM5 z74Uc>+Sd1EEGKY9P;Z#ay+yR_|6O$uLbFS1V=mO60DZCKJox$8h}_RIL=tZU zv%KfqH>~b^4-=%asvE(13ROUI4&shH8V_pkJ$~z^H7QeRwIdD4D8Yq{>yrDQ=yk_K3oThfwd0o3-wS_>al`ZBA!A5LSVMG>sb+HbAEd5U8#c~dY zH(uMat9UkMd%#vUq`V~73gWM9=U`+zLni-8UZDds&}Axl+b@jEH{?H?`;BQ_w0b@U z?PY1I$a8}znI)Mj6X8kW^5tppGS1T>B7$|6K%}7=8M=WmD9&9uuj)32S+p`8Ykd?! zDBwoLnAaJGKd!s}wf4ub#++|!oM420pL75j>F+eAHjX;$!g4T#^F$P;+k(&K0FlOq z8XY^oJy)T1rTq7Pb@n*FuIgDCk+j}LloiX7`2Zeww?HgS40JO9JTS@HckJdhW@h>t z{$Dk$`u9l0uNDnNPq7w(4)I(_e(2FaUny1${nUemYGvxqE7In(ESWa3PMT12)@(N) z6=LpRF?Rfkx9oL))U+=5=ml94HrkD=?tu6wo?!#oHN9yZ92o{CpK5TAKNRIZf$ zZes6Kx8Bzkn%1lAv>}NbFOimTsB?SFe%tCs%*JoskhAq)sGre*eR5u57Df7g)IWAQ z5%IOz3Ohs7acNeBns1m&>P$Y}=Y42QzX78&g z_dQ^Go(}sB-sVrdjWSN6y9$TqJ86RDgenY5s25lbZOIu{mC`M~KJ5{D{mKGe-}5CR zL;A|r+LPH(f{zcV^*8i&()&Gv`pq=oNO1aqJJvD3kD(3VBP{rBJv~F6CiLp*tdad$ zH_c(a`S>RaF=$)GzI9Kktf`thJAP}S}UVV-k$vFvDY z&>EO?Ykl((_>|=r=_|hl+huf6H<~0qQ7Hdhqb9q~BB3%0?z6+@N{)Sy{SV&h-NNOE zY{pnA5m_9pDF}S66L+Se^*)+>&6457E$P$r#TXrWCQ$kjdOQ(u?$&+Cm$(*F6V1Y2 zy=~_``59x;fsg|w=BYVIMPg4l=(()*3j;WzPPkXPs(&|Cb@S##mL>|C^qP3b=_d0u z6Q-&W1lms6vVWfjfhng-awJpIlGxtFj}QONdRReJr*+|nKGus~HjCu4Z(+HIl+*nC z;k|Uk|EnFykeleuVcW1%^XSWxMfaL;oT7O-eptS)zFy*MpZ2lS&Px2$A9ql$*Q1Fu z=kKhdIz2o@SFk{Cr&8X3aH{x23KtDx{X<6Dh<}K;D}+Pa6)`rfFZjzwaX0tG%5Ke% z;r71YqS6T|CZ(zz= ze&BqCNQxlw)_Q2bNqva4=4T9CLb*TMr+8gkjz5@U@5%*+7s>s~c%o^P5FYlU9RN(p z9qIQEAJYw8LFu z&ppmhHWT6r%niKvfK%4oaQ#`3x{~1F`6}BXD4ad1v3f97%jQBpRuVqVTW=vG>{A~= z5nLsBtLA6zo>=!5lKk*cmn2(;jYu#T?`wx4_ylTU+%W|FErS{w`xa%X&LMl>&!OT= zJUCwKF9)_T44V!X$FK@qni$|Ihm8EjX12>1Mk$|&#hFU_?$(&Aozk)#r?@x8<$d`# zzM%01M)h%)iYynI>{4Wme|n+Y8973eYLn*?i`cTn^+|rypv(KpYEP4BI0wLFMQ9>% zI<$RKJ*w5>E+FkPcvS-?yTfX2m+60lkI7NOzj(iX71XJuWJ!1FZ!TKu7gW5!QUNYe3(81jM3rVy22ACz~j& zDUSr)!$_i@F=Ww;b&YC>naj|>D=BQZJanr6@eg>uU^^7+uT#}XkTthPuKM#i&u2t7 za;Q6FG?`W@?D)A;3CAMdaOWEVp>&P%)!c7+*vIK)1f{QiXjnTz(#JWRihaTy=_}~z z7GD6#H{IyjDMuiCfKd`70`R5(Xpk!ulth!K(>l~N?`25t2@h3^7 z!_+!NGKZKK5&K0fh$xe^h3UY5B;>cJ=i7=!h8b`C{?!}}PRZ3m1fmU=;z{D}x?E!E zI#b4b$=~a|W(I>RhQ}^9rM3o(7dsKhSO2!^6KIit9^5ehy}&|b48HPUyucrgkk?@M z9L{tdZmHQTc6^9Ksp42pz1@bhZ4_X0ch)>Igo~I+{?pd!@iIQDIE-sBNVZp{?%D_Y&#xJsp)8t0ZN)|Q_>=4frCqm&I|N(ssmW6E z`>#3vA3;Fwe*^(~|0@Wn25BethgBD|TYISzd%3bQnT#$7Z6hRQbD%HV;Zo?_D?59C z5(eA~c@cDv73Y_2&2hFaTjumLRk_TiM>?eIGfQ8#TBu$SQL_Ac2tb$u3zN^y%c9|CIy$ z1{JJ&L+=?*Y;QOf*H=T!+A!z*F7dPXs3&s zO#}kmZ#`Rwk?58r)phCZ2>UE@`YPny?0xL z>~Sm(a{}Pb!2}75zLV2{YR!kbJ3k4<>=K@)Ek=mKnF;t%4qkTjOVvokP}*%N9*J~l z^4<}pcXDUsR^+y=L0g>9;-zz2F$dRbxm%mqbDj7zv*XzbAG5&(`D*I7bs$lgI_UJy z@U?xT&g>6x$Ls9p13n$n5r(x&dveHN(s-ehHM-|o?6>ttuyrebMQb1(1?;f&;s$m_cB-8PeO&sDTqV&QIKy0yO0f_gr3Lp1iV19R6} zHf=lv`>5Vsw^VNFMyOH8(+QeUe9tg-6@1ZAr@9(B2p70nS5E8S?bX$8wd6}zFjb;l z;!l={=_%$HqF$3t_GAluNoGQ^>g-4@L`bS}pQdvx@G&S52YSCl<)+fQKD9wuM zpGOlf{fM?Y6a3QjNB21_TviCQWK4`jXCw@JtIbvHd`t`LjcO&Osm(c4-{SUTw z(j)T8;?@G;LK}ff|2kxbq7jasD+IYWckb=PeB2Ldh1xG^sGb}3n)=3)#q>KIp~2U5 z*WX2Oh&T|k4MkhRx31Hx?$lrQUHN~_^B3kN)f)6LAqG-wuM1As%2-%N^o%B1kQikX z>KtYn8kf=OgtM#&V+%Ti*|gKtj|X&P>2k^9I+MmFpj7WSWxe3Sex@lMVWIZ??V^GCvD9jUvS5_4IKOH>xOEN!I{XWPKk>dQt6AA zwQ*NSOohoM1&mfnd~lvlZF>2XjWLZi>?Z>+qYnZx8RpO_@8}HSp*BU}JR^-~h9vSI z+v><+{ctWyPCNNt{#jTI7|emC8JqZ?R*d?E7K(`PQ@LWU9+8?hRlD``!h7Wi7Q+w% zx~JRE#nwC)llh91><3E#gQ~bsjQYv)&Jpx#VJP1deVO{0$!M>TD~-=KMK}vdu4cFk z2T2`tYSVl|Wo60cu_%agSZ{F|vQI~w%2^x)#1}opU^f@<%0iH3rjhIIu2DK#IeuGM z_$b^FeA2GEMeLqYKbPq?kimYw5K`suluI3k2>^*0RmGcQNvzUiD#%P!?+$+P;xjIn zIWMMxKx9L+0~8K@9EtFq{>fDa_6?@e4hs%vHP+u7t-<+|+y@?>cC0>CybKz4ZKdLy zkSgB_AZYrInbFvQKPF}K1sK>5bX%k9#8%xwY#|ebruC>}T)I3PpsP6esML>*Q`t42 z{Y1z?q5MrTSWmChu@5LYlcD_jF;m%Nn^|Hc9|Mn^cB{6ptq^!mnExP;II=i8PJ5e= zJtT5y7xJ#irfcRYgL`hQHDj!EB@zk`GnU(vzSQH??#f|5P=WrLeTbdhMd$ayS5Y0B98_hQQ~aDuZL;PS$6O1rRAAZN_ZZb`J@#*xTqAO32LiDx8O4g(H7wu3=)K>aBTcF(ShK7|=A+McVhJZe zOe3P#Fv>y^B+vuQ>Oc4CNgW{zyNEF&->)_Rw<(|%&uIE*Z#{g zcwb4&8b*{<{oFIW7-p7SrPeSsb&+w|F>X{_y1;Bl#WFnK+?mw#+%xiJgO2};73=HS z-t?J1&ahBTOhm3e?n|FO=SX&MMikxF>L%Yg?J$|oQ*+1jEcJv%1gCRoa~5;Ll29;E z^W2pa4!pM!p8c>jo+;KXoKAD>X!ZhbV9@rRj5RGmsZ{ov>y-vUqzR=El)oD+%6=bWnRgmQ3JC6J2^xlDqZlo}%F znSP%ZU*>KDB|5M13JXner^<=Z(gYY_n7!cJ_x&c^oTBpxUzyjt3CHc5kX*Ef1UjQ` zN0aNFuYoEEg%@d;5f$(lte;6PeWliT0~RB=>t5uDskp7W5&Xz)8cptB@~v>H z=um2i>l^>fXs-8>SQg7^eJspMqiO1YSivn2o$&G1TUO(iprn;**SJ z$z>8$$l9sdJPMPx+L#R)B#ad9f~U&+-6GSVL6$TixGBEYhI_NM2T!z7mejCYC#4Ks zsk(9m!!z$pZhQf%;kyvXC{u(IW(vw*J{D7!=7*5r#_`q`bz?TLdkgS%qbw{bu~>@GXdQB zK9hQ~S5SV4!V^?!@9-w}4A?}`%NZ7?cF;uNWwT%wW?C2z>R@D#XNk*`&H0{z0`DR( z(Q${nTJ{x#wsE{E!uI9RX3uVfYO9OKqo5Fad#ZD z63u%R=FY|c$uRIpnJ1DLV=B2a6X@#3Vn40Ee)5%YlJv-vOWzMkuq5j#}SIB>l48>B!mosUya?$;{8;UOWnJp;-D-~9*%_%ma9IQF@ zumLgqi?Z)|iW<)XS0+OhSVwZnz zV*dkS3QIJ23Es}|SC434JrC$g+(AO{tzTJ*_F3!cgDvXj5e=l!irf}^J_{3Q_l(+b z5#o&YsvQGTBu8XH$bByWa&El%BV>@<8xi0+HJYLk_$D5-f69CZ+2ESu4rc}X*OS|i z1pcN@qd;F0v57@#%oESD`<)siI!VKtn+4nLUbX$X;|}xw&OhrDspifU$bM6WZO8Ce zL>}U78ReBer#VqJCJ+Zogu3OF@17*mrI?5ruN{mlKN#S&Aal&i@J!WkSfES*MGrF8h{QE|zl7 zZjKg%sq@|mwJbpQX?E;NfQWhJpu3wImC+=QK0+XW5^`^w^8Gli_g|2`pZ4Uzg}u%LsVwC*qXEI_3{^f`Kh)Jo?1AT`R|v_qR?r$(RkFFr zH3d!GiW;xq`o`SPAF~isdQ>w+y;!k73m}OuTO>TlUCj`-O?iF6&u!2pCfELy`l2o$ zNzP0_UywO!AO*RMFQ7+11n3vYOOn7>-`wbTPJAB-j`6T}vv@=yp5R!;h?Pia8~GXQ zr2ykvj#NI*oM$>nZO6?tMjUUj-Gu(SQeBx*~&Qj3O$QZ>?5NNE=Df?gcK0 zmyB_0;QW2oyL~CY{+Bz*;`+RtR?sjK>r6c5%t7_&ja{!*a-sXxE9-dy)HjRZq1n+_ zAm5R>h>*g)Cl3%3itO1IK&#pI>UuJw&=wLl-=qQZEZUcU=p^}*5pc7LaBr4``a_we z_F}5-3}+}2MPg#)wADt1qAj}a2gcVfifz;VhWhS{t$^+yXOq8V!d(67yZ!_L(_OszvLki+pd&!< z`=uB}Eb@7WV$l>VNGMXN??Q{OOg((D$kI9D&x}KFRXtE$ZH191m?>e0*6K2aIADr# z$;3+a*4y!#5kzuocbrjw!K&+<)+4|XS1SDC0;t&XaA~i@W_$U4=$-loOA%C3&-@&i zTF#Pp^u!ziBfd__lFoKRw<+cY^mx$}VYS^-nk|0V>%#BGB5sa|!vu~RnZLEX%L_V7 zvQPu&*N&@|k9^>Mz6S%$epNnNi%`H#d+OSm6+hO>xh=dpuw2_*`!Y2ao2-w#=6kRw6+Wl!hbZy0FE7adP{#v*-wfhn-pV3L2IzPZaT_pDq{x5pH9- zqNe@M+gV{urLlE^SOV8o{Sqd9vV?wfg0n#^!@1_X~qLr3HtxBgdr#CbxoiZn1aT$f$)1 za=*xP8`O|VlY<1u5oKR4c^;0x#WTG1L$<@u}x zg4=Eg>aWVtH)lBI4Jov(cLoOjcwh~D%L66_oV1{`2g(3K?k3e3@*v**J(aRP1EP#7 zE?Eu5bH3<9uD5%$@H6@AsRzmo+E&row@@6Ak{DL9`ZGh|EG1b3y&vUgQ*}XAn?TeG z>MA^5?LazNSZcB|z?(WI5Dn!TNOnMs>8}L)H%z2Nja`aldh^1V47>k{^trWyE9gg=`=BP_|eDd??Pa&7ld72=ouC&2={x`Rz}%!Q^xA>}dwy z6D*G!1K5Kuav`tqhWEJlX=RxJ##o8?5YQhYa-=|qTkN3zRG8}`I2us$Z9{`{m{)}6 zRnUFsNq|=;;=UQ0Uo2p4*UHfC&mflmFQPnOZ`$b2>kRj#+K!V&A**6|w0^6We+80L zZn|Sk>6^>lG~&yyd7SC6EncjA!c5;(m4*^RNJPmHY2$|j)n|$hxMQ}q?Zs08F*6h} ze98x?Si3TG?|tMOcFctbhmkG9hfRae64qRZ>XzIk^h_aT$_RAT4!Wi0`~aR1*SsFJ z))=m$bJ5#Fk8ZDI&G*~|(~od?7i7mz^pln|&5M>=VG{!31|+tH?IILs>TSIkbDo0W zrZ!DjyqFYVhrRo8viaH9;8dh?x@Ed^aREYn8@7rfYLHG#!%nO6_E#z;u?A2!M|>NA$QGiRSvf~I`@!6-7lBaE04 z!K^RGs)Y6~IF-j5jbJ^og`L5FX^h_LtTG1H(~fK>7u|K00bf|Vups*&nzPhbJ} zHV(RinysL3n@$G5bH-}B8!(48cF7Hw%R-y`@HngB*bSLD?jFaXj)?U`ufJIPpc)1 zOQyT)VSpCE-M@2A@Tz`VX;0Re{nt>gt7-LaVSDETh0r~Oezu9dd5VTO+CUdTE+%7Y0XGQnjXc+T z@yIhF!tXnfs-k@i{3s>Rlwjr7DZPmyd^z%qUJO2<;Km;=py*~K2i;AltYK>vUps6h zanws?1f8F8$VNU9|m2_j-6qqxN2jUFlsOJO>%pur?8Q9Tuw!kOhsZU8*1krE|wv6dc7 zQdXhVImfHgbXr`e|;O zccsTGI2U(umf&n-qiDu*cXoG#)93&sHsgga$8y>z?@Q@qFF_^4eMgR~iy=`Ahm335 z_^PC6z{F6DvSr6t0^%b+gx-4`yxD5HM$q!)TUgV|Z2@R{ZeM?It4y=6R^+h(fof87 zm)OkdAR#oJELvw)uG=Sc>DTx7XdKhe%0OV>gR}>ZWZ{uM-eU`_s5JdzNCE$RcnHaI zF9AZ51DzehfQC@%Vj~l>RppmL%WJVzwse1SpKx-W8Jha#s_^Z`2NS_*?UufYtC-#S zM6j`++>*a=*Mjy#h}0oP!8Z5qQBiX^d2V>HM&56|c9o7^lRzOlwcj(XCypL+Il}BD z>&#+$zfrAJ_G>WhbcqwB%%oH3>47KnF-EhVp&cY=KUv~bLTf&<#7uTv3G$HZeHA8) zG$s?2BE%t=eUHT%8xVpQL5H{kt1Y7)jtZ|BU$JM`sWaod0uXpME$$EH-Ni$P1uuUs z(C3xlgj;;kgstH{!=lbY(_EXTL4HW-zr~81q!arAam2k9ihL4>RYi-5nR8qf_--BE z`7yT$RoTWIG|`K?^6lQLgF25%M5*er&rX9??jFk*y=hGgu3(KH4JUmy{wx0~QY)P= zC$>m){ZRfXsG3JCs}WPAK~+BHuUhzV)YdvWnt6MJY2e5U6GF2os?khR`htq@J?tiJ z8bDDoo7bLuMdxBYoSm#JA~2^};NP+o-gI7IIrtO24?~Ajs6$0x(d0;oUpe6vTk^m) z@CvHUE_OWGQgE9H;v!av_#G25u<-Pi1nVrhS;DK`6pBfdc+tJ(C6)`x>AdVG?+m4? z*3$?_2(MirocAL_V+xW9{aD|uEU4<|V=l|$2Q*;97rxE(-b%!N_|ui8?7ucNLjq{Hca;}bJH;&RF{w3l|)Cct7puON5HJhq(Uic||+Qv97_@cEO zxIVb;1ODqC!HK82KW$<+*A`YBZtPLHA`*U>>p?qy`TfpjlG@X)-~%$oCejn| zd`9zNUXQ&`oaulqHiTi`^l%?#iu@-HO}*{GOMVI4GuB$>O4cJAU|y(K|IWU_-MR6Q zy@sz?II|}{({Rryo1W8BC0!y6gj>n0rldnk=fY+ml|Jru=4nk@BVqAX4p)YNwtQaRYXk^@9po@lf2;M~6Sz?9B{7W}I6 zfFtqDIT*@G%Pr_hy5;UO80uu7>}(zV24nKbncMbu-tpR(zBnp;kiDkz9Y~cu14PWa zBP=_tzOn^lEF7ckufY_tmJQr)w#4~iIcXSGNvF5JeK*dJ8uO^fxz!{hZCwZ&!IVjK z-S*hoY(LNv@c-INOjEFg@B3iQ?kCVbGQDA554st(9n%54 z>|o^?9=w(a%}{S)0N=gq18mc;nLiO!neL}DGV1slr^y>X5||w7)uX7cR}9=y)!$qH zAQ~V94;V!k=sdN1ob_qwgngcARj9j(YEEVIqj-XZ*R;&we!?hOcj0AGunzAr>aTrs z@kDv~RVkg9saKx_&idntBBt+{7A92u_hxN5GR$h?elY#|;HlH^WE@gO zOVzq5Iwcj&Mq91#;mhYd4lsz*ngT}?&yB}Ie>cPqaPN7HlzHL4UmZjwFNT8$Dqi+X z)($wL?TR_*Kyu%_5!#T`{|X1Ii>Mmxj}c`VgQnU&+H<%**)-=VED37tg*!dsqAv>$ zjm>(cK<~csGp&w32$EIZ{_f)@0^LjZwv;#C>7+aQd~%<5oxe8FSg8Y)GVtUZLih z>YnPhgy2XGF^0cVisH;U3KR~gAuzNZBmuh+D{>LV z2!#lBTr-dfs?rDQYm+_m3=CpWU5RNa5CyV8;mBx+S~gnG+adxv;4c@XU~3kkJ!WLQ zB;HET*oTYV0T!l{VX7kT+#w-Fuxyq<#VM!sSDvCnY2bNAe_m1ZufaePtYR?3$TCk9 z>QS%ouM?u03yu`}s?_^3)J$@p?o}2LE7E}dFK4n>@3Qanms@U%m);l|!fvAX41F)n zEIuoE4%2ls(Z@kKg0B>jng60#RjlUr-MlMD7*g7xuNU@+Rm0NksGuxJn}%P5s6+p>q0}%Q|2~d+a`^#jC!!}r3)bz-?O;`G(e)_eL{sTR zFj-GtIn62~FPPGoOIWd=z$;nV2CgNpAX#LUABbM#+?&laiTYdJe1w;HyKCX_Vz>tA z_Qg?jfmnV2XyXufy!xkXc5ph~H?EHdJ9h6>5l<>xUEov@dZ!<}5GWmdy!d%VsH;*< z2xkT zui7cou-;UnTzH-9Yk(h9(3jmMc&^&p{zSYtxK|z0D+0~vP(c@zReT9Up1?5-DJ0Kz ze8lYdzKeCh2P=mRH&f9zfS_oLZeVXQJd;Gnfh$ijy-@a}N=tgS3*Sl0NugG+gA z^o=FveiljaHoL(7%TR`gMJ;clr99e9_7%l(@d`kDg~IE`x54)bSJ&QA18XYor(z@J z1NP?cfg3*+$7Wyux(P~v7VF_-K-X*u#|={xQl-O~T9AV38qOIuF;b?u%)>30p@C#_ zIgRzC`@(w_P082cI1(COT}h`7$U;ARG&$0VVe@*4(kz3mSdE%GM{p}2Dg{}wU6FZ< z>|ITd!MLxyQddJ^cg?wf;-Oa0NYkO|~~*?MM7zYiSw?Wmq;9?Sap; z>B1B>zfl>oz4XMtDwJI0f0es8Xj%Tk{SUv;CeSUMT_hB|AJpzhidK}_wuw*XOrwUF zKD6OBv9_U1DEJ^7v@YTvZD+XItkJ<82+82OTFNcq$&nNn4xB``rV_h*Ab7^c)6iex zvD-lkDSX62tX}y8^FjXI>#4b!LXCcgy><8Vr-B~A<=Kkw3tJ+qaCX|;vdy>%uN&t1 zSv1eJl+Fnap^jXTui?nQHidtU3eli$x))+QDHfvw>(}tknKuU7nUs$V;XnOLX!_53jrjj$ z3blWUP)Kl~92C!eSB6o4(@9#_?ux8;fW);!BoZL-<&akz>_Y!KM;fMaJ@xZE&6@B# z$R6c8S)n^-G^~&`YE<$LSn(~SSvqD(TTa7~Ke~p0rZn~2ZVtofa)hTP9VPS`S;Llh zXtx8Ge`Puq->54^ta7Z~JG_3MCEjS-1VRVYhL=*DkWj5>AhP*tJXiWUx#RKQD!$Zi zj(;;2Qa9uSThVwZe!av(xL!7v{oU6(#FI zs#E9=iHxZn;U(J#+(gKgB{%cA&ggGSf<1bqQf0cxAKQ()Jq1W(vg`_VR-;z%KIPM8 z;vajcS8rtx4chVB8$(A0G@J&SsiH7GUMAg5pc~ch6vsPWe%udY)BEA#*%Z$TgO;fk z75IZfM;#64?rgWOAJMUr=aHdu!<@9r!{R8=nk_+iMLnhOkmJyl@1<0S1=-J|oikNH zoa~eiPsaQD>?}%pwWWgcjX%c4O51c#0+qlLH7Y5fuEUfW7TChW5IUD>U27|S*vQ0- ziSM0nGx?1-hD4#FKQ+Vf4FdseJ}Eeb65p_&Qt>b1>)-V%`L9x~WLsZsR*R%V&NHt5 zdX>N%Ct+a$$bWi--p+HBnnKD_Ciw+z$Ap}s_*;uN7|zPg9-fcW3E#e2Rk_tpv#rTa zdK#6Y48q7vxH7f`?%v{(u_5Ct=DzNAs=oeSIV?xKl45C&~(p<QeaZZPu+d?(5W<*=EETXdd1C)fE8GI{vQ ze0_o1x95lJ>`K%#`QgdAJNYJ*l5J zK8g1!)kqV8ETQ0X-Z8RF_yi_>I6QfNAW#r@E0&Lm#=S6>n7OPsl zt$9UO82_ccQo=x$G&VDQ#!OypwM1SY8>8_Y+m1vO7}?^<`tP(+2C;1SstdP$&;wx| z<)pPY3ccal#1;!rPU_VMIF}65^S4+xVPPqm0W`v>0rnbumbRTUqghbmSgT%UNH(5? zsNrxnhBx3yncLYTpuK&jkLJKnEVo6FoQY+ZQxchY*PkmvN4{-}V+J9AN%c-o+yirG zKbA_Zg~5fz20Ow}Hg1^NxyHU1AO5H*Ps5gUEt)Y7OuWDIz$hbEJM+^E$IiPD1#9=U zHlsmvVXUhuhX6~Bchm%6lzlgVyp`N%xmpgcjBD!n7A2ZZ+efYPkA$HWNpE+_B#E#U}CE*s6 zun(Y^eTtzrzm2h7tV{8jvkojg`C+7kkmZ|)w#I<-lItOjzwThXMUSEHisv^C$1W32 zM~^L0FYV)!m7r9v#m+&ehCeAQTd@9@_IIH&k%hOE^y*ry>pXp`b-V@J)Qjgd2Zg0jAl!lZwP|7Of zAd0}Wjm~7fS@CK}Fw-lvRHbkLRV9AFPGGuN73pUuR#e(WS!0QQH8&b{rPL8_S;L83 z$gX0onI`oo{|v&_y0l73=2#8W* zDV5VDoGT;FgilD;!k&I9hS`8FLpk8T3U}%o(!2Pcz_!#1w@j04Ba3XI-f3931<^}_ z+5sbmpUV59| zp<1#_4OU{OQXFMlY6_=opkShXI;$&6d!(4})wFHcur8RDFwmThc9MI~CH5P6PxjZ+ zF3OVnf8`F!IdgEL^UEQ>Mn2(kKtN-y<*AoPUliQVzfH>kEM-*q>TSNPg9T(k1vrPg zJi!;sh)im|13s#b(fbE$EK|*5-a8 zJdxn049x-bh3@ztq(Q-c{ZEc#fW9;a= z8yN3S%4GZ(FSa%#LO>ABLYM7_Q4|A=Mo7&nWQ7wlEmMOh#=ltqjw8!m&=51~lKK=9 zkT;`x;tqwoYw!t&u9tofof;;#(yQs+j+l;pyc7^* zsie|3>O!1s`%Mg-J*?35t6qP8JBOjtyi6k%f$^JY>S@`p(Pk=4kU<#M+iwPS@vuEG6mR|!qFk4yj&sGWB9tUz{ zD;ufK7Cu*=QS(pEQbzRvT>5z{H>M~NlFbNgtZEdaAI1b<4PJ;wgp*bluy7_?aPqXF zs~@?28&Qc{vT>4;9^}zEv!2Gg8ThWk<({G77?$6@de+l6^2I0TcE z-BG$xwDq|^d;6^VF<`7VkhD%hm@exqf@> zjM&(gMG(o`#{@DpyQweP`1Bt?zGqea7r*nJ;CcOTu4D=4@wGs=R&LR2!NXhE-{-UI z!dBbnbZ;6bqB5;E;XC40zqb+LXh=wCnM>Hc+db2N|KoSQ*4sC1pMNoGezFDqaTNt! zuj~hrRtjJjWbezI&9|5!b=jG976=#djEP z(?$80C`==_=RF*cx%c~usn;Mf_~V*Bbpob3?dj3aNfjZvWZOw^eYn5tWJ8Ma=L=;WeP1<3q z?ID@H(~*J(+6-4Ww>-}j7HZoaeg59vNbicZ&A_L!+T9F`^I*FIb-b}j?9F@J89%>( z*YNPi)(^I{tFb`LEws7j;o<^;Or} zwcm~B5m(`V$x;fF+%*FU6Qh*7IGB{f2ET{(*y&GA5?s_zrF;rwMNyTXQAPrzyTU~b z(-bH=fc}D_?2m&UQ8v=KIX#!Pp9`_`KBiy~oWlruUEUV04rmP4=LR^qSG!dV+NFD( z{Z*t)ZXdPy942OCFq&P4Y6Qn0D%d2PV%iU^_!E3RsS0xHIdV(>rrlXmdtBN^Bc#CA ziJ;E;DD!JK4_>*Z`u3-Nr@?2;yLP(8ik;D2is;tx_FfYmk=Tq zURf=$S$)J|i9jlfp(cGoKADxk#tnov=}N(rJ%six&8aTqljC%j+{t&`l7#x8U+`DC zCC>ywog3eL1;K}lrVKwvt(-PEXRo_dl%iDhC8dc@>M^M^VqL7KJ7vg>v(Hp zZ|VPYv`h8<^*<@CWsaQwb$E^k*G?6VN>Ox85Eymo~(V&63z|`O&rNkeF$FHR|s5 za3dkJYRg_)CGbf`HrFhyoM%(dSPOxwpNYR$I0?8TsWiTHl}z!zjV=@xMgb=d`bH-u zpmDy*$&5wV17vkQD2%z8(>Rn}k&%(&dhy}~(sz4Jc5$Zj7&h5k$?>JhTFWLbZ=E$Y z#;0dWpT<_6i*t>&Ja9IAB$jOWVC-E*5%AkX_+QDyQ05kf z@av?aRgW7~0O&ajY5d|G$;WB)-S&R4c6SC!E?Ug{IHAD4s2~9rJ29yqcMa+uwQ~r# zfJ1!J1V$68R-dHtyIxdL*mwV{vV2DV4?%6vV#g6!)7}#PkS?nqSt47X1T_GLCC_;) z#_OIyOjb9uc-h;-&T~5N$o9~$k|C<&0*?7iny`P6d;cJ+t?+l@gbo-{<~8-No9c@M zf)@KWB0+md1$Cl<{Yg)nguS;<-J9m?C)pmT2UiAg+LMzyYAjh$rJdhhYk_0A8p}O? z*Ii-yke&piq~K7NNIi%S5)aKgMi}c_2k0d6(ct?=oKlRr@3dVT)jZshae%_{c{KtN z%+w1C1Bx8x7u>`(+i=txp@b(O%%@AR3X|Dlv_PVal4*Mt0{L_K-8ZnsNcO4}t%e)E z!sOySE>*r$yRwfRM9?zXWJ|gI&7P8!3();WaH2DR;_hA*M%a^uF9#L0Y7e&%tvSmc zz5Sa#`6e}?3;)4l7h)E3fL6fTo-W7Rb=O6MDSO@CVYnuh7VFR5Z!z3A7eX&_#g^_%z{W5!bb2KcsuPPM6aENRheq70}x(8X7;0ElT~R`Cc8uPh~(1)>W7 zji~U1UnOVyBQb_zXp{tY)JypES$cHSU#7_!?E0unNznZ{N)#Dx@`;eeNZrURGB03d z$7yb|&S?nkJSMyOIP!pZug9d>Q$Bw5>XAFu&Y!RbvT<#?#{#-`LVRI~LA;YuyxsrQCoUQw3)3O>N1o~w;~ixH17 z6pi^ikX$o~2Zz`D+`~4366K@O{K=Z`*5@U#GJ9Na=1_&%Cx=DZK;oZPm!CJ^)qzuO zs+c@)zBjYcr*qwZ|KV=v{{W$8{k6(G-1Cva{mb8|Y=w`UIBj2^P*s%_L|lT9ktmg~ z7fwEIJ%uoliua#5p-3 zurLM?FqCL0LPEcU)9$03Vm2j9pb+8^03K83SLYl8KYr}Kzv|4iPYuUrY^<1bF}=QC zj!(+9N}wqBdk+SzeiXg-C6S)XkPosnQ8?#OBB@pA*H7s&oSmPr@8)Pl9J z=d_;n&-$0LC*O5b?-rOsXbipVT#|dA=ohiyQHCB(B4oQ|o*RUF%knLK>$9BC(}+Qa z8?~CeT<(o^94Yv`tn8-mQ;rg9vI)7})(^1(EYSOU;a-H+pcTeD?EHS6Brn~pL`?i# zV#P{+zEg|DkS0ahk#t_pqZG&#c6wuc4tUman$&2F}P-tm5#oIJ-9=!6!GXzW4 z7}4lrBVQvisD8_^H=P1rF*!>51nutDc$ zVabP3Rxoa6eeMTQe&xP*c3(l#Q*N*{<{tuE25w`4@c|UEJY=f@u_)aJXd*gqd?Ufo z4=)P%?76*Twe4Y2WykS|ta8#HN&PtG5qSc^6JouP#5#eEd|D`~95=Es*Innl!{z0| z6EsuJBVw4XKx?D^uNw1`T=7TZc8;Unl4`hKnN?noC4B}o ztWa)2N(lw)Kzzd;D(-GZjIGeGs-v|{C%R4-kj@p`81T7liwRwb@J*&yNSVf0DLCFV zXX0Hmwo6h;!qf3ZiO4{X$)DTlF`0J=rUbbv&SfNIs2?U;gaM4T>p}vje2L%bSF>HU zzoSv20|d^E%@WuZUp$^RWaH|W$U0{f^QlKoA;rC4EiBR zx!5_H9USgNpy5~+w}3lUcxw;0XXFgrALp~3i2p<(HsvMmRkjMvJ9+VYa2ZRf&ch>9 zTa3h)@5gD4p|PFrgC_7*7P*{$Tb&^ZJnnVsN6ot~GMb>#GHx+7M}ck7c%tb)C387& zVR>UYl+)Yhd;@aSFTn{4Lt@_OyUHGts&vckcZeNFQLGG$MWV7p--Pe~DZ-?_e)X0; zbGV$-@+6_uoHg!M>3Uk@j~Q*I6*3gTA#(9=FwQ{-kKtN_@e&sn$kc42pClDYNYvs~ zDUI~ODaqM8Ga`vlt>zuaKSRu>q1fQzE9Q!BZ~BJjeE^Ies2CRarg|gQ89W^U3m)h% zEHFJOb_qOGs<)OPGUX ziGsQxo2dyLIgPMJgs`M+Kb#<}m&Lfm1E)r3tF=1tdBov}?&JH5V9jFD{76)HkS`SW zcP?30@4N|8|IN8TI+8#A=1boP=NX8wgDhIp{$uZ9!wWQE_{OOB$54YUUt9W@JH*l5 zM37L`bMrx>zOy|d5eJ<)jN*_qapTz;_d+F9;yotLn>n~{r7LlRv8_l$$=`s+nDsMJ zbp}J&pyqCUqlB>VtqA?0XQT!jUOa_P1(K)%49ZerY+xLqMa@|yvxCalxRD)L;S?nvu3Q&B#Q+_|jq z*;Y#5U&53HfyW-8m;$@|PAMG$6>&C^Ifd1*rsR<3#9#u7kpuD8cYJ)+wc{jQo*nHV z1^qj(rc3n+*+6|TZN7okb+nFKE7*)hI`^LFjSIs#xbHLbCCZ5ihEQa_(nO?m$>&zc zDgi~*IJvt(H5#cdiKNkAqGYhEuM-7vv!$WN*XeXMCI==-J}v%N(tW(s7{~vO4DldTs%2jtX}$cchzjS7{`Tm&8wifCPj;-G6aJbD-ho3cbmV<*H)*tEt9yxK z7{h8(Nw=hdi;wl|NRQQ%29%4396BI z$?`=}FomBRThjk2jyt>TE1Fo7qfl=8rCnv^3zNBsm^g%J80xo!*&|!EbNV@EK41Q+Hp>GkK z?Axf=N|V{VNjinY4qbKWeymNMP%-B%#rGw08IEvH^g53{Te-V`3gdtdab;M%B4Pv5 zXGqpV%h#g$25nyt{T)PXLmL z9Bi}yC>b2mmE=q0zOwWkRKQaz#EH(w*K`D2uUncL2#qTWGg zyQpHbFEihLw|fDlp^w^Fra&+&_5gBUqGZE_yX$L=@Wv=^)ilsX7E1MFx8!u*>H%cE z(>jm$kEwACe`a?ZO?b)m$nmOxOR-YfH@!VDsD-S{M5UG3UV8}2b+~Y0w}foU?PaVc zEfORA_TT78e$4>MX+6R=++<5z>-KSufVR&sG;>5!M<{o53Zn$hUCeF2_y$J9XR@RP z|I&t-^?Piible-*TR^qaTRpmiJ7g`^oH%=C(BK4mHb0$~vWmnVlbCFmMBPes3c2rZ zXgsfSu+(6*@$BBz{# zK2-pXN`OV9oiR9>ff%>ITP+i1zN;3f_|z>#$Jt0(vJUR*n0s64xV z$_g>V3m_&f$0{kKU-&o^m;<)DqeF3a29`te<#Fkij!hcU35Qz5H$8M#?HUrj&hTk) z7QzYL*imc&^%xW#KC$(pk2P#7L~ovRE>;kIPN%+2H;?pjPgIUuYEt^~oA)@=->N|i z)Vj6t`9Y5zZxXOLW6)X}?(9rFnd9ePVN%OF60L4-y9YZ&zmZ@}6lq6H735VQ`-fRO zwfq`M((muN!%(B#p!98fXdmxvA&HroqWcsG0SQ?50J|5D)}1nBf8smvC53wOx>Z%T z#vA}?p@4o56+40~`mezg%>Bb;y_r&aG?Wz+Yc-ZhK*P%(?eAa4=HMd~f#ezM*VhhB zozyiN5)?G!f1Vv!+roB0m=!3++9VVEQSI&6Hh`6+L({m_Si!8m#J}HM?+>Y~v|2=b zR+=}_%6|l2yqeKO*<^vh-1ew%Z74<#JS?zMpJ$tAB$&ZfxjQ=TTpjq!nH6F(g+(-I zRnT#VIsg$Sv9^iGcs^ZjVm=?5*s^KD>*&7w&mYAnowu-n=FY*seGO(S6{sWJG0;l` zmo}eUtPCNG84)#=xnVv}b+eJeAwm}JN~BBeW|KN2W#j1LVdUVmk+$rfhzz2LJgY?j z*QU>A3&*KY7wTiB7BG7~;;g_FMsSh5f+Z1-?26z=XThKkbW5y5CibpYX@f_T6aH8i zmnwPYHGKKsU>Wl@i4y_(!OwrMS49Ym^<=OQ?aK{szu7Eg^j@yTQ1WO~Z|B6jl8iN% zr8TUi3gbghok?3*&->>BsFIP_9=mZmGFzFA*}s-e zW^DD?I8~m!>~>VW{C-lQ-Ohm@)8DahYJ7Dt53!|W&3fnJ!I23s3pMmV6AJ0c!m-)v z{?R0@R;q*`!N0wC*rCKyAU?M{WExabRb^eahJj_%i)IsQUByIRX=N9Wz;$fX(~yoi(go&_G!nkSQ9 zaEt7ckPMGkwX356^KS&jnpQW!RajSRbTxS)L0SUPcJV7YxE=WvFq8cy_+kVh?dLWY zve7*-s={R6z&s8rE0TlVI5RpzQ#2-2UhAmvDO>E2QG>Zg{)=yEUSXRZLGU)roe5J& zOFg&@Z7!w)PgJTNtiL&Dsi^Xh8YIP#6n;m3W(aw`Abn#myA|iFPsNn&96vo?dbabz z-d(TbXg&U^lTtxYu}3iU2v4TkFyqd|s)x%F7@I$i68cy$9p*EzBzsSc2Cab9;zgWH z6et6{5VZRxd+%Bbp`fdl5KnQclhguHs8-;4avqx9eLThdi0<{vJXDK~bBAcb^9CX2 zadM&~Ry=AUv4=nwr&7J?HNlqAu**HWVDME)4P2hiOGwjBK8%-$E;FG)YUWVtk@aYs z`bEU{)w^xwO8i~Ohq1T|W1!}pCzX>WVw7{inl6!1rmqQ~u$k>QZP1cQzbI3$IOEY^ zJ&_?i^#^zq3Ueg#MIKlcS=gM#>sf3B*uTl2#LXrt;={^t2nbPbyilJ#vQFmeK=7Ghsr?g7X)YLpWMJXn9o@U%)(zGABx=mFxHY(dCq9c8vDbwQvVL2Z#2mJ7(pS|&aUX*?tkJb zzQz$f!CoO0Ux|+IGadSOoJPuq4=Pz5+r7=4 zKp<+iuU9kW^8{`e_w;r^(>t`qCxb_qZ#XAAAmw_b{JskLuc1Dpxv+^u0aCwxXSpZ zND@Wp>2QU?+CHwrB$6$+iAF2}Cv`CyJ}zy#$`l`*^|qNusPfQCA-ekLj%>?7G+s94 zK}(ScHWlan!}(98D#DC2q~Xi2xVC4@&FqG>hRLgXGY4$1g+eWL5Q(6Pr5V$Q{Yzt| zNDsc+$zsRGxVI}>I9nFML6bS5hm#Ggo683Zr<*14`|~%NK@BmJS-44SSpmg%DpbSM z?F{#CM}{}&eDYGoDp7eCt17Pmnm)y{c{64}Nl25`STkudm1i=O?WvQBTf~0-NI>aD z?AT0omO;;u9w!fP!p8-XJf3aRVp!`|6%kn8RS4kKdRu0PKt3;)La<8k3Ql zpv_ljb|c{u+&TGHT()5-eD-=!8nTz}60@@whlWbI?YlO72%U~v~|268^>MEGBlLAb%AKP zK5!go-z7Tz2PxuO9yWKNtH%4FX;SF2|B5eySlau?g@$4*h2@HI)Pv`EJ)d>c)$^>d zjDJa7w#N6^tI7Hi(Z7)Rf#-AJjA3R-vMSr;DdQ-$wF~%t>ur3L9`~hghsV8JKnA-v{x&w|m?lSBN47!7%GJFNC8kssCKJZ$8Y)FT91&9e z&T{1{P!J?pRp;%P>RZF9s*GrN-}%f;_kyhD48x5lPI)8lF>eLmh9zfwqb;K2mTo_* zG(7L?xjd1C>#csXz#G!*pR4YfXtWs{l=Igl%sCh2tJx&W;~wfHn0aRjHm(T{V|CEQa8zIMrg@g>{(F>{sf5qf&F;OM7tVDsixtfJE3m2GWzo8igsd{YY01$|d&Q)(3fdtV zAp9&-4GF`vW^W)?Yr1;fA&GgSCzHMxndeprI%fjh5%B{QD@tcAu zBPk#^s=GuY)y{y_i)di?ctTFqEu9a+1+34on*WY7?*K0lRkzPi0fP%xvt39lnOrN; zOx}3#O3`t- zn?i^HA=e}H38OyUZ#T^Wn%UMTD)tOG`zgWp>Gtq0Ya1Jz88%-?V%gbv6m<0VgQKHY z6H`-Fl+PFO?m$8i0T=to7m8J|R->}1xNF92J~<(w1sx5|BPl6~Q+!xx%kD1q00S3Q z{fRDYrt7J&HYNfjU9lSLr~0na5C+#bEbpXBx+Ko-6OnHUb8Wks8Fl$5qI7nR59W^{ zg~&-{E=6K|JA8b~m5|u`q7bITh(yd=3Iz?K&%A^ZrEu%7c%u&_pqVRNSdV0a@9fv8 zD|e=d;U~dsx>`8qUhgxtctrlN;)NT@B)qBpda1DIYEhxR^CV>wp5<74@0XF@nMmZ%0OIo(7Oue~7rPJ;fV65~yy%}oL`^U$<6hxpOw6cH6LItbN zYzD5WEYZtj?#RBl71tXW%X_~W?+5BFF9=8@X>ylO|Br~y)?|{dx1;l#p>M1bTiNTD zYg6m-CrcZg(R9I)xvsqLtJ40f-UOQe!!(@Ak@J54k|y$>2)N3=Y|j4RnU~{X9CnA0 z&OS9*f#6_W(!6%o;VBdP6UdXr@Rxcr$HxIw+Mz)N1Q3KLhK3}?3(1FII<*Q+Q}$+C+&k7xvf(3daF(vt{R-iG zHYgm9Eq{+jEe3qP$!BUh4c?C*-g_ArJK(Bhj{G)vH5|BO34W|LWHKI zCj)$QNlEU$MGi&K_7_URBzEhEyl-M2+`<&e(yl&o6lSQV`aDfs>uQ~4B!^MLqNz}H zy8b~N=!_e!S$9k{tqvqvFV57I>zs=2xXbCI^)=f(mqG8QROE5y!_5I&WMw|Qqf%=- zU=H4^XLs_#=Ib_uA2yiDd19=29Ea>PRNB=E@zUlVMlIy(?dk$sH(f(6^aM+McUVqN z9C`RHkNFXCtVll7=7xxYC_c0LY_*=qKb&LNkhhieqH!0Pc^=M|7h*M)!&?gq;k1G+ zlL%HFs%;vgs#x8MrmQR&+@D?MIdf0)dII+-<|R3Xz^$LB6}nLp0_VLsPQjEcjOS1pgQ+{WXa=@O{enk+hMTbF_C@=*6_gJ3E(BWt0=qPkHvqDnJOgJXOk>r7GF=OGA?L z)!`_|SZ290xwJv1nMc6zN1t%ot$EY(RkTF0@E(TLK}Z?*hZnlV@x{B?f&j63_aQ9O zr1lO#1GXU2xx)R3z0QeZ%%&!kDv$pA^3cok%ZKOt63_&X1*@a+QI;9I3;H#!cjl*DD-oCy zLZ0k^z1F?)0xrIlM{y;a5@q6_Mh)%r?d=$1PS=~_HX#h}RlYX0uRWUVG3gmHU{*f; z{&?O+`9Q$SQD=@nfCPhp`=bJRT+VT61l5`{!Of|EofTcSl{fx!gh zoYE?sFwI3dxpZReW*Mb?+0W8NqQ7OvnniLJe6*2BWh@p-v&`Au%sY&1@+}KFXCa|N zrdEaz9jeD5@o)LvUcsA$l+3Uqj3jk@cSjXH+H={o_8wK%I+I}wWMbtEDN7d6XKdPP z?qzZ>zRr#XvKZmXNw=-cv!>};C;rX8)Ycjx`q#{25a+S=%fiEODM@BITSedXUC+|k zNpH~=bgbh?kGR5Nb&mL;j1o2XaMDw8?a-6F$pZ3Di`d=2z7uX6j6x55OPLbpNsA{)c-hrM0@5 zbe1CECsUW+gEG8<=Tf1)F{(IOc&pC|dpmEobn48_WD+&oIXB4pf&{@Y{}(K;_=trpI`bn;UzOw>QwQJ_FS@xJT@8di-2M^ z$U0ypjG8AsvH>Skhau3KGs&7Z@dgq<>MbJga_(fc;!kYeC22zUVw|{0A5zxY6OB)O z@}1z_w{@7PdWY3?udX={NouNlw;B*`w0rsci?Q+&sKsRve+DugB(P z8PCg}PMC?K6Kp4Ca)eQw&IY?V&{`XHf9bYffz?ER6rT^DLqt#JEFe;SHkD2oGvqVN zkqhWZpG2^d<0K#}%08?;irN%VDO0B8?JlrJexdnmU+Sn*v&lHH4*pD5v;E<9<>p85 zVyY+({%YDW9zCQJalRFjLXf;BqKFFj0c6D;gV6?$sk8aPb80$wK}>j@u0)h0L4{Xp z4+KV1r95aG|ADOtBfKD|+Vn|w-pPN?%|-X21pp|#&6!VYw?tm3S4`P!H+g4Gr=(DD z+Xidj(mALR*rp0~nGDt=j7<0AEL{kR=I_22Ur8z!A*=B{8@2`W2@7r!O?q(!Kd5em zp5jVgARvZ~hD$he-p;QDa`WVnZM;<>zwKIZhCiaI*~D@+`g*TAd-y%ACOBLN?wacxo)an~2j;GbWnJiI%aJh&uasu+#EbIN{H(Hg)g;y4|EA+zNOtkN zUH$q*Z?$-k(PK3H9@_IS1F<9c(iGj{vjE@r=Y+!{+ruEsC&n0`N9L5Prmd$y;WYNN zs1QHMSJz%?1Klrpf*re<`IsI%W$twnq1e zUzo7PD@|Yq?#7eJNXhSOZ}>plkAg?Yt#2wJY5ULa@}HOe=e0{n(RG*MGWu4lf+;L` zd|rrd$XW{o^T@I%&jPJ&j-`?<8-H7CEB_L4iF|J!0DW+snmZe?q6^(n4n zVMP;{`#Qp6LQJ2=`~j>Jr~bZ~mgcml0dgBEx`G+ypczY! zyfD4frp^m0nu3zSK#J{P{f?N9B?DY%fC@&53UwE5sz(E+gelv-aWzUpFD~YTilr1Z ztVbiHW=Pjz^(WvK_+xD|r|3-!IxzR*!m=l4Y2&dnu9q*UNwH~GY$qapCu+o}@48B% zn4y+OW7~GTm|xisyxRKk79#3+zFEW{m3AQ{a#Lo)L|&`e{YP#f+yF^eL)VH;F>zmY0yWctU(YPkN_ESshK z{^3~&)*~s*(5Zclj*?n+49V>=HkRZ$@;hYxeoSh9!RQ`e?E{DCj;OI`>P;~Dhd(-= z1z7{bRNZ|D)K@fVTfQCV$S4!u>P_~RGs$)_`&g7~u$C0~~*j+5)b;dhd z@`Z3Ia_9)Q&nIr_&Hr6R`dcBATr+*aERX%@$K6Y#v243?$9f?W;VRDTTyN_p0=QXH zy~9TO{Tqk_jgKu3ANeI#m;6*)pY{24v>}^4x(V&1FrK+Br>}g((5uFTUZPktKeH@k z$LqQiv#{j~4vSRar*58$EfwW(U6$0oy7B|Zp>0i$<7~ci#NorS!P-;!kk)l2Qv`+O z&^Gz1iuf5!$~_+YNdi#jEmUMs7zI69P9ttG(!k!gG0!URp~-g3hbpxvD+1Fe%r*H+ zZzb;=Aee32RdXVZwr+bNm1GHPuxBwc)Uma`NQ_t*Zyx7^R~e|};^4&Z?Z`eLmx$Ki zZ_X@-C5`xzfCuKBJyG@8x*y7XQedl+_?;Q=o$w(z@r(T}YVN~ZD8t~C))c%MMKm@0 z4}%5sWrSLaGP4rD7Bx~5gJDC*&>7om>pfH_Yr1!=f2@ z-j-z{3zStop@Epyk82?JQp6hZLB}T(A;=JzmqB&^k@76~yUD}Zky#@5uCEjDh2nUR zga6sRSH6e}H0yG=RR%WT^}|R{s4?eB;V3bCx*!%0AI4J&rK#xmTFECgN|X9U|2`P; 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/getting-started/index.md b/documentation/docs/getting-started/index.md new file mode 100644 index 000000000..5a4098bc0 --- /dev/null +++ b/documentation/docs/getting-started/index.md @@ -0,0 +1,14 @@ +--- +sidebar_label: "Начало работы" +sidebar_position: 0 +--- + +# Начало работы + +YAxUnit - это расширение конфигурации с открытым исходным кодом, которое помогает в нелегком труде по написанию модульных тестов для решений на платформе 1С:Предприятие. + +![Отчет о тестировании](../images/report-ui.png) + +Прежде всего нужно пройти через [процесс установки](install/). + +После этого вы можете попробовать написать свой [первый тест](first-test.md) или ознакомиться с возможностями YAxUnit изучив [руководство](../features/). diff --git a/documentation/docs/install/images/compare.png b/documentation/docs/getting-started/install/images/compare.png similarity index 100% rename from documentation/docs/install/images/compare.png rename to documentation/docs/getting-started/install/images/compare.png diff --git a/documentation/docs/install/images/gh-release-content.png b/documentation/docs/getting-started/install/images/gh-release-content.png similarity index 100% rename from documentation/docs/install/images/gh-release-content.png rename to documentation/docs/getting-started/install/images/gh-release-content.png diff --git a/documentation/docs/install/images/gh-release.png b/documentation/docs/getting-started/install/images/gh-release.png similarity index 100% rename from documentation/docs/install/images/gh-release.png rename to documentation/docs/getting-started/install/images/gh-release.png diff --git a/documentation/docs/install/images/link-base-project.png b/documentation/docs/getting-started/install/images/link-base-project.png similarity index 100% rename from documentation/docs/install/images/link-base-project.png rename to documentation/docs/getting-started/install/images/link-base-project.png diff --git a/documentation/docs/install/images/plugin-install-from-rep.png b/documentation/docs/getting-started/install/images/plugin-install-from-rep.png similarity index 100% rename from documentation/docs/install/images/plugin-install-from-rep.png rename to documentation/docs/getting-started/install/images/plugin-install-from-rep.png diff --git a/documentation/docs/install/images/project-import.png b/documentation/docs/getting-started/install/images/project-import.png similarity index 100% rename from documentation/docs/install/images/project-import.png rename to documentation/docs/getting-started/install/images/project-import.png diff --git a/documentation/docs/install/install-plugin.md b/documentation/docs/getting-started/install/install-plugin.md similarity index 76% rename from documentation/docs/install/install-plugin.md rename to documentation/docs/getting-started/install/install-plugin.md index 13b60729d..250c66b3f 100644 --- a/documentation/docs/install/install-plugin.md +++ b/documentation/docs/getting-started/install/install-plugin.md @@ -1,8 +1,8 @@ --- -sidebar_position: 2 -sidebar_label: Установка плагина EDT +sidebar_position: 1 +sidebar_label: Установка плагина для EDT --- -# Установка плагина для работы с тестами в EDT +# Установка плагина для работы с тестами ```mdx-code-block import Tabs from '@theme/Tabs'; @@ -10,7 +10,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; ``` -Для того, что бы вам и нам было проще писать тесты мы разработали плагин для EDT. +Для того, что бы вам и нам было проще писать тесты мы разработали плагин для 1С:Enterprise Development Tools (EDT). С его помощью вы сможете: @@ -20,40 +20,34 @@ import TabItem from '@theme/TabItem'; Для установки плагина вам необходимо воспользоваться стандартным функционалом Eclipse (EDT) `Установить новое ПО...`. -* Открываем EDT. +* Открываем EDT. * Переходим к `Установить новое ПО` (в меню `Справка`); * Добавляем новый репозиторий; - ```mdx-code-block - - - ``` - +````mdx-code-block + + ```url https://bia-technologies.github.io/edt-test-runner/repository ``` - - ```mdx-code-block - - - - ``` - + + ```url https://bia-technologies.github.io/edt-test-runner/dev/repository ``` - - ```mdx-code-block - - + + + ```url + https://bia-technologies.github.io/edt-test-runner/repository/updates/23.x ``` + + +```` ![Установка плагина](images/plugin-install-from-rep.png) :::tip совет - Для ускорения установки можно убрать галочку `Обращаться во время инсталляции ко всем сайтам ...` - ::: * Нажимаем далее; @@ -61,7 +55,5 @@ import TabItem from '@theme/TabItem'; * Соглашаемся с предупреждением безопасности; * И перезагружаем IDE. :::note примечание - EDT будет долго перезагружаться и это нормально. - ::: diff --git a/documentation/docs/install/install.md b/documentation/docs/getting-started/install/install.md similarity index 92% rename from documentation/docs/install/install.md rename to documentation/docs/getting-started/install/install.md index a0c2108de..67148ea5e 100644 --- a/documentation/docs/install/install.md +++ b/documentation/docs/getting-started/install/install.md @@ -1,5 +1,5 @@ --- -sidebar_position: 1 +sidebar_position: 0 tags: [Начало] --- @@ -11,16 +11,16 @@ YAxUnit - это расширение для 1С:Предприятия, кот * 1С:Предприятие версии 8.3.10 или старше -## Установка в EDT +## Установка в 1С:Enterprise Development Tools (EDT) ### Первичная установка тестового движка в рабочее пространство (workspace) 1. Скачаем архив [релиза](https://github.com/bia-technologies/yaxunit/releases/latest) ![Страница релиза](images/gh-release.png) -2. Копируем из архива расширение расположенное в каталоге `exts/yaxunit/` в свой каталог с исходниками (не в воркспейс) +2. Копируем из архива расширение расположенное в каталоге `exts/yaxunit/` в свой каталог с исходниками (не в workspace) ![Содержимое архива](images/gh-release-content.png) -3. Импортируем проект расширения в воркспейс +3. Импортируем проект расширения в workspace ![Импорт проекта](images/project-import.png) 4. Привязываем импортированный проект расширения к конфигурации ![Связь с базовым проектом](images/link-base-project.png) diff --git a/documentation/docs/getting-started/recomendations.md b/documentation/docs/getting-started/recomendations.md new file mode 100644 index 000000000..0ae812ba3 --- /dev/null +++ b/documentation/docs/getting-started/recomendations.md @@ -0,0 +1,12 @@ +# Рекомендации + +* Для того чтобы лучше понять тестирование и научиться разным приемам читайте/ищите статьи по тестированию в других языках/продуктах. Большинство практик и примеров универсальные и никак не связаны с тем, что вы тестируете, разница лишь в инструментарии. +* Перед внедрением, когда вы уже попробовали и поняли необходимость использования тестов вам следует сразу же продумать и регламентировать + * Подход к организации тестов - что тестировать, что нет, как называть модули с тестами, как именовать модули помощники. Это все нужно чтобы упростить работу с тестами в будущем. + * Как вам валидировать "правильность" тестов, чтобы они были действительно полезными. + +## Внедрение + +* Если у вас в компании множество команд занимающихся тестированием, то вам следует: + * Продумать схему обновления, рекомендую использовать релизный репозиторий и обновление через git + * Возможно стоит создать свою версию движка на базе публичной версии, в которой вы будете собирать "помогаторы" тестирования для ваших продуктов. \ No newline at end of file diff --git a/documentation/docs/run/configuration.md b/documentation/docs/getting-started/run/configuration.md similarity index 96% rename from documentation/docs/run/configuration.md rename to documentation/docs/getting-started/run/configuration.md index 37122b8dd..591621c51 100644 --- a/documentation/docs/run/configuration.md +++ b/documentation/docs/getting-started/run/configuration.md @@ -28,12 +28,12 @@ ## Параметры логирования -| Имя параметра | Тип | Значение по умолчанию | Описание | -|---------------|-----------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------| -| `file` | `String` | `""` | Путь к файлу лога | +| Имя параметра | Тип | Значение по умолчанию | Описание | +|---------------|-----------|-----------------------|--------------------------------------------------------------------------------------------------------------------------------| +| `file` | `String` | `""` | Путь к файлу лога | | `enable` | `Boolean` | `Null` | Использование логирвания.
Если не указан, зависит от параметра `file` и `console`, если установлены - вкл, если нет - выкл | -| `console` | `Boolean` | `false` | Вывод лога в stdout (консоль) | -| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` | +| `console` | `Boolean` | `false` | Вывод лога в stdout (консоль) | +| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` | Примеры: diff --git a/documentation/docs/getting-started/run/images/from-configurator.png b/documentation/docs/getting-started/run/images/from-configurator.png new file mode 100644 index 0000000000000000000000000000000000000000..942d200e558bba01b203b79932be238cc36ffb36 GIT binary patch literal 60377 zcmZs?1y~$S)HT=;2!jt2+yewBxVsbFo#4UUo#5^yxVr}TB)A86cXu6R=lyp7eRlWX zk!NPAyQ^yI*1c8t^f?hq3R0*@1V{h?pvp*#s{jBjGW2Z?f`yiB4oUSuKM)aK+)LkL{ByK#{tlHbsUgXrieBB75DBa0J|nfm*+ z4AO$04WgkXXR&Z(XV)+M(N7H*Ykg=InhRVq3T}ANB*y`ukh0> zC_S~qXgOwop%<|CV8B8zoJRSd>*Uyo$p5Qu%pn+BZ3Xs@(_;uSE+!@>dvQr&;l&jB zxdFAS&CKF1$-ZFiVqaIn(q9Ef6gBnHN*ehEV*74&(i%|=Cu%>Dpvo_->o-O|{~>gjTOfKj)p)C<#d z^Uv_`@Yq;PPF}bm9CSe2W(nF_2Enz;j+)~g(81mv@RsVB;E#|sljv_;LMND9q`q2s z9;+#D)9MvMm&H-HpLCaImhu&~gM;POv( zRrftXHSzR*G9Q3K;0wxr3B*V&H+P ze={_@i%GT7^RI!G5kFC2K4Xa3vmV6V$Js3ZdXt13^NW^dZ)j|;F=CPkUg&LV@JQk3ivEH9C0MKmYQ?kde_Zit6PE3i+4z>x32>Bp`b+M?M}O zkl{oDph4viEbtix8H5osMqM%g`=GfIXTQHl%lZ-fOP8X%V`NT>+oLBhsA%+xBE z07`E$9!3y=0Gl^oHbb&hs^0!PVg&T+pF;1T1}IiwO7r&gEc^RirR?VFYS@1>y`<0= zL`{98pPs98ZMd|cYDr7vz%T#znFMW3o@Ym)=|W$8`ESTas*2 zkPhwKFDphq<-I8Dw0B}8#D)UicXNC)R+}QekCXuLjR)PZ*>U=*PhfOA`_-Kf&Yc13 zE|H0EQ#V2I$R4=WvnlMN@tll&JVQa~%s<*MtN%*(Lwm~t1QgB{Th61CbR>LTG!kEz z%= zX^B97jr~_Oy;PJ=XY-$X6YQX)PnRfiv9XP`Q`eb|;KWRb<>unfpAawkjkN0@atU5@ z2|A}AO?GQUOlW@?h%*p`&Jr_+-Qg6hPYM@I@=&Mt@bc>K?Y%i!RDJOTt?U^?0|k&L~B71bJVfQVn(oqSHh))l1%un2)-o(g9U!wI7 z2a8j%aInozVRj*-6UJe9hcS-kCAPSkE>gJSNVD3GJZAh==^>Wu8OF8E4x=ZBgNvl zDVxvxN7TdN@Q?-ZJkzTLA-3Y&ecR+g4nAZ3cZEuR2M)PEgy-Ob-^|hT;enGQmgUDah>(j|C|;QAn$`i=6X~GkI3vZN7PB2An{Qwtw<#`{b`vHm7{unLGRvLufs5THS3m%4?~6DjwFxzo)*)w=0!Gvu;PD3YWL}Nx#~P_WEoiy%GILas8xhf#=pM>eeKNsYbUU zRlmNYd$IyH<&XT^p_4%;hgYll-;VlJECr?mf4$tNq91dU)i?mGnig2l&vOD(C(02!ETZKPXsA;gDmGMi+PluBs3YYr$v?SNY-yGeRBRZ*qe(E2e zxkgJ1$ETD|`^<&%j0m*N+KQJ82dCC~Nz(qh)ZyLK zm-YP~lUo>wZ>Ir(;_2a$iW>Uj$Zwqw0?)i|o%q4yv7(Ckbtd(2n;7F@7Nh6}< z5@otf+1IS&Z*bd9U&ipwb4IPTK&DD&k{`J4douS)wY!(Sx=jb2ov# z!qwhG{nLcHsMrz?q9tgz$ zt`)ftv}Lt3^mmQY#5d+{^co>2t12%R@`^_ak7|FUnG=pvV#Ez<-*)>w|;07|{KQ_uPLT1_l+mXfWkH1ZYde;!*f z>(2kY6Lb&|Jl_3T5qaisBhX=YAB(mq#U!Y?v&Y+IInQv-hj89sPXqvIC&#Wm-=3}< zt8;0;;QL*j8^?6#@>89O#lwZjl4$y&h?Bu`2M25rr;?FT-s z577$-6kqwC$?0w+)KU#N$;e@aL7>4zi#kzq2?}ACjd6+XILzNe+fx->#s%3z5x!Wp zZdZoDZ(7zAHEip?j4B7!Tax_sP;+aU2>llv?vq_Lol0aw@XD*=#DT*pHN))~qhygj9jSm(=s9?N8W>k88{l?8G_u z7yv987@X*3$HP|?IA-_OTnOpqk&MfEcHa?G`J$_jz$xHWaOiBtcaf`|1L(g#X0p&J%XCXEPSl#~bl~B9o_rLzD z%v_+v?Rbf1S9<>%1>iG2qNTLv#S^bRNif(U;vQYE4zHuAZ5>spkQ|q=g|$(^A1g5$ z1_)BB!V?80zzX>K(rNri`dh~Uh7+NHRdy5GuX$Vze{}JEtbNx^aHphO4E&|oW~dy6 z3;zlh4FKJ8JUUWgCTH*ps}LMHK*zc;Mc3l{qxYMy(fkK;VYnm$kIDVEre&R^mMD1o zcM|2Zxee%48(T^9GI2#rFR082aF&UE-UOIfLShddk8XDJ^~6F@o{@p#*F$g*xoE^&GqZ;;WvAct45*xM7UFR2QwU4Wd34tJ+bR}K5>;=^K>tF~7(*7Z!-tT= z#!i7e7)%xn3Wmch!~69?+V*GNXqax`FX~1r9_t|XO2j84sz~@oUu6x_nA>)rS(OZO z|559V12(_CC+jjldW+GOi#5l~%ynX`3wkkqnC`W?0x&EYV+Kd;oBNoUHbl}(e0+R( z*;>i!t`;|= z!RMqpIZFS|RZ6E$MTAU*z%cNcXav@Qp~tE6c`+sI5=j!nZGWy^2i3~g<4$eCSiENZ zlvrM<15IP9A<-<*1+Up-dGa<)0e$}MxTbxGVZc!s&lS)7&1N~|q7u}|a8#kDLz-%& zjRvSmrGz{OU14*`e~iQin_<7OlU2Aw7sACZqs3gI>Ez&kk1}1I^Qxw4 z$ODCI#z;+iQf&yXndLz-dgd|5#s127g)vsveq!vjRZ5$_B*?+gcr zg*AK!8aa|IarMjx(8DB8QI&r%5qrY{$ugUWLB8l=SREW9;oVK^CF1%OiLFu;X0a3; zdhE=Gjo8wiUf-!Ji3@!`+u!VJ=;FE#x2~&JvBoQU-p(mCy2EkW9+?xzS?*GcNx^_% z6W~NgN3x>&Nj6#8q}wr)bPk31iSP-v6#6LS`6&O>X)0r%pO=quVXQ1fzgq zGsq9S0A%JxlDS5%5@gFCczKCk{R(&S#} z=6Th_B#=SYtPztm+aDbc21Jeq;{YcLA}_qeO-6w4Y%xFoH@Ch{8p)+_8#buq`_9+T zibo8>i04~G0@p>rDf37RreHh`vrDW>UG<;uR*n zIHS6z!V%+uV@8ibmDd~V_q@mH+DJLk_@pr#sfbI0s^Lr1;ggWKU8b>_`w-X&q6Y;u>9%% zN(xBryyt-a~>Qpm{NVGPA$S;f+7LVNh(5CAzYQ_*Q2wVuxMUtcHSkfl-}Q> zJ;jPzI_E`CL3^ax$8WJ;e@8Qa*<;2;(h1YsqaXr<11)JCL85jp&JB!b2m zt#1`mYY0M7Dd9Z4iwn6N5=d}C`T4@i(@06QivGAn(uu*<*>V&K7oRkR`|uqR)1LNe z8fDFx_!QTQYwIfLF|GHrl9fb2h;Xo&b?0k>pIKSm8>;EB-oXMylyq=t+#BE0i|}zM zoYyvWrd8rFLEm&7&+od&blo`ESs8zn1Yk;m(lwx&-pmvx0RjG1iMkeMgg8Y4W$&jB zWVA~4dF_`L%(Qf_viyosv;CoNTB|wB(pPN80Tyz5(pmd|qdMu*7t7!iW6A1V@)Kz)=tBiIVCzteMP;gQwQby!lS(tn?#k;1Z=A@p= zmvvpE)H}*if&QzwyoAk?xEy1Xd^x#_D{3k#zo}`qrb??%*b#8BFe1=h!0-948bo^i za3j1(v-)F}s_Yg(apd`^zEG@0SATmGjUoC-Aznw%oQAo>W^p`ujA0p^?Hfn#&tPkR z-Qz!}_w=qtCPQ9>_{>Nax}Cn;+B%ypu@{I+a$cHUg~;hoRmIw^S+a84947}_|D_SJ zLn<)Uk>m3p)W2iPlo12L)S{?v6fZo#aeii>7?quXsOm?2?B&|bx35fhQ?OWAV5~U3 zA>+9qt+~Z=XY(H5;@a?=%bSb$%aG7q0%{WwaG2x?I!vsprdD^%K!^B~uUzY>&XqDS z0b4Qlz(+>65tY0T1{3t(Iwe7QnfDUTd&+NaELA+ zCJpjW3vQmLw__o z-Z5AEeUp7%Vx5|b%L(b0H49-oV|R*hb+)$crDQ>&pP8K(1&04wAMZb7#miX~{hAFO z)#Lng)>jGRTq7%Q3i=VfaFUvxMwof#F?Sd(rO4JRnUlpz=Cy-?`}Ww*984oq*9u9b zz4KS(Uv*lKe45{n@gp$KNp+85i^ zU#S470__^j`|LuStyRD4a!+VJ(5c|UtNQcyxfHC&u1W{5Gh_QQsV;iea%X|qT*4O^ zqz!wbl!-=o%Rv*Z#tWwGeXO3R);VqQi2o8Tg&^S-4& zJOCmXUv)W2O`GU`cZ>)WqP91^cs%+rAg_c?bE&j7NUyg{&KoTSE_>hA)cLl&s^Go* zO|`D)KV-VN*Kq*=!LIwQx=)-eB~Em38Q9NsjiL4WYhA)^cV{n0_*i7$_%<(^?j&3- zS}M7%dpE#+&&}63qx;p8C*G$8vz9=UbZ*}*Sv1FjyXr= zq-KADzG*4gO&5X$fAw>Tp#X@QocgSKEyp>022zU8XTmT>i;j=#H9Zyjx4LlxF4pr) zo2}lR7Yst9=z0yjsYZb`4;rkq-Ul$`!MzIl>G(;&RJyH>(sFh$w$~{o0+#R6eyj6D zYMGy~l)!zQ@3qfqayJxOa)SRb6d+NSS_Q{mW&0s_okR;uy*@6i9`xfrklAdEzdQm% zIP0xyvELASXXsx|N2(mZ0$H79(jT#>pBJCfkc0iOxL(Yf|GuA%hlDOP63}zM18yJz zX*hOl<&nVeUlQ%S19sgiE{^gFlC1i$PUrC$bEi|3X4Bu}Iy3DIO>~*6W&d73Baf%l zpe26{nZIVn;*HI*J$SqMyNRxx7f8zLTCWYnHah}W^Ed#iwk*RN8+e^~)^s;P*T3V< zetatg`RK{UYVO;sN|Lu2PwYs^R<&RkIL^ozE@9vfuZOJ~)A9 z{U%Jf4R+Ic#HZH=Rly8g32v07Ege&TL=3ouH;l`P_}<(|H~?u~OL{6-^&LL+E`n28 z-Q>MYc-MJJnqO4d89bn5N&|O}_gO|()ayOGTMWUPlL5^t4De&HXDv=2;x65VK$a}4 zEcq+*{V4_PoTk~Mn~=vPJor6_)tB!%!FznYLnvMZmUf2n!7ev9r5(6UwJ6AjZR$bt zE&dmYkH6O|5HWyS2G%#T-6Pwuc{{!itDY{QFy6HJ3qWabNrmIR;w#ne=(-{+&#dZI z`TLNO=s4-o8Kt*U-j8Wekj$;;?~+JG+=DsPLg<6J5+>89 zJ#(TjY-i}H73&eDVd;LOijfX7OE4p?A(pB><#n=czxU7H)~DrUI7v!rT*URd>DVO$ zzM9yd@>}v)RaSvv0xD0R6NPM_crvYU1X|jmG}f6#m(f)auPm@v`Ij*K_n_vJy`e0!fcWA2Ht~rOt&!u)?PR18s z#dy-~?3*`gdxYO^qv;k4(-(y$G?I0_J@-%{u}9&9_Ljrb+d6z(MbYsI<&xQ(1S9$; zIesxL*q;6*spc4Nen0>4zow79CP1!StQ?rgW5LmgZF){#4z0s(yLcotQb%|86+quqR~mN&aLyR(ylCyG2rb?c;^gL(wCGTY2QAi;SY!)8Nd^N1L; zJez)IRjJube*3E})a#6=Lh{pc+owvsDJ=@6J3Q+ykC_EXsBxY)hi+7F94WqhfdKin zq0SF`&&jfSLD(6ewT9fo3WP>eY1racs-B?J{6*3coQ#=r6*O%)w(Q|n!8}I6c zyp>uXy9s0z_;<{G!1@65GW9zNY(>L4XK@shu^<4@tP%fo zOD61gllEot*|8YE{h-|yg&D_ke>2H=Y-N~zim^ zS2g_W#IVqFyYf62$F3{kh=!G)p~LQF4=F_Syu6w2rS#WP`^JEPH##dPCuWocER00r zPV$B9RfMthFSK8f22xO z>EuT?O=%^>*Xau!U9U<@e^V*(dn%wZxrd)6Y%lZs`CL1UE>9Ttx;c@VBJg+{A*R7^ z&D~R?tQ{O?Og?%-sFE{}hB!u)@j0EDL;Wk2wGB_~JK>O=`lm~m^!qc^-yd9$e>ZPK zf$730W`BaaRpr|@lu_u70K1$#C}V=w-`Grju>bK)?L&5sjvM7^)5~gXj#hf9IiXMb zB^Gin!7V}7n|;}IF74x+#^aTftbT->3nE2uc@LBiGr|feCEAxs881QEAuvDmv-p4GH!SN&T=^a?g+77>fIQ zbF%wY{JT(z0kRT%{rqjE%1VdFi;`VTs}HVoSI8J!e}4)9za3Y)iB8|yq|)6^kHE6M z=!p~E2)_NIM}>`~lnH|3nwUfbzTrq)6Hm^QTEa0ALZmT$Gd~`%R5>UxFlzA9Lsr7# zzZ(kSL^QD0vvPkn)#f~xAzrDg249Ja8DRt!r$nBdMD2I*x)b*0yax=U!N9+=W$9Ei z$lHF3dhA*KYv3<1(TDuUTRzJ#jYUgK6bY%q!kg3b3yO-ag)-C8qIm%;5Cf|PF3gAq zxMU~@5o&}O1Vg5s`lmYtDbP$ib{j8rNGM3@^_z%tP^^BK;Ulw!dj&)^SV^5Ab(i&r zamS~_Pl@qA3ccb#o$C(}@NMATIgg+cHi+g?f`YcWgK{tJ^YRCyo@Ae#-(?Gl`b^?d zzyTLq6GFjRdf5?53hmm@ViA~CbM9*S9MAgTyeD@X8~y=DIFWCbh_sQS(!lS;9bA%{ zf!dr=z=*OIFd_%{=LD-OQCUSsMS}IlPqX2xWzEdZX;T`s81iY#O-&+_y%|RKItS?4 z*r2a3c}jFCE)kqGp)YU^GIZZ*k8E+Y;HhAHlXtvClrbn2U#T(4DKRba@$nC&8{wf& zqzqDjVEbI2(eN!j^q#yNdv=we9811DJN*cjIP|3#ELuMOZkqAfOY;5jV*Z+LusSz| zus{lLIU$ESgcltOUl@ji%li{>$>CrFW7U@b{Sz*wDx^sy0|hIw7~1KfIsSHRoha^s zWQxzyY7WN4cEki236Ul{qtl0h3GCHNY8Dun1j#u$$=TSVC=r9>kJ82`G(gYZw8VXj zAItAzwz)%%FhpTtsIbe?&bq-Q8&MddAA_K{T|C*w%krm)h)IS5ak!vJZE_mfZ^l-( z7UyzEA+l86x>=edmOA)^SXrr=rAnr_nef|KNR2lrG4gU%H07ltHQ)X__%jn6#%1~V z$1ziwEcu8)+7+b_vrbMb%t))1pY0rk*bMnVER!gjC#+dqkm8+YewGkuZiq`BURin5 zTw|A!uHjh6l@y_F@e}DK_KJZc$~P_7$6;Tspg5~ReCj#rs!2z~TvF{pH!xskdLB|d zc}kDas+XOPor6uP+Zp;@OXX|Q-cWK$H!>QfjHsq!D3@hxVnRYfdSWs*skKJm+(NIk zlvKG=a)HQkt$i>!pGNjeA=PvOG$yK_*M?{J&WnRWiw!$3Y!?P+B|jyI$_5F;!OlMH zeTeM}{#Gh4nZf1zykR_@D)5*DgO`pL1xooA6&({pi?lv+WA^_+3OhfEOb@&N3DnUM z75gZ*Mp-#(X>I+5GO=Z$MUhmrV%{k^ye}krJwRQ${3{t)32K4-uIKc%ng}o=;^g}_ zNu1QC!i7LgkY5mAdL{Rns*9Fduk|ZjKyYvzr3@ayR#T-Zlx|`o*w@=HuA^2qo`Fq> zC6fq;hQ9l=F5+_FAdXgsrPzGdA^2ek3KW9H4bB6FT63Y*4@Iz`xi0S+r0=P9hB5o8 zw)Qy^iI%2U^{~BVJX-=~G7&g9yUy4LR|-!O;7 zRiU+nDK7D1X>z2dOpfmVD;-*~tXWfaHii&K_bAuA8bm)p}kHM-tJihi1}+X`_RZCv5GAmD3C^z_Y_`lSu5V*n^m`tYm14H3|M02O^yAj=>D?wj13*V0T&j)<@8_F;QACOi`;wt&=jLzJuJ-2Z+*uQ9J~ddn zn|X-EM<|%h@%2o-ECTK0#MF7M`B3lNQS06jln*5R!gvfhE~jI|^7wk-GZdNBtzF#3 z&2ByaxWRyS$fKCeTh(0jWOUG+mm-^&x-_Vw=MylYlf#Fh&Ccq8&*t_c!|(SnBE1il zqzdehXpfMQEv%j+>gzogNsJN;G@djoYAhh_1Fk)vHH2AlFSDxKTp8C^iC=sD*u21> z+PWsgrS3BHkyzqq+?_%u#;mhBNs+U2v6lpg6FM;pC?3wL{3#Tsw8an#RUi3|HanU2^-ZscK?Hd=2H71|l2JF^+ z=(gy$4f0wlqvdS%SA&)lzO;AxX$p7N5&Cf27*6whO`m;}u!IBok&gLx=cm=v8piK_ zMp)=?ew+}na-XzoM>=a*r2ZV#jt7NZ#VxOYX4j`xpXT2PI(!s#-=ok_tTNW4ULIdP z%C3FWbKnF5Sa*UHwJM6Nb^1;ijOCGrA-qh7P4}qZWvn}6z3tZL+BNd(V0zTLlq9&T zd$SNzjld!}&-j=iFhKlx5|O>kq>BjaK=A7r4)|A>>(l1-6rc~{_LQ@VF?ShE`lNA2 z!f6cDTF&=bzRi|I((!!R{57?cnHnGpbm#$q%kQ?I?>a%0EbdwCb}c;69efWd#Lw%n z+2gGDRn1EQXGg8Rj;}Weu3_!Ds zM3)Hj>i!ORaXEfQguuu!q{rbcO-M*h<4*p+Fsw4Bd278ciAyfaOYoEY%1zoT5}}&d z8KLpKRpkcCw-sYqYf87HsnH*B@pCrQK}&Z#s=fjFO^UHobb^W84Nm_=0M@Y3SvMg+ zv33|Aqg!@t)yX2;5fM8Q`d2yGh<#3`#73Q_f5E7H6;0F{1hO#j-3p~uF*~$B*`+VC zmbF;04Vt?#jkK0!_H!WiAF_y?+A*#IAm@z4wtcyS#C~uANdsL;Un-7aKm?=OIqqE` zBtee>7z*%k1Onf|&LG_MrEeof={{^Okwvxcx}he%my;D~O~$gCQON&5CSyHTn1Gy@ z9#YEJ*<;{VG7?f`lVHq49^bIx2_Vc8Pop&C^&CZJDfYqx&AmwAfg~w^fqPeU3Er+MCekV43H=2yD9NvZ3 z;j^EvjF>)W0+Yo@8k5~|Tmq(GS)Z)Pa;{(gjn0IcBAC+K zr19LW2PnCr5{etV@-biuxipBBDP?tI zs{L;$hL%g5@JDq;(e2U-o0+T@91%*3r#W|%o% z;*RU@nSV8L2F356brkb01&7PC#jdLS4U3$FrPlTMOs`Y4s>AzKRLa7Y=_2_ZrDTeX zmFUzn)V8nufxrJ+e+G6pySMo2wrARw7)9apa&q{(9?HPJ({tKLX%~N?E-rk!qwU#p z{t2T=@~JjAy2JZezv{iKG-`WXvll^Rna`FlUFVkx$uHWm zM!ncD@qQvp*LzN_A_Y(5A9^W8a1lg>baO2w`#b+ueZpXe@QxqK>IUT^&{8RulB>JVDE%Eqln^LvZxXM_qup z)^6{&fSx(8w)55~r&kx$S-&;w@k36diF@=?Ktlv$Ig|C}#co^HwDxuxb$pajdavF7 z>WG!BQNCRd<~O~xa=Z0zKpZTLMK+VQ=VKQogNukoKwO)zKshFJ1V?jRdw z6r8Rgv=4zH5kl~Q@D{7*Ghf`hX}>x*07c2g4|UtF%vPC?FsQ<=e5gT8g+Gjqz@%oulScj4l)0h6UmR{fhz33KKFV5$BTZ(0P>}P@} z`_7xA+2gB^+iF6{pfKiav%isrRI_O~9kZ%rlk-@cF_A_Kih2L)NvAgL+_nXgQO}}_0(O+*QNIK}xKNoY2_Xwd3BfnbXxYZ8mXNd-Ap*eb`&0uHw z#onw~f^_c34~N6OWkU(&QJ0hv{-3Gt$mzm!)TAji&^85bua&!L^n;;0aRvlf*~!GFJJM#VLYKY~FZSVXvW2&yEmhJFN|y zBj}v4yH^=1pc)J9o(@+N?bQELT6p8Y)Kn!J?46i<{mfmc2H{06G7?M&&3oXa5|Xtj zQV$QH7)=#p@{o&Km6diQL@0>veQ8jj7Qfj3?>NxEFsw|nzDlMECXkWWL$%)cQBRXC)K zrF{&JEKi}7NzA9o3s7^Vjf|V72zl?jJfUrz&x=#SyrTQuoGMMpH1HpNK1i6G|0|w` zxnU?UFhMkdbfRQIqC^tPrh}FBX;aZuKV_-2Scq0y z+!aqZ@JoDkT?i+mhT9$_(=Ow*I3{6qv5Q7f-znT)yKC1T2QAw+);^oU%vTFGmT`^-8lvqAfwL86Xp30mFLwC zmqPpH^sZ;WsV%qV$KbpO`m}1&)u+7zNC_qjkK%ThY(7@* zNqdth>pH3L&;#vOqJSwygk2U|{mlgCe;THb-08&oI?eK>y?6z<=$@Ufl;OZ`ux|f~ zC&72iuDp~gVet*geQ+4$QEMy>GDNUy4NvSoLxP3`IWQb;!tjZ8J6?v)Wl4(O5QR9# zmNA7Pf4lm`P*re6AMJW}r0n6>D&p7IOKX#~_n`6GbN7xq!^y5tc18;yPpXl`$9_vN z-psdnr}LT}YOLGv+Rxpeo?LO*L%L_6^Z=ksYj3T9ZMH=~Q<7Bu`}YSNfNHx&GZRH`Aq)Va`vxKXBj>L9y@Q@qdgfmb zmDkd0ij)>*GWYXhLm7q3vOd;56|XouRD_t=k2PB39o%^BX8Za0GQF5V1Z2(hZ7rV; zX-Hqv@39+ASjj%ZdZq!k)#KU(FEm9HPKF>uXV%rlm-yy_p1_m@`(`V>Q%u+2-yd*r z+7Uu<-y9{m?Xif7NE<&r{^to&{!71bQbGH+W<6^%Q?t&f0tH>wy%>7*S{-st<~KWB zVyc?^do5r#FZ#IdKah^FQlX+lqwzwVa6IJ*>+?(^{kDmF{&=zB@deg@GS91x_S^py zowYgt{}L<>l8?cuZnn?sPFIFdJy-qt9e;4Yc+B5*gihZV28!pHqlxmlMyn-0?d6TT z(v``n>Z~k`Ud6u8l@$LLsBwjqZ~4W`)=ty2vOFPAv_UggD;@47XXg{dn=X>VURbtcHgya5nN1N!6kotOySDg}THs||dw}PgXiLHqMUsRub z#2&iVsVMN~`S)b@zE<~kIO*MSz1H5*abP}{VT>1Jw6BU&Xesd3fCO*m<($TBi%n=);rJ+V z4a?tNz;ko089(#twPAffa}+KhnorkTJ>${c-~33VSF!J z*Br-pOEFK4LxYFQ1|?DkI{)lU*ZVs&=868z+m2Rtp4%y&@!d!7we*hABkcBQzbtVQ zE!ND|+Q}E&cK-Z(k%l8Oz<)^~n3uCWC|I>`(+2JdfcEiKzG95$F#;aA>p4W6<%P09 z$IBV@eEWPni;&y9XDk;}XN@~^U}7Q`iC!*a=vzHnKOyghIf08bc`t!QmkPBzLF7od|z}E|g@8LDGjc z!&c)Ey2*c~kw;gJb6%HuMTGbFDt0TLEY!!X6aLySX{2pU`{({`X6O7b zGY#8U)&^mk9P{=9d;hBRt);X+yeiDw7#KhqHcF_k3mzv;_jM^6n$2s`H7X94J+Af) z3m3hf#rKRg1#5N~UpTX4jbTcyI4$q(3LSp;>s`cfYIJs`c3+5UGSs+)3y0G_py52e ze9$#)(sg)9ov%ysT^!4Ji-{M~tH12(xp`^6KQT1fZ+><9Vdcm4xcBshdW3VrCT;oh zsbiAW@xR&C{5O5|Tv5vW$Gv@b7&;pp+pd$Rq-5y2ShtTe%#J}AS$T}1|JPVXM7g68 zwlD7)@9k-9U@F6cesc9D|zZ6M+Gp`w1tb=;jT&oA<4k6BAN_^*4GEqX#Bvw6Duql|H;>!zZJm5r297o85CGvp zlxUhjvJx3{Z4HioT0(E@f$r3T{yFfT+$Oh%Yfz-dRJb@TSBZRjy$}+Ebu;O5UUjM! z35m#dh;FRjdZ&Bi*mryg>5l%}ULwbCQBKuQ&fMEU5jIkMp84c*SK%v#SQr2yTo?`j zb25!b_@QU7cQM;;T9qChf79bO44lGH_t)La?y!0~KP_Qgz|G$Pj-O4-{udV@U{@){ z@cx9`$#*{Cn6KmQnrJ@r>%t0*K98r(w~owrK>7d8KB>^C*^un<1))^z$TEwnHCCs9 z-$ZWDFO#U}%5=E|7+0%9S3BU5|0nX6>&(O69)q>>n(g55mKMKUC(`_k#Y&6Fj2Ps|kn0_CX9v5`3M?RiC24Tdf6LO*idXWeI*ZulNZI(0n*WVNnt zksVj=TGRooC;k44wght}0F*$NI%X2f*ir(CipsV!{AR$7UgIJ?_ux;@d~(^^W_B$n zg#imzvp&dl*;NuoLU8FV>Lb?7j;c`U7P(q=-qZ#bncsf0-I&s#0s+$XXR5~nI-W-Y zRb5&vU1)(uDY}PQX62UWJ8u^q(4_@NSXbBk^)LK2?q2Wv4{u@n)=PXa0no*+_3i83 zOB1cFI|hhcc0T_y9RE9^%AZgFr)TZ$;G0%O)Gr;ZLy&=h+W&*Jw+@Tz>9U2JK!6Y| z!Gc53puvMf6WrY;Xz<`J36?;had&t31{wkh?yilyyK_%|@67kjJ2UsM+fP3{-B8_C z=TN(9ueJAHMaJeclgeeXhzSy#Bog$hj#-{Xh^Rl}F0Uao7TRRVh@@RgTs%}_c+;TG zos;&XbneZWc+Q_C9_*KcCF%`Q_iqNl@&@f{LOR@*?Z_G|1Rn+x$K|3^m@1F5;x!E? zLuP&?+UU%=Xo+b*Zh$BjFZ*dj2DEsO>BUgPb(qrU7NgyfK_YX_)58l-RkpgMwOAld zRz2I_6SCboi^ij+JRGj*E_pAgZ8`1DD~jj7d8h{DSCCCaQ`Rx_SEOuG_@e;kU*hl| z`4Ia9hD?WIMp`tQ#lvcbP0J=W<|QY=ntrgSRiPl)?S%~C6@KNV4DNNc{?-z&up8A% z@QNe>Tj}c9->v?HAHt?dQZ{$_^A6YZ=Kio{TpkpO{j_p=v*?fk)~!1zlIh^lj>iGe z3($k7MG{CvR(2uF>FM}N6ymKY5eR!_^#gARA2p=J{NG2@W4e9-;E={00Iq;L&+neRLhAxU1|mp`vm+5Hb1Sn z(c%&i2IDOGJtc{@9E#t_h+U;_XW5SB@tc6p)gD-fr!_46To!&XaeiRes4M z66hw4xwT~QmR~0;KAOi0k=34?*wedl(H_2mn)^{1)n<+~>Ywj1qLOtiLxNqyO zZ?7+o68cxX;u}mR(5!nyvlX+#b<$q&^6&N=q8qn#`R6_Qod*2qd@y01Jg9bkJCaVZ zbV1Oj3uH829yb11qKKz1a^rk)jsV5}a+)|nGzb7C;Nr(Xp!Sbsm%jURFtO9t1+$`p z_1vv~-9&GXoyvc0DrC(BAd#pn>=u(!u2MjgL+iP^XLs$5B;^B9vcw54XJXA`Po2Ib zi-Jv@Q>_fYLpN`Q-#1)lwbS{08hPTY()j8U~ERR;@_{PSj6n7 zorX48W$qorL*T{L?p9X}L1lbnR%11g^RY+SB9cm(J3Eu+?M>?~AgQvy7wWdw_AX$U zZE!CcuaP)DL37UWWZyN4Ke!3=X#T1CWllIJIirc)_=udM_6D8PWl7|c0uhB`05 zhei!jg2&jSGPMd|4a&PX>EsW&C3SFb4{aYoi!cd2`DAO|{81eD5;^qf#TDiIQchFz ze1fB6?2?wxd?{<8cWQCqs6oYBgnzVY7zq-iKYkzkI?Vnl$k?EQWXEc9vdoi*C&lg{ zWoYipBTi=qu=cGV4G*Q?Sf`Z_4lJh3h0i&{maF7PRT)V)FN$e(z&|)4S`?3Fe#Vat zeMWJy#aPM%Si)xzWn>>z0W{0!;5oTDXQO)N7dCx}6)$qI1V0P+tB3Jm5m#G}6IwoD zxb3C%*V2bxahGHlXeb13%)G4NfxZCt_PeepxmFJjqc|Kf3#Zb}oXTpIVxRB(`vZ&w z-r#QmL_9}=o?{x51rBFRlpUe~hUgm_TDNHL!-zoqNJzXJ(@u^TAn(0NSBayqKjyXS zKNUl8=mQwx7p+dU+sE^c90|Y=`7*jr=A`jNT!y3+Y@oYnaqoYb<7dn6_@{pQwDwLm zd4T`o2O^03c0ZS!zakCJRX+IrvAk1qpy}aPf&zBWGfX6JFAcX`mZov{W(c!WJ%rTM78L6(42?PIJR%?3Sb_V?e1Ljy+;m;E73 zjVk4%txj_9O^#`nv-F#RWP&eDs@@$XCF8RYE51pF=RlryoPtJvK67%tduOS?7 z9QCN%1hO78sR%*G2Xp6tbS~$Y%(pJHUJnmCeYUo=h8NYG{W*4Sd3{T{aZCg*!vn{I z=Qc>{9CFr3v8oo#YqdXpBOj@b+)mBGb$`w|u&7ALz$xtU1K~0DkDf)uP zScUymL`@Wt?cEFvw)^x08IW@#wru5}8Ynz){IV4lW@2@h0lT1#X~lR^JH}4<^`Ta5 zzIm_cg6AIPeTL#dvU^Q{{Y;DnC%L2PZUwqA5txtzlUZh1oYKeu z^~LIjDe`vU(@@uRaVMkq3xSy4g6wnwk5i+qNFpTB*GS^;?wQRNXIo`CAMYPfAnEYL z)Ek&BPv|vqU(*xJ%mQY)VTi&GXJJWlE$MHY7oE1hPRvNJee@O87o(vwq>Ql35OgyY zoSGgzsPUUcQ?@~S*E{~*?@Ry|WFcU3b}_vbu#_s;+Dq-Y(g7ubHCDg+N$Cd{!b^3h zIiD;iB%Pt6*zP|5nQx2k?y-5h_Yy%fc+{_A&g;qLV^2r{e>~)X+j1gu@rok`XZ7>9 zky^(?l@zQ%yD$UH`w&XU9R;K;POcxcwF6#Bd#^>*xN5k6G(9EO>a{rPl}TFEAHes0 zI7DM(TWz)uG6T6js+GMduuO75Dtv5ejYTlP2`%~5xv;Ab(cr*N>TxrG=KHo zV1I&SkG=Ky!cn?Ysa(c@_?eT8w^@H8{CK~`GC8dqT~5e>UE}`#TH31TyN35NA+M_< z%$-a8_Rp|kjbFx`DVuChr}aps-T48u2wkepTcH2}#0f1Igcd4{48h{PnD`&rRjIQ< zA|x%fVM)Ma@~4yKbKaj7uFP$tE?=FPXO+eN{^??!BhJ>Vwh)QpeU)v7&($Fc7ipuf zd@Lv36IGcQ-GkYzW#qkDzd}H;!Yv~#;6ArHr|k}#H794z#o4%_ud33ug^O{3+2UxX_Btss7GiMtSAipUtm~sjg;HTq!?Os=j#RG!=NtiY-c}?X+0Pr|i9? zOD(E9&)}7?(DO={;V66y>bX5G+L`M_w3inc_kc9STcW>qfS)#SST}ZJv9KRX<*jVKY>HJ3#@;*Er=Kv(Fi%@$@ zhTOgQ=%x zEh%-V_Z%&r!f!8R+ISAWMmtz#yQba5cOwMNdilQhDg3B~$zDUW7jD5CB zl!t8Uy``B|hr;iXy2^3CYxtt+yZ1#{Lnx64B&pMFZA6ch6#J84-SFc5qWW8Es!##q zWVx@`7Z?5n%w=+L@ddm&D8zXeK16Y1>5M6^3=-%}N4(k6K%RUv(-cANDAqvJZIauL zgXXbH63UnqP$$PhMkV8OC8R2Ep(CtdWM_frv%ef82XfdS60{bTfKvwBu=P|o%crx_C#w&IylQP~7JqPdz+dOZ&|MX`4@F$;^0`XAhWq(yk|&=k+RPQxAywfH)7gVLHh>@CWk zyzY5pUws2j4I*3c*uNyE1D?Q(DeB7sGcliOY#MpW4MO?(Mn7LFG9`F=sxG(H;yzO|2nCy8TA#v&Y01tJ37Al$JSZCeqWRqNFCEag=`vszAYYU z=MC$Y9k~S+C8~b^ZzmMa<(G7gkPAKG->&3J-|}NN2h~vB-eSzEK3BezPGjW}fRakl zS-D&!&$rf>pO`*u*u{uhe@5GT!&RJe`zVM(o7-kW_fQ7$x+s_UTuTaF9~xsTCqS*P zo@^8@E19tVGl$In8aF{ZEmCi0v%27-O7+27^Lqe()>g|7yxWdt6Z$(>!lxTU2nTmn zLW+uxuG6JK0<%!wf1mTa{aiQq8GJgxQqxN)82c{K|*Y528@??f^pk17L0>vx<)*_`Qq!e_w6rN z-=}$UW8Q)oeE(Iv2Agt4QGS*QC;kcg^;Oay4E#9qwq@ZK^}N>!fmz`wdE)XQ^*1Hd5lQT(N`=V z1kjwE@Wbck1td_qj{ZO&Vugx?BmX6$WWy!lDGJ`bBc^&{%SO1WHsSKH$?>ZXj;VH165uxa?o|~`JJ;!03aWPM#`6`6)9$~A`m_luS??G}z zNy5Fi6=GAMWoHJZDUtd_!hH-7XkUH(5($)bQC+xT|9ny4Ue*yL1{2IuqT=T#%{T}R z%|4~a5k2K%z;ke`n<%u8eepgB_uPIPyqJbJXK}pL8rtYiV+X*JO00-S9zpl_xV?Nvcy_mR-%C!*Mu1p&^vGM?&&bRe6 z_7D-z%w4^gY{0(}=dm(=;Lcip=W2#hL5ZyrQd){Wsem?*$Yhc0K<9dkoU7z5s0;bgN)&ga z-$G8|)A;L`m2OxkD+Ikf{wMFkJ4*c^O_vpZ`9K<4=Zt@Ds`_k>wpeUnk~O)ZZAeV}^9CpeU;E*y6Qq zsYS=6h~D_BN6jgXkpye(6cJnHOu+}EH`LtTzp2?V@ZB$?HXiM{lqe~8@>Mye%TpTOLB`ZC|4hHGa_t@(*;_jwWEYIf| zWt*XxbtE%Yz2CFyV>S<@V|{;~lM4GJ9t3u{rl+v_n z@p+4nZf{@PeuRh!avp0cl4zB*SIFeujFVt`bKqM`K^)^*?Wgt>^COmX!l$vo5Fhm2 z&enxJ*^Rx3LWsk8=rd2l#UV?-`Q_F5BdheYc5e^wc9&ZvT}=yqEPGf3?+F2cb9&W^ zPBQ0ak9)`iTlB#9xSEg%ULPA;>!ek1Jx&)vOEX{EL*d+uO!{sAjPkY9clsHJyywx+ z0MwD&tiIRq-gdUD@{`4INk-9iE7gF!E|EHchV97Mgw3+>X!I2VV_K=4ye_Bh#?O^yKnc+*^vikH2~KA1JdcW8AFImyE`CTI;qh&#+JiKfeThtAEL3|78ka zfBwU22E`W6gU0jASiSl8%Z-yAY5IY3bCW+_QZZ{BE{;cDZLVg2N*Stuj3H(2$$idp zlQLO=aQu@fKV;#W?~D5+gy6_~q(mc#Dk6>=Q23$E04}R?2v8J$376+zy(6J)eK1`)xVe*pXOfbEu=hkhSw+1@ffiZsDC-lk?VFH_|fPi!0Y}-~O$Hn9vF^h}?=pcm>?#dljw!NaH-YdDSbdE{gu0J#I_W3cqjTgppq^ zS9aX&Q#_d2J)GAqNx9*wC|h_`r3W2yI$TFkWb1hWFsQ&nbu3?jarihIn{n7)YHa?01M zhU;*z<*vRWtju?aKD`$uIqg@!|M#Lm|PJo;z(kUmTc6*9H-R zxXdlx)sqyiBAv${pDBGJlV1tJgT#B9mFeW|9?fWuD>G?a+cV%P-S-ttB+zB=%by!o zVogB^J-@0phQ{#<;t4lv{6uCNt_uPrNKuR&KNhXZHsGhI$B|Yy$iiszC(`-U;#+gy zr~JA?l8yxJrwWw|wcF1uoi5Enu~fme{Na<(V|q6}F9VRTH3Wk=L^G=Ec93k}%SpGx zKF-)UQy@6YsU+;9%&}C&dr`if-H4}M1w;Eb`zq5v+4d>Z`a3R}1Y7JcXBF^9rF~JJ zjb#MQ^DLmZn-=)t-lZGPt7CO_$U+lsvFW;LCNs9)C1j_EU4))YxY>nFgix%9KvL<- zE&PA99H4;k(^7#qn)AylLKhF|ahwH2{)MAOZsC<-Rb#1iJQ-YjR+OM+KJoDA*B+LW z{|TIrK7;a9h0UVBR3uSBfk^}FyD~?^P~s~n5fPlP9w0!50McN(kO7Qt4S|e}xz`t7 z7oo3 zDM0;gC%*21(=i(&M_g4Q-os?DlUn}BzA`h-N~hIyS(FaF@Lof}(IJE595=_Uf4u@2 zV5B(aQCE^_4M_*u?9hPeftjW~y$C6(a2@V`iz^NaDm>_y%OB4`%Uq71)9S8TTU#-! zLbxCTJ2@C+EYQSKbc2{3GX0X^)E-+48st7Im$rrDeOHRK!pTW%yQ|%~K;uLs;hl|H zH=S^8jf5*Q5a@eyYrYPNwpUgZ+ZH=-y{e;6N`LxPx57n*zML(;RBM|$CzawPk>T&Om$WN#d@?S}R9R_(wlN z5UNJ@=JDj$P6VTU)Eje<68a+5MOi*sRWbul994m0%wo6WqOUB-|D-$P8OZ-mW40>6 zWXVOcyex*RH<3i(B}nPXexs}1+w_4leM!Ob=skZ$IWMFVu2dZ%qnpx4X*sM@of=o%^45WS@jA`Q{YaXEkKbj+%`2ZA;ix98Z@9&Gpx^= zHa`i?n0Mo;M$+TcsZpRB!fKHSHk5nB-W&1y;Png)3zXe*y&%jbX^l|&x&^tnn&ke} zfdBUVGAJ9XDYe^lk~oL#cL3j!8ser}4m?q*Fe)u=$WB~}Oq5>mPu$&0RB(>UtIpLt z37;G}f8NP$9*qjoamlDhz)N1mF;M=5Iw_Ha8lCax>Q`oZu_m$bU#=C|sd&`BCpT#$ z%;HnW^ri715{6%l?n8DeZ*i?A%BHn2PDGDY8IZs*%II}2o`ac%S}I_q8;LqcVt~F| zvB+O%8hbSu?-`)9$Ww}qN*UPr5Xe872oA*t<9*X%M9PnR3wZw7Q)ra3lxBi1V)0-i zLSMG)+obyfyAcOniwHgP?qMvIENZm^UIMHOC11NoR`B`eeW>jn%SSq&R~&H|l4SQ5 z5-1q187fra{8i&T6hW(dvz~JMlTvXrDMyq|^`F|6!&KY!s}8Bu*orE^u^)nJr?$E1 zG#lb=Gq1mCR^&J?`f*udsyxWQReJ?M4j;E-*<^5^G;ee|6}B3P+BE$?a{=C6bA;jP zF|0(C2@_m3C324VGeu0kGy9HjWBaM-$_iaYU58+rk(TF9$?NPzr;UDy3y~fC5RUR% zNyjpt`ZD=yxrhp?NMgFd=centsp|?Zrex>S7Fni2&U_KcQ?VtjpSTvJ;OOSXzd;9^VMll!#f z=%+Wq9Q5b#sc^z4<0ZLVHab zo;FUu02-M+Pm05rnZKf6QUP>#^;Ft1$NcNnoSfGmC#$tBPR1HTu&mv5R6-=N@m=M) zgmvmm6e0s%3TUA@WD+=i#5w1|e2#6OK~37EZPZzL_8caC?mjnlZv*?j-7<8!V>3+ zQ`78*dHZr3`P!6qFZE7CM3<#nw|LC$Ax-H)X^)*xhqSU^rG35#`P*2ODB?p69gzSD zrdqAimeyx^E)H$R;znh$p^!$#S~v2Y30Ruw>i9NEsIk5n>d(2_8)v%ZfY@Ho*F;pF zm*>4a!3t;?5o~Nc)_M81I;yFOT94r&2T{Mr<5qaak&5@r>cS3j<59Tf*bGZ)(p=Dbyn# zp3w_Q#hK`@3tqC|hI;y1)u*h=+zj3-P8l9@^VSCES4Jr3G#4Gg$Bo|l;Z`h|_11RR zX#5l^&NCDj6T^0M?y7~2Gioy>A7yF=Ezi8UB=#itUlT{97x-tK3|eSK05YCP8uG$@ zyQA!p_v=Y)nK)F5a7BQ&Wa<06TwwhS&2Cesr4Pqd@eP4NHhnTt%R0|_E!ntBz+l6@Rh|6!Z+Q>%z#J>oxt$Ag<^LqD8L&K08q$8 zf@QWZ7O)p_{3GW1`q$3ZP5kPa?gp87I#SOIURskUvXEAN)!3(I~L7M6#sb3OUq4{R#c1|{oIO7 zV2r4rZFX=!TuA`vihbiUE?-2r=em%vg0po=e_`MX$xkx;WZrm{Z=4U(z9da)9yGCGyTM77Yb>m?+lIN0HAP`HbyO;oe~At_rrb z?K?(zdUrsoXHBKr8%FRJhf>mX1v4>4>C!T|*n1Cl153rJ2#~F&$7uZf?qkPq{3vm1 z1iO!J%!||FM1A_%-tb!wwKrpX+2(BRNE+tN?$nOH!K$zfCm$wmdaneH$E4{i->mfg z?F?l=zsuvV&mAiIeO5vHDh|o{k7V=S=CX7dJ6X-;>gYG+aR}iM3_4ZxxAT-G2d`l0 zaGN%U$W9q0ta7uAZor2)?^AX7J1YV!@pZu=)+ZX$SeI`X1{F0Pw6L)v=C=vWdSkj( zR<4LoKU8U6vSKReLa!^dypEm-QCR7BTeq>BmAqbgxyT$D31(#~+uyCnb;IWr`+W)k z!mscs;h|eaig%2Y&^|Lg5&nzYAbeUAy@v#znYg%txrt=dwzS}$ z7e9>;u_J0XuuRW(l%5U10b-lM8|2R0jn-GsIUe6oRFYayRc{II73tg6&;>6aqBXtgtXDu6YYn(kMc_wmO3fB9N*OZuVZtW;TQ0V|%ZaR}UdK}}(d`*lS04fE{7xBz z!QBaqBGN4b0q8&)R-do6l!WC{w%_oFZ&JKV5g8dwvh=NIs1I`!ZrtZ4?{fQk)6Ac_ ziqOJ*iECIJ9@c6Q9Me-zN%jaB;|v3zw2AQe4GxH@$aR{~ZT^xcnAadR26r1KHcR-3_XeHghx}~G;A3GBA<}S3zj64Y$sVLiaf{y(i zuZ(4Kgk^yR#3awr%2jXu(L3U*a0s`;u~qodktYtriIJYEw|d)10o-ZTZe%;Wm{L8i zh|D1V6+cC`FUh>`2j~8jM)jd`-_KjF7a)prQvMx#pM?@Pu83c8vTVO=>dV>qX=01x zdCI|NvbCh$b3n@=9#AKc{(+M3)Qy|1Z8OVTC7r_qTg#Q&ad6BL;~bj?Sxmx%M(?@{{up7 zs!{y|A(UwciZrB^c_*`Zwzj;`twsw1d?ApOC^?l+w<5VY z|EJ2dtxZ|-cObsY>uZ2&n{CFdaXEn3!o6Wkn@$ty4yqx}uEbL&v+0qXw+C@Fi~1ot znENxPT}t!PXO}IQhVSPdK6lLWUYI@=KGNa5vn;&(q6lLGVK2_@nsOeQs`w@>NUN1T zdGj}500Jc%xAGnaoBeBu<>Mi9&3yA7?su(t0h~7JVckCfxau$?!%@M=R*E4zAlw_b zp?3A2TErt^XQJ?n=$Z_WH;@mhO=)tz>X(xs>S&VG{=_)g@~j#J>e6iWl1JBA3ifBp z+d!nZ^$@b0Y00|W#0ds2XODBCZ4rh=JvPFdv$!w?g)*hg!pHAm)Y41V&mCEV#`@!a z>l9Hxu6`Th;MS9k`9nf@R4FVGO<3i4Il{KJDnxKbgly_i8ewwxJlu1hF5|-^J}VVA z1Mh`8>Oc`oriwz{DGOb`&&@g0cHYID2z-rzZkP0A$wl$-4GRP)uFDQ1V^%c~+LWaV z#EpG8mL~)LuR{_Vv0~phf&vlItZ(X;R*+@0$IYuEuKX4P^Dn za20V6NxR>+k@U>uXL+x{XlPGothR}&gF_N5A4L_oyb?UrOQx~Cm$wx1@;I@nugIc; z#WXJUYP^Sf)B&lX2@an z%6uP*3mYW^BjV2HWT6pAHjAsH&9A$K5Kv>|Ava^Fl+VR8sN(<5%^>f;o!=22-{35C zdzNPyL$T;Z$EDBAlV7BhG1@>vJFC105+qQ2J5zU0C0GiQ1&h2pye$L!IEGBBcf)~5 zln~y!T1`P_bSLmz-@sdmBoHvL*bG(uw!c#sCQzq=N;psis2ZbXO-Lk3MN6uRKZW6g zQL{pGCl~@1;)vd5#LScdUgQMJjfrtwG1qJvjiwb|w({DPBKe~9V`5LbKQ>rO|8uC! zP3rjvhMwG_=UzI!adST3=WhQ{_d({?Ku^AGT9nveREN(0n-lsUw7|a^_`g2FI9OnZ`}L;rX3XlS zLO|4DfwLj5;|g4m)Yqr%pkTu9=@1iHc`@rB5_Yyv(zj~YM=Vj>CJ~MSSdge#kgKP zwy7Vncm0$gs5#j~FQKWy&%SXi&#=#|EXGVr%d>3iDEHIEV7MGC@)$Po%c9v)^3n^b zdKiz0@V#V_KYu5$R8n3!l{kcx>IfXng6b#E78u-HdKrMS6aCx%1sL_=m#eq2 zGqH&!kDnpesr?F2>LyyH>29Ts*%{}u*6+q$ z!}h?eG-zfLY0Ol)LRu_n_G^}P{h!%6ZUrF{DzZ_R6(eTali$LEhFx;Cgl;)eobOF< z*aDun1$##dq&YE`Ll?ib&b3Uqbt4BZ+D*60R_T7j2E(c|bSbHeSdaE}O3P@GKqe-P zXN7lI^eOoJ1|aA2jD)FsjKF%kl&1LBW-CGrd)g)szlZ&VjO5xK-G_dzyr6Y6Mz(1C z*AfBiuUcqj_luVlnjaMBy0@{&#pAk4+tsA!`uPb@R(Ph5o`E9Gm0GlriRdp8l$Kt% zj6<+*UE<7xq#hIBJP0sRJ%o9i9QoRv3gd@Uya0$kpSxt6`j)G}M}gk6ZrxyE&X)PC zqL1L2x(jq`cT16x1A5utL)AeeY z_uxc2CkI+n@<_!z7o@|$V=t<3bM?gK%J=X_9o`q&Q(#`1-x%p4`Sa5SgR*dLhJEk; z5t61kT@-t5We9KF+=9AA;Wp54##SN$tXL9&w1s?}3(TxjqDjJ=;&g((d%V*AbqeSQ zOUzGBNgp;$ljXn2ir>jNm@g21a&tzX9L{h4HE6_lJ1lF>J;s|Pu;#(dT&!Nyz~pdL z=;S61?kpah!A$0o!^Iz~B6~#z4W3aLnT<6!bc)&aL{@da42K<;A{%BJ)|HEDSiMG+ zUxz&W(qOb%YL+auSB%N6?2V2f&3q$`N_jpWC13#9zHWW}4_`8kUx@4|t2b-b zgK`H{R8$DEY{h_#I7b0z~2THh>*l=dZS{IOs0f6NX=VX|mcJDU!igDqqu6C&|W9-kU zsLR9 z+KGKSF%b_6xMC}KJ00Y_Fr`hFK}UX9lc&QSW4|uo62}3>1MZKenWswmvYB&iP+iXc zU21A-EA+~JAnEL=-ZpzcPCEwx$^F}f-w3r5Ss_@B3glLMyEa=Z2Ui;CV@g*m>Au?k z;c!^kl~(FFZ~ha$zaiB3A(PI1^-=;#E^p#5y##CbxKVxQ&*?m$`6{99ebd=9e;~Dx zF2{o|rb~ty-5L=ayv>u-h8BhWlpSnv*op#EEyxh^dE1A(i19)nY93x%6`U^mcwlXo zJu*3;KEuk3yY4kGoU~NEA@>XexL>VJCo;?x%w&jsmsNg#lTSDp1JD|tvB&Ktm39Lp z6o-M83(BNZ9^qKszdhx}uMh)5(xYWjPd@HiS{fQab$;K#06Nyoggx~)(%yeFQ&;-C z50OFG7NO58if;b~&6qlzCp3uVLH`qTnKO&Mh;#pJA2|3Wq{0o&UKBM89uH6zZFvRj zeufQpi}vs~GgI&WfdL!qQH^rVtk21XJTq>0E7n3G6%Wv>)u;S9RFL~%0jsl&V4LvA zF3_>A+Yw6}&axks6tqOFbJgwVBW`VHMf&`@1UP#HA6Rz6@%$*5nSn`|@9j%>=ezrJ zhgqk7;5vSECif(pM%Fa^T?U-%y^YTMfM;Ko=j-2TVhPBYh$Me8(}vU$ERBOij(5*f zCU=+SIP7!(EiX{v(SU6a-p+?HGZgM~LM>eGffwDev8CBMAwK4iUI!{cx z?dQTS94eM3Pa{tL32A#vGhB#8yFYBt$BD$Ao;Y2Xi=+&R$R=N;olD|<>nqb~AN{-2 zZ~z{l*xDxGUBB&Qb@W~4V!wYYzft*Elgyc1b)mL|6`0<%=S!~H)Jys(GzT1r;&goS z5P;cr&Mnn5=$y{g*gh}8wEWMss7TTtL}@XU+S_r(coAW`yaYU!9KON>T?EgiIqIPR7DzGQPH@hdRuyT7y> z8>ijl+64%3KeSc%=y8Bm0uAY3faPEQ%pFiN(MOq_Zy@l}D+QY>E_8Mr`<4ZqC1LBc zhF``PO)Vrvrmm(%2?7~sQ+>>qgQnZXG3-( zaY#pNgSfniz<5Xz>qMr1PhcqMq(7|ga4)cwF`cj(~LZ-I*C;okoy$gM<~t{pjm2KyP}|ceA@+Wd^Q9tfaGAOutd67r(QyZ!*>I8I&z9ld+4HCfvy1Qa*}5wxTHL z@lFm*r}*7|yh?5;G5OqusEspR_{p;;yaF*q^TGXO2&L6Z9po?l4>vRhC>m+x!!uGg z?#Vz%m*be)pSO!Dkg`K%A2-ihk0Y-ec|ylKMtU04)Fo%HXqr{Sm4foy5DUE(>O!|C zWQ9`5T~mc&b$a{6iZHMF0qZEsu`8ZuLHZ=7pG3j7wr|f$q>|w;{YQ%JG7SlzG+z{n zxSnZWn$4E`Ac~pX6k(u;GtbuzA5p-YW>{}FDAZO8kBGoR1v)fxGTZS~to-&1R#{?7 zjtBR_2h2xlt#|KfK0?Q}T3av^ao$&*FHD*R1{sCW>HH~Gs>*zpIY z2#JB$A3&dtKAX-C>G(2~aDZX&0dlKnOU=o6Lrv8llO)VFk*z5Q{|=u^8x|vfT1C@P z@6xulz% zq6|^hjdn}0t5dC9OGsQ5xNJw9+AN5hPV&54BrwZrUhmG#@2xA~!i4sH1C#jt@e>n~>L++R_qVSXl!IlsP;`>|-jAiWg4b+pg@p#ot0tGZ^KQGF~X~9Gkwn6$W1fa7y17I|E-2q*(qu5iJCF0+2`~x@9w;G$mzINCN;v*vtQ{ zMZb*xok9`%2#iYtI1&tSdY(A}rDXq5|2Ug!2?WvB#3cImrd27UZh)t9?e-&O`q#U8 z*6vlrpi$PpDcip{)eJA-gio7Ir(aYJ6zVWaNV84@{?j4JLQ??R~oiPR|`^FqDysdV$|_uydRiy(JENEJb3h>K)5x@J-XiMw4p<-r0<$s+x$S#o4N}YNv@}&@loMoK)Q(+%=>ANCn&M`2y3a%-Y2IrTyu>cgk7uO zc%v10H2S2c15lC7UwYwD_)eF|2SU};+z!98dsE#1SD+NKsqdO}SuBEYMqmkk6 zGo{;mbGU_E&(YrVZ2skwnbC@fEhg(4n zV(VxA4h_Nsm(PW;v5X*k2>#Ry)|)+pBA=%loHE##$|d@<5W7U7f0_-Y-V^fYdG3D# z;J7*u?On?EQS9Rv82!H)truSi*DzBG@iB<1F{iA_g}27Hgq8|aNQ7i@8)_oKh!oZ2OZd-}~Lbhe@5{fEv-bf%W`=w-4YaWE# zz41CaFurZ@=exCwjrahiAAgfSWE8mM$3fMyAc^yxIw|O<$!~Y+%#t8#k#UDHMWo`f}|Utvve~a@3U(f@q<9Hy6)ic z&Jro(2Xm~;)~0a%FRvJ0Y{0s!Rfu>e?{94f+7>P$!^k}zj(tw0hNYZ-I)EZa{pJtg zcsnx$snv2rU!#R7IgpA>-`d#+i3E|%k{s!<-`Y{c&CI-HRL|3udT_Rs!ejA&C6Kx{V{drzWcx_q(AXmiy>f-}&N|4Ow?Z=-6DG!|?B>wV;PT46d78%ezzsm2Me~ zm4f7kng#4qT?-Y6UH*6i3G$6~J!3Z{xZIWh`$=H23l!&~lAN*nH&ukd zenk{e;p#FMhwC9<0@Z7kocO`h*?+=JP?3w1(wz4yj4yyA=^bO#Vv9cUx%qZmVI(s( z)j0p$d;YD|hU;+nk_(-PktsI=fiQ_@PUK&aqq3#a|Eu)1J=MhQYdo#2)J-U_?6U(hdP)k(Bq!)hTK zKdDGFcrEI%e{Q`M2kCBb*Fr?1Z}>%f(@~Vju6NVQ?12cM za!JYb!eO0D_-sW1LrOv4T-+DiGr`N~Gl%;>OJ;7H+d1FY@Z6CiiD%mWm6J&at2rM< z#!Aqa(?G81b%vCyiz%!tiWYW#--1+dar__V-ZCnVcIy^xg1bX-2o6Dl28YJoAwaMM z2~KcmECdM_+@*uNTW|>O?i$>!X zA|em~HM7B`1F&?jgO#!4W-`4O>=b2s1-QG&MzmcV41V8S_e9b~eqVQTPVdH*SO#5R zte7MiD-3?yS`3DhWmCCzV=H@B%LP-V9!z~2%EtDof1`DF*}Xzt&rL zZC`KlYgHq{hw;mzwl#!@rJ;tH@blwbkFysfAoXG|1 z&hwqry!jOm%!y(x5i87Qx1wWF&ucShsmj_2`#^wNjoYKf0t4*V+Y&{Qf7HOcp1J`flQ(=6EZUFqa0LHeksK}>UhEvsRQV_OCDIjj_3 zC=0?d&n=!!@q}*JE4fHb5zQVk(+B1#Z7<%tS12!Cc3=39SA@lekpyd;D{havNt5|s+XIan-{tb`r{Nw!^-I3EZEVQ)Ge#thOB5g{W;yef-D86aSrue4fR37 zfbWl>#l6T-Z#Yy09MTzm3^&8-Qs)&7BXpQHK&s%PrOaMB$ zE7OY%Xn1fwC+j--3e!@|k`Q_FHj=z|gEp0jzH`G;-C~aV8Y-v;^e==e=PnHu+JOYr zHnsJKKVr_f1Q`EnJFG=X-U5J`4H+>SNW?n1Z{RVhea_<2C;^Tv56ZNaH>w#21LPp)bBiQh-@f20zKFpHxk zP*o4TAZ*_fQZ@9#^IzE6zT`VOU;5d%)RGQJE>cw8aW|>hZ;tm>O&f&!NQeNLzAUw(RIJbDzW>}(9aeQ zC#Zb&s@u1RW=*hV+R>qa&GL0CGW=P@eQ7gKZy*O|8viUd?CX|tnK?*O{+)$Pg}zNX zTK4Zh?ycmb-TfUCj%IMer(0OL9J@Y4)v|hfb#~0?ayhnUedt+Vh6NV^O9mh!^)iP& zRbb}WhmMIV3g=h$V2yOF#0(_tv=;TNR`1;=%v4o9rw{imyMC=mL;Crz1=JfPAd|(I zTzSScd)Of2tG9!+DC>uN4J12n*0NGFy9V{$e~sBHevA69fTKN>&)PsPC{A8$Q+gkS z5LcyXjZb}h5mcz3fe@YHp}0v46cxra7Iou?HEe0VhV{|2dICucmiut%uv>N`E@}L6 zeU$k3qn8r?h40dxCBC-ke$iOQ7_WR^`g5BA<gb5TnuJC2cMKID4n|{PJc^Nk=EAHuq3G6G6f~^;<#>eITw%wyo zF#xV)Jcqm0N8RO~fc2v*-4&#ft%Ag`$qF2^jL$Yvj|B+}4h_TQUpI!9gxlZhLbagjPs~FRGub&R+a;>&SM%8oDO5GbnMr}5 zF>5Jy^Nq$jYLM_}6)ZwOdW8l}#gPZS8yUN${P!YfOp$O_zY@$vW{o_?{NrOUZdx8l zJ10UQ8)04>&PJS`xzgq@{GH1K?h%hhq8Tb1S^}Xd6(yP^bQ{Z!$q`E+{@@1V>oq1! zFq^Lf6Tn2O=ycUG(Ghl?jFBY#A2N`Fvocm%*lg2Z+oq?lwCKfc3AKlVnm&%80FrCZ z&T@l7;7s~baZfig|M#u;#2bhwQS%fBO=?!gD$8On{Wx7{e{io=Q>A$Fnqt%I3pJ}j zq(N%UlFtx&)zgcl3;?yfPsZ!z3zN0#+ZEyZsG1m@!1C>lMjvjKF-rF@2b+2Y>u+fP zjyvonz;KxT$cQ#0vj1R`y2Lr?m@%r_5rV%B@#&RCZ^M z3q5A$XQ@ipd-}Xv2!LF%`8K9O>&L{|NS2XQ7oWu!eurI;FtzO;{n{m2F#E_L&5KW0 z6Uz&(YyhT)A@?giAv^#B+uL^yzM2dCqK7iKr4+Zj?YI}*57d8=xOne%PGJ(4*R``| z-uZnfM`;F$*uk0=)C^gk0ebO3GI<+vHyux?1M-c|*3Udbp3GflrC%-yd z>7WFgeoD=^BK41c>_7RUP^hxftA5R1`)T_}UfCj>Q=nQ9P%}b{1=fTB?1B9;i1@n2 zEhAXN%3grR=~>escHh%F8!5g~CQUC}`ZqhbM&69dwod~d|@ii=q| zIsxv5c!#|t%nYPN)B-{~&D`PF+Bx5ywh^fFMK21(3#a!MjT+niil&QKtP}gHznrpC z7}nQ&8!s>4x#V>xV80-S;0-{$4yKoRckOTvD)-ys>R>l=9w6KN6%`I9+M&; z8)*BZX#RITRT&OITwUww5eM*AnU5&68s(KcdRS}NfUYes>@*PQh0DL=(Dk=HU+&k) z(T(0DW@XWAL2eOf06#oi0+6+t?z7Nh+?8~15VUo4>ZM-IOqX`=LLjV!FhdhG$BOjg z>FX<2R)g1B-5+4%&b7}Y9zs~8L~j#t5!8!fgENg>DUJtUeDNRK#g{st#RQw_LiTB#i(6q>#&Q64 z*b+f*ghkM%JR3m2`x>=C!55}SJ@$0qcl25TkVw-)I5 zN*>5WfW{k`z{7*^LR3E11M}Pm2BtnKd{`T*)1aq-0Xnswq{P%hJ-wOdkdeWMY<MiXU+*tOV_1un-t6ObNR%s0iL)#G`d-6e{)Pb|3`^hbmpQwIwx- z)PcUJ2ojLn;_nrO%PF5GOMM*I+br11^zaq5D1Su2EGGRYB3m?auyI^15lmI-=}H+a zFc%B#35F=CD6f(5Ra9JFkQ;+GW@jrS!>_%%1SjwazQU7mBc%SqJ^!w65oQ|0Qr<2U zZOitu3;-+~uTcqKJ&g~ikJ=hQPkZwyHIXA-57w8PrNQMn@a=G0GZ>dXd&H}=`moeZ zt~zV7da~QouS#wl_Lu0VSdo^9iV$BSFiFuI$epWC=oMH#+-2HO-vft2YKwz^ z=6BfUMh|D4Qw@8eQuo~kJb9EdFU}{_W6wcA*jU?FdN@Fz&Pw&Smt-H@Y83W#LFs9; zrK=|0Te!XOSou|q#L@3R+i~6$hH<Gyo1sjCEG}J9v;VyBr^>fjcxB7P@MzWFHSK$}15|$lhZ~HQDWE!+XjblB zy+CYTxuku;c4;ejFXDiGNgKC0#S`w)+w=o+kXFW`Yr#)@nZsm-m9q%nDp3W=MjZi| zEKW`#$*{q#8!k`T8GQwqjGTP($6Iq?QX=xL3j>l)*>3`J1=wyh~v7 z+M9c3bnr*p_REM2UP}|hZ>{wcnptBth&lOG-06PqWttQLDuVp2n^zd_V4oUN9AiqV z^xaLWxDgy}HjB|rJLt5{(LizqbLf656zWPEaZY|_)+5>zv`ev)yyc%UG#ltg$gQ8z zTW++J*GqP#@DJlOJDk=|LHg)(v$b#iu4j#N3Gy_}UM{3YhM|$N{`>nD$RsPOs%Cp% znBItrirA9p*uRY6H4*l#?3E$H0o-3z0KZm!o(~Y)Cb(*fK46jo}=3-l;^W>QI zHf6%4=%o*b)17_&l!ja^aQKNm+rYOs5!WrdK5G!S9iLH{Szh4YvewdPCDs$P;;{3} zM^%9&JEhTbeP?Z{E%GvXg9574QNSZpzSQhxa@*EpAYBqt;ZU`UT_w#ovPO~oiIbx# zyO=XGOLsV^v0A+<^0n=EHX~|%*5Q-Uc`-%Mpm{;7FYVs883!?b%8l^XwYk&NGQMjI zm-mltQTkR{XFgVGdT<5|bqQI)z60)S_-OWEM^EFpYcc{&?7j0%G1Sd`Ho%(gii%`qV)}uWvs-W{EoT|$~R-{HG#BCTa1mwNBmv8O^qS=!*FW8sv3WRpRN*0Ao0 zF>G$>r_Mxwhy%+BMSMSex{lpypAoZ}zo+xn&S8G!TL2*MvrWBNl#9IEZ*4ns1!r^^KwWb^JKEZ@R5A85WG~amtlFJDOa3A0 zx8(jCj)?@jX1LLVAqj~AW~R@k@d<0N4V`gc0ol11f>)1~i6@x>`DX|D=m(-t_Bzyh z)MHL6^KOUv#%nXLT&~JZN2awB2)DMTL2M)BZSG5_2O5kxE)(b^OO=WfbE>NM>$`r9 zUgC*#Y>W#Beuq0LwHf5Ks;`6r-fvF@uCLa+z+Pp?$7L*Cuq91AGfPAT=K4FT^y@x%eZZ@u2zk;xz>9}Aji<1ay1H@ zvtc^+Brzsg+K(ad{F^3X~ zr|`DA!j{tQ?gAcI|4zW>Bgqb=&b#;-x0w7=xR3!-CoL_O_5CRkHdG)HTi@gRzk3kLP?WubD>MC$JXfk{#1oEc9!(hvC)`N6@xv*91ZYBKYA zPi@$U14NqJq6ZpA?EyiG0b+Q({r$CC|7EN~a3 zsmelEoa(gxOIn6ymy)RPfeP(0I+3W;d=qQ*>%X28p-QviYlCq{H}q*fRNy;z22$8gmESQhh&CIwQ%l=?~R@Y4sU zKikH!!5bSkEl}yt+r5p&H(sY4Udh*bUIwB(2$YT3|Kw5G}vsSdlJJoR5|7M3%+)?hrc}Y=S%iI_^ zWBijZlr5m55HU+1CHt-rY`S;O{m=v@q1B%(8%u`0?oO)avMdmLOIWX=|JwS!oNF z82$@cnc%JpCix^IX7qyX9}~-(B_C2FPD(nb_N{MDdQ&2t{KJs@g!83x)x{loWQGr& z`mVdf(U=Ve9ykP*M;Wv+8HkW`5 z>{*Wmte%?eAkDjCiX0V2hRLt1v3p$Ew7rotiOz0{wQdc`aGP#kgfisL_ z)!lX5n|f5)!wy8h{cTs*<@Ckj}`P`iIo6g zvdnL1Jsv=3e2Z_Up_TxA!t$%tzuhMYa2s8MUE`Y+bMD+^QzN#+9(~YK>5Y_{DXNqA z_do;IZz6quU902V#%#CDd;oyF6%NUqMj$b9P^z-Ovm&C$G++Jk(~&vI{Jpfil>&?jP)!+2mI2jVpAEzkK3zo5^nXdc79^ zspdoP#^@EkUkJxc;Q;HKH3;X;CSpP<)Rb#cCqEogl9N#Y!ANX+;bR$#A|8P`(^Bda z7+okq1mH2ilDif z=$0>8p7&Bc&-o3-lSB33dTu4fZ~7iM&e zXKQX4v@Ui8J+R~qN)~S9;QI>Q-a{&5sK8z{m%NnpRCCh@-71gY(vM_ahle?pj-YYy z!Ajc@L>A)fZ+O^fF5H=Gb)=m6jloUDVO&vtwDJLcoAMO9ahhD~Yr`}s*|Q&MNGm6Y zM&srf$T)<}F4lsPFV|jaEjF+jh^VZk#r$U3SG~0<$l9CgY!TQSA3E+Fr)WLHz$^Ac zI7hS$JVQojtob!8xjhWEuWv$Dp< z#R&&R;aH=*1f*I#i(mImi*QRgd2%^D`;I^Az$SxRA-zn^-!BG9K0k5G%(O;)wLUV6o-&&y3!2D4m=b%G?Cf>IBNM1b~oy z<_H|)th&tKQ;g@j96=~WQ7fJ>S!F@w1EcrgF89!x8E@UwBm_2 zFhhxG9I*c^E(n6jOEotNqDU5GMIRm9hF`yy++K#Y)O$6^j62ir;1afnF3)SmYIrihXmS{4{3(xpZ)61V%gk(`7i^ON_}4lXbdHr31Q zCwX~GKucIPm-Iwlp7~6Yl;g7OpOYkjm+BNZGAgIml~FNL31*axrIYX$oqSkAp-E+O zY^3JkKn4g?s_N;5j`bOE;{x~kUeVG*1Qm6ZwP8d~@X)s7TW~x3nFB4tGy>}PmX`Dg z3{?rEC))NbSby4HGmX54k&29pO1+@4H$*^+SKWskD`aTe{t4sBI*#lTi;hm9utRtWj6-;@y&<@%AMB=)5r-`%g@S+oV!#IPKWyQ>3A z${)V82!IyP3<0NfAtCJu`KT=S&9Tr_Im_dB>*;T{=e;B+a@cPz=dczWTrStwWsED~ zU}V$5UidHghx=0)SBhg@=-Z7#6XBe(g{zJP$eU}3w5r?NV`VwjSbrTZ#*m_X-?h1D z)5Haz;MTjc{8`c^h?>o-_1ISEkmRE>Y>?VhE#xaHB8G0jZNI z4_oU+HGNRm^tX%HmucNUtVZ$gpG|E}s-VkcXn~*6pLX~5cCFjJPvoMY ze(iVwxh+#-#rBqUa}l3_fxXpZKk&HUPWJll8+LqQRqg3o$q1>q+=S()S~NpAXLiUl*H>?hAm~Yc~zV3(XYFNPzVo5Zt9y5-PFvOV z(IwPVqz=xXxut18ped@|z*z1~z(91s@_C-&>>?Mk9v3=QuxsBsZnjWv_myBjT@%u~ zI~|Wo*zj22eZa9ow*0-N!F}~0oJd6GtA~}(Ajjx@`n;XCoFmz2c#R^1y?|AvMjZ2) z=9{&jLt2e{v#Bv~yP(Da_K(|os~>ERKVU~0Q1Hs(w3<$vPCYi?4fwAIhreUBj`X)qh=>f+3DSb+Sz5(VNj7WtIY(|0z+XyWb0B;xNaeeoy z&+DN<=iNs3=6CV|9^ghdgD+~6u#v&MBQ5ggOLS>;a>BzbVoxbDM~5NjtocW<1u^N& zbBtNd@A|u%jna$hJ45_)UwDATt$n>iSQ!~5+=vXo{A4w zlbcKr^_Un(#ooyo`{Di*eLZZjmKp&fUHmq|r>E2PlQY^l!EjlLauwY!cm7eccz7-0 zw>xj>Un!&1DSWN(mC+-P%1?qrndAVgTHD$7Bj)p*o4uz*eArFm$aCX6Uj33$U_e&X zqtK(No>*}Ea3Bk>z!w_*>8rfK$IS-f>pX%t)Wa>6-aj17zH@E@s};bbb?xson%C&g z_2uJfp)~bJPNIu{yI#nTwNn9DU6xqt^o6znz#qib;ZC_TJJ@O?$WRoOu3vOLO?R zi0!+YC?!}k)*fw6!*usnJVxPljS^`pTZK$em1fWTNVKVOvp$;39=S-YUN7D$9H2~B zhgQu+6B2Aeit-X2GPC18zZyYrt{12w*0P#g9bdF~B?Rs3J+8Y|o1qXDLn|NHBiVS? z<#I`8eDZ@WPS*zl!2ZF(>l*TzF((2L+@B^ZWf8DBOdpvxF@dd@G;|a)eYa}$Vf};P2Zl)36LBiYV+_I=r1Y7Cp>=fWq|cgMQcIHX|hK{Z1&wKO`E^9!iHBr zEWj2~Nm&(h4%mlYel6OqQL1p}YD&Q}EePAU5X|)omMCyY^*Ls5 ztAI|M!_IC^QAGAzMK3}6LL>ASGL|R+8P<U<^Ka&Zv72LPYZk3Za}!##8Aopp zo+dRvkTCR=Ppoo^+T0@@6=Am$i2uF@faf~E2jP($;5M2OyE+s9V+k8&%> z8>XZV_<|%zRCD&`%H|?lM_trekO@W8{T*9tN8tc|fcpZA+irs(kLOQ6_4O3XZH%m0 zyA$uZH>9EH`JwzvGjBZ`9~<*mOLh-4Q{EV?d(PJPyYGXod}K=~6}hmDmY~(URE*QR z&qgg*vA>IWb9hkhX7)YZD#$rTc?!K>7N6CBBGX3sq2R=NXCINFexhCyhL|&hZ|#1X z`>y>nn-p%dH8ho7L+QQnvG|-_8beW-lN$Dwie7Og-!GjLr?L^&ROvD?^^tBBvu32*P9b_kY|uTy`v;qDWz;}$Qn7f1S{0paS(v&$*l%Q9cx>`B4W znHTRc)26Z$20#yX>)^i~a2ET#a$AIHjm&jGu9T(h6U2J%=>D1`q22*2s_ z9NexUx6GCj(Ly(A!Ma7-@601?pX}TH<~nQQ(!c^fkFEkGg;JsbT7p8o*Wp-bQAVaq z!SHIN4HozCiWQZ~KhD0L*S0^0Dy7aGp*ww@qa?{Z^n3U$002CnuYof498gIXV&OXo zj8*HH-`~2IZm-Hd9`a|-lQ?d@+Y3JIrBt;31ux!X*UnaTR}QK;#)3{Yx9)!s zgx;jgt8Z;d{ht^Cq-(jJI(q>aU$p*a`bi7V zxWq|1|3Q+Oc4!l?nn6*wXe~mlN`!k;-pRr$$Ei5~lI1_a#P$yfCbvw^Fsd3*n2ni5 zGjmPq(7qgzbPGtfke2~Y>SHx0EzK3Q>xNMC3II4$ylL5u$0}L44(cjn%dizDZf;@o zhA*)!!kXVNkOvB?MLi^09thcT#~}l{P%VO1=c=FQL|`26@!DOEsZyX}kO?)Q`Fg&% z83ho?OtyUVRSqaIHEcf11DoqL|IllN+*aHmU>Dpt_VdjG^knZ_dqjLOY^0v4&V^y! z(-#;+?EibK<0BxTuRv@K^ny$$Ps{Kw{XNYDCoro@XQaj$*ZQo@J}Gm87$U{} zfNeg$_SqpFn)ybw5C5JdnC%0hbU{J;tW{no98Q={mKAV`uiwuagy+vP%KB=?<65OE zO}V|P1#(I>>MN6_h{&!eYHR4;X#vIr6y(%cUVn=OeN-m8R9`23X8>tqj#d?{9GXx{7cbP?eq^_ zH>jb>M@Z^2*szsPXpl#S`nW>3PN zt9f9y2~HCQ^lE1X(KaFK=??Ex0faK%{*|1PcwE%CUho)$K&RJi38Cu;Qu^bjH^Vf= zur$_0&2%#)joTGM>=K_-R9AFx(5$jnr=|VkFV`z%#N5)Rg|J)N+J31CI16ft1oZe| z6<+)0tg^Trw0{S6TjS&3c{k8De0CP?a1#^z4>(*-4SjYbWu)SpLau#>7*am#lC{hAwG%Rp=kH zYXrZZ(92&@(tA_TT9X!}e}oIWyEBz*7kxb)#N;vF#o8Y1I{aYdci7n$2p_wA%Ly!S zl1(^m?S`HQK(Tz7zh_@Xiy1;a!zzD0?*CGSX1addz-oRBI{+J&G%DDHu82oBtx#5I zKIx<-Ka6Fnwk){DNNS%isyklXc?gN)7lJO~^lGnwyNoU}&S-sh zE#4j_=dh8QCI>)H*n!uTrX$vod&Ud4!C4nk4QBs-ZujD@CT2tdpSgvST<6AJzbEkrPjA+;ZanxH3$(i5MhjpjtT-*t* zqSoS$SYO8ZwRCjeH*B6$eN%ha$w>tw5Fi5^cd7s}`>!)4Ii;hpN7F@WS1Ntm7sec; zyuN@8d~ie~&-C$h>7G#3_!v(6WlqoLTq%&pIRf!?I59@NGEm(F@sH?IMvX{#U#|%O zQBEDMgnCJ8Xm2lPZU`-`n)xV3`wUOkvYlyt;w~*OwH~LPcfMKV$XZiix28WAaR&IR zC{4J!Yo@hV=lUcjKlJY(H?cRf!kTx*%nD;mvt$2k)jL!%34NB?0)aP&w*5!#8L$r z(ewbTB#-zduP5+~-Js{>K_`R(`eY6VLQ;d6X=xYko%ED4>t1_MMF&~0Gvok0eFpk07(?_|Oy;x~_0#IU%-qCe+86ETkxEJBY^gPob3_T+r9m7%R+zdmp`17aiibNY-QFIxY8+#f3I|I7tO4WX44W%4RmBetGKdRp}huTDUS)@xo2)04U zfq^y$AZm;A@ES_iL{C@I+Pb8HN$msvO;y{mVUO5!y~V=x7u2h*w9}+XBdyMzZae!ILlIne7|HMI1LztSu5z(2z`l`a<^ z+VAI?-`2&)?Foq1m}9Ig!NEWP{HXo~#2aS7WNH~0#fDWCeoW?Op6_4$7hD8T69}ok z?1@?s>EY$7S&7$+oWfe3A^DkKCk&{qC;jk}G@*MA2E61KyvNHP=G(numb$B%Q31b7 zx0szKYl1(mHaW*f%O>ejpIVbVNO@ zJuzGRiJJz21MIm+1ozNgk3gDHKeWiaeY?*<-r%6({X4;Wy3%J2MWVfRhb+Koy$eFTcUn0I+h0% zzpePDwYehH!|7rUz(qmDk{_>NKYeHpssXF-X?z)q#Wt8TtX!~!@7Uivf+-%GtMB3v zEdr8nkD5e74G{tV25YNd1yWl*zGw!Rn$9lm)G#vP0XldcmnyAdi>cW@wAqc%9B0RX zfBP|gefkdCEWM667x0~ve;5S7!-fwWW&3kf-ER2F1<*-t!o&Itvm2DGP9Pe2e9DB@ zk>pb5GSlnYxwbB%3!sm=ML?DJ=6Dq$vQpdpB(I6yy7B!a7;B(nH}K56n+k!s|7grv z?xrWKZuL2!K6Cm4D`Wrw1s{fp zfNvrbJs5z_iI;CGhA7tXIaufpi_0ZR-3Z?U4kXsCGUE*Sr3b1KEw`%nI}+CWJ(3t` zOm)Moi5#`#2_-s+XS8E}{u@b%rZ6_obht5b$pw(O+lI)OMPfD{Wh>D0w+og!)-D$A zn(s^iI{ph7qJCj!>mOytol&xEADx?=-I!L8!i+sr@1E$+W#ePx)lX(`zcqpUu&11> zb~r-)d0FjL-Qgb*p|mZkgi|^+0rr^D`a+t0Dii{+zi(9BDW7kt-Oa)d%q|Zqt8jNm z%rwdUD+)9VLO!}w-L_$`Uqb{01nhcpJ;`Sct&}al_$U9S-emSFdhoQ|);8N)SdA>sQ7NL8 zWRz9#44bad>C5DJQSV?hz2H!78Z+xot-D)|TDZsyKy|NXi#>aqut+R5p>jd_(SlUT z@p5g@;Sn~PoSth9Aw>35Oz2TI!Hn)tF+--d+nMuFTPyR|?~*QNr3*-C)b(`KJ-X)8h2lg}TAek;r4yf0TFuo1P!N#2;_SY@r{xlr*q!~}>J zIMh+bwbQKj{oFDeU(~je5t+L*!E-wSz3Hzh*mFY;0Fd9s{69m-8_e^6!NazHgNGD# z=$pm%taz$ry3Z1X&@ZDxygtrVa|dfn-cBvV!kEb})gPnN8dJB9kY|#d3*4~D4hK{o zXAv5fBNGoYo3~0Of$}%=L=y0n#!kg81LX`r$NhB3P(C}xb3uUC$-#~8_$%%S5oPSS z?^gRSwTOv)=1cC37yx^dHt92gGc(VvxXuq^6qw`fw62$lsmbZFaBDtT>WsNE$RF)T zg0%jSmhrLpL;lt@X_)6nZPsJQ*)y%8PYEatr&4B5H_y?cj6*8P+wqD|oR49jy?vA5k+3m$&Mk#fKJaPc zcqt(sgJLK2**I{?29jlT)O`n~(oz@uc`Q>Ad$T+z!$a0!LL!9AD;_}HBT|6zn7tPC z3T0N0A^bCI@!C3Sq4D4t4y=>RICAcDzoXk?fqW~LseLnsxPqYdJPg%dV#3gAVp98a zqwf--HQ4+PAz*88@Nr&ud%PVoV3UH9qa`O z=xj1p|9xpA_vFp5OIo28avxz!#B|lThc7gLF!$FV+5emo@HhMo?CyiN=^V`8#ee--k}ZS1uOA znvqWwo(a!vit|4oW%`2pPJZ%Wu6ik0E$@)^m75!WySHpm^SOoSh3n1lt5HH;d}e$y-;4*{MTfd!54@9=YIjBH054hf z+6Ze}y%*xqf1#4o#?rCSeoa&8C~|OGUj(ij)`zX!mSHJVo){B&?C1$d7P_Vht+__X zYy?TB*ak}`5Mh|Nudpx!Io+!pA^& zeMo7Zd&#QX1ApLahG1TwM-K=1Z?^fh^|+_|36m@MHF^;MuzekcEVcjmxx9o6as?Ew zC{vHWPG0E&-d<@M3K!HRd5$g`EUuP3%BFa9bD0mETLwAQtPUN1VmVZ~(ic;9s5DQVZ>sm{Gb={7*yd$P4n#zi7%v;S{GY`G zzKB6N8hxqBUTV?Ytq-Ia{D#r%Bc#1-Mp3=%DnpD=cqG#TDOIbb!0>t0SyC)H>bOEm zyr=c6-2Q2P#-$jUE#G)ZEB>nXR0Ho@MSldAuqb=FEoxwyx_j^*0MCV`i2Kh&zGIgR{|8)gd7Tjn`_#bKB?`a%G2-DbO{~S9g6xM&ny?; z0&K9}^qbZ!eNURHkibg&jCFo^GwO_jTV8bfCAo)V)T{K}&dlxjtkHi_*=YVAe;2yH zAqkqw0RKY;rvP^L_sRtU)VPl(>=ln-J`)>7MzXOUb_evejsv}7c(*&N*l4VO6Y<3r z48a}cKu#Qh{~#K=JZBouk240L_Mc6)wlRc}cxb5>>^1pTIz(eu z+`~S-kpt!Kva%26xmqbG0Kjw!aij9K`cpERy@omOt_!=2zK7o5h4uAS{0ptZ(1c3O zQQ%yM2IO;>kiJ1-duS7EP@>nJO@fOwChF^o@6*rn8i=*C!>0uK(-@Ps1Ek%Y%v#jkhnN4+v5)L=maE`I61OO1^ zx3J8u|Cnraq__W7J)x;qj|)3V<)aR6Lzu1l+dG*;s}CV)xSmLw^@zX9%1I#H}r+wKlj~F9%+y z8l*%KO#-OOhm8rl?Y#}3n54`lNeO~YyBoskNv}xTz#}_i3x(PgH9m?{ zko|S1;?lzk#uf@7)68(jGKEf1Q{l_Z&_Q5Hb}7mW-)()R^T=rBbCJ2nV`{QJs&in= z>+d>b(3W9gQov6^L(H|6w{hxNYUk_8eevITXgKo_7X;|zsd+_nGOP@$4CB=Hn?HRx z+#7$CzgQXOJ$>|HRYg&fnA}%1bLaMrjqmk)iUR)c%1TRn(CEqe6>se{#Cdfb0C2Ha zX=|#tFy}|3k|tMHTKq7jkrT9kk%rBOeX#SH?Y=kDUy*~A5gh}D-L%|vS2C&Tyh3Ni zF=wtbBmoVN%k<8=wnmGPab%$S+^^ZW=H?fwoRjj-K{=Z5@jXc*b-dWns(-lT`-@YIFIDv6tYE$!~Vdsn2Srio2i3^cKbJp?3+&y5kw@fK?@_MvF<{aiS; z7z`6Q&RBUp{UHj_ai8l?KalVHgyiJ}u`tT4xlxLOr*&a*=dR96s4_7eG$78f2>fqj z2z+PI@l_`haw1`F9e1WCXpGL)&O#tPvw7#C5WZY9@n+3uqXub5fe_v8Mi$iruD9(Gq-G}NT^seV3>V#&&C&Jo( zB^TAHuH29Mf=Dy;GE`T^ZAqwrrb|*wUQ<`7pF=nKv#Koo<*D2s#-E|Utiv5FIgMI0 z(V1-E{3a%Pf|E0EtDB3*1lo2CHCj*lOGS5`@XaA)KnOQQ?8)!3&C}zCk^s|^s!7N| z*mPQWx4BVaW=Www)&16f+dw&uch~NJHFus-O}y*cABu`75I_VJr3y-uj&vjx=^YdV zq}R}U2dPSv-Xpyi!O%ie>C&VcAQb7nmjnVQ?6cQd|6M+ubJls+dh;b~W|GNdCbRNf z&+oeKdqRt&L<$sg=0@;ypDkxYe3G-J>rISNr0z5SM-t$W`Shs!$W{aS-eKeHvn!c~ z76ICgPL*<_W5dqXJLS`L0YTo+_Y|F`qYa;MGh^x_EEeyxo3aSJ{=bxWen$)sY=G9y zW2uk_!Vu(~2H8;JeadRei}r{nB(HMf2CzV1}_#N zPiAIjrf*f>*?o)Ojtbj)IqX&ZsCt`+9Ao-Zee>_t>OLi}48Cs5uEM7k~C! zN=&vWxzRH+PQR^nE8=XC*Eo=`Dh_HVz~YRfEqN(x>qrz`H*`(W<)7&Y?(E)F;KCc` zkk*{ctyQ$aEsXR6mPgV349wlrV#u`g|-C#E@QC|{h%T_6yieN!Y4z} zzJx>wbQ#C>PUy=#SAoN$xB1FbR@$>6kLo++k>Mfha_*i&XwN~y7f@zY0$6GGQ}paY z)uu43faCu}(w*Ao{GF&=%q%jj^`{m+z=#~MUg;-SJDo?z+=)dxSwCn#P8?|%5R5VS z*#tTrvQIIrflZWkK=}PnHjqDk@hlK)@`k!k(xV@jxQQM)U#@;1i>=x+-W!{JG+hs| z6gAd2;r4mPB{PXshFtdL;sB`^aXAV#9~7=1edz(xI$b)yXrwOO1k6sbKmaT1vWe27 zN&loAWHI88_FFWa@{}cizz1vIOoUM5!(b^~H{**;*LVe9ZB z*dxKZtD{IvQS1dIvI><31v^}aQ68`)n=h)%zd(xx#G`B;DRw7(8HQ+@o#3XyC-eflj@@Gcz@s; z0eLL#DLx3KT{q=k$zL-bl6c5^{JcoHhRr@-{NvmV!*6TT4{CPw2A&SPTR4k#5|!!Z zxBn9b`9Hnxuo_ou`PzI}<2zwkVX4uoR8|?3+e2b!tx?T#zaU8_=jMip96`2)DleWg z>+EP{z-nU-ZGZQPF2mA@qQY(`?HLeJRbqB0?7JK+wba1;*T;37!cRpl zR^v%oL!9gX$(dBk{t~3MJ(Tkmaz)h}CSMq6cB*hr?#my8ZH(t>V%h%5H0NRELmzf- zoys)M;q_l0Ud&nJ1VC}acKs8bIk#OHGRNP$UeG{^a@q!a-9FixaDr`l8?uQinYOW$4i-IWWC$ttv&3Zin=K& zL$-j0DJehv?r!;H<@p&**QLyzae~GK%bw~VJufqQPb08MgPmpszb#owM?a2ubMdFV z`-8b*774adM2%|_df<$FnwK}5$ue1hwFrpt*d>5t=WIObx^lQRGwWR{H_Sfe0yC|?7%3yWVd=i=`oN$c6@t_6(0`= zC@!y#!>^UcBXp=a{78P`a#}gq&R?;N^BFb{`Y~M0bXgozuEY~Y-cQ(4WqwuVGiE(C z)y5ybWW_(EpmM=g-F6WktZ@^-*QjfG@(-eL++~yLA#)moLM5_=jt#-VbA5l37TP)1 zk}%x9q0F1|W|WWZZaN7fAwC z*sv^fHj#o!!dVNmAj3Q!C|ZtVYL;!v3lVeJqI>rj9f8!Wt8d%NTOdhA0Iy-w^l(*y z&+ztq-n3!pn3h8(hBX|QD6~tDf5;kBGVEZu%x|0X65G^bBVE}=)5Xfl$V(^M?oe*t z5H#alML2vUBKyN6{(J?6#OF3-q{(z8kC_%^Y28!cxB1<=8$^aVnM$u9Ex89cYUxk^ z&WIz?FuMJ*a?oS{cgBsWM-`StV<|X)2VY~wLP1LZl0NOidq>s86G(9F!&=i#@wh~O zM-1ud!`senT5LBtn{$D{(O(D`rEd!@UkdIr7F4R5=;C0<{QZLj5IGjHw4qG-st5jT zbL33e#A(E3#drSdx|O+R*A<1R_|8B9CP%#(eg0xcBrY7MQt|y&$-8;R=|SFu->!7R zd+lDU{;Wwi6aZTX=Q(bkiUn8dKvhioj3k~X+G_1@ z83%RrXpWOej`9VracHJzBpd0C8d029Qo65CHrqHXU+cuGq0wzyhx=ru(HVOUGo{LZ zlZmgaFXZYC?y8@w?(>>Z$@;RrI?$wbG$e_Q@Vnz9u&~E>P0?Dto*D8@=Y~*_3D)@^ zb+VH4b3vzqTE#T9!2)ivlV8GR__UVZie>h=Zs+6ui=j$gt1HwjNj%F|CE8J+`e9p3 z!}Ed&9OISHWjsGd7pr#)iE>g@skC=DA+O|bt(@*c?|%Mo_!=<}H6_oorR$qo7e z5KT1cVbjdM*nX~5P34AgzOnAN8=oKJXRin$+%zv{*1p@?+9kT}TX|Cl(qRrz`4e4X zq96?^;uOYK*1zUeu|KLDJK@>WnVt73btpJ>4=EsOJ%XY6|J1In zu7i)$=FCxeCfieZmc4oD9!GQ(>q&2TU#=|L+tA`M5%4yvGHlmAv-jz(Vo%3@Qw8aC zQ0hqVRwkK3+ym&Z!LJp+2NjBs4EVmdxvpI@q3l=EPcK`OSnvz!){malz^NtV6&5Ax zw)xk#CQ*7*dYPpPh@SyB^TU$8{bSb12(vO0swyi``>HPzd`wl_3sRCqNbq=gw7=Eb ztAfZ{Z2G`NzpiJGArcy7exEeZ0yUvRo zneJ89==?CRh)2zMK#tJY*p<3-f%n*w;aq>0m3q_J9fNpu1;+8uuq8xOC3SU9cY03K zOBx$>>eZqW zW_FsM+wMvT2_YRUy}R7Z-22>xEwG2>N0zAcRbN5f5}Ti%VwlI$x~(kykcrItH=0ScgfBsV zD5==HtMCE!xNCTM4G>Wae+P(v$w`pfR}F-h?ku2WFWH^1O-CSI68`mBeWHhha$_+NL=M99BCjuDsz! z;4*CvXpE@;2qVSKad;&wTi1Mn89JV>R6A!MWdSki>g+r;Oajj#Jz9h#)WAg*=lTkN z(nkK^o&?iUsn^2|g6L{TG+|$-zxdy-{wI2w z(ji=N)VO}ksAa7FiVG%NhF#w_`}VW-Vk|89c9hgtFQjr7lr?mNOQq=A}PqoCwHKO5y>CU4Lp9PAjSYfC1@g0L;UJx2d3 zmfY`gQOn@22W}vJW2{a}E_Sb8GZn;}=52H9?gGCnqWc`DZkOkz+We3rCBXt)h{&PWzc+XFDIKPm^G0w9 zT?78!=we@-Km&hF0p*6})k0`cX;+^z31n9L@L&b6&$bw)=B77`k*Wnb@A@Ncm!1VzgF5TxP4x_`_PeF&5dxoc?jDgL2Q7D5L9dq^wZlkZN zl;WYUe>c#PLz2Chhv}qm1JfjdAqUD7Ujg8b;B{R9oRWGXlFS-oeh#@(kr+@OC~b04 zi#LKTSBfX!#Xc5UIKQqxNA&7vl1N-_yhps< zM8u}}H>?IzHsF!T;RE2FD@}W1r)hBO@LXw)@lSM3N z$*+(SQ=732mLGCttsXL51zQQts4Y$skbxy^Zl$6rip#?{H+gw)-FMVzDe$dI|N zD7`d;4PVJwrwIcohaE*a)~~vT8G;VIZQJVjr$9lfoIJ-IYKWLIBjq8gv6NdYLTv-) z>7N*AwqMkX9M$oJ|72$_hVcm5zz8h-4vv7WVP=!-MU9_NW(4+V(3hbHTT#bw0UlN zemPRTBk{Ni4I{Myu|YMD*EiYOV5(_ZV`r!@VPi{7_-5Ir&)Wjr|A1}%p@lXT7jr@x z9y144mA)4p02LiB&s;CbiFW|HX9JpA?LO&px>f1<`RbK&_>J3a&i4s^+vkzLu)jlW zeNO%fHP-af6c#+>Vq6cSN0xsISG=53h|MPh;gGt@mlwpCA1$`<+gBx1f|vH^ zid}@6lbS8v8qoAoJg;ovn+nI37sOuJZ{eQU1nhB3@grfKZoE2yTPZAeIeiJ}KG^V_ zcWTD8x*TXj-1v?j1_%NXbGd34Wlt0@4PupzE>Bi<<8X58JGq?Ko8qNyQJbfbXOCc9 z;5S)~8}nK_Bhj%fPM+x005A||cWYu>)u7Jx+v{RqR1@KYXLmM0`K$D}H>I&yT|S;^ z{)Oa3o&T+Rs=GLiOVo$iv~G^54;%%I_m%r@w_Tkf@l%Y1np=v=%|2;JddUJkOAxvg z@h?5vdgdAY^X-q1i{-mUBi70)UW|FxZJnyx;Q~h@nC~*&l%3?Z{-?jEML)xP4ILk9 zQa<adZGwj;k9^j=@*?Z$1lBCn)+*EO8Js|4O7lZf) zzm~p5M!ci({HeT4Q}Ks(UF(tCJJyviKB=stQDqh}RzYO%|_fp2t3PuxG9K;J*L4?AN_R^=2N(v#+55^&R_IWVXZe zJAPed9I(eiebirjl~rtO$5^dg$TQvXB_&mQXcA_-2>?1TDytXW=A0!j+|+PL`d$3t zB3xH0E}Eh~2g6@84qsTnpfe7FO8jYB2U7U3q1@UN`OxICs-A}J--4GVp*CKDdCsGM zc)>=fNW$O*BcC20E`To5fBu{QUYd5_Mxdw3c3<~gyd5n0>kZ9gAg~mt?X_ABWYma+ zC@lc)xrQcuV4X>YZVx#!>4Pnwi)y{!fo8)^4n5~uQ08!^dWNj^~&Z(X2 zV8PnUM*@}Ke7H1sPWonbA1sVk3QI$AqwS>Bi`y=Iu{+<&`5)8bx-?`!(wFWL1KXBa z7X$LW+ox}Z=${yritLa&!)$~^3||ShpCN| zhKU}GrB|@cqD^Afho*`3u+4N-q0QCRCdWGuc8~A##a9}NNZE^aw0}8st0>4akM*;A zkIv%{K##M2j8%L^E3gq%ZyBW$+RiNofR~)Rk*BpI6lHr70?&$CIfIsC8_u5YGRr>k zC8UE25@+X1;scxxe+IHo)9s<3yCr_oZ|||JXiJ=bt13bZiGMlUZ}eFHE)SsGl3Ap3 z=CWKyC&kbg>Mp^|yn@fC^^91)WaJ_&qcT}?FGhEEPrys$q7i`v!IOR#MFvY+EBZa+#CFJ$%pr~=XABLxo9KQ>1w_8@u77gf} zSu(;MA`S#5`U(#;pGLkNd8b)Z`oqLSDYtg5^o`@{AKlLAvWW}lw9%o>!`;+_B}LQz zOf9@1J^W;XPdHWeG=@U9W$$_CTFrLWzIJ4)jLYNhcQhr%IxI287DIV#9T_IDQwfgK zS(@a!SI0lOc~=YDPO|P`@86k{K7;okcG=n3@B;M}2@{>9?5kD9UyB)!D5Wfx4#rgq z=Cl29`o3)CD)QhstlY0a-x3LbO?~ssZZoV`lNN+AuF8&L3>J2pT-^=1U^!VGOgyG_ zROIteeX01y)Ku2n*w7T>{eEz1ErszqAxlxq=WiR#Zz8)gV%Jgow zRvh6lx-WtBJY7@?uV-eL!?+{4nRow$zmMv42;P=yT_t0Xo#jZnagvosRa+!&ShrKb z490&KCI86~@sROvgPQE{9x9%cJo$=WWg*3!3o*~)*PMjXaaaAmoBqz4PJGnOt^dO_E)#UqI65%q{7MjK-2)Gc0z*4F!|0N@@)ECxMniMmmF)Q|g;VnEQql+@J3 z^hd$RacxF>Xkiq#t(%@Klr3c_P07FITZhYsD#{Kb=@nN!J^csH=zFZDz%X_^@5(_Q zc|*YVuyNEpnrP0mg)^~fduB(1s7T`p)7mI6A>l0|LFOXXA1|HLIR@PJ&uN8kyfjrA zh{-JMUbL~UbP?Gu|M_sblQmm&oh+fh1ff@9NPP#LQdQ{7LH;*Urr;dDcCdL5t7*NT zZGf;(QhCHLvBI72-z;qIMGK)0n6Xk0f5|kWN3a;H?M6gy1A8kO4#HVT_dFNurmF`H kno01)A6S713cR{ipK=88U%?N@<|qMq85QYDsdvHu0cOmGkpKVy literal 0 HcmV?d00001 diff --git a/documentation/docs/getting-started/run/images/run-button.png b/documentation/docs/getting-started/run/images/run-button.png new file mode 100644 index 0000000000000000000000000000000000000000..168912ffa7a4bed429893c1c3cb69696693d404e GIT binary patch literal 10975 zcmbVybx<9_*X2AUSbzjg2o3>)yKArj!6mr6OK^t(Ay{yCcXxN^1$Q3s@Q1sz{JyRI zW4E@x+S;j_GgC9&Q**nzPv3jb4ONhnL`Nk+1pokD>YJDn0D!Px@5_9-2yC{xqXNlpjWl}4_AGi7uK7*N*4?eux6X9+O`zpb_ zTZ}o!WFaLb1?lhx`B4tDnN5gENU-dhyWxoA;^V`FB*nz$(vX4E^=@xd#i#1)wG_2% z<}n_V-SaD`P&rGp|7SDp)aPAH8`1Qf*58l(y3^*xZJU3>S7h4f2_JJHb($nJ)`!ASRc`BENmi&A% zdtiC6a7hdR{^Wf4e6_u+Q&`p_T6KTe?`Tl^o=#0Z;-Kzm;h4v$KwY_1H?EXcaOFk^ zB6rNKZ;2~N^Yc8kOen@Fa<6dH@5=h5<$NV_$n*$KCyDM@Tq$weW+$#=vj?%1)TvDXR;*Rnd~c{%A{srL4XcC1}ve5qhEhR@!cWwOjBm{ngRr+3AH zP_xjKuLbdslkUPjS4a*`x}4c9p(PIG%?ZTrpWHzdPd?Ug=gaeQg$^G+eqvi2KX7_> z#^RM_(c*v4OuIBX#bS1Ftg4yM`Z8c+qj0&&wOqmHs6SuMKGnW@?Msq}k81~MOs2z{ z@Py@Fix`ZhT$w@ph2R7To9J`C7eqV#1pXE7Ba@9fgUfAjWDj;x&Y(;@?c2NWovdcc zgydOmWhg%<+zh(2c!8)%WTtgW;1~;l6k9~mn%SIz&dPi%%FN+cct0z z^als+Cq=puT=)4~3)pS;5i)h>yUz7HyVz{qtk|6x6M1`QQKE}-4JCn;0;w9uryoLA zB^|Q_sGq)G?2IcbD_82aA8c| zTY75hZ20|qKeaD}ngx+dA|ZhqwM$~KOk!$kjJD@5oz%={KgNvoM)RCcwbA*$^cgzT zY5Gz}lqjDF6DJZKh#%xNFZKKsx8<$8FdO5YW#5Z|>uPq|jg$Ty*3U}lq)tB-YwYIi?qik_IGc-1)%mmMeFao!?x9r*^K1-=0W65kG z8rs*dmN4bE4)a0Y1_Lmy}w8$}Y(0%)JzoUhJS)H(23LTv@ zzB`81Y}BF{uDHA6$VMj5+I#-W$jFYPdfv_JplKh_T2sk4t)z+}S)=-l0T;XRGBw#i z#xKCu)|Q*Qd%f+drf-MXbX{g9NhB0Ch@6y^l!-~6DmGLsr>EyDCMKrowq-_Pre*#8 zNIYFfM~AMiE^gpQI z4%3c3`0S22_BbhM*%2ptGVKyaOmY`M9gIDdGb8sG2Acky$+tFCI=QcmCT2Rb_#EU} zC{up|58vMLxHtY4E#ipN6m8~dy74V<%tmC9e{8zl?_6}9C6F#5h4Q|AcY!#-@WIFW zShQTIInjk9>~M6`9+@+Be1qMN%ngcOC=!@vXhh^rI5+!fofhH1^Xm-_gMO`t9J>8E zi!DMgsSw-e?SIl0uH2G`gHXq2LdGhhSxa8%z#WyGw74#BWAFD!$s@Y9jRc(DuIcHE z?!XXADO3cwKRGmiMqbSagHKkPvBUbY!o&@$kzYS21Q{KjZt}PyNqulX+x*PM#pUbk zTlOb6H&?Fkb??J`TNbWctsa+}3WHgBsDARXhQW8gpEjtD1_1W&z>(<%XK`pj@h_%!Q;~YGFwY!_sq;u}k)7 zu+d&CTJefN$~AlJM&v229R)-F_u$?`p>LLo*`~y612T)`cCt zmy1+r>y^f_-Xs|749O=pNqP@B)?dfe_$S~1P1?F{Znyi>g(v~1r>8WGj6RRI4sLGT ziKCgKlC9k&BqTbmr@mU=-5dGIl^Y{8x4qWb{*VP3v?y9^UpbGORT z%zp#W@gV^MqP&?C{71B#01)}30x>k_vb68yWLt<7`7N+zsS^UgxQcmivgc}j(<9+@ z5CNLJ{F|7lAhEZo<|OETAbmdrRT5!E&9oX{cyU!-bv9fbODNOTpZy92_jEoluH69& zMPbZ(rCcQ%5OfdDupIMKd$78a0AnKT@GvbtK3{?6{QSJ9xA&?s4?UG$-67pbUsNbJ zCkI%+J%b`Bx>HLOs|*Yb90=78p?tvw0siiVK0Z%c*G}Eu$u&1>@d~Ij28tO)7AHOzA$x_8;_S$Wkdk;M&c*4Qn z-d=E~5Tsa{`t|4?u)Njx-V$DYC=P*ghp9G$eh87UAXIG}XL1}YAz4v`P~fyJlGRC; z&d*WmJ-{GXs9s2IJ3>qi=bkiViF!`g9@u-E7a})J==i=juiRal_k+0b(cUsysg&HF z5HR;^!%}^zDmtaIN#f8WO^=Mh-+uDE)^1Ju;O}Qb$ay|hGb$O?NPHa;+qv&!Npj+N zv;^7>(LbE`HxCAhMcunWMl^n5%c#ap(b)!fO~z~NZcE9^=F>=1VtsVE2#%=VNmlCZ zVIH#|>t;S&X?BuL<>dH2J~G1UWs9uljg1OG}>2)dr*qp>3kbe0{E-V!)yV^OJX|FsY*2Q1SV6`=+S};+!M8 zhMuL4lE9xF^OUvbTE|aG%s!8?C3J)WLVA$k2fQgihq2I-Ykm-LtIFqWjXX!}w8W0G z@ki_)tX)m>`ABZ?@4V&2l%HTIF@(Ad))Sk`Sg?w7>IR3=s9kJ+JZZeP-bfy>#JXEy zSD*2OSZ*VoU=?sH=+pH7}~BA1%7KXo@?Zq^>4XUkRBJ*L8e?~0Jb zoF{&98t#h{LV&ut;zH*YDqJB-fw?r|WZ7rD*mn(K?`n!Nh2Ku(jDQ z6I?06@cR$z*`uRCi~B{wvxY?g=~9FD6JqDSLdcNFyS}a^7$Jg4iRefEcYS#E{G$4S z3($B-0mbih-lZR1^sE7qJjjMXwdu?Cl$wjC4!+Nry zJ)52G$bIVQmJRJ7zNzdTVE$GaHQgBj4X{tyq}{fTkk+es#~n@2nTr>o4o*4B+}_zo z2l^4^KVq-6Tg(2A9;PqSJ7FT0{F@it%g63G*Q*vy*}e0{xYvc@6x=4IkoT2z?cv&0 z9!_^9R%FOGisMt~Q+oOS0>6J*Uo&OneDqb1BTDvkLt6%p*Gr9&2I$9^)_LBRg{Q>} z733-5Lng-7|&}fx;sS@eZ@Lb4U@TPYS-kL%@BV z-u)np2GheHk=j|4^TzbSM}zE0s%Oa)o)F|JEjjs4r@!bzI``2;y|cpBsht_fqG{1C zZcQ##_ti^(+9XbsB;b4C)5>LT>!RC}zEQNy004U>Nu#8`)fer`Gs}$nU5k#69M$(2 zhM!F~#IG(rV={d4uKCsZdBhQYHh+=!JgebN=^vgX!2_C%LL6T93rAaiW1l{Vm)zxS zf$U_`5iFHP$bWGUS;B%BB_)2nAD1PV`_k7HXWFgrraV)6%-)A$BD>zr5Wy2d z4eL@6ve<>vRV_IyzL673w9b}!N^g+tZ#fsbbx&I=Mmd>YVHZ~>l$AZzv*-CN zm}~)lDbz!ja}#_IjFO@U>S^Irx`~bnQ^Fx0?G$*w%a{7e9X#I zaDLOZnyz6RqtJJ>Ev?g(JqrQ`JZfv*goC^$98@_Y9vriQ-`VMXPg^yZktH$prhio{H%&CRsG6rra2lSHd6Q-H9{b_#ssmS?!F11b7=Bn48gMOM)WW^j+$ zG%P~8Sm1AN`o9?LU!`^yG#@8ipg<9AVT@%-_{^h^rbij8p4ZWsDp@!ISD;|5Qrr3$ z^bdG*D;DlnYeB|8-8?1_uUy`vCnfY&zT+M3w?##Ik4O(>foL?50QSFrlYSsI60{+x zQ!rAEv(gbZ!M9{ysR81}0GJG*pVXMNKB_X9e^|}X459}B#wc8>vh8n@$;E~%Zskns z`{qUbqT;&ro&r0636J~ts=urT8?wu8G=<9;Vg*pDn*3SzsxT{lq>{372w$&~rJSi# zQb@Wu+W~;QNNGBSvG#J>0+9J?1)Y+M)yBxPp=6p*3Uy|D$&zP2p|9+zs9rT2$TI$T zZ1p_Eaq7_o1CULr`1+AcPA$nC8MfAa1t4<2IY1pB_%u>jR}V2HyF&C#OMdfTOa+$K zy7-qWMZws%H}(U_qM&0%^OIxbz7X z-W~UGvi$m_?dU40w~L%Gr722(qldL$Cq|`OgYbQ2aVLzFb9CuM;(eanGetDKpTlCs zc-tjcsil7;!_Y-(2%0&9J7V@LRcmGa?=bVyUSFAZ>|*|MSW1Ra%~U*J0h$q8wRPjx0P7X+Y1JI%o>Lm2o@3anG*`zt~(tOew&n{Vb)( zkA&o}P(+fFL@8A-LGgnIIpFj9lj{IPoPbQtGy?|+@JfQ-ql%A(TztYzDHx@rb;IzI z3?Zmwz(&~U+T}aFL(NyBO$bMyscd2m zOWymMPCf+OKd4AZNGSzGqN4t!c{j%(Kj{ASI}%KQnNjY3`^P=cotIBgPS51+kWBpQ zv*$%HL|zXZJ@xe^GO%zw18d);sZe-LOTc9+L6Soh!2lAzZpxok$s7y>imN@|lhjgPsY!6tE z0w-a$2~;Sr%q~009to9>4}FwLDq3xI68!M5Cn)g!=K6vzgR^{1SV`u`4Q{!22qLdM zW^fCK#W;`CPgtdYdyZKa?xy6R8*Y&|!X$F;B0kjQ4KH&n|A0Il8pR#An3hveX8FfODy_vO1{oSc?cr2KaJr~Mo?n@6iV zxZfUabYx_T%sxli%4XQ}gPs}bTu!j3rKLAO$@)xV=F9%wKIWNC(5&5sqBwQp^P{je zZQ}1BDUUJEeb&%1*m%4on370?ziaZ=l)P5tV7SBG2@?&n>UO$Uojwg8gYQ+%HF)?L zcZdIW5ISrofAo?^)CmpmoJf-sY`#S|gX*1+RCf+_19b%GveP)Su>g+jXjG)Y&cWR>@tm~`!-q|Ef(l9PBnJ$?^~Rn z9g890_$DCeekwOqbVJU+;K$eK>m=OOo`;5LDvHE1{#@Zic>8#M?r8SoM@o+0o0J^d zHvZy1v2H(*AwXdMmKo>*9I>!&+dbG|pZ3mU6UMYNgf0igpZLeEo!{i;HN_nr8!TjB ztO)c^k%#&?DW^R;b~TR};pHp-)uA(+GI^|~{YX;9GgrBzS@1{xxsJSj@Ui(wy3-`> zT0JSxEJwD4^Z{jOd5{Q+xg**>shMKm8-lErR8o>9= zuBxUgk>+<1Apr`wJBgoME->2h37;E~kN`iAy1OISV-+<+#Hbe!_`tW`ZOf1nT{EDVqESfv~5=Zybpb*+J4LP%{oGHVg(8J-QDH&}`M4ByWo-|~&Q zlO9>whHrTw1Pn#F#mN8s8Qjszl3$l6*5$gM>h(tQ%>KsgW%*BMJ!N(#e!dD#oOJxa z`64Ruf~P&~62kQuTUa2XAZ6TO=hOc$!6~1>COO@ zv*g2|1TQgt+3^$-;6?ax(IGYXmuhM`2BUVzJ=|JBfjKWVbzzzI!R7%iPUvf5Lw1@V zqTnlIVqDyB@f_h7z^M@_MlRC;4+IE*2b-I|KR=LacPZCOlp9l`aB&|40ffD9@Ng^f zBRx4ehh_Bfnh~G@s6)Tu;9t{j3@^c2xPTct&j>;RB*9K8VL%vg3J~902;di*-ep4$ zP!A@5m1O+?TbLw;{3_6G9iadE_XTh6)r=$)@DU<^V=yUt-^i1oOs3t@QoivH4uZ&- z==^`;C7k~k81kLlb;2t1BJFxZ$l5}|TlyKgkt364b?pX5JFUB=;B&|#dMkDqNC)7L#W5$|3k{#Wj z9e58u^Em5YtURwM>wVAgt=SQlMTYyQ-)$5UEn0A-;S|SppK7<+6R1tphZ1IzPtL3vY|rP=iPGimZ3RC zN$}qmU{oN<(c2G7mz-F(Umuz@(ptmHxV0EneQJ=4m&#iqMnS@O;>@iLr99#Y7WV8Q z8@G(?Fs%?8a3W{Qd=kfCh)oELEma;rLUMI<`Q>QQy#G|4tT?{#d_?h8hxDL+rUf%?cJVher(#7_26 zE=S%@FFdh|Pr3wG?02sdCo&yQ79&o};YQ9yn8rwjP4=K=U&c11?PYq-CbiL4o13bs zri6T30c)++jt*L0XNg?5s2mZT$FlR!Q)DwaFV-w3^6;)jXD(&iSI}UkL;scZ?u~Xk zu@W-qvVpOiK{vTR4|E(({itYov7xsY1m7!Y{n-aYT z6&ALVWI5Vs6nHI8Tx{XtV-k633J_4Y-^!)^mRM+N#@@OhM7R`PZk=1-I?^GKLsE}z zl|dFZ;niVqmf@_GAg3FvTw=;|->}DP|9tPDBM^QAzx8B8GVwGz zQ)G&ryoHZIZ6JwQ1_XSIkal%{G(Orvci0IL zW|K{>(>K@S1j=*o{1r3D2o7ylno}rR&{+Y3(PNYt4yw8O6q;Mov-l^mcf#pY6GRF+AKWFDPw;UJl8YcPO>rg z6n>|*09jmeB2uOA6(<@Tzrst0d4GGNbeX|wDDb+n7dJi%Ksob%bQD%Lbv^}> zImj?c{R_7HHS*#ueHr2zb{Q%}U?;ti@>GX;{efq;h|Nd-_K>MkKJkTVrGKswT(>Qb zg_uuIr>ZiVdLEGeT7WQ2put6g~+*=+kkN&1(Y=HwdJjc)F6% z*v44;&bu=5hN4C6I{aXgtwb{OrXdr;(mc<{S5w*`>^_D6gv8iVMt)Krnc8%C0@;xz z#KI<;=CZxMAMM8hW)cwb0pZw7_sb@|sUgi41KSwT@^Js4)c3ZwxE?B{hZM{1fAS9o zmC>Rw$0+)w=P;KQ`3oc!s?%KJ6X|c?aKiOG_huIRuFf*dcE?vdAU%r$?7v@Y0Z@bf zQwxB6w>STbNzUEp9Of^pynMd=ebvhx+WOcjD6^0`x_~zSEktWL8|*q51I~~W^fa9A zvxN_F9+La+l?4xEjZRSO;@o_i$v}E#7I(c&j3d}7+XE<-$RwC~Qj z4N_%QinWr#)w+(-8%wdkkE`j(*R;YAlZ}SE1oO|ObyL-4xGS3dq24MMWy8n24+Ce1 zoEBdTS42Zj_FRXl{w7mn2wAh-w^tmi`kFVmMp+n%+L3T4s0#eFln)7O7Q+lnAQ5uY zffvTl9+LV1Px1YB{SC-aZ!B zGf?a;TcS#j)QtM^U7M+GI1&c%zdS#l^Z)7j2_nC3wgmZ2(F|1p zabijXjt-^KHF(&~t<@va(o(&Q{VhM6Fo;5KpcC9b_XDrV3M1E0h%Pm-wKIPwes(F5 z1_!sgH+5gJew4-DFQ{GD)X)BeMx z_2$)f2_v(+)s^P=Jh==VYY2S!Fco?r9ahRKhP#dLA6u(##)($J^Pk~RLT6&iXJ)If zY{ol`e3Ez-RA%m=CKsC8_l9!?skrR_ch^nUq0bU&^?DgIm2peuFCa`?1Gc+; z=Ca5{c`BK5m?I-%Jf62xFKzWqB=KHyR){jo^)t77eAPh3(CWy&Um7TCB3aTA5^B~{ zO#d?wvzJp!sBFp)DYo5y9%)U+&j-GLzMy4(LW&)=6tZt5&SX&bdYUxL3{zwLD6p9- zo`Nehi1{ohao)C!{^&8h%&@>Q!C~2zmb+WFalBUNy_3hsgDQKlwQsNy*r6@ZVKp19 zSNO9j$!hGMoDf(pBAI~EOKp$vBiYK!{t%D6@h{gxMTjqF7tvru?YY`SIX6oqWN}1? zxma<3Le2+Mi*H(qi~hTzht!uKP!^+LNHI@X2Jb-1om2m3r{G z+OTR?R3ceeCJIc{%%k5waXX^J+IBb!a`k^ z@Kg)?TLZp*zPeFb^u>#JHHV^f7DK%Ll?D}x3bf@t(bjgBqdUQfgeEBV6Cu-e05B6P z+L>`fj5|N+-`41%BDQO*xJrH{6rJ80@$fkUfjN_7-uPN`9NH&-7Wi;^@P3+)x4^9N z^n>V>CN_%xI7bCP3!lekL3l~HVpM~Cct$)8QtcO;eI@KKmSHDz-;%Ayw5@=VRK5cF z4|A1zkc{>>k@s#UN*Ne{`F>~O^i#lDu3kG|n``9)S#0MEosPz0lMaL9de( z!y7-N#h&r5r+Eua3eE5`nT_6foFl$nExPS_(5f57Q$9_W*L|li#Q_xTU0aM$g-1{+ z8xhx#bfF*n#jN1HpaRI8qd`khk?R60sS+O-l|a3pImZRfs=MeGLX98jL!+ z&lwNQzi3$F=%np3rdn=cZTwS2{jf7GK=0)W?am!^k;D9^d)mK7$j7_UFgOHSZ}c>C zY+X)m)baM(oQDP&Kqb&(|i&>;Q49G!civujc=sq8PUR}Mv zqE!-el?j^}#+y88wSuhl)z|VV&2qJi7Oz_!uP6XC;kf^ft4>w-eDV8J#adrUmaJ)w z_qA5Jp)Iarlss`8HtRtojue3SO2G9k?Ct%z1p6GQ4l`&$uYF^2IUUq zhB_R)+MSdk-BFm(5v1_d4SBg#A_WqHQ+rxmeEE`G5>CU8p zS;pUrV9k4m_PMwQK!Kr>X}}o+mE>x2OtIXO@)D7GKIQnD>16DlqV)TO10(R{{ZpWZGghF}b(%PqmlRZ+mCg*#ewzU+f1#w6!~Gp9$v8DxC*GZx^jtv}efL zP+&KIhww()sL=i3>5o#tQH5Bgxtwu3SLcyb>ISY9QZX*@Ht9sKQ8p=Or{6NAGCY~9k& zm|6X0%~Un>hAAO@35RA;cg9J2_3=hjpt8FGmc)rzpZlZrGYa1$$mLO;t}Ic84Y68b zT{(!_o{*U{q`8u9k>K-iQ#_gCH1MH&<4m1bqdDe{{T^!>lh0P7o?W7H+`;fZy038^ z@j|I1i)$aJTAH*j7(>lm%|4d5gD_Y;aYLzd3~ z(8S`sJsN$J<;*U`d=RS<`0?YySe=@~3-}Jk#9y4{M@1OeBAbejFAV^l(2%f~M#Hm} z_k1J59~LZbT`xlJHg?p4g2XzU4Q!u8^;dFEid8!w?QVOpI8L=wuY7!c)cugz5^)-% zKM#2az1C)Bwl`E$`PKiuXs|6tDc8fT1mf(*X%m>hdSA>{XF^xg%iG^ZaDc2=G3dXw zdjwI0n4fi@P$vZyoTW&-HP_5VxY=KT6iS2&l=hYg)3zU&Ss@#y-bWGQh2_uAJbgq* zut0cCZH`?FdKe$|iw(#2ZwZdwKlC($)czH001C~eG!%i04PoXfFyu}1Yh~VMYaHbgSYvj zY7YRYso>Wk#OLa17yuv!#DoPEU9^stops)ctiCy09Xgr5(lX5oz;Zh!mI`HofkC9c z(bAH$n3EMglS3myWIOWH%Y}pcDD~6-3LSEv}=Ih{(8Hfs*6k`SSCgWreN_01qhq3wq>@M2qem7UtxjK zwljGf8=HIdze35Dp8c3^d%VHx4py^PKT|-9AOn3wMbII?BFeq8naPStPO)#(yDz6Y zUXW>ZOrB->=Ua3P>2KW5I$l2UJx*~K1S;H*SNw`XU{1-HTe$kA?QBFaqAUK>poxY< z+L}1v4lE)H;hgpg%wK`-?eEUkJs)pyBp_~%7oG3UbcM1Qi!B!#NIraMeWHSRkBLf1 znu6VYFs^6D-;nW`9Of$4 zRiqmplHE_6t~?R2zMsh?k2$A}w%maDJ_&9mO;+=N=FFE?agU;s;ux zf`U_zQq3u4s7`}XK|qCmU!zkIB!N2t4B4wfnF}*5%cjo!P%*tyoYIWlbQPM$+ z312s?xwL|g`XR-`Nf?eK%^+G&Ur$e8KZV_z&2V7r?(R+@UwU6DryRH1?fM{ec-=s4 z;d@rMbY3n*N0v~~l`iLLdHqg%X}tp%fpy#c%rCK+&*Auvv&+t}=Y2#ggGn!Un=7p? z*oi4I>MIuDHE>?FFMqi!%+Jtju+ep$R=->&1TRTw91VodQN#JSX_w6i_Kr~s;(&v9 z8UA0nyoFSiChez-tBu>a+;74@wQkw>?@m?f2j!=G$e(HvPH{OM=~$@TFF`*0)pIpZ zH*x=pRXZRYqHWI*b4C;dB&+a=Ft+*9c)5u6OvO&%r!^ZtfZ&vR-#7!Q-6$$zmK#kU2rSZXls^n=Optb+qeup|PJ!49BE zDuvCBnkgXbB48>{3a@-;SLe49UxJ2|n?}n0(j}m`Q$6~i?q{n}no27s7IOY-U^qO$ z$wzr$-ZMJ~@YqIZW9fg`cDwY9C*@<0Q`#U*Y|mLDeut54cbUr2;t4{KjtHzUC2 zMb~eqDEw9Ltrpb}b;E`uG&D3j$Ac){?y|H# zww<}CC^nRuPjY2AuEO_wP^_7R6Z1YL@D7HwFQGCkv5<1T_FyjhFn$ z;VyJdg)83x3p>nDbi>RJS6-p0Ag+0`KFVK*QR+1&wg*%DGJN+xd5Wc4?{`*O-At34 ztWWtbUoJCXkX)tNma!7k4$JHmsF9BdS@ z06GSG`^!TLMxTr#b1|#=Lb$!xT8Hn&?Xc(T(`19KJ_rstTB@y9tu}gDVb|B!BhBG) z?nQk2_Nt6DwuQ}kC6Q5It_%f{a>^Dj^}G5zg(OJ=H7P8%BTCi7(&du8&BYbDLd6#Dflk2rtq%qRjT?=ii) zl#D!FUFS)FSPU*%Div)g93lh+MGQU;Zq@4?{K)7C4=SiE#ZJg>P+2QX5RN3OM!|Ge zDhU$63L|G@+u12pXjPb6axEWCyKN#9W2|I!Uh)!sbUMBcGgs`3VK(x(I;Z^9a;B#% zC+81~l*fPL{rq@4I5N`q9LWuiZyat{Ci+2U9QHdyshriNGnX8F3aikdFJDbe66iIp znxEP95d%<*ey^gYjdpTwe5C6i;@s3!R8+iLnv^Nis0_C!)Tw8+PTccc5g18&+RSGj z$dDHgLT*MsU5@+{{~bu~ewzW`6B4)&?|0ui+mwg@FCbaxyny-#w~(%?A_1XcVF@0W z*Vq}J$v=K*-S2qDPJoxSe|D8acjISfmAMG%Um&%x&0f5ZOgPu>I@y~m5ueIoE7{KM zJ8xjN#9?|A0MF}o)1^Q47kbba*cUnCCj_pN>J{=hHPrY(lze+Jb|oc?>;0sWBK zKUfX>KdctUAueHY1L!mU^OdQ90tbHCKcka4nA*~_z*@x>CwG*5`*T5&5)Pt>f`y(% zY7Ygl(Lnn1>^=F(#IZyj`~cKYY8I!PZ%6-*M2|$`W1D3LfgpW+}^ zkUW-%3JLfiW)=A1*y95KP9-dyF)KEgWh`it1!C<(0mOfozuC*OobY<&F=d%O9bJn5 zE0d5hqLo>qzl{De&L8EYB>X7h*EN=zV%yqzrS{KT~(evH?%M!7JSuha^C~ zR8}75UqxUC7;}{BkzmU{XTtvb2(vUmR;e?B6R80Z;hjY@!<5s903~3{)p%dmuX?qw z|1>JO*Y1{nc>z134D0@Fpu?WsyK!y!R++%K*9fd$dX|yE?27?GDLC08p6yA>A+tTE zzUtYw%PWP^PYc^@Gf(9tWRBC`tLd$4`5$t{JIl&uiL7cNtVcbJE;1_crU*)6ZNI zc(O(T{rG-@;&rn-RkN9o$ReSbLs97)T?r316l-La^8+Mpi>32w3400_Gt9*n$HR0X zFdU>B=SPLc?%Jjw9_CH^;bn1H#YyxjX+G=PXWZW^3NDPDRvhlk{nQs%$}|4*HOeae zemS+i9xLWo@lMIpW&Nu1Yoq0{3K6fZAqz};`*TiT{@bION~u1t4^}D9-MW;($DlUv zoyZWCtAm9m$L3hV?(*k$l!)aOJO(CxrbG>5^BzQaxxEWTzanW&Q z1blwKzKqZht2-q>II_LbX;kNPdFt)t<*paspK%}JMRabav2xs>;nY{Jm&9S%yluHi zXnlp{(~eO({tU=9><%W?M;*;x7S-P{%X)cdTPLj7^IdM2Jyj)GDsc}~^p}>u=cq_K zrBj;yqk!VW74_z=eR$92nq#hw8Fuz;h5GjtDp?P8@f)U|srTfIK8 z{g(1-U7zY5Zq8%CAm^ujL#Vgf^GP^oj&s`5MB!^g<*fAS>}zuD%ragNYbYE-C>(M) z95NhIO(3iqDM%=pMfzmQaxZT4^qBo&hDZ5sC}q~8#lT3*%k6&RJ$7iXCoHRH#qd`* zz9%DA+np#(^)#IWrsMT>q#*!^-;1Rm_JiYo>GyOVQEQ^%|7qAvVYfh(!Q*tuJZKk) zPdf6m>Q|XipEk3V4YTE_%q5|Veheg#&B0t9D>0rX8qr>4A3ocDnF|;nq(6OUd;T15 zVm&%{b$_)V7ODKoVUphFa`VWYriC{u&+oogrpiwUzvp!w`$Me9o8IH>1g7~ZzqXp1 zZs4>IK&AdMK{q&y4F||w?N%X?2gr}=NFpg`!fLiCsa;;G>ujGGJ{|c|dmG4m+*V?g zHM(^Lq=!VeiT>=(>2s_R=>MjaA^`}G_bPdFcdqDPt$iGbq;1(vpI@~etYbSKDGK=t{+e0`N-FF)T?nlV5&++92$nI zQeyOu+1vAeiB4g4;h2TxraotY?LOJu%H?c9x~={l0MuwAo}^WGPyLjupmAL0jvCQ$ z`mET>JlelXy>xL3uh0vUWwzwY86L6$l_SLV6`#%$KKQ5k~OM`#T=J zIV#LE5R;Qz+mf_Nt+x-YpH%gt-Wt0Gx}hyLyNs{)$QN^GxLSaC99c%vnCzbiFdt9N zSKAI;iHX9p8TsmS0l-8rg)R4yt@N&1=j!9bZYWaZ-3*Oiw&c?pW9yEk=Hu=GU1aAnTj{(8q_5Ct z4K(SRv{ldAK0yo$`a4^r3;`W!?0Pv_-qp0-GPm`@9?DVzBG2QtGT*jnwH{cDgpAp( z>)y!inq_V8D;3576tDfkM$7hgtLKr8EwS>}^sDn)aKsst?(d&@$NGNV$412=$p+LC!r1|+*)rY;zzB?frWhzYRsQ=&IkJ8!skbINgE!9~ zFp}xDs@FOyEfsos%%2Di-`-Le;Iyks?IGq*FqD(>5ro;Zz*b}t&HxJvvn3J%ZFYpj#nmoLcJ=| zRFzmE9*pB2Z$+DGyndFH-hM}v4Z*VZvOl@NH}4b8`~2#BA`a%p$onGGjWUlPPq#W> zuWQKUwfLY4@D&E`w7}MXHy3{m0Aof1uS1?R$|a+xG^KM}CJbfXF{if#0n{o0;9(_) z)D(N(x}!u}u_1l7+?qY$o_Ro&^odOGtO3G)hJNvEQQOtydPfhPN6+9@mJ}h9Xw=}> zM4L*2008tG@iu$WUIrzNS`Q%{Jsu5CM$>Kg7%Q2ry|Rh{9w(pW?2f)te26boL5|2Z z6q@@rWA__V?DT}&!{rs8jUEOls?PyBPUGX1B!(Ai>ma`eARp`RM_z?b&X=s6WnV5P z5h|6-PuGH>!~CO5|Bz-Mn=^rzLU%*&xS+04zh0gZM%-W(E{q@$fJz*Y>4z~AG6p>> z(BMl0`VF!R2J*kVd^OMr@}0$BczHZ}m2UGsXl66dTz6+gF4+++OasHv@x+Gr2$a=P zgmkEBq=WqS0hHZw{BMAdh*|QRm7^^)6zr#G$)ET%ICskuaG%dW+HJ1ggi@iFt9){P z9_5iIbk@9A2T@77ttYO}H!qBRd<~C1+vHl)U_Us{i#Grm-_UEjk8LXnSzP_@QfU{9 zQCs2klwWeUjw_8oh4h(gTDduxdN-ii#V{ zF$q`+fX}eir9(I*Ng^?rna#OII=k%%_RCQcdd32$OC zvR<*=%c7%MdAf_-clJ7YZVdo-y!EbH-t+eij_;kcrVOgzTECp7Awd~kg+v2i<h|(pjm`84i8jyk54xED4j8T)c4;J4|1>Z2zj|d={$`@loq?C7Wkut%=gg zTwhBeT}4bsUOu(vMA6CgYdMYE90afg14H}k6vB1QS+46xN;kDN;^A9>xMRWacSrDP zeA_h^2fFq9iG{8E@jGpZ=P@fHbwz)ALa&*nS4f(R$!Ck!a^4C@l`wFG^qOmqB1pP> zrfh$$sC!RJ8GeKb0Avh|j3D%R?$7>X8+GHMK~z3t?E!0kvb|KYq<{gc2HXf|PSwx(U=Vp` ze1~3cFv~vE-QLV9pZ3F3Y~@1(G8}Nd3e5@;j@avK-x>H?0xMtLj}rcRvSN+m?X}xs z2oK-cLd-nLXtGi_Tb90Xd6v$02`v z#PL(iRx@T|HLX%73}dTdNU6NN0X8*AhG9*_+ndqY^!IZ}2#JHlOGd_!t8<3^@~pY0 z(pE2mi<}jGMBBmZ$q9}CzSg$gz^}q(toDlgL3fHgBnzS}qnGMyhp2k5^pzz1N5f8( z$L-i+YoeuwjlQ-Fk@FbsWz(g2E6o^#QA(mpM;t!ljYaD!u^jmBg#qJ%rh84_D%d!1 zq#PMde$>t+p?cic>fI&WTdA}al=3pzx!DwDeRk-~0#R8F6qK<6!1u+drlNlKQ-b@G zl^^bEQnZv+uM}E_H3o{_x;FwwupTwlkB#7 z-G#Kgk-Et5?rmz;jAOmDFvQ`pfsM59ewyP?BNZtYQRcn*Y)p9_Oh0!sc*|eT`%z7E zoGu-5bm8v4naHCCoY&DBOc@nHBU-!=CMs7oF;CEaCM}F*F!>TVFTzhF8wd8yXN^14 z+L;+Agl)G121sB~9OnCsD@NRdf-_xsbjK|5__*rjxZq?sYks zE!qU*UMfD#JFU-MIa5fiRyp+7gV~wK$vR2c zE?0}?DDSk3C;hDdT)G0$Cs+DBsnNNHZ=Gz-={02362utvDZ%}u>ZKHiSzYby#%k*(gtd$0I}HyM_f z-`n-{^s12>HUR37YGP)d=_PlH5;U0coFnOR$xzc=6#2FOS+G;p57Iw+)j|#dT z>^!nN+pj$h+l(aj7JoZx!80`VyaA z>h!xI82wbnvO0BGS%Z}CIBX|r^zReJ` zjU$MKhac01-U4uA4LXtx&v^=l)5fo5D-CMT9rCv)pQ>*0xmog7tj(6Ykv%z|dqY%~ zuU<$9r}PiVx*5Z+#aQcV7G8V*a8=E1_l8!&#a3CqY+~(X)Fi|L(|}Lxa`|VQ&PLQ{ zbZZh87nzk_qDWrwf(4=y50J)y^QP(i>3t7EkO6S0AOVxjnMLF>UWLSU(+$MUOp~r$ z8>LIefSt*}w+z4DtyGv^=2b#yT{8Z{pUDJMy_Icc$&P|w=uWikbQTvkJv3!8HBC-R z{1%LXAZd)v^wa>cg|pkli4F0P1>2k6V0$#dcmk(w9G<-P_72(1pu3b zu4`Xf5@_sH+dNyTO|?v_DwU^LWX7D41_U+(kH^b#l?(j*t3f1}7ivUH5Yg+zYEs}@ zs{Kf?1%jkWlil;<3XQC^epe}+$mS8xDWV(6t^gWXB?0t>-~*h~uU{-;Rv5S@NZ*ek z@&M*J$t6M)csPc6%c^106sc%Kg@?!H%a_!p1Em!Fqp47YxTA>tHcq96RZ`Uj(FhZ4 zR*lW%E~P-K(7cb5j%HTu_S}jI3Xa^0##z;Kg-!5r8diP#tg9_xF0`2SOUCd!P=O@F z4(lvDW*+xwympy=<{tvGNpgETKVyK?C{nUQjS3?iVzOb!#%zc=zLy1TFA7N;^2@lB zKnDfPx5S(erATks8!dHWQdk9N@;z%!PW36nUe;6XNg7ZkZAdsaHQ+oAq-{D`^Qe-= z4PwZtZBMftfsQ~hYp7hzJ-Z(jwQ2Sb`|0c7SD%!FK4cUEH5nk=xG^S4VI<#JWG7`< zBuuVD9ALv-KX6@~f{s`_NKu`nHmqCs(Y;$L-)k=E{Bh&CdO`TD1rfWS&k(e+pM59J zZnBP>&*b|}P!2^5C-uvhgBz#P&vxsMcAf1$s(;DR>&dLm#h*T?^O7uC@Y0I(jRajG;U5(XU%#V1Z{F7=w$ZvUaK*xuSEe34@V2qJGG<6ih z>g)VpEr3y|u%TEEv;bTul|5BD=a?OIaNvR@MRkZ;^arqO8HlClAZ>>uRUgbR_CWn^ls7fA*Tl1nDf(@{}S zODIOe!2tBoF^Sb14Qia?KLO4uNlOYdf@BB%u;3B?Bk$ecNfANzbmY<8Ag7PPBRQ{75{f=XjqAA@{~rQ;T3ymciJ^;=9JCn@G$^t|JpY80^OE*aur;rWD#^1+ z5TfDP9Qo>bRE<=~pAdfmE6A(Hve)O^#8R(dZ=T9HvQ(7KBsIxG$~>TY{EhV=-n%FR z_ZNA_M=A%H`Hr8mkg4|BtAyf?`?D3(4My=pSp8dyOW}&Y%`_M&X`Cvup81+Ok_9gVXa6!vj3|PuPSw@z+y!? zx>y=?h)$fnTN`xZ0I=F^he=I~$ha{BlX+C7d}JF2voN=tCsha@E%XmQ^^li{eR-t_ zS%&*TP$Z$7+@;8yYwFjGS+B077*Qz6EH|JiVw60L`&C`v{2#_%k-yet!u8a5^_|L3 zG8PDEgM_gXNC8w-;)Vm|#=I{@s!WZF)8I3L1_L&Yqe)_9-rL)SNFaAMnWJu) zPjaabS*DV3^c)y|_9M_LNy_r_C2v@fiQ%&D=cSTSn9BzK$8{*!#fmv?qs4--8^eq5~7_N`=PZ)oHxY3j-wR0^i9d|(m@>yxghkAbf-TD zSj zRw&MUMQN-YQrLg$p}f_S$+#U5&eYpC!Je+?8sC?1upgTnkVDQLTqxPO)I& zOcmO8J3$Mq4^3*rK>)-J0E8bR3G^ni-s>fERKH$N7E4!QlGGAG=BO7F=;L~25xG+~68ib+@)NuWZhjQOedccah+c{X_rQtQbZrb8E(m*SyeN_lqc z#4M{8bZ^6)5~X+9BKF1#kH2izzs~-foV#AyqdDPl@K}7Qi75G@zyUR^YgPKuuNt5@ z3QwW>0v_GR=fxW!7A8`J8hbMX4PN=8!XB9WqJwu`FjImZg5<^qJaH1s5J_mWtDK96 z?lZXHylCY-RCv#yAP%|??pAsNbGnVTK`w81b#~1v)*wi6i87+;60~siHq71x*TxEasW%BJKnboG)rdrr*Z?&eK*)?Lfge$< zFIKcoKq!N=focc@za+89nIhHRA+DOW8_hANEkycNXAO#;{hJfqN=T2txR_kM-x#Oe z52k`yDv_O5l!|-LjA#V`UOcjZUz~8#EK>SKy^R#m7$BG|1X<{h#8Yds3c|t+!&N{0 zZ}2EvlBY5iR6G95GQKoWLimDpvhU1%n`aGo^qv$FGeLe!UR+U1SCZi~2W6^4CmeRV zgu@LUPvE7A9pj{o}L3vP(T(nTC5Iw4hkd$8vdp1R#R~Gj3yE%gIFrq1i=NBDOTCwjz%BqYGZ7_I)8G$1@eE=3gtQI`U+a4zN$xLU*V? zQV$P=!C57y&NbUw&RqI5c*~8yjnXt{n zlY`5NsN%?C=7kManZS>hsFEZPkq`M2i!S~VhWOu1a8Y(20Yt|&o+|yBYlWE9^=mA|`om8TCJbxjs>EN;o zX8FJsi^d?hXXFfY5`n_>AReXk*8%l(Pg$%Kp7SD}8zl>cnN|-HEu8YYwdcQRT@fYD zu;db1W_NY7>mT#VdiWfro((HjdeZqfsh#E4$4sT_r9b+r`)?d9hx61pehQj8FskbQ z=az@xv}!0w#Ry1o6}=~@`O|G_1!f7O8nY<6`a=|qp#7N$WWYx2!cDG2`McnT$CSB z)F=2;`^f4G%T7dvG;H0pI+Di=xjm;rn+6 z)$?RxT@6mQYYn(Xh9EfJVqIAwFmj~$^hrg|&mgAXf(--oF&6|EZjPNCRZ^#SZ>Nt2 znr3sDW9WUaZ~VqQV_{fH34%EGpnY`uwX}D05nM3Q#kt#DITj`Do*N_L{jy8s4GTRd zB-9NF2}vdvO(uq7_I}oEykfl@iJY$r_s%Rx){$1bPSShL6IU?iCq+@Vnx(R8^fg9s z5l-is3K95JmulaJiQ!X)agVY`9)ZV>jD%>p)F7s4@N?QI#!xkytfNHP-6JyLe#8v! zSz<*s0#&b4jkN0nBqWp+g=)M3SSv0BM&Qbq?kgxY=vfw6ob(b3v1n8m`PZIrs>kSa zb)N3K(rMwj*MVLw$t1-|1_}Z?Ixa4W^Ak*)eD!2HM3Q# z+1}i2lvoNfruk=^doj!u!C1aoZJqt9_M=#lb#bfaDElf^FAhFm0tul)IN)mv<+lV) z%xr4W`c}C{w78*jx-!Pa4-uFzw)r_OyGHJIp;SBr&8e7}v4nG&V^yv1@DDV-&^#I) zs(0(8A6~ECJn*Iuq!$%E+_kFUxof$A6>xQ^;ZB-TDN;HxGAyT5YkX^k6}GEr5B_8~ z(7vn){8Ql(rZthR%3M6X(BgWzw`Y67 zTT&klTw~B%V=;X=24C8cEme3qY_}j&}uAeaV_FB}|ncvECp-Qja{_D*n zp}w4m3bG_4mXbr?aJLc!0#u-Xihmbx)O9&J<_zuA*xc?0@y{m%$mjY8zZa|BG|tIF zebM4+vl4J!xgyeo2Icr`T7+53u$kp@)pmTTw{}5EFUK*LMV)g<^;tkM%jHlZUFKGU zI6_tA)4TU8q{KY)%@KmDwupm73Lrq|yyWwPXk+$;_Noc*hOhSk-h2E3x?p%Xlhk){ zX;>W9z2kmeNLVS?_b<}^if=HFUdC^fT65rK+~da4W;=4eOvGyHY>#P6 zcUT-nN=vfdDHqCmbr)nER!CZ4kFxvY8OOS1f|zUE3XwMJCOq&GZ#3EZ$d$hT*^PT7 zl3nF{ovnXmLG)Bj>YeZ?hxT@>>~}dYCK=vcyGF}DZU=5!2`fxQso2p!BiWEOM1`m7 zY>QuF(P0k_b4K&yyij=>63|>%X1c*&%=o!+mXs`s){W~t4<`)5Cjme8YHe0vEk?C} zlZfA?PA2I|FM+lnS05Byaptoo%N_T{=`)G!c%`A=WGSlh36%QMmP zD(%7_M=iH4j8bfxBTt^l3cIDS_-!Mw<7AN<)Z+xr-lZo#tauo@m~{?hV03SmPIWC) zk2idD#A#OY7xEvLz`~Ol^f(iN1te2=roMvVFO++|TD6z+D<2gj{CF>yPs`O1)ZvUa zZ&iIIQ z&tV4t^@zSLV6*!{rk(v3hD2w;UUa1HEIRoI5dk5n;rAdlGD4-=u@Uga0^fG+cZj0h zP;PvDdKS{gLrTGFPAo^hMzHy}S_}>R)wV{SddvilN#;u|9_KWJx_QBh=q~?7e$&}q zG<|OX2yQ#snXFEaORShbV)_oNTbb{rmW+yK9%pdkL=*a`c(cFPOvK_;TqhV)cEjGJ zED{|Sfv`VW+H-p7e0?%WPeIb#OwInm{`S;69CwPbaJ(@{-5gd1`49PKrYTj0yBX{1 zNj-=jB7Q)$(xBa&6$cVCpF3%4*eY&Ge#|tDb%j9->ZQYSJ3I=9x$QfP)|aMicf6^r zp2o!FthrjcYWThOu^%4?uLS#qv-&x~ZyMoJ`1k7x4^Pv4MQ`Wuh|^^k$2NYOW+gXA z$HZ5P?ZybiPB1|w?BwWd0a z6gc;|HDZ!0wp@-`)FP_gM>7HD|2|cx`S0x1IY~k<6 zvcz%_AVxBx_%&I)Ulx18O)3q~b*A95@!_vv&kUD^nDb3_*j+;1o zeWE9`Ea!B2&RD*C5Y!`YUoP*>UHE=^-iT*`;HrB2g_*elvxFG@d6n>z@sgXE+kQw! zRH=LtgX-n-2|zsrLw`H*p+Q;ijZ$(f_1W>Snu z+?!^-#at@mGgVSu;Ys<%d>GhRrq%Nh0>H;2J1%yb2j3unw<{(m4jD+|l8ZGR*4{F( zpl_}$YCWdo#n?4#uP!r|q_HN|>rQkaHA0lO`h&B)7cH{&c)(LYO4pFlxQ4!55y7q1v@sA5oYJf5z^64aGg zW z?@t@P3I5?&o5;-QisOpiR%G*;R1E=uBIf?y*qHX=uKVe!r693^59*uQTSet*H8e=jjx1rnsu(TjU5n@K-!eTty3oO@Y)X5o-|V{@?@Wi&GXV**4{lbM ztYym6bqzPq_6OsAIZ#m7nR!KOPF`LHHWfW)KOpoV{i?Lw0%g(X@}nw^YYARoa=#!N zaJ}t$ac=#@N|1P&=(dRzx`+h)_3&8|*+q(5QKMk`b%Api3F6(3n0s=bRI-QtDuh2g zN$Fx;ek>C*!ez>L2Vb_!F)K0mNTXt0Y)A{W_X23Z(a=)e{T*LtDfCA)QmUUnDk%Yg zK`_Z@{drLybYuOXFlrgsH?8I2;DM=1cUbD&RbW9XjAEu5NWLCJY3K>&B5Ztm^x^?h z+W2tQa@N<{9n}ax7V;bd6QSo`q*hI~m}>ZXQDOFJ!f|{NL!Y-CJ^j4<1ABW-{pevk z-}It$O&e-xdwccj>+=aLh-@AUeYR$BtT1ZH*-)Vc9}nDV0zZ1&PG%N8{qo#^s~_D9 z4KVa3lh>P0*L?tNAeI#N*pEwB)9bD?CIbWv3Z8p^9KYWsN6u|zyX&j5W)2NY%{Bg1 zJi|j>CgtK@US@2nv7te$UC+)kN7xba*H#!Il!koK`+sRzkw_F38DewlWw=wjocZ{a zrA?f8aWMThs!R-2hj?8smi6jX-#Bz(l`Gux#*uh@iK|B$$YPzBd5xYrXgf_r(S#E)7{#Aq0DAhmff)A^CQrpw)6S=ywrf8UVIV?Si7zB+;QZ?wet6 z<-^%RLI1h$F-bilcbyLGuV&K~!h@lkEhn`tsCZ(zO(`B|i@I9drFeYnMLbm2>^M#QgV&Uj16 z0{|8T3+##fpV(J_PJ=4l-ateF1n*_Nl?{aTP!kfH3 zgglGqUg{}tPT1Cmm(wp<0P$BBCzo={^eI1E+CQ9SURL^HidwA=5*35!T>pa+u zB7;BHEK~2LZ}m93@b=WbGmJUx^dM;>%U)bu{Bnjsp36ac-{~}(xl20%0nvNy`E^OP z(0U|&_OpYxi_$$kxMk6?JI3={OU3jk%4D?|Jc;hbM@}E$Mc1sN{tHY_b{@V=fay9J5{2=H1`-K*Rb0htES9?xPyjg1~sWdLr z%*vB!g($D{iN45U?Tq-A`;m(bex!(xnyn6pmd9?3fbdE(5u4ywVhF(I>3qd}F=hC{ zNia$l!Qypsb~ytAkTF;E^%Ds#yr#qPW+a2eUX;i!! z7^8uTm@upJ>D-B~6qc4_LH*U%a;2}lU=)?moNU0_n>)?#X61Skwpv+W7cR!{^-@%M zRbo%8dr?u>ZpmjwTUyuIO%czpRlAWA(eAmSRCp=LqWohT5C{#0Yqn~seAf|+itQD% zD%W~&=8RZ)dHt+1=;5gpr^JPc*}jRYWMx1T&VSS^%KOG?=`&t|(k^eboCU;JPS8qo+hCufiS!%9Q@2aR zOSd-|fRjbfgeP782wogM2qHU$4ch5yk-RzDI+2-p1{!r``++e+v{WO*wHpckMH~0% zmtBUY9t|Bn*xPgECmYnl&o1fFa>+O^KUY-ld7wfHxwA3GE2|3#=-h8IZoVGZO{vyv zaCdxFWJd)py}@d&nR6QCo@Hgm`6Pn9;OsDqja@#3&(yZIn}Ja7QqrtGYF5YRJj}y$ z${+KFx98X>gbJCd0Mvd-Ufb|ooqJ0m(SeV%$e(n6#wx>myE*6&d0}@kRB5Yg?EikW ze@M=$ozwKUJ2=tCl25*(D!<)X`_gnKj(FRBewgFwod6L`RUNomE$mI%=9&F?)U8Ar_9B~m(w9lCt?!wILoc2x*coYZI&kcsNM_qToif_ zeZ3{YQG64+??<+p6xwlBYY|dGbD1Mq>sbSlLm&vb^iFPELL93@ufd7?O;8ax+kQD> zag7cC(Fd(Z{S_VNifrD~6~||qRb;iPfjMZBfHA|()Yo641y1J}VXJCr-nZe5FGgs? zR4PdRMCmDyqTQ7rc#H|aeNaJI!}lW&$55N-tq zVet_kzYKp1x2U^~VOPoH;;h)H={Akb>+YjCebQMO$RU60(`<)w$|t4UGo zjuT6mED4e|iGHO=@{beX_2Q!+51eXLpwu5X3^1lCCGv1E34cu>wDj2C`*jpurvFAX zj(sB1lXcgAcQ2^iT$!Z7r18zmLd$W$DW0NY2!RFzBYCdSVI4tpgzH1poGGGFL_`)~ zcX4bz(#G`KN(C-u-{qF23;Ohzsu@>$K2O*Niej5I)FZ1LG@vF$n37b-mW57#aV z*U34{BBeB)X_(GD)xJ?`!KQw>Gn|u?W674%Z_osHx_dqMha&rC?P0|5>W}xAb>EY} zbhKgb82=y|iO;D=D^eg1?zUw8+ZMgIdY(4T<$N;Lc)9H%iCF|s0{z(o>?;bK*6~07 zIfckB|DW{Tbxgm3UGs9U{GWTRY?_yis^`BRgq_+WzO}mu!%9PKPm>pCU7bAhTW$0DXypeY@jTZ(<6Hg|F)pwN(qVlp=MAe0b<+x;?fW zTM4KehvgB03E~cl4o=cHBbv>c^a+*7U`uTLBUU(L?}!$|>)CjYQFUWx0S6h!oB`Wl zl_V88G;pTYu-j+A1lHwe(P=GZ^^~mEY4&&ixDQ02j}aju;9pi{V({X?KDWU)v zYLP6M&&hGq4cju{L8(#R+Sxi6Wa>C22q z3Bf}!{E-&qC~2Um_;_<%e4hkfR85}bJk89^ys)sa%~U)IFj1P-M9D;5l$@aoW``>X zVl@A&1^8nJ|3@R(|3UB`7H3KL9=lr(Z8=9(Aq28qETAa2&n+ru{n2Gp3z+v!@SECM zCvxVIge&0IB6O8mxvDMK)P)68;`$PQ)P3;{JTqKySpW&~M-qVoGBI?ZVu|i_B>8bW z-XZASxYv`==qfw0G$f$Ism_=9+?#NSvSo5}*Tx><;N4(T4Jm2M*l!l!v1Gq=t8Ju_ zL%L{5r*pC)V}L2{tU+`m@LgkPzirfS)#FEqu;q2-V*%A+*zql}kTzb`t(|LOV||Co4_#Tx#{rk`8VGGz<$ zFOs20PK!sQR+mMy{pV1Gsr+l52!hxS}_x?$Y?uvmWT}x%|?bxB> zaX8DQO{uD`hJu1J0CV!_xv{7%ciVwVr6u2FOF3N5bYgzyRnbaB3&S;{wy$)5Lt+2p z54pSz1*H^}kl6625!J~k7fb3W#Kh!&{7_Cg_G`<~MlRxPkS*Q(r!{hn-1q-aV&nhQ zNBKY7$C2?weT{m6O6_sN91l{3esPahX`xQ0$?D>crfiQ03(Lp?%!~XETjOD-p`qbU zVQe8_E;2N#<|N}N5Y&UZcs*Kn{Q6EE4>)r+a^AN>g}{VLsgk9F7lc|M-GhhV?t@DLfdIkX8C(Jcmq8NT z-95o!aQ8dOEBD;@oKyAv`KqXbVQO~mz4n^5`|0kdm$ceMIpMqcl}RIrF!vgTB5N1> zhi`f99esUP*FdXL!CEvZ#L99sR=`EGctAimU*Vj(&$6`@Xezd&mkyUQ9S85_2Qk;5 zv|UnBe+@6|zCZo34c5a4cD32F@e}PZy9b?}ok6)SNCYyRMKDZyQS8Pd^7n8txu2nBFF_52#qbHg4*>)U3{{BV1dgT;4@1x1Jyin~&x=Nep6l)Tck;yjNbqY+V}1|? zI3&%VItBT(R;!+0NvJoYLpIU;o&*%h-{!RHYF%xf^UESXa=}U#JUrZa^^kTPSU>_; ztv@^}8qFYm6+Px|S9JWu?tEd4+$!LAG@k4?2j4n1>UA_e zS=h`TuaeSfCe}xC{ke_keRRH(X(~wF^foOM? zF}CZ2qb*L3n$xnsYyS%@8hRR=rT8SI_*DXzx}^(LLxI(wu~}GL-UOJ^<-U%XUc4ax z?x}#lWQ%C6h(zOpZkEMzLMwj3tM-sPM%v1(Hu^hbTT_&Z>1nsKGor)n&kuqee86W( zlQ2&2$O!}ft09bvd6C1jWV&)pL!UUs5?<&$zjaX{0X(J}6O}01%dWN>%tLvv_#W$q zU7R}W=wg(r4*=L;VBguu%YoZb?hXTA%DRj$qg3cOI4)0z7#UW6|L!%KDGe5<8T~kBUX{$MjIgkN{WB|O3UEy3)xQ;ofk7RUl-|mP2y+lm_d=>v3`Rn ztIX*4eAAXGD&Mv$EV!GxkQcl|>T#ZsjFH2mcfP)ATBKdWE5s)B;F_?SVBj7w=idW8 z*~D>k7#hQkn^rV2+H=82xtG)^%6h=Z+M8C&@bcWOYFFeF%+%vzn}2RN_CD@{AnsxV z#J6L+H|9yv0m9mN+L*f0M({yn9Jr`VY*MFgoh3*Iei@aofyr+A zAXBrU`7gdBp*w&uL_^Q1~#es+#%K*#O(naZMw zmq8yNo8rh~zKMW*-O&^Q>-v}{o;(_qfMF3sHiBcnG?|agzMU}mFs>SATHw!`yY~5; zEAKkf8&cPIx*F|K2^m(h9v*lggdk6+sr>xWcJFf?*4}EuK-S+?MRk2+anIFO1 z3}ZwaHr8c{bXo=3AIaTlSYqrsdF&fkD=SO`L)bX?`TP{dbNTitrfxlFuRIrEe($f} z->sH3XX`XPp8q80y zaGVih%BJ2b&5uLwKo+~h7p#K*Qc*Pl;_72+Kn7mTy3JRrvc;`IT~r^7_G(;8WrREcROz~T6S^%dwH&2pDs=`E}NYbZAB>wOG_)@mkHYZL2 z!xrL=BC>Hxv1!@L!J;St_x*bwNhyOYfMkWuH44>ApG7fgs_^NUw2#%(^n`}J81;v? zs+PoARQAuZr=g))gf=h~#o7GEEi_EF6$)&jLK0WtXrA2A)>)a4_0OJBDfI1< z$o}xt=evixyuOzQxl;II;kRqN%ExerL+!)VA?8w{9j2t*1U2Eum0+jM{>;vJ^ma-U zo;XDm1nHi%7iF=SG2~{-73p^;6AT3kH;N>HfYM)U6g(%qO<=cso6x;yeA}_>mmhhFO^7cJQ%ZN~nM8oV>tyz>vL( zIXS&5Ye9H)mO9?Hc(^Im<2K7c z#-`6{wtB|WZ4m;A%gfith)E1SIQv&^hACsBUN+w>bO+i1bimP0hr!hpgeT3>C*WA0 zuC}s7tw&C_qYnx|yhQLmCOlnusTtn%jpco%=~jlD5@MyHW(%wNmyKl+h3f1m)sxUS zY~GaMd=sg?TB+J13jWkOrtiTzm&1*qm)?7N((W!QAe_R|uRF*7Sf3iL=0=S@$A%?i zSg~WcKR0$hp$ma`fxmK$veI{*QCCG<6H2XqJf-gNki&%bei@5nyo3PrhacS9cDY=c z$r21s2rq)xw>8FG(x%2f3k>}%))BfxMAjbqHFS+(6*dvW^~U*(vIFkW-eCb2uI7BX z2usbus?@8GHwp@1t{IsLqN&=emw$3_%{-0R8rUw*f4;w=s?|*4gMaK576O%m#MHFc zM)>{9Lt)DhDSd@!DlLBMtE86z0NW6`8bGPkZwLqc8ot{Wu8y$%ar%TA2N10y{Jiyi zZY3=(VEOb*9!lM#@=Qw$kUK^w=oZ}SDko$BG%mKIqYCnroas4DnBfh@na0tu0ECKz^6^fv8zq^Fr9YUg>gU`5q_L+N(Lama;CQJ3U8xsY(-XUda z6=OLcrG)ogf_%Q4u7_Z4sIb+fzyoqkjtHOnfE}7FD@nT-1r9@!&;I?4iHX~7*-(;7 z+XH^@{U3b9w1CU^UAcliQ(eXHT;X;v<^_YFRqQ!$`+M7cXkl;tQ1@LO8gKywEtzln zg>`$M8hJWWe2{zr!0jG8glKp_#g*DFg|V`cjROzXf}h()cZe4*(gYl|e92zz4l5eq zf6nqw)Opv*m;w3vC_LUwu0=*G77%)Hg=ld7)#m2iKIctUo@9!n=sj%;HFEBabjZ|M zYRw2-#4$9B%5#+W%P?akr0x_$%(&T-Bz1l+m?HHD7+N&x1)pW5XW()1(5-#96V+jvgi;sQz zf#&N`-Is8?bI+B6@5X^%=PwN`UI4_w;Cf9dz*E$?gqx;McasY-H+ss;#1=6B4CQ3W~`;tkGh%~C3SYNh%v%TH>C0&-b;E3nw zbh{yh+$j}AZ&gKW9tO}DC49UBN}P_?8`kP}=A}9vy4^-$r0aJsCdMDpI^(IMo|ay3 zH*Cz#Q_{JF(}mx2J-ln&4M1Z*|M)vajTAu;v)?0=qPFsyAaLy78=Z{H>!Dj7O!bp& zvC#}~MXp_t$y&i$j*}%iKnUtoUz2NYU%2wT9DB+p>&zzz6!%VsL{SCyNVC^t z47Ax|wf@!&swM|>>gq8e0D#hHVabrKBk&t8K>UXK_q*h|!LHL&hS~dZSu2hxrF=L! z-UN{Uwtdu>=?edC_ImbdnM?#EfsKyL1esv zeFLdeDAka@y)2W4M`j9fpE-p}#jz*PH>Vwu;mgC-N zHnwJVHf1`z%%8jGG6U|9GZ%`rWbB2BUf*|6CUk#x!|GrPOxer)X6SvdhZBcH-}u_Z z`TL?BHFdTBo1B0QWaX;ZsqmdK@+|98Ywp{d=8*0tJYbJX(t|siiF{p6%wT^TLFKB# zGXKDd{rdcOU*3nJ#C*~2(QM~_=j|5x*{wbz*z-mu^2urozW(l&W2Tx^95O_iUYL8# z`6ODAzsh8JSJNdd<8T
?hB3k5R{=?G)x3zjDUnr1jCSMJ-Ed8ECnmJ}@+8FB%s;EVV#sCQ zb5SXjCs!d{*1c)D^C`I!R6nK?UAl9DuyNQk8(kS5GMDLt=Xqwl5kPZz;U#XXe|gF2 zjs0w5y8vPJJH3c=79|F4YgIL>*uDk;Sbnww&wT z%apLO%UXn%Gl%WVev_d7xk)3M_XxFYwFL6d-?VD>w&=wK&jtm`d#%ilc=z6{e0`Y< z2r4g97nOgzzq|LNBGWJQmq^q~Ez8;6fnR7Bj%6Emy0@HD^VbklM$nVnQ^NR6fQp+n zogiip2X$tdBaITuz1e;ofgpk_esHpqO)ne_rOF>dlIt|JKr(!)swP>N>dby1b0g}# z>aI5Xi1TwHX4w+kk~e~B3+TJGk)mO+8#Aahv{`IVv;`pn00>RPGbLQWCDH4qlWdy$t&|#t>5WIK(}HU%j)bxt zBzOIb$*mX&0!PhAdXG<}9pkIGar(<&TXr?=#l{QAs@kuJ3+(hi$S<}(q}$fErzcq~ z)tBokr{Xqoc_GB~y#`vZjW+Nt<+Z2|>XL>8&?e31ecUo)xDX8cDb^OpdDvlR=&*&jCJ1jHsDB!fDi73em#SmfE8&HQku$MW^QWE z3LDkspu^Q_yQN9E?HrK;It#*rY!4*v%FN3G|6)3F;*AEqZ*E}&}`rdC65QD}JOVCT_W(RMKI`@3(pz&kWzj$}7 zt?d}!sV@6MH&4GL^wChO_GGSz8rE&9OkDPRO-|HX9CpMhSmyw4emBYw&o!#C6hyaU zK5v9U&vG7qPhU5u`@p^~jNT!%tF77Y=RT7o1t%Tp+7~@GLaqxuhk*=iLMg_#BvP-^ zsw0D8-^1>Q3~4;tI=xiaox(Kf*C-4d@{Y07lYiAx-BfE(EVQjIbz- z+OLZ0{BJAt4D>4XiA22j>rfJ2=vH(S)tjJh+m@(M^DHVOXPLQJ98Dj3q7qHkW$2a{ zhcy^`nG6O|ZtRaf&Y`bB_*3qPl!!ek_A}ky-(Eeh;%WfI@!Hz!JO(}*rcgPCT8Nz$ z${WmyHRK3gX{HeaVtXCi*^ViU$x%V$ga&6QlFzTkjrp zKgYQl&xolX6ZJoXgAHD-;!cU%yrs}Kd>u27dE@Ty_@jNm!d;JVWBdQm!ql4W+9_Y4dc8#am!;mC#5c`N9=-ERQ z9`LCcsnM8^Vp;YsM&9GqA_Jg(*WttM9lq@rn(kGc-Dab!#kDNji&^>qI|Om5ET_XB3OvQN7EDE~Kby zIO+_k@i>iZe>H>p3FA4}lFVm#iL=SfyG+`ut;n|mtwg#A5fIXl5Oa8E!=KsfUh=T0 zY7J`86cj2Q8*aQMm0Ai=Eb`rrH!n5~gdqm|er!B#?yzuVY^ZBiZ3UYgjht}UZMbXl6aHnn@uT1Sr8OYq`*LVA&h*vN7gX%vJP;L}1*bw4Y0cxi+l zL=2Ku#pZ+6mEa**)EVg~$}h*xwFp9wCosR=N{ru%KU(VYRP8+!=0NNSs*xw&{~7x6 zwP>{PrD{crZpo)Wm+T#xU=QEEr+zd38BkgD{kOSH6|o21=Vy_aFdrSiy7P@4FQ|2$ z#~1|$?J)F*Rl_sciku1v#rk=j`VQSYGk+@`_zFV6>d-Lf-xA@(>cwcBg8sb2+zFEb2<>P`odo*RfsWNCD;u z3S*j3z4RmoAAj{};eP*6Y2~_|&7JI}Yhd;q=`!N~=>cz0HS2!WyiU^twbYi|TEYJ{ zLbcP~vZZK(Z0X**XCREDLvrK2P^9s=cl>%h6g^Aa_YhMt5%@hHKpN>1*8Y1|w&0_- zCp_o`64#*VvAol^jfw#k860h3ks@Aj=P!Fzx_`bXyL+K8Zql!(8(L%h2aJL)tI8IQTDNXT=glPr1;3DX)43%$hayE^0H)zB!MdP;v*(js=d ztez^U$g|bvONjd~O2a$I5@tZ!LpK>q^fKEWJLHcF2VVO$?8*xV4-gdOEUa4YrM%pO z_Y#B!$p22T#hal8PmNWPuMCZhR@QpR>UKz1JKc=&Usqo)oma9hd^pRaUl3$(*U@jI zzaRBfTKz0Fv7hY*56z~C_R?2ZC=9uPw%x3)NVH{stFRZoc(6MxbZ-f5B4nmvVlBxD zHrfFhwLR+Q+>66;F6<=VjzubWw3k%{=llNn$X}y``X`Uz0ut*`$;ZdzX>aXlYPtXq zDol6f)#$2ASo{5mLcn1xC?az?9j~k#<#X5IhfQ=I0TYR9UPqfuo}N|5R~eskbtovh z>$~4<(YLkfyC2Q8?Y{MLwXwjt=!waxXJ)+RS2CwDtB~2 z`sd$K8XPL5KGUY+oV3Cv- z!*NT>VPD-i*WqM`EWbA{tV|J@``F|CkySg`^o$JDT&VRgAD~a=btx3J9=wU*(DRwp zPhoLOozceLaedALox@h0p{wZN!)eID;CRCIGx~HyxRTA*eGHSVt8#VdP2;xH_WZxR z0GJf=1B0nsANWZCAw9Rl;8geG0G~YCq+)QX2B-qA)GD`cx&IZN>*Q|$!2Pbz{VA*d z(Wn9D;iF+q=4WPq4>0$dc=5+j5TMC5G*h6Oick?lE6??#94J@S+tFe<+*u6o8S=SK zV`tn6gn6d?5}#BP6PYy zMU4=mK5MLx8YjKi+v&4k#vpvkwscNmZq-5wJ2wx^aqnxD9#LipwfMwrUoc6BgU4`R zrRZq-TMS+}K#+V45Z7rPn42H>@r&u}wRVtG40*FANFjsr_9T0V=*4?f3bJKa>c%!- z*$MabIspKnIPSmE(c9cGmea;2zUoM9(9FEao$BuZvDBpNZlI;Dr){AX&k%P3B;sEN z#kV~tHg)XW-jtOwSvMR_O(}CoXa&zrHikva-Pv~-WhKJphNc6=|4p`LMqq;-*M>Z9 zp}{G=`XB^YJxZ#Dbq7)P%j)CZ=k&VtqX52Q+;hQE>H1}-JMq&_7BV`-2#1i>yAu4# zAhq;WNP6vaYDsf#mM}KHS;H~$L`jXo-^GH1y4=v=DWVoSUOcYHlQ)`A(h zXOUVg^hJS=@b*_v4=^ju-OO~jAqJo+!ge2;`Zb(v>YJoKsXvy|?B}ig?G<|=pR>^0 ziUTH;Ns6qsTGz_wsXbwQ5Q~AeH0h(L>k`q%oBLityA7p3o(~fZqk$P%xN&ZFh|^c~ z-Ht7a4og=6;QjKfUGL=Ypr096tF|*<&#~)vFG88w3I$MI4c8Y`Ru<{@N?l%aZ6D*v zKKW`FEPp@vviEUyI|3m7zw)&Glap{OwNJpCwFAG(IOUx1DVh4Y((IRimM)K%0dioW z5EV$;!|MEMX*HwzYpSRgA-;iD5O9op6IMUf$};FPFDi)!uv5Kp{A{%c!77ZQ$v?~7 zIR=tJ0v!)zS$3c;954#_eg3V1kteE?vVW# znYvOQ$O$pH9r#G|cG!Ty*#J>CEDF(QKX-0p zzl#k^_+)_@U0T3}a1`-}gSMyXHq#M(IKV&Il_0|e<1S!lAA=zaCzoGDm>LdjNwi~O z0U^)OrIy1kS4~?t7)E3vUi9R-tAN-`_|?m^Rd5s(B6z}Bbaf<4Y;9c7&dzL5xoW&y zeDL^_)&9vajO4h?@FWhQ%8>!dnvxQnwroCg55pdxQ&F4du!Fz3LHWFotuZ!PwhBSp z$qvWVjTonRH3pn*sOGH*h+`-=-jH!sJp!_qtL#{sYX~9wkVZFDHc+zhHa@Id$}jeb zD3du%s6se}^IL;do>MW2(_hty!|qZ^^bbRf8M@5gM|eY2tYHJM-Ma%3Q98zlR99xN z*#^%n_|Q6hv9O9v4PO&oE+Kmp1#;z-R^@r0O+6M>E3!|j>uP08oR*q4veD?ix91PUnK54Ufr6*W*dcJg`+yi{O1_=ss~}_F=Af z!-qzU@=wzTkYAD})j^W*F?$&zMUm1la&X#S*!qbNrGm5YYy|Om~q0x_u<{JU5)z&=B7{cZBdyD7Jz2y)%;68^9o z02s9x+v68TyzRaIvdrDTZjd7*3tXLFvuc#@-%BFLJID`s^VfYsSCKgHvZnwun}82} z8`NIh#E<+%JWH^1)uA>=RoLabWGRmRP$_C${p|N(8(6LHEOBErdd}YFz1#G?aBt+K zB<2Vnqk|8JHj!j0WhbRRKBvj72gh!SoGlUg=F>k8cYn9oDxLmHq9UGiZ)W%6yj=F$ zwYK)aer00DNgYb^bUxy5|9I8Pl2K~*U+|oEJ>B~=cG3u)>r9gO*ALF!QxO`l5wSY% zc|OA2-!gZwSOV{u*l`q2@piMod>iD4!M|?+;)M*Kl~3KQt!6sQYKIE)opx=5aV&ET zw#7L39`DN9F{6**kXFZkXA~Q)@|2qB8Z7Z0X8JQYsyxUgVSPKEr134j@~p0|X#kPm zU6;=NKDhbQ2)ui(Zsqp>59m9Kt7ICL1g-&XCOb0WOsy(c+r8Y~V$Faxi|;ELh5rNd zv6#5*-&V?h?9-AtYIDBS`Q0ubY6agHy7HRNVmja7*Vxm<<7_cXQMT7MOYgf7d&dXv zKa=lKX5YRNQKS}xiNEOj^5m<~LK;C~5k5)FeVwm2^BEC>cyU&E>+1MYF_Emsh~%kE zDFFi}aGx_5Le4Z-RMlwf?)Aag;!R)K@kz9gt9Y3{I^ki3%i(a6Ur~`4-t_rjn+MXR zb=l|^^BynP1g#h^q0997RNpZ_1>esZtvJd}3}{~z^k#d$dPx%SZ@&dH0ymbf;;)Pp z8|Z@M-xI|&_i9hSnYyosfZwI)%CLECi1fiJ_Z^<}RuB@Srh zD}#@R-p*k#-Hor1FWmC#*&4MUBy-P4V03eo9u-58_LeLg+9xt>qVuO;66 zq{&Ohx~{3k#*(bJ#S2+T^Jd1-&nR~b8ijZ=U#TyoxJnyPU^zZC%)Ft1+zHsd;+=-+ z#`M4|wbqZnpG}noCWlX(UB2vA$U#hg?#@Hu%U4Ha(o;5*zqOr* zjYLK?K~=!VvQ$Lo=aB^d1-*Dgsehx?Ak*&X4nF5&yIb?IyILm&LhJ&g#ny9IAjh#z z&0sdp-4hoVcLtBm*KlG>AKf7KAZ+z%k0D1%ybwTZ+}o`mx>cOT*yrLl zD6w94SiJh zU`b4jGFGV3Q|gpCG%n1H1+8H2<$CIE7=yOn7zO}W_%R_C0Dx7yg=cKCAu8zawc|*4 z>N5YT{CHSFcAK0wZC$k0`md1kKL~QMx|&PZeQ?tl^68F%r(s5Y%Pb7DCyt=os{5^m#_yt!GR%%c zujAQG6z+~Uzk*UrU=^V3Yj_5eHc%89ne`t5+8)#O@Wb(Zvm3)wv{B2v zFldkO(40>ShK1i8#E_4w7(u+TvYO9bi4g$e!1?j9%3yzfBnARm2HlvSQ;o(Wud>!y znneLwbl&I|B}gO>p`qCVoK_``3Bd{FYjte$L_7dMmbZ=D`uHmO(UFQ{n`~I7zbxE$ z8PS7H-=D!4kA~Zs1S`f;&fe9<*JVq2mn@2-!%!iwdrjg$776j=*o-{REOOzY3aON! zE*p2{Hbo*nx>Yj3qidg9-@qGbUJt4YrjS@x44CMxF`mdGuM4w|@W(r;pr&& z?ru#hLj(9OmI8N%MGLt;EDfa2KO>~kvS<3piywswTk2 zug7wLLK7MjmS?AKDB&(FK4l%NVs<)-XY0ywR%5abDC1&cR)dvcFVrClEBG>5kzxtX zSFi+;uPX=9V#RQ~y732!B*6l|BEOjF8M9#Z_2s-fmZHdNmxGKqYGp+mB7a&v8BgxHu*`{RaKC~iC3LUaaoaP^8~I6VB7-?B9W0t1NA`1> zH1+ltqc$^OR$o*Ml%w(XEHBbWV$pMMI50(2!2hI1GGqLAl~e2aSJD3>(v~f|e8$1u z-aN;{s zxV8cS{6JRRM2|p&D}jEs&(3c5QTE16N{Snqn$ct!%x2l$FW)M%3fK6W*W^u3ASj-M zKjCB4$Kf$fCBaxIN|z`STGnJsJZNDMFXSWS%)*dkDxhk14UK4h63Y4I9HPe&Vo9## zAj3}fU!}`%jv-pGrws=gKnp4gOQe6GE;G|3r3I;*{TXcCjLVsCtV@+fZMK~SKazg3 zc!^~1O5B4Q>KE`IzjEqIi4jGIHiUk<%x(LbZM($;OSV_rPq+OfyyuO+s}&x(VSQkW zR$06~nXC8$kXYb9JT*OsPbUwXE7|(y97yiJhBOs>RSdzN<{yI-??^2M%t{nev(($^ zvYy_M@$k%q@be)dh#j{%&U9|ulHRR6y$P-Y#MTowJr_+T=Sq?FG5;{5la0<-I|07R}FUAvC$ zn2S&Lr~T&(IKNeK?nDYo*J|i4TE71h-mAo=M2P^KJ>pBo^G;_+9 zsEq}5rXyTxy<OJ`WBvIC=Y8vF8-c-_RR?u3VBPteUZ1 zAOnyq#nR}dTqOW6EU0Yl7Kn1MZM&g6+_R+}ffeJkLLWT>7HX)Zw6wN(^}U(}_l#c# z?bGDU0djYT?HkWwe42t9a|lW_4lMxCLy(%5;vw-50V+1OR36%<(`6Yq`?<~&Y|9oB ztMto#(dpAaRFvjLQ9k;jz~_M9aaC_8v^EOc;3zHjCFleZK&Sj~SBz$a8670MH5e>F zIPt(x)6Ooe=B5^nL^VomViVNYJ)ZcyYFcXcY1kTM&sH7B!zr$nSZbPIKZP{n53*hC5j-u4KXqgkDF~dQ5`> zm>yz#v=1d4#?GkR>O-t|GxBaM($4G;1-`Jlsn>oH6pu8)aEw>YLU}>o^$s!k z3aR^ltDBw6Hn)2E;usOoVa4o-@ydw&%E(?^t!l!Q?0k}FxB|+l9wp&Xl83cwX9BBC zt#nMTw3~>smzILuSlltZs?SO)=l^4{$NcsT+{VHw`|*$R_GaZ_eicX31g^MU&0|eC zj7lIg;<<+=C(5VJY3$&rT*VmTve*Bvf*VbzZ!3iWhZu9})1v|7J0x<^6zp1}*MF10 z9_!3gdwC3@Gyw?KJ$iO)$aAhi9rLKG;ojd2=BILpm`y#Nzv@oZ~U9%Svm?JSj5rP67AmP6w@Rb#^+uk#l-8|7$ zCR-*sFvk)LrN7+|s~ddzRmK1MfQHoGnBb> zjs-3*Pf5-O9b9F_$G-v*Ny^0!ZF!nMZ#NlMCMPGyfpK6mlsDJ#j8JOBS0bYZ<}d-l z*JcSGLksFKUXYMdE*?h4*BS0Oap>26m_fcrNux82LQG~4bjX;VE72(>#_cq_jw~|y67K;`?J;y&j$N!$-PxB)$Y&3HsM-`gybtd}1KNydPxN@)Q z3Hw=TSHN7WnaP@Y@yt1cf9#;Jy(tHq{=vv5dBBQT70}e<)bDsB6Bz`}*Ex z!N}1lwc}=?(RS>_8NAbXu(UQ9$Sf3!gJl=%sw-!a{cR4rTbW6M?Fn~rU}}A5W@~G! zPb~dQV+PqjJv&=e_~Ou6kQ4#ITNxutmDT$*Y}Zm)*Huk?a(3^|xp0FM0|&<#yA-mv z+x05^YcsuyQYu^xJwZXi=38Q7TPT-Sm+ z8Z@=6KTuXq=WjdD$)ID%J}P@yFu(Z&5e#Jgxjy1ixqP{ye|-Hc%C@ zUehB}S7)LE%C=)EpdZrrv6r=R z9FaX@lSYbR(IaxABOiY|663Y|J@DCRD~J*~Zxg+g%I9}Mh2B%!+avmX zc1r``>l?fY4uyG-_QZF`yx>39`ZRtATDVxj(&Buo8q4S@I&5 zmg>IuNRXy=dBsTNk=~&tRsRWI)@pekIJQ=vA;l1O)Mk0KK)Siuvs&%8qXKIvcdzz@ zPC6_O*oUfgG?>j&05h{%KVUJd+Bo8ijYD@1)>@nKT z+|h+??D0}Q66h!8i2CuLl>=;6Syr|CZjul}K z!s=^Y3;?A!EC@u+&nMJ~VD2aznAzeEYasYow03yy`IK)j3}F0{v$W!-r-1?(Kfb>A z+_PRA`B`c}AS^rhLx0^*4neul6u$y{R0Ed{`a8AyUPWH-5rJ{@A?BL za%d~)?C8E2@V?AKpn53C$c;1+ulbXslXnC$bkQV6&C&iC9RRou7uF%IZaAEfEL~)? z6~y0&k$#v-9aU{3fY_dW4Hro;`#3V6)c)4unD=)bx{x;uHsB?Hicj=VW&nG)9wq=e zzN?Z+4+9d~PW*VaCRnSQHoO3;sa5%TIkRCoGPB(7E$$y5;QfAfcthqRSk`E`NzkdL zsi;>99;T;?w2vXAe5n`Je+hWp4>YrsP8*rW-7_DShqSufWinla9@1pQ0dl7uew9jJ zx&FWvTYZ}Q;?b7{dY<^Q(x~O`vpjeiGyRozr8IncoLz*(Wu&7%iyDwX6!^epUG^n_ zYghN)N}d=C3$Xi78|?GDKIPMB0AR9zWzOe*wL}&kp0(-6reQ?Ox9x^S1vo%z<~P6K zb~~(>^``6`SH`TX!jil9ljGyx>+F5cw<~5H^zH0yw7cD0UCWRrIHVfRZTT+Q_%70~ z`1lVU92W&3?XcIdfd-t^hZ85gnymeA{OAky<$V9~v}w1Yhn=1x6O);_pA*3KA0+bp z)0Ez2p$`6t0(-6gH(K`53eKi7vMGU;;q=@=0}t0&LqCPrCILSJ@oKG8GwLlMSCxUR z5jQ4kDHCB_J(iETt=9tW)4!5fGKPP}zl5`x5+ub;NW;aS9{XA82B}bstqXwE*7L?E;KD<*SNRd)P6gFIKpSbP}kp5%P0wX>Z?$BnMYX z{oG4vya6cnHt&+i90AkM0f3UP)2zz=hx@)?vG3sC?k#35c`{qhajM^M4SAA z1CAA#SquhRqONk=5mMq^ReEi)j>_jJKN;2YmB`*-wHibAHc_R#JlsRqKFyG|gn|hC zWpL8}04JyW>}%0hyP)XA0S1{=*lvuak5=dU826j%iZHnknksVqA<}}OQD84c^v?5W z-diwA=sQbzoPdZns6yc%-sUtmA+J$&eleSc6Zr&QtRpf@1(PK{F`2-hrx?-cYBx`( zzRmPekU-bD@sxb7DXv>41DV?+L;yhM9krF3A+orImHGL_#f;scZpk-TRa%+tbGww6 zTV9o%kxi#i9Qk|O+i(-0t^fAGgREm(BJ5=@^M?4zw6ep!QYu%Iw6rg^yUcPKuj(Pe zaKo^%)+OZAm=*9}UH}QfD0ZL&!K3e8zG78oe?s%<6f6%>8Lq@zt>RRPSjZMvfZRv3lXfZr?@>paoTNyjifsD>?b@`)xvkFj#JIMdaWJ` zg%ER9KTwoZd}_(#ne83)w!zxpK_gn%U06CXvvj_Gr^EaHb2u>o@So5VSD2t!W;#FW zQNO;X#+{gpU&p4ucl>8jj_8dXFecJx(Y0Sdmd1O%g!hoU#VT0U{=&N}-?*2wdBwe7 z0M_B?TxXByo3R4)|3!mQ&@SKhK!Vf94je+Tpo#1i%Gt&9r~602+}+lvLLMXFEkb>! zHN0@xH6l+r!#neGZ_hivmJa7%YMx(ZE$yLMc9F`0d!k0;XZ4-m8?RoEK}mitaJxuL zek{?@dsyC+Qalv3H*#zJ?e_*YuwTC2jC-h(6-8C+Bxk>5YCLaHjrkgoii=acyEjww zaF$BktLYBp%64~m7`Q9ztvxx?J64#!MMAO4ZoG7TgN@O4^3*m*uRKg=NNgZ_bF+JL zo6NyiDSCy!Pc+r!C%iUW!zRWbujm}%0rqIG%w=2KEQy(l?7UdN5}#FCX^Xh_K>$UVl&1Uu@nOBc7_i`&%Cl--O|+dkY-1LjMO zD`H;`X!(7eY+ewAJuAWB(w~7z*?mEnZ~&!%05}YQxzzJX*wa>q2GdpyK$KSmUqew= zvHJ1Lm&|a+s&lA?4tQ7WjD9e1@d7AETCRCkYqhQH`Hfx~Yrmz73d?Y@kAL3w^*gGCyJCR@ zFb0Hk+I;VL-#1HDL<>ILG=l^zVidn2(}IDaru(XezUIfB>q;fK9xZ5MtUAvjmrGd+ zxB%83oA#6Ske{mDu%fTwN56VGVBIXBi1EWWFjD5AAZtrgZ#@?>udhj1>@CY|-K}p( zRw>tWSJVmJlF6cqd+ACs9Jr`ZzP;s{F=j#=UWP|jm!%-CRDE>sU`%0=S3B3OibCj8 ztz;kLhs`GRL&Hv>0f(^iL4l&bK;w0{)Zmx4L)~>A*K3;=CxhL+SxpG929*L=Hjs(a z+NNmG&(FDhx~aaDS-0z(1r5d>N=_)p3NI~2qsMqPH{O_>Lpk`oD>Nc0(iuY->Dw-; z8lBAk<%%=7YTj+6A$Z$~L<`pF0*LNuk|OA<{-m*SXeCPq4*TLfs0uFa>G#-hU_hxuO`b<2l$(3VyGPv3C71~eFj1A;J%*rH}G z6Bip^2K`P%0;nbW8MLbhmyy8z^&G(_=$266eO(b#xy-ylqr-y5`h#LUgux^|t5n z_`;~2&nK7S*)_hQEgsT#P?GAv>O^JM;yaJJYXj#^Q#kk^=JXDP2MeP`nqi~H+?w_T zDsEGh9qx13ceq0LcUMLO_>cbS{!0{2FrC8W<3D}7-7)|4?QWvoJUXeAs>N!{Gt#Npd0I;z&mv0<@f7`nnGejJ7wnhZ&mmO1ECH?o3x)eM6soR4 z0uA5o6n3)TWxYXvO&-wSGn14T^5Wz8jYcYCdu<6!(fSY^ig8@H>~VbbbIWxoIj4e; z$%{sCVR0}5@9mn_K&0YnDLp&czOEswct;2M{kw&A@7-@JW1GW3_>`AIyK_gv6Ab?{ z^x{ZrEVo_%=)N%^uPZ&eT)MuDItZ67c>HBS7+Pdw6FBDK;f{-oXLsWpZA-&P-#fC> zwvF6>M7aC(Gjg5^AgQ9_IgJg%4H^Inu9~@gfKy*{y9yok;8x%0Xz^CGUMvD9i{N%d zuY#b`=c;R90JudK{4q;*2E}2rzX*a8)HS<{qx~CJr0>7f+p^91{C|sgyB5atu)L`% z`+H%|Eq}Nk?1)QNUfADI~JR08u;0e)y}X~$yr!hlrwIW z&Wh!8PFz*>88$>PnN%{qpr$51J)QUuVUh|< zsxkjeDevzO5BmYZb}Rtvcl{sM-a4$Ut?L(M?>a3|tQ0G4a4+sqN^mRg(BcGlhZaha zBE=or;sglp0a~0OMS=w>8Z1vohD3b4~q?F@9qVv%iu@ zy>=(NsSjxH-+YJWEd>^F^ejuuwL8sO(?z;NVR z<1pK(XCTr&w^TRBX7B)hINP~>AcJ+=`c>)8`VcWV=-*x1kkW~RGgU78`%!D{B6hS# z;>lZ^xoYpz)}-xK!vyD_H>8;thb!j3EkLj|o%BZiz0ZpKqdcP~&4Yc+OoNpqpKs4iv41Xj0IUhbG1CBx5(l1NK=8W{5~C2ZCT-%;HA^suzV zE?|5Ut>M$8y8>fges*LaxL44mnQgCwy?}D{00UqwS-B zTilp$zeSC*j(-IgFSou-cVP9n|pFDud~?L20O6DAH87P!t+ zhtO5onRZ(UG!KvOOv+hzP%K=S-*&uN5*#W?LqGE+ESIN3%^zK2AoR^@^X?I)z~&Jq zZ4@1F`5ReF81F{l5)THRK^1cD9o%sN{%t#9W@74GVfN~bA2^Rp7`F_G94S{^Jr(pRud~@zX@s9 zWFedIB=gtMHED4@+#QJ679M*uyBYj(-(GlJK~bss^$+`|Pe6o~ZN!Nyc}TCc%53YV z-K(+p`NpbGiIx@Tht9%jn$58-?!+5~%`AM>hkF}h=U5s;fxgQ+Aw{AnFj##=Rl5S zgrz=RE$k^COeIg%WM~`85bSJS#Rj@cMJVM)czL=ik-JHO|UGhW|+ z^RoxHiux!rdUrbtl5^ALC$`4PjXF7Dzm}n}t~_bl`fh7-n6^Oyk86$^DuLaL&?X|+ zoM{sU(bo$*a5uAa*}w@Ocgau%NOaHjN<}*@e?Q90Wm)kk0#6>a=q2utKF)?>wcB>M0=#&bmm-x~FF3 z0+==KYUS&Rp+;`>`igw&x?bd;B?>G3k!<_L3!Q|{Wm>{fnJ62jtHgO7rR=MXj~DKU zG#~FbGLS|ki`yXSOf`hS^^lu4a%};P7d@}%_p5D42M_v_n9x}T0|9~5wI1PC=YoM3hf zK%C+|uD4=5_tetCr7?8|E+eEwcchZa9Ab2gn*B>z4=gD8IV1unqCcD2jx+UxMoPs* z22c4@HBXHp3r4JUmhzdd2D10Erjni8of@> z&gM4XfIuvfcwOxeWe3izehVN>rNr)>cJ=A_U|0*iuB~5K`|)k;zDs{{bXZ+xW%rE3 z?*x7PK4&_);A0Wuv=-N}##eT`X~NdiW~<98>4=Yk!KzO)i4in13(wr9ev|*Z@*b*y z7!qS}8IJw=2T#G3<`F_tlK#BPxACbNcRYDKz5JrL@nb=GB4z zt;gyFY(}ZNWvJpevJxaAu}IpLzc>eNDhqGRrJtwxj;m-S14{-_5yGpPGpd z9r!)SVts&vquLXP1P^~KId*gYtp%z5di`6WLZtlJKiU_T33 z7>T(%*qZcB$4k3#wi0ax4XxQl%lE;{_u_Z*jo|6FnqIfZ?dELfe(JD31RD>`pW9f} zNGobbZi*i{Wc7&nCX|wlw8)kpEU8S@H;bC~4W{z=9J*nhj>|?Fi*x3mp;++m|BzY| zPc~bW@koiyXSAA!WPUd@#&yvVuzTj=i&}SZM0$ci-yqN@gP&WEwww9u@I{5dyhP( zHULHw2j`0CG4cv8gI{9kEejDI(c;oMmeYk{YBVm%4|Qhxr`J`9URAABcl39rG^Ko& z^Hy%BlbX9YUMhlIn9o}-&z?O?3=T$|oC!mbxFN3}-;Q2#y4qWk4~yA(YU6&u?Mtuu z9lOPZFS#xK_9}11yCwaH)PPW$)E%7n*F=n6?mS*DRE$h)3ngFdwY;XYIw_c%1#tsy zgrYz5daD!-gT%zx+1Zt0qYs0=BqV6&SVo0jcXovX4ixn0cUOFttBP21U{X70ye@jf ztc4r$bN_ljbnTBUs!9q`f6*Zxh6B-^@7k2Jv-I-gLbl|zjEsr;+xxo@9$f?4!Gw&^ z%ewmCCT7OJwGC-C(gxJ~&B?{Z#nV%VB~eggJ5^FUxL}BC!YfM$ieyPtDAh*9fx!+AWfp#) zXEXsniYr#ZXxeBE;HNzGZ*QI#it+S7-l%(Jk=_1)_6~XdLY|0_nMA?rC~!I73E0#h z4INN*zmwS}m(mU4}pZIeon7@E3ZoVhpMN> z0cQAh&`-ZlUymbSKqVh63J&@q83Wn@--Blal@tkVn@-w-KY-@r5Ui&LI0Bb(a72mB z`GAl2BMiPJDDXo`%K`$9jtHc&zeM6?y}TPyBt*{5uUD3r%^T|AZVdd8`~{@LI#lP< znNLTL!|zuU&wS)B7{$za9lr$3Urg>fs82a%WSw?GwQgwFkc!XgluxoeBbZUqWtWnY zU#ZZ8W8A?TkK-t&-sWLlCOjRMZ1lQO>FN+3O^WMK3=?ZHT`Z|7*jXkA=b2=d#fwK` zbd4qHP&Pp5_`}wK58Yb<9(PaQ@n~&)BhBWxu-Q4)9HuX~I27PQPI%A+i1^H3c(Am0 z(sVahnf#8cGglLmrjc4+`a*Qrsd7exgNfQTZEjXSIKxke;xC-OOsC?w`5oE(mt z+8GD#Pc|1CTz7p=zV>lg`#6njni^;~y*YIR?SeGES{|`jXgS^11cSRiIxi^V`cxPU z`f5Rh*Op!=+nzYp@i$L-4#sJhqIv6-mW!aZ{s&dYe8mt=^^L*Q-~#`t+@p*nmL_G; z*3nR6orK)_z5p>}8Rzv}C3Pm0iKi@&8L?N_Kg2}Os6=_~+UCp3!0&_(+Y(j#0eHCq ztyim@_`pIE)TLp6X@%HJHHaS4^s!2z8hJ+*t?HGY^D;*qR0zneyZp?r;`=1yiMOZ8WOz}mdB}f_qkH@rAIO@4=Q|Na6B)`J{jIA;vSZYyjjr3k7Ed3o=NUO z?;eXd5cGkd$vqCse0055nFdnhxe$8G@c~&0dS&_WGh^JyVPqJwCZtBae{fv< zYdCf1J!Vb&`Mix(EoT&L-8|04(XctzHrl?JC3tmU(`})B*g0^eQuZGsX`FaMv34vL zTB4}*-HneiG;H7HkzOwY*$?kd+xSw}$wl5${RS90q0oX)G^o7y_Z^zU-KFp_!TIRR zw5}HK!uAu(TJPP3zdKa3d`0x;QfqbsDt7dlL@hJ1c5psH#bIO zDTCA4X3sdkkYgUR4U;G`E!x!foLSUchpCXG;chmqvVMQfI2GsV3(?@Bo@(XSety?i zmnDi>-{0?LQhu^2GZ7FzD5E)kI@M@-i!pBrL74|gmazG(X3qfBqPy<6W4tiigEODe zj$d(j8LEpCTs;Lg+tb-1GBRm(#EVN0>!=fN_QdjtK(;5G-{P`#SO@7MJj)K2^x@pO zdIjfs)xJ-sM4-lfg4JGA!_!i8Ks>kBAlcpQrvM`jC&6+^7@X_hFk8E(CQp`xPu{{S zPdaiCe8>M!h2xJ+-N*kd<})M=6{GleoKPyQ;zM4Ltkt@?<7**NKP0lEx?d^NcxP*I5wp&G|4%~sIP;ej@fsRPNDVBRtlPPE04R#{ z^_6_-2ktJ1g4`aeg1tRwHRyn3RM>4vCp9RaxOn6e@WV^X9fbJJbKi$4a6t2N3s@5r z$ZFDrzIu3QGbI+0lh?BURqLy8bH3o=l=y6z2h~{r7{pyApyh{kwLNeW18LthU+b~+ zup&A;L%3GeO4DScC|1o^D}3u@k2anmp}u}6AKVQQ{e3Lf$-n{EUMNjQcR;&6wIYR* z@o$!Zld#28IBcEN2UbnD2dc1gKTYxtQ0zbXqcnXCrpC%v;yuR76WHWH4%fqU4IdSM z8e=&tz_e-AnQ!Xf)Q+FfQ*#F(>xj3sL~>nbi4EFMztlSxbdQjU8Fy5D3~!!IQVRXGwg0_ZudLt`b*itcAE>k4?QL z8qpy{Wyuki5tPc+Vj|&uIx)RZ8tLGm$EZ4zCB|*W4S;5}ZB6ZVl+L&^`FRcEgtSWd zB%LSP&voT%dD^>$BZ^O<2DUp zm->9RbM+Qj!iNE>{HmVvR;D7MvO8?L?ui_n>qw`=Rm#n7@W)Sl_wn#bwOQGCOC+tA z1O&`URK7kKbf_^lx!PWK8Uo!@Y}{X(*>P#=WD682HuhGniBC7F+3g8az-|8)Lu+to zl%@HywaZzQlVs7m<)x2;m1&MoU~_<$8;l=sLjXc_WI6L;>>MvEEUda!xzI@9yA47c zZ{w5RDjLuUWlBjI<3dRxR~n4VdCwjWDdL~E4mtA}U%9V-(O!sZr}#8sJ6Wz>Dl;sC znG_N%Dxf~T8B#MMx zC}V5CZRk*=4qL{NS?apbAHl6cP8VxeoW5S9+1BwIwF6n6gE>J}D-~}3N6Twb7_;$< z776Fkv9Gf`%2x~ev7Pd^8TmtT9ixoVTV8eF6g$Smx??iMn+xlJ_)1=_t70N|L^Ou; zbcN`hcRJft#3&o4B4yO_wc{D0g2g@)jNq?l*VvApvqeb&8L9fN>;`hlDKR}*>gJ5p zr1de6ag0Q5GtE2yVButrhXmLDXC3nesu%uj`N73sCmpV}?V=5?Fw#}{p?)OUUW;qr zmO@*opL9s9{hs_sPv`(W@d2$YLu;mFsRW86N1$4Q^P9IT#Ej+S)$($g)ipGki~15s zmR1x)>JFZRKuJx3>sBH&XUZEIv%ST-O7P752fOYs^@ZFwGrZ-21PSo`yjP7BtqbNo zUn)v366vfd@G;Na0G>&K$aZ@rcV$oaP@OIvagcAo;{$C}C4Lt~s&L-Z`eSy47dGvd zj0aY@a_KF`|DNL+!z995+8!&~IVzqkMZ2dNU$=UwgN zDYJQM#u%XMk1UZx;4;bg>c9?28&CGYomSn;3HI53X=5C#IWpuL?Br4^@OX$Q=|t3M}2 zxzM8jUB|QYHZ}AoILm`v*0qJJtwWP9?ORj=$;pge8Q112nmN|Jo$@cps||DWDvdmR zfcJY}00md31x{5K3}qf19x^ek*%@XVwN$OK!%7-Cud0{_vq--I*Dge-`#E zcbLmzzIoKJolxy6RYNCuLyOaJx+xSr0z`9>he&v8*HhZFvLR0(V+-y4>>D;!B+P`d zis(uI15{C1SS~{G>{vuEx2t^-!G9n2(h=oYFy~d2HSK|J=gBLu{7bQMirFR^M09H` zSnq;Q?+Gy6-zFRPKgmwZyb|j3aGR0ab(|5^J@v;%_tHnFVY zP=g|0utQndTvk@<`g#a-I)FshilJw>O6gr8JJ}aq$=wG}dwWp$g*5>DA9va+CUs2o^&&cQVRX1o5G2IIF1m6fR%qH13MSuB12 z`ctbqdLbtbekBBw?T(5>>-6jAoXv||vQ8Th>PH4Y1K#0xk!V@ zs`Zw<|BM3LKt(K2*&fL&CUma7NkV;~{^eXlnKVNcMG&ZexQ#|U!8hR&YHt&=W#RX- zAB=duJtcw7zW=mqnxu(P-Z>**ixta93t}`JQoGGh-uyfGS%7FP{D;oSwdiVM2qWIl z5Ds@MV!~b-xYt+otI;$hZ0gu2X7-9+wp+RRWOmEZ4W2}RSJ7hkL;RkYuEfoRW9+s$ zICzu~V*Ehg(T&}iA8K6Q>xndyQ&5ms1m3j1p$V$V(v>o7-9Lmt$f;tH)(}mY@!`)P zvPeJ<+&DtTV+S2=t(+&4{IJ~zh1otbX6B9IGa%!|`;q(c z+(6;~YjE{1?3Gw{4oy|c&$#f*RAE#A6a}{>OSOIL8(9(wu7VVR2fjzE+VuW+lx1_3 z^#<_!lreLG6a$FtXn(Q3;B0pDuj-A9bZ=Qi&Z@}A3aKnDEq&J}3;5Rb{5}VyrmH*D zd1gC-q-%FJ2`IX2$_(VjqZc#!rrB7C?Ej;ts_J!-(m+qSJ0{k=mv zBKQzXNR2R~#Qa;{>Ds`gTwvSRcYUeM0GjPQS%DJd_0($J)SdM`@Y=7Yzl4p9jI1lg z>S%-R{uFwUFczI9#_PjNILsPcY1Pj=p$SE%>gfTvhb}WbilY87&K!wHxFhnmvn(bp zaarrWA9)~hZ*sV`W0&s00`y7s=oDLZlPOJf2*Bn^iSbKIn~0~QJ5x(D`FQabF&YKd zht`+Jw}%m^QhDMbgSx6Dwilp8_0-hZg&nl)>+LmmMh3#z^%F*;uKd;mUpoU*Lg(fc za9!Nbh6&2E^%yDp&o`TmLQks%X95hlFUpCi9G}k)Gw(VHxa?Rlu|?>-Y;3T|6qWZq z?uqP;+!M`)A=3=@f}YLkn}N5-A9Zd>TxdW#4VVXPZNt*h7J zU{I&V`hJ`-o~&bU9fyG7g|qJY9|tij-0Mnq6ZlmzVSpj3z%KQvS{3Fu%}&p10M#~& zd7UaK&asS&M4N}L*|>f8*Yr1bOPVJ%W8V@yto7VlwFlA!9H#s`g687~T*Ev}5dQME-N6p$+9yU^4mt-CI29$oMeD8zNu4}5@IWl6(dV_fqu*wv_@0?H!?x3~>!JLI9 ziV>kS^x)~mz=tJSY~WNo^rTeQP9&iWmPG|0_U})d$1*ykQBA7#Ik8*}JPd@rkt_D|k{WZzlg~JF za|_i+NQ#(?6ErOpBKG$4exkfd7>(wxHs@=Mspr4Nr7dM#m^>2^UF_x@bjR1lq#Pd zk)!%dUP+LgMmek!}$@I;d}(1*o+J+M;aOiL`PV!OG}`h_onv5V5V5u zQ?6)1&|;W_Qs%~7QM~>6pDsR-PsMhx7IG7(Ioo(P9U8s)75)hVSZ+XoB0aN>`<6q? z`OqxO6S2oGeYL9M$`G;xwVcQz{?FmqDGSR2Rp!$T_mT^i1p zs6c5jSZPe?&c;5Q2sQi(&^|Bx%X7VfR=cTD^q{wouParu$7*%M8=Y@Km}(1DBv+E} zsmqt_Z1-<`b9E&!E-oRB{7O;6SPW*{Zs$Gss<&YBV8!`rodzMHd~)*Pw&%!*+liUapBEanA67d!=JcahMt%F>NODdQ!m zS||aky0E}%I8P~@s`Vdj6Vgre{WN1}1Q!$I86Dl3RUF9bKXh|cRTa?DK^@=u*ca=+ zX>M$g2j*A^iz5~MB{c85kl!L^$D6}n`Pu*6rm{Py#{JJDzvitQ&_%nT3Sycp_=XmA6^$+^$eX%b{U`bQ z`swK@5~^KeZ=+l&=rs59>XYNA>gdAxlIt1P0n;Zj#g~sg4VGp$q76i$$AipEEs7(= zu^AqnV^{4DqP9CK&bL@LjI&tfG#=Z!*%(Yb4PkKBO=ps`q}%>fq8dou04n9fCdO^QJso~8feSqRjR zv->9#yWT+m>_DluT$nvGaHZ{Yv1SJBMkj#d@jvJU{&j5qAAU|e!9Jl9@nGZN;Gm^# zZ+w$897!Y50wn($54m~z+nf$GGU6T|sIR9d?DOX;=G!+{De1*wNwKlRHdhp&xTjpE zaZ22@;lnMScc-=eA-T=VifGRDTeKUuacj?SieE`7h(ZZtds6z@2$kbf>Eb(5?DGm< zDTo~(R3={6VNWE;RX%7z>!|c-d4DBW-8lZ>?9Qt#+I|I_$MrD9N}Bt`u7mT5ElQbC z+8|KhtYD)tQs3V4s;G`5agYOza#QkA_g;8Z@He! zfB#0CvP*+yt4uRC_fZ=UuQX0L`d$*BGPrDQtb8BeW2)sUX3O^+Pj+U^h3Cq-r z`3sA^T7@MuM%i(Er_P^@z!O9nv!u0oRC8^llQ_9c!)=r+$IU&Bqry)1sfF(_Ud4UU ze?0Djy=)$Z*_wy^Waeh3ckb;7V5j6OM%CL7Jy68X#)gGiP>VTzd+q)Xk#I##!3P=l z`F-e4<_7+^%pM*lr!vLO_1$vzhs0ckDEvR=duxXgAyJ=#;eEdlyS_Yxq7NSxoIacC zQFvHxwG`s}c@1Q|*%^VMeR7dy$HU2#8NN+Lv9GRM`sN^8_yy;Yu9q<3Hj5T4pAPWgUTyenF`0QD^-ru+2Xmh{7}=TZBRNFKN>2VcQFDsb!L>zwz91p?KtXJq4( zGr9FVm4Ll=>R`}Y)2T(LgL~BV&%1%HzfXoQO^$bc`bjnJNrC>35Yb*^3a#fbdh+b* z{4l&#HT&dTS1I&ouhid&-MFCCsrHs9=VnWn(?hzvOzxPE76sKwOMUy%-O4ATJ2iKB z^lj=xDS#M+IHC`SK+sgik?Onh&}87B?H4znP@2og1BZ#GmC~s6!Eo@%(ZFV08rEjB zom8e~yYG}J0q zqi!%YdF<+P!gh|8mg~qPjiC)2jvtisLSAP{Amb4^cP+qbxUJm&V>VdDao&K}c{cP- z>&~zH5~O<=zI%~d77zr04WbMt8&g!qK$Jey|qD(|guNRlX6z?r%V*q`Oo-WZTXwaCTrq*h=U*goG zw&e578A$T~*J(+T^3T(A7RNRx&zBXkIe*0p z%%AUr%x{v>YocNX3Y?AtiZTDRCusaSBsBh2`Kp{Rk4JK3^X4T| zTXGDupJ|oAHb_`xk4ruGnxvZ?*2q)U@&B^t8(`nuY2e?SPrPDRoqM@`X3_f{ut& z6z7UOxKez3aUH6?nL_aP%y!l@+=jvQlx*CuMo2`I`={uMtS@_Xm&{0}{Z7oaB+m+B z4^LDOG*`85V4~!5b{0k8SXA5MgZ1x(i zmErOW;eb=JU4fBJia4s~iNqfxZlT$E`=h8we0-vFIVQ?w`xn(}62Z$O=KJ4^vIo<~ z-bphw=tQrzKF>FiKJfXP;UP^??(%vGv@RpuWM_RSjJ!6zt6A$AN?`QU*FL?UE>3!i zzJ5St^gLu5S983eppEXvPfCxuJ=yW=@+b}BnR~)A_;!l=-0TI@PJ%?9#KiZ zjsNjbd~KmyV$iligkO4aVba-E{mj3nB&YTHT=f{+gg>Sk1&g6+lB;qtoTQCue*1Q! z&bVs!=15e1Ke~!0SCTfB`?vX{0}5+_T#5g}rxuQ+6mVGh86x6|p#wQO?(DRj10m8M z1ES6U7T(=!6AYS;(b2K7tJ@z>PJY_U(gTm>ELo)a+^M)mUh*NDQeY5;N)IbDY#<^d z^W2{11MTna0mSZRd#(CVJyiz4#0JRn9TTr8`R&3^d4Rj$cWW%_;XO-z`kKrh)ED)l!oXeTmf_ZM{dB2xU3RQuchom3vXe_MTH)Q-y-v6#`tX$=if0p-_-;H{Cj1d-^s^EpcP5jq z^i(Yoq1s=@hj9qcfhyd+$SuHmLca!bczzaPZe$m1L6agPDEy;g(-&HM?d^u`;!|X- zVa5ZjEhpSp#Y-lU&we$Tv`UWFnI|#t9I!>7X}qnkSX#OofDl{@mC99HHlXV|B58g# z%3o5{{QQ|F3+Fzl+r*v^125RNwHzUnQ^Y~o!Wc7Lnw%u8SQxv+{iRk=IC zfmqQ?u4*=W7#cbK6?1-kal~$$K~BaYnh@Jau@O?)dO6 zG8Rp;TBY^*Z)!P~rT0`!JSBnM8~`%Y?~Vxp47HrVPD~3Kr@mOCMvNi^bntPZ8UyN%jV*5$e#de|3iWpMGAprT4mX?M2QK)#d-LR*3oVyXw zMP4rd@0iKdSj+5xLnb27|Id(#W&MGW$So!X1(g*3EA)G8OUh(hX3jl=p<1cGg;9K= zpX2{83>^>N{Jo(g>1J`n`#5QvseTHpmXWtjsP<8V64wC#$lQg81BSqn&C|yaZ`-A= zR^`a>i2$SIv1U(7JT6!FJ@uckz=^Z@`eV|}a7_z?7A`hGRbZl$Vh&eX@eyS zPVhStHu+XXqiW7`nLB%?jS#~HEoSg(rMGggT)uD@i%1}jwHs4lx7%=4fb|gu&t>s9 zM_b7Laek{DM1RTaC@^ntUl$P~LDbz&+eF>>7Xh^8>92P}goIpbXp%xi)s`FYzHB?7 zktmNGdnEHmZ4>ZjU+F}jLsQYOvz%nWwvVM_fz5=Tp;svmfKPdu4g&<_ML&JqovAC{ z`PL)&wZ_QaDJ0p?{dkJj7@zQZDI{fT;SB<9&o0|JUUQ3@i03wLT&rXXc$C8EKtilx&YF5e2AIXh^ICV7x6u%lLsFg%s9 zg^Fuyw1&OK7ars;6zk?~bNxpF8|U}0hJ8W@$jKMkWw!8QOUXbi<@-Cdpcm$o86VOa zmCowB>PAgC+KFc!y^ckeoBaXy=R`pGrkaz{r@UA&zRX}4n-LlLkXWs+Q0rL~Yk$o3 z_E?JkJIH2)c0@Bb)ING?OX5c1D(KP5_ogd_4e^~xAr7E)p6G_jLHRZgWisb-C( zdT-UtHhJ4v+x>UFTzgtwS75BuhNY#kvC4FmtL$})EwAB>;O6XPX78#%q~3zZ!g(lZ zx&IAS;r%UqG_qfE;KG>|QQ6Q@J0kTq(s@2o>v4!?k@~mSApmAEY;+3`dm1}z?OK{A zZ%!2-3DEowY$>%Ir_g|A(7%Jbd0#E=@oN}hd)8)k}?PY5@U2g=f`nVx0x2*X9w<(^n1e@!BukKQMZl2J3IB7P{to@&0B zV$MymgG`p5D)Kv-^lVIs9V9tKzr~SRf~Tplm~abILT&UR{WU={~Y&%6Yvg{accFSx-vY0({P4k&%yrB^_Tr?LVkFtmml#s^KI-@x3|d zE?`64hwQppSX!>Ron2h`WuXUnAi9qLjOz6qRU!jkbsfW{anSr^Q==cf)Sq2K(CQGP z7mr5z&)s5F$#_&mXgb&8boKh^%Lc5$kV`^IQF(OT4aj7yqM`y&NN2*I|3(!7wP6b6 zv{{vO#<>&=MpKm-YV=FrFnMKl8{VG@y`gI#M@7s&K}=0eO-xM8&KebIrdff%OtzH)Lc+a!_lODOSDHLAnuWR_9I^#=76n13 zappoAc+LP_>-W1!OTGifLS=1$CyK#f#Kpx|k*o)&GFZL)!DLD4>9*u1CNhy+F7EC} zdwY4PBqPzG^m*+&I~*N+K;8GM1|S}LqA>NM4B#&_Gf{zF`}GgPkk{)a+Qa}cULkK} zYJHBPkbEC-ylkWOo-DC!VNAN=y#}8%HG5K+DSdmxlpx)LC6&BsjGCCHHZABt2r^!N z7q@dyl=FVjsT*&`1TgBm%ged@!7 z&@_Odmj{r^uF$1*E-}=!^6FmRTIY)o>i{!o`i&9hl^T5|xKl)gQbXft0yeK--j3GBCc2md8qQ$YWhs;)rbjPA(9ym zN2sRd?jKbBRTk%Xvg||JPA$u?Pk;nMO(_qS)O@RPQkYGM4znBI0l0S|Gl_xdrpfdxEXjw_- zt|S%Y4Y?~!5He94{0=DBpCkUBn1NcG!1Omw4&c$GQi?G=%KD8Yws~ElLg#E!orjQR z1|^$0)73wy348w&9RCHRsh+_{btk`tC^xuy%fmk9)Gfy^{gAT>O_IjiB1^oNl4fPu zPQ<2sWWHFG&=3<+j6dh)t=2Cs|5bkX8<08Y%MU8PSakySbnZf}r87>X<6OYc{X03I zYm~*PQ8n#bv>-ylUSHKPIE`!Fmz6r*mVgN@Z0+S*&PU3)%XZT#kFUEN&sKZ+l*)m5DEda;f)7MA zGc!XWu&T)dTFlH)FTTTT!~^fd?$FJNa&nzos_3WF6!04zjpyfrH?>_-kNr2YjapY4 z0lJ5Jt)rkWRHvY_az(?a@nX9}o^tk6U@LYv++RZF(Inq`l!cXYQhusUs*1hU_LUjp zoKOJ-YVoVPih?n#--A#B#pnQx_z}De{G+fMa(h+22%;&u5^RBIuI#d;N zZLz*AzLfmL7TO@-2dJ{PywRd8f@Dcw4u_^|*8P*ZXha%)EdpyTMATI$WC^3gC`^u$Pg($2$`B4hiRuu1R!H6sv)W`sPoCmrz2&f;YPP z>Vhh!F8Sh|8rfC}(l@-JF|@^+>(O_5+7zzACZnCCI(`RXMk4tM0hl6WuAr1a=P9!G z`pmObr`xkIcU6$_I=LG^roO^?N&X-qZaq79lN5S~bw`?Pu)zQN*t^wU(DJ!ykqAEx z3mKACQyxs0Kc_N!`$T*g;mP}S9dhw0{)JRm?Y>UjR~x~4-(Tz7zB?%eRa8!6;Kq#d zb-Socztq999vr|)2m9!$lxpiD%#_!Fwj zq*Ayaf{{sQKVLo^d!#k>{%82h8k6@{RNx&UKw#EE37vqQj1;A4g$UND}rBLlWa=a$}7dUTntd7;#7Kk0y z7}dJ^1FLL(=f6>zO0$*LSGFz5K|AQ3?r4kUFnk#ma0pCu49#=R@5pYa^NG>a8-4BA zS!sfA-1{yFP<0UnH>GF)JTC7qKfFN^sKzv-tNR|nf+;d81DEAcw~j%|2)%8 z^y%DyP7Xdzt&N)M(7hJzhsI{D;mZKM`dMrIKwNtM!@Va@`1E1NqJD zo$?^PyVJQ@zw~fV?ez3PR@R@e=O7vL1TcumBAjqZP~EAs`}xPiHMMoDYW@z>L_w%G zsN}8e3g8085m0A6fhR_*(f1*bl^Ef^`K^`+meRyzUZDpA~LQRPd1pa7<_zRsKWH>Skap(wnVkb>kNYN zFF^LF5r2c6b7&2fM4$qc8RHXtmlpBvQIr3hHWkEN?W^=R)F%q>SdXCT_IBxa+)vFJ z{-4BgI|f?d?Z4)deCAh;`MpIY=;t-{;Z``;;wec;;c|#5+~FMAT6}ujp~+2?kwPoz zdvhqvUJ=ytI(ZK7N#OU5S^D>kl@W}u|JMB}VyuSNSkG(Zx#60+CqE$|lYYMEgU?&4 zcj;5!cIvS;!FxO)McpOf$_QHDs{A&*sd@dG{LPf`ohQHOn zoJVT)m)Rdo;Y?oEGiVp3nI3$ek;COJgHjE*enm-4r+NbE4@qL_o}PNuDAyLRyiVWL z?~Q&xuV<5l?Y>Qiq(%V*y3A&3pJhpKhonH%soC~4@TXvo(uEz>Sd z%g)Z$FV$vA40`TlxOdS1?72p^fW!Gn6d4h@*)tUm{rDfxQ`3^54f$vh3nRFltpw32 zCI;qynbTcnAtr{~Wv&$FuxC+&Y>g}eJw}|_tB2A{nmDFe^SB;f#1D4Jzyo~u=T7an z*|13;|KeGZ+XQfSI-(X?JjL{*)aK^a{i>6?%h?6z&}$Q&NH@0FLHY08s_KH(J6 z_w5nk6lv&?}`A((!KaO$5=uKHYU#37-Zi@cDA54`m9) zEH+=TymtckmT3v{t_u+#)f|--rJ$d5yMKzEiHQJ(0jT`W_^(?2 z?LPGdd2?L>7AkB~YMwVo4_Xx5-)9Jk3zJJ?mWVkNR%|FBW6mDdp#xR|P6Eqyfc8@8 z5lEiSsz%hAg3n$Wmp(aN%C*4RDmtDnHnc$0^%?R}jr|Q^1}yS-Y`+c;CdA6rIqtHO zX~&CRO%_@mWZH)gnL+8SQr-( zy^ySJV;a3psyz@k3-C`X3k<|d@XFFEQ-GViAkzVX)aatkR#^LP8JiL4U-l1;?6l_3 z210H!l8X97ma;| z)ZWxHJCKW3qabUBT{@5D%P>#8J_v4>90;WHxX+vQ)>v~yiln1(JPSoX{b0r`Hi4l- z)g<%!i7Zxwu7-%Tr7*8(I+>1K#X3A@^H%xc!A?yTwZWs4N#7lzFyi7w zjb58ZMIY$RY@lFn`VLl6U1nEy5{g{j3!_*5&Zsrn3$+I zL2kQOOY$|GO0;^zD@Ww`BNrnOJcqgd_)lutOYTamwN+PH{1Qr<1E?7Ys5Z6M2 z`fXFF7`cQdQo5fKr^vh>k^A_Og8!0uH>I>%4{^Oo<{bDAnTYa=24Rv7oRR~C zgy@px+wlpIMTGAIj^@0|^!-1`BGW{e=W@N!1PV=&gcaRk**6`LXKg$H%s4oU>=Aue z7&c>uXS&ZL zHE!}d&n*B^8)rtgs23utTILX9!kEXsI&lzaGap535a)qubZL7|p;W0m+vM`a>NMys z8@+V8`fl4@;yl};5xz~3d`oJ6tBsL*wE0cAKzCE%Kiy01swldr0t9f{G|U5nQ|B$b3V(k09 zUftP37idF~fUE4|+hE~x+igkI4e8H|2)l~>0tdd~C{P0WpqnpDV*h2Y9k^>2xg2&;8uz+;i_a_kHj4xv#fXc*-?pK1TEI!V{H&!(Au2Mf`v5pY z9~i-mH?d|~`Rddc`QA|rSR}}5BiYEWpzHzmnGD_?wo$I7+pFQfel9a;y2#L_i&Sy3 zP~G*F40vRs^S3L2*Fu=y=%NsPZ2wA5+(uc^QFbib*h@y_Y+7T=^wO)_32<0lkze7P z)z5G=GRbBufC@840hGjG~5c*h+JQxb0*rHPhRWcYz<9&I$ z-?zWd4poK0f^p4kAazdC>%r#!l05#PliG1rMuh($IMbayU<&(u zNXEYDQdqVlsb~6BW+dOf>Gr$SDM>f*Nkbbj7%WN3eE-NNh+g|U6`BWrY$M8weKIe7 z=X#(BL>6)sxUFIE8@9(rwf|78iA5iVUz@n`X0ZonWGKa2{>)!&A?d)bv&K(IyL6H` z44dx!i|L6(8`Lx*RvmE9F5s=Q035H}~`Ol;ni0ch150y2}k! z-d@_;eNXo|vtmP*CStDkf&lyB<|ACUlsLQQUGRnQQ=#6j$b1Kl->Xn^kG}56d?58; zM7X#vzN;nKcN!3XBpzmj*qwmLNd;3BH=oYDx7w&=yoKhF**sEG2%|%mz7)tpM*EF( zt2e+!3z#*Ehc>tHiWKDWbsp<-Vs>w{LIaHaZHM#C(+YM8pwt=dCK83GN#HQk4gmI6 zH@@H`!Do9-h1l6~?@JCN5#$AXtos`xcV4wJ@-9lgNRj9F8W}q)+ifzS(o2&U(<^rx zSm|{pVx-3rbb3u#Ek36@)9*0{Z9{lr2Z~qtnO0Pj*UD!l6VoDSaZ%BW=S&)R>1ior zmOOn)HW2>?vFrxFUA#f$JZbWESpH65**Ws*-#!bDZ2Xitgp(7J9elfXH40X|5HzR` zwlT{Q5`W7{%Yyzhl2f26njlcPZfe?Fxy@lW{Z6!MP{@9S%DSCpvy^&-@Z>^UzV6X! zyfPP{ipMu-D1d8&EY#6N=ih}N){teiHH28k{0MfsoUSqVsFtejd)-0Di%_=<7{6w( zy+zO@>)-ZU0G89K3Y>QI>KQrGhuCrOw%RNsAC0cjAui;-sbEYQh|thbOf8SS5WKmxKC)8A2TDC!dnotsjkfea3R8p)23t zEwR-Fj_l^tvQ?a1DM;U_JgrwI~eVMG1z20DTZ;k&6&o;OKkZ zxFQ3@YY(T(!xPbPkom*85`vnlI!P;y4DpjSILrK4WSnu|&~T+v-0C=o1~8p$&bE_@ zdlzb?70Y{4**+u}RL=LJEMZbl7Sjq169c>7zgIl@QW&6oZ(ltM1khg#yWb_bG63*$ zbch?5CHLCirDwB>H|RNMfa#;vs#E=ra^h(MpF=*&>So77AP|Stp{(vn)xv2eOJvQ2QwD2VEP)(FS$w5qsg&^_cHAeHL-Ip7!06`IftgX>tw<22>wU6=a!> zV-AH59%j%V_TehsHaR4Ig~9q|rbzkchB(>_A7P1UQ%amFrOPT-I_sa!KMR<+U-{Ap zh-sENnI8n-v7If6k)+H>+*HP!`SeYUduw0d6?2$Nj@6u2G4OWwdToZ&b7*yBc8HEc zw`+7=A&a(2@>AWO*&Tsirs&lh^_yfU^ouFzS&O&vA8`*Mj#qH5JC0TppAN6d^T!I1 z&#>LH95)nX{dtIb?Z}M11FE#8O{7bDdV`k7^0!#aDDhN6-76^#qFuFisC-hnE3Hvr z;q#_6%X$-~8=L^L4KMZGajfPS>(&CUvs4d=zCVl6tR5AWgEEo_KEJ`C5!W@CiZ$J* zJEyWS1l!7z(7hfcAV%1=+`;EJF1&AzF4-Tr8Di};Mr`Ve`N{eAa?JyA#DlV(s$lWcbF{jkjtrIhH2=;A~Q-s$AlWsV9J2??8;#@Mjx zJct^2Z>bR%QXl8lzIsfqZGap#)X18Y-V>S|Z(N%Naf#?EOE@gQhc51i$ugAA_Vh(? zDofQbQ*;M@VI|+n&YqNZz_k%FDSf(m;o%CMJhhV@ZO(%loDQG${P8FAaMJGV62wKi zu^z!p`mX*CH|ZGo=uqSrr!o9%G2fdrYU0DCo=4IzhZpdZB;j0O5iVz03X~WX|H5*S zxEv2%U1e%c$iD3~w(_nDCtMwTMS}1L(K{F?lWsZ((Vq%BgiE8A_Jj}b#Qt#|&^%D_ zjNmS%xj#M$iF+bG{Cen~<8B<)dl^P?Q zh>*n-s^KW&9#5j%@$*NEq0CSTrMQ-wncyi%USfH=5~A+6kQP|wIxWy$pKze^s@*y% zXRKm9lA6;k*-G$xzzdu?hutT7U#4PJY8RUYyV7UdFpa2g%Ym=PA8td)m`h`s3gPmC z24MbS8datUceL4bi3kULGh~&xqlj^t05_$d&wPR$>y~o7azh?n#YF_3d!{DEJo%3O zD*iT03BmP8zSv-d77sI4+!MoG+6PU2ygDob1eFQxqagmSrwUNz<7Zuh>Drlvt8Zt2 zL9a_;kaBOLQnNNe^wVO)LvaqOkj7O@kH4%1-$ZdW=cKVANmt#0=>>9c2N=Y@xDFo zdc;RjLl&v4X8UvezoHEbgLbG#7Lc)4CsZ86+SqyyT8^C*|u^Row&vUL_%n z_is5$;F6m6=E4Jaun|b5X6T}SW5xbijM-Zt_zHPY)#4X6J|JjCrQtr5Yk#$^$)k@` zRQBKn_x^*{c`20xvXJ2v@h1|J_t2((@WXi z59D)?lsV87wF+0;ahLaQ@ua{E_IS$}c?gvN77Y7G)XEdE0Nx|5QxZ zIzwO0$6Qfq-x)(zAXb_GSMlg^*?Y#9{`irXJ(oJj@AAA5qi;b#8#zL~lU ztD&RW{Ia8ci002e7$^4qfRBNdm=OX<{9b`_Ar|@(q(6joGc?; zy7QVFXW0iukf2&=hHJ-~W-j__M$OT%wkSeADDm_gJpEi`gRg=2rt-eInU5WsSj_(I ziW{pv;kWHc&h&Tj*3;`dIodJzUjKp^uO$okKKrEFR(JW2N}LgTK~COTpzIJoTjSm) z+)zK|>oLDP@zj@4-PSg=LP|>`wcJw5W6t6~L9XILx0`Nrc5-w%1O)Vr=#4QYgI|@#agf26h?yeii4FHO=@xHUoAN3ZlEI z_#ehQR?c4dd*`(XEp7wVW4#?-y`FZ%$bKVI9CfBY!)>PEbCEyjX<_uwl4P~<28kj{ zDsp?4O!6BcMc$G6ryA(h(pYW(x!+{=U8?@i1#cRxKg1fulAbnHH`=g5AwP-VgrK(QRur1t z93Js{oV2Bx@Le6k9n8yDeGY+x6N1`nOMIv3a`W^~5D~VjEpX@2$Mb7Oda^XT-cA4E zA-yt46FQ#N4Hq1FAWE*aY#*>MFuEE509kMhFDsWr_5-=s?wo+{?eN)Eq>NAcA&rkZ zcGcHDeFy5y@wiF{P>hWZ;zYj`fpj8>U;Fv~7|6;h zm&bfe#P!k)8e*W!@pC4x0;R%*9a#z$av{Jb=yZ6SOWA%b`e`)%^Q7|n3#zP=ky@n9 znHB|CAx&=4z&Z+i%>s+2|M*`O;dih?ke4^>oC(3ri#uE7gOA2;qri7haVNr?L_-r8 zKo>_z1J8gN3ZRti*-;YC<{cTE=md{NzlB`5$>N#1@f?nlU1kCe8(@*@fEbtix$i~9 zFp{uVI>3Q5fkxTXW&a0La&=71+l%cpop#t5LsRpGqlLWf{bE(r*IVQM?Qq=1Hz=-5 z24G`{?-|!*m z!dhBYBiQH#%i1iBRy9>77km49DKF3a`FkSVwbpBYcel5fJ#MQliVUxyA46kP7P*}@ zuSG$8lI<@!i8(o4St1f_Z%A~4=sl|FfBAIBzTF|OKWaQza|839>{nPlCio{n0l>!w z6W^Sj!viul{!Z?w{s)9Qe5dAnak?h9#V#8ukQWiQ^|HmxN!L;%KJd*_)*8kar@|J zJ|BJCeOL0{!h+T68ZWw?uW`G0YjaP#-fJgpqPcm)^*e7Stxvs;oao@5(n28=5JWPf zoxoNT#Oc77TCDJd_ZxJy;9@`11KdVFFW_K;Wg#mCSGz;DsXvXt@YotgP*n85he~r- zJ==I^${=_jEHB0N>J{xRx;bA|>jq_(?QOH13Tkf6;aTs`E^{AtmbDIu#=qPh^X%cv6pog#!dG9rQZO%kALS0nun0+ zZ~ydB+&Md(d^`9aF^spAXN2r>BTJH~B^5ug!N+T|I?~kP{WziF#!!!Xc{FA^M{SoA0lA(=6G>A z1(odro0{WLuhs6Ry=)4zLbqUNuDLFdt%6#5&*|gX=le(ST^PX4!MR&x&~Xe867w)z zk4~DC+`vGA0 zCqg3Ox%<`CUjWbo$(ysTSBwQ=N8Z4idM7$?^-sk*80&yCJ@214Dy5L=L_Q30Wt=l9 zb=M+1e*AECe|NO1Vc+&)CDipJR(p#8L)kI4;re(o%P5A(^)i~z#ck&b7fk+18Ca!7 z$VT}3S^;Nod?X&S7io@4Oscmp)Vvri)Did~!w-ElmjD3yCXSIGYrmy%0AeAwS$1;w`N|4%`?{5&o#{S?J(QaK<8c=!M;yKwW3lG-d zz@6M*>d@-xmO3#64EN(5>{ej7_jJK#=BHaYy$X|0w469S%$5R1r78>Ep*EXb;g=$s z#ZBpK7aO6v+* z$Bn%cxp+C_aqNoC4ggUSDkDAhgcDjsDs}|B72X>|If{4ty;Ho#<%Ei@9y5RD4`Q1u zo`zfWkoa@%qRt4y=5c!J57%Zj6B5!iR)@gyRo43Ix1ZKxF$^G{)A3nqHc$B7=BiL( zQIVVLDG7;L_B)d*`=c=UG;QJW%in~PUPI{p#^Qr|X}ZD|B3syG0S|La{@hl-)~y$A=h!gtW6mzA1pc|BQ32W9?u@0Vq*D zKiYL04o!pv>kN99W<=bp$PxTU%*=c?_EYnp68ld`WQ@rQ){XhD>;V6?qQ`s9Ob-;` z*W5z=3duGdlH+tCIszc6D0@#C*PE20tlhQ4KzN{7{P$#(7{0~L`@N4bmH3wyktDJD&=hydDCSbynaJ)MNgb6^ zi(&vV#`#_i#|1aqL@yM;ISeh{MDTo6bx>V)Tzvk45d}sbN1);?tf)le?i)HR8YbAL z8ZD`~88OKtu2iB>qfvi2(rCGh5e4A!1mQ6mB9)gpiD`SX9luNo4_kwt?vNc~fg zADU*UpLU#if&>seye?(d{@9S;c#jqOg+(Ni&-{)-LR!-rHmuxxTDnUSD zV&`G$U0YZ4#*0pBe4q!eT{pPnq8AlCl~j-i`v>v_ zD?XRy+A~*wwQ7jOK;K+tGh+0`4W^@e7YCC#cxR{_LHyNV@~@AEdK})x-=&N?sTr+u z&Ug%8$(Aak@$a}FtlE;5U*0Y@2a#}CYj`r&%zVQ$vNMW{7q`O{KdXqGjVxzc@rMe4 z(mnr?y-uYZ-RDj7L*#EM;d-n?!BIOwdN+3PKq$+GcK5cD;d)+thYebPSrggkLl|h< z;|dM?MMFVfPoUQR8@S=y@W#uE7l(|fA1jCB$r@uU|MLiBB@-?`^?4uKCaMeUAcd~@ zX?>0?>qt4Ctf=AT$*H#1^wygnFZgU$hWF(i=U?e~^GU>gKXep)+wI=ial}+>sOyTi z)~K?SBv6zJ-ku=lj+He~9vE?vp3iEPaQS1}=Um^-g6;yZpV{i^Me12bMn%#0pCtBd z-f^GI%)b+P`J~+wVE;wt9?de<`xB)iv>?Q#dT!MyOU=+}SLI6`rjTJzdZ;4Y}UN=jQ&q1HZHP{~9{fg7sL=hC1dyIU;$ z(=3d9)7wbG_QV_mn>>XhA_9&hZint-YN=k=JyTWn!M9tU@Xegp-Z-NzE!mw=AG} znMXK_ZDmpp70xg_hwgD=gXcdpdA$?lOUDeBN=F zTR_v!oN}Hd!boL0ACV?(-;jCU0P|@rFQqSgVhhmv)HR)q`2~{#y3JY$b^V@73wb^o zP5^PvO*pQXFK&}*P<*F43;?W^!KJG=T$vqhExXN3l3!q>u@?D|s41-E)UE#E>8bf} z$x&t=S4r6Bpy9ha2iw73PS?8dRs;RA{kiLTpoH;|;&5rK&Gf}KGeP!vx#!3Otmq;# zz@rqrw={#1!53EQBm=|6yfrbe65-_m)?mY_@DdO>yPC|-qcTY>4L_(g_x7OE9Cnx) z@Sb1XA$lT)lU}sB%U(TPwZ@xVSuRT+9ox$OqV(1pU-cx?HE0s`Y=Q3q!SJ9NY#FOcYZbzJF_`MzKsIa5}{iGzq^A{ zdo)0p{9Uf~;&rQ7sIAFP;>wE6Pr?H$y!jkmuy_;+^`hd%fKPOyectZLP-3w2F@ttZ1OMy5yr4 zD^EH_O<#!j1lRSN&5bGnzmV_&Q_1-%L23?O*6!Ny-d+bwyr3bZHtn%e6Q%AuA0p7WX~#lCZ@c?Ww}P2#L!h(Up z5)pyKD&X=j2vXQ6UDqAWdlxr0p+xu?{iMT=bofrgSTyYFoE29|-6W|F#a82p1;0b{ z?=g>vwvUb*7$+R=QlL;%>F+RpP4QuCH8swOoGI3a1Np~wy9--)Wda_nKZw8PoLaHh zIG!DhH58Y%7MEwu%GXlvXS$@((^+Cs&x9Bh^Iok(e}j^Xiebnsm)pULx459b{#-Yp zBKYcDZLlgnmb{J3YtDb_t19mL5?tL(ucVegpqVpF9zkpLKj?_NVM5&eOZ{2O@B6n zpk9N1&xp}s+5^GF4rDJXC##Le`9ROY!^Mi2bPZQrN>C|_Y!ccVL`EuUs-AhvpS1jP zE}|#&=XmGST7>`ByIHF-=4-Uw-V(4~1nPO}aJF1^I(9OfPt8hSbUEx$a#JxY{=2nt zqfS^>#{UpQR9)KJa9hqtfVqQ86>2~`iFO3-bMaziovCA7Yhlz~tXf|BzaEhB-yd{Q zRj`}3QWK25SvH9b78CyPz(U^q331{pW@6j`QLE=w@%H;yvf(aaNuxGO;FkPC34(Ql z9ryp1;JnfhQ8oqUhOk>jkY~+s#&*CG`A3=@Y3`}odHo3(krRWod2RMW@fxDM-jX;R zeE`zOzq37vuUEdF{A%#y6{x(n&Setbc_2YNC;QV$S^dc0WByyg0w&AW0eJoS4jxx8 zLlTL3<;$O3>;x%FU9;VD+i!Efx*Cee7tlX{B~eUi@G2h-inS^KV5qZU8m?Dui6!-V zhrU@e+YHH2`&B*r#~ZG8XA1n%dsK$Wvi!}W z(Sz@p0pJ&#m4=)BO5hd^<|{fSkHLIvf5bIb*E^jQC3C|OG&iDI77d$Sq>A?X_uD}* z7a;1Jwec>SI(05pGu{e9>@P14+gvMNLnm~Od#%_zFWe4Ywkx_6%2%Hy$MuD{vWwN{ zVUh&}?ZIk}Wgrb5Pss?6PR*-@QI_-JH+6axbdz072- zz8Yj3Wovy&{14|Z{O)}4wRAHq#7i7NA9n5tz-uPm00uoAWJ={#zHE32k+O3#B zmxqyl+O!)xp_ukqeT{hoBo${@xl3mI7bK!1U~Gx<%SO?*je1a-)>DI}TU z9$o8Pva;!KEqgtt1>zqeq2%jLD=JEc+GSAz@I5`dwEexLan#sEZYp=Gv~9^$>3;=x zb)#hb>c8#VL|F2m^+0nowOM+_abnDhd~cGjE=V46a~CL{-Vuv1HGy^bmUN!{q-$d##U@|HgBA_VSwF~ zGqmQCT+t6hl0U4=>P+^hsSnG{aMC-NOGZd>PZU}P(qlBTn5V?1bs}|@rdp<|=}t(S zSOMU65Z2D#Ug&#r-ZoT;18SVOE>_X7|?%0tGrqu&wNVnqeUG4}}O?it_np z=D&VJ`IecKV#TXVYuMR3U67L(F-*czDv3oADOg-=t9*H~`@BBzeCm`!&QrYpbE%r( zPW@u>yc!hLdP63TTryqsV=d_$xkVh^g;or41T^p$IX6)oNhd-6mr=zfm?)ZLJ_#9c z{OW3yA5^1!34%*$O{YbwHCQA=)TjCdQq@A;ZP9y=-h*?PJuV_&Ppldzxj|0*6(f!a zdaP!K*O-(LmzowD2xH2whT%-*8xH=>kSLH-E->6t-fFA0Un+cQQ8Hc^Ca{&?=v#Dd zp%LD_{xcbg)Sn67yV?d~zXA;v+&f6S>xl(#`E;FAxh=NSnn=sRx+@&wve6pz z%iZ0J``XHxb?hUJLbBRuvac%OVi_RkYyAD(~OVf)j@C5+-lT zprS$erAjT5YL|us0L{uN98XurcL(WaCB>Ott5L+Ua*Qzv5*Z2dia?S4{rAYdY9=ED z%MfP&$mGLgZX942rzSNq)cONd`N;W3|447p`#j=U1uE#`cA{T6E5F62xnq5rRqgs` ze@&|{*BN53gkDf){fP-R%k@K&B6=8V{{-QN&TmV`I&_#y#n|m0eLoy<>8Cr za+R}AV>(>>!%X@?=^d6N)jxhWpZ}T`v%sp&LrYn(p#X^W0cd!nTftNzb?;!!mNN3c zl(x1sNayF}cVtlq)y#Kz6itkab>vPEmZwO0vDOEk#{d`i@pJ z_NP4_gae*rQpha*q{~$FIFv@ zOY)e0E&maV36N*saw@673FfM*qKC4TecTuyoS0=k1#9N}w!i$;pMjFoa8lB!Tj3Hb zh@&XZO`;|zGdYQ0ikS++Ks~{O>@=gr*>2SFb}xN*vw8a7W*-S^S%UKxXmu@3kORPp zdg&E9JWXVxf@`!HO`$%z*cStTE@G1o_pvKK&!xf7ib8fkbjfan%yb??JO8qAtw~qO zqXWfgBSYK~GaFIfQQ|zo9c;G>4WImo_Tg)3$RDihb#+R=f8!pil)yc5UgGM$UDs;F~KdQ>e(eL4P zA}`EMGeS~tBa+ujaNxoW7MfrF%!KGcG8Aa6V=4y1>?;C4YP4#l8)#Za1jyc%`}mLA zj&YwrGpEo~#cO)0S88cl$>7N-yY|DSaa9&I=irt@3&t1fHw6e26HNf2N}mY z0BJ{g`X074y=8<9lG{p*miu`-OFhz}_?>*zKXF~Q81Ip_7V%xE;f;ah#=zI+Z(bsh zT_spgteXrh2T46mfAGTAkB;izru=g7C3FxrsTh}jQ%Y^$v=U3`S*x2Y?;OEPSQLm# zWOt6Z2~x7L#tJ&^aaaYRDy`Ug%-h_+o*WQtyaG(z8XAK6a|BcZxhD=?S~fNSD0eqF zCj0)F#_DKt6y6wFbUDLl36tqi`uOl$jXEcV(Ewv$bGG&sWO+MM!ic`xl&a($_MMbw zy0`g_L*mIAXfYOC^oT`uF7-t6>K}Rkk-!@{M!iJaL@HsgXiI?I@srp8qAEA)e^3i? z0_UmHjap)hJb3c%b(UU1*Jj6>$FN+U88;Ol1xbsbJiX#pwG4_=sWd8MUc3LrHL`Yh5OVkJuNrz2_{Ykk>l+bdhmFrUk|?pHPkpoQb1FJaKVA{ns_b<9 zyAG)s@yW}sos)@bWV)d+b#|9ZMi$9Ide7TO0vQ_ZF72hO>eL^L#*M15XCEiV z$A?BdZol)X} z8HIj#dwoTd$UsH^ItEcErN7;%=?22xY^_HZ$PVZ!qKLYxzwhFS*H@_3JI?RZA<%aW zC5!>5{8UQP<1$BObDC&yoT-Cm<~C&cyEhWaL>7=_sepD`w=o-2+#j;v+&pY>1v zCeFwG5JST&0TPkrxwy1Qx;KU&_hJedMB|wJQk9?C2`!wck!5OO_R^c_N%uU8$v_UBn8k?5BFS9TH%8`1ijA6$Uq$W%Zx7 znei>J;+l(APUWOHNeK`tCDSTa2WrH4S&}rB&ZhJ*5tw`^P#{K=Twjl;>w7t!_46|Y z_6=8OaY)=pV&RVq_d4+=dERn$qdXp{saqQl`Q?OuaZO>j<@14K_FlE=#jj7(;h9^G z%4&Tsz{0v?HI<-vDwfmic2S|0m}Hfi1odR5KVK-li7N|~1oiaSQB-rS zS{zGj<&wE|>)Y9RONhXO1g2k7OsfQmA8tY9?}E&L=Gv^ng%ibpaf^?+?(>g>hp3#%q%;WebZtRiB%)R0S(lJ6_t`?}>ivV`2KVdN?1S zk>b@f@VSI`Gc|b+Pgo-sNp1WrbKl|f{M`4s%Gj$;vkA}~iF(F|r}DZ7Y2vCqYs07g zSt{q3a7ZwEVkd703u$45|<&eXw`QKTT_)(Q-#VYYWQM;O}piM%m7oJ zDFx*lu^c^Tp{-|%o5Wo+oIF8Fl^qB({)59I;&)ndN(Ak%#x$rJlnw=kIZNs%&i7xrhbSUl>^ zOpi@B#;nh)T(AU)`-T=R0$f%1%?@zpYCkq@=~+)_Rnyx0dC)Z{$U^&anlfUmoOp@y$4KlD9_Ix(ARq+CcXxETzvEx7Cu>?| zINEY6j=3%h^Ly_3H$wREBG2P^H#{*Selep}8CUYRw%|l^Yo+q-P0ftW^)Uw}*P_MzZ6Zj;;vNMkGhe5&8$Lv^eY>FC)lh@VcLqD+$7k)tMap z3xi)IAOR|n_6y24-#n~L9uv-WI@=|zq$lsqMW`7nTf|pl^*VR&D}iXi-0YsB;^OJ$ z+fJjJ?1ZFg`5Gk$uv+oH6#bm$LT8tQ5vFf66$}FKD@-PtQ_wo0lvtcR=aWDz&P}9} zUcwQk2kndXNTwXk^%U1U>G0pj>R$Vz)!yS;^`of7!*}-6_nlTP;FToWY+71mL2_Pq z!C$><8w@->?Y2SEc5WRq>8QVKXS7@T4KLgYT-bH@i#KLdEmsVAJDbc=Lgf8CDN z&f|W_bZXBU`3AkoHl#BxToZGatuM;n-rn2(ssx6cMihICoE-^>UR%K|}_7 zaZ*ZjHZ?qsO87%R1MmtbJc%-!kc+u$zaK0t6jSi|Bz(&K_I|4!2~Fm+SqikcMNa9V zCiyq;%izF>Q!RUOG0j$CBj?(>@KBGE%-bABmIxQ*@<6;$Ivve}0RR&YP@Oy@?{LvG z`&j(;(%^mW<+4W%JfN78A_ViBv6zV{*4>M;E`19R%NSOJ&3#4$*Hry;wh(2A#7{fE zD=31GkQlC~m?j4#Dv5>`RL>Z`X(oO%Ph5!q1PiDMEnQ&S!GZT^v=miQ7Mj(a%2my@ zouebZX@?s%cArwEuO18F)4^n2l&7OQedJoo0EkO_tuhsx_4WkdSmQnP);{zP9d)Sw z6*SVG^H4MB+!iB{QN@`o9Bd7yUo&};$TJOA%@=SSTtO-eSN%0+#p7Wf7-sPz>O)#VfWh(Vyk(Fd+N$c*B=A^`av_b9Pd6#8Sv+6LZ5Qt5km=f1XUxvbD-7vzUuA|ssoR@S>>F%GNJbMK4diikqi0|a)Gfvqbeb*G70|I)NpE2;mn`j`)e<+(ZiNnHWjL{o&>g>SNd~K^K^ZA;TdB;PZvu?5Sm;4PSTZ`GfdCdVR z_{20?)I>UQ0%IKdySVRA!suxW8yz@O{q(@|r6A0UZ$05^?9(HdpA77Kf@RC)@lN?t=^Qux9hG&uS^{0`1fa@$uL@J6MS-TYfllQZONJ zLiV}sLI$Kq{w8Ud&U%_jm+ZuS`cCpdn4rYF-}p^#ZXKcb`tSPZ*9r6 z90yfMmy$+)sIRWBt#rOl_1^aD?4!|g_ql7OSZ;V;i4mLO(MAM(?WU)xV>qQ{q+%74 zbiT&A&BK`+8>e8MV9m0z=xrHoO{GpvPon`^kLP2D-u%PqT1!hy>Z7Ri1%)9F?sF?` zZ7Z5h8k#tsds;2p8Q`w`f%R2OzIUoK!F58;7sl?DB|Zs~3l*`|qv%=3SAy}FXVbN; zB`e5EQW|Bsl|khd1cfCpAZ=NGV`K2cEJArviFQ)TNFr2}QF0NSrWGMPfYbY@Ek{Q@ zv))RBW~Oj^pk?u*yn=0-nR%Ky#ldTM+QkL)KmK*+p_v!Ux9DWX;xf$b!Y7r*Dwl(V zLVUGH603``RLO!u3S;^5a!DoHZf~zCfxJ0god?|Ez3)pmBZNH7NjtqNn~GZZX9yu# zyV<<0nP;*`Y1%g{hXG6M4b*_Y2|c0_>||GLw?*Fe(2u3R>%E?UiPUJw z;hVVbja|)^?5sNDAL-b2BBy)kozd@2-SM&2KG3IunyvcdJ#hgJMkd2L&1+Vc7GZ6> zvl1*i925-|aq7>HUR#3+CPwF|(&3vqHtb5}1%pxrt0{Ua$=QXsrCu3vX_)OR=L=zV zE`P8TAc~hu{ij1b?bL*a8BQzNkIkesQu5JoTPDU*PM401!mD2^XxZxQH#d*qjU0$G`*@=;;hp~KOPneYI{SvQDA~$N^}QyHim1c_jC)+Yj;7{)G&NN4 zs#&VBYD}AHS<*+dYDfrS5mqDnNI!lrJq(cre$R}JPfnJrWe3zK%o^9@v8*`sxsHCC z^!kz+-kh%r{Thn#ug-242}YBm)|S%J>~HsLxXGrg??Dp!I05r&IL_7^o2&h84tNwi z$X)vq)PQQkR+IT;ZL+!`2f6YOuA8yr$GvUuj7_yai`Aawl!K435RtJQpsOSD9N&Ds zbb6}1fYGXoD&qF!)bPiAnWtH3H!4lN(nxfBj4W`W5{a!C*|t{8XkJ5uE5>(0*xJKe z<2-hGNgMvA^x}@07@rvX{)zKej2sStxN3(RRBmV1lC}|~mgo-mfa4T9&g|aZa$bnC zHPkPW))S-BE(HU_cZ=OaV<2kp&jDDQBaU>O zP5W0U`B5hhTMnFmG@+j8_>{u}K+>B)FT7_H=0QL!(z0*B;c^B?kIlyH%7nzQ3<6$K<%(q-Ou^Hr8`4#Ogy+#%;iDk>P0f#cQ z(k+>ntbUm+8~Y&=i63SQ$)DfVnyNl1(`l(Y?{=IjeqYBlXXbc3={9&=Y;2k5Y4UK! zc%^5aQ_XjzopP9uU+N4V${i}C23KH@mf8(o(lOryzS7P0Mt3oJCC+J{ zoee~s?U7HtlrHjT`rE9<-K2K6#zV_Z?b! zn-!UFF_LdrP2FFf@N#%@lPM;>Ib6}2CkkAO%Qn1mF&xs+O0zEHf6Cgk73toZ{`Mj3{vG{Yv`yb^Q z7)!=S-`TOu65IpHN>X&vYp&I}tXVfJ4x~^S!tFRFrY6`O51an32igO_T(ugswXN*S zE6Or5igsGxwne6=sr#f*yVX|4$NNjfRxx;TjGln#_I_4Nr6pM6o6e0z##Fx9rPiJt z5f-1d(`?*1Rzg;1ghCA5E0B9jqkdqKonvs^@{P!Kdk7`a{XxlvXTR-3sl6NHkg(F? z9NlT_UKG@aY24qg>5m%0h0ah%7TWkAwN}~8Ho~vL^M(F?;h0^S;`2L*k~1)R99MtP zJNnEFuE|Lc@mP*zcDi~C7SONim0Vte$tPvg2?B{ePJv=`^cI$U)&$JXtH9)`V5{l( zmJyOqCu7TvYK9{Z&%G3Mjdga0gWi$knGtDTB=*X{e?$cnPG&lH=<>W*o+eUkduVEq6$>DhHj$@N0 z29orQ%0z{T+7+)vV^!?duWm>_AgQ5#MfTy(OBClSv$nt3`&@AE(DX(8J@0S(w1MCs z%LLT)?N|QoU><>Hxl)9^4K-n8H>B9_*t=^mLMU3YrfY4(znM<`5hme;eOfS~#`0iwlQ2H8px(6latit+0S82k zUXsy?)8TM*mr_ptoh?(+60rVWc!<5Wx1IikU##=ZkMU@3+HSF_fDHK=1rGpS2Ulr{ zG_Ue;epTV0llp)ahZ}x-u>bSJWllE%HW<{&Mz?^Xfic%3gfNJh!fkt$*-kLyUINIA z-HDaT(uhD91E!{p`A7z6K+t$uo%N}7{JS5^@-!1bMhECFz?k3skmh4Iz7`vtE;w-+ z+YrzYaNou+o9z9f_U=DDY%2YnOG_YX4I^2mnGwIYahb~}@U{9Y@7oqYcq879LA@54 zu?;^1^F7sOk-c;V-5A!4)!dUyuC<-_V4+xTRyhyTi1CcO$2pmkC67`>d;8D9V7y-Q z=Ft(}_FzY>Yh+6(c!n9}}bK zmP`#=nO>zJ?A#%Iq7d8~FYd4TLa$bDQ}nRm=hJ?UrVrIKxhbR|#Dq#zQG+6gh4sNN zUt|kw#QbwjjFMeV#yuyfBZ5xr`Z?3@fu2`}IuA)$If}UEI1g zN_Z^s^C8QY@vz~Ry;vBn^#qbVDA$|AfkVE z*S|-m*04cDEnS%Rt)1Y7vW%03U!ci7jj^F7ro9;}h6)NuG5fo1P4*Z?%*;660|g)k z{!-%`h!{!tc~r9xPKrw~YHzQ#-zG9^XX&jgv}h-fciK2d9*p3BGg}ppg%ww<)--pH zm?fE0u^d7M1>{zVy9iVh@hs&zr@R5E*}Lj3_Xu0`Cq`5})g_Pz(Ak%v4|Rx^aMR?! zK+FGpye%~3M-`lN-ZOi+-W~ai`3a6xfR4ZHdh}w{i|*A^OQtVcLO$i@PHj)_3J=_i z7v2Y7{;E;h;0qi$IsXFFCU96QPp!B9r;=q7f%Sl?4Y3ri#ErE-B{mpJGOKjkYD+#&2M{_xZyCVIpX1ba^ zF-hT5ROnySB>P}s^t-TWviACz094{{el+{-RWyiKXSM^|k$3l5_h7*(v#q~hk-%V1 zZmvnF+IiMC6Hbgd!fa<1&5AX4HNRexpslP5|JBg0E3^{d5Zs7I5g~`J4-)lpU?SUC zZ5G?^+=oSu1Zy~Yun4_dPQ8Wxbv5UKDOPsCT~U;=ye*FKLvana!)-d{jzgY{!h7$E z`0sIhJJ@AAW+~;UruTT$zn|S{gi`PocZuybgCHzYe4Un0tbi?t9lwC(Xg0RV#(4~o z)slXKbMvj3S`$!R(lfuJhIlr_bG26iP`pXI7hbA1h(1qHOe-)jQOa?7k)z1%JEVXm zJTN6>Ka4$Id<^eX+N}GKJ~FawT{z+ztLr!j^=Sd)&16fR4mxnL1r9-Ad^9k+T?v~pH?LGN#0>XG3B)bK0Y=G*CM zkIorCkGVBBuI@Pfcy7Jo`+)slbT9m_2Mo#2uCws!fM7rbC zz}E+G=kQXrEOn}5!2sX$%DWU35o47wEg-^;S3+GNFkq{wmT~L(3}ZCu=nKjfBXRC~ zBp`q#2_?TygT>mgxQs3`Auj)i&RZIXU6bibawsJh=L;r-D(V__McU8c_Wc;;|GMh) z5%-IcR6k`WC5>kAv+$VFj16RTiqzS@sWX^&##`AKhOCF)dPAcZalsqU!v(^5>Vq!1|XtlMq zAWcZ-{yVWwv5?z-$B&}bDRdl8>!Y9dPB)DZnOn=i$jHdxAV#og2=c$-qha0V#ZpoL z!vKGaIkvU`ua<9Bq-$hY9Ma(VZQmcf2RVV^0zeSQ=i*ntNfT;|out88&J7X7Ahvbz zidf~v1JBWOt2Cg4g7- z?@nIkTXz0joi>&#hLl-tPnk_L=kX2ubSlx<@rlF-4ad@3c7E%;YVDz)x~qc6@VJFlCe%#{b)6R%SEANdqkVmW?l%Kb z5)?Bp!zVR+ziir4Q_neR*}Qm0t+hX(0RL}gn*=}^$;p{*gU!HD@u6(N39sc$xw*7B z@7#hVrO6%QqYsYv*)L7u;Q+xczB&GEo!NS;w&k|RfU@>@avENN`N8?&<@x#fk@4Zz zF9zoF+Ef4P-6%WuSnle-KtW0=yy+;kuzX`=p&>P8Z%q(5Mz`tsG-@x;(UR&9B%rif z2)N94KcCQ-WDNR3AbH|y@y@x6=$3Z+-t?5ypWwqt@sYh|ZV1(QH+nrxxVbp9n3Mi; zdvsIN7qV`+Qsd>G!2rjR}LPQK-DIsdmO{uy0dA5?=pFg32goFezIvyS#u4y;7Q?`8KG%h#6kJTgG! zydVW{^peSeCGAr6u1OpDM65OJ z&FZqwgH*vMsy$Kwu!WSSV4khdm+ZK_b?jg4*wcLM<=vkwT*51Yx1+=b0N*MyKQDJG`x_ep!AG6%9sv zq|{?n!g5!G5jeTptE65gq`2upe}VAP;Z_y3)=KF4f)xEz1NL%=Pjoj!H#n7>Qxg$5y@$D|d zUAwv9NCA;+_Z?rVg7+b})FTGYw9ch{N_qbS?}gIbd=7*lnOiZLadu z-llZ%-K^W>zOp}Z{M9uHH3N^_`z8n5#3x8FG5CYlK<^_eq&(d}9yrP6*-DAeA7Fm18MxxaZ3DPC>oAc^!_lI6^je|GWANXuIhaG9C|_O~QY zf>_Xe7Jd(FL$&FN>3n-pwA+#&XU(f>-; zq~vCCcWfj&U8FVddc3dOv$9x(3K}BK6-WEkumYP%w0Yaxv%#G+S0;*>0pCjA@P@iN z8yCYsT{%}5drqYmBvN1?^i&{j&sy&6U8T1tx6EY5jt-XoFo0{Au?#t=c5E(CziL!$ ztS@Kpy||HTAX;j<_`8xG7%8limaHoWltZGY{$cte8!)Q&KTXH`T1*g;KY+S?D=!QW zR>;6u6oDYOd)u$331gmPbNDD(=Ov zy&Uw60xH`UH=0aGeFs2h z#}sYJDUP&Yi5%c>jFzNtYS->0&{@(scHAi1W9h`_GLUw~=ULxwGA>n>Xm-!xj&pNg zXd;k5KMi*b#{0&v`Q|?}I(uiD2ra2?vMv1-PeZaa-{JLnxVgR9)z;EdV#Uf#1vb9> zrR!2`ScJHa##s_{v$br|Vkd5PCYp1;G191Bb({3>Bl+Bf9u6D5(2@PnX$Vl1)s&P_ z08{h1EyN3vgeOWDYf@?|3dN?|hQnljG~w+ov}&Z_QjEVLeQ*Tq6bC29qjG2j$jA&L zG}y{)%3@)kfBCT_vzaM`h`8Fh&$$m;%lF)C5O3|G0?y&ze~nL8 zS1F5gsHJili`d2OV^0r1+Zqrji|mb`Ady8t*6_W*f&T$aZ=z4fce--w?4{c-+=Y(E zVRl#v?|4g9h%L8r*^6qchsc@!KC@B&Y}i3E%-o1p64(#)c0{>{~>Gz^0=t9b*1SF??@Lx=vNx{VlcIY?Wq zp@BoesA@Va4aP-G0!k3VX%)Vg0JVieOAI+lHC{;Gsvb*Ex01Yee`mqy06nUJ?Prr0 z`O~&DEA6oKSIQ*TbYeZ`b(t#%MV8nh7bV8=ePcUIOAE-SpnDyKmzH=U=T=d?@SY3L z!om`lo1IKX*`?~bSQYGGtRzpGZ_K@2%Abv2}w3l z%Xs_J?H@X~uIih4Wks|j%WcY%z~Gt_m$-yNq?0oI={`06*nZGQ2S^x}7B?isuy&^6 z(Co@`b8>mIFMDOn=rkbSejI$dEzqL$e30K=q-E#aw>@wz{`|&@%b@mKS9???G22fT zuhaDgHj0}WSY-nTns%?os+Q{yRyyylPfREKbw7dyu1X19FiX^_B`saa6dN>hs&!)*UjIP&ZH_!l8`bmc+M_k@DF~eVf zwY2SdWq!~z(-DUMX8Q3ggxRQHE~$C1R&N6B@oG(JC7%)Q=5qfKv}E_I|JqtWoBe0r zW9w*~x>9?2li;&r>iJ#SgK<&9Loi2y=k1#e@7|kD##LsU1^t1zJZZS^43`I-Lss8S zz^ka*ebdBgZ1WA`6{}Fn!txZV7=X`9qjv_~mFFwU_a2;0sOe3I?J?yu&*e{ahm)tT zk%~RwQLWr%7CjklsLQxoRuV{Ju?3ng%%*D)p#jJAWC6`tG{7PmohrVAM4uMQ*s;&W z!~|M3XFAQbqA9G8%Yk-sg>2-HUvAD9?r}L-XlzYY<~dQL7}MG^&$`!#!OnH(ygBJ5 z>fL!|nT3O|Nk64r+;%A>Ief9p|6n*L<{?~k7~KjdY}~8(SWud`Cg5BzvlOC^P{>gimf;f4MF?qtX4zh??}1+LyxdxcH;qIUKoF$^(pwiE9u-1=cD9R!)ajxjnjg` zTZ4W4D``6q8G6G^Y~vAac7;ofbWQf-p>|%zGqjh{acGj$N}lddS3{)8b32G-Wjj$s3e^9K!!0& zPbV9ea+Nye1R0I$5hh=sPE^h6zB&4V>IT^JduyKp<9KMzWxJ($3^n14wVqQPJ}hy< zJAXa{*$HrtkwL1)&oww*+E`*8$wjOnNm|W|aXn1t0JQh+h|qjY#e)@g{r@bfcW@1 zRTnlk=g^+2=8A|@J7Oo6ptPZd?Lv0+3GVdN9s<5O+VO`X;5REV2daJry17yCD$kFP zx6VXm&vsAprqd&S{CG>ls{b7ha4Re%R!~?YI&6KM%UM3_K?A6*_b>4?JfNAPEhaXb zW2z;Y5DkLqoZ`5i%f(f+H*BH&DPt)IjFYe>SfqdWQnT>Tt$l$jrlQ;h08kGy43Sw& zi!|+HVaw#Ex%G>-k3M${&WG+RV>u&(`zDzdAs=I_Ce3ULD9{LVue3J5`B9 zDY>zUdul2!X+BP=*OpDm)pfWa>=z>iuHYuD1jT72nJ=Q5-A!#rK83pK(o{)*y zj(@L4BrMX3GwUPK9SZ&QpG~pOa;uM}xRnGcA>r3py-8yi8h`?*2JN4E@bP#uob{fO zn&2e(CiB`m2Y0bV#T7^^zXjD25Fp33B5AGt6#D&Ok>}y##JP!fkN{#ncb+qP&^s4P=B}btMFiI_52<&|0 z7wHEdfgYyB#@#@TsGOw@PDx0@ud_S8wcQQX!xE8xD}BJ6qavl1=X?YaZ}U++>sO$d zQJp!|%Z)S01WQ-e)o~Kq3x9ZcgDwU^hN#pagoa2$6B3>+j zpW!5?C=dmOh-EEj|A4A&eGCpD>7>*iFnes#7Z{MBZ61bHsd-0ryW9rv^24w`dGnRQ z=5g83LH7qe-uuaLXp9Od%0R^MByax#x zRcV0C;nWOt*&}p3_W=@`_CnNaBc&G4pk`Bw<&6hnT+S-L!QlZ_jFg6CM5Qb1`!Ar( zZE%!YVof0c;3w4)sqWdq(ye4w-|kOAPZM_u5BQAeaNaxK5XrPOrx8+`VX~v%2LKe^ z!GfQjj%GrB#(?A>`^Ux+IuHPW4eeoG`Z>kgz?A_;-{oHvYo%=tRE{>XRE+dyS&oi5 zb?PYZ8m`+VM3S8L*mEv_vPG>nwBb4TTah#ZjRM3A;jAvb)g%d2cE!A=` zo4?{AQsmHLFLs&wQB)krIIVDpV%`o{!LDt8LPmb<|MB{$0fYfjw`@2M6Y0@|&|G41 zBrOgQ@#a5}HIU@~9F)L<_}`cW{cyl%6fr|h>mU2av0>DtQ`&@a32 zx_<0bTZ5LGU}dvUI_=I2>)EQMQA{rgObM;iMD;{UIdN+-{e%Z*%3W@0F*T5LBF|QZ zorOj&|G}NEVo#Q>VwfwAW%>!5r8Y1l)=%lq^Nk>n)`8>unzxR5e0`j$RRBRP4V^+s zsA;n_$)dt$gnPWHG9y!|{C(d}u4axy}~)Q*M4S@F=koj55!4!6o{PD&SD zDJ7sVpUP-!U~-)tbjXjTc5A1>N`4R9ZPPgliqD$kJgJpGLy-YfjoWf*z)M{m41Vc~ z%Sf(OmRaOxYgE8-BFx9})%s*J2J(tCCrf2T@_<+1zXj(Y3mlezV)GGyjWz>V>VoZQU=1OxF*|+tir8l#=mXKt4^!-n3``B<9jeL(;zgI_2 zxG{fU)*+k6+}~Ijhi{V*^-jm<&sr=vTWK02VXjqu8xM`SS{{@)-Ca0<1WTt<6+CIH zl);E;H%J*IdqjS;iT}C^H~$vR160X_l^4@If**t;ZvU{Beq_=a6Wj~H9Nnp05)jR| z7#f|N8l6MrIu|6SjZAj%XjCkC-o%b6X^dd32#ydJ0 z_m=$dCx_v zzfG|3-OrtK0O7sPKGg~5rForZF8nRUIXH4>T{`}|HAvpeNh=`S=1@dnZq6_|=NpeN zb!8R?Mh#0`A6=QG?Sqr)uX;{K+u>D)MW?+aJ^k#gQPR!n;xbgv(Yr~1SV1X9!VZH8-zrVdRGOIlQ{BoR8NNo1?6C2& zKWfkBlSSsd>#Q?B;8cxJQrxVj zD%j6#P>&!Qw%^&!bsbM(U*kNAHMr8+$eG^aF7YSoD?{{zC(j9l6|mLMx9-PBH*>RczjT9?^qf`NJeb27NUoF-xrd!`1wBM)}SAuV8r z={Gt`Vw1n}_5dFd1ffRUSvXkh6sGj}#1gVN{B*>Dk(0Cq9^QwJ!_{6_61oVAXC~Gk zYubATpa~ZtDLllhhD`IeyBs$aeY}k%?$D!du-t4i`v~~#V0VOi?{jztuR4P&|Mc5? z{)9Hf5#p#m#Zr zX!2gsAl*hB?2NPzuu}?dS3@I8Bre(w6GC z)0!C8M44cOV>Xv-)Du6tSW`SISAG+e1x?#rR$nX-9t$TtekBtxh^s(iots35vqh8T z@o>uKL;B$BvmwPuHhJsHfNQv2M6*bO>u!AGcV!R3y) z*|=uCWkmo8S|GnW)*QcyL@>9PZn&BKC@<}Zv4mUYzvj)J<^I0sYA8GW>$UDGAC>PC zraY2S_HZW`PtI01qF@3xyP!G=+Ur-)E1j~EumX`7?XF@|dR)g7?{0hX<_4&DzS{Qj z6{a(#vp)4oSSD;Iks|BgrylNckA+>WUM=CYZ7C8dE9_s+G+?~Jy2o6ShR+(kN3Hcj z^U2SXwd1F5fBQ7yGU1mvS}TgHq3vEYN11ObhV?DJ=01T@q`tAfSx%@5jN`*;%vo_a z-3}7i8T2!%Hr&4%=L^5g$BL|``PpL|T$wAfGPx@%>3O1IZeC>g7IKch#A97k1Wzrw zJ)@6a-#3W+JfGiPZ#-=rC(Fz{8Yrt3+xjR~GzOwgxrwm4>Uvp#9rzosIrwkw}6FwugG^apQ0V<5*5)ijuB`k_M`)ApP8O)uM)_2wN|vwv zw<>|&&Eny=C*&<+p0L{9uu79+Pkx?xhXW|hzVXcCZN@c%sr@RP=X767aS}*r&lwTr z1W$H3Go=B6`5w#c{uGcrX*$^x6ElM0Gqou@2s)$40S9rVa&dY>Vb&{iWBa?;fdV~X zU+6Lpw}ps|2;KVc#heVyDb+=)Z-)*07N&8_Vpaj8IFC3Cca2~?$RqaFMB~+2*Mwo9 z%M!zt@0ain4jYRtLx8Wd87gwBrP_bvwNs%9zit~%@wIP$0!u=^0_kn`E>0|n%_scY zS@d1u`Qs&ec-CqHvxsoDrYU0FS}+=A&hq7xcb zra9uD6568mnB`2QP9JNJb=rqLGb0bjpaCS#3$EiC;W8r?`D|h7(BiP}$+aww7L?J= zN8)GW(h&8lAd)q2+f2+!0+sR0qtJxyn$??6_%j>_*HWIX*0$8V~2f87W@Tl2oRy2T;s@Ce{<}vz9DHGc3Sa-^jCJ(o%VW$c$ zdo?rRl2eyK@~Um7m&|hk)kQ(cG|&h34>jxTC~0c=G~$-$L@T48r?bl=vNd8rUk`}UHUGpnP4Eph`N_nazg`t~5b9P>{jJ(Qh4e)y2nk5jJV8F4;o zRCjcO8A=XG?nbjYt_!>(SeZ*IEPjvedetQWq$|TtdRH_Fh%3&ha*@@9h00Be1w({NRY`uQdiC=<}S z;XS1UiX7Q+s_BWU#j9mJuzYJ@SG}jGGqCjW-ezZKhe*n*mFobLUT(?uh3W&orY>Y9IwtWEeVLI0NELrJmjANA9<}El z5l9Ee9Wu;tf{U%#ZVuE;16^hdFu#MOor9;b@_D6-SdR`(%5xe~Uh27b+=VUOOLOGQ zNoDxD=?hr`V17yK?ACH-##xej98`@I2=BqV3tX);9Zq|t8CnM5WcPHHNzcB$g00Ep zzIB?vD+^*Qlt8x84fH-ZvatOfcmiwxP&YixnBTV(T5O*2t!-2Mr~k9r%&l3{-vFzS`bi#yz9ox%ZagWm8{@T-@`_5*1CcL&1tu{?`xc}O6zzXv(GH;h-; z$!sPo>v%?lL(elI_O0jfR?50Aw?zC08^UEibA7Q;$2Sy*o#spa2J+;LF^k=AcMI3b z)Er$ZPt1noe81S4?q#!Cq|g89COg8b1JY1-oi%5E@SQ`4J2bs)FSsn~yz!#Jsu@A= zjipJ5?UUE9s`|pVeAAIoFZ&<3>~dFF&Pun^w_n>8-d%qf99-NJ<E88AV|VA+Bv?5{wyJDr3Ad1%P-T(W>|GP$Nb(8-35)@ z1GxtF8$G!F5p1lp22bip^^4n#x~;xOiVfqlW4d;-Fv_)8q3QZ2i2Nw&EOh7a`CwAE zrk051d5p|VEj@8JZf}o!n~aTvd7s)*<6~6ZhWM8A8xWeA+E4`&Wfybx7M7#a(Jm%E4TXk1ET#x)_=4p5UK#N4+46;MBx>m9f&+K$$%S4FVdBo)j3F6^;B)TGNA5vdh6*$L zZ}5>QM7(%_EhI3Vt)9JmsLnANcrdiv&>_4G9uI^YX)7y`q$DXAiINwRR~L-4D67rD=W1j(A2Q z^=Gy1cLbUXO?%MP0Oj)sCH8LiFR$wjgm}Q&jZw)-%0nRVp}}^sl0DbM<&ARFvFn?m z7}V3STJ6gf9bydR_U!u+I~=anq_Ld{Jz2=E`(PC7O*(KVi$p>n|RI&iFL^u2%btf3X@Z-(qIwjOhxL93$WpD{qT_% zzg8yzT28bnpx?^c26K24WCrmrY@lC7r1g#Rm{Sf#ko|j)!;*bv_{-)vmrcEFzL1%R z3G{G#(rS|r4pLigOW0=(g^NNj*p>jA9Cxua`~q z*G*}4fys|?>Sb*X=8!SImiknEc;oM3v-%;Q*Xn!S;!a7?XoAyH_~C@FW(GXj~*f-ahJeUa$qsHOpEU!BC+f1s2HKd>Q#j?-9;t z_a~gB!+KpFL^HHMin91)YIEMTv#)&uP2G{C{?kmK_amzng#WF{4<3Gd8QkYL-i)+9 zT|b*RGJ6A%RX>)vW4!n9T9>NZr6T6TCY3T=oVCap!-mC8_QFc35Qg#d$|fNLffjO1 z>aP?D)UEii09s3(s)EeUSo>Hrku_HDw9xi)x}iSrr`{h8Tn9^>MYq&oc$$Eu9bL2GfzWbci}JDcDCP^SoprJPa&^E_}&<*wUod@ z$}lD2TdseMMBJ?F7c^eql!A%u;!0uw;D3VPQJav#c4vbpn`r;j-@5*b=ef#>>S<#N z9t;tWw~)a9(6T8C2_Ju_dAT?u@s~4+v*OW=dOiK`*SN;pg^dNUN*AoWIi--y4RCaB z?!RDuZCj^j=q8~hezvl*=iUgA_#h=Y_^YI{HLZ+%!=rb3h-sq_{o5x99A!Fox}lMW z1!QTkiYgX=`_@0wVBRbxW7Sv#aSx}*F=jh^rc{w;Z)4+aLR%;BOYys&`s?N-+3au% zNpOId>dH`K-Oi50IS^%9;nLpGu$oRKcwyjzbLapTHlmWu@1%r+kO6`~E6a%-8b!zN zlFq7Z+9Jy7`Q#I&<3Kw(brz=SQkn`9K-^WZdu)RInzQ2>YQ%12|CNtjMHC#M-dn!E zOSj+7djmU55!?4b@Dsx(96&}$uKnir3f=S`FPBr3Z+N6449WzmNOJayo3 z6<6T^vf~-*`=spM1GgSCob~nSC?(nLgc+8oF z-VFZ|5$|&;xjZ`)^Ona*E6#0|$sv`}o6hPCS9XJMIQW1(`(e)r8e1*#x&HF!EyL4r zMgJ7ha7CAvZAgN(-p!JkV6Bz5=`eIv)eBbr%Xh=nC-6lTKzL_WRYXAExb4b(^v^FN zHgJcEbr6YKg3zs&%*l`%kuKBN*^x|8t~t27s9!=ZP5#M^ArciS|>+{(0G#T!^L71(KvD) z?fKihxF3m*eu$|&11rZn;YmgU?)>aojvt977TVxi?j1?qLS#jrY=)CYcuD6P2xt^$ zr)6CtKHjU3WS-CIu_!+pJn%|pv9TyD?gg}F_&nCYoACiAI`(&ab<4GI!h1aGWRZx_ zlqnNgri2^0?l(#%q)V3=#Oc^}l{VgcyLVc2N={#P8DX)V3=LfZr{<4g6IS9heNyMV zn}=NwS;e_;f19ld9A9sf;$tg_n6_Tr-s>Ny{XXQyndvH73s^bk0x$KY4(%q`^N7o3?jVY5$mrNXWaEHEx1*8l!*;FuaRIs>U42ot^v7R5$rBYp zdLT6^riG4D&V#zA)nHpp<>{nZTP{e}$EC&9;tek)X3*Lv<`5G^j7+t~u*33)>3rN+ zx06mki7%`hRV5)t)uLeQwp-=4G;{M5#;=>qE+Z+F_xx=hE)m`E;*YFc?B&X`h8=?u zxJ|#BLZJ#jG)#jZd(B`{Y*UqbQ1*(_YxyEVmR^pPMZ*eV?0Q(So<_d&*V>T+Ma4dD z=Rv34F8YJkEKcV$ig-UaAHDX9N3^g!$Dumfta1@L>n;TzEjrGykHYf8FemU?e5Ur9 z#lj8X{+~iei`KHDwz~86GIB0M z;FK>x(eAxXjPUmlKMuVwgN_Gd>f}zi^}w9vT6I#)KhUOp?v{Qz`zS)pe2-MN=Z)69 z>qCL*g8q}W-em#D35(Twplk7b0g?U<4N8sIF&Hw>--j%;K84(ivk>qQ7@u)N#-%F( zcyfF6c^LT07+1izKC#2gQ36z}tvl~)Pw;2IP#OL`~wo z*4e!N)kLSq!`i$CXIkqn7^DnGDl07L$mY2IBs6(@GLxtjgBO#qbT8sZ@#w=1&jd>BSs=MoHU(I+b zQT$MSW~H@9g_`_NFV#GTd&P%~x6}~+35_prSC`j9j+hK71wu$t%OOz6hTB+iFKY+> zR$_|LT7bN6st}U@MG<*?vrS%1dzd)sQ`LMrijt&=EPZIdRk436t_)8(3t$``=9f08@7!_LHN0`fG7tEjdDo{JY_r z_gtzaUN~R0rs>Jbl0FOm!f9q$|s^nYDy1SaLGwk=-dwZQs6sp&- zhTEMC>;FXaGJuU(f6L%$6;6|~%v_C#y-eEbvWxhX95dY?pRyyic;IBCC;Z7cFk)Cx zWLwA@A9Jl#UEfi)+$#qF(DY6ZTN-@#&$#V#6BmBWxA@Eo;ayNgqy5KZIL*HEP0 zG{;+Ll+PeCU&M56ClHTc+Q5=lExSnli>o!guotPaJ z7xo8-{mf1dIh?FEn?wCjP=C8HxtyR-Nr#^pAgG&5JNNd_-H-U(?jVdm%@MA^`Zr7A z-|+EAZPzIb;h4;A-f;#r)j7-GGi4)hj!R{!5epL`FqBrxJx;-5er{Mt)SmFAo|zdY#Gm9q3xsk4Q$<%_I65)wuRg ztOq=Z}|(jh4{ANtoLTgm#X0hIY;#AH}NN zz05e~Qs5T8^<2)vDidVqyZhye`hAP8+-6Z(lgZnfb&cg4Wo@FtDzJU3%gGMiBE1BOtp8*^Om~Kq-iNv%@-g`i?XsPt&nx3` z=}*5_M#j_?p^ zjh&}3@z^1XheHD>7gA#H5|_eC-fo}Dl8D&mF9}(0SEHyvZpWlzhOXL6?+qw z5YwvE%7fSw@-KW|HjMxoh+^PXTeh-zBLZwOU5H_oCMIADD{-!-@#i;jNU$9;;QYG> zHb+IHPL*-Kg!lPIWs;83p?{xKU#>O?wLs-!3g3Vv}l7lvj* z#LhV0j=0fEWP-0Y8WVEfR1C%xJ8|buj~*IL#VR@|0(?&@w)cc;)mz;>WXIUv9CQ7j zzS-^ZUo446a9lqm&={SQF;HAPVcMkpvazx>HpF4FTFb=)MD;MZGAFw<=bRn+{l6uG zt=!w&5VVL}T!iF=Z&6ah`lzqDx?Mr(uDRz7Vy?VOZ{IgX2PNs>-ec+CPK=y|zM}>( z!Q$XFCSN{nXfeYGN>%t`99iWuPE1X)JK#1wM5fK=O8f1&)S#wJ>qC<1tHU8vQd*)e z=+1k+rI5az6}Q?Lgae#?JC5~g#y>pVKX|8co!)egV*hqb^WCtD)MgG{jS>9iIeT3Czo}fEGce64d(N6^NlyWsr!cH&Z2YL47Z?$WZ5N$S$UL9B0=|LZ1L^VDme4Xp$@_)?0OMYh1+XvZs3|*E z9yKz*2xzW>K&AFUpuUq6xWTi?-s&*3{T!MzOo=i5ePlRN!{fXs1 zIVMyUi~5X(btppyn!cEd3QB)IU$%|3Z}}4_Y!NapQ?IJ=HS@{$69smT+|8!yF~7f7 zrlxp~gcaH4CGy?aXnyiw1(2h8gz39dm*rKzr##01>#yp&=uLYdS*R}Fu9ZvOqn?@j zxuPhJ}rkCXKtpC!Pk!wtGP6%x8y+ zPaj%PaEs;&Ler=4Ics-oXw_@ z^kQ(-Wax+nfJD}}ky2C!zcCXbmH2)%DA{w@&fXFwW})p4`N38TMEkNkv1Ol{^vZK` zUhmW-Rc6y-snbmUIp{6SiGG6yye}?_*(tz$hn!kxykJHgUPE`Y`8!^Q+KpQq)7bc2 z)w~_?Wq0}-CL?c#^nGJd$X=%mtO78%fl-I*omS0LR}mO1H!v5<3PpkU%eOnJ5NFBR z=qY&WV^5k+Q=*Pu=B(AeSvRe@4Qkk72`efHfC4DR=*Ef9Cj@HIGXSB>PBAwIqPHnB z2Z3!*BrO@U_-jj*XF<(2-ZTi)I7ds~o$rm2&4#pA#n(CV1@k`IJ38m(Q!`gl=ga!T z1A(Q6thKBunv4to#c$k5q=k_uq$OjiaJHqpt%yv<=qn>;V z#~DsnSZ%+W@KJG2XvHF9j=M~K5U|j)G*Cv}iRThy6}5lma=He7ba{NWiBgeXqJ8Bw zxeFZ?IF#d1mGNC6{h%m=Uh>eg*IL9#_b&c|qg_r?2ITOCRY6JMKh(FvLB+zJFn}zl zQbMygdu)z^70EEmaC;z3w5fUi20h+mbi>iBVT@4K&N3z zEkewTT{ai`UqrSde-G_xHY=P$0MY=H1y>1q5jI3W%A-vq=L-)l1km^bH(v`ADZ|g% z*$t;2glLJln3$jH2JT$i(mmj^P?ZRD>Fti9|4#(#A^CrWU||MeLh8W=Zy7Tl_r&~v z%=ux6eD9N4jIn#4s}~0g+0Uq`;Y6tSDk17YXIW$|6>`gRCSZB7sg-$gP3@}`Fc)}q z-x4k`MRgnNmERN*v)$DBev2)`)6cVqv-#E2W2`AaXZ`8EM&sd4nfx*|>(GWgVeo*- zGQf{|U=T-OjlauU-^huy#4PzXp84||63=??#{Kd0ByBC-v5cw9ae%~3xT^HYn>#eo=Vx*|vOoa5*zN2@^1DIZFlo zPXTTp8UQh+uMls*@_h5k`$n$gy6G(FE1;(#!Ck97*BrSeTK}nWU348V6@(ucwsM!1 z73}h8zV<_q-$_B95*sj(aY}URC8esAp-h_QX9HTzMDE=1=PwC2Cu({POup!Fo zXSYEC6m~KmT|A&6ncZ4#7rIMK@Vacz-&4!#3c;irZ($p=a^eD^0R!*gUjLf5hgb#8 zZ|}AmkJH~MLFI8>pKNK}c^q)S`e?1x0`U}`LGly^?><*)2!f`24B8pg#KvPlwtA5s z328fqCam^JjIyrh;!zU0M5b{VQCK^l)Zc2Uex{%J!m3!99D3pbCo?^}+PMAyD{wU8AfnA+Ol?3sDfWLwa8^{u^mn0Ypa5mlg0Uw}Z-(kQ6QUF+}YQ=Z9Y*j*_LO1=Z!IFB~m_q*FuF_^vEY1V>Kh zfUFl0u7hRNbC7bN4Dz|FW9^Ys6e2+IV+G;i*=@UC_MA~(T-6Ji=J_1ef-jEkctknQ z*5USDFEpll1wy7dP?+NS^ujeRm2YysT|)%95Fg1Z4eQzAMLAKt<8EH}GNDg4yvOMM z*he~2b*+cP_QQT!1nK;Z%So&IDZJOf4o9|X`*%ezYFr9sJyi*O`O8TQW|}M;Z*xa) zdTeyU<=f$;Z~^emj$X=C(#Bsd{X?671uIrxR~aIuuQ|=UN@ZIJgiV2PY2~)ll5~Xk z&@o^Cq0;Gn8Zk58cRHs_+BigR><)@?UwKm8D>bXi&Y2F-i{-NrrOA8o)R+@09##G7q)naHji+&1~z2WKuE-< z>?r5kJ48>^ro8IxV~+PRv1gFuRWZ6}^So+$pxTAxE23YKP8?zHyEMpcQp zxxX?yv&Fn-*wM}uBveCDQRy>yUqEmAHkv70_2)H=TNzkse-GYu$&sPi^9<5($AD(8&uxGmLxcH?3VeCJ& z00o9DTusfo^s ziOw!x@0pekFCH-rJtg^t8e;JU4GoQ?MVa6)cc!wHMBt%Y2u@}{6__{|x`~frXJ-FL zmkR(TvT_V{E)I#b@l&(06u&D?TWRpZt?sR}fCjju)IW8h2EEx;&0KW7>*vM&BBMq} z_}o+&-Cnz)s79VNkBr{_0sBP<_++BuE^2ZSdbK0}2+#HpS=Npk528tZS}26~aHf$` z6#R5X26-{n3A)Z%RrR0@`HRHKW!Xn&b(e2DJ(#T_^5E&WS1ZJ!DduE-m_hA|7dVpa z+n)I_bg))7zNYF-(PL3&bJMmh_uT9IOlxehb_)*C)A6!yjd_gZ{xLYu+;cebOPeEc zzK-|zR3ZKyoY+_}pFoYpPVijOe;2muJxA)A)$L2(xiVjm6F8+b*c_zO)C2o*+C#dZ z^*p^HAwa=~>=hjwPm^!@pE)ILIC;8jE&4zSGG=KuTp1XTM&_Zo2E!`XUM`i}m0gjL8RcHjSEO&wYQkbLyiQ$K zG4c%GD8k;$_tb1tBnPx?SWvCC{UvU7th3gd08Rn^caiT4VCT?CY&nTUJ4pH6Ebwxy z-1PnRa`9rerv6K!`#ubU{2_l+Q2#e*UlAvbFBmxJO^}(StVV09FY^{%$qBz^STrw{_k$d<`1zA)r@I?94J~d!tH4f-H)_QL*Bll%PH-c!5m#ARc~V zQ*hS+Ev1zBNcH6Y10pvt_YW^@(3)C#`(5UxX2N^2b4?Hdsq5x%;N=O%uKe+s-N4<& z&AR^B89$y`1)PHVXcC+Zp>6(fnYYjFuZsTiRBztWSkz%sWVSjwq6#3~R0>`)ccgT& z)UZj}`5#7`-Jk$*H59ON0hgyLI?Ax&{ft&QipFD)nFqU%J&Nr|y@Qg5S?q0eY*-D4 zhw?ucOnEqNOUSO~w%~?wPtP!8ipz!rp+Z;N=w}c}Z8Bd%6Cib6{g@u2>~HWcE0vf{ z3V1P-Tpfc5Z8@5F^P};@`l>Q;g+y9Tc}iM=SHviM~A7uWsZ;W-vELguW{fC6pRTXySA!P*F-xBr|j@x*5pxP{1&+v^qz!q$|C_1XQZ9 zIjaci+!Op2kY_ijn7x;R7~;ksLqvy*kup}fJ%RK4=?KlNex;mX$@stth17AAV#keB ziW&T?$<@WG++vYd0zKbT+NY*R(^jyTol2fBZ8XJgBK0P3BK zIwYvCCttoIjW1POjn)Wgg}>w`mp-rE5Nl5Z_zzD3weepE7sRd82c$bxlok=MlVm$f z=3EkI{wsdZ?kK6TKk)T8+S~eMZ@$a5B|51cAuIUhs`)<` z>ZP6THD$mDfnoOyU6SJRnO`N^$+(M}sY;k~jNc)CINbm=KqoO$Koo&C9ac%DDrW36 zQD77jharMrTNzeng_^EzV%#||eamOJEOEz-|LHckdA!7a+ppi!`k-WK-Ch*3!!^(2 zgGq4Xt5!UZ`LeS#yyLsOIl2I-X{21=g+mrot1?#IFiQ(KQ2J0Y9(Ae8rLi) zg#wKnESD20wQ|-$XdaFOJj&V(Bmt`qM>8VWHjV9vUI*Z9pNm&oDItg3#_k*_nNp|x z_D|C%4}qluk;G5i1gE+7SC-)`x_P`O563CCUkiSg|BLPa@9N$nW=KqB8JmgP0LLur zfJ28ytDQG9V1VKD$!FdsHr!G6G%dI}ijvvs_iA0%nxHJAAGMo<>wfgSz{gK-GghO7 zU^=wHbZAx1F!=6oJmQBod)K?1cv#^j<<#jPJ;sgnS~a~G6qfwH7^-*>SW!y6T% zEEPc-m3kkhy7uu+PtNpf?M8aJb_h|wo4U&;rE`4Gg=EQ##c?b@-MK*y+AJ*lP4xsZ zzgXhCcf38={j_hl{ug6!8COTtgn2du2rj{0gS$Hk!QBZi!QBZC!6gvf-QC>+1b26L z5AHCX_nq0@*_{u|N8s1D@40>J)OntNRVkfUo*O4U=;^Jlry|H0?7Dt}s13 zz<)1~SG$<%<9wHptzMFhB{~i1=3&r1TLD5xVd}|Lgk<0iHwOC%404vtgN?;;s?7NfYV^^FM zWX#C&w>dq*I7-e_#yV0_swhI-E02z^_S4u&Tla_S+AD7n_D8$yDxIXP&(}%h$@Q12 zIY(r;`Nq5KV`~=LY8oE*X6U28V?!QzQNA&#z^< z!twl>E_N5iN+7=>ARss@qc3|S$aA_Fd{FEjM}XnOGe@ZVnJ!)qJ09<%(!p(*P<;1D zfeQe!^*(vX%XVr3I7ut*xj&u3A7~4!hL%t2>gw~~SL6dlUVUWK6M8u_yy_^WAKm(O zqBPDI=@7r0EC!BTMy|PSR8N&_=BVs^rUfSY&b%GV4qD<0H+PvJMaAM8j7*(s!g^C4 zAl9^j0t&0E&5zLc z%b9JZESt0Y|1iKV4TSHP!TRzaV0ejcpo|^dDaCLk4_Kp=H4yFBgGTHDMlE>D^TApe z84XEj2o89O*`BNUBQIh8x~($~<8#W1n7LOWk2^vlac4%vX92caFLllMc(wMsE!yUd zFnmt^R1?G?R0~*1-xURiSdUm#2W6X%fC*9vVa8c@|1KD9V|*>f8e@$bccxOt@;Wb9 zld-#giA#%mx?ygZZ=IdN{bgfmxasMHqaBVVH}&I!P`<4d&7a*3h?s+q{Kac!B3a#z zZD?9}!jAb`p0iJ%r|9U;1`CPO^ zC4Tq9pu1P*d34l^?~|!>xkIn?Fcb9ie5YM=riIau)9Y_62bWbGc(&H(MF4&m@c*@6 zJU4aBIjpa5?)0>uZV|$)StVZU+>4HEz8&sAT&Z4c?;^GW+~aBu1@aO(b6 zy`F*039{odBLbO8XApleUMNoA54qC5^4qdcq(&@MTZ+rR{v1X^U*l(?@3eT7Ut3&# zEPdXog>u^pb=6C|Qan!%Nnn}34IzilPe6HlIJ6WfDLvP_vm-zNJe3!PELLT9%H&_| zMpZQ-A?0UD!y6GolaHxtK=;=?s%9VFoQdFIaJ#nS_$_U(S)2CvPNsbnUr^Bl3Q zeDpiO>Oq1Q1uT2>R~ka-u9Q3XYJ90nceQ0Uc_lNhh>54cfKQg`tD)B~rxi|Q*|W1e zl(prr>fBtIR)1M?-KM7G=TMz@I*|zW|8a0a1Cr^ISt?L~Me#z%ux6D@h2M?)3B!Qw ziG|JN5N>%I1aK&-?kN4)W@~|kO4R6q28IVf|BzfsmD96g)SyL21cRYL5DhTX(~1gpknGd1q_of{b2uAF zfFtC{tXsazuySM#!r#Xg@4gS+#m(6`albi#lWE(QTrBULe%=Xx;aAY*p0-XruM|*I zTK1W<5CK6NhR&CQ@3;VUZHKFtLC>5#om=*iKbQRILlo8A#}ZgYs`bCi@2{ddUNcl) z++fbDT6w-Xalgws%uN)8YdL>=xg5fQjutKde*OMIeEq3RwdBW*<8$?w3BS|M=gO2+ z9}n@iyG3qsPitc@J2jWQOo_PAfuSibwb`dMIHCREfPAC%cB?&sVUx95tG*i8ptNEs zv}I(gw~NoxJI@?UOmNXdhs-yep?`iQdgUhoKvkM&j4dng;m!8ll_;!^U7V641~Jq6 zL;sThsEcFN@~if7s9riF9uZN)q7`Ezf~6{2%ZPpF>dlIO?fKW}w%@MdT#N?2*6KdZ zFaG<;%{b0RE(Y%OrtrvQGio=zk$%aID>#EcT!Vjiuf!EJoLz439v+4gpWpvBte%{f64qi=;4f&!kbxl^OP#_Jg45p(0R^if|Q9_BJJoO>}CpEgSF&8lA~ zg--Y!_Pzpbt1I&eVnp3zf;ZTT$93eN$tHsin*BN;XeTPXt+ms<>uC7-8O0`-7a2Yw zBLKqN>$W2=5{I}}T>V0S&k87D0xE9hT(_^(``dYIf;Wt|u@FO0Pv7pRqCN$OdtV)7 z&yEwPc;!+59V8%UZ>!?GvF1@w=o@LjLKzom;7$Voh2bh${K_lz0!U`f^u9HdE1s6j zt1lnm6FO8tc-HXz+()s&;}bS9Eny5);IR&Y_1S@i%dQC6tsF`b${l%@-g|x3Z0pZB zHmOs#ZIOz!^l7r`*p77BY}-M43zz5Ezana;hZ z=}HJ7D`ETX&PhZnCJ0uwP!1&}06TL50Z_pZxu3Tky5fAj+#@*Ko4pz?Nu{$q3TB8T zNvCD{XrpOD)+57Gl=U24v)9FA{(1FOJeWFnrtrWy42MJ6nvwSWE)P$_^{PWRdJ@;+ z`j721#BU=i(Sh4~wT7$dxqT_5-qrR<637j!*Sr-;;caZZ!yxKs`=YlRy=kI1@Z ziC2!r#cu}le=eb>TW-Bk%+xB<9KDeDi^|XLXo6WQ?3`Eb^L!5!ObdVhNCQH=3K-?T zy5krmQ~Td2lqL&9K>*c_^{d8T@mN0C)C}HvDcn9S5)cYrUx^+QC#kkS6b#_x8r}*7 z-@UM#d)6J?`hYcr`e`41o}uqP-~D~*@RpOKDN3d;t!Mf~+5GSqDIWj*h! z^-lN8!$uShR+|=A>!3&BHHHwIo}UPNtUU}aZYEtdt~Sz0kO~wGkN45}T$B!@v!nI; zUwyXwqUOba2B51H33^{2o(5;W<`ks7KRQ}-clb1u-}(3Wr~F71$K{K-rA#@+^U{wb zX8Vn++;lbgv&f@PZwEWa+F+&mP=9g3AOnB~$At z{}Ab!m>Bp|k)8JTx}F-L{6;PAZ7Xc`+|~&z^f-*-C=UOJLc5v&a0k2f(bH1Y_x9{D zhu*8VW}!BX=tFW0zt(A4g(c4v!eBEvJEM{>V~98%_%zfd%75LXYRNtqrTcOZ9ShFJ z)Dv*o9!JO_`+ikCM;bEt6;nuqo`3OXd;cnZ1znzh^NvHX2IqHlWK2)Gq?I_mGdr$~G7kC{IGWAaP z6PQtQzj?_#NpJ6ZR`!WacDJzU+)uw_n@{x?6o>d<)ULCtUba#q}EgkA+_SO9YX@z>?qYNHK@743SLYLQa zd+l)*+o)x7EZh(1=;%l={$jb&!@CRDQ4_o0PVo1)5QzYNVV`^i8UBkwd>$cpo9S!= zMweTkvAa__H@{)FYLB_j`9MKIAoly+bf?1W_63(%0XVx6$bQg^>dblB)jMyJ@K>?L zeuN?o=nKjDYJTS3@z8V*!zA8iSi6`eSJ=P3>85)$9`^1Htz|`KPU&&=Pf^VF&li~9 zfKQ+_fFtVJ#v-J|!HG+sJGoCK(pMU~QN^BYuJTy6zS`;Jmzna_3G4DC*mYizpD|Rn z&BJnabvuR;0vrG}F;Cf>@`IXRsd||FQKpVdE_r3wju(8%;a#O-l^-O`i2gUlusSwi zMW9c>L@(U(%j82YsN=lZd&~yK)K(^6&`JOK(NuSEaPar9UAi1q>|h>T3A3i?LChVY z*&Qe}I?+T2$uF){^vj*!uI|aheRJj}Ko0KNzJUGVd-@8i6Z9XZ`x*&N^rAS3d^D2n z^m{Bfjq9QnXY1;jOKZO38wj&HHFy2%{V)MdrCQLiF!H9Qe$vVS#LAdCYMi*V*7?$c z64w8`l9PetMLu;{RQ$O^SljvD@5qoZoT*61%4jWC|IwchexQrmtE=}URN$>6#q!d) z@}|obOR1)$!{@37Fw$XfwyETl=jPPac>O-Z`izD_G_s%_9VlIM&HWplG@!#H??T?j z?@gnZaoyT$pnB7LC)7MyKi> z%LN50d%wh9q-&KW-<5cRusoxp;7zg2pKcE#osp@8)BJvZ)0j{)gVz$M!+J6fAysu& z=7BG1{0gtdS)9|wTPBJ~$iWguwDD&Cf84HOW-wZbz>h26U+J+w#lNR**tKV7hWZ|& zRn@juGWXSsi#&kQ9DV5pHvt0GEbHc^sI~Ih4l}cwOp@{=n04rje2bW?N2C}@#?B`j zJ5vtE_m9AX%$h5~#py0I4nTd3jHOi;ReY{1opW7|y9gk{4$2`g;65VG9-au`R^8fX zBw@GlxLsAM?I{n@v+L>8UTt#m7J3*DL%z|vsg9uR^dy$s{TDsqT zM&IFI_Vt(ShfM|_(`qdv@4pe7_x#!4*%XX8Qsj|9Ia{AY&oC#W3QHwzw> z6JxDp^P_M1=_hgzOu?_lX^uJZqlx(KyJhTGhlAT{e6eVXuzgkcqjF{7xk*77A;lV$w<{gDfMPF;u< zdFg&1rL*(r9^VaY>yHFMlfcM&`^5ar2ziAZi^3 zkF(RTHy@wtW&mfeB|2J-E{F@zYJ?xsHLDKy+%{!4o|RKYRSQ(Uzx<(9RbB>3`3cvq zg|uhzb&FMCprM)b2kf>C;K$AlIp`e&xJ;!?+t!F;6ztrjbxdENi$ed z)?|8i_L=RA@BBpS^Aq>XnAecGlSMb~UTI>nz0AOGPxEgu{K(kzpF;V*4?W)b)rzl(bY33oC zc&T<>VhoHt1!}Oz9JMOEV?MVkW8yX}Z2%)Nwqu$Uh9(2xtLe&;2*Upp6nRN8+fCKj z{NuIs%e(gXJBVmF`C`S>huz)XGZytSl<$Bb1Dqg5Y7D%eV%Z8+^ux^iJp7QP*Xe#} zB%q3pFx;x9nxX^`@CtBdT4l#=bIX;hS=MW&%M~h6;{-)N=GD*-+pm1ZR?Q?t6HcW4 zk5i{(x0X$tKSS2U(6-F?PMS2NhM-^4zXAh3P{l(EHo8P5KWWwj8_dB`{^O>sL(!)oh(^6jU9LauOyCSIDoz^j8UBG{r6vj8|HkSzDc)wXNmjurQ8b zp{L>eV9O3(kviYnW&LpmH9A^MO0v3`D>Dr?d$=DuRGB9KDM}T>FRzKZUelnlHD#$~ ziT6DgrqRRBHG##rwn=LzJDpL`Pf!Xasv5YGRCM^IsWO9;*=wDnO8ZADv{OIN{D1yx6J}AvBimNG z+W9;sAXNdI`190$Q=va{{;eLIi;PXq6%-6Fu3huLSb%_qAi3MiuJu1mf>fU`N;GPX z$S_lewciCuk0!oHgN=HdD?rbSY*5bs=><+mWqzFb!BcXyC7201tL$M)QZ(rcXT-EM zWf3b$$-@CI7nqjaP=V>ur4va`-H#84)}ZLO62()gP*Wz@Mc{ zpTIoI6RbWn+!TmnG%+8(o%)u+HYgI!?4$bQS~EH&vxE*8XNOcyjvbfIb_i!Mj+c)r zrzv~>Gy2nLgHzzvzR=tD0tB$pnejbu-P1&EKZ7e(>8!B{0NmB~Ac5Zkg^i=3#S5i) z!)!$5ZY>un;^k_%i7ACDw=F6BWd?Ov_Ek}d&Mqz56)PuJ$bU)e;N zZfq!K%1U+_*pmiHDw2pv}ksWRaHU3O)XL-TQJH zyx;pOXtMFd#2VF(#=<3x+tUJkIyuwI$8lTQtBL3>%rW)f)_bec!0GkMG-`9g6!&de zF{(SJK0W);)U|nijfe=+4F_8yH1WFE&8IfJXVPM%ACL?dqpM#KN9XNxf}Ccs!II`yqR_A3kVaJE z9Im$k!4w|*2Pa2^a*=pXlesbb``kM3D2yY)vB=_E>_-n`OGRiQVE69TD7)YMjC#FxH}GzrzlzkBT@4dvSjgLJd81D2EUlOd_?1quy2$ob zd71zlzgUsR8rf9Kqw$AvO>FKeV`1Gm!n_*4cK{^7uU!vH=+(5M6R^jusa zIBy;M=_C327h5x4_-dimzL6s49;uqxC*`?yR!OH=2+z%d0?mU#>lO|J5XsK&BX`br zCaU!`CdzzR{vvA7)XuKo2^WCc5}_zXbEBMDvJcn8Oy6J4y+%yBV{CC#{C`SP5CP{p zjP{2)w8fld8=43s0UIvBfE%|TAf;gFN=neb7MLm8q5E;T$%t2|19sSJCjQmNk!@MI z2@5nq00+Jg{Z}WsS4!rumRc*1sG|k4Ly4~&-$Ap3?+W8c&{W4;yMOLiBzB7JTYIx& z9OcC0t%iri6aFnk547n1gUuIkcOfFp>p8?Pgz@k-2$A7r^{2fmm#q&*ZE3piD>f9L zJSI*faM1`VzwR+j!AM!Tab=PRTzzIM%C-1lP9RH>L**D2oUYpJV2bJu$1}tbP?mM? zGp(myMby9VZ_nq;ezeHDnPrqfmNs)#Yc(2X{d#U{dbD{g7jY}2WamW$kOX#0c_%gq zJp|oc(*#p$I-k>skAO~ zQ%%i0YjoZ3{ZhVoAgi+9eHAF_>FxA&DB8s*!8otLM~W#}u*7hD z6J?!YmQma5>4rtKZ%wE9E&OiHan*gfO#<@wK@Wy(Vd^T4`IH?JueKHkDh8h2z~AP* z&I!hb%kSBHHH5+MjV~qEkrGLGRXT2d3Pi5N&sRzz$2X7YtY$Fh+ZKc;*rtUQ1cbdH zi84BRtX$8YVtVAUEB?KnJ%g7Yh%NmhIzC_r_EB%SRup&j3a4TvcgbslCi_ zvkZ^(M?`2KMCVD*ZQW(}rBqpRRNQA-Q=B^pp2%&jTu3t>7DAf4d)jHI=;QGcQedb9 z;JdMqT&j-J_NZw8GIC=MWXZ^>?oOtZ!TpMp#1tj!ODSkLo&`+20jh0f)QRxd{` z?mcXi^PSmGSK5N;8w;3z1 z50i6(rQvXL8cwGv$!G+y^~9ZD&69dm2+i@XslS<&HM!W=$RYl1MBS+Te$sA`<~}CU zHLZRFt)RYjatyUbetDMNu${Bfa5HCiJ(&$REz-#Fmz(zJ#ImH=`Vg2H4T}v(lqNGTYny8H7s@zMK18r5zUgaO*`(>@dE1uis&F|EJ&9MhMMI z%b-Xd794D}pgnscCl&i{;aEO3DcW_!A3#mlA>d(+^k}UsvwM zwEDYB#S;%V6aYOY9o;3bW->WCAF8^rU@X0XUJ*v$nY*6NrrFj_`z?E(^J&DKxg#L= z&+9ERi;YH_Iug05jI4fR{Y{uTD^Mae$ZAtw=4!N4;)|@J?mnfC=PnHbO|g4-PiNhE zgn@ps%bh3VtrrDQA7>(oMoUL1%;x%nP5oN8{P*eDeCkNmiT?Vctzi!~C+@F1HjH-#uFP3=QD}06&9ABS9VZ%HLesO=f<2GZ1g!w8?ixeD8;Fl4c=U7XKdE&1CIi z0#N{AOqrOUF5SE{@t8vWkm8w8YJGj_Nb+kM@2)r2EAof$I@~#tBkc~`B}pXNUU$pq zgcbujnWXQt##+L<@VNx4)T~RNp3BEwL{>a{4ssOyUa=taGjC*b?V+ODk7vZwB0`7t z#;VF>iaGMe41V`iqsG?q(>g*x9Jy$6=U>-t4bQ6H&PG$Z8jU^gs_S^&gauA-f1SRl zlyl-9zsZOIw|-xM(v$_W#2S0C4TPqyI{v&yrps!xybG?Nn8 zWjFJ%v?Iw1`mx|A;#%{r9zbR#qzt{@*HMctRTo4Krlg{GLnw-jrNvs5mYrcjd?Gl( zM?^-zed?p=O6KWnDB{pzBKTP_ObUL5x*vj!LpL1U`@DWY zFwF!1K1ZT3-V?b%O~M1^wBP5SA<0vU{w$E-LKr(KVVKrNYBxoYnu_HlK!_!3CSlJ^ zO|Wp{I%FNwD!BW~zkAqjKygvEn#DIH`{3wzNuorOF;O%#c}f<-nDxW?H^ubB@uhGu z9^LZd4s@;3^;B;GT=+QC1`3wyEK&f>Ja+mKre7H3NBS?m96L<1jYPZ(Oq5JbtW+vX ze&@W^$6s4{kB0(_H6dqa)%A22S4{Uq$tVOpG)?lt00qb0HAC^a5{)TLS%&&26vTqE zH1u!fD_UeSt*lHD5Lsil+oDu0PHw|{R4mrwxA#x8y6-=O;zf~VR;}JlKNT*=l%8Pj z1QZRFw7T>@Gt*Z*%O@P;@1C9^6RQ)wB7x!UI`3RQ#3UJB6aFIAY}G8!HfLF?t~`sT zRT4IHluuQc1AO&SpoMV~z|_3!H30QcFEi~`QTicc`y}nBMoML#&DWe&3pOrm?}i@$ z5CRz>%14t%1E$Cy9JWx>EbNR#)KxX7_e_!NoFRP=s(5DXb8&IY<#y}1seyW@It0b= z8>l{Bdb8=vt&WnSMq}}rnXp6k{wjb3IobMiv0&*2a8I*|lcPebtyXxTV=0o3oG6@6 zz=NnrVcLJnt7tkHT2`cLw2C9l+vo6z&h3-s`hLdYvDC)xm9TiNCloT#P3HGIcfPyJ zwE0D>rMtGv6K}{*JEU;6YT6upCQh3mEh-G#q}8!Bol^H)!OauF=^5tIs!Ygv26;iH z@As0JXFWeG|1*uZtH%heC8|xNKYo5rFT8EtWfi-Im0UzUa8Ui6Rf?g1Vy)B--8-t? zU~(qmT)6%PEnn#j&n2R@k8=BtB-!{3#&qKVi7vhG33!7JsSDy z-P(skc;Z!zTF=7URFXd*%V+8g3ed_I85K#pS06BdPowc9>aYa~YY`I?$bfc10@1JG zJUt2P(T^Xkmktrs@ZvK%rh_91)#+Qv+-T*UKBX624v{_#Y{!$Wy;X|A>X>{_o&AUq zc6%7|=O}_@^HwZekcTA>tWZSGs(_f*4`C4$kP}NPUU3!+xm}z7(y@ByFA#uREJt{l z%sUH<3BYn6-w`+Lt+UIHv;WLvp{?&zXxbd3BZDLs!%9rocFF^J^r`gfzJarM03cSb zxX7Re{}~E^Dg}c^3EV{2k%jbB_ksPsXnX>GXJcK3TNT<=Wta)Xr<3!eX}rBiBx~Z$ z%7AZ4RSRY&;$Ep#)>bSI9i<(jAsUAIpHgtrsAFnkU5Es9X4MM^TR1{~@7P;xJVUId zNR4gKglT}JL(ZzGX{u}ff$g0uTXysw#Y#kXvA5`VYCDvhv#%YECGDvF8QIChCl zg1hAS-PG&)lJ7%*U?pvQw@v-eIEpL)8tdsfk;3MoX$_&l^qDwjVYc7KKl5H-HXkjnIn6k$yC??1iuf{8~BWT9-T%pXPqX6EKt ztwJ~?#<6BBEC>;$hL}rmNW!Y}xXTx31U4n-h>zG+RWx%hmHfRLNkFwuWy5X5$S+ar zLfDv8%wMjnCc-sIiXpvzmV;x~nUYRuMomjuM_GB@8o!-MacydrWv1}DoEYvF)m*Hk zT49!|C(k|d>{v=q4Rv$&>wt)<@!ws&^do0QV3KD-fMk?`4H-K$OBXC7VE+eLVpUdckPOm3d?w)ouY|27QVD$cY3D5Rg&AD@aOX zC4Bf2hq_XbyX=y2R7fJ7qFhw^=-?rF{7V{jwWlCf&r`92HYxK6Q+)74jWP_%SsC1* z++BIy72PNAw{v9Bo2)uKt_Ukzc{Hw9eXM(qcY}O;PvBwsZLFAo-=jes4In`rMm@h& zuDNVAW#q798_&lm@Zl!SL9xMK?9|jyuSM_vJ-2;?n0Az>oaCl10P}7q$F`!@8mx z$?)wE{U;Vgz~)j9=3IbEF^ABEGbS}5a12HWiD$%Q-nwcFbr~gXi6jVEh+nVo6fsWc zHqUP5bV;fo<{!^!q6dvP9GW58-h_*mPhm7B0$%^*?)2UNjr~b@n*`-*naamIPJ)OC z2`D7?(4<%*pOk^kOK9QCG;vPfx?Bm~YCLwj^C6ks#Yg3odk;5@lEb^T^JB&9O_93? zoY4k(+y+TI#=~K=rC|+tu%J-n4f1A9K8Oe|)v+p}EG_bWEPvq=QvD2kx^4<+>GUai9mE6HP9)n6KCj%T z#?spi-XPqaEL=V_(v25&Ph;yeQmX7~Y4;_iGxDuv#O71!<4JBCV(B&7-C>^#wGMxt ziRKxeAC0Oa^4ae}e<6E%)I$LP%WO7210DyOE>gCsoSMD_f~Hv;?@ioNIp|@mo6G z**-}=Z^#CRACc{?qYHI(44v=t){L&J!sptei$t4k!B-BUP?F1Ld83FXg*0zJ#t4hqr#7U8EfwKip3 zyPzW%tdu+7zxQ6W;C&fl))!S#J!f%-uW@eRFp{MdWK0gIQNlycqvd;Dr!*xE6d=|O;WPOpnmh=%pX?)4&J?P1brVAj+_ACV$<;qWYwsuxe=ExIT z-rc1K4srF$ryUVlm7ZfD!SxYmthFq!a3&xFT(0&ANxudL2LAk^`0~9;DL-b=2(c%P znn9<*Db#h0<+kQ7!*<~5@J0i>ts)Sa*y}01EAXx&jF{)6@b>L~q}Y0`eG3f#&&H=;iih>D#NuLb?X&Uh z7JFNEHhEXWaj3$5_4MGLAuEE5hh}ASZuX6gT(}M%t7yX>u1s^VhM*~34x;XLX?HBL z<-M#9ay^S$PY7k=`Nk%ypMmkez|ixn7$x(u!OdMd9KXA8eN$j_mTO?OYP;Nv!PI8Q zs(VUHJwxN}Q0a;x)7oi_(zZ(A{YuN7&)?j|MxEFOD+<5=w_|@MIWw!=;WM6H;~u-% zYxYwke6AuDyO6?fN?wg~QCoO(1sA9?>zd_5wi-^4_PMq@92_c0iz}*LNBU%R5jrVJ z3+CoC3yVi=>Ak(-v85kOD!5e7Y>JK{g)v&})(Ie}b1o~Xtx75w-b$v9uyB&ah;g|r zKU@3>fGM^Q;bhcR*2^7;RQrIV)fZ@{3~$nNc+}H6qzzdGuj6!EreB_!z|F)+C!3au zD_D;QyQb1o+lc5J7B`LSc)3M&8zl~_quG>Ilz0D{v6eB{;gazoD895OcRRi$>+fHK z*y0NKxS#;2PT8Do=B|rFUBZpxVSfE>0b#8kV7!sflPYNjA%fkp#!9At-yiT3zQ_XK2 z)3RU3j4k4XHM#b0nYSGT74R>+KZtjG^KVX``i1C(;aLN>`)B5b+$rU(X&5aK2FK-* z)fezxJ1$&gmjr}#2>YQVd~RL@ig}VBf9Zppt;4DZpCANqwW08GcyzAACvS1r*zvrh ze5W4t{OpSIOd1H0y)EQ(dqnIJtLJ9_?YY%Q%Zqt$9OVzur&g#Mpu~d!zZP}TIC8Fx;TwbSs+3`3x&{d-|*~Q0J07*RP2~T-{WvdmO z!7xEBMFafhx3%X}Mt<$_K!>>Z3a2EaUonda3k^kvgHxr(U`>udWtD6d0u6JQf>j@z z=ZHI7pV#zQE#k+mP=UJ+!s@>n;@Guy#vX?(_YwBi& zKi56J`rBxzMDjNY#%o!yw2Yl7KTc`s4Cmnt7yS=I!M{A1l9qO@f+id`r*M4tNA@XzD4?_gQ*UYN9B(}W2IV- z%zFyK0eu)>)9@!b0)^QwBA~+6h_OQ%dE$g6l8|Zm>)j^_qmGOdLUyj?^14w<*2j-- z2CP7c#8)HzFb{XSQTAcie;5qtsR-8ha8x_e;%c$Pf4>+ELT%yy-vMqWPJ@SbA&mq3 z6uzN5E4R%T4iu|_X|%V)z-Ag*>($-<;pu5~p|uOYUc=&Y>$#!D?iGxvW!H}%Iz_mc zM2A#RA%H&sdH?gjp*1Zy$=V$^#qJqZ^gZ^u+b{j%MQ?qJAJBx?MOT97g@k(DioXVm z6#_cHyf3;R$!*md;M^9qvz#2RjvkC>N8>qeda%TQ$;Bsr;9_92UupRmoBjWjI)?h9 z3X(Hmg_=xS9BtBjl7MeKk;aRl8Xka(*Ck6Mf$4rMhjP62lTqX97E3dD~bYU*XlIovLudgK9kjVx=ckOMoU_9mn$Rj zwOE7tU>|V38vL`AZ4ZoptBeGC4X0X}cqgP05t~M=3EMb9xTQ+HzL=y?rhSS(Kk$X= zzHRJO4YOM16AMn~P3%;3dbmM0J(apxuP(9ZV}Es)aI)wsNZk))1B87+ZrKUnCQVj8 zZNVVX6ifT!Zdu76ATgipkNWkt;AtrC%vSjmL_RM~=fnr|7mtb+ya<4QY(mR-MJcL= zr}rMPx%xOko7{4Er%`CM!e%3Znp_;eYAaG{M}uiS&o9JZd9Kp->|Xok{(WnlBOBqPJZ;NjubisR_{rW9}PLqQ<{q-vUdzU=Np|9FuD zt;(3sG=y8Lf}d%{Ka+n*Fy=}4CN`JbJ){yafr|~A17P(r_#dZsk8(@IJEQ^3^uw&V z{zX-*pzSr<=yTKdh49>0414D&9Xv59BG} zPUY4mU;W+4eqNYr9KLm2fe##`<9~WVwp3B)$Au9huXC%8v;8xB`cYxtfwv&?pT9oB z{E}-tr+9NG;*K=_nqZ*ugS-e;7+wG0-MJN>a{MnA;GjFErAY21vjiI_VcUo`(paPT zJ3^&Br7s3i$Fag*Do&sxO+GI!*FO&*^I6;G$XrHru1lx2KG_Dl6#U-|-lNO+rASY=9BC+^+m1D! zlb-h@AGw%^T&ao9NQlxPq6(o+ImM^Ysb494mvH0(6K==O%Wkyph18-skO{H&1pQJB zuQ<760iF?2%Edh@rZKyf?XF+y##S57+g-t_cdv)Dq4dr(Rz9r*EI!lYXQ6-7)-Er_ zZN1QL|F)>`D2T6`R<_wn>3Q|MYwU-j`-GZIvu;{6Y+}lhGWp>zXKL0Q^?}`67Bk~| zZvfnwb{#i)NC;7Ib9>v)4xGl{?z*e6VJ7OyZKn&8CLR8GM^mPJdUoSIOqzd>lapZH zSg|){{v`mx%DJ{~3KswR*``VTmp*tPb#{>xvHw!(PigT`P(y3HxvEY9)%82N2CF$k zC62R9a@6oi+9eUc!u{_NE-wxIR)KD_gmr;(?`RGl0dn+!3hg9J=+)lGVsXlVjwTjX zRWo7F@6O4qpFc|jMWvM;Z8go~W9Xt1p0{-)5||KKdqX*_EIf0wD+|^)%twFoR-T>w zWBxB0QxOpW>SxY`n3HNq+8#=gw{rrEl{StK`8x{JhNWE-RIkH6iTZs=ApMPZnOLBO z;&yt5;(R-o5YLtDhY1yRGf*LxO!|?D>7xp$OSZI>%B!W0AV*2?=vduGte7Ds(cLA$ zPFIW|d;^8Lm+zCIj5=#I50XmGE$y2d8B%P+tR(Pl{03{6&wqV8@ks+b6=SDeQB|2y zz;FE-6H-pMDA>?I5b{nwKQgkxJH0E5j3mY5v4~~-w}Rtfp$DNOS2^zY+M;E8laiF< zRVp3)7%tkw@w6|n^*>lNCAuT6u)fy z@-Nt=N7YVFhy&zT*NA|EmZPL(s>|b#c(MG#^Xu$y{g~ku5_70v{YnCs`evGOEk?J3 zugN-_x$rsaCRACDypv5x?o&du_>^!YAsNc)ZF*y*MUe@WWknz4$JWVM{2+~ zg$}F{jMBu5j8FPu%18ryD$r27+GG}){Wi0i`|+gPO%e}Mq=1D&PM#Br?)RFzm7b_h zo_$M~rEOtxn}bBft@oZ?>q<%9gS6w9?ERgwSY3QnVKav~C8_Kl0aCde5V0GsrstbG zi?V)$&9;YB4GZ0?k?$}I)oUT~g9aLx$(0B6i>{}2=6*OMQRC4!GF3!C5ijS9)jJdTPfizyEGeIQ9~(k@>h-)j zUaqV&y>8tU#bWK;Z!&oEz8jK8ZQZ?Z*6V6JSKkS8?WgPO^+)VKOD(9XT~&(4JI=p+2@y&J`ZH3FCCzn?4pk zg5i<0^QO34|DnIq7C+5pIGrtD@z$YvWOZHraq%@v&;bn+66KlVotay zBPZ@qZBnWYhz&!NpXZt2!W?XG&+64Xr+nd~Hwc|P`t5pLy(;=2p&%?F1e*Ls6Cy;j z6pN4E#bPFMx6mbARH45FF2qY!Tu$S|{&;e6BD#g`eMyli1qwtWM!p=%e%3cDbzqI( zY&r-=cK7fdX~6Tv^w~IDM9jZr$vB^Rmg=1_>_g<8Em)#iPF^G0xT=IR=)PiO4o@kU zz%QWgRl>o+k<=2b6=}oNV4|D(2V#@e#K^PR+Qa_x=anI5!eh?XUR9Z~fii+=2&c_n zH&nhMdl_aL@@DIFl?=4F&$nX$9V7qaCnuKbF4-H^f?uFK@&3oK;YHE4X0f0$ftmS1 z_!ukopUs3NPWkVV23xgVxFYzeI8zHwOJ^Yi%(R}3k6&ORND#N3=RzqtISLL{G^{7C zzrzDF-%f4lE$#YcqEyj0RvDvYO6LdR6vh=i_N%yW(XQ3hr$B|UhX<(S!7l2V5zGo5 z!E*y4$!tf8FvI;ny+z;kaTAPjBfsGWL6=F2!pbr;n&dQu33%W!@LPFo`ZP#N{!dzl zMyYbC&g6LR?(I>FZWgB&d$om9M-pt=*7)l3bbEUKY#glmE0|)m?QE{suRrT4hNk@; zi&}Atq3lVc1VP2(n+5{_Y^rpjnFlu8Pq|6ZBq0@+qMXw@!u_Uonp~{?QO^nqWQDK~ zrG&dCF7S&GX0Ur`mc_^{eXj_Sg019V!sb|K?pR%WZ%ezns0H&$bm%aG$L(VKNEcIa zxkS!MS?(-+uY{};0iDUbF3K)a{)b8rEIwDLMaAs!cK$e@?$$KxmU-JbB z-MdcIakT3yZz~MqQiBnYs?PR$&(F0L;`JW3lV!-jgKU;H+Tz{IZ#gtWY z1X=JOS@G5t(z#e1D}u+{PW*fo)Btzsx3+J#ZiSXmmwKaNf9<|VS(HqgfsC<%X|^3;Nb&6jK%_}7iHCL@EStU;2a^WLt!P-#?0N9ED%Z_3 zs__)2WsE1dD<9yK1(pz^W691UkP9e-*>^$58mI69tAF{w`3{UEQpM)oc`EK1(O9y^ zI6)f@;DQ4GDM@jHKogc>1QY5T$SQ*2D#R{K@M?blO>~9PL=`ba!Pw0zM>$&vi7N!n zE)4s#TMPV-W+Q|sE%6vkf)p}%y>C1T#?_RVq!JkG{IAX!s#duR9uj>ukH?Nz9YY)m@?6f(K_4}2E+d~U*coq-@@u(ORM1jW_S17lcTtN{ zLs8{b!TQF9*FM1Q?^!Dms|Y~gSVd%aZ|px3&!7NSuziOo)QfdgTSx+*SWXZuT(}=V z792!#xK17WC?*&2ypw(IoENsQ%@ZH&2`xQD&hg0s#ELhN>n$~_eVFv=+A_D zAn=1J!7D^>fb{wQK@+(W69U`xtB-8zhF~H};5W5M03VqKLY~a3UM%+O#!Zm>^DspW zlDjoDvgGi1PHiwShZ79_qiDP>qUPpC{My@^u22!bq~Sfe_*OoXdGvl)==gIi&^I-! z*ZV~RS|y46g31WLm%mUKJ~3c{@%y09ZmR}(z$Ys!#{`bk4+p#Y#ACDr*-2Yql$LAJ zLu_QZf%Z$t;;m6LF9(A_{FTSea^rrjL*)J$0LXXVzh@9*w=IJ(j{rW%bEkdt3{O;$v$nn8#UDOB%qf(p&5YNEXVXiH4)(8SoE>h37p~Lt7mpP;Hook5{HE`Nat(~dQM^Hc}4?2#6(vpXmpLxytd3!&OE?6fb#CmL zGHlqxB&poi$;hJs$^S@ETOP$Re-U3}`hV#nw?kI6_XBb)y$ECl6i~6yPM0_etZn3n`^Rx`<3b_lJD&h{ zWjHfVHXQ87-`4v^mP$YOGGBB7R(=UUdB6L^l5LVy&z{f?WSx+IulO#JK%W^C>hJF* z1s4QAnNM^RV(w{K)lbvE$li)Yq5p&|C>}kIZVv`}76zgc^75#?n%19%bt!5t6vbBp z1Qbc_`Jk0gh?P#kYOXITi0lq}f_$R-(u17cIq{5*P3@Bm8WMn}BIhDP2AY_+NGTUw8^ zIwe8C`O734lXI1#U~1`4ceoDs<(G0q1L|JhZ%c#m!;a7*yr7m_haeW$_Cx(Y%2z2U zQ@8hHX@ZugBwh;#*l)y@b2nq;bhQ_LwH9w|!*Zjujqj_gA3ShjLwm@2$NUG6}u}zl-1eAovSq8mNl?8+S8i_l3pF zX6@*r!(2dO_$-eypvUshFEl@~K0N}E_hBz)ooDdAa>=IFA~G-QnWpo%rpi1A2QL;0wTS7NA+eWrqR%W?5P ze;Svy|Gw5)G_Zc39JfHyn3?e2Xzihoh@;5U)0M&*YlqWpd1JZ%CsCMEY&qu)o1tya z!JhyxhO8uh`Vdn7hHCX?YS+#JWEK(-Hn$lJ=j?=2tab~3cG8Q@D8k)c^w&Ee@q=;8 z2&8oha1TGYP(TVX7C4-rc<_)X^VzdL%st~ezNj%TX5zNzX)S8Voa;~eqfIdCuJ@>S zE!zQXom#5oy+V3(qGTDBSE#Xtd>+1t)xP!ZZBrV`wbNS*^m%r}QsE_C;3*@CQfq7j zIzK$bHu6)e5)kDvbTH=+Kat|3@B=AGD&)lu#GHE zT!kaIK5SJoJp%jV-$idrVb0Xz{EWAXJVyqcE)?VSDHndh(JyU(#`^Qn-Zzw zI4B^A*Iz>#>!HL^p*RU5<&?i-;Yyk^!*IW^ANj0CO$3W$G*T|Asgwr}(EYLZ5OTKq zegE+6y}^F>OQk>9fQ3WTkoEnWf|32DtcIjKL~j$8x!@wtXoy^htGlb4TU{glW;lzx z0-ZE)dl1|8gWcm~S({g4JKI}|q~huf#u^t@D80x(@0AJ0b8cnyR|e*U2cK6%j-=Od zbASes-vw;y+{p0}D(}Jf{?`%5n|belhT=9xrRa-M1{I(Jv4c(-zBiNY2;B!4xQa@_ z^<<@4W0FfA@7M3Iuat5AZiOzc*BiQJE3f%d<>-F*_`$nV=}f|W)of)$h79@}IMH}L z`Bjb(XECw)JeW(*!j}{I@9&uKi|lQ7v>D8(oGz3JSrv&k%4l3sH0Blf%!SqBvCS+0 z(F{V)nV&P_4Q0I`=X;1tfz7piaNv2s=1Y#TAI=TQbe@0y@O6dSZ=3##QgUpmNpcYt zLCM!*{J^gAn$v_rYM$Y0X3iVUcYJ6_M)r^yfC7%cx3{4D*a;flFqp@K9Y(*lqN$LC z&1dm}I*6ENn;lr$(2p*^HEKU-m}rEUTd|0Qd98uW`Fl~XK&ovpmQ=*lZO_XW%dxgi zqvqnDm-;?7uXs;>Mz*1_5&o9RZP;7whxgsHy*wi-RX#!j4g4yp(YmvZMz@776D^Ed-EO#-Rtg(2m@|^rXp8 zSEPDw2)$vlw_e5;pC2RLA1T1tF8X(CzJh1OyKFg=b$slt`Y?Bb3$(9VP+6Zm91Rhd zCi69$lD~X{7Wnsy_5zm|Rwwst(B+cS-p)znfUG0?ku{6v=S-zKj`QvcoMsL>+TJt- z?|wm!ZevX+TWzMa+P@Q=EFQ=0;eM2&V0py?-TfHOH9V5T!W@ti(K7wUqR*L`xmtc| zf#<_vk8(>(a*-sM(+txFtgcc+Zu2>uHhcDx5I7Bk!Z?UfSu=TeDH2?t-~SLjp$L#Xt?cv=QoV?qpceG5$7I1K zi0;>D8(Ky5T-wL4=JdFptK@lq4rr{^V&vE>Os;Dsr2^nViC(%J+WZ|Dfoxl=E3rNL zir3=Q)$>Pb&oXX+-+e&M*BUXUWr3qP!(7K^N1aF_WSjs=a+Nm>?+(~si)4?zR|V2) z+7zSH3a=wknNzuy@tJAra(jIZII2bMW5+}`(78*8xn0JwSv-2l(o#>h?A<5mH5r+Z zu$DSkM{@<^Sl?1eD!-iWcat(~-c0zj zmn@nxMOQ<7SSJ{7LUHdOeETK{LOVlLoMlo;NMuGd_zM&L+^lzmf8`^h`0s*=?SdsC zVTads(2dSMvkZ6$+Oy}+ISh!I%*-Spx$}SQr;O0rrsZ84X7_M6=*96Xm48p0ZXnfF zx8yWsX1}SB?JQV4xNC!ZF32Pt;*cYG&#Lac_lG+Kj}OSvPXTNu2Vrr{2Z^kyMT-gq zW-9M413S6^Ha-=Wl_*Jm`-g^>!a(vE-u8A!=6B&%rU+k2;Pspn{QK7`OtgbGX7;~?sK9i3c)u|5D7;{wyaseXTgo%~?{l!pjY2M_5 z-c>65%NvWQwX__D$nLM&>=ZDkgrn!0!(!;a_Y7aO`#rC((NW-y+UOBQc|``Y`PfLq zU1G@X>FQ|zD{5gCtQ-RS1Nt13lUixG9w@?{?%rjytq2CjQgzJIKP*_(z}UMu4S+r< znl@>Y;)|2>a|~2e)E6%&bd~v}EFKFLtVD!fj1OP+_?arJRSHl4^J(q5jIqo0om~7p@NVkQLZt}cmXT| zVNbOOEw}WxPD|3{0+|zE$QZi78W8vdvy<`Rh&+ zibEqAP51h)f3kXvufBuY_OTwer(U`iv;FiJ;N*85_@!Ijio=PY!S_?ul2kFTA#sDe zVDTBj^weVsV$&3EP)}VAAjg^o+0$66Zs?jL3!&mBdQ#I3$^-kzei&R|ejuGx^jOts zgkt)!t8v=nQbuERB~PS^QFhz$4be5b>n`I9u5(f0SoiU)pgge!ebjxGIey?c-}-H| zb+mkkZXqL+mD1?TIXS64E&^+Po3+pB6k|>ygnG&B|AQ4AE0sMhN<$gWk|f>6hez(9 zFziZa85SXR9SbGw`bwcOvmiQg0LS5xN8c| zZ=s878d}+>mzHn3wqH_n{7wp7PR<#+xfS{`WKf}W1iubzwET4uO2}+9UgvMcNQSaT zf}KNK^pceIqx@HCJZi}BIjRjc$jXcp{gR-#09e3$lznEosd?}Ie6m=UZW>BU?Sk3z zQ0zT=IPG&eZg^Y90Nr`iIV+rLC~Z z-(GrV2G>q>YnSX14cHJoWKgd44`ZX~bg_bbsv>6_1yNgEBVe}RMNbzu6I)~C{l102 zLN_5Ek|^!7e^zeKX7+2*zyo|;#_`$K;M*JuP+N+f*SrSr&fP0`Cf!sD~iBwH|Lu(fV;Rf zNwtqPD6CFOO$kx?5T_`b)aH+A4lrgvvaev!=}_SnkA{xKroUG#s|@<^@9lkHN5i%I zkz*tfV+f8%!$-Dn!(h%H?lf6cY^pM=WhWPX^^h+=qV*f?WPXjC`u{#VmwBaNh6s}0 zT`fkEve(JnR|hC6H@;zB8p+&pTTwv51?mBfX@zeEz{B<3cYFK~5CogkcrNrOHq>Px zr7&WKDQzwcL43-%VvqmNGyWwYFJ)_58+jRR9kF2!MRGFJPq8CDbed6P%-}ViODh1q z1zFvrAs`y|>XcM7$~Z+KG<^m~C@>uaIC2P5&y@ZnY*1}Hh2u8~IPV8W;N2N1Y`r36 zb2(zr7vjONl>4p3#iuW+d@Tpa=#$y;Z?*5i)hfT@=2hii*?oHjjAV4|cKxf9=COd$ z7s+rqHY$N7ICj;^X?pcY$xQ;+HhjmwH~&Oea2g!T#ebm9rd`?mku|2IZHe%LHRwiasp`^8Ty1z0;+;DJQJkkS2zJaoD= zOyu50KffwC93CAV-O|z`881l%Y+Rmw<*pJGe|foKaEMUxbCAu%#fEAKwoq@hrv!EfISo~L$DcsY{tsi5mSfEz@>aG(;O4qELfphQLX{f;g<)(xiS{LB&kLav6+AV}m~TT^eb88wJbRQt zkx=09Gf(`-F!KGt4^DX)`rxkS^U91VRno>sP$=J>`RRc=1jHw6p}?v+glOZ@SViAh zs;@`Q(E;2}$+V=~@GaA}5Ph>@|CeyI|V`%YAK2WX== zs~FacDYQJP$Yf!+BlqXWCvErmz@yHLuc4RB#r0vKL%rIB*UgfWPcroIsM0el zHAeu(dTfx+raRFz=1+@Eeene6=?H#Q+O*+}HuHjSERhc2;`0ksIx;CkR~K7~O~qsr zra9*PXNgGExzs%Qcw75E{(d2Y073Y=x?kM;3z#Tn0E6vO9PU30TsNai6 zHs64))|ye_)CHEXe0F*I-M0-X({hotj0aCBU&_HmZEZe)Uaaeb;LXJO=S6+$#ZTRZr{)qhBIuQc>mXB!g2NIBLZ}*H&S{f~;BH(vHWf1>$PgHD@H>(J z+uZ@$1VS6Ut@AbTiDjNsK#G^^MsY{(m$7wUllDITS`V*=biZnwm2lOXVgYlsT|E2_ z`kCTex9;mr{F$e4e^|>03A$R~`oSk2;)AsK0((Jd!Agmd1(kdw%aK^woYf71^C$j{ ziHE0VAk4KRB*OG}W-XN|o0k=aDI=HrGSg_qc5E%{KuVqF=fxe`8OpnXW(N&T`*ks* z8HBb&uyvK-=*(WT!~8V3vD@^|Mg1-(3i?z~H-DY$%-F%wv`MXH5SFIeS?X7J>yzBg zdvJmUe;vF2b(KWPHgNIZ@kr${IFdAnJGGcXsP#Brj67FSX{0y# zO)JSasltu_(-k(|u!0KW+##~a4Lp~qJWeMh?DX^AG_lu+WNYS(-Y@>H>ra~|>ZQcVIlpMM z`mVEHnMauCaOcBU$_hVdvAMuBr3nn(bpUk%0%2!Lch4rNDJs(VB7Z(G0b8bFV zRXdGdQaorH7u5Vst?Z4SdHF(KLGS1rMWE=L;q>C4ifh?Zc0ZG%O*sgstzpv^%mzjV z1)Co!1?F!bWF_!Z_=&c%kU(VZ0SB`RK@qALrAx3VUQ%^c!2_T86}a_vNBH68{sp_zM2BUhJ+ zPUAuE)-y#V{HNyGG^6?%IKz15uGN3-8o$LNoeg@mPKIeJ~cDy~?m> z8;Qp%wFXuT7Ywf}RJpk|b)~C|sgoB6_`l}!bM*L_SBN5baV{OtqLz}@riNO9Tctti zsvioHpSQ9rXzpz#E8E#gq|R{h=n7*Jczie)R*Yd$25v$b8%f3ba%Rs<0u;k+{6U#h zW0f#uZ}~4&okQw1S(GAl%V%3=>z7hbr86G~%M~PrgETmq{iDb?t`x6dZH>p(%dbH+ zlp(P9xc6Um>TYuX2AG;Z-#~WR8(_8kz(wg*r6nIunp(#TJ4u#{seCY%ShY=IHu>{c zfpr!cq{mzF%!+i)EuLPofX}Jwqrt^2Fk6!RfDN6V8 z>ID-b*;Y|ihFZCP*ZRu6;Kfz*vndgzG9byUYjw6IH z0rr=_<~kJXN~sthKYPJ3d$Amrav&oTYqy}!Sv4)`_;nJE4WGk$`C-ajljv)`@y0Kr ztq9B}#3byo!SwjfD3Yc5kH@im-=};Du|UD^s=d%$Z&I=~?J+FOTHjQ5H}g}-W4;H0 z2<+KFC06PEFE3yII-llV(SZ(wF@S%hUGAOTg*%hL+Nw?>jKyxNyqJp~FI@Xt>_D!^ zNnunF`^Vvqh#5Htps#annyR@y>+Jg6h98J0SAEB14%8RM+2JfcXvQO(&5d@Om2!fy zpIm-Oy%0jJ-u^eTQ%sne|DiJ=PXv$WqT4-i*(EbKW%8Que30LAMD1k2THu})LJwkcEz$4vM?>uQd)uVgBZ&rJE% zI2*g0%ncX28)KzCjCEoMVQHL<*4K7|Nd-x{N;qwRaq)*EvdaUYU}>UszI`7`j5Ws8 ziRft;GW3!B%*tb3R$iU;3my$b5&Oyw&OLZSPnBUmP{vFFc&L$2`9s`T#aTu5ir4jx ze$>miaXUEP*h0j6^+{63{Bf-WdkI`Lbq>yV+=ar~N-fl|Drd!tW;!8vp+R3mEEo96 zhPk^rV^MX*l=4h1Uu?m!s?YF5`c^}PW(zmJrTg79J5vQfuOc>gydmcc4mbb_)?T}J+Og!yxgmF9hL<8Ok%qpinl%t zKaa+e`&5&&JdI1#BA}>`yzFt+C|64u(@j*3dh98!VSxb6J!8iS1Z z6~62F^i}G*SyV6q3De=G1IE%n5Nahte~>@cI%r@I*){)+{ps?TqXb>f^JL7l1njqf z_+jmp{o#17K5t4ouuiR!p1Fb`HOlgSGdls)_&MW}6y{9TQk^&)A=K@6Px!(42al)c z0&dz>L1`7s6Jya|eJMFx&gOaYi$st`cTk=C+UNY*(k-*nO;J@`gSyhOM~AJu8W>XI z#qOSNRyjA!KKWwcX8iO=qxjGG0#6SQ#Ana^{Cul<(uBwfkmkNhO-eO$VvyYYhAf%ihU9~mV`#MZl@)LUSM1xa!*@d4yug5L;**f9 zO`u>}eD(ej(Qt4%C{*HUotfoemgOzi#dBNp!N8U4k!nAjnY{-6jQR}`7s&_6w~AZ` z?pcguf~Q(O@oF8eL4+-d^aUHKTaEhb0|1RF_{#*9&FF@BerhW&SVVtbUCqvwF?x(+ z@zmz<1#tT0c@jWd=KtfPIrCj`rTa=nS;(o>gb_GZIl}YFf z7KZXG0NN3e9+Ws0y_fR@GSEjmN2ia}pj+E=%dm33Z)59hybJo(DRt#H8|6)AK!$<5 zw)7dc@{x~O0vS+2@++F6ti%2LX>fsWd7xe(1#~exc5};Zc2}?&R=_8Yl8JN5Umt6n zPjQ-lfn?yc3zfL<+@4w%P8Q#$sCpTPHORBa%@|rN&TQm1R!JZ&E=~?EE@|re6hkE( z>{U+!lX=EyfvS6y)c1qL=HVUKkwfnZwjznrARjz&_9^!1l27I7>xHuqRJ6m#ZS`~% zQS!L`{?i}gIE~<`Q1J!|(Xn}Xh{d{<=}qUXFp*ZPsB-{kd>WrTS-sB~&8s9yO7<_E zW#6K$nu@gm<3*<6i(%JFlc|Nl$Oxo1;Vi&yXtGe(s{iztWu7z2TYY3G8N0bFNVTR_ z+|2Y0AnyP_Xbx}ui~Eq38J8rOi(E#w#X=p&uFVI$l-j&b;#Ir~D9`I~$*jz3hjm{A zzau@we%WhOSD)equ+nG*RC)9DBJcg>-P3aYW8j@wf_Q=2Y^;l}4ba=cmX4v*4%|;y znlCsFESHxP`7HC98aJ%ub#y24F|Je_J&*`@{#!a|2KNKtKL1k(Ndk zKBm9C=o|h2tN$!buDU_W8SP=zPi0%P<&SeZ_Y%PtrUCxjbd&qv8BMg?dBxR!Tf=9@ zHl}F+R0p_>K1MngmjF|7eRYM16jdffkO&^1OOZ2EbGt>cfcB0X@JeQqbhqH*IaCEp znp4Cnb`$1y>hR&k0yyxxdIVhj@1m@B_k$&+;4xFgJN`yTFIbmIBsknJJU0;csxdKOexI}6nkG$o#hQ6;Yy+V_$&z${h%rg%Nm;SPZ3@`nS( zU#e6t)eLZ*na{B(>mlYQ0$`dk;y=?Fo-gsNhvyQ$5i?VNS#m3UwYK$9bL>p*zw4Jq z?S#;LVU*lJdc5M*tUemL6RJSqHI+^kPU@=eZIwl8*NF~QM05!QdZFIt@x^l*=H_m` zu_)VZCg7Y)38vbt>9N}B0_7x!H`k}rhEW(s<~_V+H8k%7;(327IkI&;(H862Lj8k> zVTuY=%v8+%iJpH+dtk4Gmj3P1<@zN6eXRXBRbBn^W!l9FZb<~NN#N)oByhf#S9zW) zMYD2iUN2pP^Q2EtPuo8Lbf1LV*&jFc&stjE;cnd*Q6{uZz!{n!wAMCKI{@aVq>Jqn zeL)Hz?vJOIO?Ti1+*8{7eXev0`BQd?zA4X*k;wevCpn>>8J=~UT8%HSb3$Rd9!(4* zh#SQPk(t{8SVwn^s39Gx)UI(syxHgW`CXqk zvuL}Pi-WaOz!Y~P(5y(L)xz}5yZ9r$*xAHS!!!;1 z0A~{FM3Iy*s$qEb!=LEH^_zGl$D3Hr<@+POZ_ma=K8)P7wyv-aM)@RG+8sUHytdR} z(Xi^%Y&7VT^Gx^Le|+9Bb);Fn)?wMI#F13zK6ukL0)uIkf-?j!_nh0~Oh z3VG-I;#j-`tK;MXJPFz*MtG>&0T9ylJ$7_{=GRG z$h%l?ByjCUvqy}JvSrJ+h%Iz>AACWCwKYkVKL1IM(*t9UK zv^SjP9?kbZ{h*s!7Bs)UxwIZR0h$YkCG%7#$ZKr}IEx7xP^|c1E3HfLVJv;YW`?)- z6R#T3^Np2?MoxtnFzEuXqpp;-Zy?<=x5h8Qc?_w)0`F3b%_pvdL}ZUFNkgd%f>&qg zJEw@kpD*w(k4pAc`IF;4~>Jq-`d9_H=)`NUbGn}@~%z_ z^~DLAUOwy|O5S|(=(UIah3{UG;m61PD2Hng>UaY(eqHM{y1(LmT`Ru?zw6mXtel`9 z7)XX*a;QF2`VW-q55ZGbx$>F@*{ywJQt4-)+|pJtPvv4H5U9p}e|b)r8uE!HXLEf^ z#u$D*M@UyP>|i z#4amNON}04`_b;;&^ZFRY|H9l(RESx;|P!P*kaRRtnvcF=c;7#eQB_ghZwHJAy4aT z3{;FY_fUGX*T`F=-@YKCeo^@Lv)NU-*%V4i!(Dd1LYR8aYG3)JR|Tgsf5A3j?KYW) zg5~&OgP{aE;u5lUAwaq@CfXB!?7#{=wUbD-mKFSiaCZ@@Sf~t)mt351H4Yn*Be7py zp8OYQysO3d75_ZrdV6K;_9BlY-1Xi~GfHVv>aP?6NIHI-h!56$nDh&~Qg5zkNGijl zc;;S8%ne*-;Bj(N=*ro0-hJjpB25Q7OGg%5SYJE7^%&q^RJ31OEwPDGdA#V*+NRU?BQy8yU&NQhp2xzt z!V)l_$EF7IQud|ScZ(Mr41P*ImFFpg-}^^JK!oge{nPv@YqtN|+^$`?hvrm%k(+1I8T6f3NfF1VqE~fIOB*YranUZ}bb%>7Hwa1mkq*bz2N+eV9 zm8W4f+9Gekr>U%6X_fSb;{#?H^J*H$m75dcd$}~yPpoB!kIvVO$e>@SAtwvfj|BLv zRGrH{eXNN)lH3{(3Zhrv*%<)zw|cQRi-dagx3wkRTl)@qckW#`vYO%Z zdlHrzMs1!etU3FLQBn}6>gIt!i|~pGev;5SEMWs;Zv+bsMe`AQG3VD2YsEal4ymoZ6l| zw5%?yYmOh?jj#StYQFDq9;W1PpqYc_vsv@i+!Z%}ab9$`1RYWCkRa!Zj_|>+;wnif_daN^w~m5dnQRQ| zo7m-8&+SG8P(6;>+u`>#;2lbMy7iE!xC`k*R5V<)F9sqQ{x*j2$a%i09}L~6F4t?-o<0l8_cmq z6F_v?t*Y7Tj^ZeJ=Dm=&Yy$aJI_17wB|EeCIuC7P`}fK_8YR-V*MGOP#VVaOvzKa! z1uVYx+2bEJw-5fBQfZx6dt)5-O8+kT+cy;3z)n5YkNP^Y7SNHf>r*t^QJJsXIwhddm-XD6 z?{hlE3O7HpQA}7c7p>eC&*}9J_9_jiOL|nTPc@LKTU?RoFaqIjI1XCPxgDZUq8s_J zt9m2f6!^mv{Te49`UcQgD^T~1N*qe042!ughVppB`!K9XagSKHtm$uEA*LHUbF#4t zOk_xa#SGzpRwS&I|F?<+62PEg-)X-Rnzt6stwz8l#6=pPPYQ)SJq}7PO2E^R*m4)< zSD}Eh_4|gcunX~XJ{c|z2=w3JdG${P9rR9GrCH47S00fiu0om!O*Vv-f#CHz3iXk!VAEFY#z%;TqRS%Hi)3b(xED?c zpxMX+?}eZ`9b|y*QKpgrTv~@=d2W*7eVUA$(;o&V|?cWk=ae&QEseSM_LUrltE!e zgKw{|!avtHAK^an?oYaS=8Eisl}75hUE#iw5>IqL(vzlsAPtP~BT>vNwRX>%(79w- z8KTN=W>hvlxRmeGB+)!O{Us&o>U<#GTHpxu6`^uhY(qIxis#HCXB+!Bcfta!;5sdU zVIVV;JUv|pJwS*mR$K8;=+n;h8l9mF3cVE_58ON;1vkyq>_lzJjNpX&pxmR z#z^4L!q{Hat0WW&)2G<{6^)u3htscdoo)95Xl%2x0~}ZNtoF|Ha9rbo3!?(e9bU8f zi*K2dh@eF^550~+?YYe%CEVAXM)Q}n?dXW0nq=^T*P_#>*6H^Xfgi%_y~clmZc7_T zZS_z4^j)Vo0RQ%XS-z$izd)?Mw?|HiRfCN`xPm9@iOnNTsYj&G+9R#~&(lTJ-2Zo86U?_7ExMcs{$^^i@zb2 zhHkj3J3{M$x@?~m{hWabd0kxFP?1*x4-Gc=`d_6V35TNRd5HY`EpMsq;%J@2QLnw{ zf!2vlo*2i2#f`+-23@=T_hONU#qkKef54@rwq~2Fx>P-w2eMiHDgCk}G(Q&GOyYv2 zb7PXpzR#A4b1uhHvzF^PdtL1kj}5}ZRf`)TM;zP1^xh_SBbryMd^1LX7yetYbN|q@ zhp?96mF-!&Nuqk8c0!6to%IYHa~a!QY+kRUOSq)@CG>E=_UJ;3tGF~}9WX&n>KLyW z*XQz_Z@<&D5XyP+d0bWH+?!0d|56OHX!_3Wd_$+IK#0lbgT!Zbb4AI;Nh?Lm>K1oX zs{fhP)ltIwjB02}WB;x<#*9tC^X|$NmpU?o^*HnTT4mNfper^0+{)FnLsf2t)$<^+ z9CwRB+p$bzkH>2`;*rNF`iO&<@ckA~q+j zz2H}1xMS7kp(Ek($q@*Y;~QmFzZIR4%nKvbmW|$H74S40J4i7eN#i|+&(v!$zJ2sh6B2D7y6egQo1rBUU65giLR-$JG7rPVmp9@OO9U8#o{_-NT-5a~mFGrH~UEdM*aB;Ky1U25SNUX%P!+&A3t(m}DWR!*>5!t);D^{@*mB*k2)d`PP9V#x4kfWWS+Cv-GZe%7om zy%~3wYi=r6+@otbj8R_Db-yNv0{Rg^r>R$^#qLgrH%ILv%HtG*Ime5Yu#6dZ9r4&S zU*7l12WqD`*KjP@`m&E%(8Rw;pd*asl{)>IE#>RGV>h=x>Ux!XmRdBXpSO#krA z5z=(e2XL!1aMAWZJxh*{&#?GywySn3j#o5OO#gy_Fo5qx0yVapu)n+6zQ|>X40ZwU zKBJPh>V>YCwOTme~korb(7u>l6;?mc6?64y}v$oQGlp$}uC->eZM_M_jhY zu%s~_Z)a)p@YEH*%>SJ5+*;)4Q2H9Y2)Rkah?U~B;xRl9JQ&PvA=ZS?t^L@sNzz}j zCpi7?__a8%^<39e^;CO*EjF5Nyf!sB*-coN6S2)hY?zSJav|=U(@SAgM_)fRXN!)p ztV+hi^!K@O*pi2k)am>4t)`_$^as%wVJ7!SKoy&2r!9sIl3p!Q@a`7o;?6`e+l{R9@6c z*4taIT~8&y`$-6Vd;2?>h8+R)`{G2!HjvItsKZcyBC9w-N7#4Jdkf%MI( z{r+Z}!{qa$GO*sw5Lsw<`SCZq?H}xHXGj)l+K#!tCU{wsrg=R~!gHG)Le2y?d` z#x-?26B-B1)5wnVT_;hBSv?pgbtYOX&A?f>BgFz_%eBsFZUBDyXJm&kfCk79_5`UHEx>m)rqQPTX>S z|2UQSd@kCfmu_zId;24^Y8MLOV#AV6rdTs)JZ7ac%&Is@^SoC-G8 z2r|MK>NZnUa#TE=wi(>%%_&iTfykznrf8d*8gJP#GFw00+o=K*;A!a@2wHsST_vRT z!tL5yfh5-t9fsmeZM>&b#<$juN8gI#T0Zwd3Yu)2^wGSZ;R%agAj7js-8oxc%j10=f#Ik`0&6#?rGG6tK{#DS| zANF{>ZIQ${*=l;JduX6fO}VD_K`7yu0&5Coo}w=++M*A7I3l)?CPtn{VWjolDzi+B zmsSxUZ0 zbz+upPmbAiOIZBIdEFM*w(tE-f%$nO(G-&_{GawiaGqgEr^CkeV?Aj=@9FRO*M zhy2>9;n7KGXg^``vYj@}#%g$H1{m8D*5_o?u00(EZ!XKe`8z%WznaAQGc;iJ!v1jV zaBcl?uuJgGTbAp9%|HmCH*daSo9GU&zs|VEYUklbb;R0EwI8*g`KqKrl=+#4G7c@g z=Hjc`8P;K+^^e|~5qnL^+gG)9Z=AJ=jz(317Wl*Hf7u|WJ61=Pzj3_5lZ-bv@2RUV z52-7Jj_E0zC=oQK9nK~RxQvp`Os}NfJ>h#VkiERbN?i9%r0&?1SfV zB&FsjVg*Ct*T%J98;r659s+ZidwbES5~k*LH>_L3LlSEB{(8z327^6&_6+s_bL2?_ zWHh8z)|#AtF1L$$^X{ik2)JYe$tukARe;7zpn-6=ue5>}ZqT6#si^e>W_DdERZqGi zpKcl`fV5LH>GX+qE>Rq<6cRosXG7$G8)N#O;bm%X@Mp8e~fdVlkzu1;H8gwXfa+I!Gbh zsxhh_%cHYJ3XNX_o_C4{{e6i6sJHL9w&Q;qh44;2%7^>{Ndgu!h3Se&^ckQ_o-swQ zTzx}`)9jlL`u}8>j+y`dR?uTL!ksN`pl{$i{2czkJAar1*va#QR#ORxh_v2Tb0GSU zPWwRaH|Hj3ckiF~zVDTh>bM0b5;29VH8u)N84?#fJnv=?~j)NO-rrrZJFF?*(-ha9cSTW6{V9P_22u=jpY(CL02eLzkyHe`5M8C7XuX5#EdUPNeDzRWRL1M z&nGV56$RWIHC0$%s!NHNmJ#aITMf;ywJ_Dz{R7E4+qjubXEF+KX)CkCzsCR>QBxW- z3iVb2eGF4cg4?s-d&K$=UdAbaqNO6)Bq==&*|Ee=al4*~ zUmP+5R6vQfyJ@9SyAk+bXM2gZJIzy%Scau|+y5OE1VF#kJoYi*V|?flGf1a@fp$_M z2HkuOvco`+U8i_Aa`f(h&j`+QSV?5?n7#l#95xz{aH^oV-!!x9Cq4NeVIfcClcFi$ zA*9FoLf&hDs2?u>@yRz=?Z3IO;z_nUeX2mAsi}5T*LWmXoqUm-WV+H?>vXm@hc;Ya z@T^|T2nq$NY-iZtTYFz*K%wiMvJ(%98fGd1xWR)Z-tVw!>zB_vb|;X{xTQj(YBZ!v z2zG-F%IDa=GtO`K)a;*B@7G=K@z{OD1#x_`dU+i$w}b2a;IX-6o}uPAG4Ou~d+V^M zqPFdO5J@SKkS^&GkZz>Akp?O09y*j3Dd`rG7*e`Ry1Tn!=p1^!?H%9y9M65f$2)&A zf6Qj>z1OPN|icq#)wwo}gauHF5f?0cpN1!~X4S z;de#Bdt(TG)C@-~>+T))C@OeUnETsmYA%IY8hLDb1!~Wm#tr4+s*NHXwK zchXPI1Y98bw$~YG1zk=BK*x{MsT!DRzdcf`RU?wj|dkHuv3$l17Z)l{Nu_B+_2dd^|>h7+ck`ntZ6zJ&vLiFe0*5zTHX(v z_5Gf)t)hS)vluM?3OVL`2O9{q7)R!Gk270rpf;G*+_v4JaPo$hE~9v)ywLjaC~pu_ zc5p;?ND6EQ0$gaNfu-1nBw39PSatNk0QJi;?$0ZjQjf3l>kOS(u#9W)LhgPu+UAvl zjRcC7pA@~l_6(XI8|#~G$t-t@$#(9ocghb>VDp1gwWNU%T$=D0u87hj}CWzN0_^L_`6k>fNo=2PD!<{E$*SFiZ~rUb}o2+we^x z5Ia$ts4Ah~^GHM!3|bRl0>)eddU<89;--fk_FgAs-dvMGtE?2O%f5IerT%^Mb_Fd3 zcH=L>z39ySAQVg&`$r`=AB#lONg9o;#Z7fZg`}I)H0<5y*Eb_5n<_ENhS}%SKD;&8 zzZJGcgN&{$uRmCA!F{GZu&G*OTggH)8?+bf5b+*Yx+%^>D zqB@3<5@*;2ydJnKj;9Mo&-y;JDL+|(c~!Q#!&;xtQ;r+;>94eFc_MaUrAEfQTQf{v z*ECih{L;PLV}h6q?d@XlK#-`YC~zv0JcuMdG=Dm-2A{tOT@Vxoi4CpZt!93OL`tK$ z`>hWC&l*J_)oTIqLHj}(p4}pd9kcIE0eZ@EJu#4%VE6-DKrX}Lz&xn&1a>70go0raAZShL#EG(EVS-OfMIMo%jRN2V;U=3(gzNu@M!iM zjM8AO_}R>oS(?7|5zYR+joY`q^#o$Sa?1Mk$+K#VK#nB!%j)P(St?MTe@5bxb6T6*g zjy30NV&S^{o(2nZK^GGCZV`fXN&@OWJLlLW^A_2Lf{w!#P5VXEmgR>+JA-JM1`dv? zt)FI(+!9A9oy%t}E~hw5SA+snEaF^!BTLIy)ZwB%5wV@X+eCsGGGzR z1_^{Y%)sOOY4qyHEA!IE`cXT(_1@}J z{(}I71Dn$FLBwn>+3E}3vB6b73afjs*ib{|b~--F<}~T{vP5WrK)$}Jb4x5gwezXX z>+!1ov~u-HB-FQpvS^Rpw=IP7yC<&)A3q*xi*DkRR%}Oh-%0J(W_=G1-DA&g zjgu$7B%2wT+z<;zvAPy6f`fO(s-Rj&L3@1GrAEW9*aqMF9mbYwru1XQ##>}KOrG-H zI8`O6=$|a}-w#u+TFp)YdeXdRmsO935eh|I|IG9E@j9YkjH*6%lvq=c^y+ZiF8#`Om>nqO%36!PUDEqIjNesDgcfi|@+Ra@HoCw=oV8 zfeGfg6428q92WEN)VYY&oAl%)M_;_+-&GQIA44j9cE3|WUO?b*qk#gla5bupx!KuE z)#&x`o0zMe?`ok}$%uGpOuo2~6u%2Dz2Jr1t5B##LKSTn=-@nNcj7>QxD(OydzI|F z?9_|yXqlfJRqIb#%kwWIJtU=$?#p88ZSTGy?*B|wH=Ia}Pi52#;N%jzZ9?*i$0U+z z(*-w8C&-Zvec|DtaXItw*j};FKj^M*sj|wzN^7=Wyf*gNTPb%svSNm7>RU3=;Vp@R zFY`5;z%|UiC%SFZquxkIe|AX)h};jm&RPZq%pHs>c-4HL9#B)wLgcV3NrMjVQUV&P zF>PjRQc+Hpy~plPTFA!7B0!+Q2LBB@YrM1LaPd+hX4srni1T=i!NK%3Y9UEUWJ{u+ zcN8HgcAGh4SVPPd*aOHg=43dJYntt99{vPMwLvCWyTqtDscwzM4X!k)@{&rt(^uBc zkRD=kd9 zRZvl$*{o2@W@eQkhXporXV{~nN+C7a>>TF5)&7()d<(nN+&g}(UZa1_d6Bum+4F5Z z{^qR<{Adl~r0y&hbnEbX8Hz!JqvNi^cIE`GLiK-#WRx4~q#hYMhtvYHWEkJ%2R%Y=za>&XzB_(CI!0 znebPPr}|^s2;h|IwFvMy*O4bY4Vr$-gR-<;Z1;#Z`yW{X;6{ti1fDrg4B0V92z2@v@T3_02K4ayJD(r-zD{ zk#y}DhokIV!v@AtYejMSK9X5c{c6CH+nS3y!Y1GQYrppo!uUUGKB6+iVtUX@zU@WZx^J2;lr~vQ zHx|d2upO00FH4_-0u%&F+=9T^r%gJ{VwhW9Wt|?pL}$#6LA;nicp;$qM-T~8r|XVP z-?O-ZUy8XCZwqgl@ZHrv^mieJwD59bh*9{MM0z!~#S-}4N9g(4O)kiSa4z-2qcyb3 zjUQ(F#T2LYdLWp7&k!>*>?6b_9z4J3ONxR=}BYv9JwJOOAV4=zt`18ZvM1ygd z2>tJb>jq~X$oPEEgUBX}8pi6@uF&CN322t!d z<)l2e85b+ok?=lT1dyAKc0eP8falPJQaZ1LUYkkm#O3~$@2DxE&BRdTA4UDosk(bw(ndNENHn9Od70oN}{Y6%Iz0+9BH`Z<)vi7 zQ{VB=$mn8h^d8Q1huC~aa^mAeqsv~T?&ptT2bX*!g+vxx%zT`hsZxVGxVy3&%fGF0 zB3O;hT_miQ)35V&REONFU2BV8;J+h-4yBrjw)H;V^v}|xXA6o-5QGQClxrCMS*Ev4 zJXJ}2+L30t`>rhpdwWMdTL}BT{yq$YM8JIR^z%`%aCB?Dtq`@DV&^4rvQtfpC==&G zDub3s>SzaJUy&{Bni*LcX}!tDu$9G;NDOkeu^7Iy2|1&9Eu)n8=2JCPBLdCaZ#*hN za&T!h202*fUHEG2v0G8nXOW9hidv(hnHv3mbrYV?k2}LJV&L8zX(S;S7+&*8SP1Sx zTcqJg6*9RS&p}C)(2;i3#lI4xeHOk@5-cc()J^gIj^w`9aAX2eqxWRNxBiFjhwv6v2S|xI-N&AB zIBVm?Ruwy)zevmbhlz45JYG5*_Okn9qdhCL0Z9nmRDoX#rvoghYG1$v+U3`lvG%8t zo6Ye@%7+Ah`}@!7xE8<5ySHCP7X+XCo;~7}u0YX^#A%pZ-4f1_OO?$>(^px@s6aoC z%WKLk>bmK$(sNbFd6g7jFmMGNU?;ecQgvr)C^QxV$i&!;DB{O?^XXM#p<`Ra3-`e`5;Bf9 zu~;qJC9|2I9#Gl#`tJxJoclW(Lcc67%N@;K+DM+{8dxYF(F&&L*Drk~&g9|xld06|0?Qo_ zU+Cni!s|)lt|0ox!o|iRG`ngxOb$C(kW z=Q(Pf_gI-d@B1x;f{l%xr@p_xZ((IcA1BK{8a^xZghqGM8V&PK1Aa`UrTxED# z9i?30h{n6_JpLsp$;1Egr(Z<3mXGfdZ$Zm+*Y*CU%uwU+{ia82%$3vy-Wwt^O6Jej zeY~dOMe3NAC@eOkK7?Y9rwnLr_%fRP zit;1B4pxR%gV64Tq++qU>-BXv?b|}lFPSX~+g96}`7dYz#anXFFDQ%5H6upwF8_dY z!X|^403bF&eI(m)W{N|uKE^e9&@HknbZgGYGy{o}m=ry$$&IWEW*5H7LK|!XuT{@A z+LnsKbVVAnfHZ%{tN_Y|&(buw5v8StU)r@xzZ@zqUyj3H7-Uu~GPkfD{vGocjGlb> zJHxYP*X|6Y=yTFh*97%;N_;9!DV76`NDjlD(ia?|dYM6hEXR!*gJQLLv^cdcy$apqK;eVcfG#7Z9K zN`^tE+)>^S!3@^JZ^U zcwt{^`>((c5ypg>Sd|-~T$jNm`S)T1J z2sH#Erwe9NehvyRRhj%f+qqCm+`Uv^!&q&ZYDEjBoHGZy=Vx3&PWl~JBAneA%9?1Dj?7+ zq?bISjngJ$m!GdnNM~@F6_wc5Xtx$1bJV}J_|A)}dyCqkSkFOxsY_bO0`42{2U`Hm zRf{I0-eAX*i!cr)Y44ek3fc@iWpL3qFEK{*uH_MrOPC8d_G?K0>_{(xSIyZE&__!H zw=AI_X;oxe1uFvH(9gC(PVDFgE#g%>sbG8xGNbGG{Mjw}Q3WZ|hqUS!v2u}BFQkZb zE-McJca{-jz8vITl5^1?Py%t7+F3B*<)oUsi@_;+Mu4B)Sd!A`cduSK{mg3juoQzx z;CCVk5{|CX;kX}4)>aWxL~~l@{#u>DjW#E#A994E9+X$v@*ai_;Qc)*({CKe7AW_E zM1aO=(<^!xzO(d%N~M|Rl`(KzP0Cl4r;7`?GGUg8B6gOkHlcU!_m{4NlE58+XX8kG zAFRF?-2bdj9e3K}1^Jsqt(7S6_QucpjnNhKC0gD|4b<`+0DHyanyiQ_mCRxf6j_@Yrf7A{W4V zwFt~uY82s`As_?il&_Hh?k~dW`I}0^6vB~j^)b}QEbiDGFpXwy@(&0x!Fkk!Hrg>!$SBjGH}Y@tlS6j_BvUQf9({oXR&Y^~B&J0wUnvvv0a1XJR^2in_h z{OwzIrL%H93iyX7l4?WM7Y`Tk);2nQNYz)~s;sg3-jJ!3kUYjvW0gt@Izuqs}IWAx{^KMoIrK9Y5O00lX zFHpWxo4WvXDe7j*fYtr9Xj0^-2eT*D9B!5!S$8cT*ydSyXeKtRD<{&7`jX-fK5FLfJzcK*2_ zS;P0J$~VA!^_&U(P#(5^o}X6?HuOzVAw_(D=gYTVs!hIR%uE6blw98^jdj&rKLkFS zcZl(_q|Lj0)A`RJojn5BDeV zA~g(AA~(0)_NsMcq&W8vXn_K!1+`b4i&pjd-9jw~%HxSIKp%TfxI+EB=ss_@3-(oN%UG3U)g79jQ2`cN;A@@P|hHZ#Y@% zY~xZgxfZ?|d}@mG=xOBHI&DwI6Y1Y3QAGrz1%o&6%nz=V$6c4TX87k~N;!KZ0@Xh5 zybyu2xunuXl^dnK9huMg1cis`Ef>}>o(f6ktR2ISgYc0X4d9T`M*cw%j0lRrJ_ zIP|9VLZ+ZBeK$fwh(MI2`b{N^y4g}@zN3%eGu5J%V&zEgO@Yusw7{F2 z>)ZZCHVR+WA9Wrl6a2pOB;3A*PIgBVWxZGLMQoppAc$?Ck9Rf2kk%a2jy%No(B)RM z;S-qA2nBq292IBM!*>bpwky1P?Mwxd7?R(NR*4=>Z(MYJsLLhc$3bX!3K%^;bR;-Q z*)3{5_;Mj;;rjJe-MPbO5UOb&^4X%qwIz(fF_p~Pse?juS4zq>!kO;N*2>P zD?HlwTn0UH&73$MXnT6i&siJuIerlCi+KhLZ4J&^%skhJQn# z>R@|gznb8Y{4`d({0(QaR(NhW9QsUnv*b3v(O7%}i>E!jHz~zyN^fnP91pZa3Nj?HvMO=e zS9p5hR|!dUm$XE)My?)Oya3IV3*5-Lq+PGHyjLn1S>PPh_qn=9%O07-Yu@f`94+i9 z+aq&uW`%Ouwlx$z*z^`9q1&JbdYu$_b^Kc@lC8*5^fD#604a zUtnJAR9Ho=~qu<%xreo2C)=j#SI_%sl<=qVd0 z!0T1j6recOK%bxH(D`^H)5`tq%??a#WA>Ml5+TVm-0~gPFH`&bHk;cYn!sEeL4}<# z8|*vEq0uB9lF=EO(6C>me4dLpS36#VKr5cE3hzfsegue0&_cc|`dPZ@9v%Vtf=Klw zpt$)%A8ofT3+lR83p<`66{?L?AGrWKh_|8_o~~_s?r42zGsDN>qDd}O1R%C&=|(VT z9=DNxgGc?)OQziB*_S2wpn(RP{An8tR*^JOfvMH3b2g>0OGvi&j;37Xpt0(XUU*k1 z@26?v%z5LeL||edGE*u#L$Qs2&@i)S%ENQQWC~VIWFnWbAY%A`R_`}1lZJT8$nNVs zh=K@fEm@D>M7Jz=8yPZ&l-1d!NiNBKT}-$EfN`pVmD%XMTiqJET%nNcX3+P;!+`5dSA(qp z-&5V$T$Gm!F1cheyj*zcXb0R4ONPp`i4>9K%L>BsLE@{+TveMS$NaDNkG)DLZ1nhV zqq)pid7p!MTT@Gnnuw?bxnwqu)h1+_U115k7Um>oox3dh4gVMV*OW0t8WC2Y0l7YH zb8!l^G7bS&1q2Q*m;Hb9M6O3&bPM?xpzT#tW|_A-=OYLpwE_aY4lW}ZkS!9!Nl`?0 zW@+CUPrlp6-o_uo9m3bfle>OlLDRMs_V?>0^|XVb!NWL5c6{Ombf!D^KL}-5_bxCN zCK&O;Uv2VbZPMb(1Lgsa&>Wx&EIK9pUiNs>Wy7mKyKUG8IAW>J*1p=$x^N3X0v7#) z6ysv5JJREexgafgQ`Wp#j`#Le9i|4Olydz0R9A?Ov_h9xE*x2%9ih*}4uisgKPeTI zg5utltUDlrMzS#Rw*YJOo$r_cc~x<5TIs2qJ<01p%L* zXY)+HK=R=66Y#!Wxh}R%BO6k8_J6yzq9=NsYtf`%?l)MH+Q=7F=(^5mxWu?=5gcPi2K_6WKCP<$sPtpg^m6^3`j@dMZhEVRCrfD&MBd4q zr}K_%XMF9GIj)!A$!g4{e8boaxNGR+x*^qy)(Af`1nnMCcjQ<2O`zF#C9^Nv^$-S{ zY)0toLx0qHQ@y+U{k0++mx1^l3i}G z>18!Dq^PKHjdgj>cW)EbRP$mWGD_~%fRdw8TWAob$H4%ry?94fZkzQBbO*zRZIe#! za^u`7NVe1zk)nO?-!2vs&Q0c=pCOwb_96yjEG%8kf@JHS@(iOo0*yKU zfRo!tViwWSoGU-3BM4xF@^bai_2tBIeQhaW)dra{n5CS9SS%=X73Qp7apO0$P%D;@9D7P1N()fvSo!5@!?kmh- zxw!Bu<{dS#2ajNc{%G?&bt(UuA$YC05P8trM0hu!l5go4QJKfRtitRuclVO%vSfB# z4`J$Q+n~lUlGmspZ1#aPll`kyKmE*+;-|6P`10G?gn`!1!3Kim7S>3x9J1eeXt(Kj zqz?FdKm!&7qXTT0PXcu{`zo0}GG!Pp7T`wzVsgpNXe)-PECzCT!z=WrC zf^(L5-OO_Kdh$5+oy(OyS@v57Hx5wX4`xmSQXcg-XG3_Ms6dU=`sq4Ww7OJFIGgEl zK!V8oeOn66P8U_|t0P{I9EV$vT$&w1)JmHupCP?VWiqtDQz45B-jhQUx$xB+ho)f= zMq#E*=}aeK)WN)9Gi09(d7M{YM2H`8c#m0eXC$uJ|OEH4jeDS+B*=VgplK0IAr`s=%N zP*MImd6;*+QNLk6aXOg&D7#d3I!e+f$j%#aUmiLo5+tCOvlHj-AXjq%Qhc=%&6S zydu+&zaryOo&NU^)(KgQT9Y)jUPKrB*dRaem3H*r zE1s?EJ(K;%c>7j9FRkB>A7W3Sy`}8*%FLd^>@gQmh`6 z>gLO~2tKU6)o+F^-kSCrg1?3rOy&7O&udn>B7E--rgJN>F|f$}?!p2V3(_!wSWCt5 zmSD)e zCCcaQv#%r=dY!91aq$1SgZu}b8nDRV#|No@9RMp^kXmJ|!S_u9FtlDuXrcatOyMgq z4%Er2y$*N&CfZ8`=fwni-sBVky)pr0Z3VD7x+Hs;2PeRw{*rMHF)7p*)PHnAE{d&@ zd%`p!-BIC>UPA@+RxeHmqF^XET8!hf$8W5P-Kk}_9h5cmuIyHFqMuQG0VI96ubT>! zGPhQBe`H{?$DNY)68V5kfUfU_HmSW3#dQAzx2Xn_Gf0CTbWN+kPx3_DpOacdpxNze zU$H_{8A>kT?W-fow6iK$aRO67BVw{V$gx}D{%Q96!Et(=b2vAB7MCk3K3g?}^H+%d z;jLn%;@?~;#%~;IcpC0WR}kedkmWY>=ZSx%L3il@0{`!L|LTa-AH4g0Km7`ZUAkmZ zcr1?at`7UbI|A(EX!D9U$@#V}s*U{m&dx;GdY>jK(pt-AWTmzKIdY=>@2cd=hZ52b z7K*>X{}12aKFo9?tD0xUONyh4iQX3vh~rrA zh~s4K?4|IZ*V^ElTcthwYc4L{h|s3}Jz;M{`Kq0O&*;yEkd@t8?`z;$*&eXXwQ3yF zC;W&}L;PHBh&OycAj@xWv9W<33G`8?&5Y!FH>+^2H^waY+9)|RWV)_+EBEVP=8xM1 zW$pYU7*bPcszO@iHUEkdj0N7tM+bgRba0M;dch<>A~4|_tZoiCInnx4xlAD@D^&k+ zvBn@u8M<1#`r|Ho$FzXw_>k89u@zIXUsC(1hM;vE1>3HvNS(iieC&5xlst+okJA$IQYVJu;)U?VNF{y&H z-p{jl7>M2U#q>r|@KXPjh8}API^ZYRgjhAqj!G|vRTr6lmDW8@v?o!PYxI9-`p_lk z$Su2CcgIMNMhT`I1uiLbpsH1XK$&A71Y3;pHIq&=_A zVvE>c6+nTqeRGPV7dunVvd5zE_Ynm^WCvynp8ZF?08Mit`p%xAfQC-CW{M7&2ahek z{M@In$>0O|v?UqpFMV+4R@P{fvsif2HMMa;V5gc@?k4zL`X^2&PgomC+k+C+-oI7G zIR<$}p?7@6iBFm_w>ikw_t$knyKnfHvE!W=TR>LR^)s$ig|ES1VElbm$_wf(< zqEeZ62r1)pZaC};-udtg%69+RvfVX{Y+k@a$!nkDuqxj(CYfr_xp9{KRaSPL3Uesn zw%@cL)Rdb&G4Fd^`ZemQmniY?1B7f%i8$%Ptul6OLZOY`;gi|7NvSwrGAn_x6x~xF zJzDaSQE#)K75{vEt(l&jRRnf=v(Qy+WhQ)|k8VMi$0>I974qvB4}PHaMU{K4!@0U) z`&0ydErs0KC!&RN1@4BZLV1;XUua+SP&8uG49o31aa5{e7N~~1E=Sz`b)I=K(#XiX zJ`tyz2{W$-1D&PeEzL~BZOQ~<@y(Bs_kXa-mKyowY1JX|0i7$Ig7-Ri%$1Vb-p`no zE%o<>jmiJcrj|$m@x&re=DA*L9#hA*{I?`7Wh#Y`tK9Aud^O_goQkYpKH~@*cQEkK z9erM^y=KlMBr8GZ=tFP4Byse^VZO~?Fj=$RhxY*9zx9%Ji6LCqYIa25_0XZQD14q- zFy_`pf}Uc1J%{#%HbuF5~O;^Cno>;w(0-U}iwWg`H`Rug^o>vNZhBT8{1Xg6=kUKnD%mKbnL)fTQb0o8ccZRM%;embt%PcS9 z;^+c@O^Bl6vVhInS08molrP#e0cPDRa!Q_tNU-Nrng~g*7nkmaM@El}w?uFkPn}g0 z9iN4z?T#z!Bf)y0*l&Z|^*C#@}S`mA4E^XM&IU-J$+)ZO`Npb%2iouqI){(yhG zx?gO>H!|V@FA$E9Xk!EMIAZu^MVmfAXz*MQL7;`ykudg1w>$1!o#Vf?0OZ;OT)7qy zr&FT)um2D#GB`nDD1Uq#E-#Anhf>~@EuH$?qx~3rYz@Zn+Q0%#@Rx0Cw!7QNI?xuhKAsLzeLofTaC0X9q* zSxHmPbyRyQH(_9EDK+9=1@VunMXRHeqHGUcjG}9(pW{ylEz6_)k~A{hcRmKINAGDE zyaKF5GtC1rs1Z6X-bT3461&%*I1btsXqNPOOQa&ThZn(60h6JO(%CBJv_!FH3imyS z;SRGVhHW9oU4pG*hTUjaOdo7C=Q;$aYSoG0a%Ndpy=EWiKSh2Kn2uvb+ycd&(?|ic0e^D*|@qLYE15;xI z+x?w&UW2j(1QH zKTY(uuwzD-5UP{~Pa^{b#wKRvMH&fiL=6LU7(b1f{6sueD4p`Nd1{W<}HXYy?u z)h1FB1yT0z87iPJ4OVCS-PuILCm%A0s4ri4&jnFL2DFqHG+a^nsOHC&1&qLorWA7a ziYd~Gb2l)_(G8L(C;N6rVj*Od-;I;$d~5vZ#lo*r{Z?K`eO96X|KJr7(QVS10a0ki zkkF*^$DU0LRldQi|B%&v2fR<@O8Us>JW9QA-^;BEt@p!Ci2A~0gThT8?G-2e?I(Ex zNK&bufeM_o`qKO>Ent70@+Zr#Yin_vBr9r3&4h>PFsxxdC%)^AEZIf!msgP_&)l^K z&2lpQ_;oyV{O;m66oP+V_TG*-l;MGD^ zeh`?>T$Fp_P9$(;5xU5t3}%uf_4Um>$2}I|sCE9(N5DdVn@oa=Bf&qQ7Ona*V|Uf2 zN!0oDEN+*!$12eXJAHdqrSJE}g=>!rVEw9E*Vtg^C{$-ZdJ>*#wH&tDVI3n?LEFCl zo)Y;2dgHA+R9iz&ZY_y}uJK9(y)>-kzX;P}lMUB!RC#4bK7YXRdB>y-0*x&%R(?u0 zAES4?(epYg$x!a&yK9ruN%Ot#?iwxd2sgf){*3qX)79zmz#ePyPx3-ZkXm}86Fuaz zxsC^uy0Lv_K63O1w(mgN4~SoX>yazW!155*Ut(_5l?!GTS^OA%xCkpvE^L62qF_rhj*ilj}QI+#h7PC#swy35|Pcp6!PkHo7+&wd3CjpqSVJ`1F?QO=&F zZO8aIRo5LBPty#k$RiEZX{|9ya@b!`6W-Y(HW$g+Od7qe;KYC7?6BBlI(ze!O;6}F zErIOIo!2CoSGxMNH}xl^Gfa?A9{-BEF}MMa5ZYxQ=|6L+$1_(cKi+ljMxkVn*YGCi zaS78NFX0{8qgTvJ4NJIs!1fsQJ%K-M*$1wilP@f+eFnC{F{y@&aO)~k%)^;MSg*T- z*`H-bp?9bbZ!|h#;hU{jKeA8;&LJHug2G}VDC*;Ekz6&n>rA{BM6 zw2r4sg22)Lo@;NC#|ZPm+ISMbr&Mg_e%|#yG@QtNBRL~Ayw_UM(@3$3`Lq2zTKS}H zJm6L(cW?%9{2IOMNn!Yk9Aqk?xW&Hjq2LHj>hKsJY-w)(^5x6Y^0Gy3EiQlwvV<4m zu1zjiHU-gSEI<+voOVw6uITp)*_x>0P(!onUB-X z?ID0~$UVK3DEw-Q8fZigowM6}BMP73nmMhxS0pvfZu2s)Q$phzAlGPv+RqaKZrzx_ zUDdmRbZIFKB&LeEQy~>bBngIYQ6QcD#o6~w&BunVg-p#{M@?md|T2{K*P!^{I^{ma}=2C#l$aBSLr1Ct@>=(N7ZfLmHOm!41--oZ1KA21T zx_RzHCsXrws|${Ea(g|lazjfNd#@>)yhZitozLyZa&+qGjCe-RhM2-9^ZS2sx42oo z%JH^>=vt?&w`cSgpj%J!i<}@QtpH)qd)*(0rU)60%USU*^LW*eqp83<({KT})Ubs?`wG~v=kk{l`NNZ%v_-7`N`71NWJV;QQ} znQXg}Qu!j>O5|uuYV<~k?E@#j`<1v-QC9I{w|xg^`K({~@dtIWS;ebZ;-(d5ejb1V z6vY*>3VJcgGK{7t{VeL*BnOZL(}l8>B=K0I!lJen30tW_mJPewD2@ex^YHLGv{Q zR@&S+q&me|k790H-X6ETcwt(OaD8 zT%fWerR4+qbzM^HUaKIjJ^Lf$zocxOknX~411ln1?!|bEoCgB2!0zTh-N&kND_)FW zAY_JJ-8_ytu4YcE3ywAp+uof+l+We;DvYL?y$7U_L2pIqa6w{|v~OvA-5)7{0x&nxuGjej)~(NpDTkFxzZk z!lGne4dREiXp8_Cbl8k4g~!`FB((zZa<$2TY1*jm~pJ;m9+K(>EmTX ziIphyFOK&SFc#tqs-JBiOvk^Dq_*9;z8w2IW?!b|AQ_i4|7`89xjnS0NkwyP`DfE0 zamHk9OQhaYq_%Ic;0=QXG^I-Cvb@H@q?VzI0Tm-9=k3uXn8X`W(=1 z%G>mx-}QgU(*xrqT7M51d7V2!IKC8vBSHIC*{>rQrI+`lF@yG*nA)E+ih!mJ-3E6Y zVE(3{72&_%OzT8bv7$ErmWQX?13^dR9?6hL%XB4k%NB2wikYscBkvJ&{R%(r9xCJKw z<==%)?Y$oFWaPdx5_ftZ*NuOQ<{2Dpy|j;%Khc z{vcNSXdwh_M=0VIutRo`s*wF$Y^b@?Yo{;#6suIw?Lg2zpy&gg6h)Pb*e+4Q5Pj0L zamMN+=440rR4L734Lart4#7&9Qabsn0XHb{)Q#P6Bih+-)!4lyHc{tE9R<+yAAF*a z?3J^1|3n_^DoD5JB4;!FIO!AJ3sE0&T&=z>xMv!?(+p8vI#yu>foQu*vYEE+h0?B% z7kg%#v$Ua;%^K+fSzuDtRQ)3pb`JIeoa{HKIq0T-Hd;9@@SR613{*5QmGymobJJy5 z?U7}$&@zjqB-_(**%E+<#WHAG`H2xe-bKgUXCF83E{d={2b{as+^*IeLB{!ht+PIV zz8hvD-Y&_^Hxnkv}Q@0N8er%+)INZ5rd+V(qENr-Q-v5G4?3 zgu3@asP|%fNJ{Du5sHk+>}%ez&iJ@Fr3kSSM$(Q4irq`}9>`B7+Pj6!ExQ`!=a8l0 zh@$GOVZkZ21V75Bi{P&8Uhv}WWonrYKHoL>Bg>iXM9)pU&IN(^;7ERP_KZe&YMg=& zom+;0&}QU&+K6pN(JD_-=-6^v(5{Et0ArwjELk{O6N|c7Ap?MKv&{u(!Fiy(4Zvt( z;-#bQTif{QW+L@yIJu4WpZ{UfE0WCp*^+d`^}~bdih1_~apr7d0%NhLpvTFt=u(#2 z%Qm^MHXM8N`HB|ZVe9t##Yy)0Z?tp8n%gOS3}J05P0|8ttdj=8()@#OJ7=qsYuV>hj1 zInPs{rgIy-e!qSD*Rvky(8K%C_G8*nkN+v+sj@R;-qcME`6m~doP1qrhYtF0+NAV< zkq35?0%BZn8Q=RR$3v*?Q>~|V9KfrYB=jzi=xwellx%4b#Kvr?1eCQ}T3Zr#!SixY zWS9n>$e2RF$8+REYSE{$JYz0wd0_EN*2eqw73qxrI-9Ll>(ZkN<`}01)2bN|iO5sels;}En z-v6JDlMmV#EfSvkA;rbE{hk3{&Z=cim3Na;5s%s|nHoAH5sdmWm`x@F@Bd}cYt5LM z%92dO9n=uFgl@6St`7BCtyu~<&f@{n_!rr(fSec;^?yivlI%19PuJG!m|iK${}Ki< zUY7p&`v$#Q?%eY+$X)47YXsE$+IWNwTzAS2EjYUqDmcjPDJef|zG;wM2CLiHzzTq5 z)A_l1!MVu+#Vg0Y23I$Dc8T0c)|DZvs22cx1une#s4+h+=hm3pWIJ0txO8!QB(wT|)2x z!GcTUO>l?c4uKHdgF6HW?hxGFf;5fu74P2XyXW4s?-+OFPX;}@tGcTCdDfh3t~o1c zXJ?HJV9RaeV|_ezI>x5O0mBAr{d0jI>&r#YZcpyzZDsD5wWvq@4n`jLb9i%0jAAN?(m-V!S+tRdM|QyT7wpR6>{_ZRPI)?d z++Sde95$^Z<2=Ppv9DF20S6-e`4(l}W9rQlD9Mj`kGq0m$vZsc60MTX(yPs=k{{)% zn?Y1!FGpvk;lq!iRyV3XwNjTjU`EC8A;zxaXa#S3vW|R7%-N85wy>QHj+0+B!IRgq z@D1$z5idPi5}4$4J(sU|-@j~wV;=K=pXd2~*MNyoXZvs^TlkudRBWkBy`+d>f^PT$ zdlQLMSpKNxqw98FD;oF3V8iR-NmfJQlKxDCz+nd0rSth^R?SaHa8`Lcm!5|3!;}iX z`aS}J-5D}3Kw)71*sP`$3W3rbh-W2Eb)~rT#IB&(ClxoNn(Gk-d{nAShc0Kcys4!_ z_cw-MX7rL$5#J*njSCw%)u|GGTldrV)1yADjM+N~APNaaI?{f5T43(xmCm>1aXKRr z7ja{MGyRXTM4DlSZDOZjG)Bqtq~JLo<=(QP z#`e?QKE>-^_-*nrbB+HBoDzZ$dVEt@1W_jCC;Yd1j zhR2Y>XZu-p1Ey*gr{9}mvoI{ZGU_F;K0Vg!68$=ZbRm& zV{34xG)u_63NUARNJ%VL-Tt3I!)gtsNw?nax~F(d7SBfbwPBKR&wgg`;cCjKk zl=VDl%oH|yiokg3@RGs7j;7lKVqgd48-a4nrKW1Hmf^ZZBD$I?T zJJkRvA)#IK^|2t%W2RJ=Hj$Y`$Rrea{T8{v>Vj1x6Ig)>v8{bw-%ggjyNy)T*NQgM47 z#eJ{HSn&Ov1^A%xRe#m@_OxJZT)w4wzlPpb>;6_W_`;)NFkah@uKVhmZ2m`i}M}( z3|qOlGmGbF;zoU^7top$y6d#F4W^5_o zbVNWI_3X=?wM7nVX!g?D{uCaDr0!UGNx_+*>D!kt`KuD;8~PA7v&slNqZ$EK5Dqc< zs2~;PPz0^w%HhMe>f<1ldSNoYmL8iro1Y()l!I}E7X8$mY;->TXa>IN_}@m^dpdcW z8aF}r({qtu0>2PLLJ*KcLuI9;rI8R2Z0d;L;f&d2Mi^qFe5-v0_~SPPU!}%X zC}s?c;u<8RLg4ryjgsZt9ghw1I{l?zp_GOW>LkMqt+!k7%w1a8$?XHY0$#H>@yN)6 z-tIFl-rvkM$&$1*iSc+&cK6n5D&Yfut|Sq#&&xHNCf>K_uN316L7k6z5%!@X)~ts*(!*`$tTA3PSszSIc7$ig&c@vM#-{mi!35N5SZBl zjOYeaDI*d!GJ(ZWh(Czo_5FrwhOwTv`9=QJNnPrOouR_za0a_7#_Sd8;@=%%iqA1O z+j)d&^*y$$V+D~X9s=B{{5!svr?3tT$X zx7|K}p@i^O(8*&i0(RbBbmV#y{3ccW^rkc+uLyXD3wnps^5ytzu6bncBHnh^aRTkxeV}hv~PplQXO*AkM zgVdpg@v&KU{hYw1FE7HBBTqS6ou6ce1L=~g&~bxeEY+NIb5$S=h_o z55wlQyCHD1eLBKZMv(dVLw0?5&hA?p@rdB**m5U$LevTxW|B1^uG@lKnqrwZWv_q9M*|1+M+e)-p^dg&bY8c>^5`RG^T_s>jyjZRBqlXD|Aqv1cB~h zcy7KyU$(`q2b;<7<5g)DF;Gwu(| zfKEa)ge4cvG5eqc8GLBQszLIjZ3KMH_6p z+tXF?*8A*3?)z`7Pi=GUyzCG2>{Iv0yxw9DCQ#XwWnbSA;SeaF^=A!f<%e(glEuYm zITcSuwY9ZnWs^mw34QcUneJ|O#`u<}O0;Y&AW(#EXl2H!#`ClBwYv$NY4g<|1V{q` z>Sp)nS?{ZQ6vJP8{eV3$?ss?)M|n=iz{{5zVlH0k8X8(OFHQxW{}$2N-ZFB(I3VD* zST}##2%xEdx5%V0fEnq`^^ztgIoV;cb=S(;Q|99@;7^QXv{l-hli4ql%1O6wH@z1H zXY}IVJeuWUXjv~h7tJG5&gk0PX%#`_nk`awMHW9}S*q(LH3I=CY>b%~GP<$9kbi{` z2k!|MB%&!f!iuwNziVY4ypi8=asB7QVaR1O^OFlMty7SYn@lqs_QQ^ut3y>W3*P>G z_s&n*BJ{B4hs=Q|82Xqeqp4KoUi2eSgUeK@JBSnY;6+bQDW9+7K=ogLzC)^TDP>|| zU}4_1RQ^*>2Mgq#4>rB@nDLYU-TKBh1Vtb4Rc>`yiy1g5&15;wG7ODid5HFc!U3k6 zxsIc@ZSlaFKw;nPv7m#wxHEh1rNRTe_U}jfq#KKE>98{6H#*uZ%xbcxu%exA9sz_3*!aiYA3Ov=>5}3(U4hwuBLm`Za6};g zA-WsTE~|>Djv+gX2(!qq2OVem0FQdUTi{n#+m!{VNn;jgGSt%ygEYVz%za)7_pniQ z?HQ5Ho%Tcfr_dUknUa1AaAhUoUt+4u7jHi-F5IoYA1<`PZs!kO{xO3&bGkPg%Dj4Y zh-^G2Qtk-L7}2lc;+`qk{T0(nUBReXJN0TbGFGbr?5>)XT2TQ!b~J>$2I}~F$;KtW zeQRuDcfXbKIh%z-tlnEWJ3CuhrFNO%NLP!SAcEHFZ_k-^{}k^zg8Qj#pX9zLHNW!+RO(nXC4 zGSxsp0{k>dAaz1tR0LPHjtCISVToH=SBz(vL8tJ}nJMZe5Y0uw46fIru$`4+kZH^i zJ^>PAXG>xuv1iP%01364jD4mMyxXFotc|{%N;qyjImJ;S9$fB^dN}_EH+S$NDM)1e zhyo9{OzeWzMkRyOB{7_lO@HxB((?{o>f#cA6Kr)2lwnbtUc^KC`dYzoFMngTNYb1C zA$qhZG{klN=-`%z8isLLR%FXTCv(ktVpD3H_`)o3Oe(I~W`@}fcrUW~uioO%kA~QT z;9^DDkcj3hlUgdFKkw%j47HX?%NRyjk6G=q-iFE0T<_PJX>4M6mEZE@6cu4dMPjlE zj+V1SLVDo%oK$2?WG9keD17{xfBxP#C6YJ*uP;Usa{?E1 zV#O@3r8PfIgKPKpC{=N?`x0R*`MfnSshlsRyO@pA>yj>?1_R$;_(1V0<^AGkwqW$f z2{ZaAOq-RKeUp56gRg?7i6C?$e&IUX!a0CEV}pAlhBk{fj49Lg-QLPBM^_1lB?|Ey@Cw{RnS6C~_F!u(@#eL4O7Nk9awvFb$JSCw`O@rh zJ)a9mUuD%kazh4_GGbz7;K+Ol^P@W3#FHHUum|+YK6uc6Ub!BK{P<;&+1*YEm-lp1 zfEDz&o*LSQD?xx)!hNVRiJqmjg^OP0{k;B@Yp30r5TG*)wd)pB>GeVtmfB8Y>Z8HA5+#W2Aq?j6q z4iSY$>H!0iL>@5~DJ|WzXoNnx;5|kVZ-0Rl#j^I?Rz&stQhjAqy>&0NTug;9PW$@V z#g{KJ^Cqa_L5}m=iH)Qq?QX!lqJsNyHdaF+hwSV(E zO+$eY5Af*}(DnBx#3A2UP06lu5QRG}6V_Plg2R{IS++1lcv~gK5PX9R0(DvOP0zSm z^(YZX0hTj80Zs?jgd`+CcjbEcgWcp!A1@f_ZKZZxRX1EX)oufh@mDt47;>U@@XYY~0&@`Kvpk@8=)N zbsl(~?#p+moXIsCeOPoNsUUxxq&iBL0C;d+(($}gqmWO@e17{zm9XF*3dpf#M1|)A z=8RR{8v*N`?}U{`>cnw;E~dncF*`L&ZB6|@RF%1S2u=n65anY0mc}`7~&NYZ6Z@OiPJp&LC8u&VYpJ?^4fdyXPKPlXI;yhgVTqN za4D$}!i4T3CpFxD4txX2k!f4-R;>NT`Eo5QouNM%S#J0ed95ZtzkCR>lZ>pK3=7zS z)cP2~P3EB9eaCQ_$c_*YxQ?RoP>nt5Z|_5rRA^ft0hKEiO*&R!vnW@KzXrWcD)qq9 za>gxLw^mbWd&LkA?#`G$u>|$-sF!Vq%QzJo5T(Nlf2Wyrve4}--LLPJiDsqT^=aW4 zC4w$ueg6w{ModsZeKb|3}Ngo|OfeSlg z8)$Zr+=N@p(l!A(AivkKX8IISr`q`%$=KqdBba1r|~2 zthlpM@;sy5anhZ_fj2F1l~W~TV^z8E{Hqct+>o(8&r?SznT1D2OwV~6_~x!Kz*RVQ ziHnHR%pR7a1AFM^N=!+1$%P;ZDJY0&gr2@mo2>L8h9V26q+&BT-Aq%oFK}xV&&}}m zuM`9pKF!Xv{f6)1q zR;GIZR_$9EE=IK*@%W-W2Z72}y~xeAR6#T(J^eIh)xPcQJzFCd~b&C z1;{XcMP#JtsJx!oYe(&DcngwUe_ zx>ljk3*yU=kZLp954l!kSLSd82PC3Pek_7~-1E1G2WmY>y|!D;k(b}7Er6J?0AU4f zZNLJpw!aiT5ls5NWk76uF#MB6rv%9$Bgj#Dc~0>CgC@1#`q#%_aRL^jtxYcU3^%xD zQjHXFA32Cy$qzot0+;+vH)bACjwIzV>J&D&bWy|Q1EB$w9I*D{XTE5ZNPDkG7=6y} zXwXQ6F6icHRx2f|&f}2;wvx}1YO16dFwo%t4(L4_$k|?jj!TP^jt6}p~~*w{wzh2k<;h$Xbk`Dp()7Hl`1jOfvvXiV(WMZk@Z^xfTSK5J!Ot58V>gRf7a(`N6*CkM6bACwZtL6`+n?hFD5rFSy0iGSF4%O1FVJg8HfhC zj5cW;F6S`g%B0<4BNYMX=P)ji)c59g#zAC7W~6!ZQIBEOTYW|r2xNd;Uy{{ej#NSb z%P=dTn&blX#~f0$rYwk4L^LZbkv^7tBM4yZgfdX5+T-u>1{v`PEuz*M#Q|1`WWb4e zf;bukLVEgop9p-`H%)x$f{{+fOYu(WHZXd!4bmdP!YvsOJU)%L!(nO&Q=As ze@%&|t)Jw}%I~OxWNB3>Kjz-@0Q_3ll6-M%!hMFpTNKkoR3*x`&BsQ(XRfPT0LsId ziAGEYMR|`32fsGT@?Q5cx-?&jrvP^%PYjPLNQN1l4xx}Qrgc0`RUmR1Q|*1e*D+b; z0!c1LPOa@%QZC@w<+0pIG;D=1td{Xb0mS$E-l}zVGt&fB&5L#lC~$e8BnxEM}nZsCH6MMj0; zF;zdcC+e@V)0_EV`8GTfG71P5w|(@5lrO8>XlYF&4h%pb$C;yf$7wFR9Y#DjP;t4B z!->+YgI4LZsd9;(C}!0bitt`gnN}G&R*u;-kOq%va!o_ zFHDKsm;|`G%ZRF3#U!i{aFTtlr@R?foGk{I;CdA{T`~LY;Se5P4DKo+;>pjd{)2ePa^-cd#E*%-D;yaqW|6{QLbFg zl##J|uGmz@lKR&a{Q`;%?$>}7*SKe&AWS8jxOf8jAo^4OI|eRq@5qE;#55EP_Q;Z> zpDY0?mwR8dy@;7hKUlx@&}vj?c-d=x=oG$DTnQ|&MX0K8u6uL%I%=+d@5mM|+j3@r zK>q*QC9DMJfBknVaM2hA)LL4*=&*5a3`ML6LPf~^St7F8eX4OA}iduNA(7#XlmKb#q@ z5F}->b;KcF?21C%H1Lyvci6Ae8h z0C@;z*kf!2=iX6-edU&k!mc|vNXB@0(?#+CX?XOD;6JTpgIguU-yy!f>uP^jyo z4=&NU``e@Ho!DhoO8(hi^QrxW};y17U$-<6#mK%$x z7>hb>3dmn0x~1yP1vTh^B`)%UnTz&Z9kC#y|IhCnU`UC#Ux{}fv;TJtqC)3_-Rt(A z0)@#$dCoRWzEh#}6kW4c^Me36@sFkKgCna$>{()i5}>zXgC~*juWV0JEV5JJLG}&g z%ruOD3X_7;069@$|x}8;re)2+EBSW6GuTgFC%@c%xjfp@Y3;ee`FQ(oGnl}iO z)VJN<*}dF@-(*j#voeyY0@3HMtk^-$i;cZ?>`wRih-Nxmu>+=}==klMs3fcwfTTn> zee{U>rg#hzXP2xu-t*@Ul~~{0gbT$R{l;$Z?IH<^$3!FXO=JT3sOXE@Yj8mdF(r4J zb;MMnVvfHbwb*zQ$xd)KEPtil+MKZ+p7FVC{E`z#0^L@r4|I`4*nH4@Q#kC{dpz5n zHyWlGe|*EspeS!*pb-`WujXQ)a5-V|JJquw;axvdftCq89>Qpmh)H8kB-}dHqi=%ZUHdx^%jK^N zSXjA?T&HY@)Sv)5AtnGTzC_96hzfg66(oYvQVM&pz7P+DzGHvmL+THHU9tEl$@ef3 z=hN|G!LNj7rHr%uSK$VSg~8d)FO1t^6D09x?JRhGv@%+=ya>p&UOMH%6CCuM-L>Zb zk2JA(6VG9proT|8hNMeMOTTN}qn0Od*{DMbEJFxRM}$oVi71L0fIg19CBy>-q*OR3 zaEuk3fMnY6n*1c}cP8%EpWU0M;0WSs7~RCaTWjw+@%d{FyT>^wKE58j?{#W8t`Iy( zqyLOXwj`t3AQR_gPb*67k*^V&jRpEI^g9mr4jK>ZTV^T-*&G9VKYci0t@z9Vg5ZB; ztp|aSL3tC`sRj!F8v<4`p=_bW5>o*xqj#vPpMCb*!yCp_Gm${8E!U+`)---2f&MfZB{f*a!Kqp;tXnIKcDX?57J8VJzejfB#Fhp#`Ewib?00sAF*$Gd-KE zrusnnp-spBr{FVs_WxWf$a|}K zo2%0$Uo~-l?y@$Iv98hU%z?DmnCqgl9m|tzPJv%;3o#i-lWPox(Mu%?>0l5+fQm*~ zk$)UvQ$aC}LW6fHR1ID)&plV>xVAnJUa+I`dd>>YLR#OnH98qnr2D^=z_(SCWiR1_ zP@_Op<|m1l=LfeXo0!XdEjdO66t6N#h41f+4HjH-Yuub8iXX36+*RC?X(K!M2Hz?! z)RWq{(}l*}4wgrwL9yi<;#>$zm^<-<7c<#LnLq~dulG+39ASkT06rPmU&}r$@tF$x zu1XFuv3y*aluwC4}(>; z{i#J}7ePvvr!7=6Xk*Z|PX#}LwfQJW8CD9;QJ1_r^#oVQd`JOYW`pAtAv?gmoB= zN6x>8{~A_?;xx;lWDjWmpGE!UcEP#4wUEXi`-n&sj&btCZ%}=fK(3u&AQ@glPQk!K z!JzRraeZAoL#%P@y~o=OXq;3YeRNha?$3)_`p=8;cU|d6-5g%6HXXF)M#;RALFGV5 z*9yO5zd2NUlm}}|Zk`jK)E~a{%S&4bq(le5uRsO_LMC)x>cF0mj>@1WI2s;##h#T& zm;-bz*cPh&I?z+8INZCx4*L=P60If&MbnIpG^aSIGL;Yr1J}_zSLLiH%{tbZ@r*~x6qvbVg(!rImm$h*m1O6 z1=`s0Z4vO4A5HCh`3;Bq8X0juy-YSjbx(40GeFC&P2J^liKod|lL)ymJA13oMfO5$ zP7-N-IHW|SJxrwlIdC1};-hZUPT=X)Z z!2g=*wrN+J7m8vV8hvdHS(Y+Vt7?}`NEUU2vJTLL?3eO6;C3v^smcvD2 zHYzCL)a=d(&sSpf)dMn;Fd0D7Q3iQ1++gFmnwr9yny%x*c`2Z9BlLfuUTP_XfBRlx z!GA%jlI`qESl=3>SyeM3RS=TwKdp+(ZB@}oQuhoU{^=43SWN4t-dOzFYsWgcb@lT~ zd{SC5o2an+5epm$z7>Y8j^c=h2B-3N!sgc{=jQZoCJ9h}antiiqhO-%8pPA;CGYOG z8UL9&^4w!9-Fd0}79cqc41Cno;*2T@5Wb14i1MGKqwS1l7q9`beM%vVIbJ82ynDXw z%2|$s*)IT~G_l0;u*`mtd2mzwDJ>#^v1;Ydr9ns`5cBM?)mOaNqNe-`K)sqyjLx;+ zM}K`(XS9go+QHHk-2I0MXu~BathoV;GOj)!fXekp6TzJ~gDS5=E)~ESFrr0q9RUD3 zi(McR7g)4x09Q;s>O?geAae^t9amx(_t`?k^(%3i_{LjrSLIbqRQo4JkTV4M+n!IC0N_`` zW|ZktIwh=vsK9h+cnaZSe}z;Az+{YPOOj>}r_n>wmCZ*WJyA*>Us?eL>wzX{H09m7 z2Gjq>Vy(Q2_&;=YYlqndBO=+{R5$p$*Ch(O_NwzMjpYU}`J z{`M0h`;4mlefo-9c_GI!CvS%aMs*5I7fC7!kjx9|Qk_Ma;Ty>G?kcg%iz6%Ac4rxD zUz-Pi1Z;RE2oOd+L$~&H46=h013M%b3!=DY8z_=25rGf1^ohE=xbn4aU=nnZu~tc* z7~cnrxt>C~6GmRBsHI=D3*y)O-C?2s^}#g?hrVjcdi2&$zTbEjfZ|J=nR5#>S;h3I zO9MqqLq$sonw)@BNEU(7Lvib7=YsMTQ-dnc?&;N=!YKIP246)7Jyb1j!pBi|uXx!> zOAdEJ{$8f(zDdQ|!Cl3Ywr5>Y|INjw93SDHNW#s)aC?W6F8fAL$DJUt(Le<>Ze5qq z7n^q^;pGQpoew`Z^#C}(1;|d|Bv9z001l-9AM|Wgl0{H59`UaNr_DnFf7m$%s!u9?7|KX&{JRc)6G64VNyC4-1o?RNJt|lECbZ0@ zHa}#Z$h&Ls8220;Fq>xbohU(QH1S|GT#`HV6dz zh=oBZE7T(JjM#MXO^(c&{WaB_OB8MOd_FbSQdf4x@i6%WAs2%jKlk666^=aY%6OY) zw6)#IL7Jut5`&d81Y|0fpiZ5!y>m@+d>s=GW@@^06Cq1;k66= z`t@_%mD*gs%CZpx0 z4~u&37P=PWdrj|p4wVoK>Ub(Mqetb{2kYkuxqtllfYdP+_KuM^B8m{$wWdY=W}i%nct;*Z*0;PZ^oGn{uSs) zrY7#`XKm-YND_ZfVjh+cQqX+NV1K;W%#ux~^}R0OH`?(yJoX_-A;U`B=Ya?OL&SW9 z3ay};m7f{y_Uc_awr*e|k3&uBYWL^S;C8*rIZg@xJsJiB-_^>~OnkYmjT8sJ;j2R! zMJ6SPG1^$%eQ0wLkNo=jbS~VMqIo@S>5HzPgC|rJHn)7&tH~|F?x&YV$iT=e;zdG2vIay{;!itr4W$QdbIy9de--FP*PZ%UmI`n$CN&)UCz%_# z3|(@}@O~dW&Y6p9^Yv@>PK-*`n9OrOX15+5MlAs4@+2nL%YOQC39h6LigO6;E4EUr zDSs-6w1r#q@Ll|oC3|u^fuD!@rqp%M_DOhsQ1e$Y$l0$E1I`~8VJyn#6epP*rvtKRRX32&Lra+7Gs8b*2ASU2`yYbYr zq>3NPNx7B6Bjny+5s#N3NkjD8t=FRdPo}xJ8*31bMwbB8)#+4#SLF9ob8rf%vn=Cj z?ZA5R{N(hO#pCPHYNPE*OQNEC#>X_rseDzHD+Z84?+>?vV*W?JcQxVg2n>YNg-zj{ zX`0KG-3-bq9)7Ztv6js2CkOV2t_M95%H+YhJa#@O+xfK=?R94jhay8jrh7aq)5j?il34l7A(a-Ndng*3l(@~r$W(qY zo2hGe{Rmy1;MeMV52vO?4u;2WB3Vh4EPkN5Spnx%l3)v$ThLZm@$KTRb@_m*_d}UE z_^%L3vd`TC@RJ;VTRlVJ0UMA#y?*F%c(M=qR#&Wzfl1Q1m_mFib`FKimW`C2Y(>el zzS6kgKH;dd+&pD_O8#=Rr!HZ6e;->L!1VUi4?|(9Z`X)1r|Dn4U!^> z6WG4Z5%+j_4GLKGN^$)IR(51Nd(^4PUfFB+Yhqp zn#18RU=%(S+*X~bbXVm$0kf#MqoTdl;S4b^nYIr?*P zplHEO(QHYmUV=Qxh)8YoS0CXUg%I#ueM@}jqHU_}QmDBeakOV&Zd>n^H*+YjFF7^9 z`+XG=T~U!&XZNI>^G8AOIv88RN`Qk<(6HpD_zMV!{D^|gCOaONMa|~)#90-IFv#HX z^eN*J350BeLYCxm$PF_jQh>8Mw}Tk$``ANOD?Rd*C#6SPPlL79`@T#RQ0-pj*!kY> z>pSq?+OqCP5)7l>)WgE;rtlQm@!%RIlm=XM%Tmp#DPJ(M&J6NGTD()$ZJwlQD`GSJ zo+KkfvrI6kT)&*hXuc@2c8#bggzhyMQ#|O5A1HNA=%MFzQ^(gbBsnZq?Yw#!?+fMK z)MoI+o2qE-@irEF$-_Jn-+<>VgNRwG4fI|n7iL$U`aY6Z!S8-{{A2ea%gE4+-lx`6 z@mW56skC@@FjiY5aewb6d-ZgEyw`H_eljOTA$NLq`QcH&lFj(>2`L*HRAqhf+D$!2 zu-38|P&DryIa;bD(ORoNBHuL=i(<2ivnfp@_4W43N=YFgyuZJXisFPJfW~ZgWdI$N z!DkZO=0;PBojOYpcKYf{frpdDFm=f8_h3z;OWwj7z9+W@s99=wzZAXof` z|GXdG@XBSD@SGZ5Ogvn1036FdbwL%WYn)^Ek}bC1`sfoVjmU$-Q*o* zjD3^)|0`;@zNGD;T1ZfQVxRYw6Xs;_yiVZ0<4ZeP{Y(rX3BB!=a5O*z*S4V*&M~{1 zvapy|QW6NLVB>W&2Zgc9md$gVx20;iD93~?@Ij3mNk3~-Cab`*+ODJD*DZS!^dlP} z`U}kR(ZF1z*lf7oHn7GRIEI$!R4QwZusNPeNn1N)mXrXl2fL}vC0kj+hkWi9?Ab57 zecYXInSq)0{;yyP12yqI}Pc|xN8_bP(d5^ZThkLpguTB{+huV3p1xP}&X+yrp#vX|@ zJ_QNV&=i@jQrQ~UGXVNKOI)g7vhk4Me=@Egp_0I+hecb1fuZ{4=i)kcNPwUQ zt+o1Gt*=JbK@QfmRFdQB0~=ikN}J0$L1Qi`ZT^|uYZ)TUa!!mPpU|z!KKu+vZ}Fc^ zEDnxzk}@o)tq|4m3C)5uU_g8?j!^7>u5dA9VECuM!G<+&BelKP+A#s7#R%~H)eeY;*gQDa8 zHz-NVW&gznA&7D0W;Gc>shQ!OR*nnWbUcqI^VDHld@{H8^x<^Bs2ZC<3DhP^Ze+B--M}Hq%dCciEx$bk|uk;)1W;aGeS1c%LZ|-%>S5l(%oGEf7P*OBUr;502r2Dn$O@}^j;D%5r}}kJ_Xijh zkO=Ptdf$BcD#*3JNmC=Bm?d&5Fd`nwOQS@Co^3?OrGs2n z*aW@JQ!J@AO|%%zfFFA58aWJB_WblC{=+_~0}I_Y0F8yULY06{ZDaofk=e;Wv3*H8 za11ug8i$g}R__tTr_!PKkAHcYPTX>qR@7Q850lA|7pGDx-^Wik5NiFWIR?Tz-~@ha zn_Z}6qa|t#0te^ZQBeqf?)kS~5NV#z-q#5?zhGs+W`3R}@OAMWFG85|4;gazIKFGT zoD?QEYC2dKrtevSb-W>OG~+p70MAh@cijC&)$=vk5~PXsl3{ahHyFo`9cOy)%X$Tt zEsAP#Dck^>_f}GWCvpZCVdcv|w%(A|!7d)_qe4_VF21Ej>6S019CDV1vtSjzOid@v zD?pIY+<4I;vJ)rR$+5@}JbhbR5J=qC&O=Ux=Wb~hGRxvmQ`7;$hQb(BY|=FGBO=df zZs)HT+W~$aK`PPzXc1;|Y`&uAE1AI4xi&^uYjkXus|x>EX)1#F0OpyaJe2}T|CXX$ zh40)iXKyE}gVI=D2&MjK1%J=y&A0!PUN~AJGxfM&fU!RGWUrVQazB8L#l4%JI+@8m z`m=XW{m%D>jUNwASu}evXqtG%|J&8U5g=A{hLH<6w>C|6A+`zfFnK>7sRK%ESNPnUAPJ_crel@+BS5Hx1n3za1hEp*%M&v_MYR>*4bnqoti>=<*FJYU>N z3*Sc{pJF|Fx!nPVHDfufK;GEi$v+&$C0$ zIs+RlczoJ#^Ch#yx)>v;K z%l-EHT$Zz$L-rr4y;Kw6*DhoUFR6h^{)?N#*~(P6MO)dVm0IQ}m&LNsSvSl_s>YnE zQ(1TNyT9$We)q5k!)yq0(vN$7KUhNV#i#Az53VCLPqobLxp?q5>!YLd~LdI_R!2e`6 z;{dr^>^HutFXn!VPAXjyKYHwgeu0q+dQ8Xj`X;8qK_k;@9BUv>UAT)?FSP%){l=n! zbrSgq<2AZNR{@6X57z5Mq!03c6hAv{}oZlulg-0@0eB8P7Vb-i|Q9RL50))@oTZ8XWE~ zwBZVEu2t{U;l4+xJ}uT<&tvo3-QE`z3^K$%I@two{QEXD-+1{A6=xemsXUVBAQ#g; zPndVTIVa=}m)D4S=gYEw7esA4l{uf6>Q6>2Pt(Y;{<*Ox9EG>Wxn9%R$E8miareJN zN$Twv8ZCNO9b(9KDg#ln;7>~`K3}O4;qg|X&M+t$3vgZODP;-q)6vB?ebCls@GmQa-hXaUzT!)3cH72o$o z1Nk_KKcdIld|a;r8)DAih>EVRtHb?iq~o^;wely{tkm;sYBF)LCxAg|7y}K=t1?Qm zF>}F)D{38k80S=fukJfUFIDf#A&<}~ld+Dee{&KmEtK=LC?RV>R_GY#9Fl(UtKoC` zFV$(}V#qUGiYRctP4yr12@~Fj7?5@@*VZ>;Fr}S$Ld^4&Fv#2xZ*DU9?1oBfDVFb7 zY%ALy7Z!zMSU{lGy6;s?^fWVa@1<_7M!rfWNiw*7W#N0cn}L)YwS9820PpKoRvJB2 z>aH%GwB!3v{=CZ~$bp>Q>>B$#-lT}L5Z?lx4BxYJgcu9lhtgxOzydmino!^P}8U-EJvav!H6MF7$4YRk{45oE1bo zfQ@!|dgV`E9ATi5X~2($%xh#MG()m1G{?KIl~1*w?2OzPER}4E<2KmA5WCCI_siR> zTybQg3VTsGPfj`T9u~9U2G%qdWgilwKy}# z-=yXmN}k*Gt*fe|Ji$fh1WJPwcpCY8?e0gLgD9#g?ib8pLR|G?j%$nf^QLS#WbkXH)|?ePP_Ccy~oHiV`XPl z?;tF(_t2Y+9g!b|JWB3Yae^<#-tDzeeaK2)Y_=n9-Hq{D%XCr6LPGS~-Mr)y66Eby zk;lZu#;#5}vCDCs3czop3=0DJ8|Zp8wijCVq|cDRy>%DN{VNCF_|s0`Me^SW7(MQ* ztDCcIV^kiGK}>#SqQ6755-6Ca|5G>#qrTl^ntODOX!h_3lc_`o$NWg)PFd2m4y8{>_733#<+!}}LOj=Pu3f`Kvq?s=VGykDz z`YRq5T~vV_*n+F9oR!Ix4_zFm;q2Mz#c%~J=aJ$|E>Ag<;zqo(*r1@FpKlLW2Q5V( z<&r7p|3J)EZ`t5A7QaE3VYRzY8MU|dsVk?!Q@&atP~3-%TNO28Rh|I4PTHGWT%;Bh zVCs4LLGA?#QG>Y8^0Q8GyL6f`jgy~&E$)h4iF`v6C*DENbGi9dtVqUr?5imecBK(G z`nj$?EUd0JfAyuCZQ?a@5mj^?}Iu}}Bhb*ETjnCC@2Jhlq0f8W8_jl9=y!zNQ4 zS}R94NrT$CKSo9HoeF4t5Eta>*3DSC%ZP80t&>-0zv34{EjY2z0tyI5y6+BGMYSbW zQPIZEipk!`cnuWu*G{JD`d;-g()@1_hzy`x_fh*^Z}{YQxc6QEb^oAB;ncpX zkiko2X=g!;u#5(Q{QE%N20b!T17&Yx2m}Ae^*l~^LV9CgqKEUO26SQkUO%6UQVNQZ z#*g+q|ASP*WYf&*=un9xRq0*66uxS`)tDa+JsBWw#q0SOrzFzexMwZK3<5P``8*mK z)uMZ--Y_`$%nLfH)aRU1n8rn7cxh6|t$i2H@rFSTJMNDX=CW@gE_fm`T%q?kJZE!a z(COB5aq+){aAVq9Z%nT&P(a) zYL7-N#c)%WA$12eD88yZTk)CdlUZME|Y(>>ujl?-;6%2(|XnUbYt zMn?{=?@nWif$?9ix+gW**KV`E38Lyp8UClW3A4?GNF@6&>uxDsPHUMg_HEp_I1*MU zg}2?(_7wpgOZVf2(P;NqC0|56A@4oh28MDf8m|Tlv)Ef*VH>O9!R9bj-7=p~H&(cy zOFYQcu5tU{UD-9Lto2!xO2$ltmF>@8})+LCPPQ#34gz^p41f-at+<4O1yo< zMQTF9aG#oTD#8A89sMxC-C^Cf3&uviht6Bbx7nryZ7n`FPTnjX z+91zY*n{X+T!W2iVQ=8cp?5>>!=9%t?`kYF+5gAbS4PDZX4w`HTqC%@yYnvT?$z^p=B+pRPpazHt^1uVXK&Awq0NG(de?JdRo_={JSG|_&0&%%#P17s};XO=Ox%}H7*d~(;J-jIEjK-r2&ByB{Sk% zHWA#yraQ;&!;LrNY2A8P(|4w7z6UvHc%ztl8%`BIYLa7P%@Xy%Wd6#_Gh^hzV7r-jSX2kiAr{oPqCs+k6W-EsL_QM_$8u zdfT?e(Fyors{!IiYt2dd?4#WM5hZPvZ$Vaw4xqW*q&3`xQ<_CR8Y2Oor^W{+a!D;8 z`y=&I)%1`uzE0DLj=7(6r>CcW9fCO%RB!>FbAqkcFH3`rR6lt<6M#ilC#KFb2`5WV z?vQa*sGX(#Lq+sta*r=d8EG;$9zFoSh6aguL&$(pznb3sbGAkphvg*Q^8;Q3fd0_{ z-s9C1A_g;qnRmay3TW-4xDm=BAzx)QoRXT*{9vNB8$RjY26l;qA39;2iG_C|d$?S` zG)}O6q(%4B1QziD!i1UVjf4WQb{WzXhz1Z|sPA@`EY)4}aE!AdfW-iy#@ism-?JSV zVCo?LG7E&9qm4X>anmb>+{P{rL_t8zfKfyvW&ZVFoBsvkUs+!R@8)g(yM@KH1s)c3 zQh+4<&Gh?GCD;8XIq_LNvGQ@vN@*!P=sy-y3hlPOPkFg@zp#H$so@lJbm}W9#xVJM zbHoeu^_mCSyB5xHPi;H{E_A>|zKg1=iVjetyyx>7gW4Cf$Ga#ssk{ZO)}9+zBUeH> z?_|;=e_Ah}UsIwRCcYe2sbbth$9U-#V_J z8TU?yKNtjJ-`eI)9_g|JpwIiz+{z}q-}dRe~}*jsqKq9R4TN&rw%(o7qt1m|L;s>7pEWviwQ0 zVm5A8=)cj5%$KiGINq*mA>49oT>dd_4!(VG#0}W!0F{GXlcOS5xLmcJ^MoHY8pZH@ z7LKmfUMcO%%NXUabJkn^a`$q$?5d%xjte@yS#gAdfAj8I;f*mBiRD`bApO?+k zO4S4&yzA;_meq>YcuH*WYwOA^OJ`=9YQsc`GdTa{1!&ms^UvlK5)w4^LwgsqFp z?mNbjn@e|@Q9f5PRt~#Sw=rlgxZGnOn-H0Am(@jQvQY{5HQ_`gZ`YDTB;Z7a zH;!J@Szx_Aiw3d_mFQKew=*oLn2jd$8UJ3b>+I~q1@5uXB0$xS);k$1I zTSOBs@W9HSNj+Z;(WSH*^Gr&st1Q65S$%oWG9ijcTFE=#e%fp zMS#jL8^iBc5j8iy`ZakKCvpC=G%LakFYA5Lls$b;C?`u+t0fug?O;CUBI*99wJdxR z(wrvIJ{d6SMq>-&fob%?B3qNP%*#aeOvZo-1Sl>f-<6>CI=w9`q50)vca-p$5!ygm z4dsaa#!akE9L9`*J=T{)36a?Rq2 zuN5~18>M4ep3}bBeQ9xmfF!KS9-dHuhSl+;?Lcc;y}P=`$o}qZNNweS*+zvW@N?Vk z`Z=n4vA8!=j&fx6JP?GWXBzvsXh{{84NvUUOIFl$d;{x8D=Eo&1~l+E&ZTSdd=QJz ze{8XD-W@p!c|hGrG*(S4kNaC&p#Nclay^$M@2`h)liVe4M&?AP82v700{i0O2 z(4RKc>S4cF8B!wBD`#>>c=N2?4uZ^QFyc|M9v3SFuS6yb?6A#u6)BcouMiH&|7o4Q zvX1c84bpRH8ZI>8Z*CCKH;gA^lQC64dq8SxGv;(z1b^1QJ_|I;=~RVhBfM|Z^QphM47G{GEHd$u7)|+HZ*~2r9g$#%LJ+Ps zn*r@)1YN!CyK{cLp(#Kyx9H`qu|;x@^bK zV>|4+EOV0)=Z*qptJ&K&)>g7Yjc4MBKvk#aBp$i^}u6jg&#v|d%btq%pm$`C^nVxUqq9P7W;b|;zOPPx`N^9(ZEbw3W z&@4HNLX{f>s&Um02T*W$95aD%WVv(~3jVdn$V*{#dKc7hhl}NbA>SZDdPxqZH^&LB5LTPk_VbeVtOqDqqen|y(tvezuDt?CS z+8G?UpB7?$i*NH09A=zoMrpBf!!0jcLIU3X)fdY)23JJ-D`XqWCU**O!8_q{b}2O# zojXyQN@x&B&t+}L*-X0Ok9fH};jRS8t+%xM;baavgw3^H(G2h9Xm*prDDV1=q~&}& z>cr)DHy8_RyX2KZ;30sC@-A;L7u$L(8&@2cApFB&@4|j_x3Z}jo+L;?r00TnsETgr zTJG^EhNOHy&p|T)4bc-56O)nA4i*;n$0wE9;{2JJUg^XpmpyBp`+&2GTArm_5dV7S zV*TlZkbQ}l=Uj@us0%mqeV4yvI?UUuBtQaD6fY^I)%se40BvPrGq9t>?Z&QKipwb8 z{N~2`^%J&Ba@OUOs0<8`$+z8}ue{fBbE@uNqcB-6dHCLz#XrhU@*~jhQ)V?Uhx`DP z`DBbzkRcxluMPBIvm`3rFP-x(Pd5EjNsgA6v-a1MjU|1DD{5%wC)u6Z)zfo4OF;z9 z6l@xv;UTjD#4X9KJDHQKp8=B-O3;Zs;NwF*dr#blEKHx}4EIZIpt;wy6V+jS1injm zHFDznPk?*3yzPNXcm^r+bdMA5;=mP0?>UzK6yOIbtga$mM+x%y1(MFGc*lOKX0og2 zY4`B1DigYd-)bQ_*x!rIm&1>Y7WlGxyEjQGPiaE!26`gn2vVq(SyyQzv#<*&@&=>9 zoB6y$DIXrDs&M%7PO$@hYx|j@}ew_ zGliynO%M36mcN+c{+#PXNv2wky%$eh&lqQwz2MbH6`6kTUU4rV2>Qa_?docvNuv|f zJ(@ON&j$FC&@P~Q%)0f9J2DC75d~0#pIj=4@#S(m%^_MaVQ-ujOJM3=P+oZ8+I0hK z?K+!WSHEIpHf=zG1Q)SCW^#?wujcF-%*D!c^8UE+nH>w&j2wrriwpUo=}t zC%eKJqJmfu-5*6~XZ2q`1Efo)Ak`ZX+CzXh_v01jZ;kKw{vkaLpH;094jU1Swna$a zDyWSgDW3|U!rJZE*Wtp-0z1o*-JMKORT_Sj1mHGww=n-IfA-SIc4mtmKahpxpl%L~ z>g1QUhD?=(-(sRr3c{4GJYt4#Q3dB&&+LpNf6xfa8=OL{p;N=6qQl&T+cOE6#Kh}9 zI6m=f9yD}zHUU{`7?8EhFXt=Wy*3Z7mOXw=IyQ!PK@)}IZ{+-KmbTQ(d1Kx{b8YIi zC8$oK0pW8B$h$F0Nhyc&ih`=6HyjIEsG*)+d8L^;h?Q+0cMyLwOFAl{C&G$-wvXS> z_!G7I8Qz@>*u?iwi)~BI_Fo5X`C9I0qnf$CrVm$clvS*fKG7jDj##`&jvFi zH2Kc4)T>L!ieMd>%!{!3Cs_yDG2kX{9uEE#2;1smsh}LCMiyfi-klL{Y?9~B)WPJajl^H%YNBpM_%(Sw<{^kG z;fnuw`m{E!A_D<>yTA=6q?>S`xetLR%njo}^B#-CF6)^o(P1@ZWYFjS?s*WlpZ(>F z+_=T&=|{|L#bOAmvpT;btOdA;`w2*eetunRMS=H|(HSYO}5{Tvii zKFHdlT=V?_*l;k{HpstgBJn~*Gko09B?4voPxGygEfNjE=E8h!^lQb9SU@0!T8k{r zOhz!`%Zh`IHrHrEZW)MOSGnl-Mc`+AHi+@9kB^Kr^Z1#77^FI>@jj~n2EZErcaMe6 za2Kyie|Xl=r`%~v3EgE+4b$;b-rKjK*+(gEtPakO)%Eq5;k`)8Cy+B9KLoDeYp63M zT=<{W)>qC5VEiqex8$>Z?2nnRw5R}v=J%(_h1V=cHl2CPNgv-ZjEM+ALAVL$2V7M_ z`R)}k=LY3jDxXnAz{LJwhRiAs)+c!Lh5C3b*f&Hfe+>nf%p07eHDLWgr639bu85c? zgQg~VU#_suJgjcg>La9!8GV@tmFQqV6;+*fCP76-BPV=-2?iNq?1Dy4yFe8?URon8 zo9gSwrmKRFpTyv%<^Nh4q{Daa=wg4Ve5Qx<%d<$P2(l%*czP>bPVslq-sD=rf|qkz zO&UUMB8WmXBN3qj3=FM|e?1b6#LH4DAOnhlb{zBMnUTzF3$597OBKNGu@Ck4ueX4M zdCW11W`k3;XgXTP1Wsg9YqVn3KJ z5eJjQdghP|^Bp6O9k3`u3GCNHe?NK1JcwInUTMGsUIIf*F)ut%N|OjF3tqOh09(aI ztNwZYg4}U?v=@jFRiT|Ww%kA%wbiJk%<1`;5z zVEY~DhLXdTE&PK8XVVcra} z-Hg|Ct$I`XnNlW&@1Y&41rfzg+N}e~CTgT)FB3@K7$07&v-ORfec$8Twe7g`%-`s{ zVHOx9u`{OST7AEjO=~W7jxfY&@}uN%?=>OIechkq=%(HX9sq{!6NtH=i)n-l>V|s? zz0S5;DH~3AO)=ud;+(6GMee`eb1r@pMQJ1UA3a~#!?Sv zXsnGGMi)Z}rZssFcGRos z4$SeDdK#-FM&Wmh@Q8|wJBLOjwMq0jx?|3a5X{zFIpzO+&M_+$h#i6iRZ!DPL_B-k zlsih?L?7cVd-q(j?VNMzx-VsxGgw_=Ud35|~5tH86SLOuPoM9h>-oiOuJVD%IVw8S-Xn=6-2bF1ke1gqx@$n0!Li8v)eZ*sgIXAN7#6viW}dgr-`>f%*A}8 z%V%80;?RTZ=gU0v*@$@_X5b`TsFR#qZ4@}>wLdMtGU^FQENxeKO9yGsC4n*eIJwn2 zMp=9I?P-5}U_-*Cn2Ej(T5S8_*lBnp;vq{#gcC_{|iidi#sXe&*H?zm1`E z!!Z4OiS+4NLx3H?ZSlQ7%=H1wpX?fx3B_}Aa+$w#4CAuTh5-E~A9OBNYpWi^kabpa zc)u^qD=7f=Ey3{mjO~kevGX>ig||f^P{lvxZ|EbcK%mv*a$KI{rcR&>J@A)y6pgeE z^SnNA2C*O!2j%Ha8T)nsc`TPQNXH5?21_l$h?sO56$YIFckg+)7i#cXPGSxHkxmC; zB{)iC$G=A75v+-`TGncnP9$47lp@Qy(4H~C!(D9H>JOvA2H#8L8Y|H@S;*LdH)V_8 z9n*4x%34-eBAvKU1v!q{nyen=%od&Hq6>FTydwnBVlYDvUCpTyA~5b zlHjpYMcXI!vp@Re{?gG?8hkm^P0n>5ngxe3;WcaFYwb@m1bh<>vLYZL zMuU$8oYFNr-^eo@hJ1f=+dBwx!Qp#-rWmtZ>G_&{$UUZI(&&6NHrb~?My0Hudg=o# z917@hRR!Wh8=&)VxA!N~VY5kD8&M-i9KAidbd48LnxUuk;*w^++emWJXN0(4fc zUr>1FFQV;?j`mMIL7=&~`0jjO4>K^NE+xP4u4*sPrs7~(+w^odvbO~zqVn?KXF=?8 zd4B%I**R8<<$5C5-v*}W$XfP%q)fM zF0qPLb^@sz4(lt$oBalIKn;6_|2t5T_gr|TH_3G44wIqT6Riu@W1(MtrhFg`8fPh( zxK+7~9+wkQBS&IlD1{Ba4xFaBK^U5F7-ak3Os7Bg{4Q~!{5MU$} za#hqg$Bl=5Nvs%!Q1Sw!c?kV4*|nlJU}79^7fk$t0Aj^U$yda-eZv#=5lIAVdu#7( zwyOxOfe9Jo0__Renh%x#KDfE@@(Sv+Pw0yC>M}@Z8o!8^BT(H`r!_UX93Zl^_Hh^F zoGxVA6v=}WbeR`V#{NH39)H%~mlp-^mD6k?&*s0cB>Dv>Ywqu7cqv(U3qx4?uEG`4 zQv!|Kua@)^fp7kVthg_KoArdJ6(JU#vq4)bqdJw-8W108jvn@fz>kso`UumdqM=>U72AT{42%IYye*4D}{F%aO>-H#-{!8fDbr1g-{(lQTeeI#Db+ z(!F{4Zu%g$STu8c$X#q^8lZ*JxN!)5H-Dc^=F6wc4Jw^BeQ)1Shs(koA(PvZj=82N zShzv{VgI#Vi1u`FI06!vl5*qtX@9V|cTh?0*;_hqdRv#rfnC-1+4_|a3f^%Ct?0z~ zCg)jrx3}}VTY8UWG#%qNWI=;|&m)1C{eg;UNfaJeVem}!K}{M2R5H{uB!4o>SH8PA zWtlPdoAu~lxZdqQC$A@%baNK(G?YJcs9PaW(N@L}B$5H`Wz6?*=l_+_ z`SEW?r;rfxGVYv`$i)ZZPf3sTyqeE*g2hfOLE&&3peHNPpYa+e;>uqqn)_u_b?sI^ z&RzhV=_>~V0#!23<#+4*`bR()61sgNn60#fPXC-~ohfUzQO>%+MI@M<{AIR4Xu2kq zk%20n9f(K*#f=Xv%PDH~Kq;`xKH_Q`{R$gz|Gf(Jn^p;hfClLpbL}(#oH5`z)oGWX z;kLD}=(O$!prQEchq*popQ}MqNrmqs$6HpKmK!*)7cerLYO=TBmsX}l7#a!M$Do$+ zvX`W4Q~egFfrc8Gf-t7K_4Eo0TB=#$62{>>$g06e8nr--MUBLG8W|j+h#`x@99hGA zkwy$Z`VlF{imF5fkYFfIZR9ZlKK9#*wj`*&Vz?(nr0s|5n{vHGlS=TI00M}&|4W6# zN^NEXS2rX!NOttj1~-~YM51kezS+fNE~3BmEv zt}K04c}Fk%R;vRJ&d}+ouu0(x`b~+0LwDZT&qnjLuJP}6eT$aEAjYj(x z)VFv*%Kox`&4%leAu~!vXGRv8?7GWh`Um%DIXxi=l{iR`3=j=v*HsD=vMrMT>ThMH zD8gxXAz7AtVz+Ma#u!lY9XW`@?)5N{g&jM+gfizRbybyTGDwqO{Ku=Lph-SVub#qX zHL2UAN_k#-_$E9vk)z<(6HOUZ>j7V>u;w>W5U9qa8&2u2>wQM_%k7uydI1fta#d1V z*_F}_0mdiuu4U{4{z!*1#rHtz+%(XJJES4|W5yhglH8D5SC8iFBai!Y2C>SrI@9kN zGZO0z^NPK_8V-&U$-~o(X$Wy9Gv_V1tb5q*VjQCrYi(x*PV3Hqw?`@58k%8bk&8W} zI=m}SCnp@_h5oXdTs4bJ8(^6G+DR%$>ew)w-vYn21pC{6CnxlWVZR_y& zo7g6eJ1^x822th06JG6CZyt6VA;O~Gu@Xl^jq7Q$o9_)kVpuDSh3r~~tLO$_^ zKVwQ<2EvcsW+x-KQo5d!>`?EFyWVJYz4fk)54J`Y-2Re)0rF$yu6>EHiEgvObxnW1 zTMe)?vujYyJBippSNHu{TjbQUj!Jr1w1U~#a+^zQJKqGf-~L@OPA}{`+9B zii5d{*faf0mVziW57k|@Y)C(u_%mbQP#EAjm`w6Y3W1*E6|TgH_3Vz?9NnZGHykvl z;{~uys4=t^IyB~2gTBrJ`(H#LNl_t{Zy?|fjZn4;&0?B&4AyUS#iLd>A080r#=Ppdai`RT=u-S zAqG{PVmBGsuAVi9qnK2J7KZsQFjJB5+&V$>-L-`m8;PYYvnC4#rmC-mQ)NieyPS8S zUxD8STDH|E?;o)RMF6~0DfaOV8m9$vsFSm;$?6nTG^{x<{Agp)14S*RAwcFQPnD0T zO*e}G>cYMrdPP`Zn3|kw(hrye?#18z`RLwXr>ojWN8z;`gX{AXk52^Wzec!sGdhfH z4{e1ZruZ}vaJm@NR(7hxClaohKkYCiV2@<{YMMIFx=jrYjckq>3) z;1gdejk6V+7DiAiO4h{L_NsjS$oj-6THpuR77DIE%9T>1I zAECV~(hd$k!{@RKTP~ZIeqnHHk;+g@&@b`r+u|F9Domq?4)A+^!bw~9<=xs{n_{nA z*17V9xoRyX^v!s>mw2(TvRJk~r(9M_99eXKIipezqmjAwxLY2bq^v82^DZ_+zu0?z z)pOsWSf|`*Efm>3dwrvwB)ODYb>|00wiCPledb3*fU8|Ck62K975Lp?l<(YB_FkEhj_s0wyl0tVOE5KUMzw$zZQddWb$-kDh-y^bi zBrY#kp84^TaZe>fX5!vpji2{j+o71c?&9X+$_;MyF(x-IKey}4S{sQ#jMo{yJb1-y zZKJkx{wRak~9*XHhpWV;)qLwpk(qDHDsKz`71zwmzyZ)6?h6p6kz`)vZJ|IsF6< zgZZkm(HeGXSGx6?hmGLql{Bs=%H}OQ<_`2cN2o;kBEz^MncK^&V?Ylc3g;ySKYg4* z_KhXFJfFOJFe@I47$nz{G9Wi_VtLZPU7ae`uBU&tR$N>)*gysd4AHoff`;=@mCxEH z%4t;U)bzn58-I4zeoq)(9aH?yE5YO6n&5fB5KStB8^R<^W^vPvwd0Vt^cTPYx&nWe zk*gL@Th`!!l?AA|ba8lEqnS&R=eQdh8r)bdKAV|Qz6*7#e%80|(4xg;)ZJgmt#+UW za8H1Zwe#rVBe`5cgG+a=pJ6#i|0|Hz8DOQ!A&NgG+BWY(6DI=3k~|Ag8@~jw^7l(w zHm(Ofb-CiRyvz7p64VnA2!39}at6O+_Y1SgywX$980>@3EBfJdt8rG2ELE;4MO8&E zTo;PF_xfa&xW^OxzS4D8{vQ0*6Qj-B)MuvsGYmS=RANdbdX|5|RLY0@sE4x-P5`)}dGO1`K1$bqke!4S7c>`sFRb{% z0LY%Tg!?xEn?5pnQg*8-r^#`^|BIx&1yF)7l04m|R-|P#J-*(YPN8ex*PYi&(#2VH zb~}B{bLTBTa4)(Al(g~c$@=^RK-jOt0SNo#-TS9KU#khgKUqW{nIGAw6*j%_sQ<=O0@KU1lv<-hj4w41jDeJs!mV1qBL~d2s^Uk5{~-2u z3$EqJ!Z|n~zWtNh`#I1wd=0cYA8WT=efgneGyiKNvmt?g2afaZcnoqv1br;k)<77Y!?7}+&+yVREO`3LEL%`Dtb@-?+Xm3FABq+kP~>x1!EPO2__%Qp1CifSeA&F^1)szuNU zRDc);{Dg`n4*>J~m0YA2zq{BMVc{Yj#0NF{g?!p<>#n{LtZ^0H@9)|@T}=(KrArQ% zyhXrRGo6)r4mAHcL;^GTG|bqAdouIPN2JG;#2x zdEXz$>9iD}5IEuyxqzB7x6)9NM}_zU$RMoi0e^@zXt?EEF}|~cts#dzbNA$%)^_pi}_^c9ARn+mLOu* ziPE21ltMI#j{7@=C`(3>L$CL5Av+^FGcou^C_`S3UvDwK?&M`TUGoT9wFuaeLd;Lu zLj_r;kIYgba|FcYVt*w@${CXEy?BfjnLckx!5pPrcGnri{cUh}kXYFlhMdgIq<_g1gv=un(=dPcL*@c;;+-OEy=$$UEM z=mXW;hndN}FMWK*r_Gc7^^U(F8d?x>6G|5xj)mY&Hqh_yeen2kDdCi6rqow%d5?fzGU2AMcL}fD2fwr%yZhZ z+BYt~aNLU4r-55-ZP|f3bZmh1sm~Ac4^cpQUa%y%lV=edC#f z8@t3(Y&x9QSE}=%=6HU3)9853mh>>09u<`v3T|O}AZ@NK-ryasJNlPcRA1s|>%~{* z#O|kh(~F*!#cgPMQ+q#XT0WRmXY-ET?RZ>40C@V|L^ur1xJIPnB7oGGGLE&eOdwj$ zuNPk08oksn`yBXLLHa6GuK4H6^O-MQ49%d4EUfNX!E>R-6I;i$ObE5SqKhHIjSHmXF|42NAGgCkNefI5<&EPioYE zRfhp*d2W$Y!l!);p`UEn0(c(MI}V?M6Lpt7r3@KMmwwY$9~;AK^~(KZ_q_Inb;HD4 zNjS|M^mC8BXQaQrjs|MP571^Rt;Vuq1(v_$erG8&43d_f^BwZN<>B+P!R{NJXm)V6 zd-vb4iNfH@|HC4BECke=`G|nS>@h$#n7qGSW8;D*xlGH0hNAWB&h-*4a*|a)OkH|7 z4eOwz5}m?Doz~Z93a;YJj5gD8)R*jAuD6IQlBtL5q}n)-%|E6J^I*aTUQDf%V=;M) zjd@W8>5(*T6%Zto$pd8TtE&U+>je27N09=0xl&Qb;6l-Y;5Acvt7447T2y%h z^Qs}69dA*)Gcu{lKH(H$jlE1cJYB(@WmLFNz9CdV=WBU<$c{Gko!qUL=YbS_1vf7g zpg6&GY;L!~njil6_!|Fow*GMiFyY5KC95ZGK^|_Nu6UBhx{vx4_FocIT3CcBF&Ecc zgrlanF$!X5BM2)1&$e6XV3(@J(jshT_+DEpE}QSDRaNl)r>ef$9HZ?bxAdi_|4_@8 zJFn~@we|YAT<^i_qfx9NP-5)!cgv}fP#Cwz$*=ToUD5?^ED#`0XY55GeUxqeiCC22 zaoQk&NqZ%E6j*ydM%XT^Xl@al*N zN)MJy9ZV!Ul2xcBd{5HoHsgj10{x5l^sawVK2Q$_MlvZ1A$+eI4!LD?*m^5ViN^pO+__5qiT+9r?bZ)Sr7 zU#ldoe)l}4sMd(I!P=Pv=yF5(YH_$d+Y)$G(th2!v#vd}V=YX`gC9ZriYA`Or8-Mx zP-o%yj>D3U%Xvplj>n86_5=o0u;3u=aQ@A}elp2>5A|;fRuW{X@B;rW zP2Z1|_DrcRKBL`a;qI42kru(K{x4Ny-P?=ul$qyeTbL6fF<>IV&O67DZ)tYAk(+PY zHvbv}RmV!pRz3AtJVkc2lB|&l(RO$o6$!gZJdrii!$QHndu%6={+nh;DAw2KDFM-z z&$HHGH;<{+JC>tVs-b)p)Nmf)$?<24LV{l4W+QA-kx)-;p|cyy(R85a*ve3RqE#(UdnZ$b>V*ED)bDN9W7PJ&v@K67*IpYm%p$==6A3kOUUcHPm$C8CSF^w zEh)g1xb|S6;0Sg)olGi_B0I;PdyX{TJUgfb*c!pzKIpZ^y=E3KG`iNWW9hN`+5^B zc)%rn+wU+>aq*O^MZ{_dY-8LzD`(&pY2AsU?s?t~2T$@aV$jxhXh<#xHeb0qox#Jm zzV~(OMvYV6_4BuhxM3zXU%46C?h6KnP^*7H=G(RB;C71Yre-Wa;~wuJ`45TvEh&%Z z{=;MKY`vO3xaF@j_(xz(>Lf$J8%)ulo72^E!Np*>_WZ|;aM%g(CBLqs0901AsidY2k$1lwZG%>2(SADE-%%wFk~!ratFq2gnmCjZs{$&FGySye$GYY_ z2No9>N0yiS`oyU|#C)xG+JE&fKVRU|2^SEvz)>Z2G`J&PMK?x3fvwf9Q~1ZDfoIMC z;1E>NZWsR#E8v-Yz*M5((_v9rhI%j>bJvBJX`_P@4K6*}_{~Esje8-E=xbW6fhj>e zR|^RjF|le{uy--W(ImPeyWxf@Qh|evCCY!oiG!q_aa-W8oGB*B+>1m~7lC%wM z&&B^m245rpA_rLv*;*sO>JO1a82g$&RnYl2`4@*beaDeaDo5DU;0+{%A=Yw0VXYo3 zpb9?A~LDAKnknr)Y{Gud}3#wxzVeeOIGo)FeJ` zjZ38!=;+ioVs$E$UW8?xH>j?#?uAtqpY*uci1{`;15m-NbFWT6Ea0n_b;PqVG$j5I zYHedvixa6p1qu40K=tEONl6Jb21b+R>s|>CMzsSCV{^kzT$i5Kyll_E<}j>%+niC( z=f(2HcT4$z`M)D^5PgQ&2z+uP0)%Cg3=er=($Oe3aB0+7O$*;#MhBX~Tpbd{&+XP@ z3<*3O?{6#sXb_SK2@0g9rp77;+%l2kP#{QuL9%yRS_sZVxi}|4$k|nT5@$SPTg%NG z%$4f-yJhtG+rJ|X>!iRLGQ1PNBcuF)XDGEEF=KUQ{riu@)kxm!?&;YD{Vy|Ccfn%y zCm7sKtUnUtp#(!*vNV}(5@ggg4G#;}FzxsuLAbQiFBC5ETfi-yPZhTAu7??_rKycb zN2ieh4NA^)eoONg(<%U3p zHXbm(QtZ5=$0QU*5mEv}E6o)z6Tp3IZkO6bi()%FwXOMi8B@HJfsp5ym3Ui~r`yF~ zmq@;ynzxoFoF8zv?e87ww|1S{yA?U+RyBO?4*JuJT#GR}!KR)2y;qE?D6YEU zQ)_I|v?b^_JspH!dz22G?a|35RiT%bW~s#N_)^z9(9PgGz}^rw#8vBVCfReVcmGx? zdPx4INq=H3(pHupFb~}+JO(>)(Ow=fWm_pr2ZpgJ&KF5dI&C$$UpVF$HK!-vQUXa= z3iQ}Lh5zLcv{&WWt*o-*;W&(~CE#b!C~7}Y#8CST0#&$pma1<~k45Ji-<;bjbuT9V zPgX2a#0{yd;NW0rP+Vdnl;G?xP<>1@iL}2`cWyzhi|@Gkz`uJjAjzh{YGko-xJ+R> zwHXS`&M!c1{Iqrp3F+Bw;lbWruH|4?-wI!W;}{y|hLlH*ZuK`gElfm^!V<5y);62H zR}k&U`I{Q|e*piC=i+wWlkMOONml}l-$U-=WDeKxk$Z=By7m(F%??3YJYJo5rP>VA zo)LRnjI1j#3K!v@U(J#2bU00Q^aX<_2qMM@SSN*S4*vZET zpD@UzTgBd-e>UgW{cHvU=Ch6nqy`X*$a<-M@>H?s*dB8o{p zt`w_;@aI6{V>=hp$-~4@dUep_0owB&m-~-Y&RQ1?5Oh$$KZy!!EXebsb;#P^6Lo`; zN@>pb(YhRO=y|RqF1}Rd4TU>a5B9Lf%`azk4F7-t)o2b-r&g2E0^L>R@sR_it&jdm z)jzpZH1{XKD5l)?(Ku7xBQpWYn=8`1&$HJpqum~C?^E!A6QPLtoAUqmp#1pVm$Gqg zW^!aSjA5wBW%t%QBok{kIf{A9xc=QqjGw*0@$~?bgF;aICA{l}uRd@%VZ$Z>`r3Go z6%{D1P}AziT(}*3;nkFIcyoKIK9h4t3^SYS{d&?{ZzL@Z*>T89tD%)Zl3Cft*rK5A z&w#r&uU!54$Io1{YkzObF^}dP>E4tqURD;~CZSQTb2=h-i zt;EXKV%6ymjokY-ov!X*a4rYe;=XY0jQ4@3wLnDQo3sEqjT01R53P<$PLYdFF8_dyDY%_~i)ZVu0nE)SS zv&VW^lY4vT4}vD3{^_604DFh2(tT&0b7&9s=9Le- zWIUigXz+v*TxmVSSYm$C7}u5gF{Frzyc}S5%Ed7Uwsg6imB&p#jTxBf{`jS6;6ylb zk|IxOdhcQzL1+*(9y?|J=Y9DnxlfJYak6s_*ic@#>nR~FCnMA}M$mP( zZ8jm%Wxcu~|JOG2wnzN_``~PqEQsK2B$~ebs+Ky%3MZw+!ZjP7K3gBiubnvV99l8o8x3>PbFse~F??y~`i+1j|}(e5&XA zfT(kP{esLtVYA~}zNidZ3LJTFc5;(^_q4LxM|Lw@gzcE`Ks(zuoeDFacl20&TAaIx z$z5Rg!f!X2+FPdG7U4Vto6?n+);D%=usAguFe1=qyq;Z4j4yytUvMo|(!{t@|8Wo! zB$)QG`a$cdH;FIUs4roDn;~@R#re8K_gJ}oWnv_pdXUOk$0C`HPxs+|2_agKt44Ry zG)jGxklze@Ww2lJ^45%}T&kJ&1ed3%87oW~xF{}7m9BQax*}xc=Ljce1GX!r5qOKs zK$jYrWpg6o0m1<)u!IKHAdFGAUEg41w%5EN?l;dLd)NP@jb;)$5?3Tg?cpNquj$Ts zuzl%^ZFY(T5U69TRRS4DhUtE=UpbcCPYceoUpe!8^W}WEI#j7H22}s-e=VH<5y80(UqJ{CrSc%yQ@}!ME&o{2?>RMf0Tj~W>G(>7O+Avq*0m8ci@ja zYBli<4>YG}`oTX2XvoGXmapqa}fSg9SMhB`u zB>2-j@C_i6L_!)TK$)`5DHC)3$_8^h6aa%X&i4h`YUgRBaEV#hd>B(-=XuR?y1<0c z)nn;{7P_mzTF240Lxz~=H!9Fym-IvVoU6CY1rdnopFZh|Q$o(Vo4ObLR)vM~=+fii zxVh?JERdh-K=_~=532WptFyWiGE4sMdxPhgN1J!o;B&&Zf{=20DLP5bq+`qg4!M8kscWT_0e$gWo9`wn}TPIqNM(LD@ zZDF35o!-#Mt0-Ydvo_4Tfj<&PYN})w_s20!E<#C3spTpBs^%hwB7O@k1%}G7K*90v zNQ+eyj@S!6VUJMi&-hpdKuy{cN~Bl%$DeIYB8`c~DnvER$)wVuqQVM=MYw~&-0v~n zSNQvzlIC;op(dZlCBx3@i4kThUTzI&Wsm*f0&E8NSg>Z(hc__i2(N^q3tsAML(0rK zd-mwL86o75JuO|R$)x^GuRvLjEnomFAe?H&2Nx@4fn6?^&<#`C2w15IPdaFiAFnRH zwubI~Nk_9WOr9yOXW*P#c`&+@Y`SSmk1T#@t_r?m_K&SD3q%10$uZRRx(7Ge(f6rY zmV*CDi*cdebE1Q41_UA=PNQqGmBRfv_)}(5JKmT5;x?62Tqdtv08HTXVoKyIWmkJ> z_Z%8?548u!n0X1gy1ZXDqo0!3o}d81rmE;xNN)1~H1?KJZGBz4cd+74ac^;V_W}iq zTk%qgTXA>y7PsK;?pEC0o#4UU;iUijvGKn5GtOb`4;jgZtgOAWnCmyMYfhZmtc`r= zi)e2LaZca8y>)r@)>*gzz+0>&0v3^f@m9&{Ai&D`@+Q5eriW<07Y0yD7qTM|Uckg4 z+)+>>fMZLC<1bsx-u79)Sj}&;7^+T*Jn&U-u8(7I(a)Lz@NIOKs@dWkeW8)L^J@Hf z!&~?5;cTXp?`F;ea|W=9m6zV!u|2t_vE~(`x%Pq>Ix9wR_0(U$!m!Lt#vr$vChDTK zI=wlO*U|L&!lDY#WN>SatkVtA@9@@8&M<8Y*spKC%$Ty=JbAlI!#kjs^!^zVi%V7= z^{Z%<{|AFf8mKdjR4#V?OZV^xj*W@NhM)DfCf-NuvJZctl4##ogS#Y3Lyef#a1OUpVtzQd~6IVjaosCtGQ$j7HH^~Y0Yxm}PU z=BI#z3mqhdjBiV>tl?xdzbbWdF?LYNexO&^44hpC`e81A9ZU}QV^^H7*Lwu*3IZe<1I48nSd=dn z+pw-i)BV*PWO`fWT+ZUlEu&3n`M$~3s&GVvj{>7Ts@_H(7!-FL6kQ`HBf9ZK+Twm2 zs1%s+S!=DI>^#xKn?4c7ELVzZg@000w&@sl4WRg6I9TP@>744SjKX_(SgvZ!qeb3# zb=Qm?b}!0vF|Mc+;sW)EcbW#muDo=)pZn~~v@?MAj&DofE6*EF>%EOI#48CMM7ou4 z8Y)w4bs-juN-l$&m+YX8^v9Bi+~j}_X0G+;AOBXVeyZHzupBtIFgM!XRFn?@lxgP+ z@!0#Dti=QjJm1~NQsqj8Su^JQRSV?+Un}fchg)_7SxkqheFSGtkMixPw}%e;18^CY zeOkY(98>Z!IC_*%w6P4lLjZgQ3|ANhx(;{*mcU$(_#YewTFB-Zv$_gBk&t6Z;KQvPM6dqx*1Op)yZLbtv5vqvIf zWnIjG24HZWJrzt{x@ZVbNj&NcJ8WH#NA$@uv1+K?ZQ8t$=%F~<8a2fb1WWHlsKnL+ zwH=F>o$0S_wmd-R_1COC69dNeO@rQ=eXQqLzqH<<<8APr@4v0Ip7~N&hyXS>T#|l?K^vl{Ktoe% zU@B$vV$k?|%(ky+m#XWOtLxNjpH$74)PqQ!=J>_Rp)356d64J_rEZZZe(jvTynYr% zfT{*phM!$Y6Rk%j2|!AM+|2_OfBy#gl85e_H=MkJhiBh>62J@rpVo8tmX|LqNMKI* zzm5NZiCeH&OBDh^l)_PO61cEpZ5On;+}Wzj08v$0vm1z{HB{PE0Kb-T zq$ZVubAkmK(Vsk&XS95!5vJ8i-KPMO@S!Cq0U&@#W>Ah)E&bJk4QI3I!&D)st@G0- z$Yv`+TFHg>Yyo`v)x1KgYs&6*(AgvCaTw20zM#@+B?Q^>+=20UF+N?*Knf<|>MvEl z_Nq=G8lX96L-{5Y=tf6&+>*B!#bRl-!e65wS}`aY;9F_gkER?nNoz^6zaMa#T&*T~ z9T7{%-*zfq@Nub1T(*&URv@+7mwK9 zq<1MdZjOasNvOTbaOhHgfLVlY>uUo#u=RFs;vDU?Flag4*eQ zKxM;7;w!%)OnVU1WmIU=T)L6;1ga9;J}sw#gH+ke`Zz930vDEqT&F=9x+l3`OUK-S zN&0~!ah9?7@_1lrwIN$oc3cV$1h4^GxW+W0G8=Ppg?)>wfg6 zXVffL@yE|p2>xcI@u6B7_W2NO2ccOdC19?`*y@zly^3E74~Cv&D|O+vnay;>9m0=x z<1<8QEmTaT^^8&w5BSc`s$prk6tQP=rh`$++F^=BXC%GtM-qT<4bk08eE9oJYkAA= zyzwSkYSoZj$k1blN>~BR42<5VjB~J4Z3m&Mc8BHX5oHEhN3}}gqZl)TDuM`d{n9S4uE4?Q2#U2M;`mI z*oM(+=KC@M#PJa4<=pq#0G`7L8=0olu9RhO4v8?O7f8h7p_sO*F*6xD`dG2pY+~`v zk|FH3>SUhSX)`*O9INm1a|d>8F@x!Y))AiM>67$^zMI)yb9nH~oY}&~48Q)9mxpIL z0uIDXGisfk$Zdr7USk8Pn(@izI6pbr;rDN4WxVf3EPd-kiH0{`72}DpQ^#|bcLT;Q z-MI_`QFq*J*-!cLUo#SvX}LMD$-8Q1^N1Z7`tnIE&x8^Tv-71FHrG#>Qh5caRnsxB z6+N7tRfIxiu-u%i=;kpwJ28R{@%NT`_Vg2Uf^?&Q709X1tb~1*5ygPL;BQmn6I4#l zc}-7BvZbs#;`Ulo^g9`CR=iU@6LHI)*wzc^g%mFkkQZ^^7qCT3YiFt(>yFBW_dL_F z6mcpdEh7-N&)lECI)pj48_rgILM0fA;uENSj|%8Ak<4&gbT<2ya#|T00ji+ZX=){) z_%@AAR-MtK%V)JbpE43rNcKo)eC~2__(fzAND3;b$doh@^IG<5VWEFHYGAV5IQum? zRVas-9aX?X0+?>B!!3Njr-v^`@-+$&qIUu znbpA211sPkLLK}4#Y4{4tixMQ00R@9sQ`i z-Bqf$-Zh*@w+2w3e(Q&8ThpNhJz+t-{;ztEb7*Y43HAvpLwM(WoYF!XY73Z$=PaF& zFF)*5Q2|~z7j^@rj4E>_yX9QpYI;Zl`Ae;JY8I{hE37Vd!*?6dOEmC(T@Wk ziI*K3x6^xIh+z@3c7GXj__(auvtGnWl5zryNQFMLJK9=j*Y1Vgn}XUTi}b z{g_7b`;0))YRWX0X75;`xht+L*^FW|3DmE}8(v-0yZlHY1IJ{kc|b06*9YIaAPdmd z{>ofkjiChS;;H3sNz(Txfs0?PP>;AKBB*&69Yda)&5ucyNR=+Ex^weK30ZsJcpPU# zpyfl(eLFg}d$Ba$_ek>r-}MtlI0Vs+@lMr|i2YckuO4#11vepGju_|p{qMH>j(0bl zVI6iXts#mL)EfQVdCm}}6X?Q?x}W-y5;JLJYmyie|1E?>U_sXXDb|tik?N61HP~}> z2!4#a&yNNy>!Y-$n42|`NVU#ZPKFbLh(ybKtOi=?THkrR-pt0H9+P)aU#y%b@Cot>LFjloC~ zq6%AZTBA*|+64dW4`WjYGwp1(FiA?ZB)J(*mD2k6kbCQ5Z_=^5x5=4?Io!+s=SlT2 z8^dkXMFTgx8ZaHywx?Aj-I(rtFz&KWtc&|(oa8qn@R1as0y+yQ%;$aPVSolGf-G%# zsSqQ4bApzel{?})2UviWx4Q|%qwg>#k9-&b%WmH6OeHVrxwtr)-xr7e_L2aBvA1F? zZcVBTxT6k_*R#yFP^@7*Hl^A(jrr!2z*j5Nvbr+ejjTQ6MbtmLODQU7cxx@cz9K@0 zC4cZp{or6m2kEzch5F?_tH@Oxqy_>i(J1V?M(Wn+UZsrj-i(mC4YvJZ<^&`b0ynM( z)NPX3$nLc#WrLsr%EZjl2g~a>XQ6RPI%p?WJ#o~)&U6dVde5hUnIdMZi=L*B%WD%s zUXFAUJBJ&x)7J=^jkhPubP2MdQ;ucz=2QNK1GTk{9NgSnSFXg&jV1+V{^SUtvAhg` zPQIG>s-8TSDn-H-BjZPCBux{&dncoKl*ZCph=CmR)4Zsp$jtSV;EAx6)sw-3r$gDm z1k5qT&3UYoOIyLqUPbfG&-7L8#6X(8T0f=|TkIy@+g1t*@BImZHlGrBO$~jtP|#(N zpkX7Mgglx)8rU#mq}GVXr<#I?x2zNZ;QFN>HRkn82`soM**c)-eO$4&5anMO(o#}b zCQhkS3GfiEd@LAL8zxx4^4IYS`b9etE;GSoi3pgehI0Xik1fIdP=p_^53HLRe0;&Wy91(a$4sV;aoJ^q1;wewS zOtb6Kzg(NU#$(!I!p-{iADmwMmG3_1)5?EiZ-kWQ*>LK38Y zRwy^SxGpm!HO9WX+oV#VQ1}r`_RM%)4H6#wJy~$Z6QmZ&#(A?g_0}I}*u&bRydxo@x9|{sVpQaTOeM3c@v=(Hc(f} z8XRR@ZBkbMI!KRW{M*zxiKW!uA(_2c?Cw+$9{$AopP`b6`jkG*7IxTBV^i7(Fe~AOQfzr{$p{-Q2Gob{?~F z^e68Ps)IWwO7q>ZxEDPR#_PaVYKkmnFIA?Na+sMcb_aqsYxP+2&*5?vFZ}%rQlr~) z#QciSF9p|phXAX`Tc~pXd1~5HY<=QH)7AEyJkf%0Y=BtaC&$aGj{&#{p!|a}#lAkC zZlfRlv8m*^Bei6v4lBV5BsNSMKXiGU&P3~Oj=#Y#7u=c3dCcqX4#&q4p_OW<@?bo5 z?D7T&o6HnyQd85`)}~CWEF~~}%@-H!5ZmZ@To+FLtuCK6$lv*Tr0#<#!hdljx~+ZY z#q9HZcU$fwwf<#1fnD$eQ6n=p-o%mm5!2*!X!D%4|!7QrceyEq*jBHpAO-6k@9G`8*Y#12Uf&As8ELo=Q<;X z#nAyj!m6wL&;knYbyQFa#1h_U2?SbFMLMfWh85eqPsX=L#m(REA)t%_J>8vM=2*wV6zp4|Uq7iB`~j=!Ysecf|ci1IT1a2iamEO7_`#IH4-6y_@Em|PrZthgiH?xCIG&UHNw=$0C|uiELlv-GxMh12KY%>D39ZT*Z$D+Q%g z&G%OZ5O{HqC~tG2X(IK~@^j4#-o>HhaTXc?NL*XLzDVEphvMj5+gccoXP)@drekJP ztfw-K7VYmaU{v@7t065NzA~V|Kyo|;^Td$zW%1=|!#VEmfj2x-n)LPOOm_Ck0N*s= zl1QLo-CE=X-M|X~=mX}`sM|ES#H5d%u;s0HPLD`*C%)=I0kWPi$vQJ!E4^5FprAkA zrU))MA1ivepFB^V7)T=Z>c}Nx5P0J`p^+XL4lBpw?c)U)ey9d!gau$jlIGJ`bk?^S ze0Ug>2qh{uuUB2m1vXh>406ctp;ZI4gF-0zqu`#nBJ zr0g;gAGEPZ0Azc2dzimQLk~@TXCq^|Zn5TQ_4wPXaYb=?vIL^B`nxk+(!7%XyD2=% z#gaRJ+Pl1ZQuthu0o*l>%CK6#i|G(@g6s;(0>rcY9B-~@Px!sH2NF81Vlr#;tbraM z(weQa?iSu1ogI^wc<=Pq9JeN^YEcaCGJ=p`%TS2K;`OZ)Da`6fzq1J z;4|w%uubQ{Wm%+nbxKN>%|-W~UW82T#Z`S#<3KQLA7aw0+t)Ic-Hle)-7qy58(SP% za#mtqrOmx)GeUq__2PZ*5WCUKYIrQY6e0ix(x;=Zx#oMbY<4>v05FEv9Q|b6Lqh_d z@2)-!nLlMYYjqqO6}B!%y?1{sU=o0RT(rmG@g|+Oovzpct4e6OpxZZjQ?_KakTb>z zIsYls%#y!}_8sf&I4KQ#@ql$kBxJSub35WTL3*-l+HsA3Fvrv6^G&pC_C-;P+wyFd z6x*dx^Q=wK-EL!3U6TRIcWhmNE6ZUa%f?R(>h<-H$eJ1yAg;>LbwUykOp>I*pVnfn zd)HjZP&YFduc>)WbUnlL9#AF8fU_OUZHR1h{OoRFro_`};|0&Mc=MF*zJe=g_B>)XxQzy+Jrm{?_4nNt z1kH5hd-UW)u(HyHcncWud%G*D!UDb$dTUMBX(v{A*(C;4p2mY4LKpj@#71=$5!G@i&&kk9}JrXFYfA zPQb!Chj?fXZMZl9fs@RDRu)e8=TRn2h2NTmHVwF2(oQpuX>~0UgY_^h=Bpx$CR$p9 z(cUHK(C2wJEe=0(oHJg(9r*_?greI2P?K-|3S_pwKAg^Pmmjl6Kh)8V_+4dO*p)@< zM*_Tth`dzDps>ON%M~g@8 zYAVV6wh99h)D4~mNZ2K+bw@Bu@v<`%0>OE@SPqvpVrQ@Vo`5bYNtF@9&J1BPFK~!= zu>2dI7nIdrwj}b0PjL5ELhGnJdU56<$j9< z;+q_<2gkBq}+|Xptcvm!*E61UUC%E!OA8zg!SG-|5CUcg*td+N( z{s68yisC*FVK{XnHIQEpIu-uvumOtu?-WL_Di3sg2JsvnWsTl2#2A-cPCQ?ayo_Io zoN1KmNK2^6_?%9lXjh9|t`?KTQSJLIx@H&TkPtjh=yHz(@74!aV#oyQ+ve=lE5b%j@wV$zd$s06k@@*3#V_;x4I$xLhfF%o%pU4{o-kfEAzY}e4>J-avvr8B-xwT<>knzLK5yyYJuD9To;1${ZkR@Jw2F?f&1{WW z4pK;GuW^`Rpw)+tOG%`5w&$8jNusyjh-5M1XL=ruLH0HNA4KJHMVEy`;xAF*iT@u! zMgP>ubwbrFV1G0v#J=k zu2U#0F?^8MtYyDkw0~In5WYdgH(PpoAgOCFK&`(~SUVHJCF(FHxU402wm!~wea$)4 z>crBjZ@iX^O;j6_E%||@0S930&sVPjm0Zg1!L@+4r$H*L+@%K6qATzd z29M?oruppedMdJk4wRInB@nWxIuOSn?93&eDxN4GC44hzy;CQu110W`>#f@V_#;Sq zRTHnNBt8#?h{ofz_RBB3MzOWwiS(v&Ko{J;;#$?|OeYr}z!#F~Wv^j%iwa^&!*v67 zjGPa>?&)SlwgunR%7sRcl^c9em6J%TqMM>2Yk1s@TOWT%96dQZwWrkx#tR%#QI)gO z=2vU9pxo|?86cEoOlfA$o{6+01-~*{Ef?p?2nYCop=;-cc?`>m?zIRuB=@R}!9!(U ztNA(JU2iTHVd`wrwr|0uu<~bnqY*^W+lY*Gt!A9R&*P5Ugr>k0uBtM;?k~*`dY?1q z`3@Diim~14`$A$njS<;<4ZMVS^)xgzNP!-VX4|F zyBDazb;X+&;vq$$Vgft{=z0EA3qURwf#%l^4fFgW(A+Uj8Be}W;`F%5TI_O$XUaj8 zlmP=6WoJCrwV!a<>Bb}_hU^^bVFYq_gpH`3Y8Nc7G>!Gc#_W&zpCzT0s&^03Yt7(U ziOs(&Du^tg1zj!&GokC zEluGI`!Ig5PW873G%#V$>h+h|oI(P)EH26{%F83~HwcPzm0}V=eY?KevhH=7hVoTc zV+GdFOY2H_WM*@SkZoscb>Zy2rw8>Epe!Q-0AJOMP3e-%al!MG)L-nx*cMj1&zn2j z-*tZBVvJMwRZ=^8C%=T6zUr`%-n)hU!lhgYTCd&?>kArzzte&O&^P0dMbRIyE4|SE zaUm0)b~uY=AidIPD=c?(^O8k|3D9}j2lLO*8~Hg!qJE+$)mldJo{BZ0z)H@3admNd^T>z(NQRI)Af-w zGh~;YFL<9PS~(btgn_GWKPluMx?VX+Q5n0GLv}{nUI)pM0CJg*7DQMxgfqrvXS|thQBD~-eAVwAhC8h z24KmAiM)1e_H#|bX$jtcJ!!~{6NHV%7 zlUcqvlrJrs<_k&`1J-vN+6|&Zt*7id#6?huolIS8Ci2sPO7P%JXTnaxd(%q1{^UL| zI+r<%^MRA{-btI)yfm;`WT^b4_V+WYsJpeqg3p#>1+s#f;V1sF99Z{PK$H&jNo8B#YI;JE6 zRDoh6l!-2LFiHulE9?&aEYi>2{aOnO@ZVG$<&#|vEWM;2zYV0v%#$8ndNABTYk#NQ za=~wZ8rUqD;}`EqV-1#iH{AMQjQ@pbLp{KtfDnWXOP-_-(tb;Kmy-IvtfT_WKL-D< zUB$G#jj~gFyOzsM^s(RhA$8#DfdokEEkl+&VBL9%2X;!mV>~gIf@0@n6Nl6%WK7lw zxp+`?(2_|@jYgPo%Mk-OLF?!$Q^5QE+BlHFQ?mc5 z=JRZKKkME_&ua9Z27mC<{L-_*&g+?Bq&b7mN=<1D@)GGIS8-qU1}ed&fY18Yi>gpl z&8594P7=!wVrvwEh5fm`61t9V21)Bf1ZwjiLp?Y^k>9n2)oDPW%Kjf_?U3jzBbSp7 z8yrEQS#>>D%HQRhzCxLrUNhhSR@Q!VzA?XE0?D7&2iBj+AEx*Bs}G?JY)i;fV$ z>Km&JzM7|anca$gXH13zPI3Hs)ptyfGVE`;a;M)2o@wNQkC%DkF>og3sB>yx zK{KB5P)dXMd9{Bu--l>vsft=mJR;rhar2-m&WI_t9XllvFq@4;^I_ zS&IOmh@Ii}lpOBMyQixL)yRJm^zx zpd1I8DNejPExv~O?>AcE`sv=)`yjF-Ohs~0DmS_g&m?yROk*ethN4$C0fE;w4Y8vz*B1ATVqj;VOTMWR7F=clyoBBloz{f}! zFy;+q)>M-+UAH#>L6G9CQ=xJ&MQm9ecAFR_)~^TYgSOofCBQwt8mF!jbT7qy7Nz|h z0TjGgPH>H2o6H}VgDt{s7hhkwjL`qgB3Ght^Uj!KXGJ}{{zwE#kHYv~<0K&InfDJ+ z_2*7)ap#8S&sb?^JxJ1!mR?PIJF;)*Zf2)=Di^eCV(|ez?4z2pP>2^ zhuP-{LHDIDeO*9VH}sRQmO-Gl^0FQbc(N=;opGXId*DjEyx4UNYuJ0X-Rv z>nofmc45|`+}bfAqzi@_cJx(Kf*g)zw=jynMh>X)fZyR{8n>n7mgtpzuBlwWecOO# zL-W3VVGbr}ER@%Nfy-6DTr~jYS)!%<<#w2L9_If9nl}-GUu9r6wcUEV8!z*G9v-TzX+{ zG?#nbwWwrQ)6J6Sz=+0N+2KhISgNSg?O#~d*R&ylO9}=L9M0-*)acc@+0teYR~U%l zJpGJD5={yUJpFtjT~9fq^d0*hHcdWM@Ns z(}>(}69gZ=2gJM(>te&v=iuF}?A5s~e3C}`d6*I;(YRE;cBTBXJns?%I&HatSSOC( z8V1t78imP?GZWS>+0SJtt{jBtBIfWZCGDg1&?d+p$q~(kJ!!c}NJyxvs>;P(wyO$< zKWz5?xj<{9?$paSPo6Cga6d)ox3e#phwZyJ|C)(rO0zD+d&viku;@|WWzS>D*-@cV zWF&`T7JJqiqu~}q`14lV2+8B)A0Xnn5F7Sl>kYQCl$Wq#h6;S;9lIqoqr|YRe3beg zvE6XmbSV72KQQYy#`npl8=kr?KERy|F6*wz#(yks|O~ zw}31nt#5a_vZ5uM@Pzf@etT%S7~or0@B$Q)7r5cWP<(mC%TC6rfW2TJe1EM%8)(&6 zumK;rpntxX)w`Z6(pX>GaFI1KR6lD^!%TlvfhDatNQtompWA z=C481(^rwYzuFmu90E(Uzg`-+0wcHmbCQ=QzImDKvi2u!7{?V)3l*T_-|PV-xq(nD z{o!ADe*M!&1&Cne@6+p_#$Uu4bw$!Al2yy#7|%INMm>lXew z4}~kAldcre-`6Eu_`T6+O|l_=YJpZ_AAV=|!{1?qY8Fv{Hcsx>rxeHN70B`9O<-!P zF?tCr%)ss-K8BQ}W{__tCh$5Db62LKs&Pg?Ae&y&@CEoXc{rZlZ!E-J8GrqDdb~nY z*BbGMNKJaArYu~!SdAX?-$YbsqVrZ3lF8^Lk|4<|i634L%R8VBb%`72eUG<+5c8Wr z&H`G2al$)&%$kVbsj2?!Z@aC{4w$L=+5i%>UmNHmKY?I@Lpc`JbTSvS6+hKPgUIvE zx%DL<(;QYf0J#8WO+DT}Dxlw*PxNAtIl<)z3;(yGWnrD%YeB!~@rgGj0uCA*f?*xZ z^*e}RzBS1HAr#hMmkz&Mx1!68|oEWCXNlQV*0AMv7p2k#?L@A68$wUe} zr{Uo*N-fSp2hu4tT~G9UPoRHW?_*HRYjN;UM#xrVT0z2aOJj%3jZO^uEFdV`T^9;b z1rbD&r+yQfe?jwM#H-(#J-60L!@hYu>wcKSC6txRY7jtR!JysY6~_*-*^eudN1) zBCE)K>po&6TwD8!fC32s(^q|Zt6r}D_iodq=3p2Zn!^0Rh=C9&PLVmWZ{G~|P54v_ zdl6lPUHDzA`;bFYpA4lwOHA{ITGjLHAUYIuC!BmhB?jq0y3_w!{)Ug1&bA`23+dK# z@TW?mU6}Bc&gMH*H`kS!sTcFDvx19(V%!1IU5&?motb;O4w?K6Agi#ju(EQ39i_iX zMIVt1=JVEr1CUeYHsNOiZh5aD6e<8eK=#j`={X82YW>3BZv)|6ygfb?Ju@8}7Z)7B zPn7)k=TDTFF$3E_d2uAUR5Y+*r_yJ`R8wYK?;>hbqU0u^044;u&dkmGeD+%i=xDy| zcguc2W&2FFxRxd4St{5HS5F?TX~V=)3e+sym14yKfg>B?#KsGY?<*oY8LzAn&gV61 zdA+-cKu;zE>d)#ThN?LEg@rUYNNoL~IVC0ZY~I{cGGjh(L4qTpjj?c9HFt4cGFS|Cz*_!oJ3OmRU{MMm5s$j{;76z7X<>L4V4#{d~Q zAL)lA#syCk4uzK*X;OCEDr8jOUGx3BXS;+I<5Bny+&YzPfGAGL$W}`70iIyXTU|hB zJz!+oR%DQ;iffmP=`&ozy`e7F$?1N#a7#SJ<+Ux9+mb>)m>1IiKsZxT87F2ywO9>* zJ1J6WZgk*T>G8gf(>tNL{A(Om9t(?{VypUh8ykI>wS~ancqaKKYAN+jY*hK2Vi;qD z;S zzjtK+eg-xpkh?%RSw_QOnW-qAqK1?RKTt%5pY+CnKymZ27)R2sS@(u^ z>hIVx^zZf6f0-S16%YQ#HC0buMB?+*PBb<8LG3wK{`O_6J+wU}r=qVg>2mZ~$N4$S z8lFZ%MGA8Le^{;01z=7`Z~GIcX^Vzi6!))$=QO6`R$cn|zhC{h$>V zYsA%8zJET@3f&~QEbLnB9f7u7%8iCc0u*>2IHJEXaDPRPt^}7CXV2vyFWWk32)Vt@ zq;xXcS7XGwt3lpheOIIf(}jhuR7pFC4_e|Xkp#N6yt&Q6k!DEi`#$$R*wt zE<~Ygd)@aF2o@T+wlAhju(U26w&lb_mHd8xI~bqZC_~X9{T8-1c1hN&*P8ZRmxp!r zk-J>L>82h}WWSXhEhM+F@DNQ(8OQvT1|s;}?iEDx5OFHu1#Tw}}*qGl3+ zt4atekxeL3kyOQzZ2v|Aqk7J%IC-`5g3Lcv>|yG88Ja`a@@G0}Ot}3+N#CsAj0b)k zKde7Fjv@=0Kt|Wi`5E>%Tlzd4%NT8?= znCOZzjXAPX*ao#O#93?Gje856R4&#by(H>Uk7WvVX#u)$`vaLa9B&OX%CL?E?$Te! zj!Buw4SV2KogwlMPH|t@`4jlDbdkOVd^SWPDVEp?k#jc>G(g(hT@KrZu6_E`f~`dJ zmO(x;o0(!Zu*Rbo~|aaK=>V<>Pm^g?Cc*kY5!}u8AY4Hr^O*0IUB<>L6f$ zvptGIw;`~UhSG5~x|<++4IfFI=_h?DWJ$h-nEpN6yrq1+$;!e@eFni_c1$}^9&Zc$ z{Pfkeif3rxd7|pvafdljiA_%4_g9n=E;SxZzAie_4J>;cl)0($r>gKP5~5oDiCXJ? zebqePhEC|3wtaleAD5PzC=-Sm9$|P_f#rR-aD2xLNHE2_UOsHIUie|U+C@iVqQI5h zTEQVvie5-90N{372@JcFmMl9>ng521dJ=AS3rWBxdz8#m^t3LOum}rptOIuF@M1C* z6B(w_PugVC+|W_XRS8<}pc_kL*iS(~s~tYqFTQZ{ko(Yqm-q%~H+8hb(L5J?MJFV{cJUyWxHUMZ;7o_>do6t34?; zM@4_3GCKGy?P#QYyuM+dn7T+Mnv@Pn@5R*d`r-y=sRvmzc)z+ukua_0tQ2mb=#L0l zbepUF9rzF`k;PShmM`Ce-(kVcB*S_J|AbNhyJoKrYEoe#Zn&Pd<=6(zPn3gg>+$Ma zB0jh2dnKp)(EpJVsFj@Yo@siv^9&9PNo)49#FGTIAEyR;KqRg$_75)cd`obG$fc&X zd(;p`Gy)y1{_tKNYGVXwHq)c-p#1e`E3J*?WxpxIoU+@~G-`Xaw~Z4+&C=|FYRsyX z0&?AZ@;uWm9^*1a4cA_;_Z1~2AeZ!NP;Q0uBhElmPm!N>4U3*@Hvq6OKhl{{O$uF+ zZ!0|z-qseryhd21qCu&Sz&MI(K?SXY(QG1Ne>XAEGOyre_Ze$)X7}+Tf(qYvOwj4M zTG7_P35N9F()qdf5?qdh5RtX4%y5-m&A#xNLeUc|6yTr%M(QE?5Q@rz%T-*YCvCqX z$w-eTN+wMBp=u63^V*qv^Jic|G&hUu*{qkW)6O{O!>CzllH`mc`_$;BtQ!@=O&a?J znF)%v%gM3X$IU}KirRn>`UEGK#vNVe<_RldxW+1(8#e7?UE_(Xp@l?mj6v^CH%2bZt?W-zX>Vfm;q++GN%y}x> zFRtJnG%a?IizU~*NK|L0jIso4&>LN)X<($TUWN6!65uK<* z0Tz!{LtfcVYKxz>au>ZIk6SK z=kd>8Xt@Of=O>G4zuCoDp&q8M#0QR|uDAOD4j zzXj~C1`+cA02GBH#}u?wTFnf`s4f_WTU2JzGZ(FMrDevUV|{>0sECsyAS9qY+ekDEzHj@&QuM76qnWf!FM@&?510Jm-%d<`@Z9eHB}z+cRrpZgWD#NbYS9mOtL3 z6YVsJZ0h7)P!FfxsJdju?>HN-pt@>!=2e%>aq5e&sDyi{A=9UE8Vt^J0 zDM(y7U(N8Fx-1;btyp%33_Op)XhnAxV^f3InNz8-myUzzqMZ^8c(yUfBCS{`H9y1bpaL_U-lD~asiuXRcm4u1tSl(0UCwW#e|M_C;F zO88HdTOa-9Xi9jLa9CjAZs0vVl;%g0bvIcs$w6-ARo>M9kIhzG9f2nY>E?b5tnF~9 zMw~LHddG(C1+#lhOsG5EIo>Di2%1BLon`U3CU|P!da)6dWc0-XUO<`Bx4f@mgKIMi zj4Ie^EsfPIUOz<&ou@9@n`y6XrHNY=9s*&T3BTp56swisU*=LFfSOaWkTFof3*Wm6 zq&qDNp#v9DrW91xpUtoFq_4ET600W%l?}5ZoY$;HFgX#>j(k64g3h5N^KN9V!0 zsRZ5+S#yTWt&OoWQz>Og_%z_QI!qPLWk~jpg+cj3#}U|kYbos;UW@EukOlce#tBF! z&LXl<09K^@fLiJZDTU&SRj5=?6ARAxf0q1X1R!+CO{dd?`|%V}zWw{3fmoK688Ba% z(%Za9r8Cy55mO#e2v-$6O5K}mUTB)A6=QI|&i(5;0w=pOPK5<3{pEyh;f>$l zjvJgZP}Lf}NuTR2F1Fl+m%X6YWvpH^Iiz~ukv;J>QG-=Jv49)L%&#iKqWS%efe=9s z+34uQN6<=e!MuC<>&hx(4necsl}XI$+Fv^6n#8G;`Tyb-69r_^xB1-mE~U{)B2{EZ znKu6F&`+ET@Lq@WOzkYc(!Y5wHW*;4nrrkqeJ<{O8}M1lyWiMT_^YrT3-~V*C6bm6 z|G#K8Q-_4#2DWgLFgc`JLrbRL9-3%u6zKrPK^pITb!dA7IjAQnJCCZom`=pb7h{)OCCkB)HB*}3)D<6Uu*ieL0S z5>tHQb)!t#c2@=sR!uie{-yn8qujaOlpYs$4XgD275&?1r#XvCdjB!e0iqVcKNA9 zfaf0o2}y$G{g>xwQo)3?zXc@UurppgWA3~LDNqkZt7>X$H+)m7WshQIybk1GqeJPJ zN9Fy?s$`s3#|p)hG}_`VUF_+dj6eTN@7xv#?k)bB`1A40Z_UuopwrXX|DoiNgIGg& zZ-oY6(`d-F-+It3xij4@=7xifzAaui4>X&Qo|NUg*zV)IyQl7~wIr2$OA0|g>)&Jc zFmpI>z1<)^lCsbb0D!Xk+aqAiO4l6?z&cV@{c>(P>GWIDlWp?aU z>rJ)7t@Raq`34@)HBHnypDMs-p?JH<+93F1hLp~1e^asJ2uSoUq}|Ap5Kms zz-T9SH+90Qzu4e*P+|`i;&H4JJbBI#sjzR2eCS&6*PzD%go1wZ;Q&ThLkp5G(*xxO z-p23n*~`|`=83v-MIz;L)?RcMrIXk{WxSSuY_YWa3yUFW&gED1#p{jXzr!n&Uu1j1 zdJFkoNncwX@wvIWBo}v<)nq}lQ<=C3X7ghcnGEFE(GV-p-x-g5DGdh1Lhp@8H z?@QJd8a5#PijGR_irE(H6_*(mH%W(_+>iQ5DiWr_N9~Yg&}=8}uW%pX;3u(lE5>ho zNYrKnUDwu^?H)jKUR60QS8JV*wDY5r zte+;i`B{X@UTk!wQ*R!}5b?+Xt6!t-{TOM)s%J0m1Wf^3FXT8$lDAYt`=!oG&vZsc z7bJ5mhQU0(LK|{dE1pexc7nUF4MAVQ_4cczhLAJ9pf7#3+3x-pUAtCuaB|2(69x2a zw;h^b!+jhk!-!4+$P6=E=SP>-RZyo%LX-@eH}frVsnRmF?#-lvH)Oz;an_XY{3jku z*I0}!EKsu7U&ErAQBgH%tW{$sYZ2NX&frP?CYtl;u6)lN`Ld^nnTpe(d0a1-W!{TO z;jvZlnOiK@?YcDt;s%D1T6b-^;nsqtmTsHT{>$&xQivS>0~q`8G5P_SV4+s?;z7eD zJ`Q%L!H_7=&!3%1>gwVxO5OlphJ5hKW$SZ!?~-a?uUPe0TqlTJi{)Or2u_$BjoKQP zL^YmY87YU}D|u*>y;Xzz@|*AO=F{$a4KdQAw2Lug(U37JNt=fCZ`-mwTw+tnrl^cz zED7t{t{LUqos-UhLuDTHxA;$Zy76_Y$BYI7%>m z&FN>zVh@%Me2TicnmUAwX0&sAd3X9YQwc-u(JHCyjkH=C6g^eMN<8LP^oY68PHF+n z`0lRS#AmKFMXn^$R|=9S;V__hGmixG$^!AkfI92zR2b_k7&uN>5u zhgEY7FTavUK300B^ykf2$#v`-5)djSo=|EE&?7p zjq^r6?hRtNct&d3l0)st^BS>{uY>cNg*PFROS1rMr)aw^-i6sDO<5bqf}S{dVb%@c zW|u>X4KyR(Q5)k%)yXYg6MFZ_5PvP%*D_x*Yjj_A@L7`CV3XZD%RgA^CMnhoomw?OemF~h$83UpfEJ->ExD*tUtv#>TCKpL59b<#pvX(ca< zndHKng+~?CSGRc$bIb(d6^=1`nh8o96=S@g)-UTrAJd&oeWJ+b8`G$ zvYbmB+Z~m+D^7bL3B#LPT09Dgdy@3&qaj2#7tU=}`LCkeq{D|$P2x*2 z^L=O_9MJG=2JRz#)oJ=1fmkU>AXg_NPwnj+)8TjAT|3n!r3gZk>(%&y$TqXgDo-|O zTzj7k1Vi-ggBP0NhT*vakD-Uxu&r4e>XWkSgga%E7~@odLTqOY;LE$ZkI{fx@8pnb z$y-rLbdXfOr$$W=p+)Y7`Fd+t>&S-xy~K-nvj);9=g+rMl|)eRCe zdE=?;GLA9C&(dA#sf#^%vc6}6K|ReaoeRCwa5*ttqpK*U4S873gaLl+y$lwO&ADbU z<^zE8_O=@9OhZ*9x8v~k zAcB*uWMebV!m4OB8`$}9N&~IJ{Dg4P9wf$BWeDqUNFM2_hpNnV# zQaxeTR}Vlfsz}g|G=Mrz;C&n!5G{LwfIhKTSm8rbNPIee2)dLAh{-RxJ{s17h70M1 zlRz$623K z3nma4sv4+*J{nJ3<5>w>Daj1228`ze#ZQwZt(j^xyi_))pMFok5~qw zUNex=~z$zhklXL&2Y;nRtBESIsi%#cDWz z&}~=KrNAaiMywm=jH(I>FmVJMc-=6U1C_J=mYA54)QI%^eN9(7 zHjPC)UI29X9!sC^{M$?s0XEFi!8^`t+h-3x8%zKwF075TvFj#>fK#Mk7c{~mfk0dQ zptPeyugebZzrwj+-{k9}CJT)49FB|&KUJHpB^ayGAhtwSqO6-+^ySCw@AF=Zp^N5t zOLT)BCfMQnidZ)O%)`-2d}J08gr|*%@VG- zA4JW;=T}N^c99oP9Y(4{-jPps{f2xr`36Drc0hGl=)R3Da@xSH@BGBOAIopl$N+{7 zAQibc&GDu**}8SLKuJNFM3=6loljf97%8}Z3U&1HmLH*XzIM)Tsnwb3wNqD7A{!pk z>Acp(^yt|ML_|FfsVI`8cu#Zn^bXw5?(Qk&N#Pp`J4yeD62bxrS?3EP1I4la#^=LC zJ&f)G#8Lh1mj)>^Wo4zgGWwND;@;x&?ON0V8H?8UvfmhO`jrvgeZoYS*wO-`?#5IN zbqQ?vqx>$FI+PE(@)noMuvZ9b?`=p5%U68Bt+s1+hvN;Oe_nrqriMD1w!17<|77ga zmA0(7ypy@RgH@~FdktP7IP3ds8LQ}ufIzG3@uG>5x}c=W1-%ta(2bYlI&~-g!PDhx z&$DjJ+QB40h<_q@!{l&`k2&?UsN_4#Ong;r%QIZI2fs4s3}hs6({|mvt1DhkjhW(h zM-h$Zl8Z@%?#aeuJp4h<>B=DnG#Lm}7fJU7TW@_x04}lF?d-?zY=d?W9)h-eafBcv z&=aPiK#;@SI*Ct><>1DftoO+INs0JNOV;SnqF1Nub|!XO-~k6MZ(erxNZ)d`FREMb z<8Z%SEq`l#kFhnAkP&ZJP&GmwkMA$LW3-_5&O~@*L4LywM#y5E3;~+hNnD>71%1Ov zSg4`gJ6||}R@OLILTc)hOAb1KeC{uN_v7MYD?L)796JFU?7`{yAxiB~upu<&)`@q+IdQ@@u2~4l`b1p0LM$ z`6AOWi#jPV`7^!$O8Y*$IA4}G>($c5jc=uEI6^K|-o|I?VT0T+-Q{AlVMkxcHJNkM51FQFxLhEy((=pxsy*(o}y>bu)> zoS^sWNlCh+bsQ8+4AN%Lvfkp}v~-LrLQ^6xl5ZgS=w(AgLR&J_Df1A+JU-&b0syoqkItnS~yrwa||+cw+}jp_pL-gsS?4>>ZxrT0%itFc=)t z&n(jH%C7gY9e7Zl`7FVO^FBdS&+7|gM_=H#S?F}K&=)-rPDScwt8+!qW0qg?3~sJH z&ZiKk>!Wixtzrv<${ps;EXIWP^^a8raNrH}V~bE?1^F}@tu$7H2;N%OwCPWO<4Ii# zuaZuD;W0b$y^={K2UyhQa2jkFd#+60ADSSS7W7e~NwbPh~HgmZbB< zss_-0Y@il8#q_}wLdA~KoAsvdlb>@f`VlI2wX~=l;;>d72Q4Myvi9~2di9BhKc+Ho z!+I$*FC5?GTg|^5dcwYa75FvRH!?(FI$QZo7Y9wD z<8*!DJVjfptEl>q7JJB4u^89RZJQQ-z3LMqK`VTp-xmn0_fhSN%^nW|O-5@^FS*13 z+=^%##cXO8@$pAf)Ai0h$-S6OrzO^%zxg$J}q&t-~k*-?lejYaeJ-wx01e2(8>mTwzBgUxto4lgf7x!DsrOe>_};rG}2oXk0It{6^hZ?_#9)DcnodhPRN_)waeyiW*Q zqjWgwq0CKVVL0~rs`16Gw;*&^Z=Uw++? z`&@g%l3$mT8x1by{_jDf4UtHr*Yq($lm1mSdYk@t44ADoDl3h)Df8wWI6bTQ&~ZJ# zNWYBDnz!c_rQ_b%b(IwB(neXk{_V{7d5RQ=9N#75AIPl&udGfmnYv{>T)2GW}Wlv_z#6<{$H&Oq%mKPPW$5$kzr*ZX3)8Su|*xsr$An$~2K6 zg%IjKf_oG#1-uqV{@D_#zkO?fOsK34fUTLv%*c$sIPU-lWLq8JTKa!~p^Du8Q>bUf zr7Gn6;I+y zKsjg1=oHNmzC>-O8$ZFH#`!$w{I0lz7^6@^y7R5f`sCOt^I#kts52@t+|`s1DU;)> z`|DI%XN9^<@@Y-_8aV7xHkqKb0)l9Tb}@6e)05yrt44Z?<_Q# zi~FO^xHpa6?b=8^FNrf{nhZ3Yy3LLSju=5k_Q0Qwf7Yiraph+v?x`M|u?~MWT94aq z;+8h+CI6w8^jElBb2JzY@t?&t<>z|nc7-Pm~&QOh+#+gciXmaE9pHmFUi_7MAs*f4n$8NBp{p^|k$aS@_Xz%GZ zG+K_`vp69XYH!xd@2jIT<{sf2{36lQJ!e`X2{Pw%)^+F64u5 zuB`^unk+^Wwcnc|*g(7^^jYAvYC%D{oA=G+p?i3!wMl{R_194yp6NZltnMILaCu4z z0UtPor&r_pjNb_(CVP2J&L%auQ@r=ZPjOe{{l*49O5EN)>vrfid)*%(w<@g+<8Z$2 zMdA;snkb#>H9b8Bm+uTb@o?(S(;iNa##Q$26Y=^K_6LwYCHk@pl zPxa4C%bmMdzKRwfC3Us*plA#>>GrfsG9!(4b;h@6%`wYdRQhnU{#gCeYkHX0dh>E5 z;o85`=36E+*@)_lw33zgNl0#+h;aXH?Q!##Ml2tPgTu`;-v=DcM<48~qkdHLa-o(T zN!VHNVW~YY*RXOR)~1Edc_E-JAGzs9!hBT+o9A0uSzfvdrAR_Au~2gE?xArR<}1CYv2|oXE21G~!YhNXk*!(69pmWA>Xn8NsSC|m z`c1nad~LTq_K~3>3Q&9K*@V(;)8WwA+s=;4f+PF6^2KxK8u1qy_yo@47AH&Qdpt$7 zB_1+9TCGccJ1<>phuiS)wAhd^Y@+j=07~zn@U=+x_No&kA`xkgl=HAC!SI2NIreLh z>w|VsZc*7&xM(_`&qIk?grZAwtJkXQ?nW;niY?=mVXfUDrJNXF=>4eg!kw%z9xJy#CUikj4^7z zTqKE!#|Q}&=iY^hrp0j)%BR+L7d_oY8lZEE?=ZGaeAB)>(iuM`-qO11xCT`VV-}|_ zGfCT@c&Nv(iLk%pLPR8KSjcj6I!)~2K6pF+Ri?7-x$L>4*m}ISPIoq{l|@6KiIQXa zJ&F1q2^bNjA7SID1XVy%`EO}80xtHfwwbFXoKAkymW5*|ip#jl- zqU_kC@Q0h(Wq0P1+cU@<=JP*djG&|;zdT7oMQE!VR7A@QPDgiq)b+|q@eamIiSx2J zhzZAsj$Llen>7@E5VKvk-2O5&mdVF@aBEz1QCg+EEvweq=|~#pczPl<|DAQ`;9iBs z@o+l~+Qp1bY;MduoHNf#J_@r3wA z479rIC!TMnQNl~}pIzHlv)c=pSVa=g#Zg!OIC28izd-ln88sJP>&v_$-L-FTcyOIu zT&@)agIHSCNo|Jg*ZDo4pVlFKR+f+SJ$zlanu~c?e7#eVz%xbs@0P!;)~=`*4i8SE zoVJ{@Uy9=tV4A01)~CEUw4xSr%*YFhi4zY%eBro6NjH-YWy>_I@WE1`>k5->-JImK zogF#e9EZ-PZv+W7(o(aKI1844NAhWqkT2WUm7ZAk@??ZV)_OP68}X~&gMST2<2c3n zV!xS`<6}n^dK}Q$u#}Voff&Tg@3M#MZ!}MEZPD?Kh~!W*xBE#BM3J|{J7Pr%kjkAW z*?U)3)_0tUY%M^=SU`xpi0K#>jn8Nd%%Dhkgr|Rc9RAhGvOo9DPmZLZPcFY^ZgaDj zW33t$^MgW!;Y=s2{sk>P>j%(TKHCYk6#Tw-Uj#oJr|HrYde#N$p^>#e5+L%yAVD5I z@&0&jo5XGMB-UsZ(!Xt`e`!QQq_c0DgUpG$&; zoh&Y|_urVamoEK%*TRm1Xzq!w=w6cUttJJcCu%tqRRJl!v_H$k@N&F?OMTu|q5A8< zSXA5{&arcnsV!8DPu%SVO_%fxwN<`@^S7dR<9Ld?BYSquxs_Yob@JTeqEz^995i4hV?n(($z z&{I9AbIN1yKrl?2FTKx>oeJypE*w^SSuK_+La>)8@I*miwZ4SnHhRnU-DWl-&HY$I zCDOy$7?#2o3%xNEZmokSPK?b*YSQl=iu8{g!+BPli z?AfBZb7W;>wH9h`YU>bWNY(rX2QW@xGni_1gRi?447j}MK00NHrDw_N0O zqVDvD`e#_*rIdhZ?vJ`eg@u_FhVLzoxzIPT7B1PP zoMH)cIx4=4O491&1a<2wczK|_`QGj3ncyohQfB|WovKQ&F2>-aJz>`#VI~Yix>{dvuXdib$oBlTk6&BIYJgv`SLb+sME>)MBh*L$AqBw z_0}l^J^gqg90h9AM-&J^B+sUPN*59%hN$_g)gCpK_=(8#Ujuu zvfWERP@0t~>|C;F(=ENyd`u|)qbkhX)n|X|XOWT;*KXbz9JGIUIAJ8rXjNFd#Bz4J zE|%Q#)i6;k_zR9t^@Exz0V`GnC7hVk$NA!Bu2G7Z{6=mffYQOL7h|%zjEX3ezA{I! zFsf%`>naSDn7=4=KhbWpT*fl=JLpinz@Yi;{usll^Th&2H${a7+neO_OhX%(^zf17 zJn%IYl{{I$8V|V?WUO7gI5?lx%6~aM}A#PE4k28|cwPx#25I z@_uDxu<_pZrWjsio!+Q!Bc5!revklwiM`wHrWX>0rkUsId5Ldt2W)QRtYN~0X7*!NO z%_PjI!;W);`x^5DA)E~w;=7wx@g_DKv*tT3+2%v zl#h=!!cLGE9L9IoLA_E1)I{*sUkMpN30YsZENy0X5ff4iLvKX19&eVIvgDHK4V$h8 zN9jQf-tIAhkz`FVk&X!Rj`%BzoDhKN+c$80KDtFiRZ>pIOE=+0^SbieF))A#rPZ>_ z>E6#x!^M5AOrp9x6F)sw{M)6Dfzrx2VPeyMyVoybu|My~Ac$QHwf9+!?FC2VeAkUE z_-O6c&{pM5y1#QB zr@4rUwcm7E+0-ZdqV-i*A#6f@$ZRs24J)V|d#rqcWI5c=ZbUf&nG(Wnbd&;~EzJ## z_PQkc@!HCC5EXt<&;8$ZJy;782Ti!S^c_fo)yP04p-OYaMLBXRi1w*t_O^ESQ*| ze)s!T;WL!dG24aKs7tDZ{QNN>(h+VeqxCwIkV&9<4e}PxZ*eBA=V8prp24zUq7?;Y zBt~A$%cb2+klI>WE{05&^EbI|D{& z&g&;;^LU^6+d?cZxEFwywV0U6WCCO{R+epBn-}O=_Hg3~yoU~{-bWc;smmoly6oqP zTA-YrV0-evOp~p>#jGX0t%+at&UUkh`3V3rn08X5@5%g1m7;-M1fOO#502`&E%|%c zlMENd_Nf_#x{h)V#VWT8`u^|FO-gg5sd%qXgL~aL5pXfLc75qvH$?VIki$MYs2L`6 z)^hvUhS%?u_vo4`Q12(Tl7faJk6s#n1}P|xj;pxq*(*9eDoYHEhxjP;8em$nepbKT zUP?TLf7v%Nq|lbUsZ(VlLG86%Ll|{gj<*vAY2*F!y_B&T;BB&gj5}d>YncSka5qdf zDf;7RmFjAwFg_-^rwueWeLFx`o=TTVjmTvEymC?S=xLv}11cvg8}@xF9-^O+_xTp! zdM1-qwNpX;#8^yZ_hU#68Y^at;7Z63yWS}3L1G#;0cF}G~gjyT8Y z2S;g_bsMPYMmqMH|3zoSf1q<7w{0i0grfKxAa_qtxF1>fV4N;$wT)%f=%A1Ofp zI)_E`JS&V__+HrzL9#?1HhZac{+wcJsN|#5c7p-`0r?q>1EQce4k?Z}u|c0m@&SP;Hl5p073+TWBnN7h6E55qj4dUr{LPd-`B* zNNt=BIrY3AU%3`UVZT@{JwA2&n1J?pt$6W1a#-8m-K!KTej}xnmk(cZz3*x)+qY5` zi73D!)>K(k;@1qSLaF{O%dj~ab^+I;Z0H14dLXCgKm_Svw73)8O5;Qc$0^kE_^wuq zICLLk#kLvRa=z6!d)`J4seh13e=*>oF${ za~`$QRcxK%mZ4Hm9t^37d){%|2$)doI9-pnDDj%03*F2l5OFN21mJfbf9}5pAA!H7Jqb>Do+N;;&4N7fuR|+}cPrSOgEud51xC$Kw z)sHNH+x|G$>pA>d2s*dzsMgO6uzTvY2ne#C$yoCBv4}y!-C@9vdS0BH)*5<0RtDj; zEBfL1_~534g?`cL@vVhwS6%7HdEp8JEt*&PHWGpakKN1Q1R6}159jwYPxuMGd!sgJ zGYm8h)DeqyF-W?vM!D+lvi-^pQ9%lNCC&HR0T&p7Xkr`ngKC;=b5t6titsMJ=@Ur0 z+`I<ZifNS8nsEfkS={0AKFP?+xl#>l6A&Huo;S8C2Nl| z$fO{I^XWJdWe*;R`^0ay2X$yV1z&7E4H~Qy95KXXy!nERGAd`ZTdPuvz(2-Ax|NDi zyQ8_pl7uOa4WxOcF?PQW(}3+P{@3$|kM?4_iWoAB3Tus5BgItGeOZqarOl|!!@O-< zIAgV8Q+!YS{hdX1T+m=u)A6ME^r}xeJQk{HHSM_h*@kjzD0J7VJC~E?k66!Af3Ov! z#xT8%DT%vX)P9EKzq;c(iXe}GVP2V;Ij#Wp;@e%?n~&HhNYthHkU4pj<-Y;~#bA(U z&IQ-3@3p{vOh%dJVF7)ycaY7ll`R@8r*7q!KPlID<%0IFJS2Z{@AzK_TK{SDjZHUp znKvrk-SPR;{-qwQZxo2c^;PFBH|FLvj^pP3%Czty@=wRoi>{n37Hm(iyKCHgb!?e< z-`DQ1$db62Lm_-nSF;Ki+Uu=(7f{+(oy_L!?P8_Zs;sZ#_hpPU)_4;COYck}ct$&r z%asrkuuSEHNhPiH4f#8jb7OE=uchRMYS_@Y&zazBcBrDVXM8Vc<*MIW9d}7c=p6H% zi~Ho_nJKqpSt=D~25H1@fDY2oi=N@rn!==JHxe~If@Mes#dwW&RS ztH=mA3o-_G9b0Ag2G8=AI#)<(E0-FOf7^S;PQ=d(U$lVT6Qy@DlU;EEuxsE3Tzxy) zN<0it{S6BEG3zrY4FBh~&zwZ9nSWpiZmxAV;zG%MAWy20Ts6YwNe zb*GZqh#gHI7~$LDEBfY1u!XdJJe|}(FhUBr{4J-QK&SVj;Fqv-gR@||<4GPOqS`P! z77q9wz-sSm&Dm!_weigznP8WbgN@VUrGe82JJaw%k^AEz-Oj!QT+UUwf6_gbe~SkQ zWoayS*VbMX?QXW#l}trj>S7AtAUexMI?Foh&j&6lxob}c$fqlOgH3+t+)a_BXA-TN z-Sr!6a_nUg^3Vn{uPKQD%u23=C}ovO@rmabl0JhI9YRd*2RG#lY={q)@56a3|>b#$=8?Uw|fx46*f2C+$hP$^T#YyS5*AlTHa5Zu4t!N5&zkNwVs% z%|NRIQ(02xtLkGpC>r;_e;k;tWenTGcNga{a_(G>xeRwk4OlCArKd94#=GqA$j)tC zp%9ABZ8-1m(AmZdDvjD1C`NwNTF|+5sN3JPwl266n0uvGci8QR??~iRKn5XZof8-j zrR}6+F6(lVI!mwoj`*eh1`qz1#T=4%8B{YR=uxD9;+Yp=*GPS}D@KWIDO28nsze+U z$6~F@#KocE)IxOJ=jmhLL7t6)^GCrytsy?tr-eTWV0xXZ)RToTl4TP$c@>c?e~v9wr46Ei>f9XKYHEA(Ua}wWfskG ze2mMup$Af<^-RpBTPiGz4`I=XqE(rGX*3=!CBhUr7bpq@bs5bUSC>}$mU#W0xZJL( zqQ+ZD4DtVndPmKEbzIwlTMehbbLn#P$7?EFpcN3zs!we(>g!m&yp3vM8`e3d0}qHN zp8C9XIAXfUfiLu-ow)V9Ry{TObPQfYQKx%YD(t3X-H6`Foa2?(PbZ?0W~aJqFpunh zrGqPuS38x`lK03QP$qTNXDVsWyxg~TcwTu*4hROZ3~Q&>OChDtwEV4R&)*+adk;n7 zk#DD9v0lIj-bd~RUuDo_PwCP=9lr71*`XX4tHqIBL%VJ1b%n*m( z;(B6Ij;DD3U$yn(jsQA&;YR*G_m`+T&tw~?&#UY{$*0(@r%eiY8iX!X?PX~nr+9p6 z5Y?P^h1hRt5Ftcjt4DgghTMJBqD3`2y+8i$;4pv$1N@GDA{AE#%|FxKUy| zAosG1tX|p^_%EwW zYL*$kQIk6}{&n)*899y9>G6&oqBsA9BNk~&u$Iy-Rf)Vf%c!Ih|^uaRBDl3aFBMQF4rb?8mo#NOH_W`iE1|f)=fyDb z0lCr6N6>E1bl~7@yA>%z)ldPP^lSF}A*b=(;mf!aQ3Ib&L(k;o7siq4t$#ZAH<%_7 zGw*b9&XKv7>OD_vABuYMf{+@||3_Q-s48y%Q{w`rlQxIO)o%l2ti!j8O~_J>w?zgG``&Tm-3n|Qzo z&{W=E&=$wRRuWG6RFmbPF`e5LSA;M8U1-jL*HE{3>uSS3YyV(h8bXXpc^a9;RDVyBdU9V`nmtqJ(MbnKu) z2J#o)-LUsc-;Ds2|rAT#v0&fB*Fls5ul=s;^io?I>U&X znNRPoZ~|G>`W8-uu`(WKiK5qxXtg5j2MCBcss zQ(mp}U~6{dkcotW2QF}^c$+))ZQs_FNWT*}j^F@f1To(;i-z1SJhjAokx4o}df>hT zEc<5LBV^>1GZ&ZbK>vRcmkdnB3x|Ht7_jCp>?go_Ki%CCAE6HU#N;a!$^ zz8$$G2=K)P)oy94osZ!!D;8I$vunwe*#(L!_ioJN?F{eWaa)S2GQCcNLx<|QDJms}A|0?Z*K0s-r#x1HKxOyv26K=W0OUr0 z_#J?g5B^dZ&^f&CY^U|ocF?s|m(oyx*zfhm@K*CPu_*7c<|c@z`i&eMA9`V>R2Lv+k*qiX93-%zi%o%uMa}C-dDP(}lCxII3?AImDNf z$(ai0@qKSQzjA-sIcEy<@1HOf{U3ds&=&qn58f7>1v)zMVUntw6} zif?X8C2xa{zVBY1aY0%Z5fWek(b*pcY9>FR4?)O8Hh%E#P_{~<1;GM9_hQqUogn~Z z56v-oJJ!i9$r&0@=9mnC^7GQWW7DPF)D!^#PZGjEa&4@*R+fXNaV6?cB7?V~Mvu}; z;H~e&=gD4hnqm&d`+CuH(v){_yfnc)D#d~twdOF{rddR5{7+4S%dq5DVcAzViN zS}qAT9Q^pYogEWd8OYmN#ay%ix*i7Qieys>$1Goienxz1(muGL`;~G0M9EAO6R|`D zTvx@pKYyww84=?AsB6_$pHgi3cEdfDK$DhynJmOk{L{;7iElC#;t%->to)XS1*|q|D=CK3 zl46kI4?9~Xoi=+q_{5`v0#WFTC==vhel3)l(>AP; zc>~>Fk>Q$aEbLk>X$&5%>#9TRK+}SU{PIT-zKB(Io35^B+N{pEXBswX25R@3jl@`A znTa=xc|=xV{{Q0FyD#8bnGTNGf}C24R$rzXGBveJC-uH2P0KM%3m7|trcdvG+|b#X zKGaa@X5Bunslei+1r++8UH1>WMez&ui`QNKTWVK)s;}Tr9QgI}hNV_M$cMjpTL%ic z|18Tc5PVV%4u+dGy-$DwthhY-e!C1Oot(CVQk!am%9&r!^XSV&Sn_rn)U*F)eeItE zj2@shX5$MR3BgxX*_|5qM=3BA`Hv=02x_E0wDlQ<=Y@Xw-*70Z|9_Q34fw5ENfPG3 z!%WZNdcMVjx@MXzz0^-fVQNtnO~^Vmji=oxFc&u}{|S9Aa|v(1xCgq<&;KAc1=+O+ zh1tKZQSMtg6Z21!`O<02r*V-EdE>wj2$UWvVP{2*FB=4uM|qGCkO8cm2>Qavf#= zSfs4YFZNgwNkP~L;^nHjroHP_=mEWqhTm7jT5?UXm@3&PT#bh z2cwSk+I3ho)?LOw9YaSTlNVCU^J4u80lw2%eK}VG-y`)b2K>(fUxGgY#k!4`uzzL& zz$#+b^UurdPxl0^;;Y|L(KTe38Yn=h^(!a6Pwyfyn{DD%R(Q^vetSsFf> zN9d)AjFa*TowhkV zWZh#5<41xIi#^>{wnYn}_3tuP5v$%`m`aR5>yBFZ`KPLYy%DX-FZ5xpX*THZh6161 zXfBT6VdGnG9ELZF-UL-0;$i|w{CACi62AORLyMh7bYYgXiauwm-@w-uR`c3oSR1eh z(Ee3D96nt2*Z97X*7IxqzRw(^g56iRP4g(M4av%ePg_GF?B5E~-FrYYqf9IKr6uK? zI?2^Czyt@|lxJ$cbR(nc($Js)3#(yp-rr32^S;sPoY+&pn_9h>=OXtgEV77YHLn6b z1P9ZUow&cP&15Ey+tr*M7#;N!G)bc&2mWD>E&njb-+o=9?H<>kxb~i+zWlB6Xr`O9>YkcRelGd2++m8$0me!$eJwrm`kGBNKxAr~bpqPq zd020|;V%n%PY%`)&Ios=(VipR{;rp>DJ5qwkm_Glk5Zh)5sU~OWIcmhFG0Bip%D(B zh|Z>t?4&fCA(N-1hRFS8Yr&c3n)FhICkn-Jd)G3<9u-BM>8}H-KJDQ-CI`O-jjRpB zcIKZvkQ95Zx~)>nBdbFHe(t)>J|1P;3 zfRpp5G~AoSzscQI>oU!%4@%aJj@xqElt`W|fBb!Z>ECp5{;_Zd_pzs&X4u|7awt^t zOA+(m0I-{QnN|nK!?()B%5Q38-p)ow*6xKHwrfFp~~)Hq}7lu*{J8Z}zdzDPf2f`eSsnPsM=AC~da=|Q}xvvc1N z{PQ7&)XqJ5AtZ`*U(x!1h@Te;^9b^{4WC7|_gPKw^L|o>)9=Xm0_de5@eqE{&!A=6 z+zxw+&G9xA)GV|cPi3mhY|Q-jb^UC(Qg+H^wew5V!Q{BTZs+s-H4@$UpvgctbH^<8 z>Dq@Md@=v2E?R9!eKk5I{a3d53p{OPHdSk{quqFK-Qo2?wUp~{EX7-QwnC@l$hXW_ zv0NO8QmgwKQOmp{u&PNAslMa3iUejN)P=QE|`=N2xd)fBkd#Vnd(D-#HyvFjq zgMU>4ikkRRx5ZOX@VLyeL%6L zTkzO#!=cp<8#d+rRnb&vQ8Y?L@wDC9*C|1GPJ2TptbY#xcgX)=27oL6cL88{@Em)X z=%psACGVMREz2nnO#?eML^Lh?Mbea{lDJT^V6R>hJX^tC2I zW2274&2wtU82B=s!Q-@edqX*Z(5YSR>&*)cRGzNzZB^d)Enwe{3AE`^t~WoNrp&QO zd;_xOGFJ?}$k$aPMRLtJEJX%pfBiSgzA`F~u3NJM2_(Ui5Zsbr!QCx{0Kwhe-L;{S zpur)yyIXK~cc*b}oQB{IQ+dC8*P5C8-MeOL@q<-WU45$hoH}RkNA~4*&f)C}ov)2J z1--gscOd$&b1D{3p3(ExMixg9k&;m_1OFxCrx2a7>4TZ#tJf-SGmCQp8;>k-%Mg&+o@ zy@1TeyQ<2;L1Q~Hak(XR;dtGK`alT9;VRwJmXSgrw>e;zd3Sok=D-v~<$~`W^})EG z9?$&HD7mDmFj;yM7AM3<@VsVV)^YIhMW2Q>xWf6(@lep3&S&K@54=o;P;#RIC=Lb* zk6t#km@Vy?OX87EakQer;(7G3%gie%voh;ixWnC%YcEAZ9c=UB`S(RA~nVthadEo?m&}LK(W{d}Q15 zMEWvIeTuT_EAm0@PA~juW0&tB?l$lXV~Xzdr*A=H8*|#N;g+Bx)_v_1xm6~_1@$w| z=gN1zQ_UOpZ#&TU`N#^c07mlD$4_(Mo~=Rh;%_0pwvT=ev$^b=g`0Hq<9qQo_#l~W zZ+c(2Nau*tYN+x|3ge8Xpia#yLhewS7H zrr!um{FVv9*8_|s(D?+hIIXbHkwP%+~_h$2i+BO3@AL!=AiGIcE6F|eOT zOC`D(wu?xvBgH7M_#D$(!0N~-WwnJnu&^qvE{w;huktsU9MKE)uWO&zx>T}O* zId^s2E=6K!iKRgVMfxFW)YFEV#^}7mx19I%_ynZTjEL|}+ZnAYQ!w%y3B^o*Q%OXd z6lCNN6g_A%ACD$Q@z;vnB2l2XZr1tX$OYdQwUxt;FqF&Mz6}Do@OrMQQsF+G&R{A~ zWG0~$!BGA2xGC@n1w%k@{NQ^R>Lw2v`@0s2Bg zynHuJ6dD4 zao$~>38E}HPiVo zjy|l;uZUQpvRY~Gpq{4kw9gl+S-tmxZ1KZ*%`PoTmENClPEA7lo+D=zv&f@_hLJ^t zAI|-DhTp;i%X;67gTAEa(-fC+JHk6NEpR|z9s^4n#nbbPHB-!4kN6FzeYu35H0MUr z#c*1GV#E)29)A-Ne|ek{Bqz})N`E}@>|hgXb?9s)f#mn$p{??E6fx6MPLK&H)w880y{A;)$9!iSxn+oNFW z&kVsU`d;9rYY(%FKn3%O7dzM`knCbtHTaW`w2)Mc5a;kqy3bVqZ1p^SVy$6DCyPEJ zkC}D5g34xMx2asizN?{2u_f>Qm9kFD#}0WeF8-WxK%F@{pE0J@K>yU#DM(OXb76Q* z@?I`yS@;B4^iwO8KiJ94wnW6=j=XBO-+wym=-U(SA@3QWQt89|1o31KX+9V2a@?BVb;|v6c zDx!FBa%5QtWXj;8Ai8?n>;246Vb3rFhHF28zQjH5>sCJJIB9M+aGP!`YDM7pUWNQ*UY8XcHG887a|)vWD*sI{%#gkX>28mrhoz?LQP zT`crzS{C9OBOP007IsEdo(I+z4S;uOW9YpY zdQ-7;fEc*i58B;0Fd=adCE1h&q;?-ZSIR|ZpVA*Sm0&i5?OagUdsz?Iyn;o$=PgD| zPxdMaLcFB#E9`yPp8eq%lsnDbihQ*r(_Q;y*7HUK4Rxye$#_dL;wPyIrkK;JieQ|( zky~5h-l}$EWxWBM?R96SimVDU5t6RDG^yzAfV{$M3(-!O{G@f_@$pAazYSMS7;nn%VB8A`_3wB=c8Y(@Srj*6xF!DEspF8|#w_3P`LEH#*&u zBa2uWRk&9`AVx%Fs2JaZ)X{{seMBu^s2!@Qx*bG*KEhhkiO-qu!}c28R{KqH;c zNa_MTTEGQvTbFJBd$SM+n7@cu=gspQftDR{U1#vhWm`De`}~pfr17B@8E^$P>(kaI zRDDH(@I6QC6sy#n)6rC~A|m2=<cObLKMS(eJ(4RAbSD&QkcjooBA5${gyL8FJ(pW*_4%q$!ohZN<>i3+n^iy zrQcy#h#ULm9Yov5^&i;x_N(GYPu>N@T4b=Hf3R^RfCdJ)fsJ~75m3^Jcka}a6$;Ow ze2~X7T96uBTMn+IkuIP}Z)bI?ug{Q|RncoKstoR!nILlnb7v9CX*C7}6-pa%r6aYU zBi(b_pIkqzJ9s&?IMWwxcCVJ&fpn`aH`VK(ma@|qZXJg7>50)tau*OlN|DhF;3ju( zrJq?ZD1`lDb?{zngA5mr9^*u}0)0!0QkWVqyFj~x$U{2cq6nuAGG&-2V!i|{3x z!i-lbWy59c))EsS+-YqFj*tE~6CVX2Q*a*V;UGcKFVT=@_^duB6uegM&fZKz_~p`E zC_R%$2mAdxG0WFcmze;H{XG#7=;pHhk1`I|3q6t|yneEY)=FcF_{7 zo?WGwTcf~nmxjm&1WE{Vsq+AO(ig09t@C|tJg7R5bI&vA$7IVV$dkul)Jpf*}X+2Gu|(p%FZ zr=o*_`MSt_OgAaZ`@_q2JIikZIxg;2)j89D?#8Bm$uGl4M9$B8PK?>#S0COKhuY)! zcc%P&jlc7U&{b0fMJi=O;3rKiLjP+PVr&IYXulNvLBGB@l?k)^gsXDaDh0`n8|}RM zs&aa^2lNdue)C&GtCLAjjy=(Ed)0_8(XGVI@f9+43bQZ+ZIfd?mN?>ZK2Ba0e)+S`LwsjuD?|I}Mu%&pF^_TiJ}!2cx7_7Px0t zMJy$G+zZFN-%UzcCBag^cEY#t+v06lW40<^4eo+_E?L%*(yJ&#s9}!{uak677*b!M zh+$1t?+&yC1`kc*qhoUK%5KH_*Wdg^N4hXxBY+~;G0l>jcAR+hA+QsfwH&Dx4LV;D zb%Gs#>)h9Z??}&z{rmwb*;3j#oofu~Gj0zG4+X4BL!A_FB(shdC!VxgytA-REAQxf zWh|atcS^d<9w;vho1oq^`Y;<8OnVd*W&;~bl11@W9^13b=)1gQ?f37r0Hd}_Y98); zCAfl(x$JyjT$-JBi?R1(lh)Z&O!i=4oKXGqa0`MOtNE=^{G>9mwtC1;v9kf9)=Swl z4=hHs_+y!6)zES{hyL*a07ILJ+2zJ1mIh%sA2T#zWY#CMj^o2M%a~^%O~(rZss!U z^(H1Yp_WDg9BV-CLz8Ke2O%QZTjzAeGqbovH4u!vi9$3vI#sV8^W0y#u`@pwd1iVGv4pg;Y7z)WVvK)?JFqw%ZEob>hm}+@ zl*4zc9G#$GlIv_6MYD6AAUA%Z!~JCjKeHy}(1W~(+Xye&{Q?HxI)8meM z!LA4Hwb;a&lDHMVN8Ez~#P-?)do%62_1e(T?odO<*SP$r^4@B2O@TyQqKeJlDx$hy z?~J~Lpp-Y$X4gx*$AxLGTbNPPgnb_z>O@5bYv9Tnagd%Cn?}MYtXuA{B?DsedKicW z+Ts{&*zj7d;I6p8371+619+aoed0&c!?!9+8?*^{vX~+y05s8EEGfCs;YlK*-5FjERlo34N98F1_k*9(c_L_0+!AgxvMi3EPdXy1e z))rO3CJ9XCJ>U$?h1 zb+lF5L>_kg(eY$iqddj!;x}Y$Js^>D&fP5dodR<@j;{yJm{ptf+_s#%0f3Nnxz1vE z+*&AUp*B=gMm*2!nS9aZb;-^WcVbXQ-QL*{;iT~3pEoLswIeaL-zN5=Md^iLj1o#Q z>?tcfAh1^;$qqc9xLa%l@#Jdzx+QR%PFYk4WF)_1H+o?bS9|JLOM=DDWMdg_!?b(n zZ$)yN{qoF`;>f~@+Cp2{^J3)56d#`rS)X$mb5QO2L9uFhFcmlF!AH*-%8cyOtFx47@LPY;pA{NOn>RMGfk56Br}PS4HomFY@;J;lDc>s-lo z>H>(|cWBUv@3cjF4y-W>fJ@k$=W<(T>48FTfPZtSKF5*1^!d;qkJe-V_s~scrfT>H zV2=*_`=P%l!-g*X`LVvea?t7P-ic9?_^f+?yT9?ZB1lFBr>3p>pL3toNLb>A#8;OZ z+;)WB68#D-_Ewx^+nn=gQBCdSG+pPSRSLlnrZTJjNuxiJ;mRp(SdM#1hjR&azS(2XeB3b*vPUN(Niy|SBjp0x5Zza1K7u4cTzO71 zwYn0i^>8_QqF{2YF|r38Cdtj}=`{Z;QCu6xoEbSitv?l;yS1+~=J(Id#71Bb6;9@K z+w-&?NjFM@@}zbIQ&$edCHIe)M0~9_7yCrgg5bOB{bAHJ@jsNRw1dB)oav_<%O=Sx z2es{SQ;ec9~{s3>F*7z>}2=YFO5$` z-O-+c%d*p7XlTACxaCaEp?kj`2XXh<*~9e=^Rt3qjr1#r>4;~cYssniRIyI9Kl3&) zEW?TK$%nJrmeoWHD?8S{5q9|JXEd!K#AR>kMX&eRyf35F*PQB}=^OYJm0wI6vEU~) zc5LDp7ku4dr{{IV1qGZn-Oo0-Mp>xowu!Umb0CcBGFixmcuSLV(_MIkJ>f5TJOL zCI3(B#65;prSo)F?P=vfglS-uvG!x0y76uhh%EP&OS$F%T`|QgDLx0$VLF#zYTm`|^S85r{@59CtuwlI1b2kV({YC;ObT*g0YgJDGGf!9_tXnW*ytTFdX$?SKtboYP^|C9| zi|XjyUk)~3Z^Yb&{Oy9zZ+NM;=Y;jCqAh;Ud+;j>J{YnQgUl;mOw2Rj!-QMWX|W|# z0xgWpa`XEXv;%-UC>I-8up zV+tUGCzkyWnmR^kL>#y|3YVqvY5Fri;k=r4YXq6Pz*oDvwp!tuR?>Fs( zz72}}AS~=LtT1FwwBKJ9-XctH5@Eb~e7@+`RurKTvC4R(8$bW?8AtvC>w^QbpUhfJ z^MoWCDyX2jzc{t7*OC*D#kx@Cq;NTvUgiAGZUxKBxhHv%2+BM3d*9y6=<3okgPOT6 zwZ863SiANoBO^NoKHl$|mdh5z#oLwAtbMGoGhQ1w-gJl{Rx`M9&2jny^@rk6flPVY zVj#Eb8Y~q!kFR!)b>wv5W{2Z6CyyR}HFh|w5ZL_N%41DI?cwelQ`}-h*TrMRhnJ^R ztjn&SbU1)auF>5^5E)=`>tveotc#UX5kc|jSZEjx*ueOx0Tg57zy_I%`ic)CbIDU} zqzjgxNBe*oapbX&#aod(=^N>H=C^kF_71&Gxk1?jR|4>T0C8NMC!0q=$tahoy>KL{ z1o!Vf-ipyKDos5sRy`~DMWi7!>Xi_S)_63_OVOrTl$*;5W9pn~>RJ+PbwI9mG@@3H zH|9rI_1gJX)LrRcL#pMtez@l?a7GSYiS~S_NshmWJ7pti*fW=~Kn>wAn3?qh9T$wI*;r4mwVFhBwKJ50M z_aR`eKHfF$4;-iggF#wP5`xdxWGrPAftYOA;)Qh@XdExpRt+dvD4nxbMq@!X-J8}gp}eWZ$|-loM?Dqjp~JjfsS)uV+k zo0=AY9y}rZSJcJTj`iXs?G>kc(6PQ?h4>Heg1-fiQ%ks? z>)IgoRNEhxCRF!1YBiCdG4?S7PV;H<;)ozqyo1Cw$CCrUKww-IBvs~Ay48)-bX056 zvDyVceJE3W{efoKRaJ6blazxP;I9v*wGDpG|3Nz(RFGkZJ|f!~FZ z@}T41N;Y4&fjDkv>yE{fTT(QF30v-ErlNbRso~UP{(Z)8jxzjVih?1`SxSJvT2Ii2tROE?|FL{a4 zY9JFf|5(dx(ceG?l|Q1|DF~#FXsfh1$ytB+>ulT57iour!A~zMQ2&*mz9^&9YM}Sa z)OLg*mct=?+$>RDq=5BJX6yz&kM&eb{_>E9%K^pm!FZ30O^f~hOxG!&D5>#=?r|=a zxa0st8}+i3x9)*kFIf~G20tZ4-Bc4e-z!&gVuDSk@xDvImcT)MnqM4N?Tr{I0-@~i z&q`h3%sFe(j~uWs#YIIWM4^g2>k`#|&8XmK8A`yqRF0^fs5WB0x4aoq5zdVUwaR%+ zRvgz*0wyL=y_rsGkn1V$WR(`rmOqKoA|j%`S7Twy>p!$K#$68&0r)jeT0L7pdBqIG41g~K1D)3HwZR=J43Ca$UH8dspNx4Kd^N7!kdJ35JAM^4= zsM1CLg_b^UZpEtADQluGQ6~U&Wtt{p6wPQlM)&?nWHNCju0C$VFg86W;m%e$9O#vY=s9>Jb~-<(YqUR zTy>_c4_lmxS_WIjfEP;cNy^KWxt>YH>zFkUHlQKy;`G%WwZ4f}5!!7+OSzQzo&E|S z%(m27@35mzT0DB+=maiGFI4P8+B-K%>7`?if%h;=IQ_kr`^n6!bh8iT5zfVGgX24F!7t+>Q{w1{*;@t}Pg?6j#Px;(fq<^Y*qYO4@P zk?RRup+8&7I+h)a+~oKrBITq98u5Z`7D}hX;hc)S1Hx^Z?CDh(`V1OK0!^WM23(%h zvcfyYs2ImidvzcWRBy>SEsbYI*GF+$V%*!7AdsZZpY8FEeU{=3do1dm!}A_!sn^3p zQM#Ve^d$)n-2}=!$K>mL=0{hX&B`RH`3^;XO%0J#PWT*Y-yR*sc;;Q?hM#Fj*_Ea*s)bu_CGm=dY&n>Q)bzYA2NfGwfxg z@a`nR{D9;l;~yvc`c zzvzUuaeRO^l~gvP{BX~63kU0b$iERABb^d2GGYbMQAyN0pGvpJnpg;FD$7xf*V@%g zee`}u77&ozyd%iAR5>=Te6mx!I(W=Eu7iOH>MYZ+Y4V#wJ~DyIeo@|P87Y5Hc4mWj~CI24FPlQVe{&Ruioe?{hB&bwSzJnf zM?TrRAS$Y1vsvy;8;hJK{f>Rsk_f5}o&CMXYw@_2N0QcMB~q><0bdd@nQN41vPC6y zlh&A+ObTJE`sZP)98dA-5GUfevu%~7=c+ISj^aYT$i8lR`oaZd)EmA2OpQ4T?{2II zmbj!O?BDL)GU^n0t=;@hM!-l;_VknL8Uleo`+dr9v7-Kj;B{vGywkg?e^L_?moNNk zFi5;OzUC39ac_RdAF^v7vk2^8?FjoDgFU^~`9k~j@@1b5#>&0&zhbyYlyTgDg1J`9 z|3354bGGGSjS?IGL8s+UX78Zb-%hcE9QGgi5I`jSH!_3F%hLXh{vsI&g13M(UY;5W zRS^D-6I(5xMs4aRt5HpV<(Y-*>VNsnAOh@ulQaM5uPQCambH&#d5R|G>$l!JVHvoI zKbZLU=yS6)ua9vd78~cgCO=9aKx>+Zq@HX-LQO696n_s3ChcJM*eAs)sqmRFp5xIf z$X!^VSyie=hCR#c$a!6)UB#MW`0ML0+Ntr=j^8qh|BBUZt_^=gzk@ax#$j)umZj1+ zCAY)}#ZiDve_s?-`<-u)lBxCRCYhVM`6Q`Y>lWOUvh=B>k9TEOs$cRdxPDfW|3YQ* zH&YZ@9=6|pGojZG+kf%1D4VnLC)3e0KEf6*Nea-<9C-yR-_7U~e1DFzf$%Yn^G`39* zi#rSlqq!uFQAi00e6jb~YEko&be?)~SL^M&&9;i=jeufd+;xi8YzV6pTJF_9XlLYX zYTqJp_V$_roLjNl<$pZHd?qAr#>YkuT6^Hx zMG{s zScrBB)+BD(qFq8r!m>CYGv$+%br3*K*>+Nl`l^(v{7OC~KtZU)60=lCPptScX;P}t zx4YR>I;s~E1)oED>E5MEj*6$- zZ*5qIKT`Ws;N&kg`;omt88ub#b$})55x3=kP6-_#X%J<>>oJst$w=+U2<2)V1vr~ z5DE(8gV%Yn6_sVFk&Egn^rWNp1}g|1eox{Xj8y9*yh`B5VXlHT;Asaq9-`pA7_69F zkzS0)mKvh4*o;nkH~oRrkH6!7c2$=Z1k&ZCC_|D0`GlQ)F8W^Rl6Ba{e~|ul;B|

#^I`a49-*aa1&u^t_56OMB!`(oM>JV8j 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/features/mocking/mocking.md b/documentation/docs/features/mocking/mocking.md new file mode 100644 index 000000000..d240474ee --- /dev/null +++ b/documentation/docs/features/mocking/mocking.md @@ -0,0 +1,154 @@ +--- +tags: [Начало, Мокирование] +sidebar_position: 3 +--- + +# Мокирование + +## Вводная + +Мокирование - это инструмент/подход для изоляции тестируемых частей кода и контроля над зависимостями. + +При мокировании, мы вместо реальных (продуктовых) объектов подсовываем моки - подделки, фальшивки. Это "двойники" реальных объектов. + +Например: + +* Вместо, реального почтового сервера мы можем поднять в докере легковесный smtp сервер и настроить систему на взаимодействие с ним +* Используя SOAP UI/Postman/Wiremock или что-то другое мы сможем протестировать систему без использования реального сервиса +* Не редко вместо поднятия промышленной СУБД в тестах используются легковесные встраиваемые СУБД (sql lite, h2) + +Все это относится к мокированию и позволяет упростить процесс поднятия окружения для тестов. + +Но также моки могут быть использованы непосредственно при тестировании, например вместо реального документа в тестируемый метод вы можете передать структуру, содержащую все нужные реквизиты (Dummy, болванка), либо обработку с нужными методами (Мок), либо что-то иное, что позволяет вам упростить тест. +Например, при тестировании http-сервисов передаем мок, который "притворяется" запросом, реализует интерфейс объекта `HTTPСервисЗапрос`. + +Основное ограничение такого подхода - обработки и структуры должны передаваться в качестве параметров в тестируемый метод. Если нам очень необходимо подменить объект, который вычисляется внутри метода, то приходится попотеть, либо передавать его в качестве доп. параметров и закладывать работы с ним в конфигурации, либо с помощью расширения возвращать жестко закодированное значение. Каждый раз, в таких случаях, приходится что-то изобретать и выдумывать способ внедрения моков. + +## Мокито + +Для унификации подхода к работе с моками мы разработали инструмент [Мокито](mockito.md), который облегчает тестирование. +Он предоставляет + +* подход к внедрению моков +* программный интерфейс для управления моками. + +Например, у нас есть метод отправки СМС, через шлюз. + +```mermaid +sequenceDiagram + autonumber + actor РоботОтправки + participant ОтправкаСМС + participant ДрайверОтправки as ДрайверОтправки
ОтправкаСМС_Провайдер1 + participant Шлюз as СМС шлюз + + РоботОтправки->>+ОтправкаСМС: Отправить СМС + ОтправкаСМС->>ОтправкаСМС: Определение драйвера + ОтправкаСМС->>ОтправкаСМС: Получение СМС к отправке + ОтправкаСМС->>+ДрайверОтправки: Отправить пакет сообщений + loop Отправка сообщений + ДрайверОтправки-->>ДрайверОтправки: Подготовка тела запроса + critical Запрос к внешнему ресурсу + ДрайверОтправки->>Шлюз: Запрос на отправку сообщения + Шлюз-->>ДрайверОтправки: Статус отправки + end + ДрайверОтправки->>ДрайверОтправки: Анализ статуса + end + ДрайверОтправки-->>-ОтправкаСМС: Статус отправки сообщений + ОтправкаСМС-->>-РоботОтправки: Статус отправки +``` + +Он использует запросы к внешнему ресурсу, СМС шлюзу, который необходим в текущей схеме. Для решения этой проблемы мы можем: + +1. Отправлять реальные СМС в тестах +2. Использовать тестовый шлюза, если провайдер предоставляет такую возможность +3. Поднять мокирующий web-server +4. Заложить в код обходы для тестирования +5. Воспользоваться Мокито, написав в тесте: + + ```bsl + Ответ = Новый HTTPСервисОтвет(200); + Ответ.УстановитьТелоИзСтроки(СериализацияJSON.ЗначениеВСтроку(Новый Структура("id, status", + "9999", + "delivered"))); + + Мокито.Обучение(ОтправкаСМС_Провайдер1) + .Когда("ПослатьСообщение") // Теперь, вместо реального запроса к шлюзу + .Вернуть(Ответ) // метод всегда будет возвращать нужный нам ответ + .Прогон(); + + РоботОтправки.ОтправкаСМС(); + ``` + + В это случае, при отправке, не будут выполнятся запросы к шлюзу, вместо этого метод `ПослатьСообщение` вернет предопределенный результат. + +Подробнее о возможностях и принципах работы с Мокито, вы можете почитать в отдельной [статье](mockito.md). + +## Моки + +Мокито помогает изменять логику работы системы для изоляции тестируемого метода и уменьшения влияния других компонентов системы. +Он закрывает множество задач, но иногда возникают задачи когда даже он не может помочь. + +### `HTTPСервисЗапрос` + +Первый пример с которым мы столкнулись - тестирование http-сервисов. Сервис на вход принимает объект `HTTPСервисЗапрос`, который невозможно создать и настроить из кода 1С. +Необходимо было либо публиковать решение на web-сервере, либо дорабатывать код, чтобы он принимал структуры. + +Несколько первых тестов были созданы с помощью структур. Позже возникла идея реализовать мок, который бы походил на `HTTPСервисЗапрос`, реализовывал его интерфейс, и который можно настроить из теста. +С ним тестировать сервисы стало намного проще и удобнее, позже его включили в YAxUnit, [`ЮТест.Данные().HTTPСервисЗапрос`](/api/ЮТТестовыеДанные#httpсервисзапрос) + +Возможности: + +* Реализует методы `HTTPСервисЗапрос` + * Свойства + * `HTTPМетод` \ `HTTPMethod` + * `БазовыйURL` \ `BaseURL` + * `Заголовки` \ `Headers` + * `ОтносительныйURL` \ `RelativeURL` + * `ПараметрыURL` \ `URLParameters` + * `ПараметрыЗапроса` \ `QueryOptions` + * Методы + * `ПолучитьТелоКакДвоичныеДанные()` \ `GetBodyAsBinaryData()` + * `ПолучитьТелоКакПоток()` \ `GetBodyAsStream()` + * `ПолучитьТелоКакСтроку()` \ `GetBodyAsString()` +* Имеет методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md) + * Установка тела + * `УстановитьТелоКакДвоичныеДанные()` + * `УстановитьТелоКакСтроку()` + * `УстановитьТелоКакСтрокуJSON()` + * Методы установки свойств + * `ДобавитьЗаголовок()` + * `ДобавитьПараметрЗапроса()` + * `ДобавитьПараметрURL()` + * `Метод()` + * `БазовыйURL()` + * `ОтносительныйURL()` + +### `ADO.RecordSet` + +При тестировании прямых запросов к СУБД также возникает потребность использовать мок, для эмуляции чтения из `ADO.RecordSet`. + +Для таких кейсов был добавлен [`ЮТест.Данные().ADORecordSet`](/api/ЮТТестовыеДанные#adorecordset) реализующий интерфейс `ADO.RecordSet` + +* Свойства + * `EOF` + * `BOF` + * `AbsolutePosition` + * `RecordCount` + * `Fields` +* Методы + * `MoveFirst()` + * `MoveNext()` + * `Close()` + * `Fields()` + * `EOF()` + * `BOF()` +* Методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md) + * `ЮТест.Данные().ADORecordSet` - принимает информацию о колонках + * `Добавить()` - добавляет новую строку значений + +### Создание своих моков + +При возникновении подобных ситуаций, когда для тестов вам нужны объекты с какой-то логикой/методами, по аналогии с примерами выше вы без проблем сможете создать нужные вам моки. + +Это очень сильно облегчает тестирование и позволяет вам избежать лишнего вмешательства в тестируемый код. diff --git a/documentation/docs/features/mocking/mockito.md b/documentation/docs/features/mocking/mockito.md new file mode 100644 index 000000000..63daa2595 --- /dev/null +++ b/documentation/docs/features/mocking/mockito.md @@ -0,0 +1,713 @@ +--- +tags: [Начало, Мокирование] +sidebar_position: 2 +--- + +# Мокито + +[Мокито](/api/Мокито) - модуль созданный по образу популярного java-фреймворка для тестирования [Mockito](https://site.mockito.org/). Расширяет возможности тестирования, позволяет легко менять логику работы системы подменяя результаты работы методов, отключая какие-либо алгоритмы и проверки. + +## Возможности + +С помощью Мокито мы можем с легкостью управлять поведением системы прямо из теста, для этого есть возможность: + +* Настраивать какие методы "меняют" свое поведение, а какие обрабатывают "как положено". +* Для разных тестов или кейсов внутри теста можно перенастраивать поведение методов. +* Задавать условия на параметры метода. +* Мокировать как экспортные так и приватные методы, процедуры и функции. +* Настраивать разные "реакции" на вызов метода: + * Вернуть указанный результат + * Вызвать исключение + * Не выполнять метода + * Просто наблюдать за методом (собирать статистику по вызовам) + +Вы можете мокировать почти любой метод конфигурации, **исключение** - методы глобального контекста. + +1. Методы общих модулей +2. Методы менеджеров +3. Методы конкретных объектов, будь то документы или справочники + +Примеры: + +* Для всех объектов определенного типа - обучаете через менеджер + ```bsl + Мокито.Обучение(Документы.ПриходТовара) // Для всех документов ПриходТовара + .Когда("ОбработкаПроведения") + ``` +* Если нужно мокировать метод экземпляра объекта, то указываем его при обучении + ```bsl + Мокито.Обучение(ДокументОбъект) // Для конкретного экземпляра объекта, + .Когда("ОбработкаПроведения") // другой документ объект, даже полученный из той же ссылки отработает без мокирования + ``` +* либо ссылку на этот объект + ```bsl + Мокито.Обучение(ДокументСсылка) // Любой документ объект с той же ссылкой + .Когда("ОбработкаПроведения") + ``` +* Можно мокировать методы обработок и отчетов + ```bsl + Мокито.Обучение(Отчеты.ОСВ) // Для всех отчетов + .Когда("СформироватьОтчет") + + Отчет = Отчеты.ОСВ.СоздатьОтчет(); + Мокито.Обучение(Отчет) // для конкретного экземпляра отчета + .Когда("СформироватьОтчет") + ``` + +Мокито не может: + +* Выполнять произвольную логику при вызове - выполнить алгоритм или вызвать какой-либо другой метод. +* Не может изменять параметры. +* При сборе статистики не хранит результат. + +## Принцип работы + +Мокито базируется на двух вещах: + +* Расширения и заимствование методов, благодаря им появилась возможность менять поведение системы. +* Глобальный контекст, доступный как из теста, так и из заимствованных методов конфигурации. + +### Настройка мокируемых методов + +Для того чтобы вы смогли мокировать метода, вам в первую очередь необходимо добавить его в свое расширение. + +И добавить реализацию по шаблону для функции: + +```bsl +&Вместо("<ИмяМокируемогоМетода>") +Функция Мок_<ИмяМокируемогоМетода>(<ПараметрыМетода>) + ПараметрыМетода = Мокито.МассивПараметров(<ПараметрыМетода>); + ПрерватьВыполнение = Ложь; + + Результат = МокитоПерехват.АнализВызова(<МокируемыйОбъект>, "<ИмяМокируемогоМетода>", ПараметрыМетода, ПрерватьВыполнение); + + Если Не ПрерватьВыполнение Тогда + Возврат ПродолжитьВызов(<ПараметрыМетода>); + Иначе + Возврат Результат; + КонецЕсли; +КонецФункции +``` + +Либо для процедуры: + +```bsl +&Вместо("<ИмяМокируемогоМетода>") +Процедура Мок_<ИмяМокируемогоМетода>(<ПараметрыМетода>) + ПараметрыМетода = Мокито.МассивПараметров(<ПараметрыМетода>); + ПрерватьВыполнение = Ложь; + + МокитоПерехват.АнализВызова(<МокируемыйОбъект>, "<ИмяМокируемогоМетода>", ПараметрыМетода, ПрерватьВыполнение); + + Если Не ПрерватьВыполнение Тогда + ПродолжитьВызов(<ПараметрыМетода>); + КонецЕсли; +КонецПроцедуры +``` + +:::tip +Если метод не содержит параметров можно использовать пустой массив: + +```bsl +ПараметрыМетода = Новый Массив; +``` + +::: + +Если вы используете 1С:Enterprise Development Tools (EDT), то можете воспользоваться контекстной командой `1С:Модульные тесты (YAxUnit)` -> `Создать/обновить мок для...` + +![edt-create-mock](../images/edt-create-mock.png) + +Примеры добавления методов в расширение. + +#### Метод общего модуля + +Добавляем обработку метода `ПолучитьПрофиль` общего модуля `РаботаСПочтой` + +```bsl title="tests\ОбщиеМодули\РаботаСПочтой\Модуль.bsl" +&Вместо("ПолучитьПрофиль") +Функция Мок_ПолучитьПрофиль(ИмяОтправителя, ИспользоватьIMAP) Экспорт + // Собираем параметры в массив + ПараметрыМетода = Мокито.МассивПараметров(ИмяОтправителя, ИспользоватьIMAP); + + // Отправляем данные на анализ + ПрерватьВыполнение = Ложь; + Результат = МокитоПерехват.АнализВызова(РаботаСПочтой, "ПолучитьПрофиль", ПараметрыМетода, ПрерватьВыполнение); + + // Обрабатываем результат анализа + Если НЕ ПрерватьВыполнение Тогда + Возврат ПродолжитьВызов(ИмяОтправителя, ИспользоватьIMAP); + Иначе + Возврат Результат; + КонецЕсли; +КонецФункции +``` + +#### Метод модуля менеджера + +Подходит для любого модуля менеджера, будь то, документ, регистр или отчет. + +Добавляем обработку метода `НовыйИдентификаторПодписчикаУведомлений` модуля менеджера справочника `Справочники.МобильныеУстройства` + +```bsl title="tests\Справочники\МобильныеУстройства\МодульМенеджера.bsl" +&Вместо("НовыйИдентификаторПодписчикаУведомлений") +Процедура Мок_НовыйИдентификаторПодписчикаУведомлений(Подписчик, Идентификатор) Экспорт + + // Собираем параметры в массив + ПараметрыМетода = Мокито.МассивПараметров(Подписчик, Идентификатор); + + // Отправляем данные на анализ + ПрерватьВыполнение = Ложь; + МокитоПерехват.АнализВызова(Справочники.МобильныеУстройства, "НовыйИдентификаторПодписчикаУведомлений", ПараметрыМетода, ПрерватьВыполнение); + + // Обрабатываем результат анализа + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Подписчик, Идентификатор); + КонецЕсли; + +КонецПроцедуры +``` + +#### Метод модуля объекта + +Добавляем обработку приватного метода `ОбработкаПроведения` модуля объекта справочника `Документ.ПриходТовара` + +```bsl title="tests\Документы\ПриходТовара\МодульОбъекта.bsl" +&Вместо("ОбработкаПроведения") +Процедура Мок_ОбработкаПроведения(Отказ, Режим) + + // Собираем параметры в массив + ПараметрыМетода = Мокито.МассивПараметров(Отказ, Режим); + + // Отправляем данные на анализ + ПрерватьВыполнение = Ложь; + МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроведения", ПараметрыМетода, ПрерватьВыполнение); + + // Обрабатываем результат анализа + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Отказ, Режим); + КонецЕсли; + +КонецПроцедуры +``` + +После этого, вы может управлять поведение метода из ваших тестов. + +Тестирование с использованием Мокито можно разделить на 3 стадии: + +```mermaid +flowchart LR + training(1. Обучение) --> run(2. Прогон, запуск тестового метода) + run --> check(3. Проверка) +``` + +1. Сначала вы проводите **обучение** - настраиваете, какие методы мокируем и как они должны себя вести. +2. Потом выполняете тестовый **прогон** целевого метода. +3. После вам может понадобиться **проверка** вызовов, были ли вызваны нужные метода, с какими параметрами. + +```bsl + // Подготовка + Ответ = Новый HTTPСервисОтвет(1); + Ответ.УстановитьТелоИзСтроки(СериализацияJSON.ЗначениеВСтроку(Новый Структура("id, status", + "9999", + "delivered"))); + + // Обучение мокито + Мокито.Обучение(ОтправкаСМС_Провайдер1) + .Когда("УстановитьСоединение").Вернуть(Истина) + .Когда("ПослатьСообщение").Вернуть(Ответ) + .Прогон(); + + // Тестовый прогон + РоботОтправки.ОтправкаСМС(); + + // Проверка статистики + Мокито.Проверить(ОтправкаСМС_Провайдер1) + .КоличествоВызовов("ПослатьСообщение") + .Равно(1); +``` + +Подробнее расскажу по каждой стадии + +### Обучение + +Обучение - это процесс настройки мокито. Вы указываете какие методы и при каких условиях (параметрах) должны изменить свое поведение. + +С помощью API вы можете: + +* [`Наблюдать()`](/api/МокитоОбучение#наблюдать) - просто наблюдать за методом, собирать статистику. +* [`Когда()`](/api/МокитоОбучение#когда) - указать какой метод и с каким параметрами необходимо обрабатывать. +* [`Вернуть()`](/api/МокитоОбучение#вернуть) - настроить, чтобы метод возвращал нужный результат. +* [`ВыброситьИсключение()`](/api/МокитоОбучение#выброситьисключение) - настроить, чтобы метод выбрасывал исключение. +* [`Пропустить()`](/api/МокитоОбучение#пропустить) - настроить, чтобы метод был пропущен, не выполнился. +* [`ВыполнитьМетод()`](/api/МокитоОбучение#выполнитьметод) - настроить, чтобы метод выполнился как есть. + +```bsl +Мокито.Обучение(ОтправкаСМС_Провайдер1) + .Когда("УстановитьСоединение").Пропустить() + .Когда("ПослатьСообщение").Вернуть(Ответ) + .Наблюдать("ОбработатьОтвет") +``` + +Подробнее о методах ниже, а сейчас для лучшего понимания расскажу как работает обучение. +Используя методы API вы формируете настройки `Мокито`, которые при вызове каждого метода обучения изменяются и сохраняются в [глобальном контексте](../context.md) движка. Каждый метод просто сохраняет нужным образом параметры в глобальные структуру. + +```mermaid +sequenceDiagram + autonumber + actor Тест + participant Мокито + participant Контекст + Тест-->Мокито: Мокито.Обучение(). Включить обучение. + loop Настройка мокирования методов конфигурации + Тест->>+Мокито: Когда(). Указываем условия перехвата. + Мокито-->>Контекст: Сохранение условий перехвата + Тест->>Мокито: ВернутьРезультат(). Настраиваем поведение. + Мокито-->>Контекст: Привязка поведения к условиям перехвата + Мокито->>-Тест: Завершили настройку перехвата + end +``` + +:::caution Сброс старых настроек +Каждый вызов метода `Мокито.Обучение`, по умолчанию, очищает предыдущие настройки по указанному объекту. Это нужно учитывать когда вы доучиваете Мокито в тесте. +Если вам не нужно сбрасывать старые настройки по объекту передайте соответствующий параметр + +```bsl +Мокито.Обучение(ОтправкаСМС_Провайдер1) + .Когда("УстановитьСоединение").Пропустить() + .Когда("ПослатьСообщение").Вернуть(Ответ) + .Наблюдать("ОбработатьОтвет") + .Прогон(); +// Какая то логика + +Мокито.Обучение(ОтправкаСМС_Провайдер1, Ложь) // Дообучение + .Когда("ПослатьСообщение").Вернуть(Ответ2); +``` + +::: + +В процессе обучения мы создаем правила, описывающие как будет вести себя метод при различных вариантах вызова. +Правила состоят из двух частей + +* условие срабатывания (об/ект, метод, параметры), задаются в методе `Когда` или `Наблюдать` +* действие выполняемое при соблюдении условий - `Вернуть`, `ВыброситьИсключение`, `Пропустить`, `ВыполнитьМетод` + +#### Условия + +Условие состоит из трех частей + +* Объект, которому относится метод +* Имя метода +* Параметры метода + +##### Объект + +Объект является обязательным и задается в методе [`Мокито.Обучение()`](/api/Мокито#обучение). + +В качестве объекта могут выступать: + +* **Менеджер объекта метаданных**, в таком случае под условие попадают все обращения к этому типу метаданных, будь вызовы методов модуля менеджера или объекта. +* **Ссылка**, под условие попадают все обращения к объектам имеющим ту же ссылку. +* **Объект** - конкретный объект метаданных (документ, обработка, набор записей), только обращения к методам этого экземпляра объекта. + +##### Имя метода + +Имя метода, является обязательным. Указывается в методах `Когда` или `Наблюдать`. +Можно обрабатывать и экспортные и приватные метода, главное чтобы для него была [выполнена настройка](#настройка-мокируемых-методов) + +##### Параметры + +Указывается в методах `Когда` или `Наблюдать`, передачей массива ожидаемых параметров. + +Необязательная часть условия, если не указывать, но будут обрабатывать все вызовы. +Также необязательно указывать все параметры метода, достаточно указать только первую часть. + +В качестве параметров можно указывать: + +* Конкретные значения параметров +* Маски + * [`Мокито.ЛюбойПараметр()`](/api/Мокито#любойпараметр) - параметр может принимать любое значение + * [`Мокито.СтроковыйПараметр()`](/api/Мокито#строковыйпараметр) - параметр может принимать только строковые значения + * [`Мокито.ЧисловойПараметр()`](/api/Мокито#числовойпараметр) - параметр может принимать только числовые значения + * [`Мокито.ТипизированныйПараметр()`](/api/Мокито#типизированныйпараметр) - параметр может принимать значения указанного типа +* Предикаты, параметр должен соответствовать заданным условиям. + ```bsl + Мокито.Обучение(РаботаСHTTP) + .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, ЮТест.Предикат().НеИмеетСвойства("Авторизация"))) + .Вернуть(ОтветНеобходимаАвторизация()) + ``` + +##### Варианты обучения (формирования условий) + +Существует 2 основных подхода к формированию условий вызова: + +1. Явный вызов метода с параметрами + ```bsl + Мокито.Обучение(РаботаСHTTP) + .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные)) + .Вернуть(2) + ``` +2. Указание имени метода и набора параметров + ```bsl + Мокито.Обучение(РаботаСHTTP) + .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных, Данные)) + .Вернуть(2) + ``` + +Первый вариант имеет ряд недостатков: + +1. Работает только для экспортных методов +2. Необходимо передавать все обязательные параметры или использовать для них маску `Мокито.ЛюбойПараметр()` +3. Если не указывать необязательные параметры, то их значения по умолчанию попадут в настройку. Покажу на примере. + ```bsl + // Имеется метод + Функция Метод(Параметр1, Параметр2, Параметр3 = 3) Экспорт + Возврат Параметр1 + Параметр2 + Параметр3; + КонецФункции + + Мокито.Обучение(...) + .Когда(Метод(1, 2)) + .Вернуть(0) + .Прогон(); + + Метод(1, 2); // Вернет 0 + Метод(1, 2, 3); // Вернут 0 + Метод(1, 2, 4); // Вернут 7, будет выполнен основной алгоритм + + // Второй вариант обучения + Мокито.Обучение(...) + .Когда("Метод", Мокито.МассивПараметров(1, 2)) + .Вернуть(0) + .Прогон(); + + Метод(1, 2); // Вернет 0 + Метод(1, 2, 3); // Вернут 0 + Метод(1, 2, 4); // Вернут 0 + ``` + +#### Действия (Реакции) + +После того как определились с условием вызова указанным в методе `Когда` нужно указать реакцию (действие). Возможные реакции: + +* [`Вернуть`](/api/МокитоОбучение#вернуть) - вернуть указанное значение +* [`ВыброситьИсключение`](/api/МокитоОбучение#выброситьисключение) - вызвать исключение с переданным текстом +* [`Пропустить`](/api/МокитоОбучение#пропустить) - пропустить выполнение метод (актуально для процедур) +* [`ВыполнитьМетод`](/api/МокитоОбучение#выполнитьметод) - выполнить основной метод конфигурации, обычно комбинируется к другими реакциями, чтобы задать исключение. + Предположим, по умолчанию метод должен выбрасывать исключение, но для одного конкретного случая должен выполниться реальный метод конфигурации. Это проще всего сделать следующим образом: + ```bsl + Мокито.Обучение(...) + // По умолчанию метод падает + .Когда("МегаФункция").ВыброситьИсключение("Упал") + // При вызове с параметрами `1, 2, 3` выполняется метод конфигурации + .Когда("МегаФункция", Мокито.МассивПараметров(1, 2, 3)).ВыполнитьМетод() + ``` + +```bsl title="Пример мокирования методов документа" +Документ = СоздатьДокумент(); + +Мокито.Обучение(Документ) + .Когда("ОбработкаПроверкиЗаполнения").Пропустить() // Отключим проверку заполнения документа + .Когда("КонтрольОстатков").Вернуть(Истина) // Проверка остатков будет успешной + .Когда("ЗафиксироватьОшибки").ВыброситьИсключение("Не должно быть ошибок") // При вызове "лишнего" кода сразу валим тест + .Когда("СформироватьПроводки") + .Пропустить() // Отключаем формирование таблицы движений + .Когда("СформироватьПроводки", Мокито.МассивПараметров("Взаиморасчеты")) + .ВыполнитьМетод() // Но включаем для регистра "Взаиморасчеты" + .Прогон(); // Завершаем настройку + +Документ.Записать(РежимЗаписиДокумента.Проведение); +``` + +##### Цепочки действий + +В дополнение к условиям можно формировать цепочки действий, которые будут выполнятся в порядке их "регистрации". +Например, есть метод без параметров, для которого необходимо сэмулировать ситуацию когда он возвращает разные значения. + +```bsl + +Мокито.Обучение(...) + .Когда("БытьИлиНеБыть") + .Вернуть("Быть") // Первый вызов метода вернет "Быть" + .Вернуть("Или") // Второй вызов + .Вернуть("НеБыть") // Третий + .ВыброситьИсключение("Конец") // Четвертый и все последующие +``` + +#### Примеры формирования различных вариантов условий + +```bsl title="Имеется метод:" +Функция ОтправитьОбъектНаСервер(ИсточникДанных, Объект, HTTPМетод = "POST", + ТипКонтента = "json", Преобразование = Неопределено, + ДопНастройки = Неопределено, Ответ = Неопределено, ОтветВСтруктуру = Ложь, + ТелоОтветаВХранилище = Ложь) Экспорт +``` + +Предположим необходимо: + +* Переопределить все вызовы метода - указываем имя метода без указания параметров + ```bsl + Мокито.Обучение(РаботаСHTTP) + .Когда("ОтправитьОбъектНаСервер").Вернуть(1) + ``` +* Переопределить вызов, когда первый параметр имеет определенное значение + ```bsl + Мокито.Обучение(РаботаСHTTP) + .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных)) + .Вернуть(2); + + // Через явный вызов метода + Мокито.Обучение(РаботаСHTTP) + .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Мокито.ЛюбойПараметр()) + .Вернуть(2) // Тут используется маска `Мокито.ЛюбойПараметр()`, тк второй параметр является обязательным + ``` +* Переопределить вызов, когда **второй** параметр имеет определенное значение + ```bsl + Мокито.Обучение(РаботаСHTTP) + .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Объект)) + .Вернуть(2); + + // Через явный вызов метода + Мокито.Обучение(РаботаСHTTP) + .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ЛюбойПараметр(), Объект) + .Вернуть(2) + ``` +* Условие на тип параметра + ```bsl + // Первый параметр должен быть ссылкой на справочник, второй числом + Мокито.Обучение(РаботаСHTTP) + .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ТипизированныйПараметр(Тип("СправочникСсылка.ИсточникиДанных")), Мокито.ЧисловойПараметр())) + .Вернуть(3); + + // Через явный вызов метода + Мокито.Обучение(РаботаСHTTP) + .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(Тип("СправочникСсылка.ИсточникиДанных")), Мокито.ЧисловойПараметр())) + .Вернуть(3); + ``` +* На основании порядка вызовов метода + ```bsl + Мокито.Обучение(РаботаСHTTP) + .Когда("ОтправитьОбъектНаСервер") + .Вернуть(1) + .Вернуть(2) + .Вернуть(3) + .ВыброситьИсключение("Конец"); + ``` + +### Тестовый прогон + +После обучения, настройки реакций на вызовы методов, можно запускать тест нужного метода. +Но перед этим необхдимо перевести `Мокито` в режим **прогона тестов**, для этого используется метод [`Мокито.Прогон()`](/api/Мокито#прогон). + +Метод `Прогон` завершает настройку и изменяет режим работы, после этого все вызовы к настроенным методам (добавленным в расширение) будут перехватываться и анализироваться на совпадение условий вызова. + +:::info +Также метод `Прогон` очищает накопленную статистику прошлых прогонов. Если вам необходимо ее сохранить передайте `Ложь` в параметрах. +::: + +* Для методов, которые были указаны в `Когда()` или `Наблюдать()`, будет собираться статистика вызовов. +* Для методов, у которых есть подходящая "реакция" будет переопределено выполнение и запустится соответствующая реакция (вернуть значение, вызвать исключение и тд) +* Для прочих методов (не настроенных) логика не изменится. + +```bsl +// Настройка +Мокито.Обучение(РаботаСHTTP) + .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Мокито.ЛюбойПараметр())) + .Вернуть(РезультатПоУмолчанию) + .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Справочники.ИсточникиДанных.FTP, 2)) + .Вернуть(2) + .Прогон(); // Перевод в режим прогона теста + +Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные); // Результат будет равен переменной РезультатПоУмолчанию +Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, 2); // Результат будет равен 2 +``` + +Схема вызовов при вызове замокированного метода. + +```mermaid +sequenceDiagram + autonumber + actor Тест + participant Конфигурация + participant Расширение + participant Мокито + participant Контекст + Тест-->Мокито: Мокито.Прогон(). Переходим к тестированию + Тест->>Конфигурация: Вызов метода конфигурации. + Конфигурация->>Расширение: Вызов расширяющего метода. + Расширение->>Расширение: Собирает информацию о вызове + Расширение->>+Мокито: Анализ вызова метода + Мокито->>Контекст: Получение настроек + Контекст-->>Мокито: Настройки мокирования + Мокито->>Мокито: Находит нужную настройку + Мокито-->>Контекст: Сохраняет информацию о вызове метода + Мокито-->>-Расширение: Значение, которое должен вернуть метод + Расширение-->>Тест: Значение, которое должен вернуть метод +``` + +### Проверка + +После прогона теста можно проверить какие методы, с какими параметрами вызывались. Для этих целей необходимо воспользоваться методом [`Мокито.Проверить`](/api/Мокито#проверить) + +```bsl +ЛюбойПараметр = Мокито.ЛюбойПараметр(); + +Мокито.Проверить(РаботаСHTTP) // Устанавливаем проверяемый объект + // Проверка общего количества обращений к методу + .КоличествоВызовов("ОтправитьОбъектНаСервер") + .Заполнено() + .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, ЛюбойПараметр)) + .Равно(3) + // Проверка обращений с фильтром по типам параметров + .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр())) // Условия поиска вызовов + .Больше(1) // Проверки + .Равно(2) + .КоличествоВызовов("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр())) + .Равно(2) + // Проверка обращений к методу с конкретными параметрами + .КоличествоВызовов("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(1, 2)) + .Равно(1) + .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(1, 2)) + .Равно(1) +``` + +Принцип формирования проверки: + +* Указываем проверяемый объект `Проверить(РаботаСHTTP)`. +* Указываем условия поиска вызовов метода. Логика формирования условия такая же как при обучении. + Например, `КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, Мокито.ЧисловойПараметр()))` + Соберет все вызовы метода `РаботаСHTTP.ОтправитьОбъектНаСервер`, к которых вторым параметром идет число, а 3й и последующий параметры имеют значения по умолчанию. +* Проверяем собранные вызовы: + * [`Заполнено`](/api/МокитоПроверки#заполнено) - есть вызовы метода по указанным условиям + * [`Пусто`](/api/МокитоПроверки#пусто) - нет вызовов метода по указанным условиям + * [`Равно`](/api/МокитоПроверки#равно) - количество вызовов попавших под условия равно указанному значению + * [`Больше`](/api/МокитоПроверки#больше) - количество вызовов попавших под условия больше указанного значения + * [`Меньше`](/api/МокитоПроверки#меньше) - количество вызовов попавших под условия меньше указанного значения + +#### Статистика вызовов + +Также вы можете более детально проанализировать вызовы методов + +Для этого можно воспользоваться методом [`Мокито.Проверить(Объект).Вызовы`](/api/МокитоПроверки#вызовы), который возвращает массив с описанием вызовов: + +* `Объект` - `Произвольный` - Объект, которому принадлежит метод +* `ИмяМетода` - `Строка` - Имя вызванного метода +* `Параметры` - `Массив` из Произвольный - Набор параметров, с которыми был вызван метод +* `Контекст` - `Строка` - Контекст вызова метода (не реализовано) + +```bsl +ВызовыМетода = Мокито.Проверить(Интеграция).Вызовы("ВыполнитьЗапрос"); +ЮТест.ОжидаетЧто(ВызовыМетода, "Вызовы метода ВыполнитьЗапрос") + .ИмеетТип("Массив") + .ИмеетДлину(3) + .КаждыйЭлементСодержитСвойствоСоЗначением("Объект", Интеграция) + .КаждыйЭлементСодержитСвойствоСоЗначением("ИмяМетода", "ВыполнитьЗапрос") + .КаждыйЭлементСодержитСвойство("Параметры") + .Свойство("[0].Параметры[0]").Равно("Адрес") + .Свойство("[1].Параметры[0]").Равно(Адрес) + .Свойство("[2].Параметры[1]").Равно(2); +``` + +## Примеры + +### Вызвать исключение при записи объекта + +#### Шаг1. Добавляем метод в расширение + +Заимствуем в расширение метод `ПередЗаписью`, если обработчик в модуле объекта отсутствует вы все равно можете подписаться таким образом на обработку события. И вставляем код для работы Мокито. + +```bsl +&Вместо("ПередЗаписью") +Процедура Мок_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) + + ПараметрыМетода = Мокито.МассивПараметров(Отказ, РежимЗаписи, РежимПроведения); + + ПрерватьВыполнение = Ложь; + МокитоПерехват.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); + + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Отказ, РежимЗаписи, РежимПроведения); + КонецЕсли; + +КонецПроцедуры +``` + +#### Шаг2. Настройка теста + +После этого вы можете управлять обработкой события в тесте. + +```bsl +Мокито.Обучение(Документы.Оплата) + .Когда("ПередЗаписью").ВыброситьИсключение("Не удалось записать объект") + .Прогон(); + +Документ = СоздатьДокументОплаты(); + +ЮТест.ОжидаетЧто(Документ) + .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение) + .ВыбрасываетИсключение("Не удалось записать объект"); +; +``` + +### Анализ вызовов метода + +Предположим у нас есть методы синхронизация данных базы с внешней системой и нам необходимо проверить корректность создания/удаления/изменеиня данных. В общем модуле интеграции созданы методы `СоздатьОбъект`, `УдалитьОбъект`, `ОбновитьОбъект`. + +В тесте мы будем формировать различные входные данные и считать вызовы этих методов, проверять чтобы не было лишних вызовов. + +#### Шаг1. Добавление методов в расширение + +Сначала необходимо выполнить заимствование и настройку методов `СоздатьОбъект`, `УдалитьОбъект`, `ОбновитьОбъект`. + +#### Шаг2. Настраиваем мокито + +```bsl +Мокито.Обучение(СуперИнтеграция) + .Наблюдать("СоздатьОбъект") + .Наблюдать("УдалитьОбъект") + .Наблюдать("ОбновитьОбъект") + .Прогон(); +``` + +#### Шаг3. Реализация теста + +```bsl +ЗаписатьНачальныеДанные(); // Установим начальное состояние базы, создадим нужные данные + +// Настроим ответы сервиса, под наши кейсы +Мокито.Обучение(СуперИнтеграция, Ложь) // Важно!. Передаем Ложь, чтобы не затереть ранее установленные настройки + .Когда("ПолучитьДанные") + .Вернуть(ОтветСервисаНовыйЭлемент()) // 1й вызов + .Вернуть(ОтветСервисаИзмененЭлемент()) // 2й вызов + .Вернуть(ОтветСервисаУдаленЭлемент()) // 3й вызов + .Вернуть(ОтветСервисаОшибка()) // 4й вызов + .Вернуть(ОтветСервисаНетДанных()); // 5й вызов + +Описание = "Первая итерация, новый элемент"; +Мокито.Прогон(); +СуперИнтеграция.ВыполнитьСинхронизацию(); + +Мокито.Проверить(СуперИнтеграция, Описание) + .КоличествоВызовов("СоздатьОбъект").Равно(1) + .КоличествоВызовов("УдалитьОбъект").Пусто() + .КоличествоВызовов("ОбновитьОбъект").Пусто(); + +Описание = "Вторая итерация, изменен элемент"; +Мокито.Прогон(); // Важно!. Повторно вызываем метод, чтобы сбросить ранее накопленную статистику +СуперИнтеграция.ВыполнитьСинхронизацию(); + +Мокито.Проверить(СуперИнтеграция, Описание) + .КоличествоВызовов("СоздатьОбъект").Пусто() + .КоличествоВызовов("УдалитьОбъект").Пусто() + .КоличествоВызовов("ОбновитьОбъект").Равно(1); + +Описание = "Третья итерация, удален элемент"; +Мокито.Прогон(); // Важно!. Повторно вызываем метод, чтобы сбросить ранее накопленную статистику +СуперИнтеграция.ВыполнитьСинхронизацию(); + +Мокито.Проверить(СуперИнтеграция, Описание) + .КоличествоВызовов("СоздатьОбъект").Пусто() + .КоличествоВызовов("УдалитьОбъект").Равно(1) + .КоличествоВызовов("ОбновитьОбъект").Пусто(); + +// И так далее +``` diff --git a/documentation/docs/features/predicates.md b/documentation/docs/features/predicates.md new file mode 100644 index 000000000..21246eb8c --- /dev/null +++ b/documentation/docs/features/predicates.md @@ -0,0 +1,228 @@ +--- +tags: [Начало, Предикаты, Утверждения, Запросы, Мокирование] +sidebar_position: 4 +--- + +# Предикаты + +Предикаты это довольно мощный и универсальный инструмент. С помощью предикатов вы формируете набор условий, сродни отбору. Который можно использовать: + +1. В утверждениях для [проверки коллекций](assertions/assertions-base.md#проверка-на-соответствие-набору-условий-предикату) +2. В утверждениях для [проверки записей базы](assertions/assertions-db) +3. Для [получения данных базы](auxiliary-modules/queries.md) +4. Для указания условий при [обучении Мокито](mocking/mockito.md#параметры) + +Предикаты расширяют и унифицируют функциональность тестового движка. + +Механизм предикатов ([ЮТест.Предикат](/api/ЮТест#предикат)): + +* позволяет формировать наборы условий (отборы) и передавать их в качества параметров; +* построен по модели [текучих выражений](/docs/getting-started/fluent-api.md) и имеет схожий с базовыми утверждениями синтаксис ([`ЮТест.ОжидаетЧто()`](/api/ЮТУтверждения)); +* позволяет упростить и унифицировать многие механизмы движка, некоторые еще только в планах; +* за счет этого, расширение функциональности предикатов автоматические расширяет функциональность многих механизмов движка. + +Чтобы воспользоваться предикатами, вам нужно сначала создать их с помощью конструктора [ЮТест.Предикат](/api/ЮТест#предикат), а затем передать в метод. + +Например, нам нужно проверить формирование записей в регистре. + +```bsl +Процедура АктуализацияУведомлений() Экспорт + + // Тест удостовериться в отсутствии нужных записей перед вызовом метода + // Вызовет метод формирующий записи в регистре + // Проверит наличие сформированных записей + // А также проверит записи на соответствие требований + + ИмяРегистра = "РегистрСведений.ОповещенияПользователя"; + Объект = ТестовыеДанные.Объект(); + + // Для этого мы формируем отбор поиска записей + Отбор = ЮТест.Предикат() + .Реквизит("Источник").Равно(Объект) + .Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление) + .Получить(); + + // По этому отбору проверим отсутствие нужных записей + ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) + .НеСодержитЗаписи(Отбор); + + УведомленияВызовСервера.АктуализацияУведомлений(); + + // А после вызова метода - присутствие + ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) + .СодержитЗаписи(Отбор); + + // Также получим сами записи используя тот же отбор + ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, Отбор); + + ЮТест.ОжидаетЧто(ДанныеУведомления) + .Свойство("Прочитано").ЭтоЛожь() + .Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер); + +КонецПроцедуры +``` + +## Возможности + +* Проверка вложенных свойств: + * [`Реквизит`](/api/ЮТПредикаты#реквизит) - Устанавливает имя реквизита, который необходимо проверить. Все последующие проверки будут относится к нему. + * [`Свойство`](/api/ЮТПредикаты#свойство) - Это алиас (псевдоним) для `Реквизит` +* Проверки + * [`Равно`](/api/ЮТПредикаты#равно) - Добавляет предикат, проверяющий равенство объекта (свойства) указанному значению + * [`НеРавно`](/api/ЮТПредикаты#неравно) - Добавляет предикат, проверяющий не равенство объекта (свойства) указанному значению + * [`Заполнено`](/api/ЮТПредикаты#заполнено) - Добавляет предикат, проверяющий заполненность объекта (свойства) + * [`Пусто`](/api/ЮТПредикаты#пусто) - Добавляет предикат, проверяющий, что объект (свойств) не заполнено + * [`Больше`](/api/ЮТПредикаты#больше) - Добавляет предикат, проверяющий, что значение объекта (свойства) больше указанного + * [`БольшеИлиРавно`](/api/ЮТПредикаты#большеилиравно) - Добавляет предикат, проверяющий, что значение объекта (свойства) больше или равно указанному + * [`Меньше`](/api/ЮТПредикаты#меньше) - Добавляет предикат, проверяющий, что значение объекта (свойства) меньше указанного + * [`МеньшеИлиРавно`](/api/ЮТПредикаты#меньшеилиравно) - Добавляет предикат, проверяющий, что значение объекта (свойства) меньше или равно указанному + * [`ИмеетТип`](/api/ЮТПредикаты#имееттип) - Добавляет предикат, проверяющий, что значение объекта (свойства) имеет указанный тип + * [`ИмеетТипОтличныйОт`](/api/ЮТПредикаты#имееттипотличныйот) - Добавляет предикат, проверяющий, что значение объекта (свойства) имеет тип отличный от указанного + * [`ИмеетДлину`](/api/ЮТПредикаты#имеетдлину) - Добавляет предикат, проверяющий, длину/размер значение объекта (свойства) на равенство указанному значению + * [`ИмеетДлинуОтличнуюОт`](/api/ЮТПредикаты#имеетдлинуотличнуюот) - Добавляет предикат, проверяющий, длину/размер значение объекта (свойства) на не равенство указанному значению + * [`ИмеетСвойство`](/api/ЮТПредикаты#имеетсвойство) - Добавляет предикат, проверяющий, что значение объекта (реквизита) содержит вложенное свойство + * [`НеИмеетСвойства`](/api/ЮТПредикаты#неимеетсвойства) - Добавляет предикат, проверяющий, что значение объекта (реквизита) не содержит вложенное свойство + * [`Содержит`](/api/ЮТПредикаты#содержит) - Добавляет предикат, проверяющий, что значение объекта (реквизита) содержит указанное значение + * [`НеСодержит`](/api/ЮТПредикаты#несодержит) - Добавляет предикат, проверяющий, что значение объекта (реквизита) не содержит указанное значение + * [`СодержитСтрокуПоШаблону`](/api/ЮТПредикаты#содержитстрокупошаблону) - Добавляет предикат, проверяющий, что строка соответствует указанному регулярному выражению + * [`НеСодержитСтрокуПоШаблону`](/api/ЮТПредикаты#несодержитстрокупошаблону) - Добавляет предикат, проверяющий, что строка не соответствует указанному регулярному выражению + * [`ВСписке`](/api/ЮТПредикаты#всписке) - Добавляет условие, что проверяемое значение (или значение его свойства) входит в список значений +* Служебные + * [`Получить`](/api/ЮТПредикаты#получить) - Возвращает набор сформированных утверждений. + Рекомендуется использовать этот метод, если планируется отложенная проверка предикатов. Например, вы хотите сформировать два набору предикатов и проверять их в зависимости от условия. + Метод копирует настроенный набор утверждений в массив и возвращает его, таким образом сохраняется состояние, которое можно передавать дальше. + +Возможно создавать предикаты на основании структуры - `ЮТест.Предикат(Структура)`, например: + +```bsl +// Вместо +Предикат = ЮТест.Предикат() + .Свойство("Наименование").Равно(НаименованиеОбъекта) + .Свойство("Код").Равно(КодОбъекта); + +// Можно использовать структур +Условия = Новый Структура("Наименование, Код", НаименованиеОбъекта, КодОбъекта); +Предикат = ЮТест.Предикат(Условия); +``` + +## Примеры использования + +* Проверка коллекции + ```bsl + // Проверят, что в коллекции есть элементы с реквизитом `Число`, значение которого равно `2` + ЮТест.ОжидаетЧто(Коллекция) + .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат() + .Реквизит("Число").Равно(2)); + + // Тоже самое, что и проверка выше + ЮТест.ОжидаетЧто(Коллекция) + .Содержит(ЮТест.Предикат() + .Реквизит("Число").Равно(2)); + + // Проверят, что каждый элемент коллекции это заполненный массив + ЮТест.ОжидаетЧто(Коллекция) + .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат() + .Заполнено().ИмеетТип("Массив")); + + // Проверят, что в коллекции нет элементов с реквизитом `Число`, значение которого равно `2` + ЮТест.ОжидаетЧто(Коллекция) + .НеСодержит(ЮТест.Предикат() + .Реквизит("Число").Равно(2)); + ``` +* Описания параметров метода при мокировании + Например, имеем метод, который принимает в параметрах структуру. Необходимо вернуть 2 разных результата в зависимости от значения реквизита входной структуры. + ```bsl title="Проверяемый метод" + Функция Посчитать(Параметры) + Если Параметры.Оператор = "Сложить" Тогда + Возврат Параметры.Операнд1 + Параметры.Операнд2; + ИначеЕсли Параметры.Оператор = "Вычесть" Тогда + Возврат Параметры.Операнд1 - Параметры.Операнд2; + КонецЕсли; + КонецФункции + ``` + ```bsl title="Тест" + Мокито.Обучение(Модуль) + .Когда(Модуль.Посчитать(ЮТест.Предикат() + .Реквизит("Оператор").Равно("Сложить"))) + .ВернутьРезультат(Результат1) + + .Когда(Модуль.Посчитать(ЮТест.Предикат() + .Реквизит("Оператор").Равно("Вычесть"))) + .ВернутьРезультат(Результат2); + ``` +* Утверждения, проверяющие данные в базе на основании предикатов. + ```bsl + ЮТест.ОжидаетЧтоТаблица("Справочник.Товары").СодержитЗаписи( + ЮТест.Предикат() + .Реквизит("Наименование").Равно("Товар 1") + .Реквизит("Ссылка").НеРавно(Исключение) + ); + ``` +* Получение записей из базы + ```bsl + ДанныеТовара = ЮТЗапросы.Запись("Справочник.Товары", ЮТест.Предикат() + .Реквизит("Наименование").Равно("Товар 1") + .Реквизит("Ссылка").НеРавно(Исключение)); + ``` + +## Особенности + +### Особенности контекста + +Предикаты как и большинство механизмов построены на [текучих выражениях](/docs/getting-started/fluent-api.md) с сохранением состояния в глобальном [контексте](context.md). + +Это приводит к тому, что вы не можете сразу использовать несколько предикатов, например + +```bsl +Мокито.Обучение(Модуль) + .Когда(Модуль.СделатьЧтоТо( + ЮТест.Предикат().ИмеетТип("Строка"), + ЮТест.Предикат().ИмеетТип("Число"))) + .ВернутьРезультат(Результат1); +``` + +В этом примере 1С сначала вычислит выражения для всех параметров, а потом передаст их в метод и мы получим для обоих параметров один и тот же предикат, ожидающий тип `Число`. + +А все потому, что методы настройки предиката возвращают общий модуль-конструктор. Таким образом оба параметра будут иметь одно и тоже значение - общий модуль `ЮТПредикаты`, который вернет одну и туже настройку (из глобального контекста). +Можно переписать настройку мокито, для большей наглядности, с использованием переменных: + +```bsl +Параметр1 = ЮТест.Предикат().ИмеетТип("Строка"); // Параметр1 = ОбщийМодуль.ЮТПредикаты +Параметр2 = ЮТест.Предикат().ИмеетТип("Число"); // Параметр2 = ОбщийМодуль.ЮТПредикаты + +ЮТест.ОжидаетЧто(Параметр1).Равно(Параметр2); // Это утверждение будет успешным + +Мокито.Обучение(Модуль) + .Когда(Модуль.СделатьЧтоТо(Параметр1, Параметр2)) + .ВернутьРезультат(Результат1); +``` + +Для обхода этой проблемы можно использовать метод `Получить`, который возвращает текущее состояние (настройки) из конструктора и передает его в параметр метода. + +```bsl +Мокито.Обучение(Модуль) + .Когда(Модуль.СделатьЧтоТо( + ЮТест.Предикат().ИмеетТип("Строка").Получить(), + ЮТест.Предикат().ИмеетТип("Число"))) + .ВернутьРезультат(Результат1); +``` + +Такая же история при сохранение предикатов в переменные. + +```bsl +ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка"); +ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число"); +``` + +`ПроверкаСтрока` и `ПроверкаЧисло` будут равны и содержать одинаковые условия. Проблему также можно обойти используя метод `Получить`. + +```bsl +ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка").Получить(); +ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число").Получить(); +``` + +### Особенности реализации + +Сам модуль предикатов используется только для формирования набора утверждений/условий. + +За применение их в разных механизмах, реализацией проверок и формированием условий, отвечают другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами. diff --git a/documentation/docs/reports.md b/documentation/docs/features/reports.md similarity index 50% rename from documentation/docs/reports.md rename to documentation/docs/features/reports.md index 75b1e5eed..633bdb648 100644 --- a/documentation/docs/reports.md +++ b/documentation/docs/features/reports.md @@ -3,11 +3,17 @@ sidebar_position: 9 tags: [Начало] --- -# Форматы отчетов о тестировании +# Отчеты о тестировании -YAxUnit поддерживает генерацию отчетов в форматах `JUnit` и `Allure`. +Важным этапом тестирования является формирование удобного и информативного отчета. YAxUnit предоставляет возможность работать с различными видами отчетов. -Указать необходимый формат вы может в [параметрах запуска](run/configuration), либо в [форме настроек](yaxunit-ui#интерфейс-настройки-конфигурации). +* Отчет в формате JUnit - используется при разработке тестов в EDT, позволяет быстро увидеть результат тестирования прямов в IDE, позволяет переходить по стеку ошибок и сравнивать фактическое и ожидаемое значение. +* Отчет в формате Allure - чаще всего применяется в CI, имеет богатую функциональность: фильтрация, различные группировки, история и статистика. +* Отчет в режиме 1С:Предприятия - удобен если вы не используете (или не можете использовать) по какой-либо причине EDT. + +![reports](images/reports.png) + +Указать необходимый формат вы может в [параметрах запуска](../getting-started/run/configuration), либо в [форме настроек](../yaxunit-ui#интерфейс-настройки-конфигурации). По умолчанию используется формат `JUnit`. ## Формат `JUnit` @@ -24,4 +30,4 @@ YAxUnit поддерживает генерацию отчетов в форма Группировка по функциональности -![Группировка по функциональности](images/allure-report-behaviors.png) \ No newline at end of file +![Группировка по функциональности](images/allure-report-behaviors.png) diff --git a/documentation/docs/features/test-data/data-generation.md b/documentation/docs/features/test-data/data-generation.md new file mode 100644 index 000000000..fd8d6146e --- /dev/null +++ b/documentation/docs/features/test-data/data-generation.md @@ -0,0 +1,306 @@ +--- +tags: [Начало, Тестовые данные] +sidebar_position: 1 +--- + +# Программное создание тестовых данных + +Доступ к методам генерации тестовых реализован через [`ЮТест.Данные()`](/api/ЮТест#данные), этот метод возвращает общий модуль [`ЮТТестовыеДанные`](/api/ЮТТестовыеДанные). + +:::tip +Не рекомендуется обращаться к модулю `ЮТТестовыеДанные` напрямую, используйте `ЮТест.Данные()` +::: + +## Возможности + +Инструменты работы с тестовыми данными можно разделить на следующие группы: + +* Генераторы случайных значений +* Методы создания данных в информационной базе +* Методы загрузки из макетов +* Работа с файлами + +### Генераторы случайных данных + +Как уже говорилось в [статье](test-data.md) в YAxUnit сделан большой упор на генерацию случайных тестовых данных, которая позволяет улучшить покрытие и сократить количество "лишнего" кода. Поставив в самом начале на такой подход мы еще ни разу в нем не разочаровались. + +Создание случайных данных базируется на генерации примитивных значения: + +* Числа + * [`ЮТест.Данные().СлучайноеЧисло`](/api/ЮТТестовыеДанные#случайноечисло) - Формирует случайное число в указанном диапазоне + * [`ЮТест.Данные().СлучайноеПоложительноеЧисло`](/api/ЮТТестовыеДанные#случайноеположительноечисло) - Формирует случайное положительное число ограниченное максимумом + * [`ЮТест.Данные().СлучайноеОтрицательноеЧисло`](/api/ЮТТестовыеДанные#случайноеотрицательноечисло) - Формирует случайное отрицательное число ограниченное минимумом +* Строки + * [`ЮТест.Данные().СлучайнаяСтрока`](/api/ЮТТестовыеДанные#случайнаястрока) - Формирует случайную строку указанной длины + * [`ЮТест.Данные().СлучайныйИдентификатор`](/api/ЮТТестовыеДанные#случайныйидентификатор) - Формирует случайный валидный идентификатор (Первым символом должна быть буква или символ подчеркивания, каждый из последующих символов может быть буквой, цифрой или символом подчеркивания) + * [`ЮТест.Данные().СлучайныйIPАдрес`](/api/ЮТТестовыеДанные#случайныйipадрес) - Формирует случайный IP адрес + * [`ЮТест.Данные().СлучайныйНомерТелефона`](/api/ЮТТестовыеДанные#случайныйномертелефона) - Формирует случайный номер телефона + * [`ЮТест.Данные().УникальнаяСтрока`](/api/ЮТТестовыеДанные#уникальнаястрока) - Создает строку на базе нового уникального идентификатора +* Даты + * [`ЮТест.Данные().СлучайнаяДата`](/api/ЮТТестовыеДанные#случайнаядата) - Формирует случайную дату в указанном диапазоне + * [`ЮТест.Данные().СлучайноеВремя`](/api/ЮТТестовыеДанные#случайноевремя) - Формирует случайное время + * [`ЮТест.Данные().СлучайнаяДатаВБудущем`](/api/ЮТТестовыеДанные#случайнаядатавбудущем) - Формирует случайную дату в будущем (больше текущей) с возможностью ограничить максимальное значение. + Пример: `СлучайнаяДатаВБудущем(2, "часа")` - будет сформирована дата в интервале (ТекущаяДата, ТекущаяДата + 2 часа] + * [`ЮТест.Данные().СлучайнаяДатаВПрошлом`](/api/ЮТТестовыеДанные#случайнаядатавпрошлом) - Формирует случайную дату в прошлом (меньше текущей) с возможностью ограничить минимальное значение. + Пример: `СлучайнаяДатаВПрошлом(2, "часа")` - будет сформирована дата в интервале [ТекущаяДата - 2 часа, ТекущаяДата) + * [`ЮТест.Данные().СлучайнаяДатаПосле`](/api/ЮТТестовыеДанные#случайнаядатапосле) - Формирует случайную дату, которая больше указанной с возможностью ограничить максимальное значение. + Пример: `СлучайнаяДатаПосле(Дата, 2, "часа")` - будет сформирована дата в интервале (Дата, Дата + 2 часа] + * [`ЮТест.Данные().СлучайнаяДатаДо`](/api/ЮТТестовыеДанные#случайнаядатадо) - Формирует случайную дату, которая меньше указанной с возможностью ограничить минимальное значение. + Пример: `СлучайнаяДатаДо(Дата, 2, "часа")` - будет сформирована дата в интервале [Дата - 2 часа, Дата) +* Булево + * [`ЮТест.Данные().СлучайноеБулево`](/api/ЮТТестовыеДанные#случайноебулево) - Возвращает случайное булево +* Получение случайного из предопределенного списка + * [`ЮТест.Данные().СлучайноеЗначениеИзСписка`](/api/ЮТТестовыеДанные#случайноезначениеизсписка) - Возвращает случайное значение из указанного списка + + ```bsl + ВозможныеЗначения = ЮТКоллекции.ЗначениеВМассиве(-1, 0, 1); + Возврат ЮТест.Данные().СлучайноеЗначениеИзСписка(ВозможныеЗначения); + ``` + + * [`ЮТест.Данные().СлучайноеЗначениеПеречисления`](/api/ЮТТестовыеДанные#случайноезначениеперечисления) - Возвращает случайное значение перечисления + Примеры: + + ```bsl + Цена = ЮТест.Данные().СлучайноеЗначениеПеречисления(Перечисления.ВидыЦен); // Можно получить значение через указание менеджера + Цена = ЮТест.Данные().СлучайноеЗначениеПеречисления("Перечисление.ВидыЦен"); // Или имя объекта метаданных (подходит для работы с клиента) + ``` + + * [`ЮТест.Данные().СлучайноеПредопределенноеЗначение`](/api/ЮТТестовыеДанные#случайноепредопределенноезначение) - Возвращает случайное предопределенное значение + Примеры: + + ```bsl + Цена = ЮТест.Данные().СлучайноеПредопределенноеЗначение(Справочники.ВидыЦен); // Можно получить значение через указание менеджера + Цена = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочник.ВидыЦен"); // Или имя объекта метаданных (подходит для работы с клиента) + ``` + +* [`ЮТест.Данные().Подражатель`](/api/ЮТТестовыеДанные#подражатель) - генератор правдоподобных данных. Генерирует случайные данные на базе словарей, является реализацией [faker](https://github.com/faker-js/faker) для 1С. + * [`ЮТест.Данные().Подражатель().Люди`](/api/ЮТПодражатель#люди) + * [`ФИО`](/api/ЮТПодражатель_Люди#фио) - Формирует случайное ФИО + * [`Фамилия`](/api/ЮТПодражатель_Люди#фамилия) - Формирует случайную фамилию + * [`Имя`](/api/ЮТПодражатель_Люди#имя) - Формирует случайное имя + * [`Отчество`](/api/ЮТПодражатель_Люди#отчество) - Формирует случайное отчество + * [`ИНН`](/api/ЮТПодражатель_Люди#инн) - Формирует случайный ИНН + * [`СНИЛС`](/api/ЮТПодражатель_Люди#снилс) - Формирует случайный СНИЛС + * [`ЮТест.Данные().Подражатель().Компании`](/api/ЮТПодражатель#компании) + * [`Наименование`](/api/ЮТПодражатель_Компании#наименование) - Формирует случайное наименование компании + * [`ИНН`](/api/ЮТПодражатель_Компании#инн) - Формирует случайный ИНН компании + * [`КПП`](/api/ЮТПодражатель_Компании#кпп) - Формирует случайный КПП компании + * [`ЮТест.Данные().Подражатель().Банки`](/api/ЮТПодражатель#банки) + * [`НомерСчета`](/api/ЮТПодражатель_Банки#номерсчета) - Формирует случайный номер банковского счета + * [`БИК`](/api/ЮТПодражатель_Банки#бик) - Формирует случайный валидный БИК банка + +### Методы создания данных в информационной базе + +* Создание пустышек - примитивных объектов с минимальным заполнения. Полезно использовать когда вам нужна ссылка определенного типа, но не важно ее заполнение + * [`ЮТест.Данные().СоздатьЭлемент`](/api/ЮТТестовыеДанные#создатьэлемент) - Создает новый элемент справочника или плана видов характеристик + + ```bsl + Товар = ЮТест.Данные().СоздатьЭлемент(Справочники.Товары); // На основании менеджера + Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"); // На основании имени менеджера + + ПараметрыЗаписи = ЮТФабрика.ПараметрыЗаписи(); + ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; + Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары", , , ПараметрыЗаписи); // Запись в режиме ОбменДанными.Загрузка = Истина + ``` + + * [`ЮТест.Данные().СоздатьДокумент`](/api/ЮТТестовыеДанные#создатьдокумент) - Создает новый документ + + ```bsl + Товар = ЮТест.Данные().СоздатьДокумент(Документ.ПриходТовара); // На основании менеджера + Товар = ЮТест.Данные().СоздатьДокумент("Документ.ПриходТовара"); // На основании имени менеджера + ``` + + * [`ЮТест.Данные().СоздатьГруппу`](/api/ЮТТестовыеДанные#создатьгруппу) - Создает новую группу справочника или плана видов характеристик + + ```bsl + Товар = ЮТест.Данные().СоздатьГруппу(Документ.ПриходТовара); // На основании менеджера + Товар = ЮТест.Данные().СоздатьГруппу("Документ.ПриходТовара"); // На основании имени менеджера + ``` + + * [`ЮТест.Данные().Фикция`](/api/ЮТТестовыеДанные#фикция) - Создает новый объект на основании его типа + + ```bsl + Товар = ЮТест.Данные().Фикция(Тип("ДокументСсылка.ПриходТовара")); + Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара")); + Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара, ДокументСсылка.РасходТовара")); // Будет выбран случайный тип + ``` + +* [`ЮТест.Данные().КонструкторОбъекта`](/api/ЮТТестовыеДанные#конструкторобъекта), с помощью которого вы можете создать объект информационной базы с необходимыми реквизитами. + Конструктор позволяет: + * В более компактной форме заполнять объект + * Имеет методы записи и проведения + * При возникновении ошибки оборачивает их в более понятные человеку описания + * Киллер фича - `Фикция` и `ФикцияОбязательныхПолей`. Устанавливает случайно сгенерированные значения реквизитов. Таким образом делается акцент на важных для теста реквизитах и экономит "строки" на генерацию ненужных значений + * Умеет создавать данные с клиента и [удалять их по окончании теста](test-data-deletion.md) + + ```bsl + Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") + .Фикция("Поставщик") + .Фикция("Склад") + .ФикцияОбязательныхПолей() + .ТабличнаяЧасть("Товары"); + + ОбщиеДанные = Новый Структура("ВидЦены, Поставщик", Закупочная, Конструктор.ДанныеОбъекта().Поставщик); + + Для Инд = 1 По 3 Цикл + Конструктор.ДобавитьСтроку() + .Фикция("Товар") + .УстановитьРеквизиты(ОбщиеДанные) + .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2)) + .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20)) + .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество) + КонецЦикла; + + Возврат Конструктор.Провести(); + ``` + +### Загрузка данных из макетов + +Работа с макетами описана в отдельной [статье](load-from-templates.md) + +### Работа с файлами + +* [`ЮТест.Данные().НовыйФайл`](/api/ЮТТестовыеДанные#новыйфайл) - Создает новый файл, который будет удален после теста +* [`ЮТест.Данные().НовоеИмяВременногоФайла`](/api/ЮТТестовыеДанные#новоеимявременногофайла) - Возвращает имя нового файла, по окончании выполнения теста этот файл будет удален + +### Создание XDTO + +При тестировании обменов или интеграций использующих SOAP вам может пригодится [`ЮТест.Данные().КонструкторОбъектаXDTO`](/api/ЮТТестовыеДанные#конструкторобъектаxdto), с помощью которого вы можете с легкостью создать XDTO объект. + +```bsl +Тип = СериализаторXDTO.XMLТип(Тип("ДокументОбъект.Заказ")); + +Дата = ЮТест.Данные().СлучайнаяДата(); +Номер = ЮТест.Данные().СлучайнаяСтрока(9); +Сумма = ЮТест.Данные().СлучайноеЧисло(); +Реквизиты = Новый Структура("Number, Сумма", Номер, Сумма); + +Объект = ЮТест.Данные().КонструкторОбъектаXDTO(Тип.ИмяТипа, Тип.URIПространстваИмен) + .Установить("Date", Дата) + .ФикцияОбязательныхПолей() + .УстановитьРеквизиты(Реквизиты) + .Фикция("Покупатель") + .ДобавитьНовый("Товары") + .Фикция("Цена") + .Фикция("Количество") + .ДанныеОбъекта(); +``` + +Он был создан на основании уже проверенного и зарекомендовавшего себя `ЮТест.Данные().КонструкторОбъекта` и обладает схожим API. + +* `Установить(ИмяРеквизита, Значение)` - Устанавливает значение указанного реквизита объекта. +* `УстановитьРеквизиты(ЗначенияРеквизитов)` - Устанавливает значения реквизитов объекта. + +* `Фикция(ИмяРеквизита)` - на основании типа создаваемого объекта определяет тип реквизита и устанавливает для него случайное значение. + * Для примитивных значение генерируется случайное значение + * Для объектных типов создается новый объект + * Для коллекций - генерируется случайно количество случайных элементов (на основании типа) +* `ФикцияОбязательныхПолей()` - на основании типа создаваемого объекта определяет список обязательных полей и для каждого из них вызывается метод `Фикция`. +* `ФикцияНезаполненных()` - для всех незаполненных полей создаваемого объекта вызывает метод `Фикция`. +* `ДобавитьНовый(ИмяРеквизита)` - Добавляет новый объект в указанную реквизит-коллекцию. Все последующие вызовы установки реквизитов будут относится к этому добавленному объекту. +* `ПерейтиКВладельцу()` - используется после метода `ДобавитьНовый` для переключения контекста заполнения на родительский объект. Например вам необходимо добавить две строки в табличную часть. + ```bsl + Объект = ЮТест.Данные().КонструкторОбъектаXDTO(Тип.ИмяТипа, Тип.URIПространстваИмен) + .ДобавитьНовый("Товары") + .Фикция("Цена") + .Фикция("Количество") + .ПерейтиКВладельцу() + .ДобавитьНовый("Товары") + .Фикция("Цена") + .Фикция("Количество") + .ДанныеОбъекта(); + ``` + Здесь перед добавлением второй строки нужно переключится (`ПерейтиКВладельцу`) на основной объект и после этого можно добавить строку. +* `ДанныеОбъекта()` - возвращает созданный объект XDTO. + +## Примеры + +### Генерация фейкового документа + +```bsl +#Если Сервер Тогда + Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара); +#Иначе + Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара"); +#КонецЕсли + + Конструктор + .Фикция("Поставщик") + .Фикция("Склад") + .Фикция("Валюта") + .Установить("Организация", ЮТест.Данные().КонструкторОбъекта("Справочники.Организации").Установить("КакойТоТамУчет", Истина)) + .ТабличнаяЧасть("Товары"); + + Для Инд1 = 1 По ЮТест.Данные().СлучайноеЧисло(1, 5) Цикл + Конструктор.ДобавитьСтроку() + .Фикция("Товар") + .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2)) + .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20)) + .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество) + КонецЦикла; + + Ссылка = Конструктор.Провести(); +``` + +### Генерация произвольных фейковых данных + +```bsl +Функция ОписаниеСервера(Знач Идентификатор = Неопределено) Экспорт + + Описание = БазовоеОписаниеОбъекта(Идентификатор, "СРВ"); + + Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес()); + Описание.Вставить("ЧастотаЯдра", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(4, 3)); + Описание.Вставить("КоличествоЯдер", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(10)); + Описание.Вставить("КоличествоПотоков", Описание.КоличествоЯдер * 2); + Описание.Вставить("ПроизводительностьПроцессора", Описание.ЧастотаЯдра * Описание.КоличествоЯдер); + Описание.Вставить("ОбъемПамяти", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(1024, 3)); + Описание.Вставить("Диски", Новый Массив()); + Описание.Вставить("Кластер"); + + Для Инд = 1 По ЮТТестовыеДанные.СлучайноеЧисло(1, 3) Цикл + Описание.Диски.Добавить(ОписаниеДиска()); + КонецЦикла; + + Возврат Описание; + +КонецФункции + +Функция ОписаниеЗаявкиНаСозданиеВМ() Экспорт + + Описание = Новый Структура(); + + Описание.Вставить("Наименование", "req-" + ЮТТестовыеДанные.СлучайнаяСтрока()); + Описание.Вставить("ДатаДобавления", глПолучитьМосковскоеВремя()); + Описание.Вставить("ДатаОкончанияАренды", глДобавитьКДате(глПолучитьМосковскоеВремя(), "ДЕНЬ", 2)); + Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес()); + + Описание.Вставить("Проект", Проект()); + Описание.Вставить("Ментейнер", ПараметрыСеанса.Сотрудник); + + Описание.Вставить("КоличествоCPU", ЮТТестовыеДанные.СлучайноеЧисло(1, 4)); + Описание.Вставить("КоличествоПамяти", ЮТТестовыеДанные.СлучайноеЧисло(1, 16)); + Описание.Вставить("КоличествоДисков", ЮТТестовыеДанные.СлучайноеЧисло(1, 16)); + Описание.Вставить("ОперационнаяСистема", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОперационныеСистемы)); + + Описание.Вставить("СредаЭксплуатации", ""); + Описание.Вставить("Назначение", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.НазначенияВиртуальныхМашин)); + Описание.Вставить("ТипСреды", Справочники.ТипыИнформационныхСред.BETA); + Описание.Вставить("КодСервиса", ЮТТестовыеДанные.СлучайнаяСтрока(1)); + + Возврат Описание; + +КонецФункции + +Функция НовыйОбразDocker(Версия, ПоУмолчанию = Истина) Экспорт + + Данные = Новый Структура("Адрес, ВерсияПлатформы, ТипПлатформы, ИспользоватьПоУмолчанию"); + Данные.Адрес = "gitlab.ru/orais/ci_cd/1cws-apache24:" + Версия; + Данные.ВерсияПлатформы = Версия; + Данные.ТипПлатформы = Перечисления.ТипыСоединенияИсточникаДанных.Соединение1СПредприятие83Сервер; + Данные.ИспользоватьПоУмолчанию = ПоУмолчанию; + + Возврат ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОбразыDocker, Версия, Данные); + +КонецФункции +``` diff --git a/documentation/docs/features/test-data/data-manipulations.md b/documentation/docs/features/test-data/data-manipulations.md new file mode 100644 index 000000000..d4ab387af --- /dev/null +++ b/documentation/docs/features/test-data/data-manipulations.md @@ -0,0 +1,6 @@ +# Дополнительные методы работы с данными + +* [`ЮТест.Данные().Удалить`](/api/ЮТТестовыеДанные#удалить) - Выполняет удаление переданных записей из базы +* [`ЮТест.Данные().УстановитьЗначениеРеквизита`](/api/ЮТТестовыеДанные#установитьзначениереквизита) - Устанавливает значение реквизита ссылки +* [`ЮТест.Данные().УстановитьЗначенияРеквизитов`](/api/ЮТТестовыеДанные#установитьзначенияреквизитов) - Устанавливает значения реквизитов ссылки +* [`ЮТЗапросы`](/api/ЮТЗапросы) - Расширяет возможности тестирования, позволяет в упрощенной форме получать данны из информационной базы как с сервера, так и с клиента. diff --git a/documentation/docs/user-api/test-data/test-data.md b/documentation/docs/features/test-data/load-from-templates.md similarity index 62% rename from documentation/docs/user-api/test-data/test-data.md rename to documentation/docs/features/test-data/load-from-templates.md index fca9b6acc..d048011cd 100644 --- a/documentation/docs/user-api/test-data/test-data.md +++ b/documentation/docs/features/test-data/load-from-templates.md @@ -1,182 +1,13 @@ --- tags: [Начало, Тестовые данные] +sidebar_position: 3 --- -# Тестовые данные -Почти в каждом тесте разработчику необходимы данные, которые он будет использовать при тестировании: элементы справочников, документы, остатки и тд. +# Загрузка данных из макетов -Есть разные подходы к работе с тестовыми данными: +## Описание -1. Ручное наполнение тестовой базы (мы предварительно создаем все что необходимо для тестов в базе, а потом используем её для прогона тестов) -2. Использование файлов с данными (макеты - сгенерированные в нужном формате файлы с описанием тестовых данных, загружаемые при выполнении тестов) -3. Программное создание нужных данных внутри теста - -У каждого из вариантов есть свои плюсы и минусы, и при грамотной компоновке можно достичь наилучшего результата. - -Например: - -* Ручное наполнение базы не учитывает последующие доработки системы, нужна миграция на новые алгоритмы и структуру, и, если таких данных будет много, то миграция будет занимать большое время. А также в этом случае нам необходимо завязываться на конкретные записи в системе, и при их изменении тестом мы можем сломать другие тесты. Поэтому, предварительное наполнение базы должно быть минимальным. -* В случае использования макетов данных возникают некоторые трудности с их доработкой и вариативностью, например, в новом тесте нужны данные из макета, но с некоторыми изменениями. В этом случае нам потребуется создавать новый макет или проверять, не сломают ли наши изменения другие тесты. Также при таком подходе сложно контролировать и искать какие макеты используются и кем. -* Программное создание тестовых данных увеличивает время и сложность теста. - -Если грамотно распределить тестовые данные на способы создания, мы можем добиться оптимального результата. -Например, можно статичные данные создать вручную, сложные кейсы данных засунуть в макеты, а для программного создания реализовать методы-конструкторы, которые будем переиспользовать. Таким образом, сможем уйти от минусов данного подхода или минимизировать их вред. - -В текущей версии тестовый движок предоставляет api для программного создания тестовых данных. За это отвечает общий модуль `ЮТТестовыеДанные`, к которому можно обратиться через метод `ЮТест.Данные()`. - -:::tip -Не рекомендуется обращаться к модулю `ЮТТестовыеДанные` напрямую, используйте `ЮТест.Данные()` -::: - -Он позволяет: - -* Создавать данные информационной базы -* Генерировать случайные значения -* Автоматически удалять созданные данные (для этого необходимо включить настройку теста `УдалениеТестовыхДанных()`) -* Работать с файлами -* Использовать таблицы markdown в качестве макетов данных -* Генерировать таблицы значений из табличных документов и таблиц markdown - -## Примеры - -### Генерация фейкового документа - -```bsl -#Если Сервер Тогда - Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара); -#Иначе - Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара"); -#КонецЕсли - - Конструктор - .Фикция("Поставщик") - .Фикция("Склад") - .Фикция("Валюта") - .Установить("Организация", ЮТест.Данные().КонструкторОбъекта("Справочники.Организации").Установить("КакойТоТамУчет", Истина)) - .ТабличнаяЧасть("Товары"); - - Для Инд1 = 1 По ЮТест.Данные().СлучайноеЧисло(1, 5) Цикл - Конструктор.ДобавитьСтроку() - .Фикция("Товар") - .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2)) - .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20)) - .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество) - КонецЦикла; - - Ссылка = Конструктор.Провести(); -``` - -### Генерация произвольных фейковых данных - -```bsl -Функция ОписаниеСервера(Знач Идентификатор = Неопределено) Экспорт - - Описание = БазовоеОписаниеОбъекта(Идентификатор, "СРВ"); - - Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес()); - Описание.Вставить("ЧастотаЯдра", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(4, 3)); - Описание.Вставить("КоличествоЯдер", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(10)); - Описание.Вставить("КоличествоПотоков", Описание.КоличествоЯдер * 2); - Описание.Вставить("ПроизводительностьПроцессора", Описание.ЧастотаЯдра * Описание.КоличествоЯдер); - Описание.Вставить("ОбъемПамяти", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(1024, 3)); - Описание.Вставить("Диски", Новый Массив()); - Описание.Вставить("Кластер"); - - Для Инд = 1 По ЮТТестовыеДанные.СлучайноеЧисло(1, 3) Цикл - Описание.Диски.Добавить(ОписаниеДиска()); - КонецЦикла; - - Возврат Описание; - -КонецФункции - -Функция ОписаниеЗаявкиНаСозданиеВМ() Экспорт - - Описание = Новый Структура(); - - Описание.Вставить("Наименование", "req-" + ЮТТестовыеДанные.СлучайнаяСтрока()); - Описание.Вставить("ДатаДобавления", глПолучитьМосковскоеВремя()); - Описание.Вставить("ДатаОкончанияАренды", глДобавитьКДате(глПолучитьМосковскоеВремя(), "ДЕНЬ", 2)); - Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес()); - - Описание.Вставить("Проект", Проект()); - Описание.Вставить("Мейнтейнер", ПараметрыСеанса.Сотрудник); - - Описание.Вставить("КоличествоCPU", ЮТТестовыеДанные.СлучайноеЧисло(1, 4)); - Описание.Вставить("КоличествоПамяти", ЮТТестовыеДанные.СлучайноеЧисло(1, 16)); - Описание.Вставить("КоличествоДисков", ЮТТестовыеДанные.СлучайноеЧисло(1, 16)); - Описание.Вставить("ОперационнаяСистема", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОперационныеСистемы)); - - Описание.Вставить("СредаЭксплуатации", ""); - Описание.Вставить("Назначение", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.НазначенияВиртуальныхМашин)); - Описание.Вставить("ТипСреды", Справочники.ТипыИнформационныхСред.BETA); - Описание.Вставить("КодСервиса", ЮТТестовыеДанные.СлучайнаяСтрока(1)); - - Возврат Описание; - -КонецФункции - -Функция НовыйОбразDocker(Версия, ПоУмолчанию = Истина) Экспорт - - Данные = Новый Структура("Адрес, ВерсияПлатформы, ТипПлатформы, ИспользоватьПоУмолчанию"); - Данные.Адрес = "gitlab.ru/orais/ci_cd/1cws-apache24:" + Версия; - Данные.ВерсияПлатформы = Версия; - Данные.ТипПлатформы = Перечисления.ТипыСоединенияИсточникаДанных.Соединение1СПредприятие83Сервер; - Данные.ИспользоватьПоУмолчанию = ПоУмолчанию; - - Возврат ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОбразыDocker, Версия, Данные); - -КонецФункции -``` - -### Чтение из таблицы Markdown - -```bsl - Макет = - "| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти | - ||------------------------|-------------------------|----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------| - || Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + | - || Документ | Документы | СоздатьДокумент | | + | + | | | | + | - || ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + | - || ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + | - || ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + | - || ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + | - || РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | | - || РегистрНакопления | РегистрыНакопления | СоздатьНаборЗаписей | | | + | + | + | | | - || РегистрБухгалтерии | РегистрыБухгалтерии | СоздатьНаборЗаписей | | | + | + | + | | | - || РегистрРасчета | РегистрыРасчета | СоздатьНаборЗаписей | | | + | + | + | | | - || БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + | - || Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + | - |"; - КоллекцияОписаний = ЮТТестовыеДанные.ТаблицаMarkDown(Макет); - - ТипыМетаданных = Новый Структура(); - - Для Каждого Запись Из КоллекцияОписаний Цикл - - Описание = Новый Структура(); - Описание.Вставить("Имя", Запись.Имя); - Описание.Вставить("ИмяКоллекции", Запись.ИмяКоллекции); - Описание.Вставить("Конструктор", Запись.Конструктор); - Описание.Вставить("Группы", Запись.Группы = "+"); - Описание.Вставить("Ссылочный", Запись.Ссылочный = "+"); - Описание.Вставить("Реквизиты", Запись.Реквизиты = "+"); - Описание.Вставить("Измерения", Запись.Измерения = "+"); - Описание.Вставить("Ресурсы", Запись.Ресурсы = "+"); - Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+"); - Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+"); - - ТипыМетаданных.Вставить(Описание.Имя, Описание); - ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание); - - КонецЦикла; - - Возврат ТипыМетаданных; -``` - -### Загрузка данных из макетов - -Для загрузки данных из макетов подойдет метод `ЮТест.Данные().ЗагрузитьИзМакета` +Для загрузки данных из макетов подойдет метод [`ЮТест.Данные().ЗагрузитьИзМакета`](/api/ЮТТестовыеДанные#загрузитьизмакета) Он позволяет: @@ -197,25 +28,33 @@ tags: [Начало, Тестовые данные] Особенности: -* Создание данных - * Данные в базе всегда создаются, не выполняется поиск уже существующих ссылок. При необходимости вы можете найти данные сами и передать в параметрах `ЗаменяемыеЗначения` или `КэшЗначений` - :::tip - При преобразовании табличного документа в таблицу значений существующие объекты метаданных не изменяются, только создаются новые. Нужно проявлять внимательность в случаях, если в базе уже имеются данные с тем же кодом/наименованием (и по ним используется контроль уникальности), что и в табличном документе. - ::: - * Можно указывать значения вложенных реквизитов в других колонках, например для колонки `Товар` можно добавить колонки с поставщиком и видом товара `Товар.Поставщик` и `Товар.Вид`, в которых указать нужные значения - * Переиспользование созданных данных, используется `КэшЗначений`, в который помещаются все созданные данные, если кэш содержит данные подходящего типа с указанным идентификатором, то используется ранее созданное значение из кэша. Например, в примере выше, для первой строки будет создан товар с идентификатором `Товар 1`. В строках 2 и 3 будет использовано значение из кэша - `Товар 1`, в 4й и 5й строке - созданы новые товары. +* Данные в базе всегда создаются, не выполняется поиск уже существующих ссылок. При необходимости вы можете найти данные сами и передать в параметрах `ЗаменяемыеЗначения` + :::tip + При преобразовании табличного документа в таблицу значений существующие объекты метаданных не изменяются, только создаются новые. Нужно проявлять внимательность в случаях, если в базе уже имеются данные с тем же кодом/наименованием (и по ним используется контроль уникальности), что и в табличном документе. + ::: +* Можно указывать значения вложенных реквизитов, например при создании товаров (колонка `Товар`) необходимо указать конкретные значения поставщика и вида товара. Для этого необходимо добавить колонки `Товар.Поставщик` и `Товар.Вид`, в которых указать нужные значения. +* Переиспользование созданных данных, используется `КэшЗначений`, в который помещаются все созданные данные, если кэш содержит данные подходящего типа с указанным идентификатором, то используется ранее созданное значение из кэша. Например, в примере выше, для первой строки будет создан товар с идентификатором `Товар 1`. В строках 2 и 3 будет использовано значение из кэша - `Товар 1`, в 4й и 5й строке - созданы новые товары. - :::tip - Значение в колонке "Товар" является идентификатором ссылки. Для справочника значение этой колонки по умолчанию записывается в реквизит "Наименование" или "Код", в зависимости от того, какой из этих реквизитов является основным представлением. Для документа это значение никуда не записывается, оно лишь является идентификатором. Таким образом, если одному значению в колонке "Товар" соответствуют различные значения в других колонках, то в элемент справочника запишутся реквизиты из первой строки, а для других строк ссылка на этот элемент будет проставлена по соответствующему идентификатору - ::: + :::tip + Кэш значений может передаваться между загрузками разных макетов, например есть макет с табличной частью документа и второй макет с набором ожидаемых движений. Чтобы созданные товары из табличной части соответствовали товарам движений необходимо передать `КэшЗначений` между загрузками. -#### Загрузка всего макета + ```bsl + КэшЗначений = Неопределено; + ТабличнаяЧасть = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ДанныеДокумента.ТабличнаяЧасть", ОписанияТиповТЧ, КэшЗначений); + ОжидаемыеДвижения = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ДанныеДокумента.ДвиженияРегистра1", ОписанияТиповРегистра1, КэшЗначений); + ``` -В качестве источника данных можно использовать весь табличный документ. В этом случае будет получена таблица значений, начиная с 1-ой строки и 1-ой колонки табличного документа до первой пустой строки. + ::: -:::info -Этот код работает и на клиенте и на сервер. Для сервера результатом будет таблица значений, для клиента - массив структур -::: + :::tip + Значение в колонке "Товар" является идентификатором ссылки. Для справочника значение этой колонки по умолчанию записывается в реквизит "Наименование" или "Код", в зависимости от того, какой из этих реквизитов является основным представлением. Для документа это значение никуда не записывается, оно лишь является идентификатором. Таким образом, если одному значению в колонке "Товар" соответствуют различные значения в других колонках, то в элемент справочника запишутся реквизиты из первой строки, а для других строк ссылка на этот элемент будет проставлена по соответствующему идентификатору + ::: + +## Примеры + +### Загрузка всего макета + +В качестве источника данных можно использовать весь табличный документ. В этом случае будет получена таблица значений, начиная с 1-ой строки и 1-ой колонки табличного документа до первой пустой строки. _Исходные данные_ @@ -227,6 +66,10 @@ _Исходные данные_ | Товар 2 | Поставщик 1 | Товар | 2 000 | 1 | 2000 | | Услуга | | Услуга | 300,5 | 1 | 300.5 | +:::info +Этот код работает и на клиенте и на сервер. Для сервера результатом будет таблица значений, для клиента - массив структур +::: + ```bsl ОписанияТипов = Новый Соответствие; ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары")); @@ -236,7 +79,7 @@ _Исходные данные_ ТаблицаТоваров = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных", ОписанияТипов); -Ютест.ОжидаетЧто(ТаблицаТоваров) +ЮТест.ОжидаетЧто(ТаблицаТоваров) .ИмеетТип("ТаблицаЗначений") .ИмеетДлину(5) .Свойство("[0].Товар.Наименование").Равно("Товар 1") @@ -267,7 +110,7 @@ _Исходные данные_ .Свойство("[4].Сумма").Равно(300.5); ``` -#### Загрузка области из макета +### Загрузка области из макета Можно получить отдельную область из табличного документа и использовать ее в качестве источника данных для таблицы значений. Таким образом в одном табличном документе можно хранить несколько таблиц. @@ -288,9 +131,7 @@ _Исходные данные_ ```bsl ОписанияТипов = Новый Соответствие; ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары")); -ОписанияТипов.Вставить("Цена", Новый ОписаниеТипов("Число")); ОписанияТипов.Вставить("Количество", Новый ОписаниеТипов("Число")); -ОписанияТипов.Вставить("Сумма", Новый ОписаниеТипов("Число")); // Для общего использования созданных значений используется переменная КешЗначений. // В двух табличных документах одинаковый состав товаров. @@ -305,11 +146,11 @@ _Исходные данные_ КэшЗначений ); -ТаблицаИсходныхДанных = ЮТест.Данные().ЗагрузитьИзМакета( - "ОбщийМакет.ЮТ_МакетТестовыхДанных.R1C1R4C4", - ОписанияТипов, - КэшЗначений -); +ОписанияТипов = Новый Соответствие; +ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары")); +ОписанияТипов.Вставить("Цена", Новый ОписаниеТипов("Число")); +ОписанияТипов.Вставить("Количество", Новый ОписаниеТипов("Число")); +ОписанияТипов.Вставить("Сумма", Новый ОписаниеТипов("Число")); ТаблицаОжидаемыхЗначений = ЮТест.Данные().ЗагрузитьИзМакета( "ОбщийМакет.ЮТ_МакетТестовыхДанных.R5C1R8C4", @@ -319,11 +160,11 @@ _Исходные данные_ ТаблицаРезультата = ОбщийМодуль1.ТаблицаТоваровСЦенамиИзОстатков(ТаблицаИсходныхДанных); -Ютест.ОжидаетЧто(ТаблицаРезультата) +ЮТест.ОжидаетЧто(ТаблицаРезультата) .Равно(ТаблицаОжидаемыхЗначений); ``` -#### Загрузка документа с табличной частью и проверка движений +### Загрузка документа с табличной частью и проверка движений Интеграционный-тест для проверки формирования движений документа по некоторому регистру. В первой таблице - табличная часть документа. Во второй - реквизиты самого документа. В третьей - ожидаемые движения по регистру, который нужно протестировать. @@ -331,16 +172,16 @@ _Исходные данные_ Область `Реквизиты_документа` -| ПриходТовара | Дата | Поставщик | Валюта | Склад | Организация | -|--------------|------|-------------|--------|-------|-------------| -| Документ 1 | Дата | Поставщик 1 | Валюта | Склад | Организация | +| ПриходТовара | Дата | Поставщик | Валюта | Склад | Организация | +|--------------|------|-----------|--------|-------|-------------| +| Документ 1 | Дата | Поставщик | Валюта | Склад | Организация | Область `Табличная_часть_документа` | Документ | Товар | Товар.Поставщик | Товар.Вид | Цена | Количество | Сумма | |------------|---------|-----------------|-----------|-------|------------|-------| -| Документ 1 | Товар 1 | Поставщик 1 | Товар | 100 | 1 | 100 | -| Документ 1 | Товар 2 | Поставщик 1 | Товар | 2 000 | 1 | 2000 | +| Документ 1 | Товар 1 | Поставщик | Товар | 100 | 1 | 100 | +| Документ 1 | Товар 2 | Поставщик | Товар | 2 000 | 1 | 2000 | | Документ 1 | Услуга | | Услуга | 300,5 | 1 | 300.5 | Область `Ожидаемые_движения` @@ -354,7 +195,7 @@ _Исходные данные_ ```bsl КэшЗначений = Новый Соответствие; -Организация = Ютест.КонтекстМодуля().Организация; +Организация = ЮТест.КонтекстМодуля().Организация; Поставщик = ЮТест.Данные().СоздатьЭлемент(Справочники.Контрагенты, "Поставщик"); ДатаДокумента = НачалоДня(ТекущаяДатаСеанса()); @@ -363,7 +204,7 @@ _Исходные данные_ // значение из табличного документа к нужному значению. ЗаменяемыеЗначения = Новый Соответствие; ЗаменяемыеЗначения.Вставить("Организация", Организация); -ЗаменяемыеЗначения.Вставить("Поставщик 1", Поставщик); +ЗаменяемыеЗначения.Вставить("Поставщик", Поставщик); ЗаменяемыеЗначения.Вставить("Дата", ДатаДокумента); ОписанияТипов = Новый Соответствие; @@ -427,13 +268,13 @@ _Исходные данные_ Отбор = Новый Структура("Регистратор", ДанныеДокументов.ПриходТовара); ОжидаемыеТоварныеЗапасы = ТаблицаДвижений.Скопировать(Отбор); - Ютест.ОжидаетЧто(ТаблицаТоварныхЗапасов) + ЮТест.ОжидаетЧто(ТаблицаТоварныхЗапасов) .Равно(ОжидаемыеТоварныеЗапасы); КонецЦикла; ``` -#### Заменяемые значения +### Заменяемые значения Создание и заполнение объектов двойной вложенности и более (например, "Товар.Поставщик.ВидКонтрагента") не поддерживается. Если есть такая потребность, следует использовать переменную "ЗаменяемыеЗначения". Т.е. следует создать и заполнять нужный объект перед преобразованием табличного документа в таблицу значений, а затем передать его в функцию получения таблицы значений. @@ -443,7 +284,7 @@ _Исходные данные_ .Записать(); // В табличном документе должна быть колонка [Товар.Поставщик] со значением "Некий поставщик". -// В этом случае в таблицу значений проставится значение, полученное из соответствия +// В этом случае в таблицу значений попадет значение, полученное из соответствия ЗаменяемыеЗначения = Новый Соответствие; ЗаменяемыеЗначения.Вставить("Некий поставщик", Поставщик); @@ -458,7 +299,7 @@ _Исходные данные_ .Свойство("[0].Товар.Поставщик.ВидКонтрагента").Равно(ВидКонтрагента); ``` -#### Заменяемые значения и составные типы +### Заменяемые значения и составные типы Можно использовать составные типы в колонках таблицы значений, но создание объектов метаданных для такой колонки не поддерживается. Можно воспользоваться соответствием "ЗаменяемыеЗначения", если потребуется в одну колонку записать значения разных типов. @@ -488,7 +329,7 @@ _Исходные данные_ ; ``` -#### Inline макеты, загрузка из Markdown +### Inline макеты, загрузка из Markdown При необходимости вы можете разместить таблицу с данными прямо в коде. @@ -512,3 +353,77 @@ _Исходные данные_ Данные = ЮТест.Данные().ЗагрузитьИзМакета(ТаблицаMarkDown, ОписанияТипов); ``` + +## Другие методы загрузки + +* [`ЮТест.Данные().ТаблицаMarkDown`](/api/ЮТТестовыеДанные#таблицаmarkdown) - Читает таблицу MarkDown в массив структур + +```bsl + Макет = + "| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти | + ||------------------------|-------------------------|----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------| + || Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + | + || Документ | Документы | СоздатьДокумент | | + | + | | | | + | + || ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + | + || ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + | + || ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + | + || ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + | + || РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | | + || РегистрНакопления | РегистрыНакопления | СоздатьНаборЗаписей | | | + | + | + | | | + || РегистрБухгалтерии | РегистрыБухгалтерии | СоздатьНаборЗаписей | | | + | + | + | | | + || РегистрРасчета | РегистрыРасчета | СоздатьНаборЗаписей | | | + | + | + | | | + || БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + | + || Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + | + |"; + КоллекцияОписаний = ЮТТестовыеДанные.ТаблицаMarkDown(Макет); + + ТипыМетаданных = Новый Структура(); + + Для Каждого Запись Из КоллекцияОписаний Цикл + + Описание = Новый Структура(); + Описание.Вставить("Имя", Запись.Имя); + Описание.Вставить("ИмяКоллекции", Запись.ИмяКоллекции); + Описание.Вставить("Конструктор", Запись.Конструктор); + Описание.Вставить("Группы", Запись.Группы = "+"); + Описание.Вставить("Ссылочный", Запись.Ссылочный = "+"); + Описание.Вставить("Реквизиты", Запись.Реквизиты = "+"); + Описание.Вставить("Измерения", Запись.Измерения = "+"); + Описание.Вставить("Ресурсы", Запись.Ресурсы = "+"); + Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+"); + Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+"); + + ТипыМетаданных.Вставить(Описание.Имя, Описание); + ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание); + + КонецЦикла; + + Возврат ТипыМетаданных; +``` + +* [`ЮТест.Данные().СтруктураMarkDown`](/api/ЮТТестовыеДанные#структураmarkdown) - Читает таблицу MarkDown в структуру + +```bsl + Функция ИмяКоллекции(Имя) Экспорт + Макет = + "| Имя | ИмяКоллекции | + ||------------------------|-------------------------| + || Справочник | Справочники | + || Документ | Документы | + || ПланВидовХарактеристик | ПланыВидовХарактеристик | + || ПланСчетов | ПланыСчетов | + || ПланВидовРасчета | ПланыВидовРасчета | + || ПланОбмена | ПланыОбмена | + || РегистрСведений | РегистрыСведений | + || РегистрНакопления | РегистрыНакопления | + || РегистрБухгалтерии | РегистрыБухгалтерии | + || РегистрРасчета | РегистрыРасчета | + || БизнесПроцесс | БизнесПроцессы | + || Задача | Задачи | + |"; + Описания = ЮТТестовыеДанные.СтруктураMarkDown("Имя", Макет); + + Возврат Описания[Имя].ИмяКоллекции; + + КонецФункции +``` diff --git a/documentation/docs/features/test-data/test-data-deletion.md b/documentation/docs/features/test-data/test-data-deletion.md new file mode 100644 index 000000000..af9b58a86 --- /dev/null +++ b/documentation/docs/features/test-data/test-data-deletion.md @@ -0,0 +1,246 @@ +--- +tags: [Начало, Тестовые данные] +sidebar_position: 2 +--- + +# Удаление тестовых данных + +При использовании тестовых данных нередко необходимо удалять созданные объекты. + +Для этого вы можете использовать + +## Автоматические транзакции + +Самый простой в способ отката изменений сделанных тестом - обернуть тест в транзакцию. +Для того чтобы YAxUnit сам оборачивал тесты в транзакции вам, при регистрации теста, нужно вызвать метод [`ВТранзакции()`](/api/ЮТТесты#втранзакции). + +* Если метод вызвать в самом начале, то настройка примениться для всех тестов модуля; +* если после добавления набора, то для всех тестов этого набора; +* если после добавления теста, то только для этого теста. +* Также можно отключать использование транзакции, указав параметр `ВТранзакции(Ложь)` + +```bsl title=ВТранзакции.bsl +ЮТТесты + .ДобавитьТест("Фикция").ВТранзакции() // Использование транзакции для конкретного теста + +ЮТТесты + .ДобавитьТестовыйНабор("Основной").ВТранзакции() // Использование транзакции для набора тестов + .ДобавитьТест("Фикция") + +ЮТТесты.ВТранзакции() // Использование транзакции для тестов модуля + .ДобавитьТест("Фикция") +``` + +И тогда тестовый движок будет оборачивать в транзакцию **каждый серверный тест** (для клиентских будет игнорироваться) + +Особенности работы: + +* В транзакцию оборачивается только тест и [события](../events.md) `ПередКаждымТестом\ПередТестом` и `ПослеКаждогоТеста\ПослеТеста` +* Для клиентских тестов настройка игнорируется + +### Схема работы транзакций + +Для настройки + +```bsl title='Тесты набора с настройкой ВТранзакции' +ЮТТесты + .ДобавитьТестовыйНабор("Основной").ВТранзакции() + .ДобавитьТест("Тест1") + .ДобавитьТест("Тест2") +``` + +Схема выполнения будет выглядеть так: + +```mermaid +flowchart TB + bm(ПередВсемиТестами)-->b(ПередТестовымНабором) + b-->Транзакция1 + Транзакция1-->Транзакция2 + Транзакция2-->a(ПослеТестовогоНабора) + a-->am(ПослеВсехТестов) + + subgraph Транзакция1 + direction LR + b1(ПередКаждымТестом)-->t1(Тест1) + t1-->a1(ПослеКаждогоТеста) + end + subgraph Транзакция2 + b2(ПередКаждымТестом)-->t2(Тест2) + t2-->a2(ПослеКаждогоТеста) + end +``` + +Точно также она будет выглядеть и для настройки + +```bsl +ЮТТесты.ВТранзакции() + .ДобавитьТестовыйНабор("Основной") + .ДобавитьТест("Тест1") + .ДобавитьТест("Тест2") +``` + +:::caution Учитывайте +В транзакцию оборачивается тест, а не модуль или набор, поэтому данные созданные вне теста не будут удалены. +Такие данные необходимо удалять самостоятельно при необходимости. + +Например, настройка + +```bsl +ЮТТесты + .ДобавитьТестовыйНабор("Основной").ВТранзакции() // Использование транзакции для набора тестов +``` + +указывает, что каждый тест набор будет выполняться в своей транзакции, которая будет отменена по окончании каждого теста. +::: + +## Механизм удаления тестовых данных + +В некоторых ситуация тестирование в транзакции невозможно: + +* Клиентский тест +* Тестируемый метод не рассчитан на работу в транзакции (например, используются внутренние транзакции) +* Необходимо создавать данные за рамками теста (общие параметры) + +В подобных случаях, для удаления созданных данных, может подойти механизм удаления тестовых данных. + +Для его включения нужно при регистрации теста вызвать метод [`УдалениеТестовыхДанных()`](/api/ЮТТесты#удалениетестовыхданных). + +:::caution Механизм имеет ряд ограничений и не работает для следующих кейсов: + +* Данные созданы не через API +* Данные создаются внутри тестируемого кода +* Данные созданы в клиентском модуле через вызов своего серверного модуля, даже если он использует API тестового движка +::: + +```bsl title=УдалениеТестовыхДанных.bsl +ЮТТесты + .ДобавитьТест("Фикция").УдалениеТестовыхДанных() // Использование для конкретного теста + +ЮТТесты + .ДобавитьТестовыйНабор("Основной").УдалениеТестовыхДанных() // Использование для всех тестов набора + .ДобавитьТест("Фикция") + +ЮТТесты.УдалениеТестовыхДанных() // Использование для всех тестов модуля + .ДобавитьТест("Фикция") + +ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() // Совместно с транзакцией + .ДобавитьТест("Фикция") + +``` + +Механизм не использует транзакции, а запоминает в контексте все созданные с помощью API объекты и записи регистров сведений. +Позволяет: + +* Удалять данные созданные с клиента +* Удалять данные созданные вне теста (в обработчиках событий) + +:::caution Удаление и только +Механизм только удаляет созданные объекты, изменения не откатываются +::: + +:::tip Разное время жизни данных +Механизм понимает в рамках какого контекста исполнения (тест, набор, модуль) были созданы данные и удаляет их по выходу из него. +::: + +Рассмотрим время жизни объектов созданных на разных этапах тестирования, например имеем такой модуль. + +```bsl title=УдалениеТестовыхДанныхВремяЖизни.bsl +Процедура ПередВсемиТестами() Экспорт + ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент(); +КонецПроцедуры + +Процедура ПередТестовымНабором() Экспорт + ДанныеНабора = ЮТест.Данные().СоздатьЭлемент(); +КонецПроцедуры + +Процедура ПослеВсехТестов() Экспорт + ДанныеТеста = ЮТест.Данные().СоздатьЭлемент(); +КонецПроцедуры + +Процедура Тест() Экспорт + Ссылка = ЮТест.Данные().СоздатьЭлемент(); +КонецПроцедуры +``` + +Для переменных получим разное время жизни + +* `ДанныеМодуля` - Живет, пока исполняются тесты модуля одного контекста (Сервер, Клиент). +* `ДанныеНабора` - Живет, пока исполняются тесты набора. +* `ДанныеТеста` и `Ссылка` - Живут, пока исполняется тест. + +### Схема работы механизма "УдалениеТестовыхДанных" + +```mermaid +sequenceDiagram + actor Y as YAxUnit + participant M as Тестовый модуль + participant D as Тестовые данные + box rgb(132 132 132 / 10%) Контексты + participant MC as КонтекстМодуля + participant SC as КонтекстНабора + participant TC as КонтекстТеста + end + + Y->>M: ПередВсемиТестами + activate M + M->>D: СоздатьЭлемент + activate D + D ->> MC: ЗапомнитьСсылку + D ->> M: Созданный элемент + deactivate D + deactivate M + + Y->>M: ПередТестовымНабором + activate M + M->>D: СоздатьЭлемент + activate D + D ->> SC: ЗапомнитьСсылку + D ->> M: Созданный элемент + deactivate D + deactivate M + + Y ->> M: Выполнить тест + activate M + M ->> D: КонструкторОбъекта().Записать() + activate D + D ->> TC: ЗапомнитьСсылку + D ->> M: Созданный элемент + deactivate D + deactivate M + + Y->>M: ПослеТеста + activate M + M->>D: УдалитьТестовыеДанные + activate D + D ->> TC: ПолучитьСохраненныеСсылки + TC ->>D: Сохраненные cсылки + D-->>D: Удаление сохраненных ссылок + deactivate D + deactivate M + + Y->>M: ПослеТестовогоНабора + activate M + M->>D: УдалитьТестовыеДанные + activate D + D ->> SC: ПолучитьСохраненныеСсылки + SC ->>D: Сохраненные cсылки + D-->>D: Удаление сохраненных ссылок + deactivate D + deactivate M + + Y->>M: ПослеВсехТестов + activate M + M->>D: УдалитьТестовыеДанные + activate D + D ->> MC: ПолучитьСохраненныеСсылки + MC ->>D: Сохраненные cсылки + D-->>D: Удаление сохраненных ссылок + deactivate D + deactivate M +``` + +## Глобальная настройка удаления данных + +Для глобальной настройки [`ВТранзакции()`](/api/ЮТТесты#втранзакции) и/или [`УдалениеТестовыхДанных()`](/api/ЮТТесты#удалениетестовыхданных) вам необходимо всего лишь создать свой общий модуль, подписать на событие инициализации и там установить глобальные настройки. + +Подробнее тема будет раскрыта в будущем. diff --git a/documentation/docs/features/test-data/test-data.md b/documentation/docs/features/test-data/test-data.md new file mode 100644 index 000000000..1c3d58463 --- /dev/null +++ b/documentation/docs/features/test-data/test-data.md @@ -0,0 +1,127 @@ +--- +tags: [Начало, Тестовые данные] +sidebar_position: 2 +--- +# Тестовые данные + +Тестовые данные, на мой взгляд, одна из самых сложных тем в тестировании решений на базе 1С:Предприятия. + +Почти все алгоритмы системы опираются на данные базы, они их создают, обрабатывают, изменяют и используют в логике работы. Для корректного проведения одного документа может понадобиться множество записей справочников, настройки/остатки из регистров, значения констант и так далее. +Все это вам придется создать в тесте, который проверит корректность проведения этого документа. И это будет проверка только одного кейса. Для проверки проведения в других условиях вам придется создать еще пачку данных и так далее. + +Можно сократить объемы создаваемых данных используя [мокито](../mocking/mockito.md) и отключая часть логики для каких-то кейсов, но все равно данных понадобится много. + +Для облегчения работы с данными вам необходимо продумать схему, как вы будете с ними работать, откуда брать, как создавать, искать и так далее. + +## Подходы к работе с данными + +1. Ручное наполнение тестовой базы (мы предварительно создаем все что необходимо для тестов в базе, а потом используем её для прогона тестов) +2. Использование файлов с данными (макеты - сгенерированные в нужном формате файлы с описанием тестовых данных, загружаемые при выполнении тестов) +3. Программное создание нужных данных внутри теста + +У каждого из вариантов есть свои плюсы и минусы и при грамотной компоновке можно достичь наилучшего результата. + +* Ручное наполнение базы не учитывает последующие доработки системы, нужна миграция на новые алгоритмы и структуру. А также в этом случае нам необходимо завязываться на конкретные записи в системе, и при их изменении тестом мы можем сломать другие тесты. Поэтому, предварительное наполнение базы должно быть минимальным. +* В случае использования макетов данных возникают некоторые трудности с их доработкой и вариативностью, например, в новом тесте нужны данные из макета, но с некоторыми изменениями. В этом случае нам потребуется создавать новый макет или проверять, не сломают ли наши изменения другие тесты. Также при таком подходе сложно контролировать и искать какие макеты используются и кем. +* Программное создание тестовых данных увеличивает время и сложность теста. + +Если грамотно распределить тестовые данные на способы создания, можно добиться оптимального результата. +Например, статичные данные создать вручную, сложные кейсы данных засунуть в макеты, а для программного создания реализовать методы-конструкторы, которые будем переиспользовать. Таким образом, сможем уйти от минусов того или иного подхода или минимизировать их вред. + +Ниже хочу рассказать как мы работает с данными. + +### Образ тестовой базы + +Для прогона тестов используется предварительно подготовленный образ базы, на котором гоняются тесты как в CI, так и на базах разработки. + +Образ базы - это выгрузка (файл dt) или сама база (файл 1cd), на основании которого копированием или загрузкой создается база для прогона тестов. + +### Ручное наполнение тестовой базы + +Образ предварительно настраивается вручную (либо методами обновления/миграции), вводится минимально необходимая информация и базовые настройки. + +В образе не должно быть документов, справочников и прочего, с чем обычно имеют дело пользователи, только минимальный набор неизменных данных. + +### Программное создание данных + +Все остальные данные тесты готовят для себя сами. + +В большинстве случаев используется программное создание данных + +* Данные создаются кодом, используя [механизмы движка](data-generation.md) +* Используется генерация случайных значений, где это не противоречит требования +* Тесты стараются [прибрать за собой](test-data-deletion.md), используя транзакции или механизм удаления данных +* Созданы отдельные [модули-помощники](../../getting-started/auxiliary-modules.md) реализующие типовые кейсы данных + +#### Благодаря программной генерации данных вы получаете + +* Старый добрый код 1С, который понятен и не требует изучения дополнительных материалов +* Переиспользование и кастомизация алгоритмов генерации данных - общие модули, экспортные методы, параметры. +* Возможность создавать новые уникальные данные +* Можете использовать уже готовую логику тестируемого решения + +```bsl title="Общий модуль ТестовыеДанные" +Функция НовыйТовар() Экспорт + // Логика генерации +КонецФункции + +Функция НовыйПоставщик() Экспорт + // Логика генерации +КонецФункции + +Функция НовоеПоступлениеТовара(Склад, Знач Товар = Неопределено, Знач Поставщик = Неопределено) Экспорт + + Если Поставщик = Неопределено Тогда + Поставщик = НовыйПоставщик(); + КонецЕсли; + + Если Товар = Неопределено тогда + Товар = НовыйТовар(); + КонецЕсли; + + Возврат ЮТест.Данные().КонструкторОбъекта(Документы.ПоступлениеТоваров) + .Установить("Склад", Склад) + .Установить("Поставщик", Поставщик) + .ФикцияОбязательныхПолей(); + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .Установить("Номенклатура", Товар) + .Фикция("Количество") + .Фикция("Цена") + .Провести(); + +КонецФункции +``` + +#### Использование генерации случайных значений позволяет + +* Сократить количество кода +* Акцентировать внимание на "важных" значениях + Например, в тесте ниже важно, чтобы `товар` и `склад` в документах совпадали, дата расхода должна быть больше прихода, количество расхода меньше прихода. + + ```bsl title="Тест" + Склад = ТестовыеДанные.НовыйСклад(); + Товар = ТестовыеДанные.НовыйТовар(); + + ДатаПоступления = ЮТест.Данные().СлучайнаяДата(); + ДатаРасхода = ЮТест.Данные().СлучайнаяДатаПосле(ДатаПоступления); + + КоличествоРасход = ЮТест.Данные().СлучайноеПоложительноеЧисло(100); + КоличествоПоступления = КоличествоРасход + ЮТест.Данные().СлучайноеПоложительноеЧисло(100); + + ТестовыеДанные.НовоеПоступлениеТовара(Склад, Товар, КоличествоПоступления, ДатаПоступления); + ТестовыеДанные.НовыйРасходТовара(Склад, Товар, КоличествоРасход, ДатаРасхода); + + // Проверки + ``` + +* Вскрыть неожиданные проблемы, за счет случайности данных вы покрываете больше кейсов. Правда это имеет и негативный эффект - тесты могут "фонить", то падать, то успешно проходить, а также сложнее воспроизвести упавший тест. + +Правильно организовав работу с тестовыми данными вы существенно облегчите процесс создания и поддержки тестов + +* Регламентируйте подход к именованию модулей и методов, это облегчит их поиск +* Договоритесь как вы будете создавать общие модули, как разделяются по ним конструкторы, например: + * Использовать один модуль на все методы-конструкторы, подходит для небольших решений. + * Создаете модули по подсистемам (разрезы учета/функциональности) - для небольших и средних конфигураций. + * Для каждого объекта/функциональности создается свой модуль с конструкторами - для больших и сложных проектов. +* Выполняйте перекрестные ревью, делитесь знаниями в команде. diff --git a/documentation/docs/features/test-registration.md b/documentation/docs/features/test-registration.md new file mode 100644 index 000000000..db36a1aad --- /dev/null +++ b/documentation/docs/features/test-registration.md @@ -0,0 +1,52 @@ +--- +tags: [Начало] +sidebar_position: 0 +--- + +# Регистрация тестовых методов + +Кроме того, чтобы написать тестовые сценарии (методы), разработчик должен зарегистрировать их в движке - рассказать ему, какие имеются тесты, как их запускать, с какими параметрами и т.д. +Регистрация выполняется внутри предопределенного экспортного метод `ИсполняемыеСценарии`, который обязательно должен находиться в каждом тестовом модуле. + +```bsl +Процедура ИсполняемыеСценарии() Экспорт + + // Регистрация тестов + ЮТТесты // Регистрация тестов выполняет через модуль регистратор + .ДобавитьТестовыйНабор("Математические методы") // Набор - объединение тестов + .ДобавитьТест("Сложение") // Обязательно при регистрации указываем имя экспортного метода + .ДобавитьТест("Вычитание", "Вычитание") // Также можно указать представление теста + .ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля + .ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Есть отдельный метод для регистрации клиентских тестов + .ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов + .ДобавитьТестовыйНабор("Строковые методы") + .ДобавитьТест("СтрНайти") + .ДобавитьТест("СтрРазделить"); + +КонецПроцедуры + +Процедура Сложение() Экспорт + // Тест сложения +КонецПроцедуры + +``` + +В нем перечисляются все доступные тесты этого модуля. +Метод `ИсполняемыеСценарии` вызывается движком для каждого тестового модуля при загрузке тестов, задолго до исполнения самих тестов. +В нем **не стоит** создавать какие-то тестовые данные или выполнять инициализацию, он должен просто отдать список тестов модуля. + +Регистрация и настройка тестов выполняется через методы модуля [`ЮТТесты`](/api/ЮТТесты), он позволяет: + +* Зарегистрировать тесты, с возможностью выбрать контексты исполнения: + * [`ДобавитьТест`](/api/ЮТТесты#добавитьтест) - Тест выполняется во всех контекстах тестового модуля + * [`ДобавитьКлиентскийТест`](/api/ЮТТесты#добавитьклиентскийтест) - Тест выполняется на клиенте + * [`ДобавитьСерверныйТест`](/api/ЮТТесты#добавитьсерверныйтест) - Тест выполняется на сервере +* [`ДобавитьТестовыйНабор`](/api/ЮТТесты#добавитьтестовыйнабор) позволяет сгруппировать тесты в наборы +* Настроить параметры исполнения теста + * [Очистка данных](test-data/test-data-deletion), перед использованием изучите [документацию](test-data/test-data-deletion) + * Выполнение [`ВТранзакции`](/api/ЮТТесты#втранзакции) - Тест выполняется в транзакции + * Удаление тестовых данных ([`УдалениеТестовыхДанных`](/api/ЮТТесты#удалениетестовыхданных)) - Данные созданные тестом будут удалены (если они создаются с помощью API движка - [`ЮТест.Данные()`](/api/ЮТест#данные)) вне зависимости от транзакции + * [`СПараметрами`](/api/ЮТТесты#спараметрами) - Тестовый метод будет вызван с указанными параметрами +* Настройка обработчиков [событий](events.md) + * [`Перед`](/api/ЮТТесты#перед) - Указывает, какой метод будет выполнятся перед тестом + * [`После`](/api/ЮТТесты#после) - Указывает, какой метод будет выполнятся после тестом diff --git a/documentation/docs/first-test.md b/documentation/docs/first-test.md deleted file mode 100644 index a81b84616..000000000 --- a/documentation/docs/first-test.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_position: 2 -tags: [Начало] ---- - -# Пишем первый тест - -Для создания теста нужно в расширении (в отдельном или в том же) добавить модуль, содержащий экспортный метод регистрации - ИсполняемыеСценарии и реализовать тесты. - -```bsl title="ОМ_ПервыйТест" -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - ЮТТесты - .ДобавитьТест("Сложение") - .СПараметрами(2, 3, 5) - .СПараметрами(2, -3, -1) - ; - -КонецПроцедуры - -Процедура Сложение(ПервыйОперанд, ВторойОперанд, Результат) Экспорт - - ЮТест.ОжидаетЧто(ПервыйОперанд + ВторойОперанд) - .ИмеетТип("Число") - .Равно(Результат); - -КонецПроцедуры - -#КонецОбласти -``` diff --git a/documentation/docs/getting-started/auxiliary-modules.md b/documentation/docs/getting-started/auxiliary-modules.md new file mode 100644 index 000000000..a49921b70 --- /dev/null +++ b/documentation/docs/getting-started/auxiliary-modules.md @@ -0,0 +1,97 @@ +# Модули помощники + +При написании тестов не стоит забывать, что вы пишете код, а это значит, что вы можете использовать те же принципы, что при обычной разработке. + +Вы можете создавать общие модули и экспортные методы, которые упростят написание тестов для вашего продукта. +Такие как модули создания тестовых данных, настройки мокирования, общих проверок и так далее. +Главное сначала подумать об организации работы с ними, чтобы в будущем было проще находить нужные методы и избежать конфликтов при разработке. + +## Конструкторы данных + +Предположим у нас есть подсистема управления складом, которая содержит документы поступления, перемещения и реализации. +Создание документа поступления нам понадобится при тестировании всех видов документов, поэтому стоит вынести это в отдельный общий модуль. + +```bsl title="ОбщийМодуль.ТестовыеДанныеУправлениеСкладом" +Функция НовоеПоступлениеТовара(Склад, Товар, Поставщик = Неопределено) Экспорт + Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПоступлениеТоваров) + .ФикцияОбязательныхПолей() + .Установить("Склад"); + + Если Поставщик = Неопределено Тогда + Конструктор.Фикция("Поставщик"); + Иначе + Конструктор.Установить("Поставщик", Поставщик); + КонецЕсли + + Возврат Конструктор + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .Установить("Номенклатура", Товар) + .Фикция("Количество") + .Фикция("Цена") + .Записать(); + +КонецФункции +``` + +Бывают случаи, когда слишком сложно кастомизировать создание объекта через параметры, тогда удобнее возвращать конструктор объекта с базовым заполнением. Либо сделать набор методов-пресетов для различных кейсов. + +```bsl title="ОбщийМодуль.ТестовыеДанныеУправлениеСкладом" +Функция КонструкторПоступленияТовара(Склад, Поставщик = Неопределено) Экспорт + Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПоступлениеТоваров) + .ФикцияОбязательныхПолей() + .Установить("Склад"); + + Если Поставщик = Неопределено Тогда + Конструктор.Фикция("Поставщик"); + Иначе + Конструктор.Установить("Поставщик", Поставщик); + КонецЕсли + + Возврат Конструктор; + +КонецФункции + +Функция НовоеПоступлениеТовара(Склад, Товар, Поставщик = Неопределено) Экспорт + Конструктор = КонструкторПоступленияТовара(Склад, Поставщик); + + Возврат Конструктор + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .Установить("Номенклатура", Товар) + .Фикция("Количество") + .Фикция("Цена") + .Записать(); + +КонецФункции + +Функция НовоеПоступлениеТовараОтЮрЛица(Склад, Товар) Экспорт + Поставщик = НовоеЮрЛицо(); + + Конструктор = КонструкторПоступленияТовара(Склад, Поставщик); + + Возврат Конструктор + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .Установить("Номенклатура", Товар) + .Фикция("Количество") + .Фикция("Цена") + .Записать(); + +КонецФункции + +Функция НовоеПоступлениеТовараОтФизЛица(Склад, Товар) Экспорт + Поставщик = НовоеФизЛицо(); + + Конструктор = КонструкторПоступленияТовара(Склад, Поставщик); + + Возврат Конструктор + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .Установить("Номенклатура", Товар) + .Фикция("Количество") + .Фикция("Цена") + .Записать(); + +КонецФункции +``` diff --git a/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png b/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png new file mode 100644 index 0000000000000000000000000000000000000000..ae669afa2c481608ea6f0d18579e945c8a07d5ba GIT binary patch literal 52981 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/getting-started/edt-plugin/images/module-launch-test.png b/documentation/docs/getting-started/edt-plugin/images/module-launch-test.png new file mode 100644 index 0000000000000000000000000000000000000000..11ad6d1fa3c9566c0b2ad3c4824766d9e44cb779 GIT binary patch literal 53847 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/getting-started/edt-plugin/images/report.png b/documentation/docs/getting-started/edt-plugin/images/report.png new file mode 100644 index 0000000000000000000000000000000000000000..8314a493e5c68123aed24c27e5facb9bf36bea7b GIT binary patch literal 160482 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�_H2Cr@HTy-GzMMQ5@vfnN1 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 z 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 )N*NX%QbAUT`09 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�J*ch0=l6u-zJ#{8V8r4=7fUM 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 N002ovPDHLkV1hYHrM>_F literal 0 HcmV?d00001 diff --git a/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png b/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png new file mode 100644 index 0000000000000000000000000000000000000000..6170ba18b4bc71a52dffbeda8e116bd06f17e6e3 GIT binary patch literal 207159 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