From fe24f8d4ba7d73be47a5e78a9d87689294099eac Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Mon, 26 May 2025 21:54:32 +0800 Subject: [PATCH] feat(class/mtp): support mtp device Signed-off-by: sakumisu <1203593632@qq.com> --- Kconfig | 5 + Kconfig.rtt | 5 + Kconfig.rttpkg | 5 + README.md | 2 + README_zh.md | 2 + cherryusb_config_template.h | 22 + class/mtp/usb_mtp.h | 683 +++++++++++++++++++++++++++++ class/mtp/usbd_mtp.h | 62 +++ class/mtp/usbd_mtp_support.h | 312 +++++++++++++ demo/mtp_template.c | 250 +++++++++++ docs/source/support/img/mtpdev.png | Bin 0 -> 361577 bytes docs/source/support/index.rst | 5 +- platform/README.md | 3 +- platform/fatfs/usbd_fatfs_mtp.c | 337 ++++++++++++++ 14 files changed, 1691 insertions(+), 2 deletions(-) create mode 100644 class/mtp/usb_mtp.h create mode 100644 class/mtp/usbd_mtp.h create mode 100644 class/mtp/usbd_mtp_support.h create mode 100644 demo/mtp_template.c create mode 100644 docs/source/support/img/mtpdev.png create mode 100644 platform/fatfs/usbd_fatfs_mtp.c diff --git a/Kconfig b/Kconfig index 0084b833..ce39f3e7 100644 --- a/Kconfig +++ b/Kconfig @@ -118,6 +118,11 @@ if CHERRYUSB prompt "Enable usb cdc ncm device" default n + config CHERRYUSB_DEVICE_MTP + bool + prompt "Enable usb mtp device, it is commercial charge" + default n + config CHERRYUSB_DEVICE_DFU bool prompt "Enable usb dfu device" diff --git a/Kconfig.rtt b/Kconfig.rtt index 4c1586e2..209332f5 100644 --- a/Kconfig.rtt +++ b/Kconfig.rtt @@ -120,6 +120,11 @@ if RT_USING_CHERRYUSB prompt "Enable usb cdc ncm device" default n + config RT_CHERRYUSB_DEVICE_MTP + bool + prompt "Enable usb mtp device, it is commercial charge" + default n + config RT_CHERRYUSB_DEVICE_DFU bool prompt "Enable usb dfu device" diff --git a/Kconfig.rttpkg b/Kconfig.rttpkg index 3663f0fb..73d5f3b2 100644 --- a/Kconfig.rttpkg +++ b/Kconfig.rttpkg @@ -119,6 +119,11 @@ if PKG_USING_CHERRYUSB prompt "Enable usb cdc ncm device" default n + config PKG_CHERRYUSB_DEVICE_MTP + bool + prompt "Enable usb mtp device, it is commercial charge" + default n + config PKG_CHERRYUSB_DEVICE_DFU bool prompt "Enable usb dfu device" diff --git a/README.md b/README.md index 38d5cd28..ec0077cb 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ CherryUSB Device Stack has the following functions: - Support Device Firmware Upgrade CLASS (DFU) - Support USB MIDI CLASS (MIDI) - Support Remote NDIS (RNDIS) +- Support Media Transfer Protocol (MTP) - Support WINUSB1.0, WINUSB2.0, WEBUSB, BOS - Support Vendor class - Support UF2 @@ -88,6 +89,7 @@ CherryUSB Device Stack resource usage (GCC 10.2 with -O2): |usbd_audio.c | ~1500 | 0 | 0 | 0 | |usbd_video.c | ~3700 | 0 | 132 * bus | 0 | |usbd_rndis.c | ~4000 | 2 * 1580(default)+156+8 | 80 | 0 | +|usbd_mtp.c | ~9000 | 2048(default)+128 | sizeof(struct mtp_object) * n| 0 | ## Host Stack Overview diff --git a/README_zh.md b/README_zh.md index 98f44d8f..11ca4af3 100644 --- a/README_zh.md +++ b/README_zh.md @@ -71,6 +71,7 @@ CherryUSB Device 协议栈当前实现以下功能: - 支持 Device Firmware Upgrade CLASS (DFU) - 支持 USB MIDI CLASS (MIDI) - 支持 Remote NDIS (RNDIS) +- 支持 Media Transfer Protocol (MTP) - 支持 WINUSB1.0、WINUSB2.0、WEBUSB、BOS - 支持 Vendor 类 class - 支持 UF2 @@ -88,6 +89,7 @@ CherryUSB Device 协议栈资源占用说明(GCC 10.2 with -O2): |usbd_audio.c | ~1500 | 0 | 0 | 0 | |usbd_video.c | ~3700 | 0 | 132 * bus | 0 | |usbd_rndis.c | ~4000 | 2 * 1580(default)+156+8 | 80 | 0 | +|usbd_mtp.c | ~9000 | 2048(default)+128 | sizeof(struct mtp_object) * n| 0 | ## Host 协议栈简介 diff --git a/cherryusb_config_template.h b/cherryusb_config_template.h index 8f2f5652..55fcb4b4 100644 --- a/cherryusb_config_template.h +++ b/cherryusb_config_template.h @@ -107,6 +107,28 @@ #define CONFIG_USBDEV_MSC_STACKSIZE 2048 #endif +#ifndef CONFIG_USBDEV_MTP_MAX_BUFSIZE +#define CONFIG_USBDEV_MTP_MAX_BUFSIZE 2048 +#endif + +#ifndef CONFIG_USBDEV_MTP_MAX_OBJECTS +#define CONFIG_USBDEV_MTP_MAX_OBJECTS 256 +#endif + +#ifndef CONFIG_USBDEV_MTP_MAX_PATHNAME +#define CONFIG_USBDEV_MTP_MAX_PATHNAME 256 +#endif + +#define CONFIG_USBDEV_MTP_THREAD + +#ifndef CONFIG_USBDEV_MTP_PRIO +#define CONFIG_USBDEV_MTP_PRIO 4 +#endif + +#ifndef CONFIG_USBDEV_MTP_STACKSIZE +#define CONFIG_USBDEV_MTP_STACKSIZE 4096 +#endif + #ifndef CONFIG_USBDEV_RNDIS_RESP_BUFFER_SIZE #define CONFIG_USBDEV_RNDIS_RESP_BUFFER_SIZE 156 #endif diff --git a/class/mtp/usb_mtp.h b/class/mtp/usb_mtp.h new file mode 100644 index 00000000..524abb75 --- /dev/null +++ b/class/mtp/usb_mtp.h @@ -0,0 +1,683 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +/* + * Copyright (c) 2025, sakumisu + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef USB_MTP_H +#define USB_MTP_H + +// clang-format off +#define MTP_STANDARD_VERSION 100 + +// Container Types +#define MTP_CONTAINER_TYPE_UNDEFINED 0 +#define MTP_CONTAINER_TYPE_COMMAND 1 +#define MTP_CONTAINER_TYPE_DATA 2 +#define MTP_CONTAINER_TYPE_RESPONSE 3 +#define MTP_CONTAINER_TYPE_EVENT 4 + +// Container Offsets +#define MTP_CONTAINER_LENGTH_OFFSET 0 +#define MTP_CONTAINER_TYPE_OFFSET 4 +#define MTP_CONTAINER_CODE_OFFSET 6 +#define MTP_CONTAINER_TRANSACTION_ID_OFFSET 8 +#define MTP_CONTAINER_PARAMETER_OFFSET 12 +#define MTP_CONTAINER_HEADER_SIZE 12 + +// Maximum buffer size for a MTP packet. +#define MTP_BUFFER_SIZE 16384 + +// MTP Data Types +#define MTP_TYPE_UNDEFINED 0x0000 // Undefined +#define MTP_TYPE_INT8 0x0001 // Signed 8-bit integer +#define MTP_TYPE_UINT8 0x0002 // Unsigned 8-bit integer +#define MTP_TYPE_INT16 0x0003 // Signed 16-bit integer +#define MTP_TYPE_UINT16 0x0004 // Unsigned 16-bit integer +#define MTP_TYPE_INT32 0x0005 // Signed 32-bit integer +#define MTP_TYPE_UINT32 0x0006 // Unsigned 32-bit integer +#define MTP_TYPE_INT64 0x0007 // Signed 64-bit integer +#define MTP_TYPE_UINT64 0x0008 // Unsigned 64-bit integer +#define MTP_TYPE_INT128 0x0009 // Signed 128-bit integer +#define MTP_TYPE_UINT128 0x000A // Unsigned 128-bit integer +#define MTP_TYPE_AINT8 0x4001 // Array of signed 8-bit integers +#define MTP_TYPE_AUINT8 0x4002 // Array of unsigned 8-bit integers +#define MTP_TYPE_AINT16 0x4003 // Array of signed 16-bit integers +#define MTP_TYPE_AUINT16 0x4004 // Array of unsigned 16-bit integers +#define MTP_TYPE_AINT32 0x4005 // Array of signed 32-bit integers +#define MTP_TYPE_AUINT32 0x4006 // Array of unsigned 32-bit integers +#define MTP_TYPE_AINT64 0x4007 // Array of signed 64-bit integers +#define MTP_TYPE_AUINT64 0x4008 // Array of unsigned 64-bit integers +#define MTP_TYPE_AINT128 0x4009 // Array of signed 128-bit integers +#define MTP_TYPE_AUINT128 0x400A // Array of unsigned 128-bit integers +#define MTP_TYPE_STR 0xFFFF // Variable-length Unicode string + +// MTP Format Codes +#define MTP_FORMAT_UNDEFINED 0x3000 // Undefined object +#define MTP_FORMAT_ASSOCIATION 0x3001 // Association (for example, a folder) +#define MTP_FORMAT_SCRIPT 0x3002 // Device model-specific script +#define MTP_FORMAT_EXECUTABLE 0x3003 // Device model-specific binary executable +#define MTP_FORMAT_TEXT 0x3004 // Text file +#define MTP_FORMAT_HTML 0x3005 // Hypertext Markup Language file (text) +#define MTP_FORMAT_DPOF 0x3006 // Digital Print Order Format file (text) +#define MTP_FORMAT_AIFF 0x3007 // Audio clip +#define MTP_FORMAT_WAV 0x3008 // Audio clip +#define MTP_FORMAT_MP3 0x3009 // Audio clip +#define MTP_FORMAT_AVI 0x300A // Video clip +#define MTP_FORMAT_MPEG 0x300B // Video clip +#define MTP_FORMAT_ASF 0x300C // Microsoft Advanced Streaming Format (video) +#define MTP_FORMAT_DEFINED 0x3800 // Unknown image object +#define MTP_FORMAT_EXIF_JPEG 0x3801 // Exchangeable File Format, JEIDA standard +#define MTP_FORMAT_TIFF_EP 0x3802 // Tag Image File Format for Electronic Photography +#define MTP_FORMAT_FLASHPIX 0x3803 // Structured Storage Image Format +#define MTP_FORMAT_BMP 0x3804 // Microsoft Windows Bitmap file +#define MTP_FORMAT_CIFF 0x3805 // Canon Camera Image File Format +#define MTP_FORMAT_GIF 0x3807 // Graphics Interchange Format +#define MTP_FORMAT_JFIF 0x3808 // JPEG File Interchange Format +#define MTP_FORMAT_CD 0x3809 // PhotoCD Image Pac +#define MTP_FORMAT_PICT 0x380A // Quickdraw Image Format +#define MTP_FORMAT_PNG 0x380B // Portable Network Graphics +#define MTP_FORMAT_TIFF 0x380D // Tag Image File Format +#define MTP_FORMAT_TIFF_IT 0x380E // Tag Image File Format for Information Technology (graphic arts) +#define MTP_FORMAT_JP2 0x380F // JPEG2000 Baseline File Format +#define MTP_FORMAT_JPX 0x3810 // JPEG2000 Extended File Format +#define MTP_FORMAT_DNG 0x3811 // Digital Negative +#define MTP_FORMAT_HEIF 0x3812 // HEIF images +#define MTP_FORMAT_UNDEFINED_FIRMWARE 0xB802 +#define MTP_FORMAT_WINDOWS_IMAGE_FORMAT 0xB881 +#define MTP_FORMAT_UNDEFINED_AUDIO 0xB900 +#define MTP_FORMAT_WMA 0xB901 +#define MTP_FORMAT_OGG 0xB902 +#define MTP_FORMAT_AAC 0xB903 +#define MTP_FORMAT_AUDIBLE 0xB904 +#define MTP_FORMAT_FLAC 0xB906 +#define MTP_FORMAT_UNDEFINED_VIDEO 0xB980 +#define MTP_FORMAT_WMV 0xB981 +#define MTP_FORMAT_MP4_CONTAINER 0xB982 // ISO 14496-1 +#define MTP_FORMAT_MP2 0xB983 +#define MTP_FORMAT_3GP_CONTAINER 0xB984 // 3GPP file format. Details: http://www.3gpp.org/ftp/Specs/html-info/26244.htm (page title - \u201cTransparent end-to-end packet switched streaming service, 3GPP file format\u201d). +#define MTP_FORMAT_UNDEFINED_COLLECTION 0xBA00 +#define MTP_FORMAT_ABSTRACT_MULTIMEDIA_ALBUM 0xBA01 +#define MTP_FORMAT_ABSTRACT_IMAGE_ALBUM 0xBA02 +#define MTP_FORMAT_ABSTRACT_AUDIO_ALBUM 0xBA03 +#define MTP_FORMAT_ABSTRACT_VIDEO_ALBUM 0xBA04 +#define MTP_FORMAT_ABSTRACT_AV_PLAYLIST 0xBA05 +#define MTP_FORMAT_ABSTRACT_CONTACT_GROUP 0xBA06 +#define MTP_FORMAT_ABSTRACT_MESSAGE_FOLDER 0xBA07 +#define MTP_FORMAT_ABSTRACT_CHAPTERED_PRODUCTION 0xBA08 +#define MTP_FORMAT_ABSTRACT_AUDIO_PLAYLIST 0xBA09 +#define MTP_FORMAT_ABSTRACT_VIDEO_PLAYLIST 0xBA0A +#define MTP_FORMAT_ABSTRACT_MEDIACAST 0xBA0B // For use with mediacasts; references multimedia enclosures of RSS feeds or episodic content +#define MTP_FORMAT_WPL_PLAYLIST 0xBA10 +#define MTP_FORMAT_M3U_PLAYLIST 0xBA11 +#define MTP_FORMAT_MPL_PLAYLIST 0xBA12 +#define MTP_FORMAT_ASX_PLAYLIST 0xBA13 +#define MTP_FORMAT_PLS_PLAYLIST 0xBA14 +#define MTP_FORMAT_UNDEFINED_DOCUMENT 0xBA80 +#define MTP_FORMAT_ABSTRACT_DOCUMENT 0xBA81 +#define MTP_FORMAT_XML_DOCUMENT 0xBA82 +#define MTP_FORMAT_MS_WORD_DOCUMENT 0xBA83 +#define MTP_FORMAT_MHT_COMPILED_HTML_DOCUMENT 0xBA84 +#define MTP_FORMAT_MS_EXCEL_SPREADSHEET 0xBA85 +#define MTP_FORMAT_MS_POWERPOINT_PRESENTATION 0xBA86 +#define MTP_FORMAT_UNDEFINED_MESSAGE 0xBB00 +#define MTP_FORMAT_ABSTRACT_MESSSAGE 0xBB01 +#define MTP_FORMAT_UNDEFINED_CONTACT 0xBB80 +#define MTP_FORMAT_ABSTRACT_CONTACT 0xBB81 +#define MTP_FORMAT_VCARD_2 0xBB82 + +// MTP Object Property Codes +#define MTP_PROPERTY_STORAGE_ID 0xDC01 +#define MTP_PROPERTY_OBJECT_FORMAT 0xDC02 +#define MTP_PROPERTY_PROTECTION_STATUS 0xDC03 +#define MTP_PROPERTY_OBJECT_SIZE 0xDC04 +#define MTP_PROPERTY_ASSOCIATION_TYPE 0xDC05 +#define MTP_PROPERTY_ASSOCIATION_DESC 0xDC06 +#define MTP_PROPERTY_OBJECT_FILE_NAME 0xDC07 +#define MTP_PROPERTY_DATE_CREATED 0xDC08 +#define MTP_PROPERTY_DATE_MODIFIED 0xDC09 +#define MTP_PROPERTY_KEYWORDS 0xDC0A +#define MTP_PROPERTY_PARENT_OBJECT 0xDC0B +#define MTP_PROPERTY_ALLOWED_FOLDER_CONTENTS 0xDC0C +#define MTP_PROPERTY_HIDDEN 0xDC0D +#define MTP_PROPERTY_SYSTEM_OBJECT 0xDC0E +#define MTP_PROPERTY_PERSISTENT_UID 0xDC41 +#define MTP_PROPERTY_SYNC_ID 0xDC42 +#define MTP_PROPERTY_PROPERTY_BAG 0xDC43 +#define MTP_PROPERTY_NAME 0xDC44 +#define MTP_PROPERTY_CREATED_BY 0xDC45 +#define MTP_PROPERTY_ARTIST 0xDC46 +#define MTP_PROPERTY_DATE_AUTHORED 0xDC47 +#define MTP_PROPERTY_DESCRIPTION 0xDC48 +#define MTP_PROPERTY_URL_REFERENCE 0xDC49 +#define MTP_PROPERTY_LANGUAGE_LOCALE 0xDC4A +#define MTP_PROPERTY_COPYRIGHT_INFORMATION 0xDC4B +#define MTP_PROPERTY_SOURCE 0xDC4C +#define MTP_PROPERTY_ORIGIN_LOCATION 0xDC4D +#define MTP_PROPERTY_DATE_ADDED 0xDC4E +#define MTP_PROPERTY_NON_CONSUMABLE 0xDC4F +#define MTP_PROPERTY_CORRUPT_UNPLAYABLE 0xDC50 +#define MTP_PROPERTY_PRODUCER_SERIAL_NUMBER 0xDC51 +#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_FORMAT 0xDC81 +#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_SIZE 0xDC82 +#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_HEIGHT 0xDC83 +#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_WIDTH 0xDC84 +#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_DURATION 0xDC85 +#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_DATA 0xDC86 +#define MTP_PROPERTY_WIDTH 0xDC87 +#define MTP_PROPERTY_HEIGHT 0xDC88 +#define MTP_PROPERTY_DURATION 0xDC89 +#define MTP_PROPERTY_RATING 0xDC8A +#define MTP_PROPERTY_TRACK 0xDC8B +#define MTP_PROPERTY_GENRE 0xDC8C +#define MTP_PROPERTY_CREDITS 0xDC8D +#define MTP_PROPERTY_LYRICS 0xDC8E +#define MTP_PROPERTY_SUBSCRIPTION_CONTENT_ID 0xDC8F +#define MTP_PROPERTY_PRODUCED_BY 0xDC90 +#define MTP_PROPERTY_USE_COUNT 0xDC91 +#define MTP_PROPERTY_SKIP_COUNT 0xDC92 +#define MTP_PROPERTY_LAST_ACCESSED 0xDC93 +#define MTP_PROPERTY_PARENTAL_RATING 0xDC94 +#define MTP_PROPERTY_META_GENRE 0xDC95 +#define MTP_PROPERTY_COMPOSER 0xDC96 +#define MTP_PROPERTY_EFFECTIVE_RATING 0xDC97 +#define MTP_PROPERTY_SUBTITLE 0xDC98 +#define MTP_PROPERTY_ORIGINAL_RELEASE_DATE 0xDC99 +#define MTP_PROPERTY_ALBUM_NAME 0xDC9A +#define MTP_PROPERTY_ALBUM_ARTIST 0xDC9B +#define MTP_PROPERTY_MOOD 0xDC9C +#define MTP_PROPERTY_DRM_STATUS 0xDC9D +#define MTP_PROPERTY_SUB_DESCRIPTION 0xDC9E +#define MTP_PROPERTY_IS_CROPPED 0xDCD1 +#define MTP_PROPERTY_IS_COLOUR_CORRECTED 0xDCD2 +#define MTP_PROPERTY_IMAGE_BIT_DEPTH 0xDCD3 +#define MTP_PROPERTY_F_NUMBER 0xDCD4 +#define MTP_PROPERTY_EXPOSURE_TIME 0xDCD5 +#define MTP_PROPERTY_EXPOSURE_INDEX 0xDCD6 +#define MTP_PROPERTY_TOTAL_BITRATE 0xDE91 +#define MTP_PROPERTY_BITRATE_TYPE 0xDE92 +#define MTP_PROPERTY_SAMPLE_RATE 0xDE93 +#define MTP_PROPERTY_NUMBER_OF_CHANNELS 0xDE94 +#define MTP_PROPERTY_AUDIO_BIT_DEPTH 0xDE95 +#define MTP_PROPERTY_SCAN_TYPE 0xDE97 +#define MTP_PROPERTY_AUDIO_WAVE_CODEC 0xDE99 +#define MTP_PROPERTY_AUDIO_BITRATE 0xDE9A +#define MTP_PROPERTY_VIDEO_FOURCC_CODEC 0xDE9B +#define MTP_PROPERTY_VIDEO_BITRATE 0xDE9C +#define MTP_PROPERTY_FRAMES_PER_THOUSAND_SECONDS 0xDE9D +#define MTP_PROPERTY_KEYFRAME_DISTANCE 0xDE9E +#define MTP_PROPERTY_BUFFER_SIZE 0xDE9F +#define MTP_PROPERTY_ENCODING_QUALITY 0xDEA0 +#define MTP_PROPERTY_ENCODING_PROFILE 0xDEA1 +#define MTP_PROPERTY_DISPLAY_NAME 0xDCE0 +#define MTP_PROPERTY_BODY_TEXT 0xDCE1 +#define MTP_PROPERTY_SUBJECT 0xDCE2 +#define MTP_PROPERTY_PRIORITY 0xDCE3 +#define MTP_PROPERTY_GIVEN_NAME 0xDD00 +#define MTP_PROPERTY_MIDDLE_NAMES 0xDD01 +#define MTP_PROPERTY_FAMILY_NAME 0xDD02 +#define MTP_PROPERTY_PREFIX 0xDD03 +#define MTP_PROPERTY_SUFFIX 0xDD04 +#define MTP_PROPERTY_PHONETIC_GIVEN_NAME 0xDD05 +#define MTP_PROPERTY_PHONETIC_FAMILY_NAME 0xDD06 +#define MTP_PROPERTY_EMAIL_PRIMARY 0xDD07 +#define MTP_PROPERTY_EMAIL_PERSONAL_1 0xDD08 +#define MTP_PROPERTY_EMAIL_PERSONAL_2 0xDD09 +#define MTP_PROPERTY_EMAIL_BUSINESS_1 0xDD0A +#define MTP_PROPERTY_EMAIL_BUSINESS_2 0xDD0B +#define MTP_PROPERTY_EMAIL_OTHERS 0xDD0C +#define MTP_PROPERTY_PHONE_NUMBER_PRIMARY 0xDD0D +#define MTP_PROPERTY_PHONE_NUMBER_PERSONAL 0xDD0E +#define MTP_PROPERTY_PHONE_NUMBER_PERSONAL_2 0xDD0F +#define MTP_PROPERTY_PHONE_NUMBER_BUSINESS 0xDD10 +#define MTP_PROPERTY_PHONE_NUMBER_BUSINESS_2 0xDD11 +#define MTP_PROPERTY_PHONE_NUMBER_MOBILE 0xDD12 +#define MTP_PROPERTY_PHONE_NUMBER_MOBILE_2 0xDD13 +#define MTP_PROPERTY_FAX_NUMBER_PRIMARY 0xDD14 +#define MTP_PROPERTY_FAX_NUMBER_PERSONAL 0xDD15 +#define MTP_PROPERTY_FAX_NUMBER_BUSINESS 0xDD16 +#define MTP_PROPERTY_PAGER_NUMBER 0xDD17 +#define MTP_PROPERTY_PHONE_NUMBER_OTHERS 0xDD18 +#define MTP_PROPERTY_PRIMARY_WEB_ADDRESS 0xDD19 +#define MTP_PROPERTY_PERSONAL_WEB_ADDRESS 0xDD1A +#define MTP_PROPERTY_BUSINESS_WEB_ADDRESS 0xDD1B +#define MTP_PROPERTY_INSTANT_MESSANGER_ADDRESS 0xDD1C +#define MTP_PROPERTY_INSTANT_MESSANGER_ADDRESS_2 0xDD1D +#define MTP_PROPERTY_INSTANT_MESSANGER_ADDRESS_3 0xDD1E +#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_FULL 0xDD1F +#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_1 0xDD20 +#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_2 0xDD21 +#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_CITY 0xDD22 +#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_REGION 0xDD23 +#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_POSTAL_CODE 0xDD24 +#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_COUNTRY 0xDD25 +#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_FULL 0xDD26 +#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_1 0xDD27 +#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_2 0xDD28 +#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_CITY 0xDD29 +#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_REGION 0xDD2A +#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_POSTAL_CODE 0xDD2B +#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_COUNTRY 0xDD2C +#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_FULL 0xDD2D +#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_LINE_1 0xDD2E +#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_LINE_2 0xDD2F +#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_CITY 0xDD30 +#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_REGION 0xDD31 +#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_POSTAL_CODE 0xDD32 +#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_COUNTRY 0xDD33 +#define MTP_PROPERTY_ORGANIZATION_NAME 0xDD34 +#define MTP_PROPERTY_PHONETIC_ORGANIZATION_NAME 0xDD35 +#define MTP_PROPERTY_ROLE 0xDD36 +#define MTP_PROPERTY_BIRTHDATE 0xDD37 +#define MTP_PROPERTY_MESSAGE_TO 0xDD40 +#define MTP_PROPERTY_MESSAGE_CC 0xDD41 +#define MTP_PROPERTY_MESSAGE_BCC 0xDD42 +#define MTP_PROPERTY_MESSAGE_READ 0xDD43 +#define MTP_PROPERTY_MESSAGE_RECEIVED_TIME 0xDD44 +#define MTP_PROPERTY_MESSAGE_SENDER 0xDD45 +#define MTP_PROPERTY_ACTIVITY_BEGIN_TIME 0xDD50 +#define MTP_PROPERTY_ACTIVITY_END_TIME 0xDD51 +#define MTP_PROPERTY_ACTIVITY_LOCATION 0xDD52 +#define MTP_PROPERTY_ACTIVITY_REQUIRED_ATTENDEES 0xDD54 +#define MTP_PROPERTY_ACTIVITY_OPTIONAL_ATTENDEES 0xDD55 +#define MTP_PROPERTY_ACTIVITY_RESOURCES 0xDD56 +#define MTP_PROPERTY_ACTIVITY_ACCEPTED 0xDD57 +#define MTP_PROPERTY_ACTIVITY_TENTATIVE 0xDD58 +#define MTP_PROPERTY_ACTIVITY_DECLINED 0xDD59 +#define MTP_PROPERTY_ACTIVITY_REMAINDER_TIME 0xDD5A +#define MTP_PROPERTY_ACTIVITY_OWNER 0xDD5B +#define MTP_PROPERTY_ACTIVITY_STATUS 0xDD5C +#define MTP_PROPERTY_OWNER 0xDD5D +#define MTP_PROPERTY_EDITOR 0xDD5E +#define MTP_PROPERTY_WEBMASTER 0xDD5F +#define MTP_PROPERTY_URL_SOURCE 0xDD60 +#define MTP_PROPERTY_URL_DESTINATION 0xDD61 +#define MTP_PROPERTY_TIME_BOOKMARK 0xDD62 +#define MTP_PROPERTY_OBJECT_BOOKMARK 0xDD63 +#define MTP_PROPERTY_BYTE_BOOKMARK 0xDD64 +#define MTP_PROPERTY_LAST_BUILD_DATE 0xDD70 +#define MTP_PROPERTY_TIME_TO_LIVE 0xDD71 +#define MTP_PROPERTY_MEDIA_GUID 0xDD72 + +// MTP Device Property Codes +#define MTP_DEVICE_PROPERTY_UNDEFINED 0x5000 +#define MTP_DEVICE_PROPERTY_BATTERY_LEVEL 0x5001 +#define MTP_DEVICE_PROPERTY_FUNCTIONAL_MODE 0x5002 +#define MTP_DEVICE_PROPERTY_IMAGE_SIZE 0x5003 +#define MTP_DEVICE_PROPERTY_COMPRESSION_SETTING 0x5004 +#define MTP_DEVICE_PROPERTY_WHITE_BALANCE 0x5005 +#define MTP_DEVICE_PROPERTY_RGB_GAIN 0x5006 +#define MTP_DEVICE_PROPERTY_F_NUMBER 0x5007 +#define MTP_DEVICE_PROPERTY_FOCAL_LENGTH 0x5008 +#define MTP_DEVICE_PROPERTY_FOCUS_DISTANCE 0x5009 +#define MTP_DEVICE_PROPERTY_FOCUS_MODE 0x500A +#define MTP_DEVICE_PROPERTY_EXPOSURE_METERING_MODE 0x500B +#define MTP_DEVICE_PROPERTY_FLASH_MODE 0x500C +#define MTP_DEVICE_PROPERTY_EXPOSURE_TIME 0x500D +#define MTP_DEVICE_PROPERTY_EXPOSURE_PROGRAM_MODE 0x500E +#define MTP_DEVICE_PROPERTY_EXPOSURE_INDEX 0x500F +#define MTP_DEVICE_PROPERTY_EXPOSURE_BIAS_COMPENSATION 0x5010 +#define MTP_DEVICE_PROPERTY_DATETIME 0x5011 +#define MTP_DEVICE_PROPERTY_CAPTURE_DELAY 0x5012 +#define MTP_DEVICE_PROPERTY_STILL_CAPTURE_MODE 0x5013 +#define MTP_DEVICE_PROPERTY_CONTRAST 0x5014 +#define MTP_DEVICE_PROPERTY_SHARPNESS 0x5015 +#define MTP_DEVICE_PROPERTY_DIGITAL_ZOOM 0x5016 +#define MTP_DEVICE_PROPERTY_EFFECT_MODE 0x5017 +#define MTP_DEVICE_PROPERTY_BURST_NUMBER 0x5018 +#define MTP_DEVICE_PROPERTY_BURST_INTERVAL 0x5019 +#define MTP_DEVICE_PROPERTY_TIMELAPSE_NUMBER 0x501A +#define MTP_DEVICE_PROPERTY_TIMELAPSE_INTERVAL 0x501B +#define MTP_DEVICE_PROPERTY_FOCUS_METERING_MODE 0x501C +#define MTP_DEVICE_PROPERTY_UPLOAD_URL 0x501D +#define MTP_DEVICE_PROPERTY_ARTIST 0x501E +#define MTP_DEVICE_PROPERTY_COPYRIGHT_INFO 0x501F +#define MTP_DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER 0xD401 +#define MTP_DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME 0xD402 +#define MTP_DEVICE_PROPERTY_VOLUME 0xD403 +#define MTP_DEVICE_PROPERTY_SUPPORTED_FORMATS_ORDERED 0xD404 +#define MTP_DEVICE_PROPERTY_DEVICE_ICON 0xD405 +#define MTP_DEVICE_PROPERTY_PLAYBACK_RATE 0xD410 +#define MTP_DEVICE_PROPERTY_PLAYBACK_OBJECT 0xD411 +#define MTP_DEVICE_PROPERTY_PLAYBACK_CONTAINER_INDEX 0xD412 +#define MTP_DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO 0xD406 +#define MTP_DEVICE_PROPERTY_PERCEIVED_DEVICE_TYPE 0xD407 + +// MTP Operation Codes +#define MTP_OPERATION_GET_DEVICE_INFO 0x1001 +#define MTP_OPERATION_OPEN_SESSION 0x1002 +#define MTP_OPERATION_CLOSE_SESSION 0x1003 +#define MTP_OPERATION_GET_STORAGE_IDS 0x1004 +#define MTP_OPERATION_GET_STORAGE_INFO 0x1005 +#define MTP_OPERATION_GET_NUM_OBJECTS 0x1006 +#define MTP_OPERATION_GET_OBJECT_HANDLES 0x1007 +#define MTP_OPERATION_GET_OBJECT_INFO 0x1008 +#define MTP_OPERATION_GET_OBJECT 0x1009 +#define MTP_OPERATION_GET_THUMB 0x100A +#define MTP_OPERATION_DELETE_OBJECT 0x100B +#define MTP_OPERATION_SEND_OBJECT_INFO 0x100C +#define MTP_OPERATION_SEND_OBJECT 0x100D +#define MTP_OPERATION_INITIATE_CAPTURE 0x100E +#define MTP_OPERATION_FORMAT_STORE 0x100F +#define MTP_OPERATION_RESET_DEVICE 0x1010 +#define MTP_OPERATION_SELF_TEST 0x1011 +#define MTP_OPERATION_SET_OBJECT_PROTECTION 0x1012 +#define MTP_OPERATION_POWER_DOWN 0x1013 +#define MTP_OPERATION_GET_DEVICE_PROP_DESC 0x1014 +#define MTP_OPERATION_GET_DEVICE_PROP_VALUE 0x1015 +#define MTP_OPERATION_SET_DEVICE_PROP_VALUE 0x1016 +#define MTP_OPERATION_RESET_DEVICE_PROP_VALUE 0x1017 +#define MTP_OPERATION_TERMINATE_OPEN_CAPTURE 0x1018 +#define MTP_OPERATION_MOVE_OBJECT 0x1019 +#define MTP_OPERATION_COPY_OBJECT 0x101A +#define MTP_OPERATION_GET_PARTIAL_OBJECT 0x101B +#define MTP_OPERATION_INITIATE_OPEN_CAPTURE 0x101C +#define MTP_OPERATION_GET_OBJECT_PROPS_SUPPORTED 0x9801 +#define MTP_OPERATION_GET_OBJECT_PROP_DESC 0x9802 +#define MTP_OPERATION_GET_OBJECT_PROP_VALUE 0x9803 +#define MTP_OPERATION_SET_OBJECT_PROP_VALUE 0x9804 +#define MTP_OPERATION_GET_OBJECT_PROP_LIST 0x9805 +#define MTP_OPERATION_SET_OBJECT_PROP_LIST 0x9806 +#define MTP_OPERATION_GET_INTERDEPENDENT_PROP_DESC 0x9807 +#define MTP_OPERATION_SEND_OBJECT_PROP_LIST 0x9808 +#define MTP_OPERATION_GET_OBJECT_REFERENCES 0x9810 +#define MTP_OPERATION_SET_OBJECT_REFERENCES 0x9811 +#define MTP_OPERATION_SKIP 0x9820 + +// Android extensions for direct file IO + +// Same as GetPartialObject, but with 64 bit offset +#define MTP_OPERATION_GET_PARTIAL_OBJECT_64 0x95C1 +// Same as GetPartialObject64, but copying host to device +#define MTP_OPERATION_SEND_PARTIAL_OBJECT 0x95C2 +// Truncates file to 64 bit length +#define MTP_OPERATION_TRUNCATE_OBJECT 0x95C3 +// Must be called before using SendPartialObject and TruncateObject +#define MTP_OPERATION_BEGIN_EDIT_OBJECT 0x95C4 +// Called to commit changes made by SendPartialObject and TruncateObject +#define MTP_OPERATION_END_EDIT_OBJECT 0x95C5 + +// MTP Response Codes +#define MTP_RESPONSE_UNDEFINED 0x2000 +#define MTP_RESPONSE_OK 0x2001 +#define MTP_RESPONSE_GENERAL_ERROR 0x2002 +#define MTP_RESPONSE_SESSION_NOT_OPEN 0x2003 +#define MTP_RESPONSE_INVALID_TRANSACTION_ID 0x2004 +#define MTP_RESPONSE_OPERATION_NOT_SUPPORTED 0x2005 +#define MTP_RESPONSE_PARAMETER_NOT_SUPPORTED 0x2006 +#define MTP_RESPONSE_INCOMPLETE_TRANSFER 0x2007 +#define MTP_RESPONSE_INVALID_STORAGE_ID 0x2008 +#define MTP_RESPONSE_INVALID_OBJECT_HANDLE 0x2009 +#define MTP_RESPONSE_DEVICE_PROP_NOT_SUPPORTED 0x200A +#define MTP_RESPONSE_INVALID_OBJECT_FORMAT_CODE 0x200B +#define MTP_RESPONSE_STORAGE_FULL 0x200C +#define MTP_RESPONSE_OBJECT_WRITE_PROTECTED 0x200D +#define MTP_RESPONSE_STORE_READ_ONLY 0x200E +#define MTP_RESPONSE_ACCESS_DENIED 0x200F +#define MTP_RESPONSE_NO_THUMBNAIL_PRESENT 0x2010 +#define MTP_RESPONSE_SELF_TEST_FAILED 0x2011 +#define MTP_RESPONSE_PARTIAL_DELETION 0x2012 +#define MTP_RESPONSE_STORE_NOT_AVAILABLE 0x2013 +#define MTP_RESPONSE_SPECIFICATION_BY_FORMAT_UNSUPPORTED 0x2014 +#define MTP_RESPONSE_NO_VALID_OBJECT_INFO 0x2015 +#define MTP_RESPONSE_INVALID_CODE_FORMAT 0x2016 +#define MTP_RESPONSE_UNKNOWN_VENDOR_CODE 0x2017 +#define MTP_RESPONSE_CAPTURE_ALREADY_TERMINATED 0x2018 +#define MTP_RESPONSE_DEVICE_BUSY 0x2019 +#define MTP_RESPONSE_INVALID_PARENT_OBJECT 0x201A +#define MTP_RESPONSE_INVALID_DEVICE_PROP_FORMAT 0x201B +#define MTP_RESPONSE_INVALID_DEVICE_PROP_VALUE 0x201C +#define MTP_RESPONSE_INVALID_PARAMETER 0x201D +#define MTP_RESPONSE_SESSION_ALREADY_OPEN 0x201E +#define MTP_RESPONSE_TRANSACTION_CANCELLED 0x201F +#define MTP_RESPONSE_SPECIFICATION_OF_DESTINATION_UNSUPPORTED 0x2020 +#define MTP_RESPONSE_INVALID_OBJECT_PROP_CODE 0xA801 +#define MTP_RESPONSE_INVALID_OBJECT_PROP_FORMAT 0xA802 +#define MTP_RESPONSE_INVALID_OBJECT_PROP_VALUE 0xA803 +#define MTP_RESPONSE_INVALID_OBJECT_REFERENCE 0xA804 +#define MTP_RESPONSE_GROUP_NOT_SUPPORTED 0xA805 +#define MTP_RESPONSE_INVALID_DATASET 0xA806 +#define MTP_RESPONSE_SPECIFICATION_BY_GROUP_UNSUPPORTED 0xA807 +#define MTP_RESPONSE_SPECIFICATION_BY_DEPTH_UNSUPPORTED 0xA808 +#define MTP_RESPONSE_OBJECT_TOO_LARGE 0xA809 +#define MTP_RESPONSE_OBJECT_PROP_NOT_SUPPORTED 0xA80A +#define MTP_RESPONSE_NO_RESPONSE 0xFFFF + +// MTP Event Codes +#define MTP_EVENT_UNDEFINED 0x4000 +#define MTP_EVENT_CANCEL_TRANSACTION 0x4001 +#define MTP_EVENT_OBJECT_ADDED 0x4002 +#define MTP_EVENT_OBJECT_REMOVED 0x4003 +#define MTP_EVENT_STORE_ADDED 0x4004 +#define MTP_EVENT_STORE_REMOVED 0x4005 +#define MTP_EVENT_DEVICE_PROP_CHANGED 0x4006 +#define MTP_EVENT_OBJECT_INFO_CHANGED 0x4007 +#define MTP_EVENT_DEVICE_INFO_CHANGED 0x4008 +#define MTP_EVENT_REQUEST_OBJECT_TRANSFER 0x4009 +#define MTP_EVENT_STORE_FULL 0x400A +#define MTP_EVENT_DEVICE_RESET 0x400B +#define MTP_EVENT_STORAGE_INFO_CHANGED 0x400C +#define MTP_EVENT_CAPTURE_COMPLETE 0x400D +#define MTP_EVENT_UNREPORTED_STATUS 0x400E +#define MTP_EVENT_OBJECT_PROP_CHANGED 0xC801 +#define MTP_EVENT_OBJECT_PROP_DESC_CHANGED 0xC802 +#define MTP_EVENT_OBJECT_REFERENCES_CHANGED 0xC803 + +// Storage Type +#define MTP_STORAGE_FIXED_ROM 0x0001 +#define MTP_STORAGE_REMOVABLE_ROM 0x0002 +#define MTP_STORAGE_FIXED_RAM 0x0003 +#define MTP_STORAGE_REMOVABLE_RAM 0x0004 + +// Storage File System +#define MTP_STORAGE_FILESYSTEM_FLAT 0x0001 +#define MTP_STORAGE_FILESYSTEM_HIERARCHICAL 0x0002 +#define MTP_STORAGE_FILESYSTEM_DCF 0x0003 + +// Storage Access Capability +#define MTP_STORAGE_READ_WRITE 0x0000 +#define MTP_STORAGE_READ_ONLY_WITHOUT_DELETE 0x0001 +#define MTP_STORAGE_READ_ONLY_WITH_DELETE 0x0002 + +// Association Type +#define MTP_ASSOCIATION_TYPE_UNDEFINED 0x0000 +#define MTP_ASSOCIATION_TYPE_GENERIC_FOLDER 0x0001 + +// MTP class reqeusts +#define MTP_REQUEST_CANCEL 0x64 +#define MTP_REQUEST_GET_EXT_EVENT_DATA 0x65 +#define MTP_REQUEST_RESET 0x66 +#define MTP_REQUEST_GET_DEVICE_STATUS 0x67 +// clang-format on + +#define USB_MTP_CLASS 0x06 + +#define USB_MTP_SUB_CLASS 0x01U +#define USB_MTP_PROTOCOL 0x01U + +struct mtp_header { + uint32_t conlen; + uint16_t contype; + uint16_t code; + uint32_t trans_id; + uint32_t param[]; +}; + +struct mtp_string { + uint8_t len; + uint16_t string[255]; +}; + +struct mtp_device_info { + uint16_t StandardVersion; + uint32_t VendorExtensionID; + uint16_t VendorExtensionVersion; + uint8_t VendorExtensionDesc_len; + uint16_t VendorExtensionDesc[255]; + uint16_t FunctionalMode; + uint32_t OperationsSupported_len; + uint16_t OperationsSupported[255]; + uint32_t EventsSupported_len; + uint16_t EventsSupported[255]; + uint32_t DevicePropertiesSupported_len; + uint16_t DevicePropertiesSupported[255]; + uint32_t CaptureFormats_len; + uint16_t CaptureFormats[255]; + uint32_t ImageFormats_len; + uint16_t ImageFormats[255]; + uint8_t Manufacturer_len; + uint16_t Manufacturer[255]; + uint8_t Model_len; + uint16_t Model[255]; + uint8_t DeviceVersion_len; + uint16_t DeviceVersion[255]; + uint8_t SerialNumber_len; + uint16_t SerialNumber[255]; +} __PACKED; + +struct mtp_object_props_support { + uint32_t ObjectPropCode_len; + uint16_t ObjectPropCode[255]; +} __PACKED; + +struct mtp_device_prop_desc { + uint16_t DevicePropertyCode; + uint16_t DataType; + uint8_t GetSet; + uint16_t DefaultValue[1]; + uint16_t CurrentValue[1]; + uint8_t FormFlag; +} __PACKED; + +struct mtp_storage_id { + uint32_t StorageIDS_len; + uint32_t StorageIDS[255]; +} __PACKED; + +struct mtp_storage_info { + uint16_t StorageType; + uint16_t FilesystemType; + uint16_t AccessCapability; + uint64_t MaxCapability; + uint64_t FreeSpaceInBytes; + uint32_t FreeSpaceInObjects; + uint8_t StorageDescription_len; + uint8_t StorageDescription[255]; + uint8_t VolumeIdentifier_len; + uint8_t VolumeIdentifier[255]; +} __PACKED; + +struct mtp_object_handles { + uint32_t ObjectHandle_len; + uint32_t ObjectHandle[255]; +} __PACKED; + +struct mtp_object_prop_desc { + uint16_t ObjectPropertyCode; + uint16_t DataType; + uint8_t GetSet; + uint8_t DefValue[16]; + uint32_t GroupCode; + uint8_t FormFlag; +} __PACKED; + +struct mtp_object_prop_element { + uint32_t ObjectHandle; + uint16_t PropertyCode; + uint16_t Datatype; + uint8_t value[8]; +} __PACKED; + +struct mtp_object_prop_list { + uint32_t element_len; + struct mtp_object_prop_element element[1]; +} __PACKED; + +struct mtp_object_info { + uint32_t StorageId; + uint16_t ObjectFormat; + uint16_t ProtectionStatus; + uint32_t ObjectCompressedSize; + uint16_t ThumbFormat; + uint32_t ThumbCompressedSize; + uint32_t ThumbPixWidth; + uint32_t ThumbPixHeight; + uint32_t ImagePixWidth; + uint32_t ImagePixHeight; + uint32_t ImageBitDepth; + uint32_t ParentObject; + uint16_t AssociationType; + uint32_t AssociationDesc; + uint32_t SequenceNumber; + uint8_t Filename_len; + uint16_t Filename[CONFIG_USBDEV_MTP_MAX_PATHNAME]; + uint8_t CaptureDate[6]; + uint8_t ModificationDate[6]; +} __PACKED; + +struct mtp_object { + uint32_t storage_id; + uint32_t handle; + uint32_t parent_handle; + uint16_t format; + bool is_dir; + bool is_readonly; + bool is_hidden; + uint32_t file_size; + uint32_t file_full_name_length; + char file_full_name[CONFIG_USBDEV_MTP_MAX_PATHNAME]; + bool in_use; +}; + +/*Length of template descriptor: 23 bytes*/ +#define MTP_DESCRIPTOR_LEN (9 + 7 + 7 + 7) + +// clang-format off +#define MTP_DESCRIPTOR_INIT(bFirstInterface, out_ep, in_ep, int_ep, wMaxPacketSize, str_idx) \ + /* Interface */ \ + 0x09, /* bLength */ \ + USB_DESCRIPTOR_TYPE_INTERFACE, /* bDescriptorType */ \ + bFirstInterface, /* bInterfaceNumber */ \ + 0x00, /* bAlternateSetting */ \ + 0x03, /* bNumEndpoints */ \ + USB_DEVICE_CLASS_IMAGE, /* bInterfaceClass */ \ + USB_MTP_SUB_CLASS, /* bInterfaceSubClass */ \ + USB_MTP_PROTOCOL, /* bInterfaceProtocol */ \ + str_idx, /* iInterface */ \ + 0x07, /* bLength */ \ + USB_DESCRIPTOR_TYPE_ENDPOINT, /* bDescriptorType */ \ + out_ep, /* bEndpointAddress */ \ + 0x02, /* bmAttributes */ \ + WBVAL(wMaxPacketSize), /* wMaxPacketSize */ \ + 0x00, /* bInterval */ \ + 0x07, /* bLength */ \ + USB_DESCRIPTOR_TYPE_ENDPOINT, /* bDescriptorType */ \ + in_ep, /* bEndpointAddress */ \ + 0x02, /* bmAttributes */ \ + WBVAL(wMaxPacketSize), /* wMaxPacketSize */ \ + 0x00, /* bInterval */ \ + 0x07, /* bLength */ \ + USB_DESCRIPTOR_TYPE_ENDPOINT, /* bDescriptorType */ \ + int_ep, /* bEndpointAddress */ \ + 0x03, /* bmAttributes */ \ + 0x1c, /* wMaxPacketSize */ \ + 0x00, /* bInterval */ \ + 0x06 /* bLength */ +// clang-format on + +#endif \ No newline at end of file diff --git a/class/mtp/usbd_mtp.h b/class/mtp/usbd_mtp.h new file mode 100644 index 00000000..a189d524 --- /dev/null +++ b/class/mtp/usbd_mtp.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2025, sakumisu + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef USBD_MTP_H +#define USBD_MTP_H + +#include "usb_mtp.h" +#include +#include + +/* gcc toolchain does not implement dirent.h, so we define our own MTP_DIR and mtp_dirent */ + +typedef void MTP_DIR; + +struct mtp_statfs { + size_t f_bsize; /* block size */ + size_t f_blocks; /* total data blocks in file system */ + size_t f_bfree; /* free blocks in file system */ +}; + +struct mtp_dirent { + uint8_t d_type; /* The type of the file */ + uint8_t d_namlen; /* The length of the not including the terminating null file name */ + uint16_t d_reclen; /* length of this record */ + char d_name[CONFIG_USBDEV_MTP_MAX_PATHNAME]; /* The null-terminated file name */ +}; + +#ifdef __cplusplus +extern "C" { +#endif + +struct usbd_interface *usbd_mtp_init_intf(struct usbd_interface *intf, + const uint8_t out_ep, + const uint8_t in_ep, + const uint8_t int_ep); + +const char *usbd_mtp_fs_root_path(void); +const char *usbd_mtp_fs_description(void); + +int usbd_mtp_mkdir(const char *path); +int usbd_mtp_rmdir(const char *path); +MTP_DIR *usbd_mtp_opendir(const char *name); +int usbd_mtp_closedir(MTP_DIR *d); +struct mtp_dirent *usbd_mtp_readdir(MTP_DIR *d); + +int usbd_mtp_statfs(const char *path, struct mtp_statfs *buf); +int usbd_mtp_stat(const char *file, struct stat *buf); + +int usbd_mtp_open(const char *path, uint8_t mode); +int usbd_mtp_close(int fd); +int usbd_mtp_read(int fd, void *buf, size_t len); +int usbd_mtp_write(int fd, const void *buf, size_t len); + +int usbd_mtp_unlink(const char *path); + +#ifdef __cplusplus +} +#endif + +#endif /* USBD_MTP_H */ diff --git a/class/mtp/usbd_mtp_support.h b/class/mtp/usbd_mtp_support.h new file mode 100644 index 00000000..9281ec39 --- /dev/null +++ b/class/mtp/usbd_mtp_support.h @@ -0,0 +1,312 @@ +/* + * Copyright (c) 2025, sakumisu + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef USBD_MTP_SUPPORT_H +#define USBD_MTP_SUPPORT_H + +#define MTP_VERSION 100 + +typedef struct _profile_property { + uint16_t prop_code; + uint16_t data_type; + uint8_t getset; + uint64_t default_value; + uint32_t group_code; + uint8_t form_flag; + uint16_t format_code; +} profile_property; + +typedef struct _format_property { + uint16_t format_code; + uint16_t *properties; +} formats_property; + +const char mtp_extension_string[] = "microsoft.com: 1.0; android.com: 1.0;"; + +const uint16_t supported_op[] = { + MTP_OPERATION_GET_DEVICE_INFO, //0x1001 + MTP_OPERATION_OPEN_SESSION, //0x1002 + MTP_OPERATION_CLOSE_SESSION, //0x1003 + MTP_OPERATION_GET_STORAGE_IDS, //0x1004 + MTP_OPERATION_GET_STORAGE_INFO, //0x1005 + //MTP_OPERATION_GET_NUM_OBJECTS ,//0x1006 + MTP_OPERATION_GET_OBJECT_HANDLES, //0x1007 + MTP_OPERATION_GET_OBJECT_INFO, //0x1008 + MTP_OPERATION_GET_OBJECT, //0x1009 + //MTP_OPERATION_GET_THUMB ,//0x100A + MTP_OPERATION_DELETE_OBJECT, //0x100B + MTP_OPERATION_SEND_OBJECT_INFO, //0x100C + MTP_OPERATION_SEND_OBJECT, //0x100D + MTP_OPERATION_GET_DEVICE_PROP_DESC, //0x1014 + // MTP_OPERATION_GET_DEVICE_PROP_VALUE ,//0x1015 + // MTP_OPERATION_SET_DEVICE_PROP_VALUE ,//0x1016 + //MTP_OPERATION_RESET_DEVICE_PROP_VALUE ,//0x1017 + // MTP_OPERATION_GET_PARTIAL_OBJECT ,//0x101B + MTP_OPERATION_GET_OBJECT_PROPS_SUPPORTED, //0x9801 + // MTP_OPERATION_GET_OBJECT_PROP_DESC, //0x9802 + // MTP_OPERATION_GET_OBJECT_PROP_VALUE ,//0x9803 + // MTP_OPERATION_SET_OBJECT_PROP_VALUE ,//0x9804 + // MTP_OPERATION_GET_OBJECT_PROP_LIST ,//0x9805 + //MTP_OPERATION_GET_OBJECT_REFERENCES ,//0x9810 + //MTP_OPERATION_SET_OBJECT_REFERENCES ,//0x9811 + // MTP_OPERATION_GET_PARTIAL_OBJECT_64 ,//0x95C1 + // MTP_OPERATION_SEND_PARTIAL_OBJECT ,//0x95C2 + // MTP_OPERATION_TRUNCATE_OBJECT ,//0x95C3 + // MTP_OPERATION_BEGIN_EDIT_OBJECT ,//0x95C4 + // MTP_OPERATION_END_EDIT_OBJECT //0x95C5 +}; + +int supported_op_size = sizeof(supported_op); + +const uint16_t supported_event[] = { + MTP_EVENT_OBJECT_ADDED, // 0x4002 + MTP_EVENT_OBJECT_REMOVED, // 0x4003 + MTP_EVENT_STORE_ADDED, // 0x4004 + MTP_EVENT_STORE_REMOVED, // 0x4005 + MTP_EVENT_STORAGE_INFO_CHANGED, // 0x400C + MTP_EVENT_OBJECT_INFO_CHANGED, // 0x4007 + MTP_EVENT_DEVICE_PROP_CHANGED, // 0x4006 + MTP_EVENT_OBJECT_PROP_CHANGED // 0xC801 +}; + +int supported_event_size = sizeof(supported_event); + +const formats_property support_format_properties[] = { + // format code prop code + { MTP_FORMAT_UNDEFINED, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF } }, + { MTP_FORMAT_ASSOCIATION, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF } } +#if 0 + { MTP_FORMAT_TEXT , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_HTML , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_MP4_CONTAINER, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_3GP_CONTAINER, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_WAV , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED,MTP_PROPERTY_ARTIST,MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_ALBUM_ARTIST, MTP_PROPERTY_TRACK, MTP_PROPERTY_ORIGINAL_RELEASE_DATE, MTP_PROPERTY_GENRE, MTP_PROPERTY_COMPOSER, + MTP_PROPERTY_AUDIO_WAVE_CODEC, MTP_PROPERTY_BITRATE_TYPE, MTP_PROPERTY_AUDIO_BITRATE, MTP_PROPERTY_NUMBER_OF_CHANNELS,MTP_PROPERTY_SAMPLE_RATE, + 0xFFFF} + }, + { MTP_FORMAT_MP3 , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED,MTP_PROPERTY_ARTIST,MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_ALBUM_ARTIST, MTP_PROPERTY_TRACK, MTP_PROPERTY_ORIGINAL_RELEASE_DATE, MTP_PROPERTY_GENRE, MTP_PROPERTY_COMPOSER, + MTP_PROPERTY_AUDIO_WAVE_CODEC, MTP_PROPERTY_BITRATE_TYPE, MTP_PROPERTY_AUDIO_BITRATE, MTP_PROPERTY_NUMBER_OF_CHANNELS,MTP_PROPERTY_SAMPLE_RATE, + 0xFFFF} + }, + { MTP_FORMAT_MPEG , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_EXIF_JPEG , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, + MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_BMP , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, + MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_GIF , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, + MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_JFIF , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, + MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_WMA , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_ALBUM_ARTIST, MTP_PROPERTY_TRACK, MTP_PROPERTY_ORIGINAL_RELEASE_DATE, MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, + MTP_PROPERTY_GENRE, MTP_PROPERTY_COMPOSER, MTP_PROPERTY_AUDIO_WAVE_CODEC, MTP_PROPERTY_BITRATE_TYPE, MTP_PROPERTY_AUDIO_BITRATE, + MTP_PROPERTY_NUMBER_OF_CHANNELS, MTP_PROPERTY_SAMPLE_RATE, + 0xFFFF} + }, + { MTP_FORMAT_OGG , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_ALBUM_ARTIST, MTP_PROPERTY_TRACK, MTP_PROPERTY_ORIGINAL_RELEASE_DATE, MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, + MTP_PROPERTY_GENRE, MTP_PROPERTY_COMPOSER, MTP_PROPERTY_AUDIO_WAVE_CODEC, MTP_PROPERTY_BITRATE_TYPE, MTP_PROPERTY_AUDIO_BITRATE, + MTP_PROPERTY_NUMBER_OF_CHANNELS, MTP_PROPERTY_SAMPLE_RATE, + 0xFFFF} + }, + { MTP_FORMAT_AAC , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_ALBUM_ARTIST, MTP_PROPERTY_TRACK, MTP_PROPERTY_ORIGINAL_RELEASE_DATE, MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, + MTP_PROPERTY_GENRE, MTP_PROPERTY_COMPOSER, MTP_PROPERTY_AUDIO_WAVE_CODEC, MTP_PROPERTY_BITRATE_TYPE, MTP_PROPERTY_AUDIO_BITRATE, + MTP_PROPERTY_NUMBER_OF_CHANNELS, MTP_PROPERTY_SAMPLE_RATE, + 0xFFFF} + }, + { MTP_FORMAT_ABSTRACT_AV_PLAYLIST, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_WPL_PLAYLIST, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_M3U_PLAYLIST, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_PLS_PLAYLIST, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_XML_DOCUMENT, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_FLAC , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_AVI , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_ASF , (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, MTP_PROPERTY_ARTIST, MTP_PROPERTY_ALBUM_NAME, + MTP_PROPERTY_DURATION, MTP_PROPERTY_DESCRIPTION, MTP_PROPERTY_WIDTH, MTP_PROPERTY_HEIGHT, MTP_PROPERTY_DATE_AUTHORED, + 0xFFFF} + }, + { MTP_FORMAT_MS_WORD_DOCUMENT, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_MS_EXCEL_SPREADSHEET, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + }, + { MTP_FORMAT_MS_POWERPOINT_PRESENTATION, (uint16_t[]){ MTP_PROPERTY_STORAGE_ID, MTP_PROPERTY_OBJECT_FORMAT, MTP_PROPERTY_PROTECTION_STATUS, MTP_PROPERTY_OBJECT_SIZE, + MTP_PROPERTY_OBJECT_FILE_NAME, MTP_PROPERTY_DATE_MODIFIED, MTP_PROPERTY_PARENT_OBJECT, MTP_PROPERTY_PERSISTENT_UID, + MTP_PROPERTY_NAME, MTP_PROPERTY_DISPLAY_NAME, MTP_PROPERTY_DATE_CREATED, + 0xFFFF} + } +#endif + , + + { 0xFFFF, (uint16_t[]){ 0xFFFF } } + +}; + +const profile_property support_object_properties[] = { + // prop_code data_type getset default_value group_code form_flag format_code + { MTP_PROPERTY_STORAGE_ID, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000001, 0x00, 0xFFFF }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_UNDEFINED, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_ASSOCIATION, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_TEXT, 0x000000000, 0x00, MTP_FORMAT_TEXT }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_HTML, 0x000000000, 0x00, MTP_FORMAT_HTML }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_WAV, 0x000000000, 0x00, MTP_FORMAT_WAV }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_MP3, 0x000000000, 0x00, MTP_FORMAT_MP3 }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_MPEG, 0x000000000, 0x00, MTP_FORMAT_MPEG }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_EXIF_JPEG, 0x000000000, 0x00, MTP_FORMAT_EXIF_JPEG }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_BMP, 0x000000000, 0x00, MTP_FORMAT_BMP }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_AIFF, 0x000000000, 0x00, MTP_FORMAT_AIFF }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_MPEG, 0x000000000, 0x00, MTP_FORMAT_MPEG }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_WMA, 0x000000000, 0x00, MTP_FORMAT_WMA }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_OGG, 0x000000000, 0x00, MTP_FORMAT_OGG }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_AAC, 0x000000000, 0x00, MTP_FORMAT_AAC }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_MP4_CONTAINER, 0x000000000, 0x00, MTP_FORMAT_MP4_CONTAINER }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_3GP_CONTAINER, 0x000000000, 0x00, MTP_FORMAT_3GP_CONTAINER }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_ABSTRACT_AV_PLAYLIST, 0x000000000, 0x00, MTP_FORMAT_ABSTRACT_AV_PLAYLIST }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_WPL_PLAYLIST, 0x000000000, 0x00, MTP_FORMAT_WPL_PLAYLIST }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_M3U_PLAYLIST, 0x000000000, 0x00, MTP_FORMAT_M3U_PLAYLIST }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_PLS_PLAYLIST, 0x000000000, 0x00, MTP_FORMAT_PLS_PLAYLIST }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_XML_DOCUMENT, 0x000000000, 0x00, MTP_FORMAT_XML_DOCUMENT }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_FLAC, 0x000000000, 0x00, MTP_FORMAT_FLAC }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_AVI, 0x000000000, 0x00, MTP_FORMAT_AVI }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_ASF, 0x000000000, 0x00, MTP_FORMAT_ASF }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_MS_WORD_DOCUMENT, 0x000000000, 0x00, MTP_FORMAT_MS_WORD_DOCUMENT }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_MS_EXCEL_SPREADSHEET, 0x000000000, 0x00, MTP_FORMAT_MS_EXCEL_SPREADSHEET }, + { MTP_PROPERTY_OBJECT_FORMAT, MTP_TYPE_UINT16, 0x00, MTP_FORMAT_MS_POWERPOINT_PRESENTATION, 0x000000000, 0x00, MTP_FORMAT_MS_POWERPOINT_PRESENTATION }, + + { MTP_PROPERTY_OBJECT_SIZE, MTP_TYPE_UINT64, 0x00, 0x0000000000000000, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_STORAGE_ID, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_PROTECTION_STATUS, MTP_TYPE_UINT16, 0x00, 0x0000, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_DISPLAY_NAME, MTP_TYPE_STR, 0x00, 0x0000, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_OBJECT_FILE_NAME, MTP_TYPE_STR, 0x01, 0x0000, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_DATE_CREATED, MTP_TYPE_STR, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_DATE_MODIFIED, MTP_TYPE_STR, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_PARENT_OBJECT, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_PERSISTENT_UID, MTP_TYPE_UINT128, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + { MTP_PROPERTY_NAME, MTP_TYPE_STR, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_ASSOCIATION }, + + { MTP_PROPERTY_OBJECT_SIZE, MTP_TYPE_UINT64, 0x00, 0x0000000000000000, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_STORAGE_ID, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_PROTECTION_STATUS, MTP_TYPE_UINT16, 0x00, 0x0000, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_DISPLAY_NAME, MTP_TYPE_STR, 0x00, 0x0000, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_OBJECT_FILE_NAME, MTP_TYPE_STR, 0x01, 0x0000, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_DATE_CREATED, MTP_TYPE_STR, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_DATE_MODIFIED, MTP_TYPE_STR, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_PARENT_OBJECT, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_PERSISTENT_UID, MTP_TYPE_UINT128, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + { MTP_PROPERTY_NAME, MTP_TYPE_STR, 0x00, 0x00, 0x000000000, 0x00, MTP_FORMAT_UNDEFINED }, + + //{MTP_PROPERTY_ASSOCIATION_TYPE, MTP_TYPE_UINT16, 0x00, 0x0001 , 0x000000000 , 0x00 , 0xFFFF }, + { MTP_PROPERTY_ASSOCIATION_DESC, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000000, 0x00, 0xFFFF }, + { MTP_PROPERTY_PROTECTION_STATUS, MTP_TYPE_UINT16, 0x00, 0x0000, 0x000000000, 0x00, 0xFFFF }, + { MTP_PROPERTY_HIDDEN, MTP_TYPE_UINT16, 0x00, 0x0000, 0x000000000, 0x00, 0xFFFF }, + + { 0xFFFF, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000000, 0x00 } +}; + +const profile_property support_device_properties[] = { + // prop_code data_type getset default_value group_code form_flag + //{MTP_DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER, MTP_TYPE_UINT32, 0x00, 0x00000000 , 0x000000000 , 0x00 }, + //{MTP_DEVICE_PROPERTY_IMAGE_SIZE, MTP_TYPE_UINT32, 0x00, 0x00000000 , 0x000000000 , 0x00 }, + { MTP_DEVICE_PROPERTY_BATTERY_LEVEL, MTP_TYPE_UINT16, 0x00, 0x00000000, 0x000000000, 0x00 }, + { MTP_DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME, MTP_TYPE_STR, 0x00, 0x00000000, 0x000000000, 0x00 }, + + { 0xFFFF, MTP_TYPE_UINT32, 0x00, 0x00000000, 0x000000000, 0x00 } +}; + +#endif \ No newline at end of file diff --git a/demo/mtp_template.c b/demo/mtp_template.c new file mode 100644 index 00000000..11950d26 --- /dev/null +++ b/demo/mtp_template.c @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2025 sakumisu + * + * SPDX-License-Identifier: Apache-2.0 + * + */ + +#include "usbd_core.h" +#include "usbd_mtp.h" + +#if 1 +#error "commercial charge" +#endif + +#ifndef CONFIG_USBDEV_MTP_THREAD +#warning mtp depends on filesystem, suggest to enable CONFIG_USBDEV_MTP_THREAD +#endif + +#define WCID_VENDOR_CODE 0x01 + +__ALIGN_BEGIN const uint8_t WCID_StringDescriptor_MSOS[18] __ALIGN_END = { + /////////////////////////////////////// + /// MS OS string descriptor + /////////////////////////////////////// + 0x12, /* bLength */ + USB_DESCRIPTOR_TYPE_STRING, /* bDescriptorType */ + /* MSFT100 */ + 'M', 0x00, 'S', 0x00, 'F', 0x00, 'T', 0x00, /* wcChar_7 */ + '1', 0x00, '0', 0x00, '0', 0x00, /* wcChar_7 */ + WCID_VENDOR_CODE, /* bVendorCode */ + 0x00, /* bReserved */ +}; + +__ALIGN_BEGIN const uint8_t WINUSB_WCIDDescriptor[40] __ALIGN_END = { + /////////////////////////////////////// + /// WCID descriptor + /////////////////////////////////////// + 0x28, 0x00, 0x00, 0x00, /* dwLength */ + 0x00, 0x01, /* bcdVersion */ + 0x04, 0x00, /* wIndex */ + 0x01, /* bCount */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* bReserved_7 */ + + /////////////////////////////////////// + /// WCID function descriptor + /////////////////////////////////////// + 0x00, /* bFirstInterfaceNumber */ + 0x01, /* bReserved */ + /* MTP */ + 'M', 'T', 'P', 0x00, 0x00, 0x00, 0x00, 0x00, /* cCID_8 */ + /* */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* cSubCID_8 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* bReserved_6 */ +}; + +__ALIGN_BEGIN const uint8_t WINUSB_IF0_WCIDProperties[142] __ALIGN_END = { + /////////////////////////////////////// + /// WCID property descriptor + /////////////////////////////////////// + 0x8e, 0x00, 0x00, 0x00, /* dwLength */ + 0x00, 0x01, /* bcdVersion */ + 0x05, 0x00, /* wIndex */ + 0x01, 0x00, /* wCount */ + + /////////////////////////////////////// + /// registry propter descriptor + /////////////////////////////////////// + 0x84, 0x00, 0x00, 0x00, /* dwSize */ + 0x01, 0x00, 0x00, 0x00, /* dwPropertyDataType */ + 0x28, 0x00, /* wPropertyNameLength */ + /* DeviceInterfaceGUID */ + 'D', 0x00, 'e', 0x00, 'v', 0x00, 'i', 0x00, /* wcName_20 */ + 'c', 0x00, 'e', 0x00, 'I', 0x00, 'n', 0x00, /* wcName_20 */ + 't', 0x00, 'e', 0x00, 'r', 0x00, 'f', 0x00, /* wcName_20 */ + 'a', 0x00, 'c', 0x00, 'e', 0x00, 'G', 0x00, /* wcName_20 */ + 'U', 0x00, 'I', 0x00, 'D', 0x00, 0x00, 0x00, /* wcName_20 */ + 0x4e, 0x00, 0x00, 0x00, /* dwPropertyDataLength */ + + /* {1D4B2365-4749-48EA-B38A-7C6FDDDD7E26} */ + '{', 0x00, '1', 0x00, 'D', 0x00, '4', 0x00, /* wcData_39 */ + 'B', 0x00, '2', 0x00, '3', 0x00, '6', 0x00, /* wcData_39 */ + '5', 0x00, '-', 0x00, '4', 0x00, '7', 0x00, /* wcData_39 */ + '4', 0x00, '9', 0x00, '-', 0x00, '4', 0x00, /* wcData_39 */ + '8', 0x00, 'E', 0x00, 'A', 0x00, '-', 0x00, /* wcData_39 */ + 'B', 0x00, '3', 0x00, '8', 0x00, 'A', 0x00, /* wcData_39 */ + '-', 0x00, '7', 0x00, 'C', 0x00, '6', 0x00, /* wcData_39 */ + 'F', 0x00, 'D', 0x00, 'D', 0x00, 'D', 0x00, /* wcData_39 */ + 'D', 0x00, '7', 0x00, 'E', 0x00, '2', 0x00, /* wcData_39 */ + '6', 0x00, '}', 0x00, 0x00, 0x00, /* wcData_39 */ + +}; + +const uint8_t bos_descriptor[] = { + 0x05, 0x0f, 0x16, 0x00, 0x02, + 0x07, 0x10, 0x02, 0x06, 0x00, 0x00, 0x00, + 0x0a, 0x10, 0x03, 0x00, 0x0f, 0x00, 0x01, 0x01, 0xf4, 0x01 +}; + +/*!< endpoint address */ +#define MTP_IN_EP 0x81 +#define MTP_OUT_EP 0x02 +#define MTP_INT_EP 0x83 + +/*!< config descriptor size */ +#define USB_CONFIG_SIZE (9 + MTP_DESCRIPTOR_LEN) + +static const uint8_t device_descriptor[] = { + USB_DEVICE_DESCRIPTOR_INIT(USB_2_0, 0x00, 0x00, 0x00, USBD_VID, USBD_PID, 0x0201, 0x01) +}; + +static const uint8_t config_descriptor_hs[] = { + USB_CONFIG_DESCRIPTOR_INIT(USB_CONFIG_SIZE, 0x01, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER), + MTP_DESCRIPTOR_INIT(0x00, MTP_OUT_EP, MTP_IN_EP, MTP_INT_EP, USB_BULK_EP_MPS_HS, 0x02), +}; + +static const uint8_t config_descriptor_fs[] = { + USB_CONFIG_DESCRIPTOR_INIT(USB_CONFIG_SIZE, 0x01, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER), + MTP_DESCRIPTOR_INIT(0x00, MTP_OUT_EP, MTP_IN_EP, MTP_INT_EP, USB_BULK_EP_MPS_FS, 0x02), +}; + +static const uint8_t device_quality_descriptor[] = { + USB_DEVICE_QUALIFIER_DESCRIPTOR_INIT(USB_2_0, 0x00, 0x00, 0x00, 0x01), +}; + +static const uint8_t other_speed_config_descriptor_hs[] = { + USB_OTHER_SPEED_CONFIG_DESCRIPTOR_INIT(USB_CONFIG_SIZE, 0x01, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER), + MTP_DESCRIPTOR_INIT(0x00, MTP_OUT_EP, MTP_IN_EP, MTP_INT_EP, USB_BULK_EP_MPS_FS, 0x02), +}; + +static const uint8_t other_speed_config_descriptor_fs[] = { + USB_OTHER_SPEED_CONFIG_DESCRIPTOR_INIT(USB_CONFIG_SIZE, 0x01, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER), + MTP_DESCRIPTOR_INIT(0x00, MTP_OUT_EP, MTP_IN_EP, MTP_INT_EP, USB_BULK_EP_MPS_HS, 0x02), +}; + +static const char *string_descriptors[] = { + (const char[]){ 0x09, 0x04 }, /* Langid */ + "CherryUSB", /* Manufacturer */ + "CherryUSB MTP DEMO", /* Product */ + "2025053000", /* Serial Number */ +}; + +static const uint8_t *device_descriptor_callback(uint8_t speed) +{ + (void)speed; + + return device_descriptor; +} + +static const uint8_t *config_descriptor_callback(uint8_t speed) +{ + if (speed == USB_SPEED_HIGH) { + return config_descriptor_hs; + } else if (speed == USB_SPEED_FULL) { + return config_descriptor_fs; + } else { + return NULL; + } +} + +static const uint8_t *device_quality_descriptor_callback(uint8_t speed) +{ + (void)speed; + + return device_quality_descriptor; +} + +static const uint8_t *other_speed_config_descriptor_callback(uint8_t speed) +{ + if (speed == USB_SPEED_HIGH) { + return other_speed_config_descriptor_hs; + } else if (speed == USB_SPEED_FULL) { + return other_speed_config_descriptor_fs; + } else { + return NULL; + } +} + +static const char *string_descriptor_callback(uint8_t speed, uint8_t index) +{ + (void)speed; + + if (index >= (sizeof(string_descriptors) / sizeof(char *))) { + return NULL; + } + return string_descriptors[index]; +} + +const uint8_t *WINUSB_IFx_WCIDProperties[] = { + WINUSB_IF0_WCIDProperties, +}; + +struct usb_msosv1_descriptor msosv1_desc = { + .string = WCID_StringDescriptor_MSOS, + .vendor_code = WCID_VENDOR_CODE, + .compat_id = WINUSB_WCIDDescriptor, + .comp_id_property = WINUSB_IFx_WCIDProperties, +}; + +const struct usb_bos_descriptor bos_desc = { + .string = bos_descriptor, + .string_len = 22 +}; + +const struct usb_descriptor mtp_descriptor = { + .device_descriptor_callback = device_descriptor_callback, + .config_descriptor_callback = config_descriptor_callback, + .device_quality_descriptor_callback = device_quality_descriptor_callback, + .other_speed_descriptor_callback = other_speed_config_descriptor_callback, + .string_descriptor_callback = string_descriptor_callback, + .bos_descriptor = &bos_desc, + .msosv1_descriptor = &msosv1_desc, +}; + +static void usbd_event_handler(uint8_t busid, uint8_t event) +{ + switch (event) { + case USBD_EVENT_RESET: + break; + case USBD_EVENT_CONNECTED: + break; + case USBD_EVENT_DISCONNECTED: + break; + case USBD_EVENT_RESUME: + break; + case USBD_EVENT_SUSPEND: + break; + case USBD_EVENT_CONFIGURED: + break; + case USBD_EVENT_SET_REMOTE_WAKEUP: + break; + case USBD_EVENT_CLR_REMOTE_WAKEUP: + break; + + default: + break; + } +} + +static struct usbd_interface intf0; + +extern void usbd_mtp_mount(); + +void mtp_init(uint8_t busid, uint32_t reg_base) +{ + usbd_mtp_mount(); + + usbd_desc_register(busid, &mtp_descriptor); + usbd_add_interface(busid, usbd_mtp_init_intf(&intf0, MTP_OUT_EP, MTP_IN_EP, MTP_INT_EP)); + usbd_initialize(busid, reg_base, usbd_event_handler); +} \ No newline at end of file diff --git a/docs/source/support/img/mtpdev.png b/docs/source/support/img/mtpdev.png new file mode 100644 index 0000000000000000000000000000000000000000..513b8ac97a7bb4d09d881c73df7dac2aca621117 GIT binary patch literal 361577 zcmeEuWmuHk{i70}gB8Z}tluF0Iu#u7w7*blKL8Nm;N|91ZazN<@DQQJSY3UrK zn~@j>nBZNbXYaGm|Jvuc-Jjo2&gDGJTI>GR{fqTHRacd#raVV^=+Gf*MTOrqz&{j+ z4jr>1KL-BineVG!@Xujq4SDFHqAsSTLx(ONQv6Lu%fo1Of~Mpi%$NP!hla!juu^KH!8svhqLc9T2DOnQ* zIoQ6ObwB;=(e;=pEk#Dw>uMJWbzh#q56NgnRk=D~*4%3+*Vf1IHCWe1!Z^-!9$mkX ziWObh@kDjvcO2(8SRkb*D`A}90$2zaYl{MmAAHNJlVT9$B-wIm-h-cnm%@GPX4<%? z-3J9R*oX_+Etyrxj0}GFZJGMkU(7?!!#&nrOAi7uEog&C`;mNEto!PdK8TC+Zv~O) z6>;yi$wtUnaY1DCr9wo$P7`*Ii*alptDC&nx-m5<{Qil^gJw^sb=NOAW-U04_>?aq z+}!RcZ46xZ4#tTHgQ}%yzuJgNodq zkRKI8F6?1$T$v=BTce%{9cw@wpSd@>s%$d4jvno%el}Um@)E&U-Px*Bw5yJ5A)KCh z&#e|Y8p*Wfgn!EtYA}d6%aDr6+aIC~DX`VUZdSP9pPs@xM&MVv!?^h%g+9KkyIYFJ z&2RHgBv!tCn|G|c<>W=_M~4oR93}s+A5Qb}UuL_xVLrS=BJuK#SF78LqJj;6yCkxq z`17>O!+w|9v|zUta`IyEx46IJeaeyTkTD;oYICX3NZ!_fs+NPd>+?@ecZD5X_qLj% zt9YckO-Gv;Deh1$#Vp}si&JH0wxOi!Z1vBI&Zg_tnGU5fWN@0tPS=?m^d{yC7t$#4 zvB*$yb9|LFC*2rJ@gnS0Pwh8`893@4KbC1Yl#L1OQ+u{8)Z?~tl2(cJ$rX%u=&f-- z&%25571q}GT*~&bP)ev4rFt0aO1Zl=0CF%&eQS3JB62bGUFz6OoA3}6y7pd*3@Cx| zTY`TznvkUFP;9M?S@1MadseZv<&@@HHizk^Kt1DDt17D8ygfFayo0$kr1lfsj*^GP zKZ@${2yd14o_Uw-|Ins@#{XmXSTRHZxsh~=W}L<80FSXiBqMbCbhQ;Y;8vA{uf`qS ztvLTZk8khDW_rxko|&KM=c0h+zW=h9-Ymt7WIcL}17Q5<wIrVqh~igpu@k!Fqm$ zOnUWf%X4Y~fz;=&ng2s+etgx$Movzl@}2`dB2P2FO|ekoPtngjYisR*-`8c~3!Ui} zk@Q=5>3XL|t(N(wq}|YxfBmQ|Cb#LM|K6Ui0i3*KD`-IKY2#?ak;}a&{gp_N-P{7< z7*%x0#@3^IwwB6AqE!a`L*@JPudH@YuIT5p=dj&GMw{-|Z>0+O%(Pir9ZggVb5C~i zV%j$;e6JRJ$a#jTot(l|A~H&S&Xj5BLN+)qBP|z2&#jn{K$~}IPu%NJp&qbt=B-lR z2*tTNrJ;$vYSUKqM$-$$2gc(M+X+w5D>H%3#^o-dOnzSIi(ji%ODwi+N9X6S=P)V# zR3lC@Rs)r2Qf$qZp_vcs*1c`3cA{gFd5i4QV4-2WuRdm!_6g3k5zSu5al(-b1}87( zWQ&2Yv5Yi(uF$~mF!}8|IgO{Ulx<~d@;WR{HMGz8k8I71Zyz#g=$vHMF>*3sa`)s> zzjv9x2!Pe?I2c4a4U)bF0RL*yuWG zt{3C&a8qxGS_rBzs+z!&bSS4RoGWJcV z^seu#>w2TGDJlQqNkh8->0OA5!e2@Pg`O67 znGj!pm%M&!N7vK8clm7Lg#Ns&$KH{*r=HOV_i~ zX`BrtD5}fT$urq|f}raY^_Fnb+4fWROmmy3V8!W~3zkR*_;a1Bdf1Wb%}~Bpyz-}= zRsw$M*@|XSnTt41xEryYM;0y8K8hXz9ywy(3JQIOqVcq7(KyALzLCN~?=57H@v42G zR*OQ9!Dwx;TOm>EEeS)uRp5LRa;q|bL+B|$=!*sNepi9elgBBz$?pvWIW+P()E-oe z_^y-+G|rS)Z^zAl>w0nD>jXuo{BQMU>V9?wk?war<#4LDLFrou7YUanMJ97ePu>rtac5UX)=5<%GJ(`r_4RBj{Rh2c}#@WpwkRSq)Sfrfj?xO=CoIby4- zm3nCM49&H-1zvKMX!eg3_HC6HguK0Qs->f&QC2s_eGa3}HVdy~j$fvrm_t!dKzpE2 z{E3-iCSiNb{);GeZTf9lCuPZ_V@uw6v}FSyp*{W7##iHynL}&FcZHw59w}RAt~Qmw zyD^6y4RdF1P?1v^%XI91LgOguW;fr?A%5N7**T`NOYY}zEndCI)~{mq*cfBdb(99l zwX_f1!Ar=u*lPRk_!$D0fhD7zx0vvCSsDrj?pfY1)nG@SXKQOj1oN`)g}m4VOKV8d zX{hTQu5U+t?Tym04;Hrz9$~f=&)39pL36Pxtm&?~F?u|VF7L6^jUPg$dkvHxhfP4C zrMt}Wk0W#(B!vbmU)x9?WISJXR3ky&@R~li)YVKw!Q*GFi8ab;o}-`$cUcW_D$A`I zLJgmS@1`f2!!Pd|>mC_GFfyc82`V`kh0lauR^ORAte5b`&b|wk(n2Zc8-b*QlfTpI z?3Bt5Y5wm4_Yb$)OnZ{{T-+*S`O3Rw0meYF13tUGJo$e4CpRDiecp)J#C zpm}72u>8lu5EioQL$0Njxn)*|YsYE~nBr5pQ?!}-VP#|e9i6c2M!W(4n}`5hbPa*0 z$hVb9D*6~8n(y&|eY$skCgOYpEe-R2o(HV`$O@SQfWT+3VU_C~D+0Y@?mM=kUjQxl z!|y+72HMz-jPvbv|FADI6*w6-bKjVLg>vDod8?<>5)bw~{j*W+p&W$sM)dpIqj6W? z8?oyo0loQr{>u?}5E5Doo|(VeVSDH`DUPX0iq{g%C%v+@Y{@e;vSd1UOPWKH!`JJ> zT6}Bf5IrjnKz)H^cAXJjWNCA)ZdTGR`vy~9HuVZt^TL&}U?>K6LE zTX1Uvh%09YTWVI5;`gcvp)_*)aao$**s0VkVcKW%1>LYn_TmTH=QNm%p_1I>w_ECw zx~Sy=_=#EiAPu3N4CH7N~ENv2WG%!$`+>b6BZPLXNlk%FyzeQRVBJY0Sf&)kOqQG^uQZF3H z;NNgaw%2YCg@(`Q zk1Cr!CK5nGcf4c7;3Zoasg`Cwmmm`B3Bt_=rw{zgqV|@zOlj3xqr8pt?L6j~kS7{a zi-4Yc!Wu*FDE=${gnHN8@z^C`e5WiR8a_f@;TO;}%%2Rb;c%f8d4-(ISgnpuKlap_ zzhP>!XMm|)|E45_dY2sA@4g;Om*bmA@O8q)>U==;vwSQbM2yV@UpQ5qxBtMt;?|m+ z$p{Fr@ha8VsX_b}z6&>yh)Thih^%kxvzMk$`FHW;B?yP%SdszyUYg*gqEEXkQv+#eJ$XmIz}6F zy5o2`r`@R~{7ku(&TPJRij{Bjw}umIafT65J!!{0TSgNiynUtCt1nN#>^*NHbz)qA zWoyG^yfV9T)NSlUk|ggYiT6r`sL9#Wb~h4|d?k>}+s&&-1i~CV_$?XpM%knvH7%0XAtI6EXDM!%0pn9-mh@#;H*BgmnrKUX zP0ueZzp`fchvWUPAN*f|NY0f?1A#B+>TZQue(dPrYEX#3_2`g4=Si@0(tuT3isR~F z=Z6FYmpnEE1at8&!hBTt#7gi+;h8dKgrJ>%wH|wPfrij;f^2s&vE)o)hh8h z%$h!T-p2nQf)`5JF<$HFU@GVRb@qRN^gqA4rfhQG)Ko^nN-yxl)t`#{ua8j%P~=`g zt^Uu2{%gK|G>!)d(GE)e-=Fx)Wq;qSt{y-!7VYl#4|S*=xKe$g^ke^Xk-yTOA1YB$ z08FfHUtIhj>W~E$IR#IW`jLMKp0+m8)8SK6{-F+)5e-l!=bvpJ7$7&0T^XV4pBmr@ z(EzXZ|Fg{>@{gr|xwk*m*icet_~0MNpFfpEp2_JqwF|Wvq__9zWET(uW6UEZXuym9 z6Tb|}@!u|z+Ivwi9H0Hb6TaOS=@)VK)?|g^qo!>NP*s?GS!?#I8X8v7RDINbe@PzF z8iqDmWI9Z8`Z9(JXc*aS-0p!XHIN<^GM#^8c8T`4xU%nIymcFWmy>LB%(Yl7qY_s^`Orl!%|l z%>M+y#Fa8kxhD(Zx9!}q%p|8H_oyicX!b3hb)Wxy@UQ&%|B-ah9h19{h49<25$3na zfXI$R0Z=DHNB_^}fBw7v{uF;~s_E;^-ySt-0b^G|f2;NQWlcc*TN5V97f&4~iRJ*B z@bq<7_s{q7pXbwUA(^2qU&>~|Grb87>CHTKkss<`3ex!Q?$*<45~t1!*)g&{)jVZ& zhM%UB{MR=6nw~K}O$CBqTzKhF<38!@?z8dCIP7(#l$a{WU>s_TKdsO}a1SK*W}`RW zGc-Jq>q2E5J;w8GhUGwnw|={~V1$aVj^A&C0baVGiJLPfSoomxjl-S0C4~oz497Nh zlN=jF-B3tF>q$52LIs6I#K9ioGAZBY+S_hlhq`50ap?A>50-#wWa0B3X`ddOB)Ivk zJ0qS&t4Y1J>`)ZHNb|bDpsMKet5q=#53V&tM=xQmvV2mfVKercU997IVTWtfMsxO+ zm9R`m^!=25TjsdPQJa*Imc5DY)_W*Lxa_Ly|1N^Z;xH;SrCYAB)mB2c&;0`9MyXVEfu&$WTnMM%ZZpeA?@26DWb@Nyve6JHyK6LZk_UU;j%6Gx zwv=j__-MV+#)-I{u|_yt0^P3}Zs<3s_GuX9oVt$}R7W$cM?wmu-QkF-%0g{$Ra$Ef}TMUWfQq41i*h9!qP$+h1?O8i- z?KP?WFOik5J`*cO42T2V!ke${EX-xIpUX1&g1`v-sXj#ndgd#5ZhbdhE3uGw=Bhw|FNa zh#oWMELh!fpq#Of4RWC!mQq^@9EtRXnkQF^3CqRP=O=e>ak`H(*HN30ap@@g#dPKKr~*?!)4JlJuZv4mjtPOm6Hp+m-S z-@(t@k9B`0CVl>Yk!3PW1vA$6qE387E zGscb%DK*QrG`(M4wTs)ijXhIkjIA(!R=ZxqeL{3L%4og2ba+T&RqA-aafc`C89-;vN0Ak~Y2u(8L8l3w@WM6?0LNDs_j)fzRU|)%1HRzK)M2%i4BTf-idu z!`)g>h_l6X_qjK0r5q_V6YPlUS)Zt#QE~LrtlNw&wmbUvh338&r4BteMW*-lppeZT zSPhb%ih`cy6=Y}F{EZS6)Hzp#AP@xXi=v}67X{i_F-O-w*RUeSWh-0DQmO6AicfpM zNtD-6?KE(89y2S}2R9=a3|;Q*R16N)PApCssd4skSrpe)^ewq=l_Vn5pwJl+8iV{D zt(4XlE~sLuK@$g!JdC2hqIRLz(`{{(-qCw(tn83QY-L{f1N-7T( zj4*slcw|W57$xMd4`7gN(3RszdHpXKu2<9!x}^4ZRSX#=O}3sW}Wg6p2qzm_+D_{~iSi^o_0qE_@n8n@bo(8HPSd?;q-g6rpRId#L9LVSNE z#Yj2oMKPN3sE489TTo>uy)2Z9ifW@Y()U{a`{$JhyDSIhOzz`O_K|CuES{I~OnpU1 zJfmJ2KDrn6CP(+nRZ`jB8^~_2!8cqfuNd7tQQngVqA^;z8v^5;q)xpOH4CZU*R%a( zq4h^C^v{ZsTJ|>Vt<-m=;Hv3t6uWO^7wW#tns_iPlOszbdD9Pcsa+(C;%!lGg)NUX zVmB00l%03F4{+UYnpA5GbyGMEbxIYKR|GhlFdu~*1gHjF^O9rM3$=bTvtmtu#@FCs z%6K^3Y&Z>}u2>tTZX*o4pj6E%19MgW{I)#PT#Wj*p7)Xu8H>+@)|tH3zTDyfO3PXQ zU_Y)%7piNs_Lv)~7DK7;DXllN?eE{e&mqIQRkD0RW6V*oyV=Lj_~GX(8$js<^6w7v zctkhSND_8uHrU~t>>J*V81Dql><3>i%0gQ7$=iUwj?HtL*?5-F&(fD_9ecVm6UT;0@J(09mWwofbK?L+v2)o7Kd-xRJbJ`hEa=&>v$R|h@&j%1EuytfGaohL z@>tVn`->iGY~p}1kKVg;=8_FHO{Up3@10fa?fhZC4KD+6sV#pRACvDQBn|W9I$RMP z7$GwKL}aVu#>~!`qvPG?Ef9%UsU=ljmGMx2V!?l5X^FTXo@gXR^o^Sj3h95-@Ae!v z4Qa78+Dh~Qp5RT!prQLjY{gbteEqcs{Fn)lhA{9-Xn;mHnccz?#ppEd4nVC_| zW5}IKk^RNj%7uOC)zJ!WZgTZ;BiuAYs{wK|t^lg+WGiV&NoVLe7prH&Ni&gw=K}24`rM;AdUbtwibVHQ=F# zgAX>*>c07zoi8D;#k-7={Ial4mUK|If5xc(~K@pkA>qBzcQR-qB zC94s6lye4N4KDb7wDPf6N)UaT<%O4nLZPvGqoh2*GWAvElKL@bQS(IJG2?ka%t`cw zF2aKw4J%?@e7KIj2njX9FY8#o3;CVf+?Ob1O`I0(yMcpatKdmN{=M3u2R614?&xEl zaaX$5FSD|Z3wfN2O{*^0fi-VXw3qW}4CZa0YlZg^Cop5t`IlKyu)N-ZnhNc@wg6pg z2y6PNw~F4Cbcy3y#~U-TC2d3E6WH)5bw0-~SX>&;AE!$1DpsL+yfy=0=`fK9+x*1+ zijMn3-HIV9G!l-RQR#FQgV%ml*htRR>T^!rO1=Wqty$B&vZ{IJWA4Md8zft{99t^> zsa1{mH9gXd^2|2HAwze=a&G_FDubJ~fVP+MWecao6se>a(4ADW?kba(ixs_7*8WHKiY@RN}NG*TkA`34G$ zAo()#nZ3+neOHz;6PJCkjo4q7Uy*_BBkjxcwfxWCQ{aFYXNQWV?B69KW^}MWWGM$B zCU6!Z^xX8BmT1k5sOiBa+#1R47UwL>ImBLvC2uZypFM)h6j4^10}$I6g9R!1r_yOD z`KlOzxVm}BGbq7rUG5ECwX(tTkbTueTu_;YGzaPHw#SkwAIlhNl?EDWVC6Q{cO-!i z(38t1!qTrMm*wM7aPLaGHewF=r`_(mJ{v7m^>w1|-Zzwr8IJH-98Tr3r)w5jdwgq+ zd9(Y-Z%YzudB^KlE%@5=j?(8-(03>3oDiFhl1;2Jut2Cz1>kmDS>ScKjvyJxJdu4} z(=yfbzWEnrH?m&WT(iJ6x$OpeB7awySB=u* z7fyMP2#4g-mMaEbU2i-ftVV6)F!P;B-Vaq;=z!}$-D_oX8#diocW?CmyaC();-wC0 zr5od*YRUL2M|p^@Y8%r?SZVAkGHs9J371xNLO94ompcl4(>U`r_p$!*nR2Rg6;w&H zhhMp*mZ>Y2u9*p@PY-Ri$#61ijsq6Md9<(SRUcp;xqy;vt84dMF3yN)805JY6XMzS zkzF+7QMXg;1%})*H9iAdg`Bb7?HV{TzKl|3ZGVLGru#yQ`^Ri4bndl#1InN5`&rY4 z>!zqn-BHNh@X6iq)$0%thd!i-FpqL%L^s4y8f5sz`qrZf3JK54Gbyb&!{V6;r~`bX zz#H%72A{a>5(C80YRRg^V%?vR!n!R9~8PYyiE-oW%itXo`n?*!h$3w z7Ht|e#=rhnW=GB7@24(JyHr}9%%yEo7CQP@thQR=xYmsT7TiT~3Hs+EYvp}jP~~p@ zY(gea&}|LrOxOJ0NExQ+syhYM(PYNGw(&+@*0^sWkkzGq4fPDoEAe%uG9iIT+`O>m z;aD)$#KA_hv{v8)hQHb_BqU`>e{MX$ z95j@|+azYU#C%I9HrB3cCb-r{sXAbi7bMtu>%P4&@VZl_e#Z~_9R)2xE_+Tsbr+@d zJW#=q)MLrBdreM}`M{Wxe*zQ}!g({_CPKqGTcf#NN@7R49qQtsP)-i*9kdo(_5}WJ za`Wj^v^LZtvm_QYGYkQ&x%-`WlW1wJtpiM88ArHyJ&3Rzw;* z!sp?*OP`9ptV9ddl2&2P>f>iH#oiTzDu?j3u`1!U(cC=6hxpf!{nx{#=JIa0#SvV> znj=zpUP4Nj@M2VyXSJ61i+R(L`XSz3O*g*d;%xnSNytWxg!Y(aKae?%p$Z3fs!hk8 zkDxM+{X#vglwooEw%M{zBPmZ_pmXn5&(e|6J~u!STXVBhN27KA64|Es^ z1R}Gc9-Wo4NROI+t66P6QRA9v{!&MUGuVF=#>ge4ZhFAANnb%+`Sc$GOrB>STq!s$2K_vQ+d2 zGHx#9JG4Zpm+^=TiDreGTifasau+YU0^%eHm9Q`^z8TCZ5zi%_X|C}o2aUY#|8}C* zosZ&3#TcYoBj4K9u zt}p5$oAcPTZdy^R`z|RPx19+X6tLBivp$)gR3>otzV15-oKNz@Hcq|Xl8Q^JrAl2l zJDSU))JJ^d8!-|fMY>ZbAAFWp2{R5j-$A{TcZRxpt>c5dx?Vxvevbdb13BECk=NgrA|2_$GZUF*Sao&eK_~TF2PeHDj5{T6sXXOA5PsrB!DM z1WG)U=J6CJ=MI65Ve`lqBBQ(I8dpZu9=TL$Odlh$`kX8}Puu+SSP|{Vr8Bg7z1^lk zfo=QR+E>_7GXVJ|iNeEqgIw2BpwPlr_q^WzWg|d;YLPx2@cll7P>??HghS8Y3+=@{ zmgIEl>mEGUwvrt_Ezr_t=;>Op-SDDPYokC3R_w-_ZnQ7-JrktNT{ahy}amRDGC{)Kb4V7qH z^mMBm0?}XC1;=7J*lmr+HyC940~Q0@H~E!X8k!GQ?jYOzk+j#lR zqP2Tx3n9BeKJT|^N7!fwMsaHyWD~hs*4c*WjKPZo7u?66!zgX-y@y%TZ*+;gZsS3^ zBFsK5#TNTmED<2U>0OePPpvGoG2D~!lq;4Xk16QAYgp@MubsJ^Z;ZFmRNxR^AN~CP z#Ke00EI|j3*7-tCf!@y=E4;Tg)eC+lKK~cE(fmNCwmfvkOn#tY+p&r^ z(frluD#PQXnbNA~0&dEW2HnUz_Q0!9Osj5C)ii_40fyC;umt(qm(3KEk7Y)bdO|l_ zP#^)zYf{sl9=-7Dp3{c9zF!^H5p{4;^1MHFqMy~m^AFUZ^+Zt0z7}p-3 zw7}>5P`-t!xCMy?QK$I?%Z~_|3!ebLOAIn=^SKHJ<}Dm_C@5TQvkP9R``wlj9);yAvA&Y@-f>}SoEFJ;N+33s z7mapaqB zDRB+;1w)jVjy5`@IMc|P3TrzBj)95a9lwv}Ni*L$%LAheO2VP@i$TOgE#GhF~5&O)>Ac;lh3iM9uC)% zTYSxex6(B3J*qZ_toMG?q&%u&b0g?Z+<96h`%Jgq^BTyV^T=<(yJ+JB^r{3!>9u>B zR}N`eAf|)P+=f>uyrs>v=pvfz01fpH# zg+QbI=fb_+0xc)Bs1LLzisR45jn)CzHlu93uhD1fnI1*grX=&cynglypS9LV?suaF zhzt>Z{;e@<q{~Rsv+|8!nY)k{;@g+B-ojwaR5j`6y>y3jdlR&?A<9yjg-VR< zG*ac>Igkmh+zy=)QBA8wHNvb~BG+-4sAa5gD1+{JW5K4{*;~sPi+ICIHr?1A71k8G z`@3JsATNV*^{ZS~QFtWE0+!HLsl6~Q1?+7}Wd}s&r#uFgF{xD{xh1b^6GJ9>3#A3A zw@NgD7UDh0IqGSEx_T-rXe)zJKS$|bns(EoTNJd4ehf7RCG$isN>?#h-ox;c?12dG|cCSX6X`^4X_j4z-1+xXyuS=#c{jj%fT^oQ4Z$=}X6EDdW=k`ruIg;u5P^sLWd1aO~#{Th*Zk+M$U_h43AYt&*B5 zPhBwJ`S){SP!efpSY)@_YC1ym0n}gL^xV$oq0dz~90I~sfvr52I6Fiqu5p~Aek0tm zgKPDgWj?LYV!t0{8C?~zwbZ_(I%M95hJaF0I6m07!7Rj!n!dv5_7|=o=Ty+ncdtkK zgt&Arjc(b;3>m(S)~qy_V(GOo_LvG%=8}O;Ez;2{nWu*8Wu&PYrRNXdXWmgd`|>8s zW|K}LJ11idi_YT|Apeji3L3jtjj zy4xPW^0+ZocCB<;OBIP7WvU|Y$QA}7dL=|bSHD{2o9>BMD|o z1|AdGv>#P~`KU_m%@zcX&BYrtgNhFFWOtS|$sEaidcrTwO7UBhv{R2BU-tSTP3+h? zS|yo7W8X+0V(9n{9MG9ln8CBRSbH25a&({D%zO;r05fq?#GY({eotn+(K!fiissFu zZf?+G@c_wUV!d`{rf9J*-2A{IL@74Kh4 z9%!7i5!;*!Vd>&!hs~b*5cgQ3xnT7Q+s!9;xXL#`#Fj!5cB(9mJ&C=e17f|Qor`jW zJWQ!cf+@Cq>u-M>>tBj!KOK#>m$xY}DU=Y8_~ zVCi9O_Jfa{*~u>|yjDwFKgvV)zYxbwq`tnfijcNEyw!937kUQdCtu$C_ZZ%6Y2s`{ zc2o~c$1v9L{WD|S^!HI4+o7VAS>;{~C&NkF#7&B?n}5Ha^23by9sU^by5T_BmwnW9 zj}nZX%~vl8{)(LutF79Fe~g_KjQYEnf;*zbf$xlQRWL&Si$6B;@2SD0kRfm=bvbE; zoX{7))D{2k8BOl}`+(PV*)K_(z`$Hx;qsKL(=T~W@bF8Cf6JrpRIfS7(T{h)0h#3G z5Wmu_CoaqX@431gEwXF96ek(enmUM8q@cr<*_?lWAm(>uOKgr38?C8DSAqhGlT5l4 zhhqb^p%bFNsu2GoQ^(c8$sWB-yz~dT`lSygw8Sy*^!4Ol#rR*o;23dWQTn#ZsXzIK z-;eq?HUdr$#=Oopw$gR#e+yaU9B|bpkANB-`OyFKYqozW5&u}?6&woJg0Ma_B#Vvkgcy%ZH@e=O5XH|7T*9!3nsK z{xfCNgV@*xl=C*lw<;vY%Vgn0YtD*U+N z;eTYvO)FY7LF1Ap(9)?Y2~l6d*(GmEUw z-(T_1Kf^x<%ve+E@Lj3D+}xiZ{i_9rsXoXv zgdeJXV>=pBR3R0Ocif<rhe z+#|eudz<*74;^oYZsFeVXZcYFC?$P&ekNw51sL#346z>CIlD>9cQ)wf!AjSfY%>xvqz=LYf|OY$`2820ulV%tGJvlLAsyb z{Bd_4NPY$XA90rPC2(O)98}bE5SMEb^a5KQyCbI~KSVad-LFaD@9}VGbsrWa_3oY0 zlgd7`|G6?j5X{f5R)dKMo(@eKYQfP09p=1PdYe2ZEu8lmy1WB5X0bNo;<<7QWG?IM(2RB7W#X@^=|`FC^pw?xU`ezf*#e4?ofoprZjH$`CExz&EjoMTL=xN z|FJB(L=E2!WUo(}evLy*nS9`eG@4TSMy`-LCE;3dunm?cIH>H2y7J4MO67ex+B_)G zi_xX_JB0ld078dPhWy_lOb6&vl1*G8GR3C9`xQ}bq`d)CG3|&@g}7vFbxK@L^_iC6 zm_bdP)yqu36^qcnlKvz}|55gtk=!6({UZ<_`hc?L(6tYVUSG4{wy7IE&KZ0dcQrI& z`(T;%m4rkL9{*L-Y(6cXT2|p-zU%KB&cx9I%tT<_4<~okxXBChAN=hYcoWP`{x+!W zgx}&PH^bAAgT20unUIEaY7n%?<>OjZOZ_Aew3u{|k}SFnIZQ3*ahk6~g53{SU)-XphO<3$tSvwW)X8_^Z^6>9L1IWfHu;9~4|jHaNURH0uYaZf zIK-Moylza50+nkC;hnV--$wKE z@W46q(*d(k*Uf(YMbQ|wMR1H*!}30fju)`%OkaFETt8P(&BhyQ>y}D){?Y-#(s@;X z5p-6m_yys76=AAkF^Bw@z`4~hyL>Clg&5Jv>LLs%I81v{lqGm1-Nk6(0pLDGe@ z9Zu_VnbZq&?-SQp^=iD=VY}k>Avn%;(rXg4HYH6mbJe7trRr2d8Ue(YhxNr|wWF%# zS(66_DE7tRei+ei8KVHEk1i%9E=`3*tX3yjwyOELT=d)jR9|rkIx=*I`|v=tY{kht zm%l~3S+8EWVLN#3SlHmT;HNh4USBiRvVA+~(O3HX!dQ+0U1?SW>RmQ?0a@7Im(orl zh)c)XlNn)$XOc_9>3(JhpZJC;h={%gGXH#`mL9ctuNYHX)$t)K#)`RVkZCrzw!pL|^!%7lQ10yq~l( zD4MSvf!M)=bF%fjwU4auqDX+~1VGfB9UxlE znvi@#55?|SZ_M<@ZOhIL+feOli+A4#2YY(~9Ya*sKMc2?(DVF6il?^3USI3?3!Gql3jcCA0}%)nzAJzXmj zS*Wvf?aWsE#CiGE@pJ6d=C`>k-{SmScJDprv24l4+^Rz-8eBdgRG3w*elMgpp9JjAdcyv0csXc3nn7cL7ptoRb}xBDO` zg}4~AjJiLr&R2aj=);H!BN-75UK=vggC`$)8U!Q+=mTR91cEU7v)NS-Rxn5?gD^Dy%`|)Fvw8;yqficX=mi+1ODv|MB z$@`6vd&RLn!y*6mxzklh2B`moA_OZOtsFSd~}sChNk5KZqB2J0G=q!Tw(Q z<(1Y%53i}Sz_}7QQ~j1Vvhtu67u81Di;tJ<^5ifw=2`eIrz7<9IK;2!-{{}dm-_C5Q}!H)IOAQqMy2K$_#``<*3)+2hqnP!L`@bUE|ZmY?Kn@znIG$= zS;6-{XAD3$tPKzD?<`fVhuSU=P%vO247F8u1v(mb_z6uvl{cln2pZS3O%vG^B;1#Q zq84JM2S*OOcwPk3QXBMQ5vcNZ|Daf*^g+d7W9rp3JGG^_9*XQitM%iiHW19^#g84) zvn1=8^WSdvf>?t!36)ysIPk(JR`7?`MO04edIBA=YBjmIvU;dSBFYcgj6*#t|9TYK z?~r@)Rbq;6@)$7JU;*6`nhWp?RB8uoW>X6STVVlSBJI#?9XKg9(!%12O}6N6xPWs{yZ0iN za!oACafhr2%@S!-kk}(~LLM?9_ zH{HZ}VWTphBIJ$pWA27@ovzP>K7NcA`Vb5VR!5pu&>{ay;t#1t_!qo6vbZU|Z(2VI zE)dTHkWA_wwP-jzcikO$i?wvGhn#bM#dbW#cxc|Rw8Z(!iUEzuy6xkpazOIr#W(+i zquz>dwx=ffjrhW)LG0mim&A)D@4s)h>G#b7;p}@&=A7dfKMy8uISbihI)wn@4q^at zQzGJI{|9l*5!FJ>k?JMj4}q_VCcf(@?D;Y_BqHcZP|y?IC%RkXyPqSOpRlvw?-yQI zuMbwg_b$y#GQHrsIv(W-OWPhzEQd=jYSNq;Fq64)N4$ZsP>^01u8&T)L*Q)lMc8f% z3+tTUqh6ZowK14^xmxn#_5N@*S=x0IrEzyLw}r za>kRROto$o&c@q~o+T2ZX0dzT88Cs;G9h)8 z{F*GF^vCO@PE;V{uYGvEx92A|h{d_{;YMs+~v1H$$^K!Tg`M)@!Yyg9sqp5 zvD8yOU7+)Gbeg|8f_Or_fy;JleHDh&i|s;jS6<51|d zp2Ta4TI5Uv1m@fqJ$yu}d&K%p6^mGJGjGzR?)?r2BxuKdK-TNX=W(P|W~RStA#=HO z-`s8M&WJ#%yW`z@OEm;*x>*vZb-Abz3v97<)vjZGBs$2)3kaXZH<~nTS%b5B-^j=zEucc+;=2nJ~J!)YxM+K z**0E!Q^7%iomKir1))dUs0wL-YW1vl+^3s&J18=%XZhsqe~Y}}CD;?&_IHR2G0M!$ zT|=9dv4L@#u_kO)FQZRh{E_KfT`V>r3JXN@t&(DsVg!n8( zMMj@bK0w$E^T4IoCPASUkJQ@s`rk`gw_k$TmKF1Y`#(dQzUN|t&*Yz&iw!C}1_r~K zMYy!Ci0xLjim~-G)= zt&W{#k7YI%mn~*Z9~l`LKJ6F|7$G&n`bOA!17dPzb*cmz>89jjXvqMX0yOwTx^-By zT}RiBU#cW$%ETtkg9*RqRGxla*;*wp}tHf{k6 zdy8CXj8>e4jE`m|y432`F%COmX(H(7*QM7_g@cg71YGZfyJHplQ<8nCEqQ*nzB(iW zq+k~5J@Zj5n}#FTH)m|e)~)hDD*gTVg?FDsNe`3Yftg@qS5VcIsDwc*!OC0ACUFQ` zMuW|vrOo4a_da(7yxoRhpXk)i64K!8XWm zb#Z>LdN=ie3RbYpcsI=jDs-BrYjkSZM%rATkmL8aG74V^QR@UFGjzUQ91 z-+k`>w!Ziy&dkhbJmvq?F=ma|w88Gf%0qeN@2t&hU%T8FlbXdN_1kp>YS;rcKP-ZS zIS9k_s909U`&fWAN@DC)N;amh%NRv0bZ`6F%hiM5KMLwvB1%z3I}T4sMYI067@>B) z&3BJ77*%ax;>QS6F}qi9F@3wPF%(aL$mm$d2nh`@R@lZEI8iv*s~>f5*lJS4*r~~MI(dbd&&RO{ zZ@|KXhrjFyi1-2Y2tJCP%SZn>U^GRwpGfoO1_XR@mmL)+x8@SO2YCKMz5v~OhiTMj z82wtdNIbKl`^g2m?^*U)-+h78uQ$AL0aI51rUTN<1&{r-_qQ3-7+4bAlyB}#fTDnM zd8&IQPu`Jm>4$Sms?XAu;n@cFvkfluuIf;q5zQsD^2mzQIvRFYN~=08=6{6WXLe*!FYa0obLVf-QeiIjAQ$q8}I7qsCX`fjKGd5^VRe4r>= zpgtGo%6$iAOHEqUH7~}%T$|)Cc0|EaNTm`9g=1UPcbdi;!ceNp9P_v$2V?8I|K9g~LzYS6=G*{fm(g-vv4+1~(+SxpQq zrDgsIFs3opG@%sSYG_y2J+vG#RisBoYV&!naq{D@Ujt!sqZ&BZic+C|h+Xn~E{T=734K_m8cb6IkeN%HaGTMV$U ziw1jbywH;7k0SQf`N@;VUdCMn)uX1EjrQ$(18UA?PwM!z4Z^c~9$sWkFmi#Uk@-*T zhshR@ZVr4sg)ujsTX(X5Q_Fs{QM%;;h3egpS^*7d-*u3ehPkrx6_!RzirO!G?HqN4 zg!?EvMD~U=eeEi+$Lq0*bCP<{Zj=)Gd|7nlnNtm-rT*pcbDbK^5qk$qhnAR1evJ_F zii$OJ3U~eU-wv7FVKDu&6)=+|1Y*DT#^q_P)j07P(Es! zGwh59mD3=O^u)%IV))Y!ehBBmJ4 zl)%JFgg*|{B5VJo+03#pS=ANIJmSH|n9s2>=KX83&SeI)-#1|7w2RBaAX=jxUuZR^-a zDn(?%pKR_7BR)s?I4o~b8tx-L#T01uc?>B%Q`}jqdp3P(?Dvv%X>r|p`AaMi^$qPz zu$YLGkcQYbCcXSCtK0^xn3@t5dbQ=r>--lzD|5pxon4QPJmYpc0#Q~a zDD5B-4oso&2GI3il@+#w?w}^v9pZc9Y5uqlB{DJQ_0q)qEhbh!2V(U`@U64{u8+IG zx7hdGrkYp* zwD8p%?35pRNI}x-7uXbE$f3aECp%-DK+(&6YD+3gz7V~K(*N#b9jP(4Ti3Y)q_+Gc zMw4z$tXNuc0MoZ=HU`Dh(O<?|{BUKh99$MYZ~`fa<|JuKW52cH+>~Yns!JknC0ww z4|;7XAFb9L>ewTF^zMc%d&LHOR(IAF>ehIW7b$YRaxU(-;mg}D6^Z+)Y=4(853*Sm z;Uhh277QR7dpNcvwfFcOzS#8|X;9b{1zxT%uxg@sc9T}>lYqBc#~Payr-oVeld&gI zj}?{WtiG<*NxBQAg1YwfbSx_(y_j&1NC2qHjmIrS9(Sz^(EjYnRTEObOKw$s1A%~i zimk>ZQ*2WCWlRkv@sl|Nlb!VAMV__p)ljxrQ@XJ}`O6>cmJ^1nXD$>E41oiIZWRfi zm=)}KRB109B8}Ugx>hbzdQj_6qCSHPtlN4=52*ET_(1MDO-aKJHR} zA(sbGxXkGb79c9;f`f=RH@&j9Wn57&uc9w%?;pI`lE!#OD|QFEM8r3ku9B~EZ~+j- zCm;%c&Jjj_QWli;V#i?_WI0~eR??t8-A zk4rX#WB0v|vE>9zCTgIA@sj)c-U|x`O4-_~3+5~!(%9vpCe0M=NpMfjGN8>~H|Bzt zG4tB!G3F8n+C&F!EGcf&Xxl&zETlz5E=LEjP)C2L$5cn(|IQx1@NB7|cNg&vL}a`B zSwq$yoerVzLvtyQC-ZDmY^L_9W%p#czX8;|J0-re7Ltdy^oaE&^InfckD}ij3}#n! zg7h_KvCg9?bYNv=XZ6`Yh5aR2MNHk@L?08o+=&5PGxDrsziXdVK8Y3>+kP1;p8~oS z)A_?uUUZre{sG61mAN;+6Ot}L(wo}?1FA#)*}#40L5Tcvq5!=pPIQINImvIko|b^m z?a!xmsZ>7UdMHWMCsVWQ#cJ<&KrvSdm?763Cik?}bzp|1X@Ft?<5G+dSMJGy`YOA9 zg~~EC{;|?w%P*eQ$g-WF-z2|OtlwZx*nz+nb3CT!=SVCC|RCJhK>?UJ9Eubn?~~ zFqiBfyPs`+fe4&*Zx(aKurTjYdH%JcHe(0dKN()T$?xu&4#X_d%H2C8%tqJ9Di0h; zlaXF+TdykJ$K#7MK}`@>ZY$R zX1erA;zKK8QoQM_a&=Qj>uHm^D0If;f$!E@(`3!Z%S9-}$#q{*&KGC!NZv-D0gDfM zk9reY(M1q{GVHUDemmv@UvPQ+#OuN4O|gaP-~hXiEd>5{tl7U1L>me)zLWPKY_so% zQ!&Ml=)+qz<{gG0X(N(1M=iA?kV2a(hj6wQ^+iN6{x-h6sWH}h36MMAAC0Y|@*ytQTLu!&) zz{z>c8Zobc)Hq(qeK@n7jBk-ZFhHtcSoA%5xu|V_KOx@*L1EL?o;Tm!c7>-lwPH!Y zdHZ$k&ZuMeR%n;3{HOA2z6(M;PU}J?ehL!{Zib{wt2BbQo4(a^zL0x`H*i3A-DqH# zTwS3qtjNyjhZ71Rb<)XGJ@U-9_siZ7li+Ps{3LHvz^B9JfUCJ0 zK$HPjx4lV39?IW4B*;cji*ws)yMUjB*yW%VQm>O^i4GwoA=SVByy}`HnKP}As%UuPzcZAMiE;vn^Gl@rYg>nHu_k(Apnc)6e%eez3lH=fV9F!i;ixx3QkKDdE3 zQ=q!>cmp0(Z^4=WO*d{o77J_3D@u+qG?VBZq~&GL95jv&$rF!A4d?&fTrTWYBP+m` z5?N|{r1{&vK%n*870!}+fn`p|mEkdoux(pW}JU>V^T4;bM}t24$ZI`jTh1GhaR zU0>S83p2eV$w6zp48;B{lI!nJp5Q6YS-bcg)+EZOc`v{FIXUK5n~JKKo)>hS7Q3JG)=WM zm^dYhhJZA~&bI*53jw8fHDiJrnZfc}9tjRJ5bPMgaBmpmYTT#IRtF+Kf0bN0)f=#A zKjgg0Te(!QddwOzyrua=0F?IGjjh^+=NzQRm4ZleqAEEp&zkzCfFM2iLJTQsj$9b& zdNyh)ksKZOF^r0+YK%n;YFR^=Q!igQjofpnAzwryjbj&K8B$bLNM!XaFTh+XYMdzx zLcn85&%<2-7-3c?gVAeh%%4E6=0L7{79AI{Sj{07 z2$1|mPub`up44pAd$IN8}f2*kx!VVhhC z!oFD=Z{R{EbW)n+KkivQhNL7N*->;Cm@sNByTS?8yVnuVfFbPOK45dd_}t2MtcQ(ZWT5~{fwBc`Jyh(|O5^Ci*cuREccwMql{#~)3-xyjQn$^xHTjBZo+JwsO3?EwKSk|Y@)wB=KS z94IV(-YCG95cC{Eh@}_E;}I7s9aI0l&*@NT#s|bEsIvd=xfhQmg&qn>N&ReTc={+> zfc=lKqT>Mb(gO!=>=rvTI6{`BTTXcvc@5ljc>N(YmVWG=egNhObs6Kd8Wt)!laf3> zL~8K?!ysPNLNZaj_CcWY_`}FZ>jb1sKHdJPLhL=@I-KG%#J*WWN;7f~Nk!uVVh@ql zWtNN@%BnrPc?b+f*c`8lm53*9#;d)>6boU!2&T(N7TSfBO|fmVfwU#Bvdcs4U&vTiE{7HYSAqzfKnkY_aXFT zj%g4!x;{kSm|ZO70$!h&|JDhYYBiDD=GdBi^%Rnda>PMFMN@UFhdl@O(h6sI79e57coNTy$z^*95w0ZDnsjrdhI-FniO#NQz}vbCJAL|3;t9u zuxdZ3+Dhb8Ek#zUIgW?+iXtRXH_y(!?;o8Q*| z@*fI-ndhfl&2TdA0VdnMjx!)IVXFluY~PM3;PfsV&5DmRA9Y|_U}QH=8q0I+5=qW+ zKpE8a?|s=-3SNSiarJiG*N$gDO1Z(2;qbI!?4TNDm=rL%U%g^CrBRK)Xa=LCUn}-a zyTNQJe%&TpE_|6Gg9|44G%CSNa~Y;U87*IOpR+#)ezNnm8}2-_N$C0xCw!VXPK+C- z6sviSm2f$ba1NWhD=SvQuK`l&iVUyt;Y<#=<}BBRk!LuQqXQ<_d#^MPw+5X50QnIe z%bfR7`ZW8P2221t6YS@R2iTfn@Cd~;sJaleVmI-F?S=aD7HZOX0l8`uWUxBkr(!m5c`1?;Bb*i9&H=zKGg6)Sm%7vKDY}AmAjMdaos4B?RZo7<(R9pDTQ8N8_m2qE3 zzTyIsjBF%j`W~{%JowF4zz#y%yy@F3J2>y6q$RhoJm;VpulrWmt*r%3gS4->NP;H& z6L6N3(=9)6T1vwSoV)e|7M$>xfU7S;?-p<4xEBDz8ilAhA}kX4x?|k3w71=VFsvNB zfB?1GGV=awlE>lBqi7{bZ+I(VfSy6NJp+r9Y2GsHgqx5LhLimZ?3XvY9`7csI_*w65(R}XIp!9$v$3*5> zRm}by7co9bj~i@&B^%vUYLO1_3RMhI;6Bg=NU+4mAUfl3BA!toNt*Mt=WXap+|N*| z?QE-rF1e7PJ)^0-CK(5ogVOr3BRhO~_epsOWGrMMt^3VQSHDy(#uoB+taW5(0aBBv zn+;A$RRp9ezIl8~>fgACC6yCHssT{f6E#UvrC?z^n9VnDCP)&e(5IXi$o-2-8=ng( zA3vGA{y8P6Z7-W$y`P5p#R0&{@!P=pm|GczPBR zO}z01_6!cUzXN5j^->s3MBKgsCw%VQ!a+|b#1^RDV_k_vYOttgFxkWwFb#h^3$3AI zqkFBmBhB3_?34LFN@4Rg$+cHy2&fIKS~bz49CCkYjnmR+2vKvO2Y;mCDu#O9w)i~l z;+QHg6}f1{Ppu|b3Y}XvBI<@5{nl_7t`fGOj<>Gy+zgf_7(DSdkcW;HgY&u=RsK?l zJfIMTTrIArW+nj4?9&6aQ#0cOX13f~JaKAfz_6MM;;`=PjBho-vt>y~J8>MEfUn3A z0yE>2W86-kp77yK+VKhxB_m}kvt6`wrqn@L5d;m~)`p^{Mv*%^Z1lfhDZqBDhg9Lj zo)Kd@5J>c4FDci=6<#T5h7|osp<;zCGWkc@Wf1v&yZ!}dXiLDc7o9Md5aY<901!$| z_uKoF*1vHP19O=mIp7QFGtpX7YH{sT&4x2UMD1DWs%;fuHf-J;z<=pAX4OO@lSLww zmErJCD@O$Z63c3uMH)H)f1xC&K{F;>Rb|!RA;l?W8Hn<@@Nj?sx1zj#rIsR(qyVaT z2YE^841!Xpy{zE?os&4QDh4epburXKa7+yIT!Uu#!zwJa2DH}Mr5o007>IooGkSZZ z(rYMPT*xue@>^WAdz$`tgs(B`Vl_qGZq-& z%nB!dKF|=f$`Tb2Ffc>ufiUEONOdnj(o`M^SbFEj&yI?Dw*ol+5&zCTi= zN|Z@g`*erLrc=Y~nPF9IlK<-=vgsm;J3Sg0>1hT=lnf5~98i-CNb{aZeq zf(0k*1t_Pb z3A{FuP+D5@0cRBg9qPHYCZ2KK0w%X_o&^Co^hN431j57%stE%$BWO(3Ae0FQfLfZs zf~8wR3QjHfC1BOdbN#1z$KSY!wO~bz1?K}>8EfE6>iPh;R!MJ`zd)dKWf@csCa1Jb z16VeW#2dJ!q)g~KLB>1bt4vC|7$c`@nEE>@03+<|Q(?1Ugnje5og_}!zCgTkyxa;n zVgC&s#R~W;5U`zgdF`oyg(L~LmpKQ*3kvM_eijrh!?ghd%HF!e0};(!V;j&ieL2t# z3N7{D%6Up;mlp@^LxK#hZ&oh;kJFdT#71lnhfj=%bq173k}W3Q&Pwa-JlObE0E$DR zoR3B97F3iF&VO253Hz!pZq_(3W_%cIV4xsfOr^oZ^u(u5Ee&vsl zFpL02&VrlJrc~n*4`Iq*)~;10@M*4wdo&d-OuQIsci@88~=Q{|J&kKjK(ZoJbo%Fe1T# zGuQuIMA=TZz>570IM?7`>Mj_F`3yo9zZ^34IQQOSd*J$yWlRGO*I;~5=aYKRKRe=j zPdFyn;K6=(-?apJ4cIT)?rOlk!C*;VVekXplPVEsp7+oUJ-ML2@AHJXYL6lvB7Q8XHG-a8W+) zzR8ccxJL+D4Ai7mJ;<7Z7Yvc7h+z)k#H%IrstQ(Q93Yiq=lkZ2TgQMQ@XJ%h7VS8{ zOaiLf!D`ppa2CD|J`Ewj_BNb1!2o_AsQN@}@Nohj$|5y9@~%Kqorc$ zw26`M^S}UC7L}PM;$zQo)khB>D(|4Cu7TH>(QgZzpQ>6kP_^8k#3UsQO>sIv!ckN= zYeFy*7Sso(lEdQQdJbbM_tZd5M_2OCiWt^b^e{y>o5~ST&&N183`xg8-Ewch0FaoR z$PxQWt{#9=lmk;*A(cW!d(Yh5!>4fG*Pv}!&UFOxyh6F$>&R6q5k;P~)p(v+e}5k} zDmKZClbokWvx|RG_a0EkqLSo=1>iU_KwVkLje|E>>Ouf@k6B%I&SR+?#Z*qkey?1^ zQYV6`M?4!CvHmA@teB*Tl|?EAG$OlV6w|9$c1;6Ty2WT1rm}ntFARjQCY|4#*{M+5 zUO0m!MQ5MnP1QAqy(Y?eJdm`McONwr4q+ncqmQ@BdAx!^G~8zX)}Lp!(6%-3@F=Mn zGUEO-tgXJOdqD%{3BkgN;5LSPvIJ+a?DYps!XF;SWMW37~YxTjVT8i-T27joyp^Mx3Uu>G+!*fu3QYW@B) zPF%d87-b&B*^ZOly;>mKX=xd|Q+=}nHHUUB%kwxL!9YnQ1h|Rs&&J&iXX^4ebCVwP zaby^bGBR&elPn$p>Li5tFW|Ib0|;W)s051Re6v0%dKGdtx#F0j1u&!j=B=0j9N<<0 zF}1i@4h!JE{2f%dW3AgF{?aHAH(ddbT}m6Py0US6a@FyqW>Ek(k;Wk_l2J{`=B+(* zS&~#=`X)a+?$J8n(V2oJG^dXS-3QqpO-;?GkA4jv&7gb^2VRYLfDdhPe?EKz_hmIu zeU1In3j61ym%yVRi8pHmddnQMg@+wSzbtdACUIGb8KzPIgY>AIM1n&YAZfWepk}K(&+Y5DHrDjRS5b*iwOA>1 zF8mG*bmmDrdGzU1=r-=L|3B-NC>=OoiOGMko@Zn7$?Ne04Ob?J%kt-WC7JE4?H@|o zWlSb*k~mnDyNBsK@Va+kA>f6aG^T9A%u{iiwrhir?-#CPG2jf|Hb^0cEZz;DCj81k z#9`?zwf|IVQINir8RGvKq1}6Qd#34H!qtVc)tI<7*eZT^`wqR28cRqJ6=@a9qr57g z39Djf34*|nV*9cfs~{P`^tDRQS~%gzV}=2hBVZ}TUgOXb29oV0dfSP`R=Im5fOMKi z9XJKV2ti8)V3LQl4WjT(E&AkTb{^wPQj(k#6zg-1HEG9O9uS+t_--f$r`27&`QtQr z|8M6U1i;qt)8Z&j*8$Y55U5%6{h5kMMz?wPS9V@gK>?B_@X2noI1t7a}gsS2v|KV%GEZZ zE3}pPB&AiQfhRFUv%Q7-u#8p4^G>k8-h3+WYggM_cc@QSuXhPNUM*%82e5*mhj_4l zp1k6e8@WLD^xI1Ao`R1G&;%Ka&oQT}0NiXnpHU1>Z85U{7!01jLnDhAM3}{D9Mre^ z%c=`LVr>bw$Ca~F{{RT#A3B8d{D14?ziGkw-2cqFfAi(v zeEEmL{ueCj-}>@zeE|(?-al=wCiQOCx9Sm3Zq;wBd%5}8syK|-UlT_?X-i6~utSWx zzhYZ_smOK|xj#BYBhf?S=6Uk=CSu`*=Uk7s+tN=NiJhMN64gE_9WqbvP>H1bnKaG( zGe-J9{}l-ZUOYlM(hFB<{12GsTTEA3*B_1=ABnhD@1uD%A(194xp@5P>mrT<~! z|2xz5T?8Sni0O3aR`&V|J_)Dn~d!KmgCmcfR&0GdjS%#Ksk-7gOZEHqm+*}c@fXVO$GWqs3Lhn_k2 z&p6}%=;c=mfJ3j_wqE^zNLkC`EaSA>rkTkxT70cd)@?a?{K=>3Kbn2lL2J`-!uRft zR!{K>pNJmhmxbZSo!uX#kSC?&)R)ki3NTf)~r>fu!t5 z{Kh3^PmRq?WVz>yOe1>A%VN&WY}qb5t{jTy*!3$9TdXKIS{Pt5CpFL#+OGdP{l?v# zllu)OlKKvUL|s(-&Ez}haABN<08rTu;+LJc^a~@oR;EYg238hL4L%xk8Xan=oG({h zE*49^xiMWoIs0krE53%LL%HRk$=>)lY56Xsex;(#ZuhW2->CYzf?1U__ah%g<38gF zniLxc2Zu1t+>0&tEDv_$2+tCHF#dT|5PDemWGZsXbGhEG;x@FE&?kZe$;9$noujqk z+Tytx#JPwYT9z;L;c!B~!<5KW+gr*#2=_-@1fE&5x+P==GbumB}sV zO)v$W0o8k~OTCqD5|M63<2QJU-hOmj{D`<^z@*VmC~++4&BsB;R5g4;XSq4Qccy0TDP>i>7ltCvbS}Z5 zJe@{g{fnNC8AnVzSzFysD5-pQyUUr-XN&Q1x4^Br(ZtOX$GwPmBvj;8^k#|~wuzgr zh2_;8S(>@q#P6W}#u0)2)|X=Wo+jb9WV8}YSKd~tNWsnk&{low5BJ%fi#dEURmGFC z0=>`HprF;_N}@9rNd@zU^Rh8-G%0|>Y`SavxeIhc@(_AvN7H}^lq$HyVDob7HvFiT zo;WyJ^0}P%FI`z)pWor^NH6X8%G2${?t>IRZd8SSuK3zbj-R4pAk53p2>N5^D!mRW zJi*(KBASA!mzP+4Tyz>TD>$pJ#B)m*Ii~(hh+w=su8>8yBwM+!QpV13)Q?s<}#P&yRz?v zzpQaQxe*k=Jtp85cE$e57jqursdqZ^EA5VLK3tvBC!=rB`D!;l7=7KvR9z5u%@*z1 z=!t2;5z)NS_f$1DUPh95m`MXx_9Kk^^nv`obK&8PCLrL(=@cKv>Dq812`tCC#WP24 za<_!OYTd8SFDi)tqY(&Zb7}8YLBJ zxk2pAZ$jBW!uO<)O9p=@ZZ@mxUTshC8(pOr*twUe_bDfj=}GIY*sj)BqpXW|ykLI5 zv@uq8Jlx#vsQ&O*9a~*IH$_IhdP^#l)$)s!D!g@>H$!u06=doMojSKawjSC^l2)a3 zBA6I98nP5%+`I!HC;U0J*#buU9<9KkQhkr0rh$5hw2>y2nb_px_Z$Af?6L5r9;27k zTe*8u=Xr*n4WD!Qz5dwE-gIWLz3$h#P4kOP&KHdi~pV_dUdB(RYGE2Jklwv-1jrynI^_Yhd2qv8v89bkF)W!Od)$R z#;T5Vrx91{e}^KTu|8IFI@Wj7XA?IpY_)A~BYa+sZ#vRWCOe+{{95*Fs~{AuZVWa< zd=?QaUx!vf^w}Cjt89pj>T7f5-FX;2-Br?pOHi*To51Q)KDc+=4y+$uvCPBPzg!K$ z4)ZnlQn7!;qrMQr-_(W!ht(F{5)#)FdrPtgBL?#>2w4|#Z6$Sb86Aj4 zWbSQ|(z;2#tEJ7!Y9(FCzBllWoNn=BSlkQEDGk_UiIczFRU^|0WL3V`dB?Z=-4(=R z3}LFiKMgJ&bin|o&=FKfa{8bX6E~Kp#v)cjU!7E*3EQg@hi2d_Xjgk6N$K`B6AmKp zA<3C8i^}rONRq^lmBL^)7g)lpy9r(l$R2?znPoL`4(PN{<)EY;dc;D)iBp0q<%1USRUcSsWrsrtikD9rnN!@hePC;KuJ@RakR>9cVbhAN8#|PWfD) z-XG1o;yB`w()IS^lAwsSqz}5bWi~W;MPSM+49Pc1p8Fsk5-ialg=xS?JK-@Y*JVw{ zKE0#qUf0c;o33n7+(8!m=|4tB zmSnqZkLC<5r*)L!S=6TS;LWCk&w0u^is17)C-tK1gSH8`jdXKTYLPvC&*G)>)>2}> zZO+fUy<0XByiZ{Mpy)bT%gQ&g_4{93>iYW4`wZNCL`K&q&#`CrV z0)Hd5=*~G#1ogFR`EokhJfq`ultKms-c?)4-#p~?`JDnRUK<628a4I2n6#5N z*f8{-ZM9zuB^;QW9S$y+{jyqP0c{amkvkqGIiNX_gRWJch?EsHzzt9afr?KqbJWg< zaUZlf++#V^$bF`ekoknhoK0}=U3ZOfD*9JSg0N^vLWc&+H$&!?gyurwc)|ESdv(t@ zW-%t8Or9#F<9EMgb%(exHt}WO!R)2N#&?2u8p)?9+{#BMNJ$wN?#%eK7IQl4n2L#h zitNd?>*%~>8j1HsOm!%;7redGpq-*OUvlrmPs6-RSEZ(s?fR2F<1#c}JhKe^=Kexu zV_X08jlX6At_j|)DNn{r{F*`XHt>a{JsLgrq}|8O>z2&Ojuc)_=cWS8Xu?l@p@qOt zJvMEoCUIzDGCY)uq)GsGtopT1*4l;kJ0+$QpF!%Sw^Y1pi>hl8 zL%H&WMw?Nkzv?V#j?-4*(}rDhW0Ch(zu+Z{M^|+owUoVM<9G6CAK{GglXJs6(%=+g zY*^0wibQ(L^tOR5Yz8Ad(5>?2p=l(T+ypP{)FloaXfXDs%#Ku$Cd#pDrf&aL)Tx}K z;_l*5=T^=!S@>rj98KW!iWuhDw_KZ_U(3&=k<1ux9<`a(SDb{@pR9bU)Ac>w?yl5y zT?=wZw0U9@RTr|p1{Gm*U6U9SM9FV^)X%S78NQwU8ts>R=V2>5#b0J$8K{jqsK%($ z(wUqIr%XN@OU8EAHSIT5m~tk&zx;a;yoPnR8MzdPh1fcBdrLhOH=o*MaiO?KI!u5? z0ZeI6@0;Apcubc^10JpqvU}{eoc{>xlN4j8OE4)7$6bzN zIXTPWyv8*RI4`NNs7K+uC6t3u(j>c)V3IEkU+XLcvMzaz()vflU|_$aquW(!joifE z*;|tr+}G9$BPHizW_HJot~-rUqg|gRM#$;x+&`B{;5p22EzjDs8ttZkP9r7Ctc0=Z z?#IpO>OO~$4QO<@*Z8He5f2~V?SPYSLYMI9Fa62$spJCg!K9=>lSu43yDaOBw}vEs zd{5Xx9sS;~R4B~={kgvWoNG*Cj&F_bLk2Im+6A+pd%c3;>qb6bVjpJV5EywGUmtS8w*i+x#{nkx*AU*ZnvrFPeHiK(zwHNi&+-K?! z{w>bCM;aC4%ax=TQa*b$GLXD|^Fs2~!tv225Oj_wOTF5>88M-M;zo?4Gv6?kEGHFS^%l%rc5zouS~+<>RCA3yOMfWQvg)CC zY1faXh<7rJW;|n$6R=^mrL6wt(uZ&Nhbs8UTZ&pQmlr%p9)nMzr8kDMZ2R4xz~Oa7 z^&IoF#<^EE9g-DAa)cH@6Z%h`ExlzxSyc3(KbE*&W z=q|{$2$`kA4mI*^dM|k`h5Nfdp%&O24|1P6c~T(I9i3fcCG)T(UkJpWRyI_|=eCpG zWj_>wAXIW8EcO7KXMccWMri!&oJ?j8P85lsta<*iuR`}Cl#=o-rsbdA;{^`CCyc4D zcPv9!aSqCwH2*m6W*F5vm~gF@pURyVhj0$*^RkgS_QxO8{nRoX1{+FNYQvJE7Cy7* z{$oP{K-AB8R?ev-;0%VPrH^bbztwjPYh^dD^l9@nREpYqDL9@g{5eT9pfDh z2WmExRsHdXsVVprQuo(0s^d~C7y&ozr_a%kio+w++SfX-0gZTiACQ{NSr=W75fE2c~9Ku z9Su*pu@S+4^H|rBW7Kec*nI+jJ0YR(oh)~YrRk5@A zFh~(wuusQZ^MjUdNJNYB=A9pG8s}%%yT+K%cQX!(bsC^%;UT()mKvt4Q18N$mB3de zg$d>#yP^-pdlAppBwkGnrRV){sRwgmw)zI*B{9wlg?F_+=Y8NWd>5NvujIt@HQ;q! zv5TnJ3LY!H&HV9N(8fh)$U8h9L|{FW-i$PZktEn`w7|Z{tO<4lcYaQrOhj{MqjS1^ z2M$tYzf|8eOkX3Sn5+><+KC}0tNH-*{-|Of+%+H96L$QXMHLS3jwN`Z9@i2S^xJB*OW{L-R<0BB z#A7_IHR$zkEv@nLR#)sG90Nk;g1!?TCibCVO49&}No ztP@<)p9h(FezExh4!WnRnR*|hX+=%P&+Pk}z+ID5=gLy+&Q8TR2q}t0`Jn?B1k}Wg z>daHdQ^YfqzfU}tRnaP4yoIcqQkt0#lZgQ5$LaAv80mCO105zkZzb;!=x)sPzGr+D zQZg*>(#P*H+|n@^IPEyAr_A(uyk~|t3}M=>R4uu@_3lOv*xnpFA~WF{JaM9}%>CR9 zY5#yZrFz~((`WYyL9#-M<^3oWh`ucatP9v}TdQqsF!ed!+a z*iWr+6FC|Y)JC&trWg)yB8tA~5vT#Cc-T*Osh%YuBYDoVV)^dph3eE9XjhNKfHTA} z0nx6TL}eDe3Cbc)u}<}l8bSqp(2R=oaz65`$U-^yrUb7qup^C^J;L)zyvr%9qCaPT zn2vpzpdg(^Ii(@TdXBw^Ud>dxENdWM{xRKm9(p<T+JEePs=n(K;?!y%*8{%JfF7Gp*2O_EY2{ zuVsCrAlR2@ll?J_oHYL6E;C$nxte4o6ir0iwZ2abU*222vjM%(Pp0n@!7xOI&tB4f(p$V~Q`g2#%_X9E^ zg86cebiGaSZ(1p~W->ev=c(JitPtZp+i#h)uzj8tnc<^n-3Wz7jTe5AJ)S2sukkiD z^IZR?2Z!IDKAxy{!Dw*S%mTe8MY~R~r~k60qmXxek)b0j5}!TgV1TRPA=Qdj6x-5W zNf{pN+wHZ`o|{h-_g$*;9t|IU8(obo)Y4l>*xroTUTe%Jt9*F%zCvNL%w_8#z0}=z zmZlq4uC7h*;tbwvz#^^YLt8$kI^Fz!?4hvam22z9RyDCf9)JWH08f$>{-i=Lst6nd zAu(80_R~A)_`cvoAsAdh1dbF2xTidt_pAps5i0mn-N}$q&Ab{!REX7QO6xeYvE*mfQVY(r2Ua_Txd{?EpX{{#BhlF~WCWY5$xxIDS=r z*05GzDq&EXZ~hGHpRd}-C!fLR0EjL6y{~PX-YF*^e?N$`? z44xb}hb0(hN98slPil;QRESur)cdOa)ih2)=jRQZKN8^xTWYu=mcnus_(&U~j2iq)X%Jykx^sQB zX@!E}@rp++UAI6;^4{MH+n{<|)%dMpQ#N$(TqtTz`cLEiDg>%t#Ln=`>Z-j2`c}h@ z-$c|hIoy_nfrY8EfB3vdZ0!mJ+7=_1a??!>&t7!?-763fFn(_NUZ@mp6H!9pH~R-S zZ6B+d#n^O0v-=DsyH*87o;&9P$R#J;UVTpMc{AiU>fKSEYtC4SM*3w7Y5$h!%QV@E zFC>T1L&qPvPMmC|7TFnspGSPu>YG(bB3O|m*pvOFRQnW3eiHZCbeETnQ!VDP#!@E= z8kNn>bU_sl_Tde3nRf;T}G}( zS%Vau9o|0J{aiqED$H#8GSNh_9? zdfvru#&);88p+=Yh8!^WMHim@q7|Do8WZ}yJL??&=gWAVsPq_@-NCf=y`32Y-NZN2 zE#IBghYpV|j6EBgcCP)ob9p=5FA$;?A~&h3xFouoDE?%puuK!q>p^a+l4{wUs`R`x zXYuGwh}YJyV6ag(MdCSIK(&v7d|FnDw{f!PMw`tavTH6q7A?GCo30kdc_rW=lDj_k zra!)!5x%R=rTFkoOm{rpJvLGid7`c}FWmU7tJU&`aiTRg&POt*c zXY zQ+ko|>_Rg|d@EnsrF_6yG8SIzZLO*|6aw$f>8UWq$9@ZO+E7E=U0~`w>QpkSI(*%c zb6{(uCaofJ=$arX!=LFDW~iF|j%(z3xDd(+3wkk%UG$)A#vuERqq9IKYHM*k1hxP-tgh9?oIB~%E|03(H!=h}zs8Je*mXu}?1w~4_VQA?FB?Y9rq-#h8hLBD{ z32CHLK)R$mq;u#R;ymd4`@VCX^Y2^(GuJ%(-uK#jueJ8g&PDW1{Sz@(v8%S2&)k1J z!J&R12?|7j%!!<4RJVw3t79kv*GZBo(rXCGdTG!^Z?P|*;x(M6lp^L2SUMeMxuMzL zGY=;{oLF3$h;&MuEzzpShX4p@= zY~iJ3r`x0BMo=MQ+~&k0)6Yv$5F5{H@A3Xw-%k4xf55V}fkt$1g(<^sfB*Ft+FsL( zf*6k##4CL{=4JLL+{?K(U8GL8FbxI2t91R!jL#^O1+(nE?b}mQhRwyBHYKHfq2U7= z{IU0T~3e6!u|( zp5{D0^YoQ%`nVrvAG-HOu3*z_@(WY_w874W%yJJHTphg@H8((9^(#$thp}WRG^o2@NTQ^?^<-ak@!ErERA--+dkDPR!wpCmmm56*LUo+i2h?#L?-^+ zbc;qvX5KD4WA-^NaA*5dZ{*WdL8}H*EQr? zAkbh^$j^Fm>bpp)zf_4K>e_^f<{DaLYM)}5?Y&($kYRA5OiAaO9%AqB;LGMWfPUkN zN3G$nFL^HHdJnmyMXAY>Cwz>G>_PN9HjIw8iN`mt>59`R17pX)eQIzci1*)ITea1 zh)dE`F^5Wt)XT91Gl-;dQ(##ycw*+mi~F2=bkr~id?x* z&n>NGOCH4Zh;(+>`B~=U#%$v9aSKZ(X^V+}^LVKL+ByySk+eO=CyBO`_f=5Xh3Z~I zP?Fxz(NFavfO)O6n%X>$!c)1tE4XtDI12jy_)(T({$TUv|8B>(m4=`+c6{MWH^CSI z;Lt)hWLH;TaM40l2KS8;`HOp2?$T5K@_>QGdw|}6^M?c&T=hrURrR0=p*7Rut>AIv z^phS?uAhkW_T)CA%#_FMGn&0cm+x?UR7n%^=jrzPbg4wmTiCAp+Qykbu*~E%;81ja zr0RV}xSngu9jK%u3peA-Aszz+j$;^Y_1awNm{PKaV1e0JxK;rB;$>?RYvrVTqaRZjbgBNJALR?aDlDw&2?ejc{~ zi=*AjQ|W8ONy}tYyla{g*F?pMGb=kD&!~L8{gWmFv!+eVkao>&CaOxp43Y(Qs~&ot zowZNuHHC6=%=ZHNwxce4<{_zGm;zf+JE6J5yZ6X1hV~@o!BJokN#O zDsHY5d4eQNVJEcGBTc@v=JPktn43+qI@UzUduUJIO%^>eWBgXJ7U>!)--Ib*y%ANI zQs3i;Y3K0!0v2>07(qBq^>EqL)Yh(V45szUoY|cvdE|dz-$n#CkO1~rNs@>ko!)N_ ze2m9n0d*4i_Iw@G|F?tx(N&cOk# z|5y|6!@;@Bp6cvqVR{YR9BP`osl}kzeF}?=b+nCH#umVZEZ;>HPkK zNuMX}1aNx`_gCEQpLM<@{@6Grc8R_n{#JisZxM5NB2!#*fvwyOZRh3T-2I_i2j#+sG^*@gy|+08G^on$gA0WwD8lxcBS_;MyIV8M>BIr6=H$Mj z8Zry4-ar=gsovXwHWre2hmLBzM%OILxo1 zFY}Fk`}qZLzKf-?ApxVW;d^yBDXxg0JI$R-*~yf-^2G4GV8*JUD^;Yj*q)JQ>t+P{ zxp&?Xh5K9zL7)f;R>P>{Qh@5QZH@<@?d`zfMYS-_d8eiLe583gzEh4_3@(n2BLovQ6kT0a4(g7Gu2jq zW@$V~=lV`#2&B=d#T6=w;w2`l3vkX*5mP13bfN)?8?>)!sD^ZS(Y!p z@TC=lSTjEKZUXZC9(p&z0EcND;q+g%O!B{;JNrY=o%01Hk@_6reo_e{t7qY&<>lz& zYY)=V92$?&nAb?#OQT@0n0THtzOzJ@Tpn1E$LxF@pvwLdL+zeOb_R zrOJ7go&EfTC24&$;!~CWHCr=6DfegEAC=fEWJ^nOutNhdgTP2IKQhw zT*(16z>R^4J@59xZQ@`ZwybR)ZHevgu9^mN|KkEMBn>6U91ct^^96bMr$HLHyoQ^- zl>5#zPW2QGXgr0#55%Wm3w+1dAYZ@k&u@tS`ukRc>Fv7TwD6wSw+(PKO$Je5na^~r z(M@nofj#7)|5xAuoQ89Azad){kl|xOU9kYa!lwqoiu{({U7z&x!BcKMtU5~Z#oeX# z!_24dj3W!doo*!7yV)_I)8s4zfd59KZUEK9>Oq6nn02B1|1pL&3}$sH+H6$xtM^ac z&w4et-fS6t9zO6k>3ov^9j8ymA;Y1hG!odS#Ev6F(8<>0_4WtE?B2)!SH)m{R5sx_^u z#wrN687L0`0Zi<2MQYi=e*S+TnY87d36=W|AL5e5D`g z%FpzD`JRBwL=)zc75oX4oI;W=rM_ko2Q>}u5EJcO9NI6=Tbb*7AMdJ?8^?mKW~l>-0j~e zYHik;qto|jeEYe3ReOfF5bsO{!vL>SP@b3v?pY6)PqUHe? zpLXFF^SMD{&0z2pXHRHI6W}}`PU7Z9`8o_beyqt~$jZLwuY7m?WOG3JwanFVV^Jyt z<4J>EiMReBe$|?x?K^Ru&o6ciyV8PFSX+9^Tk6%)Sjj8y!-zVY|nxvW8H6hXL$5y&Yz^_>k1>gkk zZ5mQzZ}!AKaXwuBnX{46nNr$%=XMoK=WOvMu{NwQHN9F_D}Ojk0sWl<4#?AFc~L8D z{N@v0DLpWE8E_XFpAj!ut97uXN^KHxIEXsWibC#KUUT+ux2G`X5J z$6DZV@2wolQki*t2h}4&F$EufcW_w!|aq@^q8fjznqsA-YIy6_ZmPknt$3$#SW>edSmq@Fnf zZE~XOb#{?c@^u`{`)0^ohJe$KWYH|wOezW*k#1&`~p=!ufbt!B>LuYTw4fzX#yOjVK)$*8Q_5Ko#f-tO<( zoXC8d8XENXlKZ`fRBaW*W*oSNY z_0{ru#3kO$^;TLD*79;WeI_+{DQIX zJ14G4XH<2@Y)bly(qY8)QGf#HVH%LCsWyzs_62gc6 z%QJvoxrUkaK(u`?mPe&itWde1>*qLST|FQ(JQQg{bqcndBCL5c8o4=GH@wK5M%k3z zkv$tR?%v3=X6Il1wr%uLGCz=#*72;gz+iuz)$V(d59!Kf-n<4&{if8u@_r>FUn}ME zixcaJZ2D|tJrTCow6+>>mypGMg)VM0;i@bfH1^yjmzWP@FOK0eXA5tJx5Bs-#Itb& z32LP7_Q>a)y}MtQ@V!`jC%A#QodZa2;o zW`8mn?LV}!v*KZP**!mYDqptIX}tY;)-|^@?vfN#Mi-`Ml!N-y+g{bD_`>-nuKA^V z6WR2J=rDy0#aL`Nlb;w1+_w;7WBd;7T+_HNJ{$!F(ja9q?wUa}dK>uXR(qKIk9@PH zsy1NuclMS2Hqh3-DBJl`=OVGd;w2_NHH_V7WeLxyCsR>xnX{@mF|jX@ZCs ziF&S7$$tC~M?qB7x!~g0UHG%&_oQ=IkMc7ag?0|YF;T1FiGbx0a8Brs%k1K;6GbyP zBF}7w1OV&m zM6;Dsy|D#ZUpFHqQL~AY7azDb(Y^M*knyd}rp%0g##<#&X^MaOsuA^TX?C(dLnzKd z0n1s2nE4k$9kzmKBzszR`f(R?ABW8wLJa_vvSrD)D*!SDa((L|1s6NLN&T(f+P<0A z6$r$y`$Ce2?dlx8iM)?9*7$J+SMSOogC3Kv|H>Sl)L!!>K?Y?&I4eyT;B5#Gb`~nhUR>jg0^QG&{qMKTYxNjh(16M^Hw!$z>wx80cPIJAe@wJRceOF z#z!g95GQeF>yHI(FxRzV5!W}VVRzGQcJEPCvMpsL4hbKV2TEi#beRjy;G?0S9V;`; zE-ogf@twtomX=AF7?R(~t4w*Y0qD)0=IPGef;-;qtTtQ#&Bskjb8|H;np$3|IJ4Du zz78yQots6Vixscf93W`2wWC$3Mb|;JFTM3{Tpgt@}T#9)`vU zKL60xF_+vhV>6WLu@G9^q%M@$X?}N@8MVSa{VNNRuzt|>nd3Nc`^x%##I)Aae&~8I!qbw}0J^wg7d9<}Wa(CNN=Q zFq4E3(ZJ>${H15-=$ICuwwK-M0cL>Zy-TcXKRq#SWosi+Y)er^^9z%m&ZizG{R>D>eT`9yeDT(4(LcQzRF9VMa^P?L9fz{dT0yZ(Kz(x)}CZ>7Pi;4KX zkNNBE*WaD5W+_sXLd@g7FK%DJw8_nsrDvth{LDKH9}UB4^B@WzD{~U#tDgJKS@;v3 zjKki#eW_YV)^_#^%Y#`9t85J@PJE5+|R10@j0s zto_qYy4R8$ynPK47xJ@O{C(ajPGV}`g(c`+H0~e4cRfarie6HCnC7tmWIpL0pDgKj zPPf$Pj%pna>}H7v2LzBgf^*Uw7UD`uSUuNb!`6Y>3O+#VU7!~JpsM11zSDU8i|=5! zXz?JK1tl$OkTm#gn3rx(#q^+dY=#B2JGX}(epdM>Yu~eLw4&c_SFTK@Wb-pcN9vq-)^bg>j~`M$Mh zKy;3?2Ln1EA~+r*G`?%)tAsz5qQg4T%%)QI)0N~EIl9`C78C8QS#~pPMuy$C?GpJ+ z3p-}CC?moB)~4A~$A*A(D?2%%v-eoIrYx8gR~;EVrzD5zr7254r6z~&-=r+D01Q74 z0GmrjxfzLj?0q?wIsOF`G2jS>2e!~IwKEwFg+OOTvJ6^M0FN zfJwfx@at0b;*F7f1|I#g97f?a6bbqKoV;Dw?#nz6qcEuca?kGT)5~E+4>>ub!>>=P z*w!?DRa7>-`0m0KHzd3$c$2LP$Q{i*^#*=jHNljZ?5ukMC0x4leH|W+XlrMJn+-iV(ZOO|@x#eVmZ><^L zx>VIMEOt>Wd{nnRIz~fuoxyitfeHOXs46(FAuZm67A@!uckp3bJYTxoUn+H7_Pgo! z*JsayseT=J=`#!r;`Xly%aO5g!G|99;Wu4rGdgEW4gM-E7oXYt8%wB&_J!zw4~WKw z;$V0#1ds1JkP%@^~IUD8S^?siva6&^lf7p-QCRSPq52FDG$ts){^Zsr?p8N zx`Xn>&jP}u^eW#|Ea#paoFf65H`3338t1)I`9}dKId>v1aR37|7A3LHB3`k@;JAKJ zj-2x&`!XN1RE>pXZ=?;N`~#vnmA1jVawguWs>t+Lso>khPvQVyCew?~Ih`ZwQSuEi z-_eYA`zOQ%T4qkTxWq)xOjrO zA|}tl+>%-`9iKAL`9%8PI3OVOf<=EbO% zNmU5*pU3zLffy(^h-^#OJ5GkA?cELnr=qUiI0pbYqJ4PnohF$#FxZj+vui^9ck-fV zibX8(^4py&8CRs+jCLRYaHeMg8>rUJt2t9H@*Rc+w)s7>Zb~+-TUJba6R^y1>R=~#{>e+C_@ARY8p_`F7WiY zlUs9-3zzP~u&JL)fG0|TruOIpbi8I)TvOI?{$Ak9CgyI+Np>};gZnCecgk(|3!C1G z;eL!O(YkJUwb=*)-1~l`sg;8a@l%EofML%<5D0D*`t zKNTkM+3XcC14ZZ672(|SUCMSy&d+a-Nn$3_%Y~ z0<1sj<-`qqRK7N-Px0ZTjwy{3RfVr4sam=z3iAM4bd)JGQ-d>T9&q+_>IllWxVjJaX`}F%wKOC6%xBP8OuyY##zM^OP}yE1FS4J=Rs)!UlTo# z#otCiu+`5`urj%p8DxKBNhcEYUfON|Tqfg#N)7Aj%UGG1qPT(S{ldEPZ3(+VQ(aCb(t0&Uk1wv>_Kx;4!G zY4Yzvztq*l$v4Fl_ftS$KO>fp*BcJg+c@r|=K5_bqyB0pwjD&?>-EZsZ6-$?BZ62K z(>IP}Zd@8t`BVVu&A3t|QbexDJ-on6%V0ulVj;vHsWs8cRj2jj!tm_-&Yl0#ut;X< z6288+PFCUo5*Y+NF%N}|$U4u3jnQ>el6|#eGr!s>AQ@8=eJT*ez1Sg}|Hd+(j)tlD zuE-!{-^E*h({1dnXz zkjt4rW%iLB3NE#oKD0QEum}Z|;{WG`tNrVrkWC|Rbg%0rL#~8s7;JtKVK0VqyESEU zL63)F#oPlC|3kZ0hvn(nY2K5V+fVdC{xb_cBsvWipnM$FQQCjUuCLz&)nI>(d?AD} zBV~Gd2b0`;m%w_30NSukDhAxB!Zr7X^S9f>E6DKv=X0k~({;DRcy{lqECq){*@Vy; z!z~3-h+eZpui`}CnLg4Ay{OUmMKgdl4a({F)4Sbgm3@R+lYw(iB?l5T1F%(*UzBf= zE_)4UuSknU%pkuIM=wAkmD3E^6`4YG%D1Ead(Yojb!C9xt<^Phm zJpW<+6%$2|58P~CvH5DP0f#i3g8}dU!_U|5yAqyL{Eq~pr40RkhUD!jh)x2D!m4Y? zCA}gdI6x+q!ROLcsHV)rnc5qPfZEl-T2XbN%bVkvWeVe?XeLSk#axUx{Eqt|4$|B$ zW81n(T(>`~>dA>`XB^AR=Mf3tK*pzu);;a zeX$7qlrht=Y`H#3tfwYmfbgkuJ9<6OguO#ms@8L(CjyVw>=P)7% z(Q-)`-lY>JZ$mM0LjY$)Nv8mf20xa!Pb>r2@|{$;_>x1hU%o?s0|JR$-vFE4t2-om zBBb2`UwT?k#;HdQSHLdHD=5_Yb4rND-(OQ)2Ho%4rp;sMGG*iad#67(Mjce~@v|ZY zBVTjqaIioejBFCeQ-Q&@l<0UAVMaJug{>PaB3iZk(YdfI{On}`5QxL<4n(h+p)mx} z@)YI68BjF6+k30)_A5l!rK3@8>wFhh)5M_k&DZvL-P!`bDc>bq_z5ooIW@0bc6g5MdgQQpN*oKErQKW zE|q|URru>o*~EmkB_3ZIw7^hkija)jxgK1dpZr9{mmF-6<%M>ShBgUPrC35VFU`@e z=&?NfIS^HW=>H-JJ>9-I@*&8?(P#6Jro2lp>{7jo6aT&P_rquk0Wd2Z`jm&!%mA8h z40fF4&jSzT1=yVCA1 zJxf3ZPDV5n9z{jd_GGuT8lw&i1>EvhAu3)qK}f01sXNQn)D&?vvLLaU(UqTvlP~w& zblM*wh{aNQl=%p&*7fEx_`|XM@?-msL#CM3gT|}@-34!_IVQMfsrb&yxy^##Ubo=9 zbCl=U42|b%SCnq6pU5I&an5nSWViev)ds?$k&x-6RJE+}codZHfKN2*k5HQagYuS& z@7`-};g&j<2f9r3>{$~9?}wzSMeJHZAoKKb;HS4Hu>@4Fhqd|D z!K!J<;O#sd(BRO}hT!qS!a|V`1XABO&|diW@z4jOtn&p3#avRnAIj($ixCdxa>&GJ zX!xW6!+^dd(NrCQxe-)ab*dF)A2e#c85WT{sMr^!ovi00gzpAIC?69g%b<8v=fa!` zUuDBkpt#J8r4TLTkoWm&8G=yM+~{q9qS1f&|%yBrr(Shai-M>g6y@tikVC8|pfsR=*hw6nhXw=tuc~-#GyL zWdVwlgp@N}Sb$S4pOtK`P}-dcoau;?&phlP7cEVapj(sH%XqN8FYVyqkj?H)b28|V zcmy=Qa0HihDgMRP4_V~W3tUS3;Q`ZD3B5iE>l>d*1#<@E9pQV?sBU zc_6eMNL8{zRr~%D>Cntk7))G*>`o0g2H6u%CG_ZjTmVhPnfFEtDo8*XGRfH!48>K? z>vIBwpG(6-^>xQ#BYyLKV`RdPs%2%y|vt=ljRb6_U*pz;@Ns82^-U_ zJoDeMN%^g)fc}M~95&KvhR(&srCarl+y)ZJ?bLU6dTKmTq_wjzbl&_atX1S|N5Ip& zsm}9(#t|4ML5MhmTT{`=G`F*7K#|k4(e;_iQx{^>y*#J6ZQ$qTIfg>XURzB{{>ujP z*ghN2jemU6(Axa|VW%RP|E!NnT&LCvH4b5ohZZ3TLkVdpj)%=ZnY-xJ>X|9-Xt^42Xu2e$x z=Pr(q)RXX`&{@%oX{3L*o-RLn-6EIehn4qKHeddwG56IshNgPj2@Y)U4k%G&6Dn~F2_HelKjzcoh*==djBvoV#qXZ#IqfvTC!V|P$MdssJUaLp(S5)@B!BQY?Si!D{PDq$1H~eW-*%_h8A$b>Fb%TD zY#lzP>MzR2NrCtyZ$0IhJU`2s*6Q>wH3-`@`tYc%>H3Y*MOni!P2DLG4H8u-^zP`b z2IZm^7d@k$%YWCUNz?!Tx_pg3G=MC2qP6_lg_4j`$Q7+Dx^)d1;zf*)iVUJ&`w2PL zzoQ7~;m7nmkiZ}utzGnbLU23Jtw@1wr31!618C1w+ix=n0w7);FlMkxRgUc6{!3yjA7p%LJIQNaNdmy||FqhKyzCWIl0$Gz|JbRaVz!&SGk&D6sre5DM* zAUZY%7i!GMDsucdU0*V&M7_72xK7CJH2WVan#~t?CRD@1jr%qk96XL5_!?@>lRSme zp%wsR)1GuS`nVSWE7cJR^0!8N#yH+0(4G1(9U8Cv!(1U*ZpE?xZbPy+KyK5AlY0$S zi2jSmzgMYiB``BPew^_GrYb@XzCs`72MrFUYqvgckdT$83dp0+b`+08MW>LH>wvW1 z>tZqlgFFKjhY;9ADA-AUKEEX(rU-}bhxAkgR)W-;I~mKgYToci)4mqeRMH@0`fU1Z4B^MUgiu#s>~ifk9}m^ zPbN$VI_?ZmBy;>e2KQ2yrFf4PuO4V#5)cB#_gl9~PEGBa&@qVcXx+6Q8184guNFch z|GXLyy$q6s+#ja96FD3B7q7;Ih8=qlRt5v9s;a80KHAB{qxJ>R!6|)J<@g_ZEo|e; z5Ab)C$=_^Zl-Q}#$QW48;$Q+K?4OdnG44dKV5(}=5uZM){uYOjNvXS0h|5nn(8Lv8 zZiT!(G;J13aZX77^dA@!N05w2NNtW#IX_DD-t3J4<(s(a2m3se<@)Kg0BSV}q_6rJ z&cmoVvtatI$(6OhPF%&oLFpa~RP8WS@&3OI_Tj$_WYq6+DV!oBr#{XR*RrmY7RNNS0gd# zL1yG;#6Q>elWk)j*D@^0Z+Rc9GKanDF26sQu=QNd#_&g3mgDwWMU`&r+JEx6<(_Qy zoX9#86BK29Iq9~T#zafmnb?Tmjwz2jUEzy1!J!r3=ag>%gQ3=-xmIPr77h!GHOuoOuY^r@}y5>(#Z!bQnB=-}7K~fn2yCF4}6VIt~K(2CF z8Ku(=J2?63OG!kOoR1XfRh%}08~KOPEIkDK4L^1IST`X)tQIp!@0W3=4d)b}{2y})4p zIwzr;Rb(Cu2IMU9#xLSDn2wQdXpv4t>LP9@y8^8SsTOnj6X9;UeXCDm%+&+GeiLT_ z=d}9UV`m^?^**kLjXa4Fj@vC?@HrX$|G@sQD08jI>HO%_-g{L1XI*b+rR9z(E$D{@ zdIBJn_(b__U*KK4^@rAmJ#%>-Rd}zu2RCRZ%~b;^(iRU8IaT4_an@rw+GdIH7_?oYQ6$KV3`sP30XBL@I1^xU z7!qG@NQ(~o+<)1I`B*B!t2hPr-#uA^q7ScMWS{Nr5B;ygwg$4EOS6iIUh;qM`5S`$ z;z04>iR)}2*W-kH>^J!lKz#cz{*3qLbBKArkrXmSioG$`#kt+0!^2@_=A%DTMCaZv ze{!qxE=??T`b;O&3^@D3EGRxA4cs$@?N)} z$C}Lh_w#tU>ux6PUo7j`YmCQuQTwY-(cpn-x|MdhAFqipP&)*Tu@`0>#cOqNOK_Ok z+KSOOAS8Sara9LwiG3b__=UpiHmgm}@ER2)&FhV8icmqSy*v z;jUTY`hkGR zNLSA_2#C~6I+|+@B!Wm;3UcKF6RMEVT5;1P1>22y-HeL)beJ zS0csEBzLr0@LtUEbi0|p6k9_UpH%B)s-rFo0yOV!;OMf7C#8E>E`eqg?l%7 zy5qMZ*2$0VeQu?joOZa2EEe0Osn~v9>138I_>dHs(u1cY6*=-+>MSqy|6 z1$R?9S9JBiB2!$51n8Nawa}bIyQ%-J3I3Ix8h^{qp79Xq#$Z|4ac;&{zF+G{{!;p! zd`>Z!*+XHB(Q!_XPWvjafqMZhSDnIcrR?E8KZM1 z+*>BpDL=%^x{Ld%&uTq(NE;pwC?wt8I)@C^oteWdBgk0!gPmU3+jnyo#53-^g3l!n zI7@S*oI9@2>>KyBiyPM|vF_GTcqc<-Cw%rEN28}YstTO+JXsvH$bEdkeZl{MW7bYS zJ-qa{U9_(p<;e!m)VNYgeUz!`x3xT8Gq!pjil%d9OSh%BV~|7$I$0Lbh)qo{Hh%ve z!)EgIol@Td)Z5Fe+I5J)pfef|++(6a^UT8JjReA}Z4LIpv_?dfj zVgB!l)G!~erM0p9_~M7ri9)xlP==ESImf?IIy>x1O3X^gEf}Y{zL&&nENPv!kaVa4 z$7FNCSf`Lfn!G(0+?E1*@-ot-{oRPX{dc?_C)Pz$PCf6=tZWfuxtAL_@mq#YWDbZx zmQUWQr0D4IfiFln7=zCp3kuQ$Uow(FL%A6luO9;^1)}V?E@(C%LBhS(A<-bJcYkKI zZ_OC<;tnBnXYtLC(yeI#0XFditbW5Aln9Wbs*}w#17pot8gUhldwQmA&%)R*|8Uo7n*SpU6>rMOZ0CHq!nh3D1IF-b|mXIq6-m8Gn;<6 zkn8*52{;w~Eg(Kh{w)^X3TV_X)~YKdNvWP9cRxs3yX z6He5}tXs5J0aKlp?zwZcFaeWO7omi(rF(5Z9~f-;x|+Z}lRM~#5-2}w-gBV2*UHqr zUcL}9?Ll`uibfB{!B6pGyZvAx1bRMV?%x*m%*#g|0&&C8349y@3&#O1#90@i5evXZ zx}tj8=PmQI2^pcBTkmBhxmwbc3JL=orc9e7_eDc76HGO@#V5oqOsk{>Fsdtk{(XHp z^)?8^=w`G-cWx@|oz5e8y*o{&|B7_e@s178%)d%9?&HJ}2P3y2?}R%hc+Qxd$ZIWD zHqOj)=a#_#vg3vS0Wit^^cyw4&fbxD6dIxZ!hHHt=kzQ`%+9fpivOeNX?|3?9k-GA zZKS=6k&zD_*A5}|eBCiiL4q4$sh8Pr7W;FwQy2r{>+}X~$@pX6!P@-#MGih7Yz3GP zJxG`1jl4)zX#6l#@g*iDrWR#w$ie&6W?8%5ru)~XB>|_mZfzk`=ppX{=(poql4?EA zmUepm+hrTNjy7AbO}7q;;It%6{V6UkmxcFEj|s$%sM%V#8H!sJuT`bh1VBJt66(`= zD=Ps(!S`Gq#*M_ddEQQ~V+?bndbMpwx%v#)d%Z3A@+G4qi~xH^d|j;R6$`NE`f1g< znc*{B@h?@4^>!SNAXG_Dbm~oxKo|DPpyNZsJpt~6DQ*rZf+#q4jC+8hzi#cU)Pdn7 zfzzj(mKueF!_`PRaMkKM@tIPj4S#-eWW5~T@LTvSkJ9HyCyUMJb_-XGQN5F`*Ml)> zEKR%$0(**+DCj#Fk0uVqu7!LDFY=(lr|1&dU#*bAS~^9d7~mXkPeC#w%7rKcL|5Rb z_TGH#fuGoCDZ?-6;2iBAt*;^%8qZCHo7nmB2z*V{z^Dw_NcI|@o6$u{VW0q7N!$o6h7ocmX?Js+4_q&d;r-Fm= zl#l6CJZwflw;nsi_{){`gl8%0r?qf5T6L3}xURLM7=%@&>rx2xy@f@US(M_gAVvtW ztB1#TNlysm^D)QyfdJHr5q`6qk5~PJJD_9^qvAQ+yGr%0!$lFt)%R{7BI72!V5f4` z+$-yZn!xg>whQ%7Dl_z43ut-@j-LdDG=Bo!MyF_f{%x|iz+_5##EfTbIcMzN9h7Kg z>;E#*WRL}^WP2Z~9r8H5;FY5nxN# zAxj5BMh&~m<(hw79G zWSZfxuiFzA8rjF$MvW2O7UgGaP zLXl#vr4UQnkFk4Sf?u3*;LRFroSK|W6E}f~C4QQK!E4-q))w2#!ckY~sS?tr+jYiw zqWh8-AfEZBih7-JeHh$~QMm@KwrkX9s35&MW6!yYaQUj)-WJL_-SnKAB+HQeTONu$ zb^-mDs0fG1P4RjF+KtU6k4r9l^3($ z*h$bq*bZOFUfTjYYMs_|B z?QtsC5CoqvFFlxBYON86Lau;$NRsSvB|J<5tPvIz`!c~S%SKKvy5AH&;s5{e_0~~Q zc5m1y4MQ_@$si*wA|VI@!vHcMF;b#Zf=Gi%Hv>Zm2qU2)tso#N-60Z!2-4jp-5uu{ z)c5zD@2qwHaxF)nd1mi>-*sL0wclqyme+?|iGF1?z}ArU%%{M_+5HBkCJt+vQeb&J zOBED+vSMX`Q&u5-MMn6g0FeZzz^zyk-_T$yocI0%Xms=^BOrD0>SQ%E?WwFt#b5>% zE4e3w8{ahHseIl(^CT79x&2F}eK{#OlN0jlBGeTWW?i15HF@C`h4I3$6)Zy1^BEIY zfn0?DR~L;Kt!iwA6DOw<*G!}g?ViLEV)cnZKuuuqjeq~J5J{V5+0F=$^jdlc)y zyFX4hDHCV#M1zdQzR~lc+k3~_jhbT2^~)~#T)`!c8zn4~f;~q<&;;ZnpI}#@(1&C*f>3$&&}ROpU{IpU+xI;Za9F z0h%xbXo4oST-90JIZ z`5dHziKHd>QKMHp*-tpU^a5cE$@&{PX^oJhoJ5b#yR0mmH&Zbl)(ISB7m~OQb-xQh zTjJ%z{l9zP9ku)FXx5{;PEYm5j?5%Vb>b$EM|rk}ow`isSpcGd1;-jMv^%PXffvyv z&%i_~1v;9-RFJDk@ij?-j|y}vNn!7mfA!5uGktetPZRW9tE~d@aPmQ~D}tZXL`Mwc ze0)RMV#+7jQrluvci^k{?!nt`)zEKmojv5?ueHD9PsOxm5cOG4AN93w(X03NF93Pn`yqK(NQd;)%IhQ+vv`p1)zQ`Md3bcIZ zx#=@NKr?v#wY;KffEYFp2r`KK2uXWtF_WA3)brB8m_E2{SspvRTRAh8YaRB*{;fYR z7KxD=^zvl@0@5WP0q~6tfU-aGN^u$ySZb2kPmug+BZQ2=qjjyzz39ZA#z9XEI=As$ zP&lgotQnfNWM*lJ7wS`lXro*p$k2%8oGItFS~Z&a}9 zbShp_9;^eBb|djy+m@&u&~vt~#&oZ)+Ri|pI+Bwz4vdfIQI^vEO>;_FyWeyUq46se zQw??AwGy!E++$~G`SCQ&=v$=0Fv_Sl@2n~3=GKM*;!4x@Fz2S#D={Ze5-;#61 zwTZm6GI&fl;gx9L=z_*bQ1EG!RJAg0eBT?w&-kPuh}g-{BC5EzVs$2bYu94qt4EGr ziB4TiX4g!}-E$(t3_glY6H0&leO~>x05~2oNOF#&HxeE_L5O~KUy#&t4)5-O5~8kn zlamu@GD_U}g6UqK;UDwc<1k;&T#+T7H+@UFzcttjR-K*A-Z8fx)4G>fk}tu0I*B#3 zWDLf2Aj^-!cCUTM+j{=+)AbJNF8a}0TInU;zH`kCZaJQjN!)tEOmaY1^f?%BZo=b* z2+{3q6&jK6l9MpH3V=qkL70Bp2}aPr#6Rh(h6q0$Ts0+ zzoP_zhu<6jRB}40y;ub8|ApYf9etL5|8D%Oo6|RXu|USN)h%kVyKGFjkfXa;Da)ST8x2V7I~fBFI$L6uE_M?u>W ziF(Y^$#@guXvg>d`j5s+de>gR(gJ2#Hj6+oO~)RANJX2P?q6WiJLoH3WYll*ZDt|g+U_9Zs*oK7ce zaT|>IKe|lUzue#@PJ<7sp0>$tv~rwnQ!QQ{tC!jojx;CsR+eiszz&6vioDo{t3;?e5&z3+ja56jo! zCa=`Psc%zy7MZ7M6p}T{u7jGyj7kz3sSkHFj4j#2R@5^-3@l3i)FUlXB7Mc0Af)5l zY(vt`cyCK8zNoL51j1Qxk^Jm8XWB^3?@UwC;F~;Q|F{4icGs;M8RKNF1jjz{7?B;l z+_{qiN}cAlJM91MTG@~?K%&%Gpg&3y&rf=?lkr+&D(i&xXXhK6JF$utNjA#r>QLl`gr zJLM}ZIACE!Z8U_Znzl$bHHy!(?Nqx_lZY+4L>z+|RsqPC9zQ7m`BCk6#9@BymFY@U*3+rc|Vyv&Pa*EOYfT1 z8xcx3uC{gId^V6{)R&~Ue2d5Ev%s9_v0~d`C_zFNUv2GFZ@a%Bd@y*NJUZr?0F*Z! zg))E`Y8#zwzPFf~E9JizK(A}kYUb07yryU!9#zHT=&qupv<$M-5#0$9+Uh^t* zP7=1k6`lYs0mxH%$eQfjZ8E-4MAKas>g^4q3BH1YCc-6S+s3V_&m={N?yUk#fjVI-RIx@gP5gqriKtV(~G3dK}b1^U7jZjCLqMz^uo*H2>v=BZhX`daf<3+|x zO7}D=h@36mA2KVJo-&9+C*B#6Y5Sh@g-Z%Fe^WxA`%g*cTmv*or4Hi?o>*J6JTP{- zHgT4pb5l-kgYd8-2_rsC#0uDXz3;KwC_CEru_40J)%8}uq)olF?~7cRQ0 z+{phUacFvA_-TVAEA^OV9Z7#oouG5E7#_%+uYR~{S?#l`2UGR8M&jvIYYT%ZDMZO# zGlx~%!Z=ogItAjV+wwrA)^mRW}JE{95(yofX)IB#Wa-QuW|`5=E~UO)E<`x^IC z7yvmT*aDuhhd>T09l;_nj4SxPL_Yl3K|aoIJj_|f*QckJ-?wf&EHTjA0p9kdPtmNU zWpYkb4CiXid1$2`gS(~%T7j|#$oz95EkAaKj?{|RXm}AR?#oWfasesX_h`XVLBC0O zI4j+f6B8qhTTFR5$W|)e(tM_F-Qr2?_mF-v907>K4~!&FOi&YC6L!Q^?oi%pWVJ`M zCr_U2C#vGIk8}-)!R|i|R5u*5W+x*qbXg(TU&Alsw(F+JglVir87dpR6khpFs;+L}+M~)&7w#Br73esUAkQ)3?x_nO^ zmki)p-(UnE9|1`-W3uPHW*jRC&a?8c&pQT@4?4G ozf@khbnu8gyKam>1rk6U|N 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%0A~paYejL|jwbq( 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⋘Ojy0~R&`W?iTm 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 /* Variable sector size */ +#endif + +int usbd_mtp_stat(const char *path, struct stat *buf) +{ + FILINFO file_info; + FRESULT result; + FATFS *f; + f = &s_sd_disk; + + result = f_stat(path, &file_info); + if (result != FR_OK) { + printf("f_stat failed, cause: %s\n", show_error_string(result)); + return -1; + } + buf->st_mode = S_IFREG | S_IRUSR | S_IRGRP | S_IROTH | + S_IWUSR | S_IWGRP | S_IWOTH; + if (file_info.fattrib & AM_DIR) { + buf->st_mode &= ~S_IFREG; + buf->st_mode |= S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH; + } + if (file_info.fattrib & AM_RDO) + buf->st_mode &= ~(S_IWUSR | S_IWGRP | S_IWOTH); + + buf->st_size = file_info.fsize; + buf->st_blksize = f->csize * SS(f); + if (file_info.fattrib & AM_ARC) { + buf->st_blocks = file_info.fsize ? ((file_info.fsize - 1) / SS(f) / f->csize + 1) : 0; + buf->st_blocks *= (buf->st_blksize / 512); // man say st_blocks is number of 512B blocks allocated + } else { + buf->st_blocks = f->csize; + } + return 0; +} + +int usbd_mtp_statfs(const char *path, struct mtp_statfs *buf) +{ + FATFS *f; + FRESULT res; + DWORD fre_clust, fre_sect, tot_sect; + + f = &s_sd_disk; + + res = f_getfree(path, &fre_clust, &f); + if (res != FR_OK) { + printf("f_getfree failed, cause: %s\n", show_error_string(res)); + return -1; + } + tot_sect = (f->n_fatent - 2) * f->csize; + fre_sect = fre_clust * f->csize; + + buf->f_blocks = tot_sect; + buf->f_bfree = fre_sect; +#if FF_MAX_SS != FF_MIN_SS + buf->f_bsize = f->ssize; +#else + buf->f_bsize = FF_MIN_SS; +#endif + return 0; +} + +int usbd_mtp_open(const char *path, uint8_t mode) +{ + BYTE flags; + + if (mode == O_RDONLY) { + flags = FA_READ | FA_OPEN_EXISTING; + } else if (mode == O_WRONLY) { + flags = FA_WRITE | FA_OPEN_ALWAYS; + } else if (mode == O_RDWR) { + flags = FA_READ | FA_WRITE | FA_OPEN_ALWAYS; + } else { + return -1; // Invalid mode + } + + FRESULT result = f_open(&s_file, path, flags); + if (result != FR_OK) { + printf("f_open failed, cause: %s\n", show_error_string(result)); + return -1; + } + return 0; +} + +int usbd_mtp_close(int fd) +{ + FRESULT result = f_close(&s_file); + if (result != FR_OK) { + printf("f_close failed, cause: %s\n", show_error_string(result)); + return -1; + } + return 0; +} + +int usbd_mtp_read(int fd, void *buf, size_t len) +{ + UINT bytes_read; + FRESULT result = f_read(&s_file, buf, len, &bytes_read); + if (result != FR_OK) { + printf("f_read failed, cause: %s\n", show_error_string(result)); + return -1; + } + return bytes_read; // Return number of bytes read +} + +int usbd_mtp_write(int fd, const void *buf, size_t len) +{ + UINT bytes_written; + FRESULT result = f_write(&s_file, buf, len, &bytes_written); + if (result != FR_OK) { + printf("f_write failed, cause: %s\n", show_error_string(result)); + return -1; + } + return bytes_written; // Return number of bytes written +} + +int usbd_mtp_unlink(const char *path) +{ + FRESULT result = f_unlink(path); + if (result != FR_OK) { + printf("f_unlink failed, cause: %s\n", show_error_string(result)); + return -1; + } + return 0; // File deleted successfully +} + +void usbd_mtp_mount() +{ + sd_mount_fs(); + + // write a file to test the SD card + sd_write_file(); +}