Тестирование пользовательского интерфейса
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
26 июня 2024 г. | 2.3.0 | - | - | 2.4.0-альфа01 |
Объявление зависимостей
Чтобы добавить зависимость от теста, вы должны добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .
Добавьте зависимости для нужных вам артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha01" }
Котлин
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см . в документации по системе отслеживания проблем .
Версия 2.4
Версия 2.4.0-альфа01
26 июня 2024 г.
Выпущен androidx.test.uiautomator:uiautomator:2.4.0-alpha01
. Версия 2.4.0-alpha01 содержит эти коммиты .
Изменения API
- Устаревшие
Configurator#getKeyInjectionDelay
иsetKeyInjectionDelay
поскольку параметр теперь не используется, поскольку текст всегда вводится напрямую, а не нажатием клавиш. ( I3bcc5 ).
Исправления ошибок
- Обновлена задержка между событиями движения
UiObject2
для учета динамической частоты обновления (т. е. плавного отображения) ( I43f12 ). - Уменьшена нестабильность из-за устаревшего узла доступности в некоторых пользовательских интерфейсах за счет периодической аннулирования кэша доступности ( I3be25 ).
- Исправлено
StaleObjectException
, возникающее при вызовеtoString
илиhashCode
для устаревшегоUiObject2
. ( I38ea1 ). - Улучшена производительность
UiWatcher
за счет пропуска ненужных вызововwaitForIdle
. ( I8c65e ). - Исправлены неточности в javadoc, особенно для пояснения того, когда используется каждый параметр
Configurator
. ( Ie10b1 , I71631 ).
Версия 2.3.0
Версия 2.3.0
21 февраля 2024 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0
. Версия 2.3.0 содержит эти коммиты.
Важные изменения с версии 2.2.0
- Поддержка нескольких дисплеев : добавлена поддержка поиска и работы с объектами на нескольких дисплеях, а также методы
UiDevice
для управления дополнительными дисплеями ( Ie6544 , I912cd ). - Новые селекторы :
- Пользовательские условия : предоставлен интерфейс
Condition
для поддержки пользовательских условий ожидания и добавлены соответствующие методыUiDevice#wait
,UiObject2#wait
иUiObject2#scrollUntil
( 27c0ea , 099d6e ). - Исправления ошибок и надежность
- Исправлена проблема, из-за которой расчеты размера дисплея иногда были неверными и могли игнорировать части экрана ( Ifc016 ). Координаты и смещения, используемые в тестах, возможно, придется скорректировать.
- Обновлено внедрение
MotionEvent
для повышения точности ( 678ca3 ) и лучшей эмуляции жестов пользователя ( 454450 ). - Повышена надежность прокрутки ( I7b059 ), вращения ( c6cea0 ), длинных щелчков ( 49572b ), сжатия ( 3c619a ) и многого другого.
Версия 2.3.0-rc01
7 февраля 2024 г.
androidx.test.uiautomator:uiautomator:2.3.0-rc01
выпущен без изменений. Версия 2.3.0-rc01 содержит эти коммиты.
Версия 2.3.0-бета01
13 декабря 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-beta01
. Версия 2.3.0-beta01 содержит эти коммиты.
Изменения API
- Методы поля
UiObject2
основанные на процентах, переименованы вsetGestureMarginPercentage
иsetGestureMarginsPercentage
для обеспечения единообразия ( I24435 ).
Исправления ошибок
- Улучшена ошибка, возникающая, когда дополнительный дисплей не найден или недоступен ( 116b23 ).
Версия 2.3.0-альфа05
1 ноября 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha05
. Версия 2.3.0-alpha05 содержит эти коммиты.
Изменения API
- Добавлен
UiObject2#getDrawingOrder
для предоставления информации о порядке отрисовки (z-индекс). ( I5dfa4 ). - Добавлены методы
UiDevice
для получения, установки, фиксации и разблокирования вращения дополнительных дисплеев. ( I912cd ).
Исправления ошибок
- Добавлена повторная попытка к
UiObject2#scrollUntil
когда конец прокрутки не может быть обнаружен ( Ibac6f ). - Исправлена проблема, из-за которой
UiDevice
использовал устаревший экземплярInstrumentation
, если он был воссоздан ( I18cae ). - Исправлен возможный NPE, если идентификатор дисплея не может быть определен при дампе узлов ( Icafcb ).
- Добавлено предупреждение при выполнении щелчков/прокрутки некликабельных/прокручиваемых объектов ( I4a5d9 ).
- Уменьшена скорость прокрутки
UiObject2
по умолчанию для повышения надежности ( I5e071 ).
Версия 2.3.0-альфа04
26 июля 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha04
. Версия 2.3.0-alpha04 содержит эти коммиты.
Изменения API
- Добавлены
By.hasParent
иBy.hasAncestor
для поддержки поиска объектов по их родителям ( I93c36 ). - Добавлен
UiObject2#getHint
для получения текста подсказки объекта и методыBy.hint
для выбора объектов в соответствии с их текстом подсказки ( Idd345 ). - Добавлен
By.displayId
для поддержки выбора объектов в соответствии с дисплеем, на котором они находятся ( I1825b ). - Добавлены методы
UiDevice#getDisplayHeight(int)
иUiDevice#getDisplayWidth(int)
для определения размеров дисплея по его идентификатору ( Ie6544 ). - Повторно добавлены методы
wait(SearchCondition, long)
иwait(UiObject2Condition, long)
для обратной совместимости ( Iebfda ). -
UiDevice#executeShellCommand
изменен на общедоступный, но не рекомендуется вместо скрытого ( Ic48a1 ).
Исправления ошибок
- Обновлено внедрение
MotionEvent
для уменьшения нестабильности за счет приоритета точности жестов над скоростью ( 678ca3 ). - Добавлена трассировка ресурсоемких методов для выявления узких мест производительности ( d17de3 ).
- Добавлен механизм повтора при инициировании соединения UiAutomation ( 048caf ).
- Исправлен возможный NPE из нулевых узлов в
UiDevice#dumpWindowHierarchy
( b725eb ). - Исправлены непредвиденные ошибки при запросе или работе на частных дисплеях ( 985db6 , 7053d4 ).
Версия 2.3.0-альфа03
19 апреля 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha03
. Версия 2.3.0-alpha03 содержит эти коммиты.
Изменения API
- Предоставлен интерфейс
Condition
, позволяющий настраивать условия ожидания вместо того, чтобы полагаться исключительно на встроенные модулиUntil
, и обновлены методыUiDevice#wait
иUiObject2#wait
для принятия этого интерфейса ( 27c0ea ). - Добавлен
UiObject2#scrollUntil
для поддержки прокрутки до тех пор, пока не будет выполнено условие, и для достижения четности сUiScrollable
( 099d6e ). - Добавлены
UiDevice#setOrientationPortrait
иsetOrientationLandscape
для облегчения ротации между типами устройств ( e13cb7 ). - Добавлен
UiObject2#setGestureMarginPercent
для поддержки настройки полей относительно размера объекта. ( Ib8c77 )
Исправления ошибок
- Исправлены методы
UiScrollable
, иногда использующие неверные координаты в SDK 18–22 ( b53ece ). - Исправлена ошибка, из-за которой
UiObject2#setText
clearText
не могли изменить текст в SDK 18 и 19 ( 77e41d ). - Исправлена ошибка, из-за которой
UiWatcher
не выполнялся в правильном порядке ( c85f92 ). - Исправлена проблема, из-за которой поворот устройства мог еще не завершиться после изменения ориентации
UiDevice
( c6cea0 ). - Повышена надежность долгих щелчков, перетаскиваний и сжатий ( 49572b , 3c619a ).
Версия 2.3.0-альфа02
11 января 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha02
. Версия 2.3.0-alpha02 содержит эти коммиты.
Изменения API
- Переработано ведение журнала в библиотеке, чтобы предоставить больше информации, предупредить о возможных проблемах и улучшить согласованность.
- Добавлен
UiDevice#pressKeyCodes
для поддержки одновременного нажатия нескольких клавиш, например, нажатия POWER и VOLUME_DOWN, чтобы сделать снимок экрана ( 22e525 ). - Добавлен
UiDevice#setCompressedLayoutHierarchy
и устаревшийUiDevice#setCompressedLayoutHeirarchy
, чтобы исправить опечатку в имени метода ( 4e2f65 ). - Помечен
UiAutomatorInstrumentationTestRunner
как устаревший, поскольку он обрабатывает устаревшиеUiAutomatorTestCase
и больше не нужен ( be6c85 ). - Обновлена задержка между
UiObject2
MotionEvent
: частота обновления дисплея увеличена в два раза, чтобы лучше эмулировать жесты пользователя ( 454450 ). - Добавлена поддержка сопоставления многострочного текста и описания ( 1625e6 , b/255787130 ).
Исправления ошибок
- Исправлено исключение
StaleObjectException
, которое иногда выдавалось при запросе или ожидании объектов ( 4cbcc0 ). - Исправлены возвращаемые значения
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
иflingToEnd
, которые не обозначали, было ли достигнуто начало/конец ( d33e06 ). - Исправлены методы
UiScrollable#scrollForward
иscrollBackward
игнорирующие настроенный тайм-аут ( 29e4f3 ). - Исправлен конструктор копирования
BySelector
, не обрабатывающий селекторы глубины ( 6c7b91 ). - Исправлена обработка недопустимых процентных значений в
UiObject#pinchIn
иpinchOut
( 01b973 ). - Исправлена редкая проблема, из-за которой поддержка многооконного режима терялась, если базовое соединение
UiAutomation
было сброшено ( 1bb956 ).
Версия 2.3.0-альфа01
7 сентября 2022 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha01
. Версия 2.3.0-alpha01 содержит эти коммиты.
Изменения API
- Аннотировал недействительность всех общедоступных методов.
- Внедрение
MotionEvent
переключено на асинхронное с небольшой задержкой для более плавных жестовUiObject2
. - Уменьшен интервал опроса при ожидании с 1000мс до 100мс.
- Обновлены
UiDevice#wakeUp
иUiDevice#sleep
для использованияKEYCODE_WAKEUP
иKEYCODE_SLEEP
для поддержки устройств, которые переопределяют кнопку питания. - Добавлен
UiObject2#getDisplayId
и поддержка поиска и управления объектами на нескольких дисплеях. - Добавлены методы
UiObject#click
иUiObject2#clickAndWait
для щелчка по точке по ее координатам.
Исправления ошибок
- Исправлена проблема, из-за которой расчеты размера дисплея иногда были неверными и могли игнорировать части экрана, особенно в многооконном режиме ( Ifc016c ).
- Исправлено масштабирование скриншотов в
UiDevice#takeScreenshot
( Id80ad6 ). - Повышена надежность
Until.scrollFinished
иUiObject2#scroll
( I7b0595 ). - Исправлены предупреждения строгого режима
IncorrectContextUseViolation
( Iffa6a0 ).
Тестирование пользовательского интерфейса
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
26 июня 2024 г. | 2.3.0 | - | - | 2.4.0-альфа01 |
Объявление зависимостей
Чтобы добавить зависимость от теста, вы должны добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .
Добавьте зависимости для нужных вам артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha01" }
Котлин
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см . в документации по системе отслеживания проблем .
Версия 2.4
Версия 2.4.0-альфа01
26 июня 2024 г.
Выпущен androidx.test.uiautomator:uiautomator:2.4.0-alpha01
. Версия 2.4.0-alpha01 содержит эти коммиты .
Изменения API
- Устаревшие
Configurator#getKeyInjectionDelay
иsetKeyInjectionDelay
поскольку параметр теперь не используется, поскольку текст всегда вводится напрямую, а не нажатием клавиш. ( I3bcc5 ).
Исправления ошибок
- Обновлена задержка между событиями движения
UiObject2
для учета динамической частоты обновления (т. е. плавного отображения) ( I43f12 ). - Уменьшена нестабильность из-за устаревшего узла доступности в некоторых пользовательских интерфейсах за счет периодической аннулирования кэша доступности ( I3be25 ).
- Исправлено
StaleObjectException
, возникающее при вызовеtoString
илиhashCode
для устаревшегоUiObject2
. ( I38ea1 ). - Улучшена производительность
UiWatcher
за счет пропуска ненужных вызововwaitForIdle
. ( I8c65e ). - Исправлены неточности в javadoc, особенно для пояснения того, когда используется каждый параметр
Configurator
. ( Ie10b1 , I71631 ).
Версия 2.3.0
Версия 2.3.0
21 февраля 2024 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0
. Версия 2.3.0 содержит эти коммиты.
Важные изменения с версии 2.2.0
- Поддержка нескольких дисплеев : добавлена поддержка поиска и работы с объектами на нескольких дисплеях, а также методы
UiDevice
для управления дополнительными дисплеями ( Ie6544 , I912cd ). - Новые селекторы :
- Пользовательские условия : предоставлен интерфейс
Condition
для поддержки пользовательских условий ожидания и добавлены соответствующие методыUiDevice#wait
,UiObject2#wait
иUiObject2#scrollUntil
( 27c0ea , 099d6e ). - Исправления ошибок и надежность
- Исправлена проблема, из-за которой расчеты размера дисплея иногда были неверными и могли игнорировать части экрана ( Ifc016 ). Координаты и смещения, используемые в тестах, возможно, придется скорректировать.
- Обновлено внедрение
MotionEvent
для повышения точности ( 678ca3 ) и лучшей эмуляции жестов пользователя ( 454450 ). - Повышена надежность прокрутки ( I7b059 ), вращения ( c6cea0 ), длинных щелчков ( 49572b ), сжатия ( 3c619a ) и многого другого.
Версия 2.3.0-rc01
7 февраля 2024 г.
androidx.test.uiautomator:uiautomator:2.3.0-rc01
выпущен без изменений. Версия 2.3.0-rc01 содержит эти коммиты.
Версия 2.3.0-бета01
13 декабря 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-beta01
. Версия 2.3.0-beta01 содержит эти коммиты.
Изменения API
- Методы поля
UiObject2
основанные на процентах, переименованы вsetGestureMarginPercentage
иsetGestureMarginsPercentage
для обеспечения единообразия ( I24435 ).
Исправления ошибок
- Улучшена ошибка, возникающая, когда дополнительный дисплей не найден или недоступен ( 116b23 ).
Версия 2.3.0-альфа05
1 ноября 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha05
. Версия 2.3.0-alpha05 содержит эти коммиты.
Изменения API
- Добавлен
UiObject2#getDrawingOrder
для предоставления информации о порядке отрисовки (z-индекс). ( I5dfa4 ). - Добавлены методы
UiDevice
для получения, установки, фиксации и разблокирования вращения дополнительных дисплеев. ( I912cd ).
Исправления ошибок
- Добавлена повторная попытка к
UiObject2#scrollUntil
когда конец прокрутки не может быть обнаружен ( Ibac6f ). - Исправлена проблема, из-за которой
UiDevice
использовал устаревший экземплярInstrumentation
, если он был воссоздан ( I18cae ). - Исправлен возможный NPE, если идентификатор дисплея не может быть определен при дампе узлов ( Icafcb ).
- Добавлено предупреждение при выполнении щелчков/прокрутки некликабельных/прокручиваемых объектов ( I4a5d9 ).
- Уменьшена скорость прокрутки
UiObject2
по умолчанию для повышения надежности ( I5e071 ).
Версия 2.3.0-альфа04
26 июля 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha04
. Версия 2.3.0-alpha04 содержит эти коммиты.
Изменения API
- Добавлены
By.hasParent
иBy.hasAncestor
для поддержки поиска объектов по их родителям ( I93c36 ). - Добавлен
UiObject2#getHint
для получения текста подсказки объекта и методыBy.hint
для выбора объектов в соответствии с их текстом подсказки ( Idd345 ). - Добавлен
By.displayId
для поддержки выбора объектов в соответствии с дисплеем, на котором они находятся ( I1825b ). - Добавлены методы
UiDevice#getDisplayHeight(int)
иUiDevice#getDisplayWidth(int)
для определения размеров дисплея по его идентификатору ( Ie6544 ). - Повторно добавлены методы
wait(SearchCondition, long)
иwait(UiObject2Condition, long)
для обратной совместимости ( Iebfda ). -
UiDevice#executeShellCommand
изменен на общедоступный, но не рекомендуется вместо скрытого ( Ic48a1 ).
Исправления ошибок
- Обновлено внедрение
MotionEvent
для уменьшения нестабильности за счет приоритета точности жестов над скоростью ( 678ca3 ). - Добавлена трассировка ресурсоемких методов для выявления узких мест в производительности ( d17de3 ).
- Добавлен механизм повтора при инициировании соединения UiAutomation ( 048caf ).
- Исправлен возможный NPE из нулевых узлов в
UiDevice#dumpWindowHierarchy
( b725eb ). - Исправлены непредвиденные ошибки при запросе или работе на частных дисплеях ( 985db6 , 7053d4 ).
Версия 2.3.0-альфа03
19 апреля 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha03
. Версия 2.3.0-alpha03 содержит эти коммиты.
Изменения API
- Предоставлен интерфейс
Condition
, позволяющий настраивать условия ожидания вместо того, чтобы полагаться исключительно на встроенные модулиUntil
, и обновлены методыUiDevice#wait
иUiObject2#wait
для принятия этого интерфейса ( 27c0ea ). - Добавлен
UiObject2#scrollUntil
для поддержки прокрутки до тех пор, пока не будет выполнено условие, и для достижения четности сUiScrollable
( 099d6e ). - Добавлены
UiDevice#setOrientationPortrait
иsetOrientationLandscape
для облегчения ротации между типами устройств ( e13cb7 ). - Добавлен
UiObject2#setGestureMarginPercent
для поддержки настройки полей относительно размера объекта. ( Ib8c77 )
Исправления ошибок
- Исправлены методы
UiScrollable
, иногда использующие неверные координаты в SDK 18–22 ( b53ece ). - Исправлена ошибка, из-за которой
UiObject2#setText
clearText
не могли изменить текст в SDK 18 и 19 ( 77e41d ). - Исправлена ошибка, из-за которой
UiWatcher
не выполнялся в правильном порядке ( c85f92 ). - Исправлена проблема, из-за которой поворот устройства мог еще не завершиться после изменения ориентации
UiDevice
( c6cea0 ). - Повышена надежность долгих щелчков, перетаскиваний и сжатий ( 49572b , 3c619a ).
Версия 2.3.0-альфа02
11 января 2023 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha02
. Версия 2.3.0-alpha02 содержит эти коммиты.
Изменения API
- Переработано ведение журнала в библиотеке, чтобы предоставить больше информации, предупредить о возможных проблемах и улучшить согласованность.
- Добавлен
UiDevice#pressKeyCodes
для поддержки одновременного нажатия нескольких клавиш, например, нажатия POWER и VOLUME_DOWN, чтобы сделать снимок экрана ( 22e525 ). - Добавлен
UiDevice#setCompressedLayoutHierarchy
и устаревшийUiDevice#setCompressedLayoutHeirarchy
, чтобы исправить опечатку в имени метода ( 4e2f65 ). - Помечен
UiAutomatorInstrumentationTestRunner
как устаревший, поскольку он обрабатывает устаревшиеUiAutomatorTestCase
и больше не нужен ( be6c85 ). - Обновлена задержка между
UiObject2
MotionEvent
: частота обновления дисплея увеличена вдвое, чтобы лучше эмулировать жесты пользователя ( 454450 ). - Добавлена поддержка сопоставления многострочного текста и описания ( 1625e6 , b/255787130 ).
Исправления ошибок
- Исправлено исключение
StaleObjectException
, которое иногда выдавалось при запросе или ожидании объектов ( 4cbcc0 ). - Исправлены возвращаемые значения
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
иflingToEnd
, которые не обозначали, было ли достигнуто начало/конец ( d33e06 ). - Исправлены методы
UiScrollable#scrollForward
иscrollBackward
игнорирующие настроенный таймаут ( 29e4f3 ). - Исправлен конструктор копирования
BySelector
, не обрабатывающий селекторы глубины ( 6c7b91 ). - Исправлена обработка недопустимых процентных значений в
UiObject#pinchIn
иpinchOut
( 01b973 ). - Исправлена редкая проблема, из-за которой поддержка многооконного режима терялась, если базовое соединение
UiAutomation
было сброшено ( 1bb956 ).
Версия 2.3.0-альфа01
7 сентября 2022 г.
Выпущен androidx.test.uiautomator:uiautomator:2.3.0-alpha01
. Версия 2.3.0-alpha01 содержит эти коммиты.
Изменения API
- Аннотировал недействительность всех общедоступных методов.
- Внедрение
MotionEvent
переключено на асинхронный режим с небольшой задержкой для более плавных жестовUiObject2
. - Уменьшен интервал опроса при ожидании с 1000мс до 100мс.
- Обновлены
UiDevice#wakeUp
иUiDevice#sleep
для использованияKEYCODE_WAKEUP
иKEYCODE_SLEEP
для поддержки устройств, которые переопределяют кнопку питания. - Добавлен
UiObject2#getDisplayId
и поддержка поиска и управления объектами на нескольких дисплеях. - Добавлены методы
UiObject#click
иUiObject2#clickAndWait
для щелчка по точке по ее координатам.
Исправления ошибок
- Исправлена проблема, из-за которой расчеты размера дисплея иногда были неверными и могли игнорировать части экрана, особенно в многооконном режиме ( Ifc016c ).
- Исправлено масштабирование скриншотов в
UiDevice#takeScreenshot
( Id80ad6 ). - Повышена надежность
Until.scrollFinished
иUiObject2#scroll
( I7b0595 ). - Исправлены предупреждения строгого режима
IncorrectContextUseViolation
( Iffa6a0 ).