Подключение телефонии Sipuni
Интеграция с телефонией Sipuni позволяет обрабатывать звонки в Юздеске и собирать по ним статистику. При приёме звонков можно сразу переходить по ссылке на карточку запроса в Юздеск с информацией о звонке.
1. Чтобы подключить телефонию Sipuni к Юздеску, откройте раздел «Каналы» и нажмите «Добавить канал».
2. Выберите раздел «API».
3. Заполните «Название канала» – обязательное поле, которое будет отображаться в общем списке каналов в разделе «Каналы» и при работе с обращениями.
4. Проставьте галочки напротив полей «JSON запрос» и «отправлять в UTF-8» и нажмите «Сохранить».
5. После сохранения канала скопируйте секретный ключ и перенесите созданный канал в отслеживаемые. Нажмите снова «Сохранить».
На стороне Юздеска настройки завершены — переходим в личный кабинет телефонии Sipuni.
ВАЖНО! Интеграция доступна в расширенном тарифе Sipuni.
6. Зайдите в личный кабинет Sipuni, раздел «Интеграции» → «Юздеск».
7. В разделе «Авторизация в Usedesk» вставьте сохраненный секретный ключ из п. 5 в поле «API-ключ».
Внутренний номер вы можете создать в разделе «Конструктор» → «Сотрудники».
Тут же вам будет предложено установить расширение или коммуникатор.
Проверьте ещё раз, что все пользователи распределены верно, и сохраните настройки конфигурации.
Важно!
Отдел поддержки Sipuni сможет ответить вам по вопросам покупки номера, настройки схем, добавлению сотрудников и т. д. Также некоторые детали по работе телефонии описаны в Базе знаний Sipuni.
а мы продолжим настройку интеграции.
9. Далее нужно настроить сценарий интеграции.
Функции, которые могут могут быть настроены в телефонии:
- входящий звонок на внешний номер,
- входящий звонок на внутренний номер,
- исходящий звонок,
- подняли рубку при входящем,
- пропущен входящий,
- исходящий не отвечен,
- завершён входящий разговор,
- завершён исходящий разговор,
- вызов CRM.
С помощью функции Sipuni вы можете воспользоваться уже написанным кодом или написать свой и начать полноценно пользоваться интеграцией.
Пример написанного кода (функции Sipuni) для сценария:
- Проверка клиента по номеру телефона (если телефона нет, создаётся клиент);
- Проверка запроса по клиенту (если нет открытого запроса по клиенту – создаём новый);
- Добавление звонка в запрос с комментарием и ссылкой на запись.
Входящий звонок на внешний номер
1. Зайдите в раздел «Настройки» → «Интеграции» и нажмите node.
2. Выберите Usedesk в качестве CRM.
3. Нажмите «Создать функцию» → «Входящий звонок на внешний номер».
следующий код:
const SipuniUsedeskApi = require('@sipuni/usedesk'); <<<<<<<<<<<<<$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function findClient(api, phone) { const clients = await api.clients.list({ offset: 0, query: phone, // поиск по номеру абонента search_type: 'full_match', }); if (clients.length > 0) { return clients[0]; } return null; } <<<<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function createClient(api, phone) { const client = await api.clients.create({ name: phone, phone: phone, }); client.id = client.client_id; // добавляем поле id, как у клиента вернувшегося из findClient return client; } <<<<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function findOpenTicket(api, client) { const found = await api.tickets.list({ client_id: client.id, fstatus: '1,8', // Запросы со статусами Открыт и Новый }); if (!found.length) { return null; } else { return found[0]; // Берем первый запрос } } <<<<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function createTicket(api, client, phone) { const ticket = await api.tickets.create({ subject: `Входящий звонок от ${phone}`, message: 'Входящий запрос', client_id: client.id, }); ticket.id = ticket.ticket_id; return ticket; } module.exports = <<<<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> (args) => { const phone = args.call_args.src_num; const token = args.settings.api_key; let client = null; let isExistingClient = true; let ticket = null; const api = new SipuniUsedeskApi({ token }); // Ищем клиента, создаем если не найден client = await findClient(api, phone); if (!client) { client = await createClient(api, phone); isExistingClient = false; } // Ищем открытый или новый запрос, если не найден – создаем if (isExistingClient) { ticket = await findOpenTicket(api, client); } if (!ticket) { ticket = await createTicket(api, client, phone); } // Возвращаем объект с идентификаторами клиента и запроса, // и флаг existing_client - клиент найден или создан // Эта информация пригодится в других функциях return { client_id: client.id, ticket_id: ticket.id, existing_client: isExistingClient, }; };<<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<<<<<<<< $1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1>$1><<<<< $1>$1>$1>$1>$1>$1><$1>$1><<<<< $1>$1>$1>$1>$1>$1>$1><<<<<<