Files
Abbidot_Android/app/src/main/AndroidManifest.xml

610 lines
30 KiB
XML
Raw Normal View History

2025-09-30 10:01:20 +08:00
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> -->
<!-- <uses-permission android:name="android.permission.READ_CALL_LOG" /> -->
<!-- 联网权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" /> <!-- 访问网络状态 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" /> <!-- 拍照权限 -->
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.CAMERA" /> <!-- 百度地图 start -->
<!-- 这个权限用于进行网络定位 -->
<!--
// 清单文件中所注册的权限 maxSdkVersion 大小不符合最低要求,分为以下两种情况:
// 1. 如果你的项目中注册了该属性,请根据报错提示修改 maxSdkVersion 属性值或者删除 maxSdkVersion 属性
// 2. 如果你明明没有注册过 maxSdkVersion 属性,可以检查一下编译完成的 apk 包中是否有该属性,如果里面存在,证明框架的判断是没有问题的
// 一般是第三方 sdk 或者框架在清单文件中注册了 <uses-permission android:name="xxx" android:maxSdkVersion="xx"/> 导致的
// 解决方式也很简单,通过在项目中注册 <uses-permission android:name="xxx" tools:node="replace"/> 即可替换掉原先的配置
-->
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION"
tools:node="replace" /> <!-- 用于访问wifi网络信息wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 这个权限用于获取wifi的获取权限wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" /> <!-- 允许程序读取底层系统日志文件 -->
<uses-permission
android:name="android.permission.READ_LOGS"
tools:ignore="ProtectedPermissions" /> <!-- 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 允许程序读取或写入系统设置 -->
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" /> <!-- android 9.0上使用前台服务,需要添加权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 读取缓存数据 -->
<!-- 蓝牙扫描权限 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 获取模拟定位信息 -->
<uses-permission
android:name="android.permission.ACCESS_MOCK_LOCATION"
tools:ignore="MockLocation,ProtectedPermissions" />
<permission
android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
android:protectionLevel="signature" /> <!-- *******************************************************极光推送start************************************************************************* -->
<!-- Required -->
<permission
android:name="${applicationId}.permission.JPUSH_MESSAGE"
android:protectionLevel="signature" /> <!-- Optional. Required for location feature -->
<uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" /> <!-- 为了提高sdk识别唯一用户的能力保证消息推送的精准送达建议集成以下权限可选 -->
<!-- <uses-permission -->
<!-- android:name="android.permission.QUERY_ALL_PACKAGES" -->
<!-- tools:ignore="QueryAllPackagesPermission" /> -->
<!-- 如您需要接入地理围栏业务,建议集成以下权限(可选) -->
<uses-permission android:name="android.permission.GET_TASKS" /> <!-- 如您需要对应设备通知相关的能力,建议集成以下权限(可选) -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 华为角标 -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" /> <!-- VIVO角标权限 -->
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" /> <!-- 允许访问振动设备 -->
<uses-permission android:name="android.permission.VIBRATE" /> <!-- **************************************极光推送end********************************************* -->
<!-- 权限是第三方应用使用的可以用tools:node="remove"进行删除权限。隐私权限,方便上架谷歌市场 -->
<!-- 没有使用后台获取位置Android 10.0 新增的权限),只选择《仅在使用中允许》 -->
<uses-permission
android:name="android.permission.ACCESS_BACKGROUND_LOCATION"
tools:node="remove" />
<uses-permission
android:name="android.permission.QUERY_ALL_PACKAGES"
tools:node="remove" />
<uses-permission
android:name="com.android.permission.GET_INSTALLED_APPS"
tools:node="remove" />
<uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES"
tools:node="remove" /> <!-- Android 13上一新增运行时权限 -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- 通知权限 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <!-- Android 12新增权限适配 -->
<uses-permission
android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <!-- BLUETOOTH permissions are added by lib_dfu module. -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" /> <!-- 指定微信包名 -->
<queries>
<package android:name="com.tencent.mm" />
</queries>
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/logo_abbidot"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/logo_abbidot"
android:supportsRtl="true"
android:theme="@style/Theme.Tracker"
android:usesCleartextTraffic="true"
tools:replace="android:supportsRtl"
tools:targetApi="n">
<activity
android:name=".ui.activity.device.set.PowerOffActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.DeleteTracker2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.DeleteTracker1Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.wifi.AddWifiPasswordActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.data.SharePetActivityActivity"
android:exported="false"
android:hardwareAccelerated="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.EmailAddressActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.ChangeNameActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.set.AdvancedSetActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.PetWeightActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.RequestRefundActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.SubscriptionHistoryActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.ShowInviteDeviceActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.help.HelpCreatePetFenceActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.help.HelpTrackerBatteryActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.help.HelpTrackerStatusActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.help.HelpActiveTrackerActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.help.HelpPowerOnOffActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.help.HowWorkActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.ChoosePlanActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.ChangeEmailSuccessActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.ChangeEmailActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.UserProfileActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.AddPairedSuccessActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.SignupSuccessActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.set.PermissionsSetActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.set.LiveDurationSetActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.set.TrackingDurationSetActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.first.FirstSetPetTypeActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.wifi.PowerSavingSetActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.set.NotificationsSetActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.MySubscriptionActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.first.FirstPetProfileActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.first.FirstSetPetWeightActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.first.FirstSetPetHeightActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.first.FirstMeasurementUnitsActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.wifi.AddWifiPowerZone3Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.wifi.AddWifiPowerZone2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.wifi.AddWifiPowerZone1Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.SubscriptionDetailActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.set.FirstPermissionsActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.PaymentSuccessActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.AddCreditCardPaymentActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.PaymentMethodActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.SureSubscriptionPlanActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.SubscriptionPlanActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.AddNewTracker4Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.AddNewTracker3Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.AddNewTracker2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.AddNewTracker1Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.MyTrackerV2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.fences.EditSafeZoneActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.fences.EditNoGoZoneActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.fences.PreviewFencesZoneActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.ResetPasswordSuccessActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.ForgotPasswordV2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.LoginV2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.CreateAccountV2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.SayHelloActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.BadgeDetailActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.BadgesListActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.FamilyMembersActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.PetHeightActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.PetProfileActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.pet.InviteFamilyActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.data.DataBoardActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.fences.AddAndEditFencesZoneBaseActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.fences.AddSafeZoneActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.fences.AddNoGoZoneActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.fences.VirtualFencesActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.wifi.EditWifiPowerZoneActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.map.LiveActivityV2"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.data.MoreSleepActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.data.MoreActivityActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.NotificationV2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.HomeV2Activity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.set.AboutActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.recharge.cn.RechargeHistoryCNActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.recharge.cn.RechargeDeviceDetailCNActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.recharge.cn.RechargeOrderDetailCNActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.recharge.cn.RechargeAmountCNActivity"
android:screenOrientation="portrait" />
<activity
android:name=".deprecated.ui.activity.LoginRegisterCNActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.DebugActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.MyCropImageActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.WebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.recharge.AddCreditCardActivity"
android:screenOrientation="portrait" />
<activity
android:name=".deprecated.ui.activity.profile.recharge.PaymentResultActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.recharge.PaymentMethodPayPalActivity"
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="${applicationId}.braintree" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
<activity
android:name=".ui.activity.help.FeedbackActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.recharge.PaymentMethodStripeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.map.MapLiveActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.map.HomeMapNavigationActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.data.HistoryDataActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.device.set.LedLightActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.account.FencesAddActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.SwipeActionActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.DetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.SplashActivity"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@style/my_splash_theme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".service.DfuService"
android:exported="false"
android:foregroundServiceType="connectedDevice">
<intent-filter>
<action android:name="no.nordicsemi.android.action.DFU_UPLOAD" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service> <!-- 微信登录 -->
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:taskAffinity="${applicationId}"
android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- 微信支付 -->
<activity
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:taskAffinity="${applicationId}"
android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- 支付宝客户端调用和H5页面调用 -->
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden"
tools:replace="android:configChanges" /> <!-- 支付宝客户端调用和H5页面调用 -->
<activity
android:name="com.alipay.sdk.app.H5AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden"
tools:replace="android:configChanges" /> <!-- 百度地图 -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="${BAIDU_MAP_KEY}" />
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" /> <!-- 谷歌地图 -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${GOOGLE_MAP_KEY}" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider> <!-- LogcatActivity 默认是跟随手机屏幕方向的,如果你需要固定竖屏方向 -->
<activity
android:name="com.hjq.logcat.LogcatActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:windowSoftInputMode="stateHidden"
tools:ignore="LockedOrientationActivity"
tools:node="replace" /> <!-- **************************************极光推送start********************************************* -->
<service
android:name=".service.MyJPushService"
android:enabled="true"
android:exported="false"
android:process=":pushcore">
<intent-filter>
<action android:name="cn.jiguang.user.service.action" />
</intent-filter>
</service>
<receiver
android:name=".receiver.MyJPushMessageReceiver"
android:exported="true">
<intent-filter>
<action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver> <!-- **************************************极光推送end********************************************* -->
<meta-data
android:name="com.abbidot.metadata.bugly.key"
android:value="${BUGLY_KEY}" />
<meta-data
android:name="com.abbidot.metadata.mapbox.access.token"
android:value="${MAPBOX_ACCESS_TOKEN}" />
<meta-data
android:name="com.abbidot.metadata.http.request.key"
android:value="${HTTP_REQUEST_KEY}" /> <!-- **************************************Stripe支付start********************************************* -->
<!-- <meta-data -->
<!-- android:name="com.stripe.example.metadata.backend_url" -->
<!-- android:value="${BACKEND_URL}" /> -->
<!-- <meta-data -->
<!-- android:name="com.stripe.example.metadata.publishable_key" -->
<!-- android:value="${PUBLISHABLE_KEY}" /> -->
<meta-data
android:name="com.abbidot.metadata.stripe.release.key"
android:value="${STRIPE_RELEASE_KEY}" />
<meta-data
android:name="com.abbidot.metadata.stripe.test.key"
android:value="${STRIPE_TEST_KEY}" />
</application>
</manifest>