Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Наступна ревізія | Попередня ревізія | ||
| scada:cicodefiles [2026/08/27 10:29] – створено scada | scada:cicodefiles [2026/08/27 10:39] (поточний) – scada | ||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| - | asd | + | ====== Документація бібліотечних модулів Cicode (AVEVA / Citect SCADA & PowerSCADA Expert) ====== |
| + | |||
| + | ===== 1. Базові бібліотечні контролі та графічний інтерфейс ===== | ||
| + | |||
| + | ==== _Internal_Library.ci (_Internal_Control.ci) ==== | ||
| + | Базове ядро системи бібліотечних контролів SCADA: | ||
| + | |||
| + | * Реєстрація елементів через анімаційні номери (AN). | ||
| + | |||
| + | |||
| + | * Розподіл завдань на черги високого ('' | ||
| + | |||
| + | |||
| + | * Керування життєвим циклом компонентів: | ||
| + | |||
| + | |||
| + | * Маніпуляція числовими масивами в рядках ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== *Internal_Table.ci / Table.ci ==== | ||
| + | Низькорівневе ядро та публічний API табличного контролу ('' | ||
| + | |||
| + | * Керування структурою колонок: | ||
| + | |||
| + | |||
| + | * Обробка виділення рядків: | ||
| + | |||
| + | |||
| + | * Кешування даних комірок, | ||
| + | |||
| + | |||
| + | |||
| + | ==== TabTable.ci ==== | ||
| + | Високорівневі допоміжні функції для роботи з таблицями в шаблонах екранних форм: | ||
| + | |||
| + | * Автоматичний підбір ширини всіх видимих колонок таблиці ('' | ||
| + | |||
| + | |||
| + | * Підрахунок кількості виділених оператором рядків у видимій області дисплея ('' | ||
| + | |||
| + | |||
| + | * Запит підтвердження дій над прихованими за межами прокрутки виділеними записами ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== *Internal_Scrollbar.ci / Scrollbar.ci ==== | ||
| + | Внутрішня математика та публічний інтерфейс елемента смуги прокрутки ('' | ||
| + | |||
| + | * Розрахунок розміру бігунка (thumb) відносно співвідношення видимих рядків до загальної кількості. | ||
| + | |||
| + | |||
| + | * Обробка перетягування бігунка мишею, посторінковий перехід при кліку поза повзунком та автоприховування. | ||
| + | |||
| + | |||
| + | * Синхронізація позиції прокрутки з прив' | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_Slider.ci / Slider.ci ==== | ||
| + | Реалізація горизонтального та вертикального повзунка/ | ||
| + | |||
| + | * Обчислення абсолютного та відносного зсуву в пікселях під час перетягування ('' | ||
| + | |||
| + | |||
| + | * Підтримка режиму пристикування (Docking) до країв екрана зі збереженням попередньої позиції. | ||
| + | |||
| + | |||
| + | * Збереження позицій слайдера у чергах для відновлення стану після зміни сторінок. | ||
| + | |||
| + | |||
| + | |||
| + | ==== TabTree.ci ==== | ||
| + | Керування інтерактивним спліттером (розділювачем панелей) між деревом та таблицею: | ||
| + | |||
| + | * Динамічна зміна ширини лівого дерева та правої таблиці при переміщенні повзунка ('' | ||
| + | |||
| + | |||
| + | * Автоматичне позиціонування та приховування прив' | ||
| + | |||
| + | |||
| + | * Допоміжні функції роботи з кластерними префіксами обладнання ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_Tree.ci / Tree.ci ==== | ||
| + | Ієрархічне деревоподібне меню з підтримкою чекбоксів: | ||
| + | |||
| + | * Рекурсивний рендеринг вузлів, | ||
| + | |||
| + | |||
| + | * Підтримка станів чекбоксів (активний, | ||
| + | |||
| + | |||
| + | * Автоматичне розгортання батьківських гілок і прокрутка до виділеного елемента ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_Calendar.ci / Calendar.ci ==== | ||
| + | Календарний контроль для вибору дат і часових проміжків: | ||
| + | |||
| + | * Календарна арифметика: | ||
| + | |||
| + | |||
| + | * Обробка вибору одиночних дат, діапазонів і подвійних кліків ('' | ||
| + | |||
| + | |||
| + | * Підсвічування поточної дати, виділених днів та перехід між місяцями свайпами. | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_Sample.ci / Sample.ci ==== | ||
| + | Шаблонний каркас для розробки нових бібліотечних контролів: | ||
| + | |||
| + | * Базова координатна сітка, обробка наведення та кліків курсора. | ||
| + | |||
| + | |||
| + | * Структура для підключення горизонтальних і вертикальних скролбарів. | ||
| + | |||
| + | |||
| + | |||
| + | ===== 2. Навігація, | ||
| + | |||
| + | ==== _Internal_PageTabs.ci / Tabs.ci / PageTabs.ci ==== | ||
| + | Керування вкладками сторінок (Tab Control): | ||
| + | |||
| + | * Динамічна генерація та перемикання вкладок зі списку відкритих вікон ('' | ||
| + | |||
| + | |||
| + | * Підтримка закриття окремих вкладок кліком на піктограму хрестика. | ||
| + | |||
| + | |||
| + | * Розрахунок адаптивної ширини та посторінкова прокрутка вкладок ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== Tabmenu.ci / Tabmenu_Metadata.ci ==== | ||
| + | Система навігаційних вкладок і панелей кнопок у шаблонах Tab Style: | ||
| + | |||
| + | * Побудова дворівневого меню (вкладки розділів зверху, | ||
| + | |||
| + | |||
| + | * Автоматичне приховування елементів, | ||
| + | |||
| + | |||
| + | * Збереження конфігурації позицій, | ||
| + | |||
| + | |||
| + | |||
| + | ==== Page.ci ==== | ||
| + | Системні функції навігації, | ||
| + | |||
| + | * Перехід до батьківської сторінки ('' | ||
| + | |||
| + | |||
| + | * Відображення діалогового вікна входу/ | ||
| + | |||
| + | |||
| + | * Парсер виконання команд формату CSV_Include (''? | ||
| + | |||
| + | |||
| + | * Перевірка привілеїв під час спроби завершення роботи SCADA ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSNavigation.ci ==== | ||
| + | Керування історією переходів оператора: | ||
| + | |||
| + | * Ведення циклічного стека історії відкритих сторінок для кожного вікна окремо. | ||
| + | |||
| + | |||
| + | * Навігація вперед/ | ||
| + | |||
| + | |||
| + | * Випадаюче контекстне меню історії відвіданих сторінок ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSNavigationCustom_Tabmenu.ci ==== | ||
| + | Генерація типової структури навігаційного меню: | ||
| + | |||
| + | * Автоматичне наповнення розділів меню: «PAGES» (сторінки проекту з бази '' | ||
| + | |||
| + | |||
| + | * Фільтрація та виключення службових сторінок ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSNavigationTabs.ci ==== | ||
| + | Побудова навігаційних панелей на основі бази даних '' | ||
| + | |||
| + | * Зчитування дерева меню, прав доступу операторів, | ||
| + | |||
| + | |||
| + | * Динамічний розрахунок геометрії кнопок та позиціонування елементів за рівнями. | ||
| + | |||
| + | |||
| + | |||
| + | ===== 3. Тривоги, | ||
| + | |||
| + | ==== AlarmFilter.ci / TabAlarmFilter.ci ==== | ||
| + | Публічний інтерфейс для виклику діалогів фільтрації тривог: | ||
| + | |||
| + | * Відкриття діалогу налаштування фільтрації активних тривог, | ||
| + | |||
| + | |||
| + | * Формування та застосування рядка фільтра до системного списку анімаційного номера (AN). | ||
| + | |||
| + | |||
| + | * Перевірка наявності конкретних полів у поточному фільтрі ('' | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_AlarmFilterActiveX.ci / _Internal_AlarmFilterControls.ci ==== | ||
| + | Обслуговування вікна конфігурації фільтра тривог: | ||
| + | |||
| + | * Ініціалізація випадаючих списків вибору полів тривог, | ||
| + | |||
| + | |||
| + | * Керування радіокнопками вибору простого, | ||
| + | |||
| + | |||
| + | * Інтеграція з календарем для вибору часових інтервалів. | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_AlarmFilterParser.ci / _Internal_AlarmFilterTable.ci / _Internal_AlarmFilterTransfer.ci ==== | ||
| + | Аналіз, | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSAlarmFilter.ci / PLSAlarmFilterInit.ci / PLSAlarmFilterValidation.ci ==== | ||
| + | Розширена фільтрація тривог для PowerSCADA Expert: | ||
| + | |||
| + | * Підтримка модальних вікон фільтрації тривог та подій безпеки ('' | ||
| + | |||
| + | |||
| + | * Фільтрація за часовими мітками з корекцією літнього часу (DST), категоріями, | ||
| + | |||
| + | |||
| + | * Валідація синтаксису введених користувачем даних перед збереженням у глобальний кеш. | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_AlmTable.ci / AlmTable.ci / TabAlmTable.ci ==== | ||
| + | Реалізація та адаптація таблиці відображення тривог: | ||
| + | |||
| + | * Зчитування записів тривог за допомогою викликів '' | ||
| + | |||
| + | |||
| + | * Формування колонок на основі категорійних форматів або параметрів проекту. | ||
| + | |||
| + | |||
| + | * Сортування колонок кліком по заголовку, | ||
| + | |||
| + | |||
| + | |||
| + | ==== TabAlarm.ci / TabAlarm_Metadata.ci / TabAlarm_Utility.ci ==== | ||
| + | Утиліти та методи обробки тривог для Tab Style шаблонів: | ||
| + | |||
| + | * Перевірка прав доступу на квитування, | ||
| + | |||
| + | |||
| + | * Керування контекстним меню виділеного рядка тривоги. | ||
| + | |||
| + | |||
| + | * Збереження метаданих списку тривог і колонок у сторінкових змінних. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSAlarmDisplay.ci / PLSAlarmCustom_TabAlarm.ci ==== | ||
| + | Специфічні механізми відображення та контекстні дії тривог PLS: | ||
| + | |||
| + | * Формування розширеного контекстного меню (перехід до перегляду осцилограм Waveform, історії сповіщень Notification History, сторінки обладнання). | ||
| + | |||
| + | |||
| + | * Додавання користувацьких коментарів та подій безпосередньо у Sequence of Events (SOE). | ||
| + | |||
| + | |||
| + | * Декодування спеціальних тегів опису в коментарях ('''', | ||
| + | |||
| + | |||
| + | |||
| + | ==== TabAlarmEqTree.ci ==== | ||
| + | Синхронізація дерева обладнання з фільтрами списку тривог: | ||
| + | |||
| + | * Автоматичне формування складних фільтрів за вибраними чекбоксами вузлів дерева. | ||
| + | |||
| + | |||
| + | * Підрахунок та динамічне відображення кількості активних тривог для кожного пристрою дерева. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSAlarmSetpoints.ci ==== | ||
| + | Перегляд та зміна уставок спрацьовування аварійної сигналізації: | ||
| + | |||
| + | * Посторінкова навігація по списку уставок аналогових і дискретних тривог. | ||
| + | |||
| + | |||
| + | * Зміна числових значень меж (HH, H, L, LL, Deadband, Delay) через екранну клавіатуру з перевіркою меж. | ||
| + | |||
| + | |||
| + | * Дистанційне блокування/ | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSAlarmSound.ci / TabAlarmSnd.ci ==== | ||
| + | Звукова сигналізація аварійних режимів: | ||
| + | |||
| + | * Фоновий контроль найвищого несквитованого пріоритету тривоги в системі. | ||
| + | |||
| + | |||
| + | * Відтворення аудіофайлів '' | ||
| + | |||
| + | |||
| + | * Функція тимчасового заглушення сирени (Silence) оператором на заданий час. | ||
| + | |||
| + | |||
| + | |||
| + | ==== AddAuditEvent.ci / PLSAlarmQueue.ci ==== | ||
| + | Журналювання аудиту та файлова черга: | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== 4. Перегляд баз даних, SQL та теги ===== | ||
| + | |||
| + | ==== _Internal_BrowseTable.ci / BrowseTable.ci / TabBrowseTable.ci ==== | ||
| + | Універсальна таблиця перегляду записів конфігураційних баз SCADA: | ||
| + | |||
| + | * Відкриття та посторінковий скролінг сесій перегляду тегів, обладнання, | ||
| + | |||
| + | |||
| + | * Збереження структури колонок і ширини в INI-файлі між сеансами роботи. | ||
| + | |||
| + | |||
| + | * Контекстне меню зміни значення тегу, встановлення режимів заміщення (Override Mode) та блокування керування (Control Mode). | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_SqlTable.ci / SqlTable.ci ==== | ||
| + | Таблиця виконання прямих SQL-запитів до реляційних СУБД: | ||
| + | |||
| + | * Відкриття підключення до БД ('' | ||
| + | |||
| + | |||
| + | * Автоматичне створення структури колонок на основі метаданих отриманого рекордсету. | ||
| + | |||
| + | |||
| + | * Посторінкове відображення рядків із навігацією по масиву результатів. | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_TagTable.ci / TagTable.ci ==== | ||
| + | Таблиця динамічного перегляду підписаних змінних тегів: | ||
| + | |||
| + | * Оформлення підписок на теги в реальному часі ('' | ||
| + | |||
| + | |||
| + | * Автоматичне оновлення комірок таблиці через callback-процедури при зміні значень чи якості. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSTagBrowse.ci / PLSTagView.ci / PLSTagExtensions.ci ==== | ||
| + | Інструменти діагностики та перегляду тегів: | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== 5. Однолінійні схеми, анімація та обладнання ===== | ||
| + | |||
| + | ==== PLSAnimation.ci / PLSAnimGenies.ci / PLSAnimColor.ci / PLSAnimCore.ci ==== | ||
| + | Ядро та механізми динамічної розмальовки схем OneLine (Advanced One Line): | ||
| + | |||
| + | * Обробка станів вимикачів: | ||
| + | |||
| + | |||
| + | * Моніторинг працездатності (Health Check) зовнішнього процесу розрахунку топології схеми '' | ||
| + | |||
| + | |||
| + | * Призначення кольорів лініям, | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSEquipment.ci / PLSEquipmentAdv.ci / PLSEquipmentForm.ci / PLSEquipmentUtil.ci ==== | ||
| + | Команди телекерування комутаційними апаратами: | ||
| + | |||
| + | * Пряме керування (Direct Operate) та вибір перед виконанням (Select-Before-Operate) для вимикачів. | ||
| + | |||
| + | |||
| + | * Розширені команди для стандарту IEC 61850 з перевіркою синфазності (Synchrocheck), | ||
| + | |||
| + | |||
| + | * Спливаючі діалогові вікна підтвердження операцій '' | ||
| + | |||
| + | |||
| + | * Фоновий сервіс моніторингу статусу зв' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSMotorForm.ci ==== | ||
| + | Керування та моніторинг асинхронних електродвигунів: | ||
| + | |||
| + | * Збір статусів: | ||
| + | |||
| + | |||
| + | * Підтримка режимів: | ||
| + | |||
| + | |||
| + | * Команди пуску вперед/ | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSEnersure.ci ==== | ||
| + | Підтримка панелей багатоканального обліку електроенергії Enersure (ANSI/ | ||
| + | |||
| + | * Відображення параметрів струмів, | ||
| + | |||
| + | |||
| + | * Графічне групування одно-, дво- та трифазних конфігурацій фідерів. | ||
| + | |||
| + | |||
| + | |||
| + | ==== _Internal_EquipTree.ci / DDD.ci / PLSGraphicsTest.ci ==== | ||
| + | Допоміжні модулі обладнання: | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== 6. Тренди та аналіз процесів ===== | ||
| + | |||
| + | ==== PLSProcessAnalyst.ci / PLSPADisplay.ci ==== | ||
| + | Інтеграція та керування ActiveX-компонентом Process Analyst: | ||
| + | |||
| + | * Відкриття сторінок та спливаючих вікон аналізу трендів ('' | ||
| + | |||
| + | |||
| + | * Динамічне додавання та видалення пер аналогових трендів і тривог, | ||
| + | |||
| + | |||
| + | * Налаштування індивідуальних шкал, інтервалів часу та типу ліній (пряма/ | ||
| + | |||
| + | |||
| + | * Збереження набору обраних точок у списку оператора для швидкого виклику графіків. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSInstantTrends.ci ==== | ||
| + | Швидкі тренди реального часу (Instant Trends): | ||
| + | |||
| + | * Відкриття вікна '' | ||
| + | |||
| + | |||
| + | * Інтерактивне додавання пера кліком лупи по будь-якому тегу на мнемосхемі SCADA. | ||
| + | |||
| + | |||
| + | * Навігація по базі тегів через спливаюче діалогове вікно вибору. | ||
| + | |||
| + | |||
| + | |||
| + | ===== 7. Осцилограми та протокол COMTRADE ===== | ||
| + | |||
| + | ==== PLSWaveform.ci / PLSWaveformSearch.ci ==== | ||
| + | Пошук та перегляд файлів осцилограм: | ||
| + | |||
| + | * Пошук файлів осцилограм у локальній базі за мітками часу подій (UTC/мс) та іменем пристрою. | ||
| + | |||
| + | |||
| + | * Відображення діалогу результатів пошуку '' | ||
| + | |||
| + | |||
| + | * Взаємодія з системною бібліотекою '' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSWaveformFTP.ci / PLUSFTP.ci / PLSWaveformExtractorCore.ci ==== | ||
| + | Автоматичне вивантаження та збір осцилограм: | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSWaveformEvent.ci ==== | ||
| + | Генерація записів у журналі подій при появі нових осцилограм: | ||
| + | |||
| + | * Синхронізація індексатора '' | ||
| + | |||
| + | |||
| + | * Створення події зміни значення змінної для інформування оператора про новий аварійний запис. | ||
| + | |||
| + | |||
| + | |||
| + | ===== 8. Безпека, | ||
| + | |||
| + | ==== PLSSecurity.ci / PLSOneTimePassword.ci ==== | ||
| + | Контроль доступу та багатофакторна аутентифікація: | ||
| + | |||
| + | * Авторизація користувачів з підтримкою вибору мови локалізації. | ||
| + | |||
| + | |||
| + | * Двофакторна перевірка одноразових паролів (YubiKey/ | ||
| + | |||
| + | |||
| + | * Багаторівнева перевірка прав на виконання команд телекерування з повторним запитом пароля. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSProviderEngine.ci ==== | ||
| + | Інтерфейс взаємодії з постачальниками даних платформи (Provider Engine): | ||
| + | |||
| + | * Асинхронний виклик провайдерів за GUID через бібліотеку '' | ||
| + | |||
| + | |||
| + | * Оновлення метаданих платформи на серверах та очищення кешу пам' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSNotification.ci ==== | ||
| + | Служба нативних сповіщень операторів (Email/ | ||
| + | |||
| + | * Вичитка черги подій ядра '' | ||
| + | |||
| + | |||
| + | * Моніторинг черги Watchdog та відстеження зміни станів серверів тривог (Active/ | ||
| + | |||
| + | |||
| + | * Діалогові форми налаштування одержувачів і перегляду історії сповіщень. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSApplications.ci / PLSWebPage.ci ==== | ||
| + | Інтеграція зовнішніх веб-додатків та PME (Power Monitoring Expert): | ||
| + | |||
| + | * Генерація Single Sign-On (SSO) токенів для безпечного відкриття сторінок без повторного вводу пароля. | ||
| + | |||
| + | |||
| + | * Відкриття звітів PME Reports, WebReach, панелей Dashboards та веб-інтерфейсу сповіщень ENM у вікнах SCADA. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSDiagnosticsViewer.ci ==== | ||
| + | Запуск зовнішньої утиліти системної діагностики: | ||
| + | |||
| + | * Виклик діагностичного модуля '' | ||
| + | |||
| + | |||
| + | * Перевірка прав RPC та доступності серверних компонентів системи. | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSGeneral.ci / Display.ci ==== | ||
| + | Загальносистемні та графічні утиліти: | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ==== PLSOEM.ci / PLSVersion.ci / PLUSXML.ci / MillisecondHelper.ci ==== | ||
| + | Службові функції запуску, | ||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Зведена таблиця компонентів ===== | ||
| + | |||
| + | ^ Файл ^ Призначення / Підсистема ^ Ключові функції / Механізми ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||