Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 514368bc07 | |||
| 794e1a32fe | |||
| df0333d26e | |||
| 0fd0e245d4 | |||
| e95ffad576 | |||
| 78570eed7c | |||
| dcc751c691 | |||
| 7a9dc27835 | |||
| 3407f1f955 | |||
| 54280b68eb | |||
| cf56f091f3 |
@@ -1,32 +0,0 @@
|
||||
# 构建成功说明
|
||||
|
||||
## 配置过程
|
||||
|
||||
1. 添加了必要的native库文件
|
||||
- 配置了arm64-v8a架构的库文件
|
||||
- 将这些库文件放置在`app/src/main/jniLibs/arm64-v8a/`目录
|
||||
|
||||
2. 添加了着色器文件
|
||||
- 配置了必要的着色器文件
|
||||
- 将这些文件放置在`app/src/main/assets/shaders/`目录
|
||||
|
||||
3. 修复了EventIndex类
|
||||
- 手动创建了`EventIndex`类实现
|
||||
- 禁用了EventBus注解处理器以避免冲突
|
||||
|
||||
4. 修复了Gradle构建问题
|
||||
- 禁用了Glide注解处理器以避免Java编译器访问错误
|
||||
- 更新了`gradle.properties`文件,添加了必要的Java编译器模块导出
|
||||
|
||||
5. 添加了必要的依赖版本
|
||||
- 确保`media3Version`和`okhttpVersion`变量正确定义
|
||||
|
||||
## 构建结果
|
||||
|
||||
成功构建了`mobile-arm64_v8a.apk`文件,位于`app/build/outputs/apk/mobileArm64_v8a/debug/`目录。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 禁用了一些注解处理器以解决构建问题,这可能会影响一些自动生成的代码
|
||||
- 如果需要进一步优化,可以考虑重新启用这些处理器并解决相关问题
|
||||
- 所有必要的native库文件已添加,确保了播放器功能的正常运行
|
||||
@@ -2,7 +2,7 @@
|
||||
</h1>
|
||||
<div align="center">
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
@@ -36,14 +36,15 @@
|
||||
|
||||
## 📥 下载安装
|
||||
|
||||
### 最新版本: v3.0.8
|
||||
### 最新版本: v3.0.9
|
||||
|
||||
| 平台 | ARM64-V8A | ARM V7A |
|
||||
|------|-----------|---------|
|
||||
| **📱 手机版** | [下载 (34MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/mobile-arm64_v8a-v3.0.8.apk) | [下载 (30MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/mobile-armeabi_v7a-v3.0.8.apk) |
|
||||
| **📺 TV版** | [下载 (34MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/leanback-arm64_v8a-v3.0.8.apk) | [下载 (30MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/leanback-armeabi_v7a-v3.0.8.apk) |
|
||||
| **📱 手机版** | [下载 (35.8MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.9/mobile-arm64_v8a-v3.0.9.apk) | [下载 (31.6MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.9/mobile-armeabi_v7a-v3.0.9.apk) |
|
||||
| **📺 TV版** | [下载 (35.9MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.9/leanback-arm64_v8a-v3.0.9.apk) | [下载 (31.7MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.9/leanback-armeabi_v7a-v3.0.9.apk) |
|
||||
|
||||
### 📁 版本历史
|
||||
- **v3.0.9**: [查看v3.0.9版本](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release/v3.0.9) - 新增直播开关控制和UI交互优化
|
||||
- **v3.0.8**: [查看v3.0.8版本](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release/v3.0.8) - UI交互体验全面优化
|
||||
- **v3.0.7**: [查看v3.0.7版本](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release/v3.0.7) - 全面优化稳定性和用户体验
|
||||
|
||||
@@ -132,6 +133,24 @@ XMBOX/
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
### v3.0.9 (2025-10-24)
|
||||
|
||||
#### ✨ 新功能
|
||||
* **直播开关控制** - 新增直播tab显示/隐藏开关,用户可根据需要控制直播功能
|
||||
* **实时倍速显示** - 播放控制对话框新增实时倍速数值显示,提升用户体验
|
||||
* **源管理优化** - 优化源管理模块间距动态调整,界面更加协调
|
||||
|
||||
#### 🎨 UI优化
|
||||
* **滑杆交互优化** - 滑杆圆球大小优化至20dp直径,提升操作体验
|
||||
* **刻度显示改进** - 改进滑杆刻度显示,非激活轨道显示刻度,激活轨道保持干净
|
||||
* **播放进度条增强** - 增强播放进度条动态大小调整功能,修复圆球跳回问题
|
||||
* **直播开关逻辑** - 完善直播开关逻辑和UI交互,确保功能一致性
|
||||
|
||||
#### 🔧 技术改进
|
||||
* **优化内存使用** - 进一步优化内存管理机制
|
||||
* **提升播放稳定性** - 增强播放器稳定性
|
||||
* **增强UI交互体验** - 改进用户界面交互响应
|
||||
|
||||
### v3.0.8 (2025-10-14)
|
||||
|
||||
#### 🎨 UI交互体验全面优化
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
# XMBOX v3.0.7 Release Notes
|
||||
|
||||
## 🎯 重要更新
|
||||
|
||||
XMBOX v3.0.7 是一个重要的稳定性和用户体验升级版本,包含关键崩溃修复和全面的UI优化。
|
||||
|
||||
## 🐛 核心修复
|
||||
|
||||
### 关键崩溃修复
|
||||
- **修复 VodConfig 空指针崩溃** - 解决应用销毁时的 NullPointerException
|
||||
- **修复 LiveConfig 初始化问题** - 增强单例模式的安全性
|
||||
- **优化生命周期管理** - 改进 Activity 销毁时的资源清理
|
||||
|
||||
### 稳定性提升
|
||||
- 添加构造函数初始化,防止 clear() 方法空指针异常
|
||||
- 增强错误处理机制和异常捕获
|
||||
- 全面的空值安全检查
|
||||
|
||||
## 🎨 UI/UX 全面升级
|
||||
|
||||
### 新增隐私协议页面
|
||||
- 符合应用商店规范的隐私政策界面
|
||||
- 完善的任务栈管理,防止用户回退到协议页面
|
||||
- 优雅的应用退出机制
|
||||
|
||||
### 界面优化
|
||||
- **修复按钮文字显示** - 解决长文本显示不完整问题
|
||||
- 调整按钮文字大小:16sp → 13sp
|
||||
- 增加按钮高度:48dp → 56dp
|
||||
- 支持多行文本显示和居中对齐
|
||||
|
||||
### 空状态优化
|
||||
- **恢复完整 Lottie 动画** - 54KB 高质量动画效果
|
||||
- **位置调整** - 空状态动画向上移动 40dp,提升视觉平衡
|
||||
- **川渝方言文案** - 更新为 "这里撒子内容都没得~"
|
||||
- 新增多个专用空状态布局:搜索、收藏、通用
|
||||
|
||||
## 📺 TV版本专项优化
|
||||
|
||||
### 选集按钮优化
|
||||
- **黄色高亮显示** - 选中状态文字改为黄色 (#FFEB3B)
|
||||
- **专用颜色方案** - 新增 episode_text.xml 选择器
|
||||
- **精准影响范围** - 仅修改视频详情页,不干扰其他界面
|
||||
|
||||
### 视觉体验提升
|
||||
- 保持与手机版一致的核心功能
|
||||
- 针对电视遥控器操作优化
|
||||
- 更清晰的焦点状态指示
|
||||
|
||||
## ⚡ 技术改进
|
||||
|
||||
### 架构优化
|
||||
- 改进单例模式的实现
|
||||
- 增强并发安全性
|
||||
- 优化内存使用效率
|
||||
|
||||
### 代码质量
|
||||
- 添加完善的空值检查
|
||||
- 改进异常处理逻辑
|
||||
- 增强调试和错误报告机制
|
||||
|
||||
## 📱 平台支持
|
||||
|
||||
### Android 兼容性
|
||||
- **最低要求**: Android 5.0 (API 21)
|
||||
- **推荐版本**: Android 7.0 及以上
|
||||
- **架构支持**: ARM64-V8A、ARM V7A
|
||||
|
||||
### 设备支持
|
||||
- 手机、平板设备
|
||||
- Android TV、机顶盒
|
||||
- 各类智能电视设备
|
||||
|
||||
## 🔧 开发者信息
|
||||
|
||||
### 构建信息
|
||||
- **编译日期**: 2025-09-26
|
||||
- **Gradle 版本**: 8.13
|
||||
- **Target SDK**: 34
|
||||
- **签名**: 正式发布签名
|
||||
|
||||
### 文件大小
|
||||
- **手机版 ARM64**: 37MB
|
||||
- **手机版 ARM32**: 32MB
|
||||
- **TV版 ARM64**: 34MB
|
||||
- **TV版 ARM32**: 30MB
|
||||
|
||||
## 📋 安装说明
|
||||
|
||||
### 首次安装
|
||||
1. 下载对应架构的 APK 文件
|
||||
2. 允许安装未知来源应用
|
||||
3. 首次启动会显示隐私协议页面
|
||||
4. 同意协议后即可正常使用
|
||||
|
||||
### 从旧版本升级
|
||||
- 支持从 v3.0.0 及以上版本直接升级
|
||||
- 用户数据和设置将自动保留
|
||||
- 建议清除应用缓存以获得最佳体验
|
||||
|
||||
## ⚠️ 重要提醒
|
||||
|
||||
### 合规使用
|
||||
- 本软件仅为技术性多媒体播放器外壳
|
||||
- 不包含任何音视频内容
|
||||
- 用户需自行配置合法的内容源
|
||||
- 请遵守当地法律法规
|
||||
|
||||
### 隐私保护
|
||||
- 新增的隐私协议确保用户知情同意
|
||||
- 不收集用户个人信息
|
||||
- 本地数据处理,保护用户隐私
|
||||
|
||||
## 🙏 致谢
|
||||
|
||||
感谢所有用户的反馈和建议,特别是:
|
||||
- 崩溃报告和调试信息的提供者
|
||||
- UI/UX 改进建议的贡献者
|
||||
- 测试不同设备兼容性的志愿者
|
||||
|
||||
## 📞 支持与反馈
|
||||
|
||||
- **GitHub Issues**: https://github.com/Tosencen/XMBOX/issues
|
||||
- **功能请求**: https://github.com/Tosencen/XMBOX/discussions
|
||||
- **Bug 报告**: 请提供详细的设备信息和复现步骤
|
||||
|
||||
---
|
||||
|
||||
**基于 FongMi/TV 项目开发 | GPL-3.0 开源协议**
|
||||
|
||||
> 如果这个项目对你有帮助,请给我们一个 ⭐ Star!
|
||||
@@ -0,0 +1,62 @@
|
||||
# XMBOX Release Files
|
||||
|
||||
## 📁 文件结构
|
||||
|
||||
```
|
||||
apk/release/
|
||||
├── mobile.json # 最新版本信息 (手机版)
|
||||
├── leanback.json # 最新版本信息 (TV版)
|
||||
├── v3.0.7/ # v3.0.7版本文件
|
||||
│ ├── mobile.json # v3.0.7版本信息
|
||||
│ ├── leanback.json # v3.0.7版本信息
|
||||
│ ├── mobile-arm64_v8a.apk
|
||||
│ ├── mobile-armeabi_v7a.apk
|
||||
│ ├── leanback-arm64_v8a.apk
|
||||
│ └── leanback-armeabi_v7a.apk
|
||||
└── v3.0.8/ # v3.0.8版本文件
|
||||
├── mobile.json # v3.0.8版本信息
|
||||
├── leanback.json # v3.0.8版本信息
|
||||
├── mobile-arm64_v8a-v3.0.8.apk
|
||||
├── mobile-armeabi_v7a-v3.0.8.apk
|
||||
├── leanback-arm64_v8a-v3.0.8.apk
|
||||
└── leanback-armeabi_v7a-v3.0.8.apk
|
||||
```
|
||||
|
||||
## 📱 版本说明
|
||||
|
||||
### v3.0.8 (最新版本)
|
||||
- **发布时间**: 2025-10-14
|
||||
- **版本代码**: 308
|
||||
- **主要更新**: UI交互体验全面优化
|
||||
|
||||
### v3.0.7
|
||||
- **发布时间**: 2025-09-26
|
||||
- **版本代码**: 307
|
||||
- **主要更新**: 全面优化稳定性和用户体验
|
||||
|
||||
## 🔗 下载链接
|
||||
|
||||
### 最新版本 (v3.0.8)
|
||||
- **手机版 ARM64**: [mobile-arm64_v8a-v3.0.8.apk](v3.0.8/mobile-arm64_v8a-v3.0.8.apk)
|
||||
- **手机版 ARMv7**: [mobile-armeabi_v7a-v3.0.8.apk](v3.0.8/mobile-armeabi_v7a-v3.0.8.apk)
|
||||
- **TV版 ARM64**: [leanback-arm64_v8a-v3.0.8.apk](v3.0.8/leanback-arm64_v8a-v3.0.8.apk)
|
||||
- **TV版 ARMv7**: [leanback-armeabi_v7a-v3.0.8.apk](v3.0.8/leanback-armeabi_v7a-v3.0.8.apk)
|
||||
|
||||
### 历史版本
|
||||
- **v3.0.7**: [查看v3.0.7版本文件](v3.0.7/)
|
||||
|
||||
## 📋 版本信息
|
||||
|
||||
每个版本目录都包含对应的JSON配置文件,包含:
|
||||
- `name`: 版本号
|
||||
- `desc`: 版本描述和更新内容
|
||||
- `code`: 版本代码
|
||||
- `downloads`: 下载链接映射 (仅根目录文件)
|
||||
|
||||
## 🔐 签名信息
|
||||
|
||||
所有APK文件均使用多重签名保护:
|
||||
- ✅ v1 (JAR签名) - 最佳兼容性
|
||||
- ✅ v2 (APK签名方案v2) - 全文件签名
|
||||
- ✅ v3 (APK签名方案v3) - 支持密钥轮换
|
||||
- ✅ v4 (APK签名方案v4) - 增量签名
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.8",
|
||||
"desc": "XMBOX TV版 v3.0.8 (Android TV/机顶盒专用)\n\n✨ UI优化:\n• 修复按钮点击效果过于明显的问题\n• 统一使用自定义背景替代系统selectableItemBackgroundBorderless\n• 移除Control.Action样式中的文字阴影效果\n• 优化直播页面选择按钮颜色为主题黄色\n• 调整许可协议页面按钮区域上间距为8dp\n• 修复跨类和换源按钮的文字重叠问题\n• 提升整体UI视觉一致性和用户体验\n\n🔧 改进优化:\n• 优化大屏界面体验\n• 提升播放稳定性\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 308,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.8/leanback-arm64_v8a-v3.0.8.apk",
|
||||
"armeabi_v7a": "v3.0.8/leanback-armeabi_v7a-v3.0.8.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.8",
|
||||
"desc": "XMBOX 手机版 v3.0.8\n\n✨ UI优化:\n• 修复按钮点击效果过于明显的问题\n• 统一使用自定义背景替代系统selectableItemBackgroundBorderless\n• 移除Control.Action样式中的文字阴影效果\n• 优化直播页面选择按钮颜色为主题黄色\n• 调整许可协议页面按钮区域上间距为8dp\n• 修复跨类和换源按钮的文字重叠问题\n• 提升整体UI视觉一致性和用户体验\n\n🔧 改进优化:\n• 优化内存使用\n• 提升播放稳定性\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 308,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.8/mobile-arm64_v8a-v3.0.8.apk",
|
||||
"armeabi_v7a": "v3.0.8/mobile-armeabi_v7a-v3.0.8.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX TV版 v3.0.7 (Android TV/机顶盒专用)\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化大屏界面体验\n• 提升播放稳定性\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 307
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX 手机版 v3.0.7\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化内存使用\n• 提升播放稳定性\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 307
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
# XMBOX Release Files
|
||||
|
||||
## 📁 文件结构
|
||||
|
||||
```
|
||||
apk/release/
|
||||
├── mobile.json # 最新版本信息 (手机版)
|
||||
├── leanback.json # 最新版本信息 (TV版)
|
||||
├── v3.0.7/ # v3.0.7版本文件
|
||||
│ ├── mobile.json # v3.0.7版本信息
|
||||
│ ├── leanback.json # v3.0.7版本信息
|
||||
│ ├── mobile-arm64_v8a.apk
|
||||
│ ├── mobile-armeabi_v7a.apk
|
||||
│ ├── leanback-arm64_v8a.apk
|
||||
│ └── leanback-armeabi_v7a.apk
|
||||
└── v3.0.8/ # v3.0.8版本文件
|
||||
├── mobile.json # v3.0.8版本信息
|
||||
├── leanback.json # v3.0.8版本信息
|
||||
├── mobile-arm64_v8a-v3.0.8.apk
|
||||
├── mobile-armeabi_v7a-v3.0.8.apk
|
||||
├── leanback-arm64_v8a-v3.0.8.apk
|
||||
└── leanback-armeabi_v7a-v3.0.8.apk
|
||||
```
|
||||
|
||||
## 📱 版本说明
|
||||
|
||||
### v3.0.8 (最新版本)
|
||||
- **发布时间**: 2025-10-14
|
||||
- **版本代码**: 308
|
||||
- **主要更新**: UI交互体验全面优化
|
||||
|
||||
### v3.0.7
|
||||
- **发布时间**: 2025-09-26
|
||||
- **版本代码**: 307
|
||||
- **主要更新**: 全面优化稳定性和用户体验
|
||||
|
||||
## 🔗 下载链接
|
||||
|
||||
### 最新版本 (v3.0.8)
|
||||
- **手机版 ARM64**: [mobile-arm64_v8a-v3.0.8.apk](v3.0.8/mobile-arm64_v8a-v3.0.8.apk)
|
||||
- **手机版 ARMv7**: [mobile-armeabi_v7a-v3.0.8.apk](v3.0.8/mobile-armeabi_v7a-v3.0.8.apk)
|
||||
- **TV版 ARM64**: [leanback-arm64_v8a-v3.0.8.apk](v3.0.8/leanback-arm64_v8a-v3.0.8.apk)
|
||||
- **TV版 ARMv7**: [leanback-armeabi_v7a-v3.0.8.apk](v3.0.8/leanback-armeabi_v7a-v3.0.8.apk)
|
||||
|
||||
### 历史版本
|
||||
- **v3.0.7**: [查看v3.0.7版本文件](v3.0.7/)
|
||||
|
||||
## 📋 版本信息
|
||||
|
||||
每个版本目录都包含对应的JSON配置文件,包含:
|
||||
- `name`: 版本号
|
||||
- `desc`: 版本描述和更新内容
|
||||
- `code`: 版本代码
|
||||
- `downloads`: 下载链接映射 (仅根目录文件)
|
||||
|
||||
## 🔐 签名信息
|
||||
|
||||
所有APK文件均使用多重签名保护:
|
||||
- ✅ v1 (JAR签名) - 最佳兼容性
|
||||
- ✅ v2 (APK签名方案v2) - 全文件签名
|
||||
- ✅ v3 (APK签名方案v3) - 支持密钥轮换
|
||||
- ✅ v4 (APK签名方案v4) - 增量签名
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.9",
|
||||
"desc": "XMBOX TV版 v3.0.9 (Android TV/机顶盒专用)\n\n✨ 新功能:\n• 新增直播开关控制功能,可隐藏/显示直播tab\n• 新增实时倍速显示功能,播放控制对话框显示当前倍速\n• 优化源管理模块间距动态调整\n\n🎨 UI优化:\n• 滑杆圆球大小优化至20dp直径,提升操作体验\n• 改进滑杆刻度显示,非激活轨道显示刻度\n• 增强播放进度条动态大小调整功能\n• 修复播放进度条圆球跳回问题\n• 完善直播开关逻辑和UI交互\n\n🔧 改进优化:\n• 优化大屏界面体验\n• 提升播放稳定性\n• 增强UI交互体验\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 309,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.9/leanback-arm64_v8a-v3.0.9.apk",
|
||||
"armeabi_v7a": "v3.0.9/leanback-armeabi_v7a-v3.0.9.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "3.0.9",
|
||||
"desc": "XMBOX 手机版 v3.0.9\n\n✨ 新功能:\n• 新增直播开关控制功能,可隐藏/显示直播tab\n• 新增实时倍速显示功能,播放控制对话框显示当前倍速\n• 优化源管理模块间距动态调整\n\n🎨 UI优化:\n• 滑杆圆球大小优化至20dp直径,提升操作体验\n• 改进滑杆刻度显示,非激活轨道显示刻度\n• 增强播放进度条动态大小调整功能\n• 修复播放进度条圆球跳回问题\n• 完善直播开关逻辑和UI交互\n\n🔧 改进优化:\n• 优化内存使用\n• 提升播放稳定性\n• 增强UI交互体验\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 309,
|
||||
"downloads": {
|
||||
"arm64_v8a": "v3.0.9/mobile-arm64_v8a-v3.0.9.apk",
|
||||
"armeabi_v7a": "v3.0.9/mobile-armeabi_v7a-v3.0.9.apk"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX TV版 v3.0.7 (Android TV/机顶盒专用)\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化大屏界面体验\n• 提升播放稳定性\n\n📺 专为电视优化:遥控器导航 | 10-foot UI | ARM64/ARMv7",
|
||||
"code": 307
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "3.0.7",
|
||||
"desc": "XMBOX 手机版 v3.0.7\n\n✨ UI优化:\n• 全新自定义开关按钮(黄色/黑色Material Design风格)\n• 优化电量百分比显示(16sp字号,2dp间距)\n• 精简设置页面,隐藏壁纸功能\n\n🔒 安全增强:\n• 启用v1/v2/v3/v4多重签名保护\n• 提升应用安全性和兼容性\n\n🔧 改进优化:\n• 修复设置页面崩溃问题\n• 优化内存使用\n• 提升播放稳定性\n\n📱 支持架构:ARM64-v8a | ARMv7a",
|
||||
"code": 307
|
||||
}
|
||||
@@ -1,6466 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Created-By: 21.0.5 (Eclipse Adoptium)
|
||||
|
||||
Name: res/Wr.xml
|
||||
SHA-384-Digest: FeAkoiaPoF5YvAo8aUjaAXtB1MVdnVtBQraON8VOaekL5JNzvnQCXj9p
|
||||
bDx6K0yo
|
||||
|
||||
Name: res/Hd.xml
|
||||
SHA-384-Digest: AHWZWIqNT/CxfnhY61oLJvRYY3a4U+e3PFZGTBzFYL6LS/sXpakRifuD
|
||||
otX8UG5y
|
||||
|
||||
Name: res/9V.xml
|
||||
SHA-384-Digest: wm9MBE4JMYxF5HdcHFD39/KKOsrRg5fTaL9snzci7kHisXvkqgZMaXiK
|
||||
FIkYXMUN
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_item_tint.xml
|
||||
SHA-384-Digest: KMw2PzElS+30umtOmqFkVq5ny/MJWk+60n3Q781K312XfV35a1gSheOr
|
||||
q2l5saWn
|
||||
|
||||
Name: res/uT.xml
|
||||
SHA-384-Digest: fNTm98/bW7GXlde1vfsjR3frZ424pxGSLwP+M7qc549yTJE9lx1DMFvO
|
||||
34KeCEWn
|
||||
|
||||
Name: META-INF/versions/21/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: TbyJ6qCRxCt/AybFjT/s7Kmwy4DxLE9BLAftCH11F6CbFHOduIhi1E8L
|
||||
feqYEqHJ
|
||||
|
||||
Name: res/color/material_on_primary_disabled.xml
|
||||
SHA-384-Digest: YesuHUuFqEjUqsq4V677Oj+vNWlWEy69qQIigKho3+TuNFRjFzhRcKLm
|
||||
gqOAKU74
|
||||
|
||||
Name: res/bN.xml
|
||||
SHA-384-Digest: Ep7zVkOgJ/JZ6ODeFxFLTlpMAGt27J+E/LHm0QCgyAKHSffAtiisT0vN
|
||||
GenoHYQb
|
||||
|
||||
Name: res/Jd.png
|
||||
SHA-384-Digest: Oqb0UknipYMIpk1ZU0j0Q1H0pd3jUfX4yU8dTgT9IsoLGLog+ATptxCY
|
||||
eAhTFGuL
|
||||
|
||||
Name: res/th.png
|
||||
SHA-384-Digest: KLRp/Q5xLQfrH8V0nCHSFJ4ikFpB7A1b6YWTEBqa79ZUrTu44LWe4zh2
|
||||
VOoAyQSA
|
||||
|
||||
Name: res/wP.xml
|
||||
SHA-384-Digest: CFuZ1t/AepikV2wHgjObm8Kr3FPfDAtUqldxDQ/F7wshB3g0KOA1H9Wj
|
||||
XP5dn9XU
|
||||
|
||||
Name: res/33.9.png
|
||||
SHA-384-Digest: IVf1Qf7BIIfnQFstpAKRqkElX2/fI+wVFLypUvOMcYKCz1VkNcQ4DgxH
|
||||
foNFQ62N
|
||||
|
||||
Name: res/7I.9.png
|
||||
SHA-384-Digest: 9G0UTP23Y6nDUdioQ5UNGJiupUfgQv8ukk963j6JDvdWoiOcrw4ze2UX
|
||||
5r6KyLAN
|
||||
|
||||
Name: res/NA.9.png
|
||||
SHA-384-Digest: B8KJ11miYm9JCfIC+A936hlIxbYk+hQFpW/R84b1jJAs7ETiu9BsrwxO
|
||||
kJom3art
|
||||
|
||||
Name: res/Q5.xml
|
||||
SHA-384-Digest: Dl+pzUm6/haDzZ6hBrtAF8VRURax1MVCHcy4Lvp+0u6bSznNKAnnW4gt
|
||||
yJn2Ke0E
|
||||
|
||||
Name: res/QD.xml
|
||||
SHA-384-Digest: k9Q7nPSdEdHo/jtnXBJjOui1BGFkGOnFeWwzf4tRcuXY69UixciZfjCF
|
||||
P1yBKVkw
|
||||
|
||||
Name: assets/js/lib/http.js
|
||||
SHA-384-Digest: TP64BIjKKOqmCaCzQ2qx4sPuijAHUZCKbOBMzNfIDmtc8/Duzkfdmjyv
|
||||
BE7opfYV
|
||||
|
||||
Name: META-INF/services/org.xmlpull.v1.XmlPullParserFactory
|
||||
SHA-384-Digest: oWMKhOVUCmOjRwR5xH7R6FS251zd/F5rRXXlLWopfw+bma/ESQ2Lgg4e
|
||||
FY7cbhI8
|
||||
|
||||
Name: res/OH.xml
|
||||
SHA-384-Digest: 6PLWkXdcE+5OdB1cGWjQ9UBOtBlpxkhTjdA9x+vZn+wm30tzqhaABINV
|
||||
6xDIeip0
|
||||
|
||||
Name: res/color/m3_bottom_sheet_drag_handle_color.xml
|
||||
SHA-384-Digest: UOvLdh8LVd0Oewu21tYILT5eFSX2R2XYTSgUyEquixG43H8cjWg7hkNn
|
||||
1hzXjXZu
|
||||
|
||||
Name: res/Da.png
|
||||
SHA-384-Digest: wzFng1EDL7kjdg17qp2oyinT2LjNz0IRhzv5pxk00AtLh3G7Z1P7+rUK
|
||||
LsB/tz/X
|
||||
|
||||
Name: res/5O.xml
|
||||
SHA-384-Digest: eVra7HdB8a34FKh93BGI7RkNBquDhNwMRTRzdOIYSrETaKp9W7fu3B/X
|
||||
tQzJY6Gy
|
||||
|
||||
Name: META-INF/androidx.customview_customview.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/tw.png
|
||||
SHA-384-Digest: NO87qio2f2gAD8Uf1LJIzLyrnKRqRaB/xqdZK2ccsQodEfPVG5taf6Vu
|
||||
o9o5W2Nf
|
||||
|
||||
Name: res/uX.png
|
||||
SHA-384-Digest: Kdx6cWrpF713zuAqoIjDhCHAs+A9ATE2nNrlSYDY5c6A3dvgV4STlVnW
|
||||
srSq2COy
|
||||
|
||||
Name: res/1K1.png
|
||||
SHA-384-Digest: aoJRQ3O4Bi3sqiG0FPmTqRW0x1K63uS6fGDbr/kDE3ScHJAwwjLV/NCC
|
||||
l4/cjZz4
|
||||
|
||||
Name: META-INF/androidx.room_room-runtime.version
|
||||
SHA-384-Digest: UV0/8VeF1BuHFKPPnZIqWGT2E7jYc/X6I1fP+H83pY8Me+l+DQRK0YpH
|
||||
I0kTqXfT
|
||||
|
||||
Name: res/TL.xml
|
||||
SHA-384-Digest: cWL+WiEGL/JWjqoDcyDZjKUPcitN6SBg99/NrTISSmVt3On2mYhvm/Vs
|
||||
QyQcGzSY
|
||||
|
||||
Name: res/0K.xml
|
||||
SHA-384-Digest: J7go12UHfiaPOl2H2TjZjRCcvSK7BmBHGwM/rw+L7yd98hDPLyQpCCZJ
|
||||
Wi4iZ1xo
|
||||
|
||||
Name: res/color/abc_primary_text_material_light.xml
|
||||
SHA-384-Digest: +KA798NtG+9aolNa9CrCeiiZe/lee4rQI5TTgAXTLai4yDT1cnWzqOFd
|
||||
Jlkpm0Xf
|
||||
|
||||
Name: res/hm.xml
|
||||
SHA-384-Digest: ZAp+uPvMfr5YYgaQQD96XsRWOkUi7pEcO+3LJh2uqCAybj4oj3HgYqt2
|
||||
EAXmz3FC
|
||||
|
||||
Name: res/et.xml
|
||||
SHA-384-Digest: kBYNwIPJ3YvdFjWNWaWn2zrD+aKWv3IKTZ567YEHh/hjUnj24SyhXd3h
|
||||
qnKD1AKs
|
||||
|
||||
Name: res/cZ.xml
|
||||
SHA-384-Digest: +Ev0didhwzfMXeOgl8ZM2XFZyaBQvvElzD3bYyENofjfHagBfqA/zCvA
|
||||
j7J4g3oo
|
||||
|
||||
Name: res/B6.xml
|
||||
SHA-384-Digest: aXOzJMkWx7O+xgplQezZTIjnzCq8peJFz0Y2eESzP8hUn8ObWC8OlRCF
|
||||
YCAumDFh
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_light.xml
|
||||
SHA-384-Digest: F2OQR9AOmaBufltABYRUjljPN58yi9Bpyg86Pi3RC4d8Niy5nzux5CM1
|
||||
FLtaC/CH
|
||||
|
||||
Name: assets/test_base_module1.mjs
|
||||
SHA-384-Digest: 2KaxZADKC51gWa714TbU38Vt7i5vfV0wUXFhChg4O4sC3obCOMpD8YaL
|
||||
51biqOg+
|
||||
|
||||
Name: res/_7.xml
|
||||
SHA-384-Digest: LcFsY3sWrskIg/lREszJIFaYDsl8Ui2t7PNp6P58LVLQg6Wn2AgOQi5X
|
||||
6qbFlNxk
|
||||
|
||||
Name: res/color/m3_slider_thumb_color.xml
|
||||
SHA-384-Digest: 7tbkIz6usR6THg4cM8fYICNQqNZXFHmqZ0gl7S5zuco5P/0lQqP7NUgR
|
||||
vR7G8f02
|
||||
|
||||
Name: res/sX.xml
|
||||
SHA-384-Digest: zv8rLcj8yhP8n7jpPtbQ1+xuQOiNDGJ7Ni4vulKLGm2YVxYLudY4sOzD
|
||||
e1Scsk7M
|
||||
|
||||
Name: res/color/m3_timepicker_button_text_color.xml
|
||||
SHA-384-Digest: v+9HkQ3B/5/yFrlFRyIY2s5RT0/WoMkWkP1DXQQ0s8B+QAdIWSv1oVPK
|
||||
WEo4wgJ0
|
||||
|
||||
Name: res/jx.xml
|
||||
SHA-384-Digest: AzKMuVQKyn8CZr663gvWC3rHUFeVbN/R1DkaP/KZ/dhwsMKiXUA1OFfd
|
||||
hi40whny
|
||||
|
||||
Name: res/color/m3_slider_thumb_color_legacy.xml
|
||||
SHA-384-Digest: OYF8ianCI1qfFryxqtQVB6g4Bj76e3vA51TGHUnqRSWMlj1LdWpjX0FR
|
||||
2uncfnbM
|
||||
|
||||
Name: res/UX.xml
|
||||
SHA-384-Digest: OYOKppsyj7G2Vtjfnw+7/UxWYNGvzvcs+ILm9DbLnkXIN2z05/6ZN2IQ
|
||||
bxbcTzE2
|
||||
|
||||
Name: res/df.xml
|
||||
SHA-384-Digest: 6+bRiFf3ZlwdQrq5CH9Ce+ZDfNJKQ38vAhBkuqIChUmi+mw7O4qlFKFc
|
||||
r568pbNL
|
||||
|
||||
Name: res/5z.xml
|
||||
SHA-384-Digest: jWlO5VVu7nJ0jjpbnhXMreHbw/CRfZYMrtgHpjkK3R2BJXTRA7SK/PXL
|
||||
agnizA6q
|
||||
|
||||
Name: res/bj.xml
|
||||
SHA-384-Digest: 9Ntk83v3uZIfZdnX2wKLpu2icOwNXX/Q8duriJH/Uy1sQtSLthAGB/DX
|
||||
yw80MyK1
|
||||
|
||||
Name: res/color/text.xml
|
||||
SHA-384-Digest: Xwrwje5d+CAbRivca2/PWjp4f8WzB03qatA8rCkr5DY6orT3YkiQC6Xl
|
||||
HeIxR7yP
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate-ktx.version
|
||||
SHA-384-Digest: GKqkS0cvyjjgH1wxhzzW5U7S04+7atOY/hnmeP/2ShskJ+QcyWqyhIai
|
||||
b/q/Jwoe
|
||||
|
||||
Name: res/4_.xml
|
||||
SHA-384-Digest: mQ2QaJRDZWGArOB5VMp4LBNDixpZzjwWWAYUjdSddmtVeiKGNpIYw+k2
|
||||
PLotOj5j
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_medium.xml
|
||||
SHA-384-Digest: O5cas8KBMg0v+OJHvW7MQPomgu5ejvFuACtz/ea1Bred+ldhNnyYyufU
|
||||
c9/17sj+
|
||||
|
||||
Name: res/hZ.9.png
|
||||
SHA-384-Digest: nCGpqni5PhvfilXFqTcZFqMHuecWmpOBBxo9qT33++to8FC7lHET8mme
|
||||
CRhYvSF+
|
||||
|
||||
Name: res/nT.xml
|
||||
SHA-384-Digest: uILCPcedOXKSiiMOTkFCyDrMPUSJQVGH+2Ym1xtDbpK2o4RnEQwMBFI5
|
||||
aybiWEAo
|
||||
|
||||
Name: assets/images/ic_search.svg
|
||||
SHA-384-Digest: /YqoVkuc+3Up7l65fDsdHmNwrW52N0GMUs19bHnIF/8XhbFA3/Pv47Q2
|
||||
+xTqScup
|
||||
|
||||
Name: res/s3.9.png
|
||||
SHA-384-Digest: RoYKlQTVPOxcdgOWQ1C83DWuDr3zditDKyI8mpLMTzM/GTqZ3yxegHGF
|
||||
uA8Zsh9F
|
||||
|
||||
Name: res/aF.png
|
||||
SHA-384-Digest: n9OweBXMmsKvavT81W56dg+DMy62M4pPV1JERYQyIQih7b59/Mi0AgHA
|
||||
7XF/lpin
|
||||
|
||||
Name: res/up.xml
|
||||
SHA-384-Digest: z9DGAVXviRdft4lf+UCkJ+3fVwCz+tn2Wh7vqyen2IPMDv9fTpGrSiAY
|
||||
n0nQ4ZxB
|
||||
|
||||
Name: res/yn.png
|
||||
SHA-384-Digest: Bp+ncxW+44yXFegXfxklvpr3EwVodWtZVlYRs2pXzF1anWUPfVVVQ93J
|
||||
KBJ932bP
|
||||
|
||||
Name: assets/css/style.css
|
||||
SHA-384-Digest: 25SWlfGdpPLqDl5oicXGnamLLQivbL5xLxLSxXc2Bb6oKrfDBoQZ9HKE
|
||||
ZwHr1ZQY
|
||||
|
||||
Name: XPP3_1.1.3.2_VERSION
|
||||
SHA-384-Digest: OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua
|
||||
0vFImLlb
|
||||
|
||||
Name: res/P8.xml
|
||||
SHA-384-Digest: KcmcKcHEJW7BYIEf10ceNbDUuT0c6xqAxy3Txrs5lMbeZzzd9AMpADw/
|
||||
NCjkcRB1
|
||||
|
||||
Name: res/color/m3_slider_active_track_color_legacy.xml
|
||||
SHA-384-Digest: dQ5r949jJvVphOFnkCQr2ZDH4tYwgIl1REMLpru78OOT3vQrgIRoWPJx
|
||||
miJXNokv
|
||||
|
||||
Name: res/gr.png
|
||||
SHA-384-Digest: j7KzS1tdRqP5iiOnZUdEydx6ER97Rn7+H5ibVq56ixT11oxtRhIQEALd
|
||||
9MY3U3UD
|
||||
|
||||
Name: res/i4.png
|
||||
SHA-384-Digest: 14Q+WIAO3mPU+og8nQpE38Pvdq5y21Qs3ZUms7DqNaiLzl2+6F9HWtXb
|
||||
IxoOqCaP
|
||||
|
||||
Name: res/oF.png
|
||||
SHA-384-Digest: LImcqq2kod5mC6MfrhbmYyk94R0cRDJ4ELIZxfzpc+SsqseQKHylCcgn
|
||||
l6Tw95EC
|
||||
|
||||
Name: res/gR.xml
|
||||
SHA-384-Digest: 1yqpH/6IxymCJRKLiDj+WjpVjXLL8eAHBnnDUwWyHiSCP4RhUHxjZGXb
|
||||
DnGGZuBW
|
||||
|
||||
Name: res/UO.png
|
||||
SHA-384-Digest: uZCUKm10coNOiaAS3vVWsQlXO3BQDzNVlKPfGdRPFn86N5IRhM2qEnaj
|
||||
gOKLWiyz
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral96.xml
|
||||
SHA-384-Digest: 1v9oEBEaT2F/B4S706RiRXc51Q+a66wkpzKOaOUWItNRgZFlAeSO2/pc
|
||||
MibJzemw
|
||||
|
||||
Name: res/L1.xml
|
||||
SHA-384-Digest: aiUV66RF+3I2z8lySBPW4ZW+1+dbF64gvn0PtC7u2ffoqxetsYwx+XXW
|
||||
HLMd+8gw
|
||||
|
||||
Name: res/color/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: fR6CskVfknr/NLBqConi+kxVEUaQ8RE8x7WbA4uNIhZWbI6HCmW+I6Hh
|
||||
nSFIEA2J
|
||||
|
||||
Name: res/op.9.png
|
||||
SHA-384-Digest: 2mHHlTQgZ9qd97/zL8SY+wYgJYRXd0Ca72Igc4iOMUXkdkQm8O1XUN3b
|
||||
DLfFumKK
|
||||
|
||||
Name: res/kh.xml
|
||||
SHA-384-Digest: 8fP0GswmPAUOpSmZ4pbEq5q/p6mWFGOwy3LiUoU44bsQKDg+NeJCQCCv
|
||||
Z6PLzvFu
|
||||
|
||||
Name: res/M2.png
|
||||
SHA-384-Digest: MGbEeg3Tu6gA6C79pNs6OgzvqVaeXrXkHNipcBQ/wHK0Vfvzyh3AptVQ
|
||||
+Fj3hY/W
|
||||
|
||||
Name: res/gn.xml
|
||||
SHA-384-Digest: AJbY63dxr6yjSHZhLlOGJ00CiCbcSv178pMoANeW17ZpWksVZUBIMibm
|
||||
6a0OsCQB
|
||||
|
||||
Name: res/5D.png
|
||||
SHA-384-Digest: DF1wS5SuWtTn8q3UTfNhvBvi89B1qdfU7Qu/UtswZPjwgVOGvQOQsAe7
|
||||
fTbrEfCw
|
||||
|
||||
Name: res/qz.xml
|
||||
SHA-384-Digest: 7iC/kauCAZRBGzdo0GYLenSkn01v552Hbl3y2l6/+m3ySIWKRfwN7yYw
|
||||
N5xc4raV
|
||||
|
||||
Name: res/Mh.xml
|
||||
SHA-384-Digest: RrrWIvXaJvCxyegmSNubE66BcOCY0iK0lWK3+pk7qd7EbOTHas9AzsXy
|
||||
4S5rNSQ1
|
||||
|
||||
Name: res/color/m3_textfield_filled_background_color.xml
|
||||
SHA-384-Digest: I5tjWF3tU6iYm3NzT3RI6qZ2sM9uC9i/2N3OAj9/ICY7/OVKWbDALsPI
|
||||
H4p9xr07
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: /lty1GRN1Yo70zrjcI6F6jAB8eJqha1iUzSKRKWQus1xbcQzcHZTKH4c
|
||||
HMXiZcFT
|
||||
|
||||
Name: res/oB.xml
|
||||
SHA-384-Digest: 5d8Qo9B57aYwqBd+2gYdHBYVwoq+g1x0m/1ZLZTsUJ07n2JK2MMvi4Vr
|
||||
vCavlHZn
|
||||
|
||||
Name: res/GM.png
|
||||
SHA-384-Digest: yxAVrJXab24sZzkD/NnFm3h1YjjvERO/j00PtsZ1Uskx1qA2zpEuXXnf
|
||||
F+DrP4iK
|
||||
|
||||
Name: res/fd.xml
|
||||
SHA-384-Digest: fikEx1M9FJ+DapXNbaV+okkupGMAMssIFp4zX92bWPTY3bPd7qkS95qm
|
||||
EWNs2Cd4
|
||||
|
||||
Name: res/2T.xml
|
||||
SHA-384-Digest: RZnX85Me8QAezbSECuX0LHh5qsxyCn9wl3OIFXqorcZSmTk20yTsV2Jz
|
||||
ikD8GeQr
|
||||
|
||||
Name: res/color/m3_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: i0wGxbpQnziUY52oGnfJq5ruD+yjjwiYZk2UQ7CQR6Qyky0+bE5nKlbp
|
||||
I8hsvfKM
|
||||
|
||||
Name: res/YV.png
|
||||
SHA-384-Digest: rMiiTC7VuprDcGQPduQFLXQnskUlMrZmlcS2awkDI2QRY/Ps7+S+zhi3
|
||||
SnnAaK/5
|
||||
|
||||
Name: res/Z7.png
|
||||
SHA-384-Digest: u245Lf57NuB2CcWL/a0Fdw/MEm9nsE6fcgHbt48YHp4Oe2DSU63nt68i
|
||||
EOu4k6hT
|
||||
|
||||
Name: assets/dexopt/baseline.prof
|
||||
SHA-384-Digest: WN5SfC5zU5Tbkb7NNJzd6Jqywip+h3qEra3zaFRAl8jMdJpDPddGCpIa
|
||||
UPJhAIC1
|
||||
|
||||
Name: META-INF/androidx.exifinterface_exifinterface.version
|
||||
SHA-384-Digest: JSbQbclh2jKclz7IkGQq8Am5k+8z/fT/NGDXNjG76E/9UXFMKo1B0JfE
|
||||
J09pvEqz
|
||||
|
||||
Name: res/E5.png
|
||||
SHA-384-Digest: roUVOU3lWjYIu0ufxMqCdQAhG6Vj+JbxSudwLlL1o4YXzOVihxS0w3A7
|
||||
0JuT0Zah
|
||||
|
||||
Name: res/Fu.xml
|
||||
SHA-384-Digest: a2JRJaznkW9zbTYWaJ2WgnY5pJrskfawQiOQZzz3aKsUU4p1nxkJSL+j
|
||||
Lf/BNX6h
|
||||
|
||||
Name: res/QZ1.xml
|
||||
SHA-384-Digest: Svjexdh2oPS5KrAk+x6/phnAhpVklCWm5t+82ihPVPSkFzYt+LT2jeyD
|
||||
hkV0li5Q
|
||||
|
||||
Name: res/tj.png
|
||||
SHA-384-Digest: 8Z2ILIeh/ef4SRx/+mG6egFCU93eDapgDOIfxYyh+PlagyuaUPqv9bL/
|
||||
ss7lfrIf
|
||||
|
||||
Name: res/Gt.9.png
|
||||
SHA-384-Digest: Rx6cEGyWnpiDMzb2l9CyUM2PXOvElEvmNcOmbvR1ka1rR9Te8oLymht2
|
||||
UL9RaV+J
|
||||
|
||||
Name: res/Yp.png
|
||||
SHA-384-Digest: 4Fn4D83eQlZ+bREJCW4+AsnWfA6jtVn95pi6Q+sAWDYGuLU93Bc2Hs1z
|
||||
bFdHykHT
|
||||
|
||||
Name: res/lv.xml
|
||||
SHA-384-Digest: fRlgJAhCENJPc6m1ZfeF1BIcwQzKB4yxOV5xqr75MaotGBjUriC5dv6l
|
||||
zGJmKxRm
|
||||
|
||||
Name: res/_o.xml
|
||||
SHA-384-Digest: HuWBFlf876klFny//Rgc7EfL331YgPBbLivfTPnqDyLgbfZM3X/1P+WG
|
||||
/IEVoFSU
|
||||
|
||||
Name: res/a1.xml
|
||||
SHA-384-Digest: UYlNBlEHUQ/iCU35pmss0i0lqUbWakuj6t+62J1GKaHDgjmUKSuXa8u6
|
||||
GPZQAhM/
|
||||
|
||||
Name: res/jz.xml
|
||||
SHA-384-Digest: kFSL3btGDtxiozxA5yyd7Y8SormB/YQqvDXU4tLpZY+X9vhEGT83rbjU
|
||||
H18znDTh
|
||||
|
||||
Name: res/PV.xml
|
||||
SHA-384-Digest: Wdim9MiZ8C8WgzvQu8RDttuxwZn36cPKztaXvtbzUtyIsAxr+qN1odnn
|
||||
m1sid9/r
|
||||
|
||||
Name: res/Q7.xml
|
||||
SHA-384-Digest: 7KOyrg/v2gKgmTH3fgs9+eqEqXw9g2S3wUIUNmKR6V3J4+SbuYPI0gVZ
|
||||
rpQVd/NK
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/didl-lite
|
||||
-1.0.xsd
|
||||
SHA-384-Digest: 0WBLD7oI+t42TzR1++lY32QUFmLeDSoQoCveG1+gUubvsUX/s7+6gEU5
|
||||
1cSeQiem
|
||||
|
||||
Name: res/3U.xml
|
||||
SHA-384-Digest: g5nnTaKRQlcAjOLEn0aBbGMLIcj+QqEANG+A2cnJ9NAC2PXmQSXlvKX/
|
||||
X3Hx3xoZ
|
||||
|
||||
Name: res/46.xml
|
||||
SHA-384-Digest: TxCetxaAWg63BiErctiZGpUxfJ3DG4/wu4bnKFrdtKKV+sGqEi80kRGU
|
||||
dh66/GON
|
||||
|
||||
Name: res/color/mtrl_tabs_ripple_color.xml
|
||||
SHA-384-Digest: 56r7LtTtHv5UbmtHSyTvLdw/7Lk6A8gp45sW1o1A7pprM5InyXMZ3miR
|
||||
osclmmhV
|
||||
|
||||
Name: res/My.png
|
||||
SHA-384-Digest: Y5WU1ffZ7NEOS2MsJG1TXc9RUe4iNlwvf0jOieiqmElAwdrvS4TdiA8p
|
||||
5FmaxRJb
|
||||
|
||||
Name: res/uR.xml
|
||||
SHA-384-Digest: xn0hHZptLlC3Md2l8AN5P8WIeBnPjlo7ikVjWYEJjP9FvsTJPP+UtSHt
|
||||
8vfDokCA
|
||||
|
||||
Name: res/ec.xml
|
||||
SHA-384-Digest: OjYxlix2hptDp+uKTl5ffvjEYFq4YExBG2Jfk9Xf1i8vm8xrMHDCMQl9
|
||||
VttbnWtB
|
||||
|
||||
Name: res/pn.xml
|
||||
SHA-384-Digest: pX4NdvOwcig10llXsx3bpu9MuuACaHdsQlqajDTjl8YkNzJvLLFkCLpj
|
||||
d18lSkt4
|
||||
|
||||
Name: lib/arm64-v8a/libjpa.so
|
||||
SHA-384-Digest: xt5vpJuLid1NjkUDpoYj5Bqig+hoptx/k+il+CdPlCeEiMXxZO81Tzvl
|
||||
E0hGK6DY
|
||||
|
||||
Name: res/5U.png
|
||||
SHA-384-Digest: LDpNnOBGQEQ7LArP33nwEVsY4PIKCvWc6VacJ9Wn6vqXKxZul9fY85Qx
|
||||
ekFnoEOv
|
||||
|
||||
Name: res/YW1.xml
|
||||
SHA-384-Digest: kuqc3W+bteryOxjPXQuLlxOA0HCywrLJCnaV5IbXzLLc0xHARDFQrR3H
|
||||
g9UAfMaD
|
||||
|
||||
Name: res/GK.xml
|
||||
SHA-384-Digest: wN25YKIx3RuMvZ1SI/98UYNqLn1EcOZDZcWnUINe8wypd6pJj0ma9iwP
|
||||
e1jesWFf
|
||||
|
||||
Name: res/ZM.xml
|
||||
SHA-384-Digest: jJBBaY9/Vsb60zxv/1KweGi1Vo9MLDN01zH1GqQBLwDncLZyoeOoCNGK
|
||||
0hvGTkvp
|
||||
|
||||
Name: res/Ui.xml
|
||||
SHA-384-Digest: bXYSx5E2G6GP/t9R4xumxUNTJYLPmvXLfzq4mZsdhHWZko+K+E6aOsMJ
|
||||
MGT7a5C0
|
||||
|
||||
Name: res/8s.xml
|
||||
SHA-384-Digest: vwPOyn9EKUjvLLqfSgIl1LvOOpgwYBB7vnY9F7id6FGVkS7iqecKVmuq
|
||||
PppMNGmV
|
||||
|
||||
Name: res/9T.xml
|
||||
SHA-384-Digest: FYmHbSuXyGKX/nwewD/dokhrBRkG2stWV1vTgRM9LQnvVUuxZ/fzrTlq
|
||||
iHSIWFDM
|
||||
|
||||
Name: res/color/control.xml
|
||||
SHA-384-Digest: OFg809tgpX70ka6nLYGrXCYdXCZjsiN0XgBJwXflSOPVP5KiS94zVvco
|
||||
0IRFIUZj
|
||||
|
||||
Name: res/n4.xml
|
||||
SHA-384-Digest: MxNb5UJZ1jWck8uhwREmAx/CR7KikqDp7xCP8GcQmYfbmVkUWYLr7r2N
|
||||
07m5ImAf
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: qR6pgd6+pLD2ulXMzQ8ReuXGP+oxhJwP9hv6NHDu6aAC8/ZqI7VsOkgk
|
||||
dZKCs3Qj
|
||||
|
||||
Name: res/42.9.png
|
||||
SHA-384-Digest: mPSo5bc65hWHDMNm404QqLkiTzN7o91H6pvf/wWJI+r5s/KgbBIM10os
|
||||
K29UkTHN
|
||||
|
||||
Name: res/rJ.xml
|
||||
SHA-384-Digest: zlMa0A/AL/qNnzwF2kZC+/fyQJVMS5dDaGwujDBrYjLpVir+qHSy8zIY
|
||||
ZXaHzYgL
|
||||
|
||||
Name: res/EZ.xml
|
||||
SHA-384-Digest: XLp9dqT9dsqcWQO81eTeReawmfs28CMLmed+f7Dm1ZBn5f9AUN6eF6KF
|
||||
4kxCod56
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/native-image.properties
|
||||
SHA-384-Digest: zoA9KmEQ27nYb73akBKARExO8NXH/TambAFsa4m/FTv7keWTOeP3IP4O
|
||||
TPWGMve8
|
||||
|
||||
Name: res/mf.xml
|
||||
SHA-384-Digest: Abe/380hXlxRFuCMI1hdhNrdj8RsLSNw5pUsZmptTYlDZQjXe9nLdlYK
|
||||
M8Fnx9cO
|
||||
|
||||
Name: res/JS.xml
|
||||
SHA-384-Digest: cyGojguDoy2TZDXoBpdfSDP6cu6yM8ip+N8wJlvU22Esb3qEg+hsZy8n
|
||||
Layj68Zk
|
||||
|
||||
Name: res/color/material_on_background_disabled.xml
|
||||
SHA-384-Digest: k4jU/7IJi24ZHkfD3zEGtOLX3mspQlfhyXsCC/3g3s/p7l4AIB8CbItC
|
||||
PNCm82LN
|
||||
|
||||
Name: res/-6.xml
|
||||
SHA-384-Digest: 95OQ1AeTyf3TqdZ7PbIISt1BaaodRiYAT1vgcWZzASGr2+aO7z2Zkdq4
|
||||
49An+f0u
|
||||
|
||||
Name: res/9T1.xml
|
||||
SHA-384-Digest: 9zBKtI3bYheXQsE8zWwwMnhhz56eEMOy6dQ+IXciP7g71ZDUP7nx19yk
|
||||
PV1qASYP
|
||||
|
||||
Name: res/color/channel.xml
|
||||
SHA-384-Digest: OjiL0+LkUy+96LJhhzb3WK5lp7FnqCmWYFQl7JBjfsl4v4XfolDObF1H
|
||||
Lh77ATYK
|
||||
|
||||
Name: res/ue.xml
|
||||
SHA-384-Digest: 84xKNIV8UeBUQ2Y/Nr4WWVuLjFF+ncAMBcq3bzF8sHU6Q7ZoW6L73euB
|
||||
fFpMG0Qa
|
||||
|
||||
Name: res/vF.xml
|
||||
SHA-384-Digest: ROaU9LjrLYWPQvTsB7RkCQ3L/xjPU71N35zBknFPVRaU1H6dQPDfe2Al
|
||||
affI2n0a
|
||||
|
||||
Name: res/k0.xml
|
||||
SHA-384-Digest: 9KtC5L3WqzEOtDU7ctTpV6UTVfnAbQAjXYPB8bBzp02hTMALVQZDEVe+
|
||||
OworOwtV
|
||||
|
||||
Name: res/color-v26/biometric_error_color.xml
|
||||
SHA-384-Digest: QJWZUZr8qxJDBzbKQRU02yBWVgKPNzt/ssA2UTKVjs64qGeg7zHZzQa+
|
||||
iwxYY2kq
|
||||
|
||||
Name: res/Tl.xml
|
||||
SHA-384-Digest: VshqJqLJyEYJ2aW1+DeTM02cKzCOED4siTM6iF1fuF6QuZCiD8GGHc3G
|
||||
TeOHv8Nn
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral24.xml
|
||||
SHA-384-Digest: +DUAziz7hhwERxiMV0zPxc5V5Ui7Y+H0sW5m4um0UqXvmTNnVJSRKW+x
|
||||
Bj22UCLZ
|
||||
|
||||
Name: res/fS.xml
|
||||
SHA-384-Digest: /GIIpYe90jtbk0TAy8w8Gze9oIq6fxoBohc4/gxnD13MuzHbG18q0+R+
|
||||
+3y/3PfB
|
||||
|
||||
Name: res/vq.xml
|
||||
SHA-384-Digest: nef+/IEF5DYoEQ575wsVqCqEQLURvrGxaaxnnFSfFPNLYxts9RgqrfU/
|
||||
nBm5QK2X
|
||||
|
||||
Name: res/Dn.png
|
||||
SHA-384-Digest: YzSqbpxgBKCSDW4xgow5bnb+5Gja1FDMhL17/GnTWWVb04aCa46ySiBn
|
||||
EQox/Qed
|
||||
|
||||
Name: res/R2.xml
|
||||
SHA-384-Digest: MkWWt9ABSbm3lwVxA3Mn+Q2KEpMPMkwo+rTtfJM5HTapEqZlSGadnQsI
|
||||
/RZdU/Nh
|
||||
|
||||
Name: res/bP.xml
|
||||
SHA-384-Digest: d0vGs4aP2Gmw8z00JY1B5T8JOz87KPAE277WV/XW9/2m4ci2xCryl2ZQ
|
||||
wnjiIva8
|
||||
|
||||
Name: res/A5.xml
|
||||
SHA-384-Digest: CcL3K3IhPejDL7vlF125QEGIkQMK32QpWslU36sxM+MY05+xNSp1RS7z
|
||||
scnRJEVG
|
||||
|
||||
Name: res/color/m3_filled_icon_button_container_color_selector.xml
|
||||
SHA-384-Digest: eEaqCehgVA/tYJc9HgiDwjg+UccPlJBWy1Q8bwyiXIzHJpl7EWOmwDE8
|
||||
Y0FQ80Ir
|
||||
|
||||
Name: res/PC.xml
|
||||
SHA-384-Digest: Kr1ULgonhmGHIXVBdvT8cDe61scWRfn7N5b5qIBmGio6+YJXAYVPoWQQ
|
||||
2mX/Li2Z
|
||||
|
||||
Name: res/q3.xml
|
||||
SHA-384-Digest: nOyrsDhw5Bc4Fc3/Jc5bmm0Oi/ih6Cq3C4iSQ5YfuMnePMiPEwZcNGlO
|
||||
xBew8p9y
|
||||
|
||||
Name: res/DC.xml
|
||||
SHA-384-Digest: 17po52XCQq1Rq1mrUJmFnHXAJDM+2uNyueqyGeMpFA8hb8+b90FQCW1U
|
||||
gi+1JrsH
|
||||
|
||||
Name: res/K_.9.png
|
||||
SHA-384-Digest: eESJ87PAB5imn5TEymPNi4LyMWKZMbqnHg8B6hdx/zBfU5/NV+TcB9mx
|
||||
jakNa3SV
|
||||
|
||||
Name: res/color/m3_radiobutton_ripple_tint.xml
|
||||
SHA-384-Digest: Y1TOlSl3i/wpkShqGFzlPW0hFc/6wtGQfo82GORYjV1afJv3yMm02m0r
|
||||
q+FTRExW
|
||||
|
||||
Name: res/Pd1.xml
|
||||
SHA-384-Digest: VjvhwXiXMtxlPTfYH4hKWOMAhD4MLpFjcId99dFMXUb2U8SBMzSrL/pn
|
||||
999mmEkl
|
||||
|
||||
Name: res/Ge.xml
|
||||
SHA-384-Digest: Eez5R13kFSBv9eUf8OqiITYTzTtyglGXciKCNuf5XjhxILp/tdvfHsZK
|
||||
lOvYRMfx
|
||||
|
||||
Name: res/ue1.xml
|
||||
SHA-384-Digest: Hx6xFtfcyii3PcntfUZAlltKDKakh5WDilAUjBsYsYbQTcXFVnKf9T4a
|
||||
qP+rRr7c
|
||||
|
||||
Name: res/d5.9.png
|
||||
SHA-384-Digest: 1pJffwQDbudFW0UT7IW3Mrpy4VWJkYAOWaVYQ76NE2vqjWL1F9BZtBnd
|
||||
5zzsSr2h
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_hint_foreground.xml
|
||||
SHA-384-Digest: hAPyndSThJroXhvhge/Zg3/eqVwwuK2+RaN5pqkcymYdoXIiU1mhcsvY
|
||||
h+O+82xd
|
||||
|
||||
Name: res/J7.xml
|
||||
SHA-384-Digest: Bw4DTZDYI2WAZBh5mXbUAv1hJRffbHTGYgNPndtLWn9bRo0W+wr3xWEn
|
||||
81qp3r+D
|
||||
|
||||
Name: res/aH.png
|
||||
SHA-384-Digest: 3fFbapzioLu/jthBJbI4KV+Nb0xEEM+UR5IwRv2DrlPvt6T3GXyDokRN
|
||||
PZrAK+41
|
||||
|
||||
Name: res/ZN.9.png
|
||||
SHA-384-Digest: yrP9TXwDnxlVlFaEEvBiLDs0fYQtDMFeNMmEOoCjzdxG5q+jqvYDn/8f
|
||||
WpV7G2ol
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color.xml
|
||||
SHA-384-Digest: in97cW982x4QbaP48PYftYvfJPIzcZtSEhKQ6XQKclD8yowEHr5C2Qwg
|
||||
h3fqWXDG
|
||||
|
||||
Name: res/6P.png
|
||||
SHA-384-Digest: mrmjw0mjbAxELlnDFOv3s9ZgyCPOrIjFmejcU+xPQKPqQXmDft4eLUXr
|
||||
bkn7FPub
|
||||
|
||||
Name: res/71.png
|
||||
SHA-384-Digest: XEJB7J/SZcKhwhAdCOZVJ3njoYJPs8yO8Fkn4jM/6gAMmjwJMa4IGobL
|
||||
EaEzvX/p
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral94.xml
|
||||
SHA-384-Digest: PUCn1qXxIc2PGgK8lMWdRkiuX7xwQSHJEMcK+jyVAgsZedoZl73shdVl
|
||||
J09/UiYO
|
||||
|
||||
Name: res/0Z.xml
|
||||
SHA-384-Digest: kb/0ytJQEf1UBoMoL9/H3RtiroSryOW7rqv/SdwEEdXiDjWHJ1spT2YF
|
||||
DKqAzkZi
|
||||
|
||||
Name: res/iZ2.xml
|
||||
SHA-384-Digest: 7wCEzRceKWHz3CnKXM6UhfP3tkm5siSBRLZ/VriSrQqq0sD5KZXNvowM
|
||||
hlCXP3JM
|
||||
|
||||
Name: res/ui.png
|
||||
SHA-384-Digest: QlSK28TFVjCMcwQ2C/XhV3nQDqGuhE6HzHlwpqGutsBMrCKPR+2DmVyd
|
||||
yzOsIonj
|
||||
|
||||
Name: res/BT.xml
|
||||
SHA-384-Digest: IFDOZ9flIvGTjisQn89cmhSWDxtXY9Z16zTXEgG3y0jo63/SDhKTE8Sw
|
||||
FpApqGfp
|
||||
|
||||
Name: res/C5.xml
|
||||
SHA-384-Digest: eFXG9PFQusOcIhhj27lN70xscVTy6nAJjCfI6wnzO5Diu3IaiE8WKouO
|
||||
vPvKulOW
|
||||
|
||||
Name: res/m9.xml
|
||||
SHA-384-Digest: oSLbN8D/cQt7i1iwAYXBBzpWGdGI3z3bNQV22sjY1/RyornOY+Tgfgcl
|
||||
B3xChOch
|
||||
|
||||
Name: res/WV.xml
|
||||
SHA-384-Digest: fq8xhJnyIpgfZ6PgjdLJBxpKyktIv0rmjlQDB48mAzPh79QdG3tp/D5v
|
||||
kLZzWuMT
|
||||
|
||||
Name: res/je.9.png
|
||||
SHA-384-Digest: GM6DropB1WPtGKZaNfFGVgWaCZpeeUB/FVYtaRDaT+/kCwdqpYHOw66l
|
||||
I3z+1LjQ
|
||||
|
||||
Name: res/zZ.xml
|
||||
SHA-384-Digest: DziOQYus0Go+hBX014pq5eUXHNvSHn6arLGt+2SCn/vOR3tggj26LLYG
|
||||
jcCuQHti
|
||||
|
||||
Name: org/eclipse/jetty/http/useragents
|
||||
SHA-384-Digest: OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua
|
||||
0vFImLlb
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral87.xml
|
||||
SHA-384-Digest: qISo5KNF0qtO7ou/8owkcbHscTSw6zqM7uSLL1I9VCv2ysfIcRn6EDar
|
||||
F+702Xq2
|
||||
|
||||
Name: res/F81.xml
|
||||
SHA-384-Digest: VtY1IQ3fkY7ApGaadFL2Cc2y1Ah3ytZdf8RhgznvQwO+Zfaw7iJRovDT
|
||||
swXL5uLw
|
||||
|
||||
Name: res/H0.png
|
||||
SHA-384-Digest: IXo9hdWzW4Gez46KG4pE6RUVNvndxX9EnsjV4k9EPRkohCtdxYtcKYXV
|
||||
7VWq0l6s
|
||||
|
||||
Name: res/gt.9.png
|
||||
SHA-384-Digest: Aym71FO2CVqw2AZ7Uv9UVclTisH74z5fkTdgSBfn1Tzpl7sp6G8I2rta
|
||||
xJWuM3Ek
|
||||
|
||||
Name: res/i6.9.png
|
||||
SHA-384-Digest: 5saK/9F86JOU3TF87QIF3GPAcUqcpHSarhssZo7Pxq0sU7rkA0v/uKgG
|
||||
4V8qv6ij
|
||||
|
||||
Name: res/Gk.png
|
||||
SHA-384-Digest: yltiAYUxIm+8Aa1A0aJ2HMIfWePzx7x9P8xv7B+etjAUTOcOBXg36z7f
|
||||
A9JfQeh9
|
||||
|
||||
Name: res/JQ.xml
|
||||
SHA-384-Digest: EjyVvgfkkLyIuLucLL6itRzwcEEFmBrxxeJ1HQAbQfJgb09H/gN/OC7g
|
||||
wGZTIFcZ
|
||||
|
||||
Name: res/K2.xml
|
||||
SHA-384-Digest: Qip9yidSomcdPnhbQQNxCCdLNCmH9H6a3sFruxWuxx0+Mq1CXC0tP4tH
|
||||
QxjBSrEE
|
||||
|
||||
Name: res/LO.png
|
||||
SHA-384-Digest: VB2bOfx3LZk/iZWlV6iTomOQvnajY6scS8Sh3E+8GDCjoRRnQ5jLptsI
|
||||
X01k/gJN
|
||||
|
||||
Name: res/SV.9.png
|
||||
SHA-384-Digest: d2WYfSqhipZtFz/10oM9aQ+SrnEdLsoXqdl+acV0KAYDEeTPfyYora31
|
||||
fJEFQcZM
|
||||
|
||||
Name: res/Ei1.png
|
||||
SHA-384-Digest: IxN6cbnj2iWExNMYr9xtK+Idt+s4Qa2XnfYgwIUyv0AAZqwOphyM3FEn
|
||||
yggggzCx
|
||||
|
||||
Name: res/2R.xml
|
||||
SHA-384-Digest: VSw2P+6IW43elTUAHvQEUFYWxFdGjVOCuvJdSOQr5pV+XvJbd06Nu02E
|
||||
JXEiEuQ6
|
||||
|
||||
Name: res/color/material_on_background_emphasis_medium.xml
|
||||
SHA-384-Digest: 6zIgHcajUOFX1vPXhDtbwAKRGcfpHr1TPDdhU2zAc8duVQPbE0vdK61b
|
||||
A06ZpyrZ
|
||||
|
||||
Name: res/color/mtrl_chip_surface_color.xml
|
||||
SHA-384-Digest: FO7XDf8k2xCEmr4rDdkvfQPlWrSXSnxMR4UeQxyBrzO+yF/24q0cC9vo
|
||||
YrjGTR2H
|
||||
|
||||
Name: res/hQ.png
|
||||
SHA-384-Digest: oxPEplp0ad+5ArJlMcMtdKtxfX79OqOcCUHuGz8ylZeVJs+8By5/3gut
|
||||
94hbrPfO
|
||||
|
||||
Name: res/zz.png
|
||||
SHA-384-Digest: NVOpsBUTPuIsAZWR2l+ot4esv0pPIb86Y3AuVluQmdCJYYGLdFCLuDSl
|
||||
BUMPoqEF
|
||||
|
||||
Name: res/gG.xml
|
||||
SHA-384-Digest: l4JE9QWHG9QLhX/VEUUH0tDl6LYILisVGM2UClhFnLM4L9b2lO4/S/I9
|
||||
P2ZgAv6v
|
||||
|
||||
Name: res/Qd.xml
|
||||
SHA-384-Digest: Miya4lxGrxH3l+TFD/dUzqLtEluOXIc3iyEU7h502RhWlZAByMt15uct
|
||||
6JZDTye8
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral17.xml
|
||||
SHA-384-Digest: u+415B7NXRUkxSlNWa6CVsLKfoy+9fhUAndnGwZTSzW2iFBJ3weoxJ00
|
||||
Gkk4hf/7
|
||||
|
||||
Name: res/qD.9.png
|
||||
SHA-384-Digest: r7PMJQkxoif1yuWmFAG3geHHjf/7rZtL22unZ2L8LSgiTInCzEtZW+eo
|
||||
Nqam95mL
|
||||
|
||||
Name: res/dw.xml
|
||||
SHA-384-Digest: /zAMDAxqV7lRB0YfEbayd1r+zsFYq5C2kAb1Nj0ez1FZD0i+EJoBDj1V
|
||||
Nhu5oTZt
|
||||
|
||||
Name: res/hq.xml
|
||||
SHA-384-Digest: RZoi+OZDvb3rG2RGQK9XaXK31aqWuCTjgpREG0Xd3carex5ph6M6ij9J
|
||||
KfmROVdu
|
||||
|
||||
Name: res/iR.xml
|
||||
SHA-384-Digest: x/7//Q9D+h8PFVNYAKljiSUp1QWx3KtyYBtnkhL8mNV7+23n886UnUrD
|
||||
593ckCNr
|
||||
|
||||
Name: res/j3.xml
|
||||
SHA-384-Digest: V7EgaVVsyPUduOpE59I+YkbMBhsfy7o7K/AdXFdxemmFusirdrAqJzcB
|
||||
7GlUEyTS
|
||||
|
||||
Name: res/color/mtrl_chip_text_color.xml
|
||||
SHA-384-Digest: uXvqwuZMhuEtKH7Waek+fugWAGMpmcDnKnIrYi9iuGn4rvsv5JJ2H0/F
|
||||
Cw1r1PGY
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_highlighted_text.xml
|
||||
SHA-384-Digest: Tny/3kKc2UKPW3nlUFtIa5ILvdB7m3G3EipIwFOkvx1rh2UQXR4t37ja
|
||||
Hj7h1YRy
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_secondary_text.xml
|
||||
SHA-384-Digest: swKf/VGzGcYMqcNDlDDxhTbR/SJVdGJDuj8yFsN1G7Z2+9UmjWaLkmFR
|
||||
XpQcP5sn
|
||||
|
||||
Name: res/color/m3_assist_chip_icon_tint_color.xml
|
||||
SHA-384-Digest: 1VnvM5IwXEepy3/Y41yZQWx8Sgvl34URlVexVW+Kll3Ybe0Ed5fcddpd
|
||||
FsjzuEO0
|
||||
|
||||
Name: res/Af.png
|
||||
SHA-384-Digest: gVWqh5SeslkT0fAiH1h7NEazWYt7JZbc2ZhxKx2grDUi529J43dr7927
|
||||
tbi+z6O+
|
||||
|
||||
Name: res/vz.9.png
|
||||
SHA-384-Digest: P90hzyqp0rUqUS7IY+wMiK9H89oKMOEZz80/vCmVQ1LWdjB4WDbYjHCm
|
||||
2sDPLz8W
|
||||
|
||||
Name: res/color/m3_navigation_item_text_color.xml
|
||||
SHA-384-Digest: 3K69gXMZwRsFDF7sK0GpWziPCLH5vlecGMkesoIaih1/OMBjL4wrgAps
|
||||
HN4kCxJQ
|
||||
|
||||
Name: lib/arm64-v8a/librtmp-jni.so
|
||||
SHA-384-Digest: wCFm0zIepO7lFh3NRnbfXKl7jouYe6c7RTB0VEc2gbPQumbEEZe19awH
|
||||
kezd2j/2
|
||||
|
||||
Name: res/LU.png
|
||||
SHA-384-Digest: UPuajBV5lf8qhW8VfeuMi9nJHhB+/+W7WUuZVfhMKNzbqKATc1Gl51cg
|
||||
0LzUKmYL
|
||||
|
||||
Name: res/color/m3_textfield_input_text_color.xml
|
||||
SHA-384-Digest: J5Pt9S0OfEBa8XdOmccj6RuXTFeml8DteYLi/lrfZhGQZ/hcjLMyIOho
|
||||
Zcy6jOBy
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral22.xml
|
||||
SHA-384-Digest: YkMWn4Z2kgNIPNk9VAgTJOi90XiA8Yap+MQVo9uq+LCC65TnQrU1Ewci
|
||||
1hoajbOv
|
||||
|
||||
Name: res/GI.png
|
||||
SHA-384-Digest: UPg6JipGtnVqa+V9pAxlvUlX2qZ2vIHu+cjbprpR5edk86p6kynologh
|
||||
heIOlUE3
|
||||
|
||||
Name: res/80.xml
|
||||
SHA-384-Digest: R1a/37fjMlKvwGDfcGRswZLvV3n4vqfxOB7lEVq7aLr+GZcHa6/Qy/3Y
|
||||
qPP/pOzy
|
||||
|
||||
Name: res/GT.xml
|
||||
SHA-384-Digest: 7dldggjbq9ZzB/ueuGr2WLEKimcct0o4b6HswbAMaR56quGKfuTlvzme
|
||||
HJFDMS+I
|
||||
|
||||
Name: res/pw.xml
|
||||
SHA-384-Digest: GFJDS+Chl+xho4AZA/OouCL7Yy0LBU1W1tZRUislA42IA6sqOtUwSOC9
|
||||
mPNQfLbr
|
||||
|
||||
Name: res/lE.xml
|
||||
SHA-384-Digest: 3lPKnTSobiE8Rr+uXofw+vjIBGCKB61dkTIKTuq40BrObDWkpgzoo18T
|
||||
/ilHlm+r
|
||||
|
||||
Name: res/M2.xml
|
||||
SHA-384-Digest: eCwlJl+yBlOzL6Dq8XzWpgYUdZOdvG6+Qc/UnAZbVIC4/a568DxHPjP9
|
||||
JN8dURZh
|
||||
|
||||
Name: res/Tf.xml
|
||||
SHA-384-Digest: aTgijDl3TYd8qiM3bXA2bO8mhG1qmwehQeYL9ieIgHrVP7N+s3KwsinJ
|
||||
cFig/7VP
|
||||
|
||||
Name: res/kN.xml
|
||||
SHA-384-Digest: f8DCT47F+3+KpTX9WBxbeXun5G2sXtETk1HZ2UTLwdb1q9+YfpqNS3C/
|
||||
fd7Xf0w2
|
||||
|
||||
Name: res/color/mtrl_card_view_ripple.xml
|
||||
SHA-384-Digest: JprCdnqYc0z0fkk353xqVPQESv6+mfkFhx+kol8ueuPwtZ1aln1otSfs
|
||||
yQB6Z7xO
|
||||
|
||||
Name: assets/shaders/fragment_shader_oetf_es3.glsl
|
||||
SHA-384-Digest: I555BTwdOdG5C+6IbgTSfDYAy3EVcJI8mDM1AGs6N6Ry+RJvEzqPuNf9
|
||||
nMjBHrxu
|
||||
|
||||
Name: res/U8.xml
|
||||
SHA-384-Digest: XzXjsj6MdJ/8uYRa5s3Dz2afgp7RAw05vLJoTdnU6PLgWZAQSlH4URGW
|
||||
yX6Hf8C5
|
||||
|
||||
Name: res/IP.xml
|
||||
SHA-384-Digest: GV/yWMExpCXKNlj7hHgL1XuibbSIyQUZAJblmUSkjxGqk7dRKG2uf15v
|
||||
PuT3+qS2
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector_colored.xml
|
||||
SHA-384-Digest: kDZ0EzWPsJymrOf7iHTxejP8w4Hw9Q2NVFU5RECHrSYsbWzOsueoiIAX
|
||||
hkP0n7v6
|
||||
|
||||
Name: res/gl.xml
|
||||
SHA-384-Digest: puRbJCWKKi7WBRqcp1d1+JXxgE1HBswvtnzGX4ybIBhnMFnXLEgtbABz
|
||||
R5eqxwqG
|
||||
|
||||
Name: res/hM.xml
|
||||
SHA-384-Digest: 19+yZawccs9EhweUprGAB0S8Sk4fhpVIYddpivJax8tVd5d+Gs25v8Uo
|
||||
bKUfD04c
|
||||
|
||||
Name: res/L-.xml
|
||||
SHA-384-Digest: XfEsi8CzW0/9H0/RykbKushhj9HIXmUXL/PEFLcUkzi8jzzgTJ4EfZTl
|
||||
Als8pedY
|
||||
|
||||
Name: res/Yw.9.png
|
||||
SHA-384-Digest: +m6ZqWwLgdXDiGcyKo0XI4By0/S2iG+wTVRQqaOMzu8FrJ1TciZSZkNr
|
||||
o6rwJG5Y
|
||||
|
||||
Name: res/3b.png
|
||||
SHA-384-Digest: fOAbd4RDej3QAWMUPlUDr8eiYnKG7aNX5NQdPgwYn0psI+blI7R49k7Q
|
||||
hELxC81d
|
||||
|
||||
Name: assets/test_polyfill_date.js
|
||||
SHA-384-Digest: rZevJ4OmeBb5grF0xMDi1r+PHvfWkCXulKcGQqMkbrlUvgryv0NFGsD7
|
||||
0UhI/FQ0
|
||||
|
||||
Name: res/li.xml
|
||||
SHA-384-Digest: wifOwUz97P57yPB10FoU3l1CXj9CLjh14iIMxS1vZ2330lXlv9AqJagY
|
||||
AvQl4O6Q
|
||||
|
||||
Name: res/4v.png
|
||||
SHA-384-Digest: Vo/H1KPwwZl7iD1bfKUOSOqJKZtYA/TlhOwwDXvLdkSxXngVTgLb/wql
|
||||
ehZ6brz+
|
||||
|
||||
Name: res/68.png
|
||||
SHA-384-Digest: hQRh5HUFiA5AuM/gN4dVxOi6QbT8Gvd8Nyy4N/lS44EQTNgS0ddgK/aU
|
||||
hPs1SKtX
|
||||
|
||||
Name: res/Be.xml
|
||||
SHA-384-Digest: cbsHPko2qi6jZAv/Tkx2DxkIHa3LnNHBOVUDaQSmtthVQPx+C9QDyPsO
|
||||
0PdQ3rk9
|
||||
|
||||
Name: kotlin/coroutines/coroutines.kotlin_builtins
|
||||
SHA-384-Digest: BV/rIw7CDHnfA2MxlxbjgEmEsZdBFOPYQKPAsEpw7o3dvz7T1cD19aP7
|
||||
CX5X32Ao
|
||||
|
||||
Name: res/color/m3_switch_thumb_tint.xml
|
||||
SHA-384-Digest: LJYo+gBbMsP5UltcJ9L4uK9IDsvTqfyNK0+z1jFWL5SLCI5QprbAv3Y5
|
||||
LSLAkkun
|
||||
|
||||
Name: AndroidManifest.xml
|
||||
SHA-384-Digest: gQ9Yh4M6b04d6P2wg290FJreIU7eIeXrb2Z//z+tCdCtVRN3eRsc2tZ3
|
||||
5SYXNfKv
|
||||
|
||||
Name: res/Lv.xml
|
||||
SHA-384-Digest: 43xlTnVLP07ihYDfccdNOgtRhefsFvFu8NqpAUHkvo51uYYpLQK+IIMe
|
||||
H61WeCfg
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant6.xml
|
||||
SHA-384-Digest: 7Pn6Z6Dt55aJZVKYKCIqlAAoP3uDOYqwYKbGB960kb+8+r2nZGLPV2gn
|
||||
bl2TFtA7
|
||||
|
||||
Name: assets/test_module_import_dynamic.js
|
||||
SHA-384-Digest: V6MYs8J2sBlAAeIW+Hwkxq/7xsIrJlk6gZB/bIg/Q210vI2zHit2onyS
|
||||
qwQGabhI
|
||||
|
||||
Name: res/uc.png
|
||||
SHA-384-Digest: gzwPBjACFbPqEr8wch2aqn2jpPrkXsaHtftCiMl+Jw224yQI7xjetxKB
|
||||
7hxFGDKc
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime.version
|
||||
SHA-384-Digest: D5nfep90WrYsvDzvvnuP9x5FaR35vJoZd33iLK7B3aAUGw09y+vyIxqi
|
||||
ZJb4T5Hg
|
||||
|
||||
Name: res/aU.9.png
|
||||
SHA-384-Digest: D/KxEae9Aej6UMMIJYpdHwxflvFXtaz0bWifAhQp16hdpdv2+xZo7/4B
|
||||
10wOJxPh
|
||||
|
||||
Name: res/nP.xml
|
||||
SHA-384-Digest: EKoqvWZQNKuSm2iwEeaJ/ik2OSPI7e4LCONojMNlNUzhRnaabQ4KACg1
|
||||
I6mrCUmH
|
||||
|
||||
Name: res/zG.xml
|
||||
SHA-384-Digest: 9cokK9Rh35T/S1d7gwbt9ja1ZcdQO4X3eGbfNjEmIPWo8+ubkxLg6WTM
|
||||
xb3mT+QM
|
||||
|
||||
Name: res/1W.png
|
||||
SHA-384-Digest: 4Fn4D83eQlZ+bREJCW4+AsnWfA6jtVn95pi6Q+sAWDYGuLU93Bc2Hs1z
|
||||
bFdHykHT
|
||||
|
||||
Name: res/8y.xml
|
||||
SHA-384-Digest: hma8R0P0TPX6tkq+OdpnjmXnIaLuGGhR6DQI4w2DgtIXCWODbFbxFc+p
|
||||
A3Ei7E7R
|
||||
|
||||
Name: res/k9.xml
|
||||
SHA-384-Digest: pzaKE/xabnJ7eq5Pl4OoV/Zl6AVviaLcu8sLqxfGSNPA8t2LR8rZbma/
|
||||
+bZBenOY
|
||||
|
||||
Name: res/4R.png
|
||||
SHA-384-Digest: iDMACIh/ZFo9Bu1Nu3dmYjW+IKQWjy3VqvqVIIpjwYejszHBLo86b+kv
|
||||
hjxvo3yD
|
||||
|
||||
Name: res/hb.xml
|
||||
SHA-384-Digest: LGweY1oloIF5hzE65beVmHeohlK2F0+aFlFCkzpcNLfBRUxQ60rlXeEE
|
||||
eoLlcLnn
|
||||
|
||||
Name: res/V7.xml
|
||||
SHA-384-Digest: TyHiItUEWNLpkF8eVqxZrW4snDcWAlM1A8qwKo9bzb0EFwKLk7gj4x4b
|
||||
zOtosNHg
|
||||
|
||||
Name: res/QH.xml
|
||||
SHA-384-Digest: jtILNQutsgRVbcxi58oZ2Gawb9NYlzrrBEbinO4NAS3FqynaXmr2x5qJ
|
||||
C/ZA9Cwk
|
||||
|
||||
Name: res/YN.xml
|
||||
SHA-384-Digest: KCpXAZQe9igKYZ9N8N2m1ooO69plVoMNMnAkk/zBcLlxoiW+UW4T2SKE
|
||||
YZDcjNwx
|
||||
|
||||
Name: res/Wz.png
|
||||
SHA-384-Digest: utYBU6cEmoAuSC1sLKuKvgNUvhyI2Hvgx9ijZ2hiatLVXNn0Xb1t34lO
|
||||
KFByLOeF
|
||||
|
||||
Name: res/vz.xml
|
||||
SHA-384-Digest: 23PmqzXhNMCQeIkzAmk4vo/K4v36SuOPs++OvDRA+1YGHHe1F3VXwEz0
|
||||
+15YkWh0
|
||||
|
||||
Name: res/Xf.xml
|
||||
SHA-384-Digest: PsFutxiYSsKggPHsl/yIUL1ebQfhXF3CwRQdGu9YYyxL5kdgZMwROwMA
|
||||
QSULvCtH
|
||||
|
||||
Name: res/YG.xml
|
||||
SHA-384-Digest: G5s0YwakAcz7484LkYgyTUb6AY/fIg/L1oc/sHbD34me5WAGCm4axH1d
|
||||
dj++pwf6
|
||||
|
||||
Name: res/Od.png
|
||||
SHA-384-Digest: muFfaPQuDwjqSnou+MhzQa1RMPtKzFnt6MupiP7NBulPj49K7YzI7zod
|
||||
dYfQ3WRz
|
||||
|
||||
Name: res/aM.xml
|
||||
SHA-384-Digest: 4Z0TXq6E4XdOxD+DDgVCQIdlNMEVlcdeut5di7ogfTIln20b0Jn4VAk7
|
||||
UDxX8vFr
|
||||
|
||||
Name: res/qI.xml
|
||||
SHA-384-Digest: vMVVEbJiQWaIEcV8oeMWoDd7DM2TuU+NmtJEEVH2ifWKnRI7JJPFaxNl
|
||||
cmA1Vml2
|
||||
|
||||
Name: res/Aq.png
|
||||
SHA-384-Digest: p9ap95Frx9FJIcQ/QLAHLNhaHAF61/XR26LozJZvH0OS4TZ0p8aaRT/w
|
||||
mo3Ogi6I
|
||||
|
||||
Name: res/Xz.xml
|
||||
SHA-384-Digest: tC2rk6/JP5UCo+4aPcvUSfUgp0DoIEwzRZyxVNiJvNawECS5M94q4Ctz
|
||||
RyOUNNqR
|
||||
|
||||
Name: res/_H.xml
|
||||
SHA-384-Digest: Gl2ctVAuHD74hU2Vs8Dk2D3XeB9Z2TvPRpaquJFAWrj73aTU0l9DHm1l
|
||||
7rij4oER
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_tint.xml
|
||||
SHA-384-Digest: /N7DRj++oLymD0w8VQYD+IU1IVC1oFKVE8GlF8zk0H10QSccFlGX5Oso
|
||||
tpipI9Cx
|
||||
|
||||
Name: res/Mh.png
|
||||
SHA-384-Digest: qf6oq1SoHavj/pg+4JCIriXCMXa5lsg3z2CtjBitEuzr6SeKpE/UYlUe
|
||||
p9IfNC2p
|
||||
|
||||
Name: res/YD1.png
|
||||
SHA-384-Digest: F+Fs4tx6W9EwPq8wivkTVNI0YltwmdP8cQef/ZVZukYOJhEX3IM/cAK6
|
||||
4snlPLJD
|
||||
|
||||
Name: res/color/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: KDQR+qHhWTdIPyGSgdVR77cu0RnpW9zW01nk2XOXIY7gn7K1/F7baIkq
|
||||
0HD7F4Jq
|
||||
|
||||
Name: res/color/text_episode.xml
|
||||
SHA-384-Digest: WoiU999svLIhMXPeKMECXn61BFjLKvgZBeI7FuRN+b6OV4t7Asnbzt/S
|
||||
RLfwucFi
|
||||
|
||||
Name: res/EU.png
|
||||
SHA-384-Digest: 0J1qaEoGWuDO+RXEvcZBPd/4PfzwYWlR8LiLhk73A2nt7iH75mL02GtY
|
||||
YqcmVkW3
|
||||
|
||||
Name: res/eI.png
|
||||
SHA-384-Digest: Fp7ZVrAK11ZsFwSxmEQuQ+c6glaJodLOF8vc3s+92eSyPr0wuls+BJnr
|
||||
I8IGsKqe
|
||||
|
||||
Name: res/Eb.png
|
||||
SHA-384-Digest: 07pBxshWqedU9qIM3d+gkh7ZAdc8kBf0gY5m46vKSqeJXAlqPECcDvay
|
||||
hjj3xiww
|
||||
|
||||
Name: res/color/mtrl_filled_stroke_color.xml
|
||||
SHA-384-Digest: PDVGpvQB+ck/z0k6KLG2rGNwrRaOLR/gE3p/qcU4jSPadPURG4kjCD6v
|
||||
0MxUuHpc
|
||||
|
||||
Name: res/fN.png
|
||||
SHA-384-Digest: XGmUMVGZ0wkLiBvuSAsMSRostPFaeK/YKpTk3K5raStN4Uu5Bmk7HQ3T
|
||||
OwJ09tKx
|
||||
|
||||
Name: res/hS.xml
|
||||
SHA-384-Digest: 0IeEo1PCk3jnhr9ZDC6ZR18UToVDRxvhutf/YjzrJk901PUTI7xpRfZj
|
||||
+UdQAYuZ
|
||||
|
||||
Name: DebugProbesKt.bin
|
||||
SHA-384-Digest: hMb0bxEzuDdxfE0FfXVa7Yuh+BNBZHiz38tqSNXiHGspjNTSFutqo5S4
|
||||
/U7PkoSG
|
||||
|
||||
Name: res/fW.xml
|
||||
SHA-384-Digest: 485yX8XR3aSNG+xQ5AwS3YMz53eigYi1JZEqpNwhlSCbi+TTr7HrRRgt
|
||||
0dgdgRhr
|
||||
|
||||
Name: res/wy.xml
|
||||
SHA-384-Digest: NUykPKL9XDCFOTfs2GC2rK8A5yM2zk3WV1xk7DaqDHZQylqpRv/766Up
|
||||
W887aMZO
|
||||
|
||||
Name: res/Ci.xml
|
||||
SHA-384-Digest: t5hRYNVwRt0QLlIQlNiHarelVlDQetmBC8uQjM9U2fusIQ86WLnrnP0x
|
||||
oFM2e25t
|
||||
|
||||
Name: res/color/material_slider_active_tick_marks_color.xml
|
||||
SHA-384-Digest: jE1Bm9sIil0lh5NeaLO/+T2sTzYAfxMLLZ88KevAlzzF2Sgx+rozRmRP
|
||||
RlQLU5jq
|
||||
|
||||
Name: res/dP.png
|
||||
SHA-384-Digest: 00mOqYMUdabdLug0fbefv238V/vcYZiJa2ORHXBfA09NekvpWpytcvt/
|
||||
+NcpXlBT
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral92.xml
|
||||
SHA-384-Digest: 41FIZyYMIAGrxx7i3hqrqT5dhg+e4/yHsLLel851LIaH9vSAMm8Pn3n+
|
||||
/+08R5pB
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text_inverse.xml
|
||||
SHA-384-Digest: aDWeZU3WruaPxQOVVS41JqzDpABakZwSTlpSpf8Z5qIoIORE43T9Qgrc
|
||||
m3x2s1OE
|
||||
|
||||
Name: res/color/m3_textfield_label_color.xml
|
||||
SHA-384-Digest: N4roLM6tX1FYK44KQV4Ze3/uEPPw0wsR7AN24iAr/l2ljBKwcXdsapAg
|
||||
66SkTh7K
|
||||
|
||||
Name: res/o9.9.png
|
||||
SHA-384-Digest: TbpszmwOaMIqHHj0hiXt9c6GI2Qtx14yNkwoIodNYZTbXcKPCz6cLCIA
|
||||
j+oQJX4e
|
||||
|
||||
Name: res/zo.png
|
||||
SHA-384-Digest: /s7jcciEKtORt8YgDl/NLF33zO6usqzOJaILB+zbEh1Os3mvTAukovgq
|
||||
M+m440S1
|
||||
|
||||
Name: res/1w.xml
|
||||
SHA-384-Digest: teHYrO9BdF46xvjHEGQBCxkpSu29G6wzf6giiIzaMEe0mfcUkw8LJr8b
|
||||
xIvAxxbE
|
||||
|
||||
Name: res/WP.xml
|
||||
SHA-384-Digest: P/8Xf0ZzfY/vvkE+ittYF+Y5rJSOJfgr2DLfMQoMebs/gwAnF6CfMhFz
|
||||
lArZ6DjE
|
||||
|
||||
Name: res/X1.xml
|
||||
SHA-384-Digest: hRpEHN8JmbThtwpcxGpLxQ5kjnRaZd/BeEapVZxzWSYwG8e/Ww/RwDkx
|
||||
R6OA77zl
|
||||
|
||||
Name: res/p0.xml
|
||||
SHA-384-Digest: XxKzXOv1Fkx3bUo+S6u3DGW4ojbf2DQZ7OC8IBukAjW7adfs/6g82EHa
|
||||
glUdRvta
|
||||
|
||||
Name: res/5m.png
|
||||
SHA-384-Digest: cSzGIXqcGrPZAp4Q56KuEAboswzFxk3aAHrhs0tdR2eQKpjbRe3v03Np
|
||||
It7JwLkD
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color_legacy.xml
|
||||
SHA-384-Digest: omHpwEgPLZIfpOceeCQvVw64LZFkah9J3RZkdcuAVRJ3wpoF1xSf8lrg
|
||||
ckXKJ6It
|
||||
|
||||
Name: res/NZ.9.png
|
||||
SHA-384-Digest: Bk+CQ2CHamGxvIvmGiFKQzA9/4P4nqFMSYMI4AUhoh1ORzzcGK4Fqefq
|
||||
qTnzzmad
|
||||
|
||||
Name: res/lV.png
|
||||
SHA-384-Digest: 7dpe6bVm/M3YhdARygOAfgwdT7SegWJQBvHz8Ul7nVgKpCfc/0YpMQ42
|
||||
9uBRxZ6j
|
||||
|
||||
Name: res/color/m3_tabs_text_color_secondary.xml
|
||||
SHA-384-Digest: 6Frh9d8825buIgMA4BrcJiQpR+GqNnP1g/ILbRYCkzuPdqZiIAv4eWhY
|
||||
NEHJeu0T
|
||||
|
||||
Name: res/w_.png
|
||||
SHA-384-Digest: Ka3EFjev1s6JHxmdHmkviSyAAFLLXbmov8d9cAk6HC2PAKMEB+0z3xlc
|
||||
uKpM2Etp
|
||||
|
||||
Name: res/color/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: bwTo68E4j69gcCuwD0gsYzXqH5p6NxFty46jhD7jvDN8nbD2bc1cSBbH
|
||||
AOEbgH35
|
||||
|
||||
Name: res/5U1.png
|
||||
SHA-384-Digest: h8hL/ASXrpOVbYm+s9+Y2aDnu0Bz9iX7czctpYGd6UhHi7A/dsWJzzmk
|
||||
eRMO3b0H
|
||||
|
||||
Name: res/lR.xml
|
||||
SHA-384-Digest: GwdQ6fkcWu4cbrFarAdxrYYEtMtVMOVBbHPhJAj87c3TkQ8FAiipKg1u
|
||||
+v+HgpQn
|
||||
|
||||
Name: res/color/abc_secondary_text_material_dark.xml
|
||||
SHA-384-Digest: fSVEbBvD/gPPyB+ApaEKI0eaX3YrlVlToV8ePGpfDJsapCfuA48VYmd0
|
||||
G8m8IOsv
|
||||
|
||||
Name: res/JF.xml
|
||||
SHA-384-Digest: R1bHw30/3wmuyVwOk5aV1R9ut/aID48lFOeI9V62gOEusB7BsDfrawyS
|
||||
jV0Gp+ip
|
||||
|
||||
Name: res/xM.png
|
||||
SHA-384-Digest: 7V0cOc4bSkXcUrxXrtvmuJOzHcfXzS9wZ17oOBs+bOhAKJB8a9ylAUyU
|
||||
x0yS/VpH
|
||||
|
||||
Name: res/ck.xml
|
||||
SHA-384-Digest: fR8RblbussxzThpVxi821IXQMc4n/o3apmXHrUSzkVK1HINHGH6MKnAX
|
||||
5qNZG17c
|
||||
|
||||
Name: res/e-.xml
|
||||
SHA-384-Digest: OCEbqI5SysGxJwgbNP91blYPktPVH3/73UbhzJnMJrepO3mBREzJys2y
|
||||
IhAy3Rqc
|
||||
|
||||
Name: res/rd.xml
|
||||
SHA-384-Digest: i/zIKXLdFD6KJuv+TaIsE0I/ZAVCqjbQBhOsPXy++Y8zy3n0Pi3jAvX/
|
||||
XXvR06Ce
|
||||
|
||||
Name: res/color/material_divider_color.xml
|
||||
SHA-384-Digest: GKsSur55lbUddGyC0Kc0WMBJTmCpIf4RG//xrz2tYmKfpkTv2oq3B8+I
|
||||
ovir7bHZ
|
||||
|
||||
Name: res/D4.xml
|
||||
SHA-384-Digest: KuwCUNqEYkb9+jyvou2vZgVJdeBxTnNFM/x/uSBhrJ4fDXguHV2BrrE6
|
||||
sP+M4yuQ
|
||||
|
||||
Name: res/_q.png
|
||||
SHA-384-Digest: 7r1sGU+JYTdS0vq2KC+a7IEpHxawokSKJOtaEXVqHdvPYuzSUFPEfuMy
|
||||
aCpCk8xF
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant87.xml
|
||||
SHA-384-Digest: zDjaL6/eaHt5rXQVoaUGt+YWF0p0+BmKNB+xTZWIVM6sjFDwCtnfWN6R
|
||||
ehsIawAY
|
||||
|
||||
Name: res/Wt.xml
|
||||
SHA-384-Digest: W9sUET4Ro0yYwdp8e+b1L5r2pQgOAN/WOfikOzQoEyZF255DAU1mAmUm
|
||||
CPdn0fRV
|
||||
|
||||
Name: res/fm.xml
|
||||
SHA-384-Digest: qbmeXmNbdAvcZuIkhmBUGU5i26EquhwBEnG3vzLq3crf6xLcJTD0wPbM
|
||||
AiQStuuS
|
||||
|
||||
Name: res/78.xml
|
||||
SHA-384-Digest: pVhRcl+uVZTvCgFKUO0RhQKVy8l3shEEAvbMMcSErEMz10Nx8Sqd0+nT
|
||||
kMiYqLNF
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_fr.properties
|
||||
SHA-384-Digest: hFPW776Oz2fARjAaGOvmOPEESMDYsXgySiKiF5tdoiod4VXQrUnQ2Iq4
|
||||
hZTaJH8R
|
||||
|
||||
Name: res/XJ.png
|
||||
SHA-384-Digest: jED8Pi6QOLXlT01Jv12IsYRDTkyheWOex58j1F1ZQLOEnIQ3xro5O+M5
|
||||
Ekikanrw
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_oetf_es2.glsl
|
||||
SHA-384-Digest: 1+yVIplWRqu6/xzh2dyqBS0n8TCbYL7/MSyLDmpeCF7lUSzZnLNMef96
|
||||
yIZiKWmO
|
||||
|
||||
Name: res/color/mtrl_calendar_selected_range.xml
|
||||
SHA-384-Digest: av/HXXNgnoS85eOu4Zdhzxl5wBCPFgZl6kA51z5aKNJlsegY8w93aRqQ
|
||||
XmY1UpXZ
|
||||
|
||||
Name: res/gc.png
|
||||
SHA-384-Digest: jiKOQoVbg5TnCMjRGRtziY+qu6mwqLyORQ7qeaa55r8pUe2zDQqB4fXH
|
||||
tTvhHfqW
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_text_color.xml
|
||||
SHA-384-Digest: IeBzDNcilNYH2mW4BGbqKlQu8uh21pfHi85rWCRS9Ia8rPKIjyyzVcGU
|
||||
KADmSOyY
|
||||
|
||||
Name: res/yH.9.png
|
||||
SHA-384-Digest: WSQFTT0DWa8mGGJ2/0OWocAxp946p5YZvgPxaJX/LCK8hBldcBwagL66
|
||||
iyB47A8P
|
||||
|
||||
Name: res/vf.xml
|
||||
SHA-384-Digest: e0xoDqf9kkP3f8N0qwycLHiYJtUyZ97wldk1s9qHNDCzOfqZ68WyJnW0
|
||||
efYwfJ2x
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: Ns1zo5hrT0C6xUlwPFBx/Jb7I/i58IH/T5NLdNAQaJ/xzj4WgNKBLK7y
|
||||
nGl23H+m
|
||||
|
||||
Name: res/Ra.png
|
||||
SHA-384-Digest: mAtGMgYy9gP7RfEXql5A3u/VYOQbTQJiOGIPLLQPzN3dFawhUMxG5hUe
|
||||
y8LVCJHL
|
||||
|
||||
Name: res/color/mtrl_navigation_item_background_color.xml
|
||||
SHA-384-Digest: 6C1YpmjYeWNqsxnqSCf3j0nymkF5h6qYbryh6MPRkgGMKYEr3KaV8YjW
|
||||
XXaMHf7d
|
||||
|
||||
Name: res/color/m3_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: 1WdP20aVTZdbcfJCow0XGx94rQBNHb9GXD6U3Ew+6c52QkyH3SOjXqWg
|
||||
C/xsZGIx
|
||||
|
||||
Name: res/nN.xml
|
||||
SHA-384-Digest: lMuzYFP1XEGp8WXvuGKm+3ApvYOU9ofKtlVmO4/2JFJ+irAILoRD8xpL
|
||||
Dgwm49MB
|
||||
|
||||
Name: res/ua.xml
|
||||
SHA-384-Digest: HkgEO2MMe6xslP7PZVR56cf/A4VTypjcreWWZRBETBDaTtWJabYNmiw7
|
||||
Fk6w+oHS
|
||||
|
||||
Name: res/gj.9.png
|
||||
SHA-384-Digest: ABW0mFpGYZ/rzFiyQeqgKYibIL6Kzc+NxsUYLEKemR/L7ruECYg2UJlo
|
||||
53VLOlom
|
||||
|
||||
Name: META-INF/versions/11/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: O6gP4FG/kE89FNRQ3B1mQOZcCkZuaApzHGHlzEJIAka9TnsnrUqN/ZXc
|
||||
NNg0GsUx
|
||||
|
||||
Name: res/p8.png
|
||||
SHA-384-Digest: aO68KUChTAZdPyPaQ5+N1n2dKj106a3WJXg0OpJgv9JgKiCOBBONUlgh
|
||||
7KugHcnD
|
||||
|
||||
Name: res/X4.9.png
|
||||
SHA-384-Digest: tGjk+HpqbG3ItIM57Ps+nSDfa8ES8opKVA74PrTHJzweMLomajtpU9DZ
|
||||
WwYm/Oi+
|
||||
|
||||
Name: res/W3.png
|
||||
SHA-384-Digest: 1joWL8UMgZss2bF+EDZ0rd705NvLAP/U94V32p0dmULkR3FxpbEc6E0t
|
||||
yPt/dmNo
|
||||
|
||||
Name: kotlin/kotlin.kotlin_builtins
|
||||
SHA-384-Digest: z/ppmGaa1+V/hMi69B7TdBGjCtLdi/nW2KwuJpEwVbYnN9xOqtO/U/8j
|
||||
LPooYK5j
|
||||
|
||||
Name: res/2i.xml
|
||||
SHA-384-Digest: 4YGU2r+KHfl8BXI0G2oin8DWTsx5RnnNJkU+zQEXNx26Q1bWlw2IknoX
|
||||
FrK9oTVL
|
||||
|
||||
Name: res/3J.xml
|
||||
SHA-384-Digest: WOIC2i0j55M556+YpYlirI+Kaj5QBaZ3r3txVJVm2NhbyuVtaCednl2c
|
||||
QnyjufOD
|
||||
|
||||
Name: res/o3.png
|
||||
SHA-384-Digest: Xmj344sFfdLW7M2tZTB+8z++sFIAE4ZF3QpI0+wgS5q/X6tG0ltS5BHh
|
||||
4P+ssQF6
|
||||
|
||||
Name: res/vJ1.xml
|
||||
SHA-384-Digest: hpZneoGDvzuDTwvciWUM2Lln6LPbtKewI6S/SPvsvO0uZq3c48kzBFxb
|
||||
yVf33AOO
|
||||
|
||||
Name: lib/arm64-v8a/libxl_stat.so
|
||||
SHA-384-Digest: E99YvCKJFW6e/pdQSyRffJNIOiQBeic6Jpuxd7cKK87Two3jZDpbI/X3
|
||||
FgcaRGSA
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_ripple_color.xml
|
||||
SHA-384-Digest: jJeH6LXNLqENkr/SBbacOYHncMjvPX/5w6VRZBxCNrlX6pyKOqwGrgfh
|
||||
JPVUqb7q
|
||||
|
||||
Name: res/g-.png
|
||||
SHA-384-Digest: aGEEWej6SQn+DMQ00N0IcZ4mE1Tr3NHdJhNmEuFaoOWvaZTWgc+CUHPc
|
||||
aCbtZb6t
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata.version
|
||||
SHA-384-Digest: YUH6peOmaO6YUrh4dlFXGdtWBzPcPuIh1a+fAEwmyHs8ELMG8cRjfI0J
|
||||
OchFaFJ1
|
||||
|
||||
Name: res/0M.xml
|
||||
SHA-384-Digest: a2PkaC/yAxu9Akv2rhIYFxhkTJL/B2/KhnxM3sJxgHCwLHdo9M4DqV+t
|
||||
gUun16vB
|
||||
|
||||
Name: res/4P.xml
|
||||
SHA-384-Digest: W2Q5jskdcgzicdpTVwJd+R+CBykG2qriChMSTbA4NjrpygiTquem7gcV
|
||||
RGcaAOdb
|
||||
|
||||
Name: res/51.xml
|
||||
SHA-384-Digest: hOzXB1/zvHYvWqKDXVDM31svdx95fCM0jxjRlPl6wwj5Ap65+RPphZmv
|
||||
5Fmy7t1P
|
||||
|
||||
Name: res/xa.9.png
|
||||
SHA-384-Digest: vQ4fKp6NCzKa4FTEER0NggSzSXJ8nWFPPjEezQxjFhDwdMLDqg+CFxDW
|
||||
i8sHGI/U
|
||||
|
||||
Name: res/TC.xml
|
||||
SHA-384-Digest: 2fui9v6hsppxtUmFVREwTS4P8RKgN0qBZofhIu1TlD94ilke7ZxzVbVT
|
||||
lVt40m7r
|
||||
|
||||
Name: res/qK.xml
|
||||
SHA-384-Digest: shc+gYPo7K7etJgaPQ+p8zxdOpBWYxKastZVUfJCU9hvFfI1G15V0CxN
|
||||
Rp8+cNH/
|
||||
|
||||
Name: res/G21.xml
|
||||
SHA-384-Digest: lm2wOnF9q2fxwATi8c7fbVkYUoYfbUBRSCYHuqIrcRsmi0EjNxoNAfa9
|
||||
fa90UBhH
|
||||
|
||||
Name: res/YG.9.png
|
||||
SHA-384-Digest: tLOjtLs7DsMFl5m6FWchPNGk9cOLhU6UPJkSisfIKbU7NWOD4GXlbzrg
|
||||
XUjDUmBe
|
||||
|
||||
Name: res/Lt.xml
|
||||
SHA-384-Digest: mdtiVKBHdMeDDlYV7OZrtQbdJJzEX2foV1K+hsegUp9UeI30kuH921/K
|
||||
81B3BIDZ
|
||||
|
||||
Name: res/MU.xml
|
||||
SHA-384-Digest: HTxiHxtqlHLrFAouEXdUnd6vqWpYGine+WfJoR0ToNAKIOJDEgk+BrCN
|
||||
O40WcRva
|
||||
|
||||
Name: res/color-v21/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: K1Az9rfl5yhxpLZQoeCinClo7G+dCACiVvnTepmfS3OWrz56DiBT5ZcK
|
||||
e4TS//vD
|
||||
|
||||
Name: res/xu.png
|
||||
SHA-384-Digest: atzxwJUg+1DuoQlW+8cN/2np2agi5d4wOdlzx014rYPccKrBIosd/gTW
|
||||
m+BDHx32
|
||||
|
||||
Name: res/66.xml
|
||||
SHA-384-Digest: vpwXM3Vvp/r2uTBYhHZQ6pc1Ts8MLFtBY0RZuYxOzZJeeX8jsemqYB+Z
|
||||
zSImH7km
|
||||
|
||||
Name: res/IR.xml
|
||||
SHA-384-Digest: qHkYEsrYz6QSn6dENfRhILE6ro0akAXteL+BeUuu51P5cpT7ogEqXrnK
|
||||
q+eWslUU
|
||||
|
||||
Name: res/color/mtrl_chip_close_icon_tint.xml
|
||||
SHA-384-Digest: pqU6EpYupXUyrvtXAaY7xn3xWVDLN8jVoCho1pUQlUhLHqe/AmB6q4+u
|
||||
/8J0sEX2
|
||||
|
||||
Name: res/BJ1.xml
|
||||
SHA-384-Digest: IsOql7MlG8CzfCkPD42vqs4Zx5tUeGD477rqd5WN5NOHPFeUgZy4FkiC
|
||||
JZqj2fJH
|
||||
|
||||
Name: res/EA.9.png
|
||||
SHA-384-Digest: mTG9i9uc4C+bAfRKfl1qzD+f7/C+dCOWZzKqTTjZv+UgEDlVdH6u/hxp
|
||||
0NkOmCcO
|
||||
|
||||
Name: res/VN.xml
|
||||
SHA-384-Digest: 5uWPG6yrzf0NKk8/XK1SXu9lejgXO3XBRXFteVPYhR81bomElNVlACxl
|
||||
YD9oQ8W9
|
||||
|
||||
Name: res/zV.9.png
|
||||
SHA-384-Digest: QdGDWUe8CXPi1rtnO5E2hVVgeOVTj0nZoHMp3uMHAEdyomlOAHgF7x4V
|
||||
7kbVvCV1
|
||||
|
||||
Name: res/U81.xml
|
||||
SHA-384-Digest: a3LBBE9iA8aA19Tv7dKRa3PAzQpxdqNp5jlzYg0sphAl+HF86DBdEm7N
|
||||
/FWthtvR
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: ivP+JboSn/+yixCXRw0Dc7M/bILvcKaw9yk4wNTbjBHPUP9W6iYyuUsp
|
||||
xbDB4ylF
|
||||
|
||||
Name: res/fY.xml
|
||||
SHA-384-Digest: eMYYduhj+T2NKSZqNHYOIT9UDd4IGrUzK6EuHnqlRtsDWwE1j/1BJT9c
|
||||
1y+LORQ2
|
||||
|
||||
Name: META-INF/androidx.window_window.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/JD.xml
|
||||
SHA-384-Digest: 6iVvxSefUStOvrUd4ccvJluRkhCJbNrDxKY55x7G23kHHIGClscqZbBV
|
||||
qvbLYe4u
|
||||
|
||||
Name: res/color/m3_dark_hint_foreground.xml
|
||||
SHA-384-Digest: yIiatCHu7IckHqDirPzA78ggXhC3f3JyFekfG3g8siV1U65Jx2rHcDE9
|
||||
vLhiiqGw
|
||||
|
||||
Name: res/Bz.png
|
||||
SHA-384-Digest: A3Kh5aSP6vwazMvCtNDXxvuA9GOkbkzdFfZObDehUdnvK5hWJCekdBc1
|
||||
jPs+tG6Z
|
||||
|
||||
Name: META-INF/androidx.media_media.version
|
||||
SHA-384-Digest: eaHeL1EfjzVJf22et7imyaY2wksxjKFFqnVvKnq96leidLMUZIg+yR8I
|
||||
k7wnMpIm
|
||||
|
||||
Name: jetty-dir.css
|
||||
SHA-384-Digest: BCs4kpE8ES9w+HhvUr10mPRKxyxBdTT0dlguNejm1DPCSzU5DGqrAZ6C
|
||||
V+Mos0o3
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: FK3354RTOTCemUhpJ3IEEf/saSBAuE288M7LWJolMweJPGE+w6b6yJ5e
|
||||
bpOAZX4y
|
||||
|
||||
Name: res/1u.xml
|
||||
SHA-384-Digest: H78AoOAc729fET5hsK6F26qV7YID64lf5Wy0MylOCikwoLN2Zg2QUlTy
|
||||
DMCwVoN7
|
||||
|
||||
Name: res/Lf.png
|
||||
SHA-384-Digest: NWW8T0rtoM4yH1kN2H8ZhxILlh+vWPs7FVkMzvuD/mz5xpcz18LOa5Vq
|
||||
VH2VKeal
|
||||
|
||||
Name: res/2K.9.png
|
||||
SHA-384-Digest: vVKnhgcH3EyVvA0AtGfvJAPZqUWeja2Bve/pj3FuqUQTkTILioVM7zl5
|
||||
+zCaJudI
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate.version
|
||||
SHA-384-Digest: GKqkS0cvyjjgH1wxhzzW5U7S04+7atOY/hnmeP/2ShskJ+QcyWqyhIai
|
||||
b/q/Jwoe
|
||||
|
||||
Name: res/color/switch_thumb_material_dark.xml
|
||||
SHA-384-Digest: xP9pOKtGxdl4K7gARvtKpeeJl84XmMh/sH7nzuxocX4mcLqUYRABQfr5
|
||||
F/t0+VOy
|
||||
|
||||
Name: res/Pv.xml
|
||||
SHA-384-Digest: 3q7BOR7AokNNSiFFLei8qHnE8KyEnwlRMonVOCla8/oezrostQhpLW8h
|
||||
LtbAdlx+
|
||||
|
||||
Name: res/G2.9.png
|
||||
SHA-384-Digest: kGO7QjNlxe5vVBRstRnOcgygB0fKDRGGZKIV6p2Q1Z+coVwf/0pndBsh
|
||||
tw0XddvP
|
||||
|
||||
Name: res/wL.9.png
|
||||
SHA-384-Digest: fJQGU1WMS4uG2iXMLtgQsL6ueBOej/mu1n6wg+OpRtVJDJgrvqmSnXXA
|
||||
lDggdeJ8
|
||||
|
||||
Name: res/eH1.xml
|
||||
SHA-384-Digest: dWWl1H4/HbyyW+nuOO0pl4+1MKQDrwCEz+ZEE6DEmSrBCwLdWJkyhJ+f
|
||||
6uAFf/Ej
|
||||
|
||||
Name: assets/shaders/vertex_shader_thumbnail_strip_es2.glsl
|
||||
SHA-384-Digest: 8HfXFGvN0+uUiwMfOypbK7SBx9PXd5Gyoj2o4aEV2HrYvkH5wGxmxanR
|
||||
Own4QMuI
|
||||
|
||||
Name: res/-A.png
|
||||
SHA-384-Digest: wjF8QKy4zx5whRaLu3Cdl+7RkRDSSUrExjGnUKI+3Mh87BX+Y9xf7iEf
|
||||
L734weB6
|
||||
|
||||
Name: res/BT.png
|
||||
SHA-384-Digest: VB2bOfx3LZk/iZWlV6iTomOQvnajY6scS8Sh3E+8GDCjoRRnQ5jLptsI
|
||||
X01k/gJN
|
||||
|
||||
Name: res/hv.xml
|
||||
SHA-384-Digest: dJnlUbeVJH61WH7QnA2mCoNI0eewn1Ux5wrzPv4dzc4j03DN4SCLfUQZ
|
||||
cgVEXSHD
|
||||
|
||||
Name: res/D_.9.png
|
||||
SHA-384-Digest: cXzRtyk07J57pWW/C53cz4hLqcksWq2myaCINMOWI/PU3zcO8tseUMjy
|
||||
QFTLgikF
|
||||
|
||||
Name: assets/test_assert_define.js
|
||||
SHA-384-Digest: ZHDn/P/TUamgTmAjOCLD0arrD/nuzSub4OOXfGbEU0OO91vYYhewQ6aK
|
||||
gy7CbvGb
|
||||
|
||||
Name: res/FW.png
|
||||
SHA-384-Digest: uYFKqQSQRDYIF6lDIGxD34p/+cTXnDBg9cKOscdXR0l8l54523Lcsugi
|
||||
QArIpOoG
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: G6cEkgqGDOEzxnqQSt6viOnb8CLg5QRfujV0PSGYmVApa5q5wP2QAmd3
|
||||
pTIDFPpG
|
||||
|
||||
Name: res/IV.png
|
||||
SHA-384-Digest: 72Am2p3Kpfha/NpTy/NCYdqsIb+fwTjKxymSgg/mBNARm3+YRAcf6nzZ
|
||||
o9jL31dH
|
||||
|
||||
Name: res/v_.webp
|
||||
SHA-384-Digest: +QZaazfBgn9VeEqkU9PEkjbtrICv6SvqCe/lBxEeLLJA7lO9Ca+T5b0f
|
||||
xvprpEvy
|
||||
|
||||
Name: res/F4.png
|
||||
SHA-384-Digest: x0PAcO+7yLrLtCf42jGb7r3Ak9UnoQzOf0s7InffgM6qnozgwNY8+TuG
|
||||
kWIgWj9V
|
||||
|
||||
Name: res/12.png
|
||||
SHA-384-Digest: 1dnsht12KfTj+CVDO3Pw8uyLWXCNRoRZc207NlQ0EzZxAQASSzs1dWMF
|
||||
tfPS8zkp
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/m5.xml
|
||||
SHA-384-Digest: a3qhEErGvXVzF2n09HoW2rJLq/TUvTx6aPCbiS+GYo6tB1wHw//iyBEv
|
||||
cIupZIgZ
|
||||
|
||||
Name: res/cm.xml
|
||||
SHA-384-Digest: Qooha/oiCHqraPY2vsrIqCj0lAuoDdTXzoJct/NSckt+6wqUvLz1u+6Z
|
||||
W7tWMVs/
|
||||
|
||||
Name: res/8h.png
|
||||
SHA-384-Digest: I05yZ5087L2n9G/kAHTkZSLGw5WKXK0+XkBIWOZa2seTrxwmrbHJA3eW
|
||||
Q1A70FGj
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment-ktx.version
|
||||
SHA-384-Digest: JSbQbclh2jKclz7IkGQq8Am5k+8z/fT/NGDXNjG76E/9UXFMKo1B0JfE
|
||||
J09pvEqz
|
||||
|
||||
Name: res/Cg.xml
|
||||
SHA-384-Digest: cmLjE0tDCkV2p5CCH2zKTpf3Tx9OIaflnPQlFe0ZDH88xX1p70tWnmiQ
|
||||
DiRoiQmO
|
||||
|
||||
Name: res/eA.xml
|
||||
SHA-384-Digest: 5/SUhlgi2o96Tnxo3t9TPXIqp9LV7PqDMYQS1Jqnbde0ttFVjFqtvFuV
|
||||
txMWnTWA
|
||||
|
||||
Name: res/GC1.xml
|
||||
SHA-384-Digest: Z7IcDCDXnYgmzER/Q/1VpiOXlwfVuQBrSEFImUq0TrNWK361FcoD9t/s
|
||||
1/iluKjr
|
||||
|
||||
Name: res/D6.xml
|
||||
SHA-384-Digest: p98S/bb46KkP/lfdhRgUrDkoeioQIyPSjcifztyuhlLOLoTY0hNLcPLh
|
||||
k67yYrHH
|
||||
|
||||
Name: res/color/m3_textfield_stroke_color.xml
|
||||
SHA-384-Digest: EeYy4Jq9AAp7RQkA/bCxI0CezpnYjMBErpO8+aJHS5xDLJPaFs9L425w
|
||||
LHQ25SL1
|
||||
|
||||
Name: META-INF/androidx.core_core.version
|
||||
SHA-384-Digest: rhLazMexU+PpVIUOOPSPBvmtfstRSlMkT38j5NLxiqmKwgYkKSNIitqq
|
||||
I28eUHut
|
||||
|
||||
Name: res/XW.xml
|
||||
SHA-384-Digest: 4MjBqsB+CoXKTgtI1pWyZgFpFSOToDFT+h+IVgB0KbnkDGlcmkwWOXpw
|
||||
VoalQzN8
|
||||
|
||||
Name: assets/parse.html
|
||||
SHA-384-Digest: d1wGlDUmpfIVck0O8Gvp16rRNNremxwyptc5kn8N6ieCSKHnv8b+7Mn0
|
||||
C3rIqvXP
|
||||
|
||||
Name: res/wN.9.png
|
||||
SHA-384-Digest: JjCRnHAV4Mz+NItlg2FXf1daT+0kwJhPdPo7FO6qGcxo12YugPAgabhF
|
||||
8UZ251rX
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable-animated.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/SO.xml
|
||||
SHA-384-Digest: 7ita8wVV5vZ8AokMusWsp0U+HPGzR3St2N9RuSwg57aq9rkPdtEFnr8u
|
||||
Sn3n5mqP
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Connector-mbean.properties
|
||||
SHA-384-Digest: xGSm/or+2LlQNGI+UTK4y7SxTLdFUnlvjrxHg51Ay6J8HLjnpB+MpeeL
|
||||
VZzdTvBA
|
||||
|
||||
Name: res/5k.png
|
||||
SHA-384-Digest: U2DiMjUlHruUWJP4rRfTwXkLgXGcDB/IV/BxdWpqp7CfR/tEzC28Tli/
|
||||
qj4B8roo
|
||||
|
||||
Name: res/color/mtrl_chip_background_color.xml
|
||||
SHA-384-Digest: 9N+FqNNTi/hQHJPFSPBn7lL1FRBkjOo/AdiPEAmz2aXdvGaAFzF8srpV
|
||||
2JbbNCCS
|
||||
|
||||
Name: res/vX1.xml
|
||||
SHA-384-Digest: 1BvuuNVdkErtAd6yc9YqSCIqwnc6wMIQB1ojOeyMebVtiNPHPLdhkhq/
|
||||
4SKuT89c
|
||||
|
||||
Name: res/aU.png
|
||||
SHA-384-Digest: wYpL447eMcdZIg+lyOcvqlpgGsFBZLnlOXEMaX0sDBqxwLu3yvz84Z9A
|
||||
qgqeRUid
|
||||
|
||||
Name: res/color/text_control.xml
|
||||
SHA-384-Digest: OFg809tgpX70ka6nLYGrXCYdXCZjsiN0XgBJwXflSOPVP5KiS94zVvco
|
||||
0IRFIUZj
|
||||
|
||||
Name: res/xo.xml
|
||||
SHA-384-Digest: Q4fcoWsO3bpr6pK5GRRxFf+RRwVKUwxf10iNw4PuqgtV6OZfsvmOl5iq
|
||||
JK7gtQ2D
|
||||
|
||||
Name: classes.dex
|
||||
SHA-384-Digest: HJWEHlMELvQQZh7BW7VLEGYbYYKJtAETqlJoqsDBqDOBYf0bAZxUHH74
|
||||
9QXHP4qN
|
||||
|
||||
Name: res/color/design_icon_tint.xml
|
||||
SHA-384-Digest: cxJ2aAGB6E/SZxOt0tAxaJaiLJHXAGkOSpevJGOMrDKIzQJqHKBGYiiq
|
||||
sjU5jKO7
|
||||
|
||||
Name: res/FS.xml
|
||||
SHA-384-Digest: QRbWx4j/py5r1FKmsyeI2ccrkmLaqznsLyv4zCy1+Kmbv9nm4SEsP6Fe
|
||||
4bkMgyh5
|
||||
|
||||
Name: res/color/material_on_surface_disabled.xml
|
||||
SHA-384-Digest: xS7CUHg2gZDWplD29jEzbxd0UE0qdSo/5lIDvfXpGHfHh5omN7e5mrwW
|
||||
BHc+0W9T
|
||||
|
||||
Name: res/Ol.xml
|
||||
SHA-384-Digest: Gb2TApfG0pYUHYu6eTu46CCVY9++853+10HBEwAogLxOKtdavinjeXsO
|
||||
Ml8sUnEj
|
||||
|
||||
Name: res/EU1.png
|
||||
SHA-384-Digest: Qi8a5cdw90qIZrIMZM1XaobrSWVWQb3wVWVMKtQgwvfMwuWhw3I9DfWt
|
||||
gYwjNPge
|
||||
|
||||
Name: res/Nn.xml
|
||||
SHA-384-Digest: B87BF2ccGuCRsJ968yiZoKjKqNtovzHAfaj4HUB/C3cAGVd2ONWtLff+
|
||||
QEap4SJS
|
||||
|
||||
Name: res/pe.xml
|
||||
SHA-384-Digest: 2/b8jjkH6ZWtj+rx47J8pFXIddCYQE5yyGHGtfg7/OZzQP99eLPlRAyp
|
||||
okfCWbKv
|
||||
|
||||
Name: META-INF/androidx.localbroadcastmanager_localbroadcastmanager.vers
|
||||
ion
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/8c.png
|
||||
SHA-384-Digest: q4lIWdHxuDE1nNVcSwYB7zcyF7AFPghEE0BeBnaaI4WuJaHPdFtIf05P
|
||||
dXrHuIBa
|
||||
|
||||
Name: res/nL.xml
|
||||
SHA-384-Digest: IywTxSlxOx9Y1Kf/ruPYUZ47KZSThVr7mLDjQgncyRnZPKST+gG8s6OZ
|
||||
MGRHQ0jW
|
||||
|
||||
Name: res/SG.xml
|
||||
SHA-384-Digest: VwJEojrlmaxOs1B1xZwn4ioUPdHBxh1xjGUzEtPUSfx35SbCEWJWilci
|
||||
oUCw/MSL
|
||||
|
||||
Name: res/color/mtrl_fab_bg_color_selector.xml
|
||||
SHA-384-Digest: LOBwJ4hVo+kec4K87tMlBPPDx3diTLtGVqbaplYte1gjLuVPqFFx1A38
|
||||
Wk4oZC0u
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color_secondary.xml
|
||||
SHA-384-Digest: GN6HJANId21radQt1cLEjB+v2gjrJ6Xr74tktUB2VieNVqySACgebPe2
|
||||
UUQwBehy
|
||||
|
||||
Name: res/Li.9.png
|
||||
SHA-384-Digest: miLIS9IaXKW+848QkOPmShQNfKqSobV2iElOC8yk3e6v+bVkOjZPEEWg
|
||||
kj7tDTSk
|
||||
|
||||
Name: res/4k.png
|
||||
SHA-384-Digest: 5+BhOy0tnsg2mXOGGlVvsV9sNp3ylSru/BV3TIehq8eAWaabWOWKcMjT
|
||||
Ty2gn9O7
|
||||
|
||||
Name: res/el.xml
|
||||
SHA-384-Digest: BtRI0F/NwOVzxvpsB6iSS10CCj1g7oRtYAISpqRg45qUXNv0KhrUKyQN
|
||||
w+L3bRwa
|
||||
|
||||
Name: res/J1.png
|
||||
SHA-384-Digest: +ua0viHjVWfBce4n186HwKHONDaK/VP1YdULrBXbA0oPlLfedVR0KgNG
|
||||
EAdwc966
|
||||
|
||||
Name: res/color/m3_slider_halo_color_legacy.xml
|
||||
SHA-384-Digest: p3CbxhJdoP8IMVGoZ/WPa2j1Brw8Cc4YITeJfG//9frCLBpdUu+Y7z1x
|
||||
5myFwdQS
|
||||
|
||||
Name: res/fj.xml
|
||||
SHA-384-Digest: dGdZX6cocHkSMBuXdeLF+2vyR1XAtqDeyBqGQIeJ2w6zsg0lrRbSuRz+
|
||||
BfeDfPXU
|
||||
|
||||
Name: res/Ke.xml
|
||||
SHA-384-Digest: PA0REJId1SSR/7LkjEyxSYtq9VAgrjxOvM+5bFd4OO5VG8SmGfPf/rGW
|
||||
kmYWTBw+
|
||||
|
||||
Name: res/N4.xml
|
||||
SHA-384-Digest: OlawSt0Vu3tECYnk8Uu65W3h3l0onq9HJPI+HetKmfAQgeX6bdpRn6dI
|
||||
hBlDKsLK
|
||||
|
||||
Name: res/jI.png
|
||||
SHA-384-Digest: 6vOhdEWwJUuEDJGlQoPp6sIthLWMW1PAqJMyRUuDhI5EA7FyDuD2bF15
|
||||
RdcpQg4s
|
||||
|
||||
Name: res/JD1.xml
|
||||
SHA-384-Digest: 6OC1OkDY6X7rOifL7P0/lyNpz4XTpi7GmJAaPCUxIvx0QOgtU3VS/okI
|
||||
bubo4OP2
|
||||
|
||||
Name: res/No.9.png
|
||||
SHA-384-Digest: 3PhdH6l4ZVLcaIVTxODY9duKFcilsduA9WATLoAjllxxWIpWS3L+hOQI
|
||||
6lcAtsga
|
||||
|
||||
Name: res/color/mtrl_filled_icon_tint.xml
|
||||
SHA-384-Digest: 35xND/H1nQwVzjo2IsfTyoOL4NxJR3tyDhJucIi+3SjvguciAzE2g9RP
|
||||
LqdghcEc
|
||||
|
||||
Name: assets/js/lib/crypto-js.js
|
||||
SHA-384-Digest: p4S5Ok8jC6EYwHG0MeGzzkgxsphF6h9HgXEyhRKLCH0wR2Nq1L9WfD5F
|
||||
x0PbG6hQ
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/HandlerContainer-mbean.properties
|
||||
SHA-384-Digest: limSfIrrX9xMuLQVhT9zAyf/yrkp1whTMpGd+e/lxJ7TmQxeP1b2ieDm
|
||||
e+c1bMFK
|
||||
|
||||
Name: res/68.xml
|
||||
SHA-384-Digest: pX4NdvOwcig10llXsx3bpu9MuuACaHdsQlqajDTjl8YkNzJvLLFkCLpj
|
||||
d18lSkt4
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL5.bin.properties
|
||||
SHA-384-Digest: DtBLdajnXhHufgIh5c+HpFTjxzhSYWfEiHgSeoiDhqs3AJ1u+nm+t2+E
|
||||
XustgZFG
|
||||
|
||||
Name: res/pV.xml
|
||||
SHA-384-Digest: M5Ubl8tuUzskM6DfNNUilsYEnfAynbW3jpZrSfEtPRzqZ+zP9+uJxeXu
|
||||
yAda7Q1k
|
||||
|
||||
Name: res/MW.png
|
||||
SHA-384-Digest: g28G6+13JYz9R88JIdAI2SdBJS8BFNYSJbMTTobucUn2ypwasGe0e/sP
|
||||
FCmvRMV7
|
||||
|
||||
Name: res/65.9.png
|
||||
SHA-384-Digest: 8kitJ2jvKwP1gqfTSUK3j/OGoFF/3okUg7DU1Jj1MpihIfltxcqhGiMV
|
||||
78fJnSMY
|
||||
|
||||
Name: META-INF/androidx.biometric_biometric.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/color/mtrl_fab_icon_text_color_selector.xml
|
||||
SHA-384-Digest: Xb4v1VQLs3f9oVcbKYfer2+sadg76KwCbYziyRc7L88xvO97RXSCcbGH
|
||||
Sm/+7nTe
|
||||
|
||||
Name: res/color/m3_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: XcONovWw2P9NaPXhEAOBQEo4KP+jlpzrCGNPDCgOyh8bU170qbotOYkY
|
||||
z5xw/pNd
|
||||
|
||||
Name: res/A1.xml
|
||||
SHA-384-Digest: okhMO0U+rqRyy1HaPSHeQMistmnaNESMAlmAfg8Ro4uSLOmTJGh2wJkr
|
||||
RuppJfr0
|
||||
|
||||
Name: res/_P.png
|
||||
SHA-384-Digest: 3sZjTZbMqwMW8DGZnJqBw3pAJ7iXgffNJSDygftmHR7vjZUdbg8IMLXL
|
||||
BONZMpQi
|
||||
|
||||
Name: res/7R.xml
|
||||
SHA-384-Digest: p78QFhNS7IWdXjymJUOcCiNK3fc8qSR/0WaTaJtAepP8oz8ll0UY2Bln
|
||||
lbVubhte
|
||||
|
||||
Name: res/Eq.xml
|
||||
SHA-384-Digest: 1Qr2Ktq+dzGJa62sduaAWUSxHTC0Mp2eSxxq4PwnxiIZVjypWSpQO3K1
|
||||
hLUH4vRV
|
||||
|
||||
Name: res/FR.xml
|
||||
SHA-384-Digest: QDDnkFh8HeR76j0TOnGMC+V7/Vt5Wv1m5CTKY936pDcUtrpr3uC0NJSk
|
||||
yIlRkmAf
|
||||
|
||||
Name: res/XK.xml
|
||||
SHA-384-Digest: rUSET19NXHVoYfboULO7lXEjQ5fLBnZIze5Y08zVvlhnMOmn0/PC3Zuq
|
||||
MWpya8TT
|
||||
|
||||
Name: res/tZ.9.png
|
||||
SHA-384-Digest: hN+E6rB+RDb6ft5PXTr+bZVVk8wpGXaHZYeejllJ+sN7iv6eTwuT5ZGf
|
||||
52pd500J
|
||||
|
||||
Name: res/7_.9.png
|
||||
SHA-384-Digest: +SloTJHYf0JnLzQg9kM0Jto9gYgmWgaVi0jIh5kFvmcil0eNFReizG8Y
|
||||
08okamCt
|
||||
|
||||
Name: res/br.xml
|
||||
SHA-384-Digest: YCE/VtqlVjgGUaGKlABBVm5M/EVzuF+B15ncdlRHww/0rvyMDzYVDX89
|
||||
uzZh5WCn
|
||||
|
||||
Name: res/gK.9.png
|
||||
SHA-384-Digest: aicBCHn1XDdQfK4J0MyguK32p7rL2+/YxrmifjY5PMKuQgi3bj1iAWcK
|
||||
htIBLpwy
|
||||
|
||||
Name: res/color/m3_button_background_color_selector.xml
|
||||
SHA-384-Digest: Ry1ojnu9ZPAVI6+v4gUBaFKxIpORl3V2AlXXfMmBLNAB8tx3knPSi7xG
|
||||
8TFPsHhd
|
||||
|
||||
Name: res/eP.xml
|
||||
SHA-384-Digest: 5laWod/xId3GuEgrzMVOGEJWAhychY01s3aHTxyGnD6Idyr89JbCLWNP
|
||||
iLXgA3dq
|
||||
|
||||
Name: res/_i.xml
|
||||
SHA-384-Digest: k9Q7nPSdEdHo/jtnXBJjOui1BGFkGOnFeWwzf4tRcuXY69UixciZfjCF
|
||||
P1yBKVkw
|
||||
|
||||
Name: res/9O.xml
|
||||
SHA-384-Digest: nfPn5jjAkqcCqGdsDJ9DDD8msODi+fBPIh39COKszL4cp6Vr/ufhAWpj
|
||||
xtsajJdY
|
||||
|
||||
Name: res/Ud.png
|
||||
SHA-384-Digest: +T040gguG79bKdExZyF1SMMeNi60c7shXHfpwcgfU8S7COJP5QKKnDQS
|
||||
sj4T2IYF
|
||||
|
||||
Name: res/Ck.png
|
||||
SHA-384-Digest: aO68KUChTAZdPyPaQ5+N1n2dKj106a3WJXg0OpJgv9JgKiCOBBONUlgh
|
||||
7KugHcnD
|
||||
|
||||
Name: res/5e.xml
|
||||
SHA-384-Digest: bo1qOTMiGtqRrXQ9TtE7IIk1brRLwI5mqqFNm2oB6ZRSU+ECYdlPoFBw
|
||||
otTrX4/a
|
||||
|
||||
Name: res/o1.png
|
||||
SHA-384-Digest: bpcATAC/SqWUJ69a+pD9R808lg1WPPDjpMgWLjQ90dHfG5N0tTZZf23M
|
||||
8BAefGcb
|
||||
|
||||
Name: res/rE.xml
|
||||
SHA-384-Digest: CLGmIJuBVWqwqRkxeGVvnZUbU3MmD3RGT3RQMeM6kfNLmfDLPOHta45U
|
||||
xVWM6UGn
|
||||
|
||||
Name: assets/shaders/fragment_shader_copy_es2.glsl
|
||||
SHA-384-Digest: 3ay2yrOwYwQ5GeKsQzqyu0iIvq3MmQccLut079GQZWOr2soSX2mX2jtU
|
||||
yQ6pH1Ze
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/NCSARequestLog-mbean.properties
|
||||
SHA-384-Digest: DLp1YE6FpvrNyrjCYo54bdVcAlauzl68zvxKCnHISlXKxl/zqEcrib5N
|
||||
zws/qsCv
|
||||
|
||||
Name: res/eR.png
|
||||
SHA-384-Digest: dR3U1E4cjbkVqeL199quLcpibr00qU0TNZbGH18dLC63OsWRZkmKjW56
|
||||
WSa+dIu6
|
||||
|
||||
Name: res/3u.9.png
|
||||
SHA-384-Digest: 5+OW0oVUijxYNH87RRPJm+WxschOgTkMuKWKoSWrd0fPqmeAkSLWUCuk
|
||||
4JxGCXfV
|
||||
|
||||
Name: res/ya.xml
|
||||
SHA-384-Digest: kuqc3W+bteryOxjPXQuLlxOA0HCywrLJCnaV5IbXzLLc0xHARDFQrR3H
|
||||
g9UAfMaD
|
||||
|
||||
Name: res/hN.png
|
||||
SHA-384-Digest: +r+ebk29mL915VybwgYx+FuT5zk1fJ4a/9No2Za9Y9E3X9AfKXix6Dap
|
||||
LjotAoWs
|
||||
|
||||
Name: res/Zd.xml
|
||||
SHA-384-Digest: sU2o43P2OF65jtPRDU+yWhhPPfLM2L/fj/+MuoMF02PNdhnqJWrHTLqr
|
||||
R5WfFHSM
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core.version
|
||||
SHA-384-Digest: XOqA/6uD+38Okz+pytXiIKfRhrbLZcfmoIOiYR0xlOXNPpABG8PzPkwA
|
||||
9k3ohMWd
|
||||
|
||||
Name: res/ev.9.png
|
||||
SHA-384-Digest: uaHN8UCRxLRcoW7T9ljRFkSd7AdMDHuNWsCKH/zvk5tkAdpK99gD7zky
|
||||
mAgerRjl
|
||||
|
||||
Name: res/Qk.png
|
||||
SHA-384-Digest: 2Q0JXf+l6TNoII8xKCosP326VwkUA9cE5DlA6Xgdws1PrSvFkOrrB7h6
|
||||
Uid8gzu8
|
||||
|
||||
Name: res/RL.png
|
||||
SHA-384-Digest: SZK625JCkzpT9RU7ruADcGDGyrK0SXlFXDVbpY8UWWxEHRk3wZScWCqg
|
||||
24XVRWWo
|
||||
|
||||
Name: res/S-.png
|
||||
SHA-384-Digest: 4v3nIarNDUEcqhbNCz7kbDpF0bQk4rn71P+KO/WHT11ykj6omL76ozlr
|
||||
YgXMUWy/
|
||||
|
||||
Name: res/20.xml
|
||||
SHA-384-Digest: iChgeT74FxRjgZusZQkSlfql/o0A0sN721qkLKme5bNBL1nczOUaSxkU
|
||||
EHljRwoz
|
||||
|
||||
Name: res/gv.xml
|
||||
SHA-384-Digest: GWeyxWJIT68+HmJdA/zVZ5hTxq4SuKEhBnzu59cgMwQfYxpPHVDpF9Xp
|
||||
QZ1/sEiV
|
||||
|
||||
Name: res/ZW.xml
|
||||
SHA-384-Digest: VVZ3IOqrRKFCjD1ueBQsZHX7G8Xvscr5OuCzQbdfWaGRN03oN6qdh7Uy
|
||||
5Y7bYdf5
|
||||
|
||||
Name: res/tU.9.png
|
||||
SHA-384-Digest: ZugrMXo+1f3eeOOTuIWJIzn4EN38003eJHlqZ+NrerNV5PzGLsb1j0G1
|
||||
/qYK9fKY
|
||||
|
||||
Name: org/eclipse/jetty/http/encoding.properties
|
||||
SHA-384-Digest: HE7HiEkhWfj8bm5F13m/6iL1hSgk2qkvGL0VWES+HRLptKoCdgz9V5Zg
|
||||
kZevqz5o
|
||||
|
||||
Name: res/Sc.xml
|
||||
SHA-384-Digest: pcCQMUbtzJXD0dK/82TKvxncsovQJ2lGyQ4xwEDfHeJv/qo7yED08kmt
|
||||
zfRsupDS
|
||||
|
||||
Name: res/0S.xml
|
||||
SHA-384-Digest: WytAbSAiiv9QqkQxOwCkuAqyMnzcUig5Al59BVCq2tyxouzMKIojYuMS
|
||||
NEMCsAzM
|
||||
|
||||
Name: res/color/mtrl_navigation_item_text_color.xml
|
||||
SHA-384-Digest: ceU58PHHS47LYAjLBqlYJFqv/wAbFCkRKUTbATjMpt+ZSd9gCq8+zof8
|
||||
030WUmZb
|
||||
|
||||
Name: res/2j.xml
|
||||
SHA-384-Digest: TGNZ7cGPeGRQNi1NT2OnkradoaGsaOOPrElVDSzms1BsX8ODJ5bIkD2P
|
||||
GYFC0W4z
|
||||
|
||||
Name: res/sA.xml
|
||||
SHA-384-Digest: ZxDU7uzS0FPVKVlu6smjLYe2X3aQYVXvh2lhlBiV8IXszmEC7sXKLdfK
|
||||
2pCKanAD
|
||||
|
||||
Name: res/color/m3_timepicker_button_background_color.xml
|
||||
SHA-384-Digest: n0mbHRW840O59Dys+KXVH2pyHrsywCrQ3/emSRBmCSuoSHv//2MfmqAO
|
||||
I1caZ+h8
|
||||
|
||||
Name: res/9b.png
|
||||
SHA-384-Digest: s/RfDbD42++z8qZNgNe+35uvxn5riTSKB66L+bJqnOkhAs36eu3xIRCu
|
||||
HzdU2kx1
|
||||
|
||||
Name: res/nn.png
|
||||
SHA-384-Digest: W0VbBUe+LN9niP+DjJil7jPG+zXyjPYTAy+L6jlYz4yx/lrEwqRFGtL5
|
||||
r+pPTfRj
|
||||
|
||||
Name: res/RH.xml
|
||||
SHA-384-Digest: ZeEwVkZ80687gCLEEJhBRb6EJy14Xtmz2YYKePP/pIj/CpkoC91iKxL4
|
||||
5NvP9nqz
|
||||
|
||||
Name: res/GQ.xml
|
||||
SHA-384-Digest: Fu8qJRBVS7j11Nxwyd7URJCNeltJ1thOKJ2tMs6JSS1uYHA467l/tn/w
|
||||
sRfPildE
|
||||
|
||||
Name: res/N01.xml
|
||||
SHA-384-Digest: oAKi2Xwr8w4j0+db46/Mq3DUMfMFE4Qriw9oR87J1KVHfx5/xE5UHGql
|
||||
2YTOTd3u
|
||||
|
||||
Name: res/kD.xml
|
||||
SHA-384-Digest: Croy9LoPhtRfnJCZAJXbKjary5MSz0/i2VtR5OPwd04WBEE2X7C0yI9z
|
||||
B56s4fJK
|
||||
|
||||
Name: res/bT.xml
|
||||
SHA-384-Digest: rUPaPDPChCEZBoHIHPMK8rLJNHD7SLHpMDCUoej8vCR0YomI4qB9rsfh
|
||||
xuvvNWK6
|
||||
|
||||
Name: res/c5.xml
|
||||
SHA-384-Digest: HuWBFlf876klFny//Rgc7EfL331YgPBbLivfTPnqDyLgbfZM3X/1P+WG
|
||||
/IEVoFSU
|
||||
|
||||
Name: META-INF/androidx.legacy_legacy-support-core-utils.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/t3.xml
|
||||
SHA-384-Digest: v+9LUsJHm50msPvunrrA8K7C84XJa9ZExukox0tCto5/FD3UYtrMLMhs
|
||||
O9kx6ROZ
|
||||
|
||||
Name: res/Bi.xml
|
||||
SHA-384-Digest: /68Fgmx+X/PDMB7DF3f4Nqluepzdn+1h6RGPktCz32hP5inviylaVjT5
|
||||
ulerrpqE
|
||||
|
||||
Name: res/k_.xml
|
||||
SHA-384-Digest: nH/aUwhC+D7bh4XEuzCjAvuE/IC7gYtt1spuN26BzGcQoUQ45yV+agLq
|
||||
nVcf8Q7I
|
||||
|
||||
Name: res/color/m3_text_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: YtbCcmCemZEn6j0qAHyvnHX6RqFQ8VUVjPBy//FE57bXBpXUZTDTCkCc
|
||||
BfETU3w8
|
||||
|
||||
Name: res/5v.png
|
||||
SHA-384-Digest: 6/b1pOnM5TsmZQ1MBcorb1VyHq/l8q23mym5thNUmkHKMNpYgEVvDwpc
|
||||
hKLG6mSB
|
||||
|
||||
Name: res/sn.xml
|
||||
SHA-384-Digest: +avoxOFPBghiXTfWJx/nJ9/6lN5slI7pkZbH5Tb5DAx3WjnfCR1tunlK
|
||||
+LGU9KwB
|
||||
|
||||
Name: res/u0.xml
|
||||
SHA-384-Digest: vpWKe4xkpFHO9f9yfQ3ec4+qXVd3FCOlQ+OCceW5Vf5Og3c9gafZ6cCF
|
||||
H2AR5TIO
|
||||
|
||||
Name: res/tS.png
|
||||
SHA-384-Digest: x4dr8WLLRU1+tOVdpCRSp7arLNzMTrDJt8gY2N4SN1oBuYi6e4Qh/J55
|
||||
O5W5Zfce
|
||||
|
||||
Name: assets/js/lib/cheerio.min.js
|
||||
SHA-384-Digest: 6YP6D+mRUl84EmklTZYVCeXpTSqATW7K7E9rv9nRLAXHPTgqkNwPbWOg
|
||||
Z6kkPZYo
|
||||
|
||||
Name: res/Wp.png
|
||||
SHA-384-Digest: 3Atlil2rulzSZcAkI9XPfy+RoxX9R22e0cwhw5RkhUsKR6oTG9a2ArJB
|
||||
OjsAJ2uP
|
||||
|
||||
Name: res/color-v23/abc_tint_spinner.xml
|
||||
SHA-384-Digest: 1LKEAPN57/exQ3tqYm/anMab6GIjX5YpsYzryjZwNQDIBr0NdspSg5ct
|
||||
UKDtrYoG
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/FilterMapping-mbean.properties
|
||||
SHA-384-Digest: GU+pmTaTlhRA3B6yotzZHKVmYWgXhJkqE11z1yxV9Q3hiZy55Hfcd0+a
|
||||
Smicn+VS
|
||||
|
||||
Name: res/2x.xml
|
||||
SHA-384-Digest: VvDMk5id0/dKLkup9YdEflCqxea+AVWzoF3BzbVfhaFY1NR6TILTa8JQ
|
||||
pQ8xJf7Q
|
||||
|
||||
Name: res/dC.xml
|
||||
SHA-384-Digest: E5n0o20/vzRKhKZy1VvWiiFBpQftV9oc87S7N882Y3M4yBnDOs4+28g0
|
||||
ddvIBp0d
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_dark.xml
|
||||
SHA-384-Digest: P4j8GHPyVOPgwaUoduJDb0jGuMmZCloYgPDOe5Nqgldjrri+hW59Pyhg
|
||||
sWGQg3vE
|
||||
|
||||
Name: res/Fg2.xml
|
||||
SHA-384-Digest: 2n1/PxUa9FNAzF/725PwZaCorh4OdjH/Oij2x3BU1ML4Pifvf8UCQvoF
|
||||
49bO1gVz
|
||||
|
||||
Name: res/W5.png
|
||||
SHA-384-Digest: j7KzS1tdRqP5iiOnZUdEydx6ER97Rn7+H5ibVq56ixT11oxtRhIQEALd
|
||||
9MY3U3UD
|
||||
|
||||
Name: res/Ce.xml
|
||||
SHA-384-Digest: JfnyeE2EhoGtx/dDwmHB+TNnNX6ne8SteliSYA9b5nmwZFx1onnqgcBa
|
||||
zdwSSW0k
|
||||
|
||||
Name: assets/js/lib/spider.js
|
||||
SHA-384-Digest: ilzMS93WLHNL8cv9xG9gGFgkc/AJnWGYVDGr5hF+MMs3a4gCtzeBpSTr
|
||||
TN0GrE43
|
||||
|
||||
Name: res/1e.9.png
|
||||
SHA-384-Digest: IEmjoduErLEyLx6LI0HYddYJXVVSlmgBT6ToKFV54sGoaml+IGCWgERa
|
||||
PKFZB8X/
|
||||
|
||||
Name: res/wu.xml
|
||||
SHA-384-Digest: Z8T9qW6mvto0O7/Jp/ci1eQtbz7xPcHmtCi5/BV/2GYxgOfdPwScH0iw
|
||||
7xk7GPEC
|
||||
|
||||
Name: classes6.dex
|
||||
SHA-384-Digest: Uh73FVrm9LkSU01uCSicwnWkq0DawFzZlRfGerckI1L9v10VYB+9Y9kM
|
||||
0K/77Gvr
|
||||
|
||||
Name: org/seamless/swing/logging/img/pause.png
|
||||
SHA-384-Digest: 1Ykw2RaP5yvnLRawyW11o3Sy5aVcOY1jKcrId3jnWEDTIcZTLjAPGE1j
|
||||
C6VFUtxO
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_high_type.xml
|
||||
SHA-384-Digest: y8O9iKZ70x0eBEKFOAMheOY2LiTZluvoCuWaImI1LJecQeF/5gHL0Gpl
|
||||
FZlb2J05
|
||||
|
||||
Name: res/color/material_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: +pwvszGqU0oHI8VvF/opBAFPn9qud8ZhGrX4hrbvPkpVWcKhljEA1X3z
|
||||
iUbMMYmE
|
||||
|
||||
Name: res/1d.png
|
||||
SHA-384-Digest: mu0ZrlpC8hDg8vJ49eKUnBrKsV9iicWEhiu6eVksw0AzCOdwjuIJ4m5T
|
||||
syBX0rjf
|
||||
|
||||
Name: res/color/m3_navigation_rail_ripple_color_selector.xml
|
||||
SHA-384-Digest: 9fRCKRuk4sDb/8v4iNNSG8ai5d3EI1g96Tn709nYx4RuS0kNcomty1Md
|
||||
HUb+kW1B
|
||||
|
||||
Name: res/Lp.xml
|
||||
SHA-384-Digest: ZrOMbbtAkEuz6ws+LvaTxLb1WNW4cmbis9zkMrL6W5/uMHQeLnYVgACi
|
||||
iC/cfMbp
|
||||
|
||||
Name: res/IN.xml
|
||||
SHA-384-Digest: coP95n5l3l2s67hpltbRfxiogRXzKdJQbyN/ME4C0nJ8l7xL0NKtCCTC
|
||||
emtJvNBe
|
||||
|
||||
Name: res/iI.xml
|
||||
SHA-384-Digest: wDJy/YxecuuznsKUszQE6qNMldfwTBz7FHHRHrKJnTV6/u/HGNKd75d9
|
||||
gtRiK7QP
|
||||
|
||||
Name: res/n-.xml
|
||||
SHA-384-Digest: tNBy/rZn155BQydH0e8RjSy99ds3Xi9iRLO8CgOikVVz0Te1rTmPGDWU
|
||||
0hYeYI18
|
||||
|
||||
Name: org/seamless/swing/logging/img/removetext.png
|
||||
SHA-384-Digest: 2DQtIRBR48b/g2oTv6uILo53CTj2t/SRblCvN2dh2rk+pcZCYeIloIBB
|
||||
cbPSwMlY
|
||||
|
||||
Name: res/bt.xml
|
||||
SHA-384-Digest: Dk/ghmK56Q6qbm7iUmw90sbWXX+mhtjF/84p+18MmaJ0MT/wkoSjJc5p
|
||||
0b5TUbui
|
||||
|
||||
Name: META-INF/androidx.print_print.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL3.bin.properties
|
||||
SHA-384-Digest: 4mpCpviRAOoLhhgdEDDWo1A2P+U7ZNBSMqBYljLS/4QPi88nGWONxQTS
|
||||
aqeFIpCs
|
||||
|
||||
Name: res/mA.xml
|
||||
SHA-384-Digest: i9b+lAuRGgyPMLDlmJoawuZsGrlBhyYFnpO+H69kwWSSjaWXCLKyw052
|
||||
DR7AMDE8
|
||||
|
||||
Name: res/fO.png
|
||||
SHA-384-Digest: 3onyFSJ9cSNILnoc01eDgcZSK1gV1GNduUiF41sxO1yGPXWn70r6lWBM
|
||||
Eeh85t+l
|
||||
|
||||
Name: res/hl.png
|
||||
SHA-384-Digest: A49PPC6xh813FZQpKxFzsM0VQDTvsLEx/r4m3f8a/ybvxVnbnzvuaCGA
|
||||
fRoNxpav
|
||||
|
||||
Name: res/sl.xml
|
||||
SHA-384-Digest: AWwKQiHa+SVzRybXKPfvu6MEgMljNlsnwHRAmAWuPu48U5EXO2uoIg9N
|
||||
OMfx5zQj
|
||||
|
||||
Name: assets/libmitv.so
|
||||
SHA-384-Digest: A05bvIn+yv/dIjXvWBs9XYCPMeDkQwxU/NmkOyieDsCCSRdVyTADJuIH
|
||||
XiYx338P
|
||||
|
||||
Name: res/Lt1.xml
|
||||
SHA-384-Digest: sU2o43P2OF65jtPRDU+yWhhPPfLM2L/fj/+MuoMF02PNdhnqJWrHTLqr
|
||||
R5WfFHSM
|
||||
|
||||
Name: res/MU1.xml
|
||||
SHA-384-Digest: W+2g1Uh2zS1qYYsWhbPevI4jMiYdelGZgQ2Ccg63KTp6BsY0ZnDLY5eS
|
||||
9uaD8BGk
|
||||
|
||||
Name: res/pk.png
|
||||
SHA-384-Digest: 9bHxMuASK/WODGdlWo5/6vL9GZQgrF1A3ysiIhsVPCrOYNRq6oEbHz/Z
|
||||
vapiU+5Q
|
||||
|
||||
Name: res/8p.xml
|
||||
SHA-384-Digest: 74ZcazQd+5Z2YjhPvb2i79NfJ0XSoHqdmI6KrbhDfOsvlOkF2ZXfCrge
|
||||
02aQxkRN
|
||||
|
||||
Name: res/kB.xml
|
||||
SHA-384-Digest: cV7tBB0Lq3RHYpPr55hTgh84ww09MjcNkkCgabztCvX1NceLc/jmjKw8
|
||||
YY4HN27E
|
||||
|
||||
Name: res/Nk.9.png
|
||||
SHA-384-Digest: dHZvW/9I0/OlMhq2DBEwnHWJ2hSZyIeIOttamFdPt2nRmS3dGwxO8gVj
|
||||
Bjq/0U+k
|
||||
|
||||
Name: res/color/mtrl_error.xml
|
||||
SHA-384-Digest: xlJZe4bfHpQ2CtQXhSEswsgVzn8ATw7FDnEv6vpe88WqBQVF+1/tqGbV
|
||||
sRKv8UoL
|
||||
|
||||
Name: res/eC.png
|
||||
SHA-384-Digest: 2QYl2xDHzCd5v8MNcU2PeD7iDZqoq3hGLiU5cnUO64GoeROG522ewIhR
|
||||
am5gdKAR
|
||||
|
||||
Name: lib/arm64-v8a/libquickjs-android-wrapper.so
|
||||
SHA-384-Digest: s8eDOHARHWtE0tQJIgFWqgy2WlwsJDmnRZwYTP4PR8AhxLCait659Q3p
|
||||
hvQgvauw
|
||||
|
||||
Name: META-INF/androidx.core_core-ktx.version
|
||||
SHA-384-Digest: rhLazMexU+PpVIUOOPSPBvmtfstRSlMkT38j5NLxiqmKwgYkKSNIitqq
|
||||
I28eUHut
|
||||
|
||||
Name: res/color/m3_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: TOcVEP2bRG/ECOSWdZopFTfkCPbmOOXwSP7VNBB08l2zFGSNzpAt11fi
|
||||
DM+D6jLE
|
||||
|
||||
Name: res/color/m3_text_button_background_color_selector.xml
|
||||
SHA-384-Digest: NkfbVCmYx+NKEXElAXPUl5bU2jmzlC0NdRtzh6CmKsPJGtuZwFWAespK
|
||||
Dxuuormg
|
||||
|
||||
Name: res/0k1.xml
|
||||
SHA-384-Digest: m+Gk3os5PfvF5OfPHZV3I10HQXvjXeBdFKPioGY3K7TtofyD4t+vHaFJ
|
||||
EUF7D0Oc
|
||||
|
||||
Name: res/bi.png
|
||||
SHA-384-Digest: MmaFD17dtpaPXkJT/pCsDcJsK/FN0qwoenyTImnqk6/R6oa3AhOF2zaA
|
||||
5WEf5lwH
|
||||
|
||||
Name: res/color/mtrl_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: pbwmnjkSBqXF6plQnu98scPzxA+TSDYhGtaJLz0qaCAriwXu5A6mC+qA
|
||||
WgvoQbSZ
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector.xml
|
||||
SHA-384-Digest: XLVU1pEnhqbl9UBicQOTDScAwgUIeSIMs/adFD14D+hl79rh/S8cNsB9
|
||||
A1shw8WG
|
||||
|
||||
Name: res/zb.xml
|
||||
SHA-384-Digest: CsbqW7jx1pJpL/jOqI0n9pWAosGzzycICMe6MehhyPj5jJrms2XMF4tZ
|
||||
lsn0X6CK
|
||||
|
||||
Name: res/Dq.webp
|
||||
SHA-384-Digest: L/6ms+/E+vElPj29qtEPPAlP/Hn6Mcu5ReChZCgYPY6UwU/Fsefcmawd
|
||||
M0WqM8zr
|
||||
|
||||
Name: res/Jw.xml
|
||||
SHA-384-Digest: Ti4PC07uwGZHL5CgxvEREhwtBr0kLqQi2h3IF0BgtsLoSwZ9I614opdk
|
||||
k3Q+y6SF
|
||||
|
||||
Name: res/color/m3_checkbox_button_tint.xml
|
||||
SHA-384-Digest: c5xOkSOoJMRw2flDyC29Y5O0No70BlpFY7zt3itcqibbEWdqagOVYlUU
|
||||
blqfmQG5
|
||||
|
||||
Name: res/color/material_slider_inactive_tick_marks_color.xml
|
||||
SHA-384-Digest: D59uuAlKV3/Q5pmFXYfpC4ZqM85bGzUtADDxzdR/hDrDVrD81IzYSqnX
|
||||
aWKX0QI3
|
||||
|
||||
Name: res/color/abc_tint_edittext.xml
|
||||
SHA-384-Digest: Q19VCvM/4a2NLSpHg3JUBRGiEdg8yfplpHiHWrpNZsV9duEGRr7NcqCz
|
||||
+ZGMaQoK
|
||||
|
||||
Name: lib/arm64-v8a/libswresample.so
|
||||
SHA-384-Digest: 1opA4ofTJKQDE20jBLim4gsAjT8uu19Tdmjmn/Tf5jEu5Xdf36plu0qC
|
||||
0AS9/L+k
|
||||
|
||||
Name: res/io.9.png
|
||||
SHA-384-Digest: Hu4PjavXIUPCIQ7KeHnKJQRN0wK56uNuMyb+R8nekaYUbjthQgZGMGY6
|
||||
IJq8xWL7
|
||||
|
||||
Name: res/3h.xml
|
||||
SHA-384-Digest: NxJVm2MBcJfVQjTeacvZIFFOWvkvCRuhSBYdXkVK82nhNUKYWYUi1wEv
|
||||
7fIA6bYb
|
||||
|
||||
Name: res/4I.xml
|
||||
SHA-384-Digest: 0erq4wpxCjkZIJzrkPgUNICvHwhX2oAPqcKXomwl1ZyLxxiV5sfElV9M
|
||||
z33mPkA+
|
||||
|
||||
Name: res/yF.png
|
||||
SHA-384-Digest: Kp08K1zQjKVf6DvLnrV6AfxH1REmHSQiezWaRrHWfzYvSjgdi2EaQhR5
|
||||
4TCfKR3O
|
||||
|
||||
Name: res/sV.png
|
||||
SHA-384-Digest: 6kkZDLlrazbXgz8E8irwfCBJ+wkj8vBLD/K0Fx3Fj/xQlXDoaanE+D69
|
||||
fG1wP/MJ
|
||||
|
||||
Name: res/kn.xml
|
||||
SHA-384-Digest: WLOSqNl6XrUidLnmgm03CRVgb7HfZmsiHkzjaF++zKhaNEXWbruprAyK
|
||||
u5DgWf/h
|
||||
|
||||
Name: res/color/mtrl_indicator_text_color.xml
|
||||
SHA-384-Digest: uw2mPuTdXo4+U+rcFCfQwi3681SW5BEY1rlEXkAdXbdqBssZpGVaq3pE
|
||||
w+ciUfGY
|
||||
|
||||
Name: res/-N.png
|
||||
SHA-384-Digest: OocfZHgarJAG9ZYj8RftjtCafKYDgDs6lFhFlEFH3YwVxZCNuHdbaSCz
|
||||
c3laFHJv
|
||||
|
||||
Name: res/5v1.png
|
||||
SHA-384-Digest: uWdHKPEyjGMV2lURz9QPadtbarOJ6Te9dxlUDebj03DJ/jwrrfDZA1lD
|
||||
yOfNBQps
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/dc-elemen
|
||||
ts-1.1.xsd
|
||||
SHA-384-Digest: rjJl2Q6Ol8uV7EyRk8EyjIDhvPgX3kyTYQHxwhJTXEoHA6/eaZnROTBt
|
||||
/h59SyTT
|
||||
|
||||
Name: res/mc.png
|
||||
SHA-384-Digest: WV+MmMreZY7YSsipOlvMeTzBRWLhy47E3qxuHCBL0Zt9mOA5paVAFffZ
|
||||
bRKAQW6B
|
||||
|
||||
Name: res/y9.xml
|
||||
SHA-384-Digest: 0hldjDuXbMsMvi5Ito3jKM0eDW+ZVc6Nw7zo4a9dPVhpfX5LSDe3QvTe
|
||||
Kab6oyPO
|
||||
|
||||
Name: res/Ju.xml
|
||||
SHA-384-Digest: Te/WmtYz5ZEwXxvhuctotHOg9SXUSql89C9jJg6hzso1cB0BXNkaipfw
|
||||
AYR5Foyt
|
||||
|
||||
Name: res/gZ.9.png
|
||||
SHA-384-Digest: 2q1HPd/sYkP84VWeiliA8Sfaa1bfpSUPVGTY1kUxzAishcYlI4LFSCOC
|
||||
5EQvAwp3
|
||||
|
||||
Name: res/7G.xml
|
||||
SHA-384-Digest: OrkPSzMATBQd0yeQ8YjfS12NK0+hW1tsUOEdxD3EV9vG6ampsUMaCbm3
|
||||
QsBn0/XF
|
||||
|
||||
Name: res/Fr.xml
|
||||
SHA-384-Digest: 44FpcCS2Q5LjlRcsV+zBXHQ9zUN3xefLPY4/umgCpG54X9fHH71lTCrW
|
||||
TsvbQDMo
|
||||
|
||||
Name: res/H4.xml
|
||||
SHA-384-Digest: FgQR/3yP9SIH88ud47+1rwj1Xb8vnRdNO6lfCutNTBiCR8YZ9uzCtW3t
|
||||
HVtbkNH6
|
||||
|
||||
Name: res/Lf.xml
|
||||
SHA-384-Digest: h1xqqTXym4B+EVkQnfEtzL3a5s2w9wDLjSG2Y6szBUjypZY3DhxGZ5rC
|
||||
VkG305Oi
|
||||
|
||||
Name: org/seamless/swing/logging/img/debug.png
|
||||
SHA-384-Digest: QRQPu0RlvbFi4vln6Kxm96u8pY8yh4zerHs8p/UcucvwvPK89xQOoz1R
|
||||
CfF93w3G
|
||||
|
||||
Name: res/UH.png
|
||||
SHA-384-Digest: A6wxvMwcOYTzy+fzjPWfCl1YtPO7TIMk1F6G43AUw2dcdl0wjFcmglKb
|
||||
PhF/nGt9
|
||||
|
||||
Name: META-INF/androidx.customview_customview-poolingcontainer.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/4x.xml
|
||||
SHA-384-Digest: hZaJp7KRJQeDH0IlPsnym0TzAYWLwFSSS2AJz0GuqitkeBUvjNdEh/3G
|
||||
jJFD+i38
|
||||
|
||||
Name: res/5Y.xml
|
||||
SHA-384-Digest: HwAOHwKl/A2Rh8dx8dVPZNKUaI1pJgzqDXRa7Bn9G0AJNzWYqh6q/cLA
|
||||
ilJtb4eI
|
||||
|
||||
Name: res/xa.xml
|
||||
SHA-384-Digest: l4JE9QWHG9QLhX/VEUUH0tDl6LYILisVGM2UClhFnLM4L9b2lO4/S/I9
|
||||
P2ZgAv6v
|
||||
|
||||
Name: res/yj.webp
|
||||
SHA-384-Digest: 49E9/fTMbeg0OrUIEjXQRUVaToO2jT8OOqLH06RusPxwq6C+BzsVtBpl
|
||||
kUTLz4S2
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version
|
||||
SHA-384-Digest: QBIX4+pun5+j2rsbsQYH71JP/JTfAlW+GglRW4D6q3yzlRdP67BucXlu
|
||||
BCjmdTXz
|
||||
|
||||
Name: res/9m.xml
|
||||
SHA-384-Digest: C0MBAPHSPQlCSj3rfnNMNSbL7MzTGfRzGH1CEmP43uyPN/YWSBl09yxj
|
||||
bSskJMmX
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: ORfST6zy7cL4D1WMSboBBB8lCTy3qfRHe9VODvd44Y0mp7oyuAtG33rf
|
||||
EZB9JjGV
|
||||
|
||||
Name: res/Iy.xml
|
||||
SHA-384-Digest: Qym4qMpcnX0yAUI3u0b4WwVkXr4jpUDr+z2ixZhjV8AAzXdashsBf6fQ
|
||||
ZPg+NGgA
|
||||
|
||||
Name: res/gt.xml
|
||||
SHA-384-Digest: g5nnTaKRQlcAjOLEn0aBbGMLIcj+QqEANG+A2cnJ9NAC2PXmQSXlvKX/
|
||||
X3Hx3xoZ
|
||||
|
||||
Name: assets/shaders/fragment_shader_lut_es2.glsl
|
||||
SHA-384-Digest: cfsP9Tw9Mj7V35nVYRgr3nDSDehvs0hojTbfZO4WKmrN8+ZMfm+Bkhfu
|
||||
C7+6OLIy
|
||||
|
||||
Name: res/7V.png
|
||||
SHA-384-Digest: V6nscHa0+d0uudqsPbvUMuPchE7C2YKZMKAxbUS6y4lZXxIhMCUp5ZiT
|
||||
iM5C8T4C
|
||||
|
||||
Name: res/um.xml
|
||||
SHA-384-Digest: un1zVa1WFEjQePPp9VamlPKKBD3cBcM7lM51qQ38qFvELUAko/OGuNap
|
||||
7+kLsq3N
|
||||
|
||||
Name: res/NN2.xml
|
||||
SHA-384-Digest: IGPpL6P7yHcIJ4QxdU2DUevtUPu8vKcDk6SPh73R0ZcZp/kOw91eMD6d
|
||||
sVmdvI7U
|
||||
|
||||
Name: res/S8.xml
|
||||
SHA-384-Digest: tv6Dv8vsHdQnGxH5UyhQqabyYSyGdMlZWIuaUVG/kp2T+1J7L4hk4+18
|
||||
h4lt8xTH
|
||||
|
||||
Name: res/0c.9.png
|
||||
SHA-384-Digest: qeXDnYVw8AcEBoW513qFxxPpzcyUe2eu5LTwwrfLpFdEiqf+gkcOxYyC
|
||||
y65JD2EI
|
||||
|
||||
Name: res/color/abc_secondary_text_material_light.xml
|
||||
SHA-384-Digest: QohKa9qDD5mxD4vEjIrKgnXvl8F2NXi1OfJMwUmMASGcdkgrW2czPmKJ
|
||||
K22elw4h
|
||||
|
||||
Name: res/color/switch_thumb_material_light.xml
|
||||
SHA-384-Digest: bdVsg9yVcNtoan73F3Ke8E+Cjt5PLsP+mcGqllNByjHL4eStUG593i07
|
||||
aPU2rxqS
|
||||
|
||||
Name: META-INF/androidx.arch.core_core-runtime.version
|
||||
SHA-384-Digest: DjY0iMTq31Ov3mFfL8psdEY0t0ga6uGVYaIJHakMF7ruCcUn7bUi20jv
|
||||
Jlg1NMUp
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2.version
|
||||
SHA-384-Digest: dtT+kMaBn7mC0I5Zw2DO5bf//DqPWE7jsnjxasKo+dXF1wFxba3xTVXy
|
||||
iU0DEX70
|
||||
|
||||
Name: res/nu.xml
|
||||
SHA-384-Digest: OzMr9mKkS/eqsEo076nIj6jTpXoQ53CVZT0MT1dbT8vdohJ+qXcqGGWC
|
||||
X9XYHgfN
|
||||
|
||||
Name: res/color-v23/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: FCldXp4OIiBhGxmarKKko8+efFjdLIL14CqSur8SyyLuQB3CdtwndQPK
|
||||
FuqPaCR9
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version
|
||||
SHA-384-Digest: VS0EgJ1djxb2TyJBiHIGNFXRHoFdCKQ1d/O4Rgv0dM5cg7MNqDNM01oG
|
||||
pdFvKqLN
|
||||
|
||||
Name: res/50.png
|
||||
SHA-384-Digest: XRVeTLd5U97xSsTh2cDg6dPNmqUfH8cOORzdKQ89+GdAGzKe+/YeU917
|
||||
jtTAGyiZ
|
||||
|
||||
Name: res/nl.xml
|
||||
SHA-384-Digest: OPvuL5kH/nJgq5IUC/BeabfEPBZs0rtV+lsWdXYIc3ZyK1r54h2e+2aH
|
||||
h89InU/G
|
||||
|
||||
Name: XPP3_1.1.3.3_VERSION
|
||||
SHA-384-Digest: OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua
|
||||
0vFImLlb
|
||||
|
||||
Name: res/t1.xml
|
||||
SHA-384-Digest: cKj1KIeSr/7jNMHemIfDeCoS3yy6VcJezQotuODu9RBqGXyWJ/4tczKP
|
||||
CkE9ltLH
|
||||
|
||||
Name: res/color-v23/abc_tint_edittext.xml
|
||||
SHA-384-Digest: 1LKEAPN57/exQ3tqYm/anMab6GIjX5YpsYzryjZwNQDIBr0NdspSg5ct
|
||||
UKDtrYoG
|
||||
|
||||
Name: res/Ei.png
|
||||
SHA-384-Digest: bIEIRorq52Lg8UlgcG1IGymf9OEV/xWfeFoyZkR2TTHL5fjT7NyVb9uS
|
||||
wOkrAjpw
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: SKDJZrRRI89mJFEMb3bVs0r7D7csM4FC7xvYtsEruxVXAH2J21rYxZ/o
|
||||
olOw5aDV
|
||||
|
||||
Name: res/ea.xml
|
||||
SHA-384-Digest: 9Jb3pROMEN+d1SHKD7BQfl2vTUHVNwLsL0AxrpbSaPI5NIwEYic1fYaQ
|
||||
pYdFEBtv
|
||||
|
||||
Name: res/3W.xml
|
||||
SHA-384-Digest: OChVqCXBh9lszIRngFSTms3fIzkvP+QtZFGh6J8W6sYgVkaouqP7fNZ3
|
||||
Lg7gKq3e
|
||||
|
||||
Name: res/RJ.png
|
||||
SHA-384-Digest: mG6LFePPcDLQN32Du+Xu9/tkD0X4xrFBKNwK6uZEaN7/uc89LTj/4vP+
|
||||
A7mIl7eU
|
||||
|
||||
Name: res/NG.png
|
||||
SHA-384-Digest: u9Ozg/g2iFat3y/oi3JPUx+OXCMruxh9kBTSgpoFNVDDpKYBqG7Lk/DX
|
||||
DnTYmxtf
|
||||
|
||||
Name: res/ej.xml
|
||||
SHA-384-Digest: k4fGpPaWRISUUQAc9VIxAyZJfiCinZk56PJQhMnVsHN0dg/ufyyP7U/z
|
||||
3MEmFmwJ
|
||||
|
||||
Name: res/jS.9.png
|
||||
SHA-384-Digest: mdmLt8qTppFPwsF8MeQVSCWQEcroFxczi8gS68qMJ0Nk/TAtQdsQKHMb
|
||||
NtUIwwPW
|
||||
|
||||
Name: res/6Q.xml
|
||||
SHA-384-Digest: bReVkup7pwfShwmKNG/0KnIN9rp1xGqNxYSHB8ldIM/M+VBBspeh0699
|
||||
aFrNKlc0
|
||||
|
||||
Name: res/r2.xml
|
||||
SHA-384-Digest: joksTGeKg3WaoxwZRKOU0Igo/+46gAaSqml9KAQ9JZ3S9b1PA47+e8V4
|
||||
2AIuEVEa
|
||||
|
||||
Name: res/OD.xml
|
||||
SHA-384-Digest: B9coxgbZ+YqXuALXblRJ6lfUgyUhUq25mpF1zU691zQhHcVy+gZhAVVU
|
||||
Oen1RHlN
|
||||
|
||||
Name: res/am.png
|
||||
SHA-384-Digest: Doe8b+SA8D2iXjde7oxdAxuHEqp4LodsQNWLqbFpgGk8Le+s5MPE9FGS
|
||||
RfngJc6U
|
||||
|
||||
Name: res/yW.xml
|
||||
SHA-384-Digest: rkEWDARRtpBGvwnT8rxnlmvSN/qZYptahm8uweURXiY0woorLGiI7wuf
|
||||
8dfX0xi2
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Server-mbean.properties
|
||||
SHA-384-Digest: qOIVvjj8rUDKzAKPh+aPH0a0OvVNr95R4szW8ZBg584sTEgosV+1Pe8u
|
||||
K+X4m812
|
||||
|
||||
Name: res/1I.9.png
|
||||
SHA-384-Digest: kcBeUvFFhja7k53x3pPHWezTpNClTqp+mGJwp4FbAxFuzaAfKqmcEv1k
|
||||
3Rf9R7Ur
|
||||
|
||||
Name: res/PX.xml
|
||||
SHA-384-Digest: U4x8Yi9NEE10Svx2gSaz9ZNaveMFRO1YEy3lysHBfwop80wlE5icqd2P
|
||||
L/A2cp71
|
||||
|
||||
Name: res/color/design_error.xml
|
||||
SHA-384-Digest: hCu5j123WlGBCjtDy855XiRO8VlkzzPVw7Kfsy+6zWKEZRMwrSZjsciN
|
||||
brWAoMkD
|
||||
|
||||
Name: res/nW.xml
|
||||
SHA-384-Digest: N3Crqe2NgfEvPpQvxZtP6nEApOzU0HyVxefKdFCYPnAJO5uuD4qTgO9q
|
||||
dpFQmoe9
|
||||
|
||||
Name: res/I3.xml
|
||||
SHA-384-Digest: mh9n1+Yhn+OQLAF17zYUvcUzPDwZU/rhebjVdR/wFJjSJTFYBfkE44r3
|
||||
kjAJdm3e
|
||||
|
||||
Name: res/Y3.webp
|
||||
SHA-384-Digest: mUNq5zwbQzqFZIe7NF9KkLrWKo6ctDB2NXNmmJ+L/mqow0kcCfV2AgnQ
|
||||
l2wNOnsv
|
||||
|
||||
Name: classes4.dex
|
||||
SHA-384-Digest: KfIQBiWIoOkHwao5xmuIh/5ucyFXHGqw2bfVAQbEPU37acDX5hisfkj8
|
||||
ojrQ/U5/
|
||||
|
||||
Name: res/z-.png
|
||||
SHA-384-Digest: nvbPZjj3pQdmNdFkYrnVdGjtMAm33fn1RLNjkQBjZV7+j8TGwqP5pcSt
|
||||
eBg9T6LI
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletMapping-mbean.properties
|
||||
SHA-384-Digest: Kphhz1j59fWDy4DQrGCZo3mPik5SdvGMBzYjTKWHVNetyDhZespZeSCf
|
||||
xFye9Nfl
|
||||
|
||||
Name: res/BG.9.png
|
||||
SHA-384-Digest: K5CFR7XoMf+vNYann5LEh/Nu3H8A/9J0dVEG7q4VFfp7++HgqygQAsHn
|
||||
t7TwiSEg
|
||||
|
||||
Name: org/seamless/swing/logging/img/copyclipboard.png
|
||||
SHA-384-Digest: w8eNz10nVXx+vGXQh+4b+55HBzl9L599wpz12gv+d5nyqJx9s4r/84P9
|
||||
/m4V5hmh
|
||||
|
||||
Name: res/-7.xml
|
||||
SHA-384-Digest: fXwQvi493P3dybyUOZxBPzwwmIx8yDcjHFwAo5QsQU17ADvKomoG8Ewq
|
||||
BoKCl57p
|
||||
|
||||
Name: res/h7.9.png
|
||||
SHA-384-Digest: jBCel3YdhwioeXK44svc8mz9L1SOtvuEDGAXSMpQ0o2v7pcEM+CI7V/a
|
||||
Hqa0g2m/
|
||||
|
||||
Name: res/Yc.xml
|
||||
SHA-384-Digest: dFEW2u3VJOAvdc4YwBH5AgOcsQx97Gb4T9Mq2Am4R9pZ/KOEzV22jY/z
|
||||
9fVW6wm1
|
||||
|
||||
Name: res/ZD.xml
|
||||
SHA-384-Digest: jh5I+LMCNLTZJhFCDKqkI7RtBiIZA5+radEhieOAbgmKljahWcaFKD+f
|
||||
qdL1Scvp
|
||||
|
||||
Name: res/iO.png
|
||||
SHA-384-Digest: 3ZxnFzQkEVdT4hrO3gI8RmBmTvOWcy/C5iWUJL2ACbdHvnHZWwYVSU3u
|
||||
5fhnoqFw
|
||||
|
||||
Name: res/mm.9.png
|
||||
SHA-384-Digest: E2enolKjJJ3UjwMpoM+6iPQuzSKlTVAwdj+P9yJ58qxS9IoI2V7Poq7k
|
||||
QGZECAHe
|
||||
|
||||
Name: META-INF/androidx.activity_activity.version
|
||||
SHA-384-Digest: 6XIsDSwtqh+9mYPN6NPMA0XzFB9/VtvGpOi33AC3zJC12Gpr8cTWgr2A
|
||||
SLm28X7C
|
||||
|
||||
Name: res/o-.png
|
||||
SHA-384-Digest: MoumWh0MBBkxUlHKhXAjkiSH8ft0xby+3tKvOofRHTRQDWPOR5nyPpUO
|
||||
SXExWjYx
|
||||
|
||||
Name: res/8j.xml
|
||||
SHA-384-Digest: WVtVVuaNyQQ3mhZLfUffKgsTr9mwnRWyq2mMqidbsRwp5S9rWWMUsn0J
|
||||
pqSxJFTG
|
||||
|
||||
Name: res/color/m3_card_ripple_color.xml
|
||||
SHA-384-Digest: bPy+JkTxYNKlEcJ2Ktm9FoTPSYWJ5ZyRBWCg/exszTdM4tx/9mdyCJtV
|
||||
EmrahM5G
|
||||
|
||||
Name: res/qU.png
|
||||
SHA-384-Digest: akr4fn+kVJUplhLexksFE/VeCR+4+7nqBNEp4FN7Yt8zdwe5tmKE3OQW
|
||||
ed/dljAR
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/StatisticsHandler-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: z724U/PSCymX+KzZhugQIRsi/vv0CQfgYYeWUeJeeAsJBN9QpCVYXwn3
|
||||
8VfRRy16
|
||||
|
||||
Name: res/HC.xml
|
||||
SHA-384-Digest: CFuZ1t/AepikV2wHgjObm8Kr3FPfDAtUqldxDQ/F7wshB3g0KOA1H9Wj
|
||||
XP5dn9XU
|
||||
|
||||
Name: res/hP1.xml
|
||||
SHA-384-Digest: 5zIcP/ggYitIuNp7ysE/o2q5crTUOeVsv3jjrTMBBnVJdf6bcXBPPdEd
|
||||
fF3Qn5W4
|
||||
|
||||
Name: res/7i.png
|
||||
SHA-384-Digest: FDd8XrEdMWGzMO7kuLStul44egD/5bS7/pW+Tka+4lrijolMJf8CimUV
|
||||
UHy6aeP3
|
||||
|
||||
Name: res/color/m3_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: rWi7nSZ3l92G3UWXzzFUbyOUIic4dBs2PIi36fxnBUBDihUERl4MTysv
|
||||
El3Nydme
|
||||
|
||||
Name: res/Oh.xml
|
||||
SHA-384-Digest: 7rGW7tX2zl4JWi3hvQleft+n8wbI2WzE2s2HNIbb9WylfzZrqc2Sttlx
|
||||
RcTVUZGX
|
||||
|
||||
Name: res/td.png
|
||||
SHA-384-Digest: mrmjw0mjbAxELlnDFOv3s9ZgyCPOrIjFmejcU+xPQKPqQXmDft4eLUXr
|
||||
bkn7FPub
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant24.xml
|
||||
SHA-384-Digest: u4p8OxJ2lauOsmAv7TycvYC+ylXtjHw76clgrN4l+rLByCp2uC46G1T+
|
||||
uiWwPL23
|
||||
|
||||
Name: res/DS.xml
|
||||
SHA-384-Digest: ihr+tvwRTe0fIuGrFdCVySfkM0kFLSXme6lmetIyMnftER2SC+Lh1NqC
|
||||
bqLwdvx4
|
||||
|
||||
Name: res/np.png
|
||||
SHA-384-Digest: smM3f3aBURb95ceU2Rq5RR/fXxJXFtNy40u2arYFFjlFyBIBuu1sVjGY
|
||||
jVrJZTYM
|
||||
|
||||
Name: res/Zl.png
|
||||
SHA-384-Digest: mUWaVL+1ModLNekRMhsus3aFR5QjPN4Tp5mHG5uK4/Hip4ZWnXYSQBFp
|
||||
pjkyL/X9
|
||||
|
||||
Name: res/do.png
|
||||
SHA-384-Digest: 51xFzqO8sZnDQsyjOg6snpRIoLVrWPtKpM0pkbXvp9p0tCUlVqde6ovJ
|
||||
n3iZVk1l
|
||||
|
||||
Name: res/2n.xml
|
||||
SHA-384-Digest: FljTbkCxgLQY+e31M673SWthy7kC6JAwtRmcQK6MpXz3b9KYXnkdDihP
|
||||
psr0vMdC
|
||||
|
||||
Name: res/color-v31/m3_dynamic_highlighted_text.xml
|
||||
SHA-384-Digest: 8wiGNGgwaHn1ewFAwXntQyWEYt7/oLKnefSdcG2Uvet/4mddHh/xR5lB
|
||||
ipA02bIU
|
||||
|
||||
Name: META-INF/services/javax.script.ScriptEngineFactory
|
||||
SHA-384-Digest: S93rVkxx4dVVbOaLLUQLogiigDH+wAmm+daT9lEB+8nhubCKgVShej43
|
||||
FfHFfU1W
|
||||
|
||||
Name: res/TH.xml
|
||||
SHA-384-Digest: UEObsYcR/sX/Z4g55KXSm2C1W5WDKQ+MmzwuCJDLaJXkFu1PNZjCk/81
|
||||
UgEuYmKD
|
||||
|
||||
Name: org/eclipse/jetty/server/session/jmx/AbstractSessionManager-mbean.
|
||||
properties
|
||||
SHA-384-Digest: C3OEP+/t+dkcARXc/iC7ljvcwjLzXVIyOR4MiC/EqSZj/OhRpl8n3K9X
|
||||
aicuC/9+
|
||||
|
||||
Name: res/fu.xml
|
||||
SHA-384-Digest: yEsy7FCt/RgjgmWqiwi0wibRuJ5aAf1T61JOcJEGDBS4ruWLWzXpJZGt
|
||||
oXwOf5sI
|
||||
|
||||
Name: res/_P.xml
|
||||
SHA-384-Digest: ouv61mTLlPF5ajzpeTDOiSyVrdJYGoH19oLGwMs9GptBojHneT1mgwzh
|
||||
zQbekPgK
|
||||
|
||||
Name: res/nI.9.png
|
||||
SHA-384-Digest: phospCQzOVnXNVVLwpHBV7fDFPfpIdPFpGIlgp7llmc1pUxpMQzaESKY
|
||||
1fRdyjoO
|
||||
|
||||
Name: res/color/m3_assist_chip_stroke_color.xml
|
||||
SHA-384-Digest: /QHXwplqhD30lKLsfFcWqLQV6VPv+7O1T5Wqluu2rnZV4T/MOoIDA+Ho
|
||||
kVBr7SYM
|
||||
|
||||
Name: res/YI.png
|
||||
SHA-384-Digest: pThBCwr8dmZZyutLRtvF4S6WScIQVK/Ik577jP/vuh1VeHdyjaXNsYIL
|
||||
zqqLsxzT
|
||||
|
||||
Name: res/Pb.png
|
||||
SHA-384-Digest: zGfZsY/EqkpRTWi5Sd2iQ8CHH0tmEu1WDBTSl6n7DDz+3P3oNfV0Hjz6
|
||||
eEjZJgAd
|
||||
|
||||
Name: res/vH.xml
|
||||
SHA-384-Digest: hP5KmCZqXQCEUewm9TwzaQoAVrn+kDElLcMaZa7weKfiuBvUzqj3U0lm
|
||||
IbBDPjgV
|
||||
|
||||
Name: res/xR.9.png
|
||||
SHA-384-Digest: qQm0oxY7TIJ+joita2pQ1ZkWmmLZ4aVFS/mZhLJKWDSXyd9RHFj1j43c
|
||||
sDMVBkdQ
|
||||
|
||||
Name: res/rm.xml
|
||||
SHA-384-Digest: +TMcGORE8mfr9MPoFlbmTY6jfYI+jniCo4BZ+ol0myiC1A2xlpHBJvOx
|
||||
0viRvs0W
|
||||
|
||||
Name: res/Tn.xml
|
||||
SHA-384-Digest: 7wMI2iWwq84A1OG3/5NSfCF18bJ8ZM6GanJF+xhX3VwIVQjwoTwUHnpe
|
||||
ldAQUdQA
|
||||
|
||||
Name: res/UO.xml
|
||||
SHA-384-Digest: zUHwxov8vukbVgOC69QCzAZg6qx9UDjsofnnXhufeMCZE9haYTievh5C
|
||||
kA+I7qns
|
||||
|
||||
Name: res/gE.png
|
||||
SHA-384-Digest: meE4XA+HUud/+C7Risj9phhu/m4uT4h3U+XIWfOvJRriqw4pQ6lzNYWF
|
||||
zQm6uDxa
|
||||
|
||||
Name: META-INF/androidx.profileinstaller_profileinstaller.version
|
||||
SHA-384-Digest: ol2CZjpsqyGYOOT7lxWWeM9CnDbrzbgf6/9ZZli7/ju2h7IvhX/0bMwf
|
||||
dn89wFTr
|
||||
|
||||
Name: res/7o.png
|
||||
SHA-384-Digest: mjcbINOCwnLd5a6+juiROyJLj1RHU5Td81WAsQcL/7JDOcnyB0yToo13
|
||||
QV1EMlKE
|
||||
|
||||
Name: res/8P.png
|
||||
SHA-384-Digest: rI9OLeXzmgXweA1DFf6lGZ9Yg1FpnYI1uO4/Hp8quo7IhOtXvDu7vSOM
|
||||
1L5PP0Pc
|
||||
|
||||
Name: res/color/design_box_stroke_color.xml
|
||||
SHA-384-Digest: Y01w/ZP7fIcYND3fQ3Z2VAW8EeW9mUYavKxbr/KvjDSa62MVQBIhqaVx
|
||||
DU1NufiL
|
||||
|
||||
Name: META-INF/androidx.databinding_viewbinding.version
|
||||
SHA-384-Digest: vOzfDZrW/FWpp1GBpQQ9t7eNu1Np/OU+6S3MlLr1j43o6t1UrZIPgZ5b
|
||||
f+ffYuZ7
|
||||
|
||||
Name: res/4z.xml
|
||||
SHA-384-Digest: 1iagN375H5lH0FxgTbwvKMIXUJM/+bRxAVE0L/vJLJelYRJP9BR8bovB
|
||||
DtULPtew
|
||||
|
||||
Name: res/kp.png
|
||||
SHA-384-Digest: WusWKDA1ri42DEVTYwDWZ+b9+T+4rPcGRNAT8Lz7PSUoHVgqodltRoiF
|
||||
vHcVykYO
|
||||
|
||||
Name: res/Eg.xml
|
||||
SHA-384-Digest: u1Qqwcek12hy+19y2f1HWTQsc3BbKMf+y83GkqS1LMesZKWjD9/q+82w
|
||||
9yo9gUsM
|
||||
|
||||
Name: res/Mq.png
|
||||
SHA-384-Digest: 8FzYFzze63IrOKRRPdrOfrjkoqtPl/Nd0rN6bqRAWR7G0YqmatUF/WXb
|
||||
tnT4hu27
|
||||
|
||||
Name: res/ya.png
|
||||
SHA-384-Digest: Afkswb79B7Hzr5bo3yJZ8dTpeADoY8EwiwtsO0/kNU1xA/kTqkpuQY3R
|
||||
3x+OYrcy
|
||||
|
||||
Name: res/zB.png
|
||||
SHA-384-Digest: HBgbUCIXot6YI3Yoq2awqomkAHCsYgSN0KQWyJwowi0eqBZksJFsFTNu
|
||||
sNM1cVTn
|
||||
|
||||
Name: javax/servlet/LocalStrings.properties
|
||||
SHA-384-Digest: 5cJ1nUN2WM/Hqf/hhBRDElmUM5xmDfQC+EbzrymxtkHsiCsOsiWWOHrG
|
||||
aq2DwI6y
|
||||
|
||||
Name: res/color/material_on_surface_stroke.xml
|
||||
SHA-384-Digest: kaVvmTFEnQzU3DdTEXiRx7OGeQDMb4owTCkcfuEBeHKxBsJ/0bjW031t
|
||||
zVa2YNFG
|
||||
|
||||
Name: res/VT.xml
|
||||
SHA-384-Digest: GhPENJPFVGCPvT7EANTglY7yOkS7TRjRw+IGjA2fnMqnG7qFp50lXOKu
|
||||
6zJV9zIe
|
||||
|
||||
Name: res/NN.xml
|
||||
SHA-384-Digest: qv60rwvarubQPif+sR4OQxUw0S7CXRyYpTiCi1X4gOLV6eM25M9Yu442
|
||||
Uvv3kn6U
|
||||
|
||||
Name: res/6d.png
|
||||
SHA-384-Digest: L8uKgWzyVF5UGDNNA/sHlc5Ay1r3x+yoQT1Tj0sJ5w/9pUzL7V87XipD
|
||||
kPlwUZlY
|
||||
|
||||
Name: res/7E.png
|
||||
SHA-384-Digest: xKo71og2f6Hj0CDJ9uvZARmg5NgQ5OdaZnM3I3o6T70M5RL2gozzgMWL
|
||||
rkZ9osJN
|
||||
|
||||
Name: META-INF/androidx.interpolator_interpolator.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/color/mtrl_outlined_stroke_color.xml
|
||||
SHA-384-Digest: gXiVjHahKlOS/iP8Xv0hPalDTAKDkNp4Lvq3SbAM7ZkG4cjZfY3yofLa
|
||||
7T/aCrrl
|
||||
|
||||
Name: res/vl.xml
|
||||
SHA-384-Digest: 7T5DrHOFh/UQO7OtB43AOZDlIYlY5iFLICPIMYycsTqnIApJLdKd/MgX
|
||||
cGuO9Z54
|
||||
|
||||
Name: res/py.9.png
|
||||
SHA-384-Digest: omKIalk3ytT/Ij7al3mpJp3PjAN3Xk3hw7MBW3Ks+j/rO6GDW1t7/4QQ
|
||||
QZYoKVbW
|
||||
|
||||
Name: res/as.png
|
||||
SHA-384-Digest: /3dnVnLtaUvmHBUoKQNBnB0QnxC+C6MpU5WFoss9x36DNgdD4DlkniC1
|
||||
LcZ7dY1l
|
||||
|
||||
Name: res/-1.xml
|
||||
SHA-384-Digest: EJAJqridbS1uoQ6ZojaflhgPcehNpOp0Xpw7G3QPO/u0z8enRAGwKHQL
|
||||
c4z5zrBK
|
||||
|
||||
Name: res/KT.xml
|
||||
SHA-384-Digest: t7LkzS71Eer4g3zPkjeP9mMgDYYEpu2wzOlEuN1QueVWpvQx4IhoxRXg
|
||||
CwSLE/Yy
|
||||
|
||||
Name: res/rz.xml
|
||||
SHA-384-Digest: Ud1+QaHGgulD2cKdv+MZB6HMP4B/qrdrk7qNlMRVd4vLuRk3hHgBpcku
|
||||
ZISP47yH
|
||||
|
||||
Name: res/kL.png
|
||||
SHA-384-Digest: NJUCMGqxFGeO/WDVWnQkD0LTiNTRcULVTvTHjn9Kf72Ugf1ZVzt+A9WY
|
||||
YUX0ZfLH
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: GKsSur55lbUddGyC0Kc0WMBJTmCpIf4RG//xrz2tYmKfpkTv2oq3B8+I
|
||||
ovir7bHZ
|
||||
|
||||
Name: res/5T1.xml
|
||||
SHA-384-Digest: dgZhHHYpi7YPSR4iOPsFmtDfJCtgeeABZw9iUY+eQNn02dKD/Y3fxaEN
|
||||
AbxMMG9r
|
||||
|
||||
Name: META-INF/com/android/build/gradle/app-metadata.properties
|
||||
SHA-384-Digest: /DIR4un3SJRrJ3IkotVSMX2NYxm0pWQ7sF2VZJqqdG2b1FvtCXSsYCLG
|
||||
7OLIFh33
|
||||
|
||||
Name: res/35.png
|
||||
SHA-384-Digest: xKo71og2f6Hj0CDJ9uvZARmg5NgQ5OdaZnM3I3o6T70M5RL2gozzgMWL
|
||||
rkZ9osJN
|
||||
|
||||
Name: res/rI.xml
|
||||
SHA-384-Digest: C8ABUvAeOj1NeB1w4ptCiwLrL/CPgpan8ODGYrL0msOaxOR++15bXu8/
|
||||
x4ePe1Zo
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel.version
|
||||
SHA-384-Digest: gW32UzoEwOs5wB7LqclnmoO/dSIk72HFxlPGyyLkR0FqHPjnpEUP7zxq
|
||||
0Jf58UkL
|
||||
|
||||
Name: res/color/material_slider_halo_color.xml
|
||||
SHA-384-Digest: HoLUeqOzaAZWcLD6NljLqirvV9t3tuA9RDjB4xgsncw8eRRWD/lqJ6vy
|
||||
2XIgyEul
|
||||
|
||||
Name: res/ge.xml
|
||||
SHA-384-Digest: yjpbhXp6fHPOB2LSkwoArgsSXlogJ7dh/mk/7VY5XjinVcNReYCL8XJf
|
||||
Um3w1964
|
||||
|
||||
Name: res/io.xml
|
||||
SHA-384-Digest: QP4QcdaGdyASlkaJFdg8obDy8v6aKMkmjp9041e6wuxZBgjgDfQzelmv
|
||||
9tSPB1nL
|
||||
|
||||
Name: assets/shaders/fragment_shader_hsl_es2.glsl
|
||||
SHA-384-Digest: 3mODAq8ghs2ui2O8gRwfCoksWCgyRBZxcT84kjCiNZSWHdBguDZvVJ+X
|
||||
/XaybXLq
|
||||
|
||||
Name: res/color/material_cursor_color.xml
|
||||
SHA-384-Digest: RgWS9LRYp2qCsYPkSL/24W4JMCQd1LqkVYk8pxmGTheDefgKzWIMoZ7a
|
||||
im2qRm/O
|
||||
|
||||
Name: res/0n.png
|
||||
SHA-384-Digest: AFsqb4gEBUUucHnBdXzfhoBSQYCmNRe6yFcsGNSO4zHvl1cG+XZn3FBB
|
||||
D8VQJpZ9
|
||||
|
||||
Name: res/5D.9.png
|
||||
SHA-384-Digest: 8kAkOKrm/JXoYVWbwDLXi/0N7G43OtH7ZU92KSnYz7R479JSEF6hajjC
|
||||
y5WoDqud
|
||||
|
||||
Name: res/Qt.xml
|
||||
SHA-384-Digest: +zX8fDC9HhmH4Jh4c8HmqhgSz51Gtw8936DbnpFCLQSHV1ne2oPoP1xz
|
||||
N08NiIQk
|
||||
|
||||
Name: res/S6.xml
|
||||
SHA-384-Digest: skN89GDXuPFeCP2HRI+zb5uWDRsv2om8/GbYfuN3UQjIHOxcldqhSQxK
|
||||
E0Wj4+nr
|
||||
|
||||
Name: res/In.xml
|
||||
SHA-384-Digest: OUUqjYTAM+6N8yQaGu+p/GSaKfSMp3yRFJRHjRxd/QRAioJT1rugVTK8
|
||||
HzE1zoL0
|
||||
|
||||
Name: res/tS.xml
|
||||
SHA-384-Digest: Kdrlq8BHUmrNZUqJLyfIZxBAWdJQ+GwyjmoJZwpJGaexNQoNdTsCvexc
|
||||
R5yNCIoY
|
||||
|
||||
Name: res/e_.png
|
||||
SHA-384-Digest: esS8thcT3uyXETvXoiTML5dzfC+2g1fjVsfNB35BaLEp6gHi4LfhxjSi
|
||||
bL7j/T6d
|
||||
|
||||
Name: res/3h1.xml
|
||||
SHA-384-Digest: HaVM1VH9c5UGtE2PxBe9WdzDtqLj5KOM26H9jwbPevGOBrmVa8xvcT2x
|
||||
MXuI/jAe
|
||||
|
||||
Name: res/4I1.xml
|
||||
SHA-384-Digest: gfFbVmLK6bsPh2B1UYqR7sm3TRNjTxJbS+Az/ep9JoGNUoI+h7v6uSPI
|
||||
QE6QI8Px
|
||||
|
||||
Name: lib/arm64-v8a/libavif_android.so
|
||||
SHA-384-Digest: N6UPiwx+AEIbQr/VKfdSxHpvz5P4rfM0JsBhV3hdZF2harLwVAA712je
|
||||
Ee29gn5C
|
||||
|
||||
Name: res/7o.9.png
|
||||
SHA-384-Digest: w8aEJ9gIfk9eUjb9CwbHgMjQrhDgGtBouy1EkGbHHd2g3cEcxsLOIjdK
|
||||
xtC3iLiI
|
||||
|
||||
Name: res/Tr.png
|
||||
SHA-384-Digest: V6nscHa0+d0uudqsPbvUMuPchE7C2YKZMKAxbUS6y4lZXxIhMCUp5ZiT
|
||||
iM5C8T4C
|
||||
|
||||
Name: res/V4.png
|
||||
SHA-384-Digest: lALn6d3rY/ZAFAaCn58xpeFbGJI7ToJVpAPj61qAZ+4kqBEW2cRfz8K7
|
||||
j4sgObeN
|
||||
|
||||
Name: res/ba.xml
|
||||
SHA-384-Digest: n9JRC+PZungYIOzsv6WbtS2Fppsuva9/wjwUbdFOuwNVa/6Lmzjed0M+
|
||||
gIZNQGi1
|
||||
|
||||
Name: res/pg.png
|
||||
SHA-384-Digest: Oy8MiuyGSC5CU8bu05Pl2hbCflRrcaLF00EFuOX3jgqsIlG/indRHzf1
|
||||
Yd70JxLk
|
||||
|
||||
Name: res/ak.xml
|
||||
SHA-384-Digest: JsfBe+RogtHbtjC4Uz+S0G0089UfExglSJkdz8oaoUbVktzTge9u4RoA
|
||||
iB/X1sSW
|
||||
|
||||
Name: res/bL.xml
|
||||
SHA-384-Digest: dNLL19wTUn1St+ec3kQ8gRVQhTLaeQOvtnvaD7gwoiCpsyPekZKopmeQ
|
||||
fGbCpjdK
|
||||
|
||||
Name: res/color/m3_tabs_text_color.xml
|
||||
SHA-384-Digest: 4uGZVHO0zdW75WoKB2AJc7g97k8rhq9P26bbk/ZP1+4UkqxBqziKqLy1
|
||||
3aqW2uqZ
|
||||
|
||||
Name: res/D-1.xml
|
||||
SHA-384-Digest: nyk/HWgyoEfcNC536MDtrHY1ScGLO0RX1sQIjedr+zCdDWC0b4/l8UBR
|
||||
j3K140FY
|
||||
|
||||
Name: res/mt.xml
|
||||
SHA-384-Digest: lGV6a4WRaWXLl/MvOgL9qS9SazVaTTHko/RLR2HFb5R7zQmafGQ8Z//y
|
||||
uhnrJ2lS
|
||||
|
||||
Name: res/gX.png
|
||||
SHA-384-Digest: dQv5PfpVjN+JfjJiZdnCCnUOxtYEIkh9oeTnIJVhahTwJsGLavnhNyfR
|
||||
0bh3/GWV
|
||||
|
||||
Name: res/qw.xml
|
||||
SHA-384-Digest: l82qGuMazNOKJsvxgnpmNydbtkSfwwK38VE9jithjzKRgDPc78ej22y7
|
||||
hqHejOw/
|
||||
|
||||
Name: kotlin/internal/internal.kotlin_builtins
|
||||
SHA-384-Digest: EQRe4HHUfQueqZlkzllnTujmU/QkeX3AQH2jQznoX28HmvBIuos9eiJh
|
||||
dhknL3AF
|
||||
|
||||
Name: res/-D.xml
|
||||
SHA-384-Digest: dPZeFLSfEpuxxJD5LkBjIT/UX8Hh/otSd6pK8oX0Jq6hCaBc/DGs+Sgk
|
||||
utETvdcd
|
||||
|
||||
Name: res/color/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: BzaphXIuHitxxEclMEy7KNiD9ZCmO6x7NCV7OVesUKmb/Q6UotXGUIwM
|
||||
B/TeAGdo
|
||||
|
||||
Name: res/2P.png
|
||||
SHA-384-Digest: sxzCf/OD01V37siTF2bQRQvKXFPR/IN5RD3Qps+xyIETuJAU9nWrm66l
|
||||
c7FRCxho
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_ripple_color.xml
|
||||
SHA-384-Digest: o+a5rMhOKUqelj7pVK0ZC3Q0wpuHmpMxszcohpiM58R+HPHx/vTcQcrl
|
||||
25dNNU2s
|
||||
|
||||
Name: res/Sq.png
|
||||
SHA-384-Digest: DtVy8maRR2Mz/CKIrNgqSqwZmQJB2fuCicfqO76zpK1JoMY1C0wfDTm4
|
||||
nXizTgsk
|
||||
|
||||
Name: res/SJ1.png
|
||||
SHA-384-Digest: uFB4xKivx8hdShq+ert0PPHaJCQcPu0xKpGwXM+ErzzemivdilXs3/WV
|
||||
MZxIeEkT
|
||||
|
||||
Name: res/color-night-v8/nav.xml
|
||||
SHA-384-Digest: E5jAlU3XjQwqMRslQcVdOZsKS50zUA7usgPqay97qIEY8Ahnehj/DjKq
|
||||
utIGRFvs
|
||||
|
||||
Name: classes2.dex
|
||||
SHA-384-Digest: zBygOmM3fo4EtAqe2/Pq1lyslfeGH6JudMl2tTu5GFkah/RuqbJEWRGt
|
||||
V0q0sL43
|
||||
|
||||
Name: res/bA.png
|
||||
SHA-384-Digest: +lIyJJsnd8Z6wv4Dv2lLJnGoGs7xvQMAJrK+eAgVGVcTAmqP8seBQ/lH
|
||||
uOoE8kH9
|
||||
|
||||
Name: res/color/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: 5XDLNWtUVngQsgp+KJ7YkkSH3ae7hJJ217yvloGWgTcn8UmMqVXiWz4X
|
||||
GJA064jM
|
||||
|
||||
Name: res/DQ.xml
|
||||
SHA-384-Digest: a3bW2ofNkCxORiJCNE/Gxowzhid5gLemXAD3PLcA2BpKpPFtTPa3RM/s
|
||||
Jbkn3ExI
|
||||
|
||||
Name: res/1K.png
|
||||
SHA-384-Digest: 86klyYQRlx/LqIg9ZLQCL9Y198Ggs0BC1yRr092SJSkTgoRrFu4CYKuO
|
||||
WRyddYEe
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant22.xml
|
||||
SHA-384-Digest: E/OU/lw5NsENIzlvsNbn5YS0QJlOCUVUkjA2Y3FGC33vB3rLES/gyci4
|
||||
tAcpdFbG
|
||||
|
||||
Name: org/eclipse/jetty/http/mime.properties
|
||||
SHA-384-Digest: hvmSxkgvxUmC7Lfsmvfgk55N5p2n1ySYc39V8ptiR6pGxR0lvnhVu4be
|
||||
Lc51+vTW
|
||||
|
||||
Name: res/uG.png
|
||||
SHA-384-Digest: asIbd2dn/F99jQwHQXZs0hJW4Ex1MLjYax/GkIkAA4/F4bT9r4lpglJX
|
||||
uGu1o/PA
|
||||
|
||||
Name: res/MQ.png
|
||||
SHA-384-Digest: H3vM/qAtDZK1XSLUOtBj7Sjyal7HEeMQ1h/W708F4XRw2aolnpXU5f7p
|
||||
QJHR847R
|
||||
|
||||
Name: META-INF/androidx.loader_loader.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/5c.png
|
||||
SHA-384-Digest: vfy5PTkuTyxNPWc4yTKJhnyWNlI6fx9T5WfuYnivvKn5vuyNUgTsWhU1
|
||||
NJY9bEh8
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: w9VdtEqyFcPy6EhlcHw3QNr0UHyOrLmgQI+OSlLbCFkeNoQDF/nHI8/n
|
||||
uMrqU/3s
|
||||
|
||||
Name: res/BM.png
|
||||
SHA-384-Digest: EG4JX+0lyzD/oIjbzmu6TEgy8FcRSi53V4oevUwFMR7jHlNYx9q4Fkgt
|
||||
iJ7uMVc0
|
||||
|
||||
Name: res/mT.png
|
||||
SHA-384-Digest: P2nTd58C9y7io46WWsfzXzQyrH+HuO4FbfhKmbwI/pleg7RslZyPgpKH
|
||||
M2ftYrAi
|
||||
|
||||
Name: res/TJ.xml
|
||||
SHA-384-Digest: 6ZxTvZQQPzAmLo8uFln3SFmqEJlllxCZMZNN4BWAo4ZCFs1CObtboHXO
|
||||
AvPhWhHR
|
||||
|
||||
Name: res/color/m3_elevated_chip_background_color.xml
|
||||
SHA-384-Digest: YfLQ4Is7Gu+TGBbd7A45xFJAWjfTFz3H+KrsDoS6DBOpLAZyhBESXkoB
|
||||
x9ONxMSW
|
||||
|
||||
Name: res/ps.9.png
|
||||
SHA-384-Digest: WrcIKdF9C/z2hye1cw6dqr8v9hMkmVKyMi7yfXW7smiL5EPNFDotu+EB
|
||||
PPsGzFCW
|
||||
|
||||
Name: res/d2.xml
|
||||
SHA-384-Digest: ZIQVgzXKrd5t2nsLBJHoSk9YMIa2MS8m7rQFzQ4qr75Iz8lwfa/I+vBc
|
||||
2xz7eUqG
|
||||
|
||||
Name: res/Ir.png
|
||||
SHA-384-Digest: nwMzJvCrThYqswqiaUrEI85IlHsnBv2fRTpnurv7A8ppKwJkYDaxVhm6
|
||||
ZWcNsgF0
|
||||
|
||||
Name: res/JS.png
|
||||
SHA-384-Digest: KQzp3spgtyJ0UWOtYbzMiELshvT3u+NJxBrRYbCi/mKG0PNkCkcK279D
|
||||
GgKXysNs
|
||||
|
||||
Name: res/Mu.png
|
||||
SHA-384-Digest: yUi3KR6v9mMSp+KXYVNnf0d2Oassr29Ce0xmwmpLgny+wxFYdWOekwIG
|
||||
ib5MEh8g
|
||||
|
||||
Name: res/Qc.png
|
||||
SHA-384-Digest: IvQaNVuZzMEHS2xaDi57ylBIoui45BV0B5MqIOW6O3uFXXVel+CtncYh
|
||||
Snb0ZgeD
|
||||
|
||||
Name: res/nY.png
|
||||
SHA-384-Digest: FUjWD6oYWBOgJXgpGPaUEW3hauu8OUckcTX/uboJUxi2mrToTzJRXY32
|
||||
2DIn92+f
|
||||
|
||||
Name: res/WH.xml
|
||||
SHA-384-Digest: mVKAL7ZitfzLrWcE3rgUs6pDJ6zisJIAjemLUQE71eEsQWzfM0gGVnLx
|
||||
f6sYARfP
|
||||
|
||||
Name: res/HX.png
|
||||
SHA-384-Digest: fccyU4YfHKwloTIxVaDKcbk+kyGtHfCSMYwYtFGWEEXvMDPrViBBYZeD
|
||||
joJII+RV
|
||||
|
||||
Name: res/Qt1.xml
|
||||
SHA-384-Digest: dEwQpQCu4DJIh3O3t4sR7o/X6pJWxjKGQwAZJok7TX6gbiCshbRwMkCP
|
||||
/xv90Li2
|
||||
|
||||
Name: res/color/m3_timepicker_time_input_stroke_color.xml
|
||||
SHA-384-Digest: gqSjzq2Eo6qtLdIQ3ZFNZkbw+ehCY10LZRXVOTF5nuzfIiREZB0a9UZk
|
||||
kQfG9Bbn
|
||||
|
||||
Name: res/color/m3_chip_text_color.xml
|
||||
SHA-384-Digest: jhYYkGvBq/xCJaQup8studUHEe2mv1lRalkbQDKRGpnT1+9LXziQ4Z6c
|
||||
hFHtDAYZ
|
||||
|
||||
Name: res/color/mtrl_fab_ripple_color.xml
|
||||
SHA-384-Digest: nsyajdUMGa8JVw5X96lfPm6jVOUo7wimSJQtz9h+m/ZZ+A7Cmz+dBL2w
|
||||
GxZCDYtw
|
||||
|
||||
Name: assets/js/lib/similarity.js
|
||||
SHA-384-Digest: W3s1FfCDbhxQjqRepLkQV86C4Mf5DdxdldR9jgaaIuRdpZKvRwDXF5yy
|
||||
Tk4wowmP
|
||||
|
||||
Name: res/color/material_slider_thumb_color.xml
|
||||
SHA-384-Digest: QhMGykS0IvQVMLCZa0jexdtabf10gQ4/G8ELM78arvYdp2zewwWEJ51l
|
||||
d/dM1Sg0
|
||||
|
||||
Name: kotlin/ranges/ranges.kotlin_builtins
|
||||
SHA-384-Digest: dKW2fBppykb1Cw5BnB9myZvGt5GqtpWnU8S6AEOs6FGQCnJ+FjEgAxDC
|
||||
kGvlei4i
|
||||
|
||||
Name: res/e7.xml
|
||||
SHA-384-Digest: 8l3IQGxqNcRfmyTkdlQ0cS7x6WeESKfaIT1EsRh8JSaOSAWHdzfE5T05
|
||||
NhnqiKNu
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text_inverse.xml
|
||||
SHA-384-Digest: wzbjjvLi4RZcZ9TAAavGPm6yZFrwNzYEzCt0dZrSrps4OksC1+FfXSef
|
||||
hA9XLx81
|
||||
|
||||
Name: res/NP.xml
|
||||
SHA-384-Digest: f4/H4KgIvUIMFcAsg+c0bgw5VG7pVbuuSKtoF5fCFPRhBo2zrgKqX9BB
|
||||
n4xWcljq
|
||||
|
||||
Name: META-INF/androidx/room/room-common/LICENSE.txt
|
||||
SHA-384-Digest: SS7625cNsh5VzhuqEjVcgZjBQsIthBX1srfNVFSvaVKkDBfXx8GFQoGX
|
||||
soOOD9z0
|
||||
|
||||
Name: res/Bo.png
|
||||
SHA-384-Digest: ydGeryldXzUcEnmedUpxEyfN3wf71nfB6N+FvwfP9b2uueXFGZJ5lWDr
|
||||
teJUfsDW
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL1.bin.properties
|
||||
SHA-384-Digest: n4c8k0z7ObFbsZFUPGnNkVm8vpNPWs5vujqtWKjRZ/FoFa11sWs0utAe
|
||||
cxKMk1cP
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: nGJ4vktnkKk02Y/oBhti4YQzeMHiiYT6vCuT7Wi2zbOsGAOEkZihmRz+
|
||||
TBsxNC9J
|
||||
|
||||
Name: res/sL.xml
|
||||
SHA-384-Digest: pqvbEfPq5/Enxb9M+UkKA3doqg1vd6h2KbqVh5It1siv75Ja7lRGs0K+
|
||||
35ktipyZ
|
||||
|
||||
Name: res/gC.xml
|
||||
SHA-384-Digest: t2cxJ+lTbULqxyywJFKL0xf9h06l1oolBI/Yx9n5qYQxbdf3gAYPSS0j
|
||||
t0awYX6c
|
||||
|
||||
Name: res/Nx.png
|
||||
SHA-384-Digest: Dg0p38A8UZFJfjmSRHLlLFha+zuSo39c8yivESKY/W+txwfPDotHHrO3
|
||||
QUsi3df2
|
||||
|
||||
Name: org/seamless/swing/logging/img/configure.png
|
||||
SHA-384-Digest: N2L/sVEmll4I8eo5rD/GJ9KT1UhsHgohDrcO3JAQ1pMKFyjAhUp/9RPD
|
||||
Fza6npN8
|
||||
|
||||
Name: res/JQ.png
|
||||
SHA-384-Digest: yAZLODW/GA54edm6NOKoC8O862pSXNGyw/Gfy1/IYDr31zlGgvqBAzJf
|
||||
Mqn9s6Yh
|
||||
|
||||
Name: res/Xs.xml
|
||||
SHA-384-Digest: jLxUWJxAoCGlcrHuxNtlz0BJcXOT94qg7de2Yl4oAEMvGLNJw9IjgBw8
|
||||
0Mjp7c1L
|
||||
|
||||
Name: res/Em.png
|
||||
SHA-384-Digest: VNHoaHNntgh/AwarYW8WOr2l1Rqi0p6NdFpidPmiBKO8Q0pT+nFI1o4f
|
||||
eHjn0eZs
|
||||
|
||||
Name: res/vJ.xml
|
||||
SHA-384-Digest: +W30nTBVknZ4Bw1so84zK/KyMopWV81rDRCDDPfqN/0wEMiEQVz8V7He
|
||||
GlMyrxDv
|
||||
|
||||
Name: res/Lj.xml
|
||||
SHA-384-Digest: 0mhgmJ+nG1RkKMIuyfONr5I8X7LkBW3Ok02WKtZyYLrnifx+npH9vcn8
|
||||
bBcnqWxe
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/Holder-mbean.properties
|
||||
SHA-384-Digest: HqK+OsxH9pVX9VzTa6MPP//QU1XiZDwFdZi4GL0atvSv2BScifx8Rp6/
|
||||
3bfbKQ8q
|
||||
|
||||
Name: res/QN.xml
|
||||
SHA-384-Digest: 5SjKFLLT/wB4C3nqatGtJYD31hLocEPV2yTCrpZ3EQOsgrJGLW6t6vNd
|
||||
9ls0ldOC
|
||||
|
||||
Name: res/7m.png
|
||||
SHA-384-Digest: NVOpsBUTPuIsAZWR2l+ot4esv0pPIb86Y3AuVluQmdCJYYGLdFCLuDSl
|
||||
BUMPoqEF
|
||||
|
||||
Name: res/8N.png
|
||||
SHA-384-Digest: c7vJ0c0MFo5eIIvB7koD7PxDYTOf/IHBngCY8LqjolFkv2jlC7r0CN+B
|
||||
IMeZVSVb
|
||||
|
||||
Name: res/color/mtrl_card_view_foreground.xml
|
||||
SHA-384-Digest: 3BgLXCyLCWDNAYzRgBdDS2IaH2k4IDzWgvwpG8mXcG+oMUh3CJ619KP/
|
||||
D5OI7x71
|
||||
|
||||
Name: res/zq.xml
|
||||
SHA-384-Digest: qcm48DBf+4qOGR7YbNB4vbBmmvCYbJruFa2q6i2o2D64ko1lV+MSpj32
|
||||
9peSjpRb
|
||||
|
||||
Name: res/0H.png
|
||||
SHA-384-Digest: Dg+zhvf8SNL3tT9z0U2GBUhVUbYe+R0rehgGxjRXMq6XT0k1Vq5teLfs
|
||||
4Sn+Rdjd
|
||||
|
||||
Name: res/m0.png
|
||||
SHA-384-Digest: QWZnw5IPKHqg0RFuXCBYh6gzMHHsKxh8NrmZM6adCmMKb/z+70pnUCHR
|
||||
fI/s7gne
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite.version
|
||||
SHA-384-Digest: hIAGvtefmZQC+5iwoWLsS8O4/kGacdmbLOceBNC+qlQ1u8Ze/oEJR6ZE
|
||||
tF3jNbux
|
||||
|
||||
Name: res/color/m3_calendar_item_disabled_text.xml
|
||||
SHA-384-Digest: ir+kqLtsy1HK7yHVwI58jGLcL0wmlqjioueD/eIXmNoOeRVoVJ0CWA+N
|
||||
C4Z4crc+
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Handler-mbean.properties
|
||||
SHA-384-Digest: jZ9kVyf/GAtmMYAgHfhyFbQWpSuStyjm6+pc9Fq1uFvhKJ8C+0I6H43H
|
||||
Nhjq6Clz
|
||||
|
||||
Name: res/5P.png
|
||||
SHA-384-Digest: wYpL447eMcdZIg+lyOcvqlpgGsFBZLnlOXEMaX0sDBqxwLu3yvz84Z9A
|
||||
qgqeRUid
|
||||
|
||||
Name: res/-3.xml
|
||||
SHA-384-Digest: rzoIcdjJZhSwpq5b6Rh0b/PEaWdCWVZsjGfZpmqK5BAWFksXguvluZuv
|
||||
iObieVEy
|
||||
|
||||
Name: res/OX1.png
|
||||
SHA-384-Digest: XKz1Ni2y1mtyoNJPVru7dLnGYgCzZM5LpsCyo6p51piYFCFMobSWvJ0M
|
||||
U870KjdC
|
||||
|
||||
Name: res/-J.png
|
||||
SHA-384-Digest: cMCRmVQSbQBC+AbrmJJ1daGAzDPA+dAJXm8o0wTI6uK9j9h+DsKC7aeI
|
||||
GPUVDoOO
|
||||
|
||||
Name: res/59.xml
|
||||
SHA-384-Digest: p98S/bb46KkP/lfdhRgUrDkoeioQIyPSjcifztyuhlLOLoTY0hNLcPLh
|
||||
k67yYrHH
|
||||
|
||||
Name: res/QR.png
|
||||
SHA-384-Digest: JvKHQv67XaNDSnB7TCaIr+1dLCHFOWSLmM0jkM/Ea2RrPH/GizhgSBnk
|
||||
rxfu4SsJ
|
||||
|
||||
Name: res/AB.xml
|
||||
SHA-384-Digest: lErTF01cKXrqSdb68LVAE8d4jMOTbUwieaEEnMF909nd9KS+ZhZjBW39
|
||||
ZmhKdpJn
|
||||
|
||||
Name: res/BL.9.png
|
||||
SHA-384-Digest: DgC8C4272vCh/XrOEuk4+jI+RAYQZiMqCzkp07eye2O2AjXJd/lSaFsJ
|
||||
X5BzcFHj
|
||||
|
||||
Name: res/Bk.xml
|
||||
SHA-384-Digest: R9j3iWJTV6WE9oP43oRLEl16Vt+FkrcSlgBoKtXAE7idz8nyLo2nrWlH
|
||||
bAi5Xzad
|
||||
|
||||
Name: res/D-.xml
|
||||
SHA-384-Digest: 6Bccl1LH4KVPvuJidxGaVX9DKMUACZutq+p7JOA1sJZfqvagsys8TJ+z
|
||||
4Gu67c3y
|
||||
|
||||
Name: res/aG.xml
|
||||
SHA-384-Digest: Zgxm0Xxgvhwe8aQap/Bd5JtH7bXBy3d5VsSENfhgKEuvaAYIM1KFYKBw
|
||||
aFYUov33
|
||||
|
||||
Name: res/color/mtrl_choice_chip_background_color.xml
|
||||
SHA-384-Digest: AMOfNtbTOtqF+ZvJO9atqhCKcHCXFzui1WvRLuFoLunbWzDCfyv9DOPC
|
||||
iBFL8uPm
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/AbstractHandler-mbean.propert
|
||||
ies
|
||||
SHA-384-Digest: 9NXRCXkZscqUchmq2TuDa2AzxBBSDD0tt79wWTmSvzeFttweFQF+pT+x
|
||||
z3bWeRtz
|
||||
|
||||
Name: res/5t.png
|
||||
SHA-384-Digest: iMX1G4yVKNRIwXkEZbdSB5/HJGbUCjlpS8EV2v9sfL8J2vQ/VwUqPfjK
|
||||
/iuKEYQ5
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral12.xml
|
||||
SHA-384-Digest: enJN8CEqvMwbXrTFUnmg3R96CPx3C6jrbo1apx2CRoE1hIA/kblFovED
|
||||
DpT1u20c
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral98.xml
|
||||
SHA-384-Digest: dmZRSKLGawfCoQ/VSNsV8/1jy8l2cVO2hY9y0A4gPozglihbJccy02BY
|
||||
ZkaNvsTh
|
||||
|
||||
Name: res/9w.png
|
||||
SHA-384-Digest: 2p2e+ciifYz78mAqM47poHUymW6kckP82y4lKn1y8MnUHwXHA4JhsCW7
|
||||
Pji7M2Qu
|
||||
|
||||
Name: res/yY.xml
|
||||
SHA-384-Digest: U9x0aAexJXAtPMzwtXkP7ev7etAxhBVNdzHcm2do7b14kSukcwMuSh2G
|
||||
gXTYCapR
|
||||
|
||||
Name: res/kj.xml
|
||||
SHA-384-Digest: qaBexvqBsLdSFIZM3XM57wGmu9KxNb2AOvOerXU08mrW078vwizRT8CF
|
||||
yJgOAKPr
|
||||
|
||||
Name: res/Gf.png
|
||||
SHA-384-Digest: 8zFYnVEc4EqOU2t3PpadRDVrA80KY523bUEBTkBh+ukPYqw0ejia9OjN
|
||||
2IgWmx03
|
||||
|
||||
Name: res/W4.9.png
|
||||
SHA-384-Digest: 4Io7n2RjarI2dduPYW9hJsLy/UizBy1b4dgCjWDrbrDSxjDx8k9zVP+P
|
||||
8HGa5mo2
|
||||
|
||||
Name: res/Wr.png
|
||||
SHA-384-Digest: qcKuHLufjWOZtJI9UiugcYS/fM4mk0RxV5zgGbDr3SzOBCNX/ts1EqF+
|
||||
LFDrSwsQ
|
||||
|
||||
Name: res/vR.xml
|
||||
SHA-384-Digest: RVAhE6kCzH8uvxsfvgygJXq+fv7PboQr/HRd18BCrLAonU5EtHaYCes0
|
||||
AkZeeWkY
|
||||
|
||||
Name: res/QJ.9.png
|
||||
SHA-384-Digest: xEi4ev8OW6bRnnMAcCscppmXcsB3d+AWrPvDz01jpEJek139v2YFsTb2
|
||||
fzBEts4S
|
||||
|
||||
Name: res/wm.xml
|
||||
SHA-384-Digest: JD58F1P/S+85tknr872aLcD92rBEQsrHU98g23OFvMV3LJWxqa45GGDi
|
||||
Pu2G2yK/
|
||||
|
||||
Name: res/xN.xml
|
||||
SHA-384-Digest: KXkwTYVbSDEVdP53E70y359Y3XlBR6+VkuQNtR3PaIPWv6MQuH2XfiTT
|
||||
6TvQsqVV
|
||||
|
||||
Name: res/X6.xml
|
||||
SHA-384-Digest: wLEy37gEnPST267goZd5J3KL40QKDpsUX0PNJHGgZiy4K/qSAyIEXhtU
|
||||
UgzP8z4g
|
||||
|
||||
Name: res/gD.xml
|
||||
SHA-384-Digest: eQsbtHz9ISiAJYEvl9yMY+X283KW6pNnDAt1t5BSqhq4HxXtGqtRuVmC
|
||||
L2dy0YBv
|
||||
|
||||
Name: res/-B.xml
|
||||
SHA-384-Digest: M7drcmMz7zhnudo+pJjxFjS8qXPxnRgWJRSQGx7pclrXT8GYgK9W/xrg
|
||||
rON46Tg1
|
||||
|
||||
Name: res/yg.9.png
|
||||
SHA-384-Digest: G6u4CnYZDsGX5RMKLIfaFvMKpfpXykzVXv+R60IF/eeqFiObCfFilLf+
|
||||
fncyPdNu
|
||||
|
||||
Name: res/cL.xml
|
||||
SHA-384-Digest: pvulbtjEeYMS35xm0FSnE+/eooCcTirDS9lDBX4SeyIacMFYRR/Otl6l
|
||||
TpiZN/Ad
|
||||
|
||||
Name: res/d-.xml
|
||||
SHA-384-Digest: SBqgzk1KvAUcV1EoKwsueL0varu5M7hJI7GzioSJ26WQD3UqYajxJ6WM
|
||||
MPwmeunr
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: U9EkkxNDv1I9cD1dCgJU15nn91B1KtghbbtxmjHigXtXyTivuBJ+HLL/
|
||||
HGipPUd6
|
||||
|
||||
Name: res/Ib.xml
|
||||
SHA-384-Digest: nm6rk7dtkzscu44o30h+9dHxhBh1gIp+jB47Q8LB+gdiaNnzZcKOX91r
|
||||
hjqW4m4s
|
||||
|
||||
Name: res/JC.xml
|
||||
SHA-384-Digest: qPMca+ZjasHFj/jr+OEEbUFLVZvPMXNSl1emDsVXtnZTJydFf8+eBabV
|
||||
UKCgQa9k
|
||||
|
||||
Name: res/Ag.png
|
||||
SHA-384-Digest: XKz1Ni2y1mtyoNJPVru7dLnGYgCzZM5LpsCyo6p51piYFCFMobSWvJ0M
|
||||
U870KjdC
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant12.xml
|
||||
SHA-384-Digest: BzQ5iTvi7cQ8ZoajTiIcTN6H/u/iqbpADZW21v/UBo3feSP7DY684ykU
|
||||
8qwa/+nC
|
||||
|
||||
Name: res/1x.png
|
||||
SHA-384-Digest: EMrDDFLEnUmgfLGqd5S6jnFg5cF6oSq38XuPi3tWt299IReT/VGDvOKC
|
||||
SsdW+QqH
|
||||
|
||||
Name: res/Nu.xml
|
||||
SHA-384-Digest: yX9iMOKiZ3O8nuEJwqltBRZNLc653AYl6pekwe5319Uhbx6XYKnNzXtI
|
||||
8Suj/rpt
|
||||
|
||||
Name: res/eK1.xml
|
||||
SHA-384-Digest: xXn9rF/Ef7ur3CNny/vrsYxwI2rWHXe3fy2WKHFSc85KMMJ+jtO7/x3W
|
||||
sQhbszWJ
|
||||
|
||||
Name: res/tK.png
|
||||
SHA-384-Digest: 3Yam8zWxXrn+9ETq0ifRtM1PPUjcfPM/wqk2A7PCMPx2ilS0kj4jLXjI
|
||||
uj1RAv9Z
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_dark.xml
|
||||
SHA-384-Digest: OUV+GH1BnKiususlBB9AbVcJQoEM+FUQ0P06ajUSf+RMciOH26LilrM3
|
||||
mnFVg3mT
|
||||
|
||||
Name: res/Ac.xml
|
||||
SHA-384-Digest: wqz8eDUXmdDljkoXiv4jnUnseaLUVcSpUXu4bw75ahXIHRGQrIXbpb7s
|
||||
RKJvnX60
|
||||
|
||||
Name: res/zN.png
|
||||
SHA-384-Digest: 44TNjbuvHTMu+uku4w2f0kOtNPKZvzrTC0Dbx/yYk8UoZEonsfYRgHAE
|
||||
UZr299VB
|
||||
|
||||
Name: res/MZ.xml
|
||||
SHA-384-Digest: CFuZ1t/AepikV2wHgjObm8Kr3FPfDAtUqldxDQ/F7wshB3g0KOA1H9Wj
|
||||
XP5dn9XU
|
||||
|
||||
Name: res/T3.png
|
||||
SHA-384-Digest: zfyCnC4oLsx4w0zgJbrK5Fz1ObHxCpXfaqr/6zValOkYQ3BxPFpyg5wH
|
||||
iSZJKtSt
|
||||
|
||||
Name: res/gs.png
|
||||
SHA-384-Digest: +KGKU/N/Vxsz1FBCudP0ENLktJB/5FP/S4yC+wZNF14/ntkYW019GN2Z
|
||||
IF6nlXRs
|
||||
|
||||
Name: res/s0.png
|
||||
SHA-384-Digest: nf9cNdWVjZhQEVFF8OKge/TbsdyvaU0iRhXyWvkfrvXKjZIRyGZuSCYP
|
||||
PuSFe7J6
|
||||
|
||||
Name: res/color/m3_fab_efab_foreground_color_selector.xml
|
||||
SHA-384-Digest: XcONovWw2P9NaPXhEAOBQEo4KP+jlpzrCGNPDCgOyh8bU170qbotOYkY
|
||||
z5xw/pNd
|
||||
|
||||
Name: res/-Q.xml
|
||||
SHA-384-Digest: yO77M+XVq7e/o6wgojfveaxj8YMcyWcornn2NEWBgd2pnGpXsl+FhL0b
|
||||
SKz71YuO
|
||||
|
||||
Name: res/eW.xml
|
||||
SHA-384-Digest: 8Zh54igPFbf/whk0e3qFmiouH+np2ENPMzDXV3jeBC6QAsYQwGLkdVl9
|
||||
a3zm4lyX
|
||||
|
||||
Name: res/color/m3_timepicker_button_ripple_color.xml
|
||||
SHA-384-Digest: 8HsWYQp68/xydck5YNBXoDx6RDCLiOx8HurkZxE/LwwSvMZ8Rpf7B+TA
|
||||
1Q8UpoWQ
|
||||
|
||||
Name: res/5l.xml
|
||||
SHA-384-Digest: Gi5U5uLrLgec54ea9r7v0+XeeAQrdqG56LSryMukKqxTqfd8MZ16PlAp
|
||||
uU0hEUoo
|
||||
|
||||
Name: res/9H.xml
|
||||
SHA-384-Digest: M2aL9kkCXk0vdVd6FtJ7CRXt7YjNdhMagLUdTvaV3J2EZ6pVaPXjwSY5
|
||||
9tnyZ8vZ
|
||||
|
||||
Name: res/NJ.xml
|
||||
SHA-384-Digest: eFVBed+rhPyl7FRs160bCh5NU4A1BBqbnxrTzdK6Gnkqu+f0FRTKVjQk
|
||||
0K1aIbP2
|
||||
|
||||
Name: res/color/m3_appbar_overlay_color.xml
|
||||
SHA-384-Digest: Pn0kbO0S7R6rCgGt1wD+S3nac8Do130YiH4CqH9eMJhDZvXENa74vl7X
|
||||
3mm22AJ7
|
||||
|
||||
Name: res/xy.xml
|
||||
SHA-384-Digest: 9LqV1zCvphEN6YF/MJhI7Fx1veX143KrEa3YpnjmgOhk4H35aJUJ5d0F
|
||||
3lS7QseA
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_external_yuv_es3.gls
|
||||
l
|
||||
SHA-384-Digest: LF/GIMUkyaAojDhBSOWQzcYfU6nezvVkHXHkmUjBmwg3iq3CGrsW8fv/
|
||||
0bS4upX4
|
||||
|
||||
Name: res/dX.xml
|
||||
SHA-384-Digest: Mz/BgtjyG9RTWR0f51KdAXoDMIgLFmhTFOkXms1GmAda+FKLqzDuchu3
|
||||
/ZXp4FG8
|
||||
|
||||
Name: res/j4.png
|
||||
SHA-384-Digest: 4lPcHNIT1QuAQ+AQmDPx2mzkd91pF5qDY0DZroaHkHrwy9yVhbF+xSlS
|
||||
T+WJf3I2
|
||||
|
||||
Name: res/H-.png
|
||||
SHA-384-Digest: nTOpWy8C2zJIdHR9wn/mB+Z7qP53y8lAC6vqYYXNi5LI+B9o906lolg/
|
||||
jLRIur4A
|
||||
|
||||
Name: res/w7.png
|
||||
SHA-384-Digest: BkP02V9ONzspsPwrSNlnP25XUVpkKULYVrJk4arsVBb3ZleWTkZqKSaf
|
||||
wUs04Knh
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_external_es2.gls
|
||||
l
|
||||
SHA-384-Digest: fWK3273Xu6ghUW6TPS0GRxVxflH3RxIHfPzJRQwjMdAVr4bEXISoRvEL
|
||||
a3Uc/zuj
|
||||
|
||||
Name: res/1I.xml
|
||||
SHA-384-Digest: wtEsKTeE4yshJlqOXcozBWb1hg9s4sYLI9E5hgf/dgKr0qSqbyHUVje1
|
||||
7TGJAIFp
|
||||
|
||||
Name: res/C_.9.png
|
||||
SHA-384-Digest: Z+QlwCOk1uEvGjtO2VvpjkG5y1W9rc5fPoAwSwV/dgmhDNYt9KIkcrj8
|
||||
1o5+Orty
|
||||
|
||||
Name: assets/images/ic_local.svg
|
||||
SHA-384-Digest: 8vWOObavSIP6+5fk3hcmb2UV+WQqb3ILhOnbif0KLHCnIIH/JwJh4vMA
|
||||
3kGZP07d
|
||||
|
||||
Name: res/color/m3_fab_efab_background_color_selector.xml
|
||||
SHA-384-Digest: Ry1ojnu9ZPAVI6+v4gUBaFKxIpORl3V2AlXXfMmBLNAB8tx3knPSi7xG
|
||||
8TFPsHhd
|
||||
|
||||
Name: res/go.xml
|
||||
SHA-384-Digest: MKDLuHvuhGWO4/e7Ut6YciqjBK8SAO3IXRdd8e08dEr754n5JW2JVrj+
|
||||
L681agJh
|
||||
|
||||
Name: res/hP.xml
|
||||
SHA-384-Digest: y+n/lj9kvCHWFezgXXhOSWxo5cZDwKOLgj92oYA8rG/AX7eHC1y8Zp2H
|
||||
D39aoGOd
|
||||
|
||||
Name: res/SN.xml
|
||||
SHA-384-Digest: T7GwTvHp90gD6AjanAPBaSswc1f2ucoZXF/7CL1lDZT49GGoMmHrmqZr
|
||||
K1GfuJtz
|
||||
|
||||
Name: res/wb.png
|
||||
SHA-384-Digest: 0xyxGrI38r67apMVpMWaJi0EWSfbNT66OZBlYLqDkrlJUTMlaMz/9mV1
|
||||
IFeVCY9Z
|
||||
|
||||
Name: res/rj.9.png
|
||||
SHA-384-Digest: VsVVW0eDg7oxBmfvLuXAT78iVKcZlouKFkfLuCIrMP4ZyDuJQFArUZFG
|
||||
MxWbA6/h
|
||||
|
||||
Name: META-INF/com.google.android.material_material.version
|
||||
SHA-384-Digest: N5xJ/3/5IuujFLFLlnVXu3lit0K48s5k7kM7GRnzVKtOHBnwJNsNjgmb
|
||||
yvVFx4M1
|
||||
|
||||
Name: res/t8.xml
|
||||
SHA-384-Digest: JoRa2mrvHK9zMM0cTbPn2sP+lgTA3emwErTtoStw8e8nZm7cBePItPdD
|
||||
Q2HCHqcg
|
||||
|
||||
Name: res/XW1.xml
|
||||
SHA-384-Digest: Svjexdh2oPS5KrAk+x6/phnAhpVklCWm5t+82ihPVPSkFzYt+LT2jeyD
|
||||
hkV0li5Q
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral6.xml
|
||||
SHA-384-Digest: tVb+FcPbgJnML2JydgbEbVoFQcIBEpakhz7GTVUNpIkOdp1IquVl8+XG
|
||||
mOF9f8ga
|
||||
|
||||
Name: res/Fg.xml
|
||||
SHA-384-Digest: 01S44LSuVVZPcWLdc3/ip0wlKdwaF9Ct5BLR+NfKswDpTS9L8Iv2AljS
|
||||
32K4/qau
|
||||
|
||||
Name: res/color/mtrl_outlined_icon_tint.xml
|
||||
SHA-384-Digest: FhWG/B0RyTfDtC3WkGStJolH1JLWvHO/bVM3XwNk2pYPaT/y1fbFexAk
|
||||
umO83ros
|
||||
|
||||
Name: res/AI.png
|
||||
SHA-384-Digest: lWBKtFFb1zXBBEG25mtOpR3nQpjP5nLt0UKyesgTNFhfFq5p6cKrkx0N
|
||||
gLngqqnx
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.01-avt.xsd
|
||||
SHA-384-Digest: 8cRfvTw8xArlxnGc1BYUUX2T3747uf+H7yRMQbuLjSyEJF90hnp0YYl5
|
||||
EYDNNQmF
|
||||
|
||||
Name: res/8k.png
|
||||
SHA-384-Digest: LUQd58RART329VEsOrb6d/KQH+xyN6xY2Jaf1POMGIkt0azDmhCplB75
|
||||
IvQD7iel
|
||||
|
||||
Name: res/x3.9.png
|
||||
SHA-384-Digest: h5qGWhSfvI8o6QxJw7TZFllOrY1VW4rwOX/rSZHCxDvF8f6vGjZDMQNs
|
||||
6B/J4sgg
|
||||
|
||||
Name: res/h8.png
|
||||
SHA-384-Digest: pt0hawIg/0C1GtJrZS0oMvULvUfPgjrkgMe7qlvnJB/bHptBss60ZQuh
|
||||
MWuy3I0Q
|
||||
|
||||
Name: res/uS.xml
|
||||
SHA-384-Digest: 4v7KwhOgXXtZtyDLYeRx5WAwWK+jsF9mHGAt1qVCBNIyX9lA+HPOYoWm
|
||||
29u0jcsG
|
||||
|
||||
Name: res/color/mtrl_tabs_legacy_text_color_selector.xml
|
||||
SHA-384-Digest: dlX6w0q4JLNkNkiwSmAolXf9vMWIQOoZj4Ro6cxcQaGA/SkaOFFbxlkn
|
||||
lCEuhfZ1
|
||||
|
||||
Name: res/Ja.xml
|
||||
SHA-384-Digest: n4/mSFpwVeWeZFUKUT+xa8Yg4XL1rxnncjiNWlzyjOW9pUWIEq9s4VFn
|
||||
Tq34mvlS
|
||||
|
||||
Name: res/0x.9.png
|
||||
SHA-384-Digest: BJF9jriH5l9IE1TEoEcTNGd276enFI8gUSPMCRcxLA860IgBy93LCl/l
|
||||
BLgydu43
|
||||
|
||||
Name: res/8t.xml
|
||||
SHA-384-Digest: c+5aAgiBRH7xXH6iPnRQjSWwJ4UUdcNe2GwMYGQBBJWma/rT8jzmMxcz
|
||||
uCi9p0nP
|
||||
|
||||
Name: org/eclipse/jetty/server/nio/jmx/SelectChannelConnector-mbean.prop
|
||||
erties
|
||||
SHA-384-Digest: adW0/S3okDeqP+YjeZn5SU8ZrGdQKaVaeBm2yXlCFYByPlUaxYuX2yFz
|
||||
CzeWRSHt
|
||||
|
||||
Name: res/color/m3_textfield_indicator_text_color.xml
|
||||
SHA-384-Digest: dVZPl0AhjHdoSZ4E7I7aywOK2YXAIQcpGMPNXQuE7y95Gcp9W+T/Q+lU
|
||||
C+efPu6w
|
||||
|
||||
Name: META-INF/androidx.activity_activity-ktx.version
|
||||
SHA-384-Digest: 6XIsDSwtqh+9mYPN6NPMA0XzFB9/VtvGpOi33AC3zJC12Gpr8cTWgr2A
|
||||
SLm28X7C
|
||||
|
||||
Name: res/color/nav.xml
|
||||
SHA-384-Digest: E5jAlU3XjQwqMRslQcVdOZsKS50zUA7usgPqay97qIEY8Ahnehj/DjKq
|
||||
utIGRFvs
|
||||
|
||||
Name: res/color/m3_default_color_primary_text.xml
|
||||
SHA-384-Digest: EdcYR02UduSDsKoOMDHgZwbLQG6rzC+vzuegoeAOQa2HAQvN1+EEKfoi
|
||||
OA2JXPtk
|
||||
|
||||
Name: res/7s1.xml
|
||||
SHA-384-Digest: waUMSteYxVkNzYU6JoSq8JBd/hyLY/hHV6J8jbvhOZ3RqXasT8AfZFd+
|
||||
3wcVPnq8
|
||||
|
||||
Name: res/kg.xml
|
||||
SHA-384-Digest: 2ZfJ56S/vUpqBHjO3c7Uv1zWStT97hyIpu5SjmwpI3frduuEaEnODC/B
|
||||
A0kBRBaz
|
||||
|
||||
Name: res/Qp.xml
|
||||
SHA-384-Digest: M6TVT7J+LS9BiMxVGYzsm2Yv2xQJ0zf1HiCqFYg73YXgW/kiQ/Jh4jKQ
|
||||
CQ1NrcFa
|
||||
|
||||
Name: res/2F.xml
|
||||
SHA-384-Digest: hf8rEiawqDM0BRQrARjvdU4cMki28yRynukQB0+7Ko88YzHlj9VpG0vs
|
||||
Il0S3TOC
|
||||
|
||||
Name: res/no.xml
|
||||
SHA-384-Digest: eHyVrtNosHW/u6VbA3pnKRQfi3bmOGt6a9PkIjo0hyi7OUocQQVJ1lBW
|
||||
/I4/FjyB
|
||||
|
||||
Name: res/oP.xml
|
||||
SHA-384-Digest: Z/YAq2ZQWJ6ZM9deyzeOI8qf7NCWxrghluL9Dz5tRfYiUXNnbx0qo6sA
|
||||
VYpwCcvH
|
||||
|
||||
Name: res/ZN.xml
|
||||
SHA-384-Digest: RTvJ1txSPAQ4HjghBsU6Hw7MidMucRxA3rWpTZ/lmAgpfgwexpwYCge9
|
||||
09id4KIe
|
||||
|
||||
Name: res/oa.xml
|
||||
SHA-384-Digest: ULU1Yi5WahFmQCOrZKrjsZHka7jun/1CCJ4W1BA0gpgmKPp/9936PI38
|
||||
RulLP4tH
|
||||
|
||||
Name: res/pB.xml
|
||||
SHA-384-Digest: hRpEHN8JmbThtwpcxGpLxQ5kjnRaZd/BeEapVZxzWSYwG8e/Ww/RwDkx
|
||||
R6OA77zl
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerCollection-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: KwhqxzsYYuRu2fGzx9TtHF0qFshcQ6zrJdG18jXK3cynUPsJtsr3VazZ
|
||||
VMfVoREC
|
||||
|
||||
Name: res/62.9.png
|
||||
SHA-384-Digest: E1iwiqBYeG3BQyCphW/neyngX8yuVafNDGV7Op7VXVCRzPcLZ5UuSmAV
|
||||
kARShvjG
|
||||
|
||||
Name: res/color/m3_primary_text_disable_only.xml
|
||||
SHA-384-Digest: P56pjdplPihlT3ktiZgopEp5/pGYSG60CBg7XkMIHyklKlO8zHu02OYS
|
||||
Nc/fGxSe
|
||||
|
||||
Name: res/K5.png
|
||||
SHA-384-Digest: qRc/ZHqRSawoYs2gjjq/3abGps61JQAz0cIf/b+0Tl1ojf+/wXwm3hHF
|
||||
7OL7x6tx
|
||||
|
||||
Name: res/-5.xml
|
||||
SHA-384-Digest: IgzKpIybHAS5H0ciEUGA97aqEGYLXZrQbRmcFubyDnlYqvv69ov4GBH0
|
||||
KA/wzhHh
|
||||
|
||||
Name: res/nf.png
|
||||
SHA-384-Digest: AmNwLljlUKBGxWw7HywNZxQIqUjRTNhRsLpBr/+l9oVTD1q6UzckiyYX
|
||||
TRMIN50c
|
||||
|
||||
Name: res/1J.9.png
|
||||
SHA-384-Digest: 4rFXuE4U9es13mg+45R9PD80Eof+HXAi7Ra8IJcK+KqCyV4o7zsPY6jN
|
||||
q+vneuMS
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_light.xml
|
||||
SHA-384-Digest: pH8G032JRxCu2MwgK/uUfmbGMopNWlvhAAz+j/x2dxWO1cJvlAcC3CRD
|
||||
bn0JOcDm
|
||||
|
||||
Name: res/h4.xml
|
||||
SHA-384-Digest: rGVqy7qLlVIWlnFBMiTar/0kRYSWiqSbt1RnHNSSyH4zh95TTz/IQ4UW
|
||||
IK+Zik/N
|
||||
|
||||
Name: res/By1.xml
|
||||
SHA-384-Digest: IL1qGi8N+0tpKZLU4D6gnmep+HJJ/D7CJERnFuoFHk9BH7cB890vLsEl
|
||||
rwTh9zMI
|
||||
|
||||
Name: res/te.xml
|
||||
SHA-384-Digest: hVHsEPmrEqfKGmQ5z68SOiTaFJ409SOoO+03ps7r9a7k5Et1ZoiMVsxD
|
||||
7idrbjct
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_high_type.xml
|
||||
SHA-384-Digest: u8aFG/TRw4c4XtA6RogVkUQ9r3OUMd+31VKEbyTj2NhkFxRzvDhXiZj+
|
||||
Tnj7QMWz
|
||||
|
||||
Name: res/Mv.xml
|
||||
SHA-384-Digest: HmtSxPRoYAOy3BahIr6gBvL6bXF36D+hBWhThmVY3R6CR90U/r+KlvC/
|
||||
mnXESmKj
|
||||
|
||||
Name: res/color/mtrl_filled_background_color.xml
|
||||
SHA-384-Digest: ENu/Vu0ichY0Xb+8uIjgzLmnoOZZ2LKtVaLV9zxX209yRWSDGbkya2CU
|
||||
YD++0x+m
|
||||
|
||||
Name: res/mr.xml
|
||||
SHA-384-Digest: gjfyouDmPz48F7EerJsKHFhK5pkyqKeQDzmpq4PmpWFz9HcmConqHJ+/
|
||||
fVvymJtM
|
||||
|
||||
Name: META-INF/androidx.slidingpanelayout_slidingpanelayout.version
|
||||
SHA-384-Digest: My7SclyusH8gdCbsiQ5IlNIcU3BGBnA7xcj3jsVjMmNPyWevtmjnelRu
|
||||
frBBek6e
|
||||
|
||||
Name: res/EP.png
|
||||
SHA-384-Digest: /Bdfc9LGU/FG9J2atjlk8xuzGi445rKRtpdGXWscesjXf4k3A11hzmm0
|
||||
+N3lY5EI
|
||||
|
||||
Name: res/8K.xml
|
||||
SHA-384-Digest: Hra24uxhfaooUsRYsPKkBj1OIRrpKrSWHFPMP8HeRYngoVz8nBF0QNc+
|
||||
cLYXYV8m
|
||||
|
||||
Name: res/M-.xml
|
||||
SHA-384-Digest: QmJjgTAnRS/PBGTNv0P2rIkCh4kyZ/nRp7NhfBf0q5fHHTTonzkPLSYv
|
||||
H6WGQOlZ
|
||||
|
||||
Name: res/an.xml
|
||||
SHA-384-Digest: selVhFFufntqPDNUdhLMg5ebeI7SuRtRXGqsHtJrL71jgUZKkFdnutPc
|
||||
C12ZVq1V
|
||||
|
||||
Name: res/c0.xml
|
||||
SHA-384-Digest: a3Mi6zGp+XsCNuVloXjgPSN2SEdA2kaEWQ91xC3tUuR0mk7oeH0WQuvM
|
||||
l3IxT8QP
|
||||
|
||||
Name: res/yi.xml
|
||||
SHA-384-Digest: /E5eYQff2QVy0VJgLdi3x38YRNTb+S8F7LKmIhdErpso4RYBTdodKIXz
|
||||
xk6301Vq
|
||||
|
||||
Name: META-INF/androidx.dynamicanimation_dynamicanimation.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/color/m3_tonal_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: TOcVEP2bRG/ECOSWdZopFTfkCPbmOOXwSP7VNBB08l2zFGSNzpAt11fi
|
||||
DM+D6jLE
|
||||
|
||||
Name: res/color/material_on_background_emphasis_high_type.xml
|
||||
SHA-384-Digest: AyHj7E5HXaIQsJGt/QyiZ3Z1IrN6DpoFsyJjbEubaF35PGRDCTrC+jR5
|
||||
ydqrbC2Q
|
||||
|
||||
Name: res/sA.9.png
|
||||
SHA-384-Digest: YpBpURel+q3N6QVXkBX+d5/8KbIMm5GMMvBUt0A4Y2isow9Ycpcle9g0
|
||||
bfm0Kb/f
|
||||
|
||||
Name: res/PF.xml
|
||||
SHA-384-Digest: sub6d++fK9vUtIkpn2/nbw2oZESoZ1E6/4PpQHP/mq5gN25eO/PmJgF1
|
||||
h2UBkaqH
|
||||
|
||||
Name: res/z9.9.png
|
||||
SHA-384-Digest: KGRFTyJ62Lzr1W9uucCICy/4SpGFfz/D9wtpTQNhwLRm2+Mfx+LN+t7Y
|
||||
tVNjnwkq
|
||||
|
||||
Name: res/eH.xml
|
||||
SHA-384-Digest: em61gYbaTGC+gnfDVGG50jYbGXOIZg3YFFC24SdjSkxOhYydFJdFRpmw
|
||||
F+MfGZpb
|
||||
|
||||
Name: res/4Q.xml
|
||||
SHA-384-Digest: wELXa9QW5XbGfkWfKkrcoZYkhKFq7c3i16ITzyq/zLrQjbULQHZR6lyd
|
||||
97kSLN8l
|
||||
|
||||
Name: res/Av.png
|
||||
SHA-384-Digest: xwVy1iYl+Pgg5e2L1rYrzFvDGQltdb0h6Uxytm98RlkcwfeAJV7g32OL
|
||||
o9T4Sl0T
|
||||
|
||||
Name: res/color-v31/m3_dynamic_hint_foreground.xml
|
||||
SHA-384-Digest: sRnnD47Yr95n3t7FGvUFCRlJ/Pyl+uJQE89jJZCYdK12V8gaYOqYjSWj
|
||||
JLqeTnhV
|
||||
|
||||
Name: res/zL.png
|
||||
SHA-384-Digest: M9bScFtrwa9aBvoxY7EdHYRBWClDBZYUWDdWxsBzKTfa1aPSc/GQiZgQ
|
||||
FO0pBHao
|
||||
|
||||
Name: res/uh.png
|
||||
SHA-384-Digest: QgIONFcr9YOZwMMkvhW6yC3YBAtIno52oRX/QyhO37+uRICA2pjHFIco
|
||||
G6uLzGrf
|
||||
|
||||
Name: res/UP.png
|
||||
SHA-384-Digest: AulsM3ZcxloJXUOwRXQCidOeQ25O9EXUyavnvHScgOifg74AB+r25K24
|
||||
fYQH9Cte
|
||||
|
||||
Name: res/V1.png
|
||||
SHA-384-Digest: QCXHTaIafD9ddgyyfkGhM/WgsXH9F812oj7+cnFrp3nxUzPi/aRHED4z
|
||||
b0409nZ9
|
||||
|
||||
Name: res/q2.xml
|
||||
SHA-384-Digest: o3XawdYwNlZgP1qFGPK2osKjzNSN/aT/Q2i3+mzBNp5iTDe3aWheyyu2
|
||||
e5j4/M7R
|
||||
|
||||
Name: res/4S.xml
|
||||
SHA-384-Digest: dJzi+3EOtXEUBtod78a8XgWD/q55D+Ww7oy+s8uJH5a5RwgtbxDTnLlc
|
||||
JLykNu9e
|
||||
|
||||
Name: res/97.xml
|
||||
SHA-384-Digest: LcFsY3sWrskIg/lREszJIFaYDsl8Ui2t7PNp6P58LVLQg6Wn2AgOQi5X
|
||||
6qbFlNxk
|
||||
|
||||
Name: res/Hx.png
|
||||
SHA-384-Digest: 8E6n8I9te3x9EBxE1qXUm1ojWh27nG9cLhLKQsltE8U7ixrB+vxdsVZJ
|
||||
YQ848Cn/
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text.xml
|
||||
SHA-384-Digest: /O86Bji8Hp6ueEscGewFkn4qMlcXgNmeUoWgGzCzRoGJTIlDK/ZDl4Ai
|
||||
bFpsUiDo
|
||||
|
||||
Name: res/qp.png
|
||||
SHA-384-Digest: 5r3pT9xZGjYs0x0erbfB+A2Th06zedBsx0WDDA3qdVKp+dcFBR/YG1jB
|
||||
U26j8iF9
|
||||
|
||||
Name: res/cy.xml
|
||||
SHA-384-Digest: i2HDgyO8Gh6AwqC+BfRMNZtCHKH9T0GV6RNPDkIU7a16i/sbAfL470vn
|
||||
mfsoGUMA
|
||||
|
||||
Name: res/Cp.png
|
||||
SHA-384-Digest: L7uF1VW+jgyXg51KJVMNgmjIrAuDYm5pWNGmo2JP+zRCWej0V9d7YDD7
|
||||
jNxcN/Js
|
||||
|
||||
Name: lib/arm64-v8a/libavcodec.so
|
||||
SHA-384-Digest: Gjk1qNWU27hfomK+/4P1VKUUlXgn/0K2GViERLf/9jecmrbHn+xmgFkb
|
||||
vjFWkIva
|
||||
|
||||
Name: res/Ro.png
|
||||
SHA-384-Digest: eWGrTI1GyexdfEgas/1eLnbi8Z+XNMtQcQbOqPrWS/EoTJsC3T2UTU2L
|
||||
jFj0/h3G
|
||||
|
||||
Name: res/Nl.png
|
||||
SHA-384-Digest: bfOyJ8MGuwbPB8Q7p74f0Av7DAI0xY3xtLhJ9+//h7Yu4/t5wNPjKDP6
|
||||
cQG7Y6Q/
|
||||
|
||||
Name: res/OM.png
|
||||
SHA-384-Digest: PlW+A3hCM024xgRfFXVkj+DhbSvd5mn+4qea3GGHvN0uKBHR75s8LQgY
|
||||
Eexh30B2
|
||||
|
||||
Name: res/fp.xml
|
||||
SHA-384-Digest: bV5rIkVxV1nNFY9mQkTkoQx20cImCC7IuUxktdNqGwdvTDBny/s8ZwTo
|
||||
eO7575aN
|
||||
|
||||
Name: res/Kd.png
|
||||
SHA-384-Digest: cmqZV+joCsoZ5rlFxny7xGnlwHN6vjcRrLId3Ha10gTFMZ/5rs6EeIbD
|
||||
F50l//nb
|
||||
|
||||
Name: res/uj.9.png
|
||||
SHA-384-Digest: LIC/772c4l42Gx47AjMZ8oxTJ5TLLiFy+QGGxf88JSXA/8I+k60sL3np
|
||||
hZovYUxK
|
||||
|
||||
Name: res/bm.xml
|
||||
SHA-384-Digest: J95UY6K5s5wwOweIkqU7TdPAsq1DkUApoYS3VuMrvTxad7nBStWr5rOc
|
||||
TlUQAuIV
|
||||
|
||||
Name: res/ej.9.png
|
||||
SHA-384-Digest: nCGpqni5PhvfilXFqTcZFqMHuecWmpOBBxo9qT33++to8FC7lHET8mme
|
||||
CRhYvSF+
|
||||
|
||||
Name: res/Fx.png
|
||||
SHA-384-Digest: nFoYQyhtudi+28+gb4oxBm9H251uHwY/DdFpPtaXIwGYwKVkV+GZH+eg
|
||||
E/cHrZ24
|
||||
|
||||
Name: res/GY.png
|
||||
SHA-384-Digest: XEJB7J/SZcKhwhAdCOZVJ3njoYJPs8yO8Fkn4jM/6gAMmjwJMa4IGobL
|
||||
EaEzvX/p
|
||||
|
||||
Name: res/D7.png
|
||||
SHA-384-Digest: tSs46rj5U4lCXfnOZXxuRi+ycHb7/ZdbLWHPvidKEz10nXO6Ht3aN5nn
|
||||
4Px1AYCi
|
||||
|
||||
Name: res/OX.xml
|
||||
SHA-384-Digest: p98S/bb46KkP/lfdhRgUrDkoeioQIyPSjcifztyuhlLOLoTY0hNLcPLh
|
||||
k67yYrHH
|
||||
|
||||
Name: res/color/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: VYTdPULKYZKR1m/NIFvWkolFxakR9ZPbO9A1qOLmBr61TWQfxVza8M6o
|
||||
UotbYMKJ
|
||||
|
||||
Name: res/5N.xml
|
||||
SHA-384-Digest: j4wXXpCjw+uLvH+wSOdOpJsSGT8Rx7W9JvJNR7xDEseiwEX+xeA/AA7w
|
||||
RtccHiHP
|
||||
|
||||
Name: res/color/m3_highlighted_text.xml
|
||||
SHA-384-Digest: NbKRnSQam26NpocRJ6Jy1z5ANNPW/1xW1HIuj1dCR150z7VFDnwCADau
|
||||
vrUYEIPp
|
||||
|
||||
Name: res/color/material_slider_active_track_color.xml
|
||||
SHA-384-Digest: Wk4MKTFpLX6rTo/mImK5IgVtD8r0/aaxA5phu2fh7pJQYmj/QdyjCvEE
|
||||
xEHhw7wI
|
||||
|
||||
Name: res/sH.xml
|
||||
SHA-384-Digest: C0MUdjZnVnfiZz4MCfYgv9LeC4DxgxF+E7mQXqCyL0xCdNvAVzhuuT8q
|
||||
n/tNkKEQ
|
||||
|
||||
Name: res/RD.xml
|
||||
SHA-384-Digest: O87vIPFgyoFjbbLsU6VuiCRa7AHWtOFUnAZKeJnto0Nu6WvaaLH3SmCN
|
||||
HtoIP3Dh
|
||||
|
||||
Name: res/iZ1.xml
|
||||
SHA-384-Digest: PNHzF0wB5hvjLCuXjCFCVaRvlRT34lrqmrpWdzt42NNz952Y9Qdr6QeK
|
||||
QKsBLhu8
|
||||
|
||||
Name: res/Uf.xml
|
||||
SHA-384-Digest: hKHiawrf9oDCFZ5AFJWZmUNbeWRFs34q0Pxu2j7MsGB3ipyMYjKg4fqc
|
||||
KUYrTy9/
|
||||
|
||||
Name: res/color/abc_tint_default.xml
|
||||
SHA-384-Digest: +cEAKrYwxe08txliaECcfiT8j7nJ3dTXS1Ow26P99gzH/Q5btStAvPVg
|
||||
QmpIX9Ql
|
||||
|
||||
Name: res/hp.xml
|
||||
SHA-384-Digest: jP4xcn6itWt3JYYB9smTtsd/DpN7bGJWl+vwykP52Ivm5EB4ixCrTE54
|
||||
3MdyqMHJ
|
||||
|
||||
Name: res/iQ.xml
|
||||
SHA-384-Digest: 5GACwHumBU/D6t7x1aXjSsHoNXJ4DJDpy4Yli7M9So3AkcuXN/6wCA1I
|
||||
+tsrxO9J
|
||||
|
||||
Name: res/JP.xml
|
||||
SHA-384-Digest: TBTPPmSqAaokBshQLbhyM9pY87T2VHDKrmNI0LXYJy6h1QJQ7aT2p7FV
|
||||
j8aK2xmW
|
||||
|
||||
Name: res/ZC.xml
|
||||
SHA-384-Digest: 85VUeF8N4BgRZiy32CQ5KEbpohcTbISUHcXKyE/AEGuinKsyB7ezH8fk
|
||||
OlKtdoww
|
||||
|
||||
Name: res/Fm.png
|
||||
SHA-384-Digest: 1N/9Ka8cugGI4poe/fFFuoHbzBYhTXZvYbCyrx75VuULL7LQYo6OJ0yJ
|
||||
XAJU8aq5
|
||||
|
||||
Name: res/aR.png
|
||||
SHA-384-Digest: ixG4AlR77XgbHgqltV8tQzO1OcKYp0ud1GLqeNg2QzjT6Ewrqemg6hfL
|
||||
MDOvC24D
|
||||
|
||||
Name: res/3-.png
|
||||
SHA-384-Digest: efP32L0TVK2LOQWJzKXma5zPqJZTrx4MNXyjzb7O8Zh+d0pTm+qLFN4Y
|
||||
Eni/cyon
|
||||
|
||||
Name: res/color/m3_button_ripple_color.xml
|
||||
SHA-384-Digest: 6mNkhk+5L5hM0GYIhA8so0FeKkJzhbY5GjLvnLTJc5ajPUQftN2E8NYL
|
||||
ZIXF1NMK
|
||||
|
||||
Name: res/color/epg.xml
|
||||
SHA-384-Digest: JgOXwRw8vpWNjHTB+/qP7HliA7eaJrmWNC8cE2VzkcCkIwGuk3Ldevj5
|
||||
Fzsuh99c
|
||||
|
||||
Name: res/color/mtrl_btn_stroke_color_selector.xml
|
||||
SHA-384-Digest: 4btJMMudcXw9wc6HFOTVPFDLHVhRFW79ZsQAxggE1o4boxHHv4DtB6ez
|
||||
QROls5eb
|
||||
|
||||
Name: res/AE.xml
|
||||
SHA-384-Digest: STCsBM7uAi7RAcpWDY1cTqS8pJsapCeKtsInTKElC7ESbegBg28iZmy9
|
||||
gcA2snNR
|
||||
|
||||
Name: res/Ws.xml
|
||||
SHA-384-Digest: VmyGzUaYiBT871UQ0XU+nkrhxFpKHGggG2Pv+syS+Z2WZzJJisVBDpAe
|
||||
1a7X10Cb
|
||||
|
||||
Name: res/XT.xml
|
||||
SHA-384-Digest: CtL6cAt/cDGsqs+9RZExHl3g1tMEudpaaoSej4P8l6DqbWc0Eayz7WGX
|
||||
NXPNQLbx
|
||||
|
||||
Name: org/seamless/swing/logging/img/trace.png
|
||||
SHA-384-Digest: 8CiW3HiZBYHjabJjE/OQReHmwk9ANZxpB/6cbcltfSDZt+xGfEfNAfhe
|
||||
LG1vdoi7
|
||||
|
||||
Name: res/color/m3_fab_ripple_color_selector.xml
|
||||
SHA-384-Digest: eg6jMYelAq46XEu2ubT0nrC2iYREG20EWtHpfO6GQ1++JAVGBuTPNOoZ
|
||||
71ulXMmG
|
||||
|
||||
Name: res/bD.png
|
||||
SHA-384-Digest: CgT03T0ti93Ko32vRf9R0JQUvUuCJlc84ymc/iFnhtD+3EsPDdRuzuFA
|
||||
Qo82J8RC
|
||||
|
||||
Name: res/a0.xml
|
||||
SHA-384-Digest: CgC7OKmsdbjnkysHsjVhqXvwg12RgqlAXuUk50tAAPiyGRuzovDXE3Ja
|
||||
0Z4Vq4gZ
|
||||
|
||||
Name: org/seamless/swing/logging/img/warn.png
|
||||
SHA-384-Digest: yuSioLxPoJZvz4qTayHzQyFM5CFDrbouYwvRicjY+0OIZt8SuFgY758I
|
||||
saS0mReV
|
||||
|
||||
Name: res/6x.xml
|
||||
SHA-384-Digest: DLmSQ0R2D3PCjeTBzMjY1VIOmkHT/zDKl7bW13sis/ufcu0UZJpOpL5N
|
||||
/tGYCoMC
|
||||
|
||||
Name: res/4B.xml
|
||||
SHA-384-Digest: 89vkhsXw3ZATt8egcEuT76/8tqvkHiCOmtC4Ruz3gqZILQoYbnZsazDh
|
||||
R8hwLwK2
|
||||
|
||||
Name: res/AG.xml
|
||||
SHA-384-Digest: Vc4LW7zzK685t5Pv81BkmByKGACiGeh4uge2CP/Fooo4enGxX0nouyks
|
||||
X4K8thaL
|
||||
|
||||
Name: res/U0.xml
|
||||
SHA-384-Digest: aWwxY4d9OSu9C0hcVvm4Mj7o8vEt3d7wl4RGNUgth/Ov83xx1uO9LVyo
|
||||
+WGhj0Gi
|
||||
|
||||
Name: res/XR.xml
|
||||
SHA-384-Digest: Qxc5/InaTxNheA5XEJLyKiTRihYKE2R9bsbBQyNfqSKEAI1AfLlA+9gj
|
||||
q7H0+ti7
|
||||
|
||||
Name: res/Y3.xml
|
||||
SHA-384-Digest: 4iteQY+nvmmzcDKYfX4YEez4NmVlfrZdp26dgmO9dGV5fsm5V/on+moe
|
||||
eIs49sI1
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: 7jxuX7aC0VZxWC3BJ4iOK1s1dp7NHJxJLqF/FPkfcWYAbF0MU/SpP2vE
|
||||
REIUm6LK
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages.properties
|
||||
SHA-384-Digest: 6W25lH3ydRSnGB+pRHth139LbnOTgrodTLmhZO+WUlQ2UNCMDOqiSLK2
|
||||
oixbMokV
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_ja.properties
|
||||
SHA-384-Digest: cmdcgbA7fV8TE67neoojD2Yx9jw1VSKV2MdK5HRiz2X0K+avqBgPIiym
|
||||
JMo8G/fl
|
||||
|
||||
Name: res/color/nav_item.xml
|
||||
SHA-384-Digest: r3Y5O13b3dPeM6S6OhIDkCavzbc9plah32dPCD/apVB0JRftvE2v6px3
|
||||
kBKmr0u9
|
||||
|
||||
Name: META-INF/androidx.versionedparcelable_versionedparcelable.version
|
||||
SHA-384-Digest: ITmiWuAF+c+Pj4UAzIIJAQIn3XFvV1dCIdAHYoSmOJvKd6lWT5XSw1mI
|
||||
zzCA0Q64
|
||||
|
||||
Name: res/tp.xml
|
||||
SHA-384-Digest: K+Ng/iqk4ylzhaDiy2x9l1NSCpsR8wbhc44SM26QRr3+PcGSPJ6hKjgv
|
||||
RY6m8NQL
|
||||
|
||||
Name: res/color/m3_card_stroke_color.xml
|
||||
SHA-384-Digest: fVkycqTQHDkdVwYWIqfhwA1kRvwtydXi9r7M6eehacjP6DOSKtUVNJrX
|
||||
oX9xPbfX
|
||||
|
||||
Name: res/color/mtrl_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: 4aB1eTF+1KMws8nZIfYt7exV2Au5fBPJooATECId1s9fb2gWQaKo+5u4
|
||||
k9Pzo1sw
|
||||
|
||||
Name: res/ls.xml
|
||||
SHA-384-Digest: mmfdN8K0BTrHT4weF+1QDBcuJtNQF7gLtcSxOLnEshKKD7QDHNyM54Dv
|
||||
8JFuqfVo
|
||||
|
||||
Name: res/uL.9.png
|
||||
SHA-384-Digest: Ytayy12mP65CsWIk6holCaxxlt9Uq8iiYgEQPPa10v6XQrz0xU5xXKxu
|
||||
P3b9mBSK
|
||||
|
||||
Name: res/27.xml
|
||||
SHA-384-Digest: J/oS46CJQerPsxT4fwfyvFW4mlM4B5z32Gw4org9bmiNqlepe1SFOp8j
|
||||
LVtD+RO7
|
||||
|
||||
Name: res/2H.xml
|
||||
SHA-384-Digest: zSDqiRllATYoaJ1DlXvM4sBzgRt0WBLwmoJI8dEfhqpPexqHgeZBrVJT
|
||||
X1cZ7Z7J
|
||||
|
||||
Name: res/color/m3_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: 7BXSdqbaKlmLte7ucuQAOIOGK9lqgGGtiI8LkOKcyLfz+/O4ByDxjAXY
|
||||
62DV2nVP
|
||||
|
||||
Name: res/Y9.png
|
||||
SHA-384-Digest: ixG4AlR77XgbHgqltV8tQzO1OcKYp0ud1GLqeNg2QzjT6Ewrqemg6hfL
|
||||
MDOvC24D
|
||||
|
||||
Name: res/Jl.xml
|
||||
SHA-384-Digest: EbzS8ugfZb74oqfYIyVUFId5uh6s8Wld5DdWGpFTmwykPspEx/4aMH7q
|
||||
ck+cxFG4
|
||||
|
||||
Name: res/xj.xml
|
||||
SHA-384-Digest: 0FC5f690i8x0RbTCbM3JMts/aoArXTS6tTmnUCYxxL1IFiR+C5K6p02b
|
||||
md//Rdzu
|
||||
|
||||
Name: res/XY1.xml
|
||||
SHA-384-Digest: hreTfFKV0wCmb3EpFOk/bYWTZkOzLVT9g/d2q4WiFciGZqq0SYaZc3kC
|
||||
aomnG5X1
|
||||
|
||||
Name: res/4o.xml
|
||||
SHA-384-Digest: mqI9DvoN4Mf+xdDOlj0QL1PBJVJxRGj8MYiDtkKlbnvuN/J40nCL5JW7
|
||||
M3Hj1wXG
|
||||
|
||||
Name: res/61.xml
|
||||
SHA-384-Digest: EuhTzI6TSc9BxQ7QAtefxvUOGdl1KDBaxR7EvhJlSU1ETgbgIZxdQH62
|
||||
Mc1Zo+0c
|
||||
|
||||
Name: res/ly.png
|
||||
SHA-384-Digest: t8j0+3o34MDNWsrvlbz8NMs6hEImU9enkScJ6873pNqb7bznYEHppW6J
|
||||
f2qwDaNs
|
||||
|
||||
Name: res/tg.xml
|
||||
SHA-384-Digest: RsHxOjyRzKPYWFsl78I9KNBuXZKcwRbFf7RVtp1vxlwIvrpJZaFv4E6n
|
||||
y5qws6YI
|
||||
|
||||
Name: res/Aa.xml
|
||||
SHA-384-Digest: XEeDLJ872ybiFFppBQwodAklQyFCaoMBMQWVtbrRBxdLTev7dPOwLoFq
|
||||
bZ8fAe4m
|
||||
|
||||
Name: res/c2.xml
|
||||
SHA-384-Digest: W28kAUa53Xq7pK28hBphrLOqVKVnc06rXNwZRDGdh+Xh46pqY3JO20R3
|
||||
eE35vpKK
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_medium.xml
|
||||
SHA-384-Digest: XhOBVNP5h7KcrI7ceuMjS22a6V3JkjP9TUlH6cg9VP/5HMLhX/4yFDb4
|
||||
Pw/3SwhC
|
||||
|
||||
Name: res/Y7.9.png
|
||||
SHA-384-Digest: Gqs7POVW+neU7vEVU6o9Luffs3InQraH2EvdYFpX4w/1fRNo8fIaEvRE
|
||||
dprXcN/j
|
||||
|
||||
Name: res/4F.png
|
||||
SHA-384-Digest: f0xepWz23AgkFXG2phToRkYmCXEufIHjJGotxZlTm/MYOb/eUGlsESpe
|
||||
YJZFM8u6
|
||||
|
||||
Name: res/Bb.png
|
||||
SHA-384-Digest: Aw9tasy3yIAucr6N7QxJahCAowF1MdB7duiSPMuJxn9ULPtkKbPUqvoJ
|
||||
JuzSvp3f
|
||||
|
||||
Name: res/xo1.xml
|
||||
SHA-384-Digest: 9FUdZvQ7qvH8nBYnh5N/U8CW8QmNmbv/KUBzzQCqahBHeGVmGk02z/EI
|
||||
gdfHJYkJ
|
||||
|
||||
Name: res/ay.xml
|
||||
SHA-384-Digest: x9fqsGVobxLfYxeMBkspfUxp+BFQEXKrkfQAcfJprPln8mHljA+tl4Ei
|
||||
FlcfYN6N
|
||||
|
||||
Name: res/TB.png
|
||||
SHA-384-Digest: 4xtU22z3rtlpW3X0ktCR/XHIkdugMJiL3KEaOTxjT5/JK8MrziXUG1iZ
|
||||
kG/cRs9L
|
||||
|
||||
Name: res/ud.xml
|
||||
SHA-384-Digest: XnPS7KOIl7x19GlaN4Z/ATetY8T5Feo1g1U/dLPZ4AncbfOBFd7OtyMv
|
||||
wXLs//8z
|
||||
|
||||
Name: res/Wd.png
|
||||
SHA-384-Digest: il3cEnwWODS5BlYyxz54rHsKkj0uIaXRFhcht+pHqXjb/xVAr25ghGqT
|
||||
gFfSp+zo
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_hdr_internal_es3.gls
|
||||
l
|
||||
SHA-384-Digest: UVK8w0JXUHwo3hu/2uv3wNKb0zjOtdwtGp0m/+BAOtk0sbdKPVp1WuRK
|
||||
M0yWUfxp
|
||||
|
||||
Name: res/7H.xml
|
||||
SHA-384-Digest: OmitWUC3XbxRwRiXsTVHTkoCZdRf8YFwefEfUE/jDgP3H+5TRiZWbkAu
|
||||
6OD+ZjlG
|
||||
|
||||
Name: res/Z0.xml
|
||||
SHA-384-Digest: aJ0wxOlVIJNuDhf9sfOFwyqCOSekm5EAtCrsAF0IdDeEsVO/408im4rs
|
||||
BzDanItl
|
||||
|
||||
Name: res/rx.xml
|
||||
SHA-384-Digest: 72VL8zOvSD3AdDr7cCh9vKr/VQoHhurnRaCQpUTO+Q3lma7V01I16CpX
|
||||
L3mQmCdp
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_dark.xml
|
||||
SHA-384-Digest: US+8sZcjR0nd6pCzeZd6r/OmcsFIObPuAko90SManh5YfqHh6ye67eu0
|
||||
4+kNL0v8
|
||||
|
||||
Name: res/MO.xml
|
||||
SHA-384-Digest: RW5+K5faVH0ivr0nYQhaAAdllFXybP/GKj2eEFq+AxFfHN/jlIQoy0gY
|
||||
QRxYaxeg
|
||||
|
||||
Name: res/N0.xml
|
||||
SHA-384-Digest: r1HXVe8eHB9VfUTT7pI0OruoK1BJcHmJuevEZAPLkLwml/g1PzNHgI7v
|
||||
FxUGrV/c
|
||||
|
||||
Name: res/d3.png
|
||||
SHA-384-Digest: zFefJChzivE8neVIAIvoy8EoUhdA0ei0cILbDkyyZQ2b1gqB7PlbqXs6
|
||||
VcKCztP/
|
||||
|
||||
Name: res/NP.png
|
||||
SHA-384-Digest: oSNu//U+Pjxfr7vcmaSIFA3ukotcDwa/d/CfmBAOkMJ1/YMfOEYl6duU
|
||||
ykN0A9TA
|
||||
|
||||
Name: res/Xe.xml
|
||||
SHA-384-Digest: Mw65DnIGGAmcoBiHvFLvI6O8Kymydieub4RduoOx4cOiqN6NUI5MrgSv
|
||||
vOdB0adc
|
||||
|
||||
Name: res/Mq1.png
|
||||
SHA-384-Digest: +uyF085+Mj5DOD9NaOzIzHu5xve+FIpIL4D1y4Q33BQGczkyuKdqdB8K
|
||||
plNZryAT
|
||||
|
||||
Name: res/S4.png
|
||||
SHA-384-Digest: iFdjCiZUjlyjqFoG6flvAK9HrIdqjL1eWobQ/pZP7pZYv+qH1M4BWz6A
|
||||
VFuAvEpE
|
||||
|
||||
Name: res/jN.xml
|
||||
SHA-384-Digest: Abe/380hXlxRFuCMI1hdhNrdj8RsLSNw5pUsZmptTYlDZQjXe9nLdlYK
|
||||
M8Fnx9cO
|
||||
|
||||
Name: META-INF/androidx.preference_preference.version
|
||||
SHA-384-Digest: GKqkS0cvyjjgH1wxhzzW5U7S04+7atOY/hnmeP/2ShskJ+QcyWqyhIai
|
||||
b/q/Jwoe
|
||||
|
||||
Name: res/Cc.xml
|
||||
SHA-384-Digest: LC5xrim1iwFEkMdAGhwV6pRWVs/naSWAag1F0g3kGtJKfUnE4aeUIm11
|
||||
JwCBzgwp
|
||||
|
||||
Name: res/tK.xml
|
||||
SHA-384-Digest: HxJMmPCg/Q8yM4JZbFi739dCZQupuxUBIZIV1Gc1beGOLcKfqWfkS4ET
|
||||
WlfyJ4fJ
|
||||
|
||||
Name: META-INF/jsoup/LICENSE
|
||||
SHA-384-Digest: ViHsbIXV5dTBU9sOu1ugX7WMZ8YkTf+papnZSWe/O7VJiEAr5Y9cQFkg
|
||||
4wu68l7o
|
||||
|
||||
Name: res/LJ.xml
|
||||
SHA-384-Digest: rwkmmcburSsXGuERMX+sNrbjvnvb4dqy7pO0cvzbopW9c5HicWlv/Uth
|
||||
9NdCz48S
|
||||
|
||||
Name: res/qn.xml
|
||||
SHA-384-Digest: 2pCH2Nw7mY6I7zhlhhZ1zYahP60a0DcE/RPaICJAvs6u+bBRAuS/iJr5
|
||||
2rMoy7c1
|
||||
|
||||
Name: res/sg.9.png
|
||||
SHA-384-Digest: AiAyJDO+qO2Yf442izLR7o3JPdGvjg0hZxLdP80/GlBkaM1sp9vm0Oyf
|
||||
cIsBkHm2
|
||||
|
||||
Name: res/Ny.xml
|
||||
SHA-384-Digest: yE8PTKZ2mjQA4+cl11chd6f8d+DcU1xT6ia0aXzfmhacWVw6vB4WIgpS
|
||||
IXiAF6sx
|
||||
|
||||
Name: res/OZ.xml
|
||||
SHA-384-Digest: yD9/k6dYGIU5c4j1GcNHb6krKYAovfxTe26aWMfRLnSOifV6jVhVuHBu
|
||||
Ey2IkNPi
|
||||
|
||||
Name: res/_I.xml
|
||||
SHA-384-Digest: OK1B0jksOt2ow6xS6EzNPj6ZXlohqyzctpHv1WCk53qK7K8Hjs6f0Zma
|
||||
LvT2/2EX
|
||||
|
||||
Name: res/NF.xml
|
||||
SHA-384-Digest: HG4o3ZXR5ZGdW8KWBGvGgVjCS9ofybrz4rfPJO15cRt5IAV/DHhVjCwk
|
||||
kVtMCwqH
|
||||
|
||||
Name: res/Bw.png
|
||||
SHA-384-Digest: v58rkf2BuRaPVe9ENSB34zklVw3fjmzOx4X0V1/WF5yIQdnvljvQATOT
|
||||
CB5YuXy4
|
||||
|
||||
Name: res/-B.png
|
||||
SHA-384-Digest: uP+RKCPNYv/hnZypY/E3sY8sxTcRyN8pVIIpMoFfALrQFhZruiBDn6wM
|
||||
V3PRDg2C
|
||||
|
||||
Name: res/Ec.png
|
||||
SHA-384-Digest: M9bScFtrwa9aBvoxY7EdHYRBWClDBZYUWDdWxsBzKTfa1aPSc/GQiZgQ
|
||||
FO0pBHao
|
||||
|
||||
Name: res/8h.9.png
|
||||
SHA-384-Digest: xDIHONZDaO44ZoidA//Tq44Kwx6kaD0+q2dimEjfhnsVOZI7dwIvX/M1
|
||||
ba7GemcK
|
||||
|
||||
Name: res/1x.xml
|
||||
SHA-384-Digest: hl9fMBXqXbJKnt90FNZO7se4+OC/cSfXB77sMVqwxEIIFOXD9kRO7Xx2
|
||||
uKA2Oemn
|
||||
|
||||
Name: res/QK.png
|
||||
SHA-384-Digest: jOnxz+QpZ3aNZFYnQuC872fBQGm1VhaUv5AG88wYaLDCi7QZQ7+5idP8
|
||||
cjF3esyP
|
||||
|
||||
Name: res/eD.xml
|
||||
SHA-384-Digest: vTMINW8ChyCqn7vRIsvJ6ge1fHgZpl4IWXuluXoR1JDRBnkooW8JU0FN
|
||||
j5Td/X+a
|
||||
|
||||
Name: res/DZ.xml
|
||||
SHA-384-Digest: d4RtPmKf6rNI3eI8tfSIY35zGAYjSLiu4twfoN/0IQBDOo9dfAreUhG8
|
||||
lv5Af4Z0
|
||||
|
||||
Name: res/7C.9.png
|
||||
SHA-384-Digest: H5viSNbscgmAQfeWRNZ6cf2lkJqD2RdywALYU92x0/a0YB3N0swApG49
|
||||
+NLAEm3q
|
||||
|
||||
Name: res/8K1.xml
|
||||
SHA-384-Digest: 8JRvsrI1nqlGTSUOLw10++AoaRwu/0lFexgR/aLa8Rk+4mIvupFpsXii
|
||||
5VO/RwtJ
|
||||
|
||||
Name: res/color/m3_tabs_icon_color_secondary.xml
|
||||
SHA-384-Digest: 6Frh9d8825buIgMA4BrcJiQpR+GqNnP1g/ILbRYCkzuPdqZiIAv4eWhY
|
||||
NEHJeu0T
|
||||
|
||||
Name: res/Mt.xml
|
||||
SHA-384-Digest: RLjtZ031TiPR/kqGUTNqKgi9Xhu6+rcjFF1AiwFgy6cEgRQJEFlXRHNu
|
||||
G2977KFh
|
||||
|
||||
Name: res/D5.xml
|
||||
SHA-384-Digest: +FytlO28nUviow0fmJrPud2owt2mXZkt4fE1sUONqlkoNSTtWL2nf7+u
|
||||
bEtQ2ONC
|
||||
|
||||
Name: lib/arm64-v8a/libavutil.so
|
||||
SHA-384-Digest: 3l7puU488sFyoI8ANVfrzQcS4yjmyukXK5mzm6I+5uJQPRO6shnwbY4r
|
||||
PLxfTQBQ
|
||||
|
||||
Name: res/color/m3_chip_assist_text_color.xml
|
||||
SHA-384-Digest: fSlT0iRm/TgSFTcq+cs9gSNXXeVSKbtPVeY2CaYY/w89p/4sFGYClhVR
|
||||
7/4jXcK0
|
||||
|
||||
Name: res/dv.png
|
||||
SHA-384-Digest: O9R8a6v3whFVK+WEunyWZ5pFPoNu7Fm88ZwQu1s97PtnzIskxodfBAzD
|
||||
kcOC3nYc
|
||||
|
||||
Name: assets/shaders/fragment_shader_alpha_scale_es2.glsl
|
||||
SHA-384-Digest: fkULVpGYaZwAnvFy+Nz9f7Rt8d5d44QScof8ZvtlDqrW8cssPQNWE9Yf
|
||||
3D4+TF4A
|
||||
|
||||
Name: res/fg.xml
|
||||
SHA-384-Digest: RhIx5iOsSp6/gpe/bVfNxL3jSjYz0VGfBO017N24uIkxobAg5E9pj0rT
|
||||
9NYRxQiZ
|
||||
|
||||
Name: res/kr.xml
|
||||
SHA-384-Digest: m4M5gJirmYiD1dVBUhlZ7CVDA8yZbGAoMTEgLYYc51/OZKLA1NJS5hOS
|
||||
R409nSJd
|
||||
|
||||
Name: org/seamless/swing/logging/img/info.png
|
||||
SHA-384-Digest: Eduy+0FYIVYttTxaoVLCUqS582Gx92F4aRJS95c9oEsPyPpdNithrRJ+
|
||||
MNcnc+4J
|
||||
|
||||
Name: res/QZ.png
|
||||
SHA-384-Digest: WCFoNf9Yv1lMuKScbwtVIGF5bi6yFMkFwuPMQoMzG8sA91TF597crAL/
|
||||
ueoYvhso
|
||||
|
||||
Name: res/ZL.xml
|
||||
SHA-384-Digest: SuqCzbPi4AJJ3KWWxN4SfklV9sUyrygsTHQWrMpxbDwApaUEr/eYuhxA
|
||||
m4IW2CCm
|
||||
|
||||
Name: res/iZ.xml
|
||||
SHA-384-Digest: EZhsoEtVLCGgnrK70UeP21cDKml0DgofTqd+DP6MpLWn6XaK37fhO9Eb
|
||||
Vbpfrjn9
|
||||
|
||||
Name: res/RM.xml
|
||||
SHA-384-Digest: VaeXv2DYn5jn/W2FzJH3rh6UyW7KqYgLRGEXAJD1VCW3Ybyzt9O4oYIL
|
||||
GAn5t8UM
|
||||
|
||||
Name: res/w7.xml
|
||||
SHA-384-Digest: rkEWDARRtpBGvwnT8rxnlmvSN/qZYptahm8uweURXiY0woorLGiI7wuf
|
||||
8dfX0xi2
|
||||
|
||||
Name: res/aT.xml
|
||||
SHA-384-Digest: ZeJVqlT7qHrzzVUj6fC9oo+Flx4DQO5JAr7oKXHDfwPz9t5rp7i1LNtn
|
||||
Cpob4gQX
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_ripple_color.xml
|
||||
SHA-384-Digest: 56r7LtTtHv5UbmtHSyTvLdw/7Lk6A8gp45sW1o1A7pprM5InyXMZ3miR
|
||||
osclmmhV
|
||||
|
||||
Name: res/nm.xml
|
||||
SHA-384-Digest: skN89GDXuPFeCP2HRI+zb5uWDRsv2om8/GbYfuN3UQjIHOxcldqhSQxK
|
||||
E0Wj4+nr
|
||||
|
||||
Name: res/kJ.9.png
|
||||
SHA-384-Digest: gU1brKsptY+eqlKVBwSRMira+gfhBTzRfkoGFY3v0MW3Jz41+DnHPYlE
|
||||
YbxH7PLu
|
||||
|
||||
Name: lib/arm64-v8a/libxl_thunder_sdk.so
|
||||
SHA-384-Digest: KAmd0g+GJBnS6qsrxYh48e0SfMRcNSmZZrVS18gglwlMnwVkFqJjBdXB
|
||||
oh3RvDh7
|
||||
|
||||
Name: res/color/m3_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: G3kGrZMi5itk/o0FhncF76K8wC2mcGJry2fsgy1iyx0fNO2XOPs2CM5y
|
||||
JWcuMtmK
|
||||
|
||||
Name: res/yO.xml
|
||||
SHA-384-Digest: HhvWKpoADSombJJnYd8a9tTTZ1WoF+xHSSEDUm+r5aPZRdEI9lCa/HZF
|
||||
otY2MD+K
|
||||
|
||||
Name: res/9N.9.png
|
||||
SHA-384-Digest: ggR+zN/xoRl8E9KG8cUaTHDgS82KCy7GAAI7nw/6rX93U3nihupNxGF4
|
||||
G4lS38oh
|
||||
|
||||
Name: res/Ha.xml
|
||||
SHA-384-Digest: QQm4O43EVMCiYo2pc1C6eyOMXwA14izV7HHKZpUCuAReUOSPQy+ygiHQ
|
||||
2reXEeAe
|
||||
|
||||
Name: res/s4.png
|
||||
SHA-384-Digest: 2OwLZAobfG15CgdiNAMv47TdB5k66yM2l50fLuoiy2FJWmmYG72iTJH6
|
||||
SwRCKLhX
|
||||
|
||||
Name: res/uU.png
|
||||
SHA-384-Digest: LKn/uz/4hCrcfXJgwQCexQ3md//jDtCeQbuohYCNSFoNK4v75U/Lcigx
|
||||
+ZHe6LLu
|
||||
|
||||
Name: res/AI.xml
|
||||
SHA-384-Digest: Evdb0kT1ggdtli17h5dPWybwoebhasmCPAUihLUFp1J2W8dCbYvvNda+
|
||||
zZZJOCxC
|
||||
|
||||
Name: res/_p.png
|
||||
SHA-384-Digest: YO3nwOv7zwgGdijpktjr8EcVt3G22SmAnRw1nZLLGbUz7gRlgpDD5G2C
|
||||
iGAhJ+95
|
||||
|
||||
Name: res/aa.xml
|
||||
SHA-384-Digest: 2Oo/fB1gz6O/SN8WIFxUo5Ox3/aIq+bEo+WeACqC6qfzCM0wvX4YLUWm
|
||||
55PgKD/c
|
||||
|
||||
Name: res/Bd.xml
|
||||
SHA-384-Digest: dVr1FaOzMZijrw4vn2wh+iT5KR6vl2tpy3a0gE9hk/1zl++qQu4XxoTK
|
||||
fVoPy5TN
|
||||
|
||||
Name: res/VO.png
|
||||
SHA-384-Digest: A2r2n7eYEqEv2s5ZuOdpejvC0rA2PsKuP8COl2sOjxhyNam5eUPsMmpA
|
||||
7onV8pPJ
|
||||
|
||||
Name: res/UF.xml
|
||||
SHA-384-Digest: 4rN42XxYRgN6KaqIJErng3XB0+rYKS5vtxMfPvRyf4v/21zb6XmA7LpT
|
||||
9jQy2GsS
|
||||
|
||||
Name: res/ln.png
|
||||
SHA-384-Digest: ySHTAqavGGBtIBLhAJsSnJvuAVt5RFEaZQXJMlf3UdjyilpHh9ZzwThv
|
||||
bLFM1OsX
|
||||
|
||||
Name: res/ti.xml
|
||||
SHA-384-Digest: P3SywT53jXo/lgiFDbhQ8Lo1PXIhl6bAKdvG4SkuMH7YkzEiGkayOenP
|
||||
UdAWU298
|
||||
|
||||
Name: res/uJ.xml
|
||||
SHA-384-Digest: D5URXOCqC9eHPUckNhPGqNFt+u68oJ1QSRNynpH1noFH171SMfLJ/2Pe
|
||||
/OhOvNYj
|
||||
|
||||
Name: res/MF.9.png
|
||||
SHA-384-Digest: 2ad2Qv8xmkNXf4xgeYfM3vuEbGsu7Kb5khx2v9+8rWr4qJqZjwHCAEgC
|
||||
uPKw9Vf0
|
||||
|
||||
Name: assets/dexopt/baseline.profm
|
||||
SHA-384-Digest: IZ1dIeQZ/1IR81sTqPgCbTVjvhWD3RPb6Mdjcnb2pzsjQu1nWz0bTU51
|
||||
UVJSw5m5
|
||||
|
||||
Name: res/L_.xml
|
||||
SHA-384-Digest: IjDZ1Dv47Cqf38nRtJM//o1BeDKkAnEjNzAzpq+hssCZw6q9zuH7pWK9
|
||||
5b4lO2so
|
||||
|
||||
Name: res/color/mtrl_choice_chip_text_color.xml
|
||||
SHA-384-Digest: wk1r68gBTOfcGkMw9fN/PBVPowMFRv5bN24b60iAXWalEIMLU7sVhqTj
|
||||
cE+iW4Zj
|
||||
|
||||
Name: res/7N.xml
|
||||
SHA-384-Digest: R82W2SlnSoR/7xRQ5J+hQed/kFqXQdGXEVzSJDP3e2Gi2/F6jAPhUEtp
|
||||
MmR4Nf7n
|
||||
|
||||
Name: res/TV.xml
|
||||
SHA-384-Digest: MIGDf/pDZ5PZiKRfzuSpMNg5xKLh/Alto1Rvu9IZniMXEcl9/hUpXKk6
|
||||
XIFCf0o6
|
||||
|
||||
Name: res/U7.xml
|
||||
SHA-384-Digest: /WGGFmM8PBQyCLVI5ZvpT6kZCdvld1JFCrh5lQVEamuooumbOTWlY9ec
|
||||
E58wH7Pb
|
||||
|
||||
Name: res/color/mtrl_btn_ripple_color.xml
|
||||
SHA-384-Digest: zOPxzh4xhLNq+vcYs6NubGkXZpkUp9/9TB+/l5UTNTWKgy/RDEgv0NVC
|
||||
8mPCq4fi
|
||||
|
||||
Name: res/sS.xml
|
||||
SHA-384-Digest: uJ/vbsBCYG9hHtXcnUzLFdL1ht9QUTfjCjb/5vNpjhVzkFHuMij5sJ1j
|
||||
wqhPXkcJ
|
||||
|
||||
Name: res/uO.xml
|
||||
SHA-384-Digest: hoE/TUVgAnofPmM54c8VXvJkri1DNqkN5NgW3nkTHB2BbkR5TM/zhkPl
|
||||
IHiL2fde
|
||||
|
||||
Name: res/yS.png
|
||||
SHA-384-Digest: XyTbF9rGkMJGrlkRbMTYUw4jxdi0DFqQw3CQ9ji9zyMrNtAn7miVDdih
|
||||
AFye0d2z
|
||||
|
||||
Name: res/271.xml
|
||||
SHA-384-Digest: r9HBwxF42YYQaLucu9ilwJV1NXo+pVDe2NTwRZmeAvRtCjZZ4FaWeGdL
|
||||
H0pbYTVs
|
||||
|
||||
Name: res/GD.xml
|
||||
SHA-384-Digest: wO4MOGh/SINeks1VkQRPYf4u8HQj/5n8rho30ahBHiMKvDMcQHBRmhUt
|
||||
Ob7f3gqz
|
||||
|
||||
Name: res/2f.xml
|
||||
SHA-384-Digest: epyEEoOMNbpXNSjCQxyAjB5B0smUTNtX8+0fr97glP5wlCRnG5w5NJL8
|
||||
FCV7KUh2
|
||||
|
||||
Name: res/zn.png
|
||||
SHA-384-Digest: LoOYvTsK2SfJXsq5kYIEUOkuQpPZT4pVaj9xtp3ScT15d22zib7GhNzt
|
||||
vCRwRtdR
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat-resources.version
|
||||
SHA-384-Digest: eaHeL1EfjzVJf22et7imyaY2wksxjKFFqnVvKnq96leidLMUZIg+yR8I
|
||||
k7wnMpIm
|
||||
|
||||
Name: res/color/material_personalized_primary_inverse_text_disable_only.
|
||||
xml
|
||||
SHA-384-Digest: Gzv3NlUxRP0LxyFNStTyIMwk0aFgSn7CilTSRihK0SN+vK+XbrB5ZK6k
|
||||
8Ylv3uwt
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_fr.properties
|
||||
SHA-384-Digest: k7pKBttUFThviqjg9AH9Pbpe3uctVDSmATdIzSc7x6HStdzNULsjaDwe
|
||||
E4gPBCmw
|
||||
|
||||
Name: res/color/m3_icon_button_icon_color_selector.xml
|
||||
SHA-384-Digest: /IdHLQMg73o7p3TTDegeqW7cZ5cR8vOVVLjALqBBRviGEsnMCyhwJNH6
|
||||
w7Fz/TWT
|
||||
|
||||
Name: res/JT.xml
|
||||
SHA-384-Digest: sU2o43P2OF65jtPRDU+yWhhPPfLM2L/fj/+MuoMF02PNdhnqJWrHTLqr
|
||||
R5WfFHSM
|
||||
|
||||
Name: res/K5.xml
|
||||
SHA-384-Digest: drYIOc4Dh1IarwVtUPFCWq6MlyOOkF9juR49Ccv5KiS9ooFMVKlrOX1U
|
||||
PpEZ2JEC
|
||||
|
||||
Name: META-INF/version-control-info.textproto
|
||||
SHA-384-Digest: gGFOh1MU6tB9eTGE4jZBVqAFNy6FGv4HMC2TBzd3zD2h7/u8/OQba6Hp
|
||||
NzoIRdev
|
||||
|
||||
Name: res/7s.xml
|
||||
SHA-384-Digest: 1SkZFgR4Hd4l/xB4NY4AHd3iZDzKDMj9UZbmfYz0WZszz+1lGqvwVe6W
|
||||
mgP4E+fN
|
||||
|
||||
Name: res/IX.9.png
|
||||
SHA-384-Digest: doHE9wiuzOYqprBdiDFnxEz2Sbwr7amez5Ph453BA5pODIcq4w6HLCj4
|
||||
/bxOzvAQ
|
||||
|
||||
Name: res/color/m3_efab_ripple_color_selector.xml
|
||||
SHA-384-Digest: eT68LMacvXC1fj60Vj8tehhVlx7l/Usk/ffoJnO5CgvNRh6ShNllUOV2
|
||||
qsZuUUDL
|
||||
|
||||
Name: res/ha.xml
|
||||
SHA-384-Digest: 19IyIjiOD1EpyjfO+Y1hxgthY1mvMMyyjnFZC62N7WZWeDKqkq022y6n
|
||||
Egd0lEDg
|
||||
|
||||
Name: res/MD.png
|
||||
SHA-384-Digest: xXapRsGlAta1YZCxwRFqQkwPko5MZuXnZbeg7ODlRYbZaKsow/yH4dp7
|
||||
n+44SiVv
|
||||
|
||||
Name: res/LA.png
|
||||
SHA-384-Digest: XWlrxDpAS8u7Q1l1QxxAIE2wlxuuMI0fyYX6cGkyYikN8oQ8AfbZgVcX
|
||||
Q9TbaD9J
|
||||
|
||||
Name: res/gM.xml
|
||||
SHA-384-Digest: tuKEO3w2ja/9W8kMEh8cJugCaJqpUrEYuSLl5hOFfaQ4x8fVsNpR1OCp
|
||||
uvd1ubmQ
|
||||
|
||||
Name: res/Ap.xml
|
||||
SHA-384-Digest: zq6SkWRC1VN0GhrAzgube6RgbplPj9Ya8IH+Cf9L608G1Xci0Kgd+KAx
|
||||
ndJjfeSa
|
||||
|
||||
Name: javax/servlet/LocalStrings_ja.properties
|
||||
SHA-384-Digest: 0whv59La2MnhC2tszdRmkEaiAdM+8rvu9F6VEXD0Ga06TW6VExR5/aY8
|
||||
YWnNT7dJ
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_en.properties
|
||||
SHA-384-Digest: UNJ6T6tczbXhkCoG3dkevMdcLg+sp67LzXRm1UPRDh82KXm61u2riQxF
|
||||
8Jpujl8W
|
||||
|
||||
Name: res/1v.xml
|
||||
SHA-384-Digest: T1ZZhjeMmfT6X4VlqcV6qFnKVxbfJxDDLGkLkTxwiARIt1MwWxbhJRC4
|
||||
sw8l5iQV
|
||||
|
||||
Name: res/FT.xml
|
||||
SHA-384-Digest: /Tn4jkhptLDU21Sm9af5refLpcucMgf5J04NDVoJcSUz++517+qAU+mB
|
||||
yU8Q7R4D
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat.version
|
||||
SHA-384-Digest: eaHeL1EfjzVJf22et7imyaY2wksxjKFFqnVvKnq96leidLMUZIg+yR8I
|
||||
k7wnMpIm
|
||||
|
||||
Name: res/OM.xml
|
||||
SHA-384-Digest: Pk3ZZFc7vs9Fk61XaaJqB2t2NE9eh67HkVdY61Rs4DvccO4CaLqqSPj8
|
||||
OtFi3Zny
|
||||
|
||||
Name: res/color/m3_navigation_bar_ripple_color_selector.xml
|
||||
SHA-384-Digest: j3gJqwBJWKv88cbE1SvQ1RevlfZPNRcF2TtaZ0T+J1ZUj9tqQ8qBiIfz
|
||||
Rec6cSrh
|
||||
|
||||
Name: res/Ro.xml
|
||||
SHA-384-Digest: vXzH6kDbv7f8tSB9N5BkQ3Dd8SH8u/ZXL6yhyJ9zP+7OAxQ7T5b34bem
|
||||
twya4uGz
|
||||
|
||||
Name: res/color/abc_primary_text_material_dark.xml
|
||||
SHA-384-Digest: IIL1IBbOcY5V5UzxPUMpreYsOLgdSk1rG3jfQJKyk2mIgMXEAtiWZ8eB
|
||||
uHzEIEXd
|
||||
|
||||
Name: res/Vv.png
|
||||
SHA-384-Digest: 8QLkFuMKDYWz22Glwf3/2E+aqx0kl7dasq7BvizRtiw2b5UNWzgqW/zO
|
||||
eMMi6as9
|
||||
|
||||
Name: META-INF/nanohttpd/default-mimetypes.properties
|
||||
SHA-384-Digest: nD23dZkeklqjuHt5QiNIEXhqmaL+PQiIUhJ/epn+ZjxhAXoXoPZaPD8I
|
||||
xPfp/5b9
|
||||
|
||||
Name: res/vT.xml
|
||||
SHA-384-Digest: 0RY35aGEjCZJ5HPx7FZ7Z8SBAzHRobGw6bRX8tVi138eUZkT3oE5VmA8
|
||||
Nt3yMese
|
||||
|
||||
Name: res/Yt.9.png
|
||||
SHA-384-Digest: kzU9y2sfutUNRkdGSA9/zgHNuE62c9b3o46DN2rw5C6xonDzIDq0CpDP
|
||||
bzHkhkH4
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_primary_text.xml
|
||||
SHA-384-Digest: TO6QRxCe/6nvHhcsRCSkFP9gC6dRkVbCx2141h64UM/c1DB/S0jkpQhW
|
||||
svPFvYZf
|
||||
|
||||
Name: res/color-v31/m3_dynamic_primary_text_disable_only.xml
|
||||
SHA-384-Digest: orANmbwP+rU7s2LtWP28VC8CqIl0fOneFG4dlz7oCSUvW/hZba4aKpIy
|
||||
ndm9o+zV
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandlerCollection-mbea
|
||||
n.properties
|
||||
SHA-384-Digest: OGl1mLRR80KPNpLNZ3bqYNyu0I1oO4XraGM2FP26SM+CxZH26NXF+AWJ
|
||||
gnpk+eDA
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/upnp-cds-
|
||||
1.0.xsd
|
||||
SHA-384-Digest: vbtYZM5z7uQijNziwK1o1DkJZLMkMVNXzwO5TuCOy0s7yb4Y80srOKKd
|
||||
sVlSX3zP
|
||||
|
||||
Name: res/dt.xml
|
||||
SHA-384-Digest: F9XN9mEK5wNjDqp+PBbsuYKtmTJ95PdX2A53ZYzNwN6p8fS+oLq4mZY+
|
||||
5K+1HSEf
|
||||
|
||||
Name: res/f6.xml
|
||||
SHA-384-Digest: 6yggPWwwqX59t70cqYIrWl6zj6rEuhxEC/jAqrVWDwZhLb5plgwIqAHW
|
||||
2mS3G0PZ
|
||||
|
||||
Name: res/DG1.xml
|
||||
SHA-384-Digest: ezq/LvuRslx+WqdI41S3Yk7KS/oI803o0ePQnN6/FZg4/lXfbuALFtnv
|
||||
NDxQF6Fi
|
||||
|
||||
Name: res/v4.9.png
|
||||
SHA-384-Digest: 79T+Vgai5qCGcFJv1JUkpr/EkWgcrEExz0vkFuRDf89YiA+LbHz7V9Le
|
||||
IqNzJFBh
|
||||
|
||||
Name: res/j9.xml
|
||||
SHA-384-Digest: mHCm8zcVMpbqks6I1INjWs540gs3JvV6FSHQJXAapTy7oTxARJukcbxt
|
||||
YXD4AHCF
|
||||
|
||||
Name: res/hR.xml
|
||||
SHA-384-Digest: ljlc6ecB01NtKyh3tA2787k8xtGk+o0v0VEU5FKV/82H36N9avuq/fDc
|
||||
/ncO/91z
|
||||
|
||||
Name: res/X3.9.png
|
||||
SHA-384-Digest: xzLmZKP6rLKmCEFGTrym4C/8Ng+Rouj6MlL6CKhVAby8FFrt79JWZ/xg
|
||||
f0t6Y0GT
|
||||
|
||||
Name: res/yQ.xml
|
||||
SHA-384-Digest: U7MtcDWKOdwud7QPrldkJhRZVk4fwjdTl3fKXIJQwTJtWWaAYVVNXMug
|
||||
ZQAz6KSc
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.0-avt.xsd
|
||||
SHA-384-Digest: 7tHhYdaGyq5fLuFLJj3/1z/oHFiRgrd9T1tR6PPFr6wPJba9RvnnJAkl
|
||||
Yo7FocP6
|
||||
|
||||
Name: res/color-v23/abc_tint_default.xml
|
||||
SHA-384-Digest: TuBN2yq04BjMfVeUdZZ2Y46TSd55fm78LKjiUZ99FfyKklWMOkDRsByr
|
||||
pysiUGnh
|
||||
|
||||
Name: res/dO.xml
|
||||
SHA-384-Digest: 7U1TFI7WQ0QfRiZMl0dmhpK/3xSHN5LMJte05WhrVRpG33Af+aCkPMEN
|
||||
gUHT5Ss/
|
||||
|
||||
Name: res/e0.xml
|
||||
SHA-384-Digest: MxXwdYD/nzmyu+H1K1VCv3Puon0iMrdPigvP5G+kc7OWBvFxEwwSboXr
|
||||
VI/FSw+6
|
||||
|
||||
Name: res/E5.ogg
|
||||
SHA-384-Digest: pesmkgsmSvw3VnqjX7CkkiYqpqpScINItj/oQ4ECrI4ckORao+xRNGO9
|
||||
Hb1LGOb3
|
||||
|
||||
Name: res/tI.xml
|
||||
SHA-384-Digest: M9z61ZS+71HaIQESAdGSnB3OrJsQlT3FmEZvmysE66+4UKrJjCN4FMKq
|
||||
ouJvFh3W
|
||||
|
||||
Name: assets/images/ic_push.svg
|
||||
SHA-384-Digest: vTSiCvxE/OigXXlx5oa7Go1Yivk138lH3DuURD3Ioyyw6wOvFaTIKk/c
|
||||
Uo8Ev+NY
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_es.properties
|
||||
SHA-384-Digest: HYhyrC+zKUyUh1TGLwLW+liAiiBJep4UIo7OaB2klraOTxf0VEDgpX51
|
||||
JUiBR3Bw
|
||||
|
||||
Name: res/y-.xml
|
||||
SHA-384-Digest: pt/D2JIvAwGE/mcAz1TE7MrosLvJJEf2eGMOeOP3sPLEwlJabiH5/QSr
|
||||
7fHXoXdz
|
||||
|
||||
Name: res/Zu.xml
|
||||
SHA-384-Digest: 2oYDM7k0HpKBOJIYYmM553hlYdhmmdUnSt+sOJguAyycfFcvXCCjeCWE
|
||||
H+WSMO18
|
||||
|
||||
Name: res/1R.xml
|
||||
SHA-384-Digest: dbo9YreIw9FvDO+IAi7S1jIf8MNOIyRll5oZLhL17hu9+s7Mo6yp6r+S
|
||||
/nv24S6w
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground.xml
|
||||
SHA-384-Digest: 3psFY0cItHmAcHZP9BR32aNf6qfTubzXhC/8Kw0Q/J2sr8qzQD7Dl/iJ
|
||||
1XrSQalY
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHolder-mbean.properties
|
||||
SHA-384-Digest: ZDTBPn5ffe1Nig2+f01GuT9wUTAZ3dQzkDaMecbri+Hi2Uw1qu9Y61bz
|
||||
eCtqRST3
|
||||
|
||||
Name: res/NH.xml
|
||||
SHA-384-Digest: Q9MY/IubMWW2SCjzuf3ORNJ33GSJG46WgOHGRm7dKNKnWlK/Q89Vxf06
|
||||
prujjUCP
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_ripple_color.xml
|
||||
SHA-384-Digest: 51fPiBaGB7KnSWeOHoNG5cx3C5tmYQUsCHVdxPrAJgvv2qqbiS058wHJ
|
||||
L1aXwrZN
|
||||
|
||||
Name: res/Id.xml
|
||||
SHA-384-Digest: uYctzZyXBSk3xJgFY5MHVg/Q4fuf+B/merJWC/6T16T4weQ9ZdooiX1S
|
||||
k50NEReE
|
||||
|
||||
Name: res/_G.xml
|
||||
SHA-384-Digest: lsbWydKreQNE+AOITXWCCowRxWcRK9+wZo2Mw3+SCCuQQTVCaLmP/xbl
|
||||
ynVUZZFh
|
||||
|
||||
Name: res/oe.xml
|
||||
SHA-384-Digest: A7fLgYlQTa/CsYdswuhpqR6Zpboqm+XF4pI0gHodH9v0DYzUOqMHOxlk
|
||||
6uAwPKNv
|
||||
|
||||
Name: res/pF.xml
|
||||
SHA-384-Digest: 9q7+ocL+zBucqnA29irC2643jApt8NNb4Nb+8iacUy7tfdHt7aSRk6A3
|
||||
9RwJheVo
|
||||
|
||||
Name: res/Zc.xml
|
||||
SHA-384-Digest: EhOrezFJMJ6JYGOBr32Tm8JcRS12ageu8Yec0c6m/RYYavM59l0hT/fF
|
||||
Q0RM5BLx
|
||||
|
||||
Name: res/bV.xml
|
||||
SHA-384-Digest: 9VwdIpAiU2qi+wWbQe3l+wiDlUrPj+ium0yOKSMLUk3YiAxdGR06jyfd
|
||||
TL7F1RSz
|
||||
|
||||
Name: res/CK.9.png
|
||||
SHA-384-Digest: RgJYONI3xwSvgLI5NfoZOh8K6z0gG/du/2g/F9EuaJRsyWznBeWfweRY
|
||||
vJWweHLg
|
||||
|
||||
Name: res/KM.png
|
||||
SHA-384-Digest: 8PePXpJHALzLpkBJ5ltlT0cS7rq7AWQ9eIV4ENY9sRIBFHabMsKrJlqE
|
||||
0mhSvD8v
|
||||
|
||||
Name: res/3a.png
|
||||
SHA-384-Digest: BXYUW6quMcuZ7j4emaCFqTXNzVOh5ZlDHCEpA0Du7jR6sd0dqAssJePv
|
||||
ZarRo5ty
|
||||
|
||||
Name: res/kS.png
|
||||
SHA-384-Digest: bhmOg8yE/9EcycrtrEDJR3F8G5zoH0kCjDk8eSuz6v2gWFLl4LHWPz0k
|
||||
yH3Km2yK
|
||||
|
||||
Name: res/7R.png
|
||||
SHA-384-Digest: nbTnan7PqJc0qx7X0Yw1a6XUa++cAyLlcl3AQBQ4QBEyeffe6l3vBBAV
|
||||
YasoELbD
|
||||
|
||||
Name: META-INF/androidx.cursoradapter_cursoradapter.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/t6.xml
|
||||
SHA-384-Digest: Dle+AYBy66QI3rPYpySdwd6gicj369o7IxbU6rJpxMGbXgeKzWUcxGjy
|
||||
6lugNIJe
|
||||
|
||||
Name: res/HQ.png
|
||||
SHA-384-Digest: r+pLCLUIxDEdlJyqfvbw9AOfEyTuBCAZfloU2C0j0JXZr1CzKHMkcAix
|
||||
8pCn7poJ
|
||||
|
||||
Name: res/jn.xml
|
||||
SHA-384-Digest: M/uDVJIcrwUZAF8o97zOBDZwFmMnTgZJSQvvSGIq9ObziP88fMhKhgrT
|
||||
cLe4N1Bm
|
||||
|
||||
Name: res/VM.xml
|
||||
SHA-384-Digest: HG4o3ZXR5ZGdW8KWBGvGgVjCS9ofybrz4rfPJO15cRt5IAV/DHhVjCwk
|
||||
kVtMCwqH
|
||||
|
||||
Name: res/ZP.xml
|
||||
SHA-384-Digest: lg83nkFGmAorU7qPGwxJuMDzg8Xnfx6PQg/QJIA/ASu4QIrbBrZH7I9B
|
||||
/BT0I8UK
|
||||
|
||||
Name: res/IQ.xml
|
||||
SHA-384-Digest: at7S+bdv2P94uDPm24ZtiTPBQpLDenv1yV7bS2xfR2n3CQoQAEbNssqf
|
||||
6Hv36x4N
|
||||
|
||||
Name: res/Wh.png
|
||||
SHA-384-Digest: ZzG2Alp2KZKcRAudYZfmEhJZmuMIs31jitaoXR9lp2kDJSl2km/S7HW2
|
||||
y6pTwCEM
|
||||
|
||||
Name: res/color/m3_tabs_icon_color.xml
|
||||
SHA-384-Digest: 4uGZVHO0zdW75WoKB2AJc7g97k8rhq9P26bbk/ZP1+4UkqxBqziKqLy1
|
||||
3aqW2uqZ
|
||||
|
||||
Name: res/wX.xml
|
||||
SHA-384-Digest: ZOQlnNRHtdrXDp/tfxrSzIUs6jwiY8FWS6DhjuicPR/OGmJ5QdbOXdEr
|
||||
iUUO7ec2
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment.version
|
||||
SHA-384-Digest: SgEyC8oI3kP3pBB8vNbHBLZooRV7Qd6PJ7eUDbpK/nQQpgE/XPX/Qi6O
|
||||
djfAjuVq
|
||||
|
||||
Name: res/0c.png
|
||||
SHA-384-Digest: fqjDF7fozAXZ1wNF5m6Y6XeCGg0QTJVtyWnxqIYZ7qmReHBJYiuxQoF1
|
||||
ganZnaU8
|
||||
|
||||
Name: res/UH.xml
|
||||
SHA-384-Digest: Ur7VSMwsbFf/1cn+XPt9cVjhaqBs65Rz8EKVxJseZ5p1skYdSo6GYcil
|
||||
c6GAMtga
|
||||
|
||||
Name: res/Pd.xml
|
||||
SHA-384-Digest: QPC72b4phRdkAVypGjda4O4ZpyWnPBqspXenj71ETlonVqebzlx27GNJ
|
||||
ilslOq7x
|
||||
|
||||
Name: res/PQ.xml
|
||||
SHA-384-Digest: ArxN0w/SzjhsLkvN4lEwWy3ChPvYcRdlQ0bsdqKrNi9TqjaU2xe7K8ux
|
||||
Rawb7vxQ
|
||||
|
||||
Name: res/Gj.xml
|
||||
SHA-384-Digest: VzRWplErkcS4R4WNk+3QkcV63epWZdJrC+5KGDb8M0EvE8Heq8N8nJGc
|
||||
HTj2VfKi
|
||||
|
||||
Name: res/hc.xml
|
||||
SHA-384-Digest: nDsX1Zm0WuKYL6OMNLXVpug6LuWdK8HZ1aoJ+esGN8nCbIiIpsq4DAog
|
||||
7BZO7oPX
|
||||
|
||||
Name: res/iD.xml
|
||||
SHA-384-Digest: mb9/hf26oAkBKevn74P1cQgI26aea1THNlU3craKDQhxK0YaYMvyE9dF
|
||||
xtNwplHL
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite-framework.version
|
||||
SHA-384-Digest: hIAGvtefmZQC+5iwoWLsS8O4/kGacdmbLOceBNC+qlQ1u8Ze/oEJR6ZE
|
||||
tF3jNbux
|
||||
|
||||
Name: res/TB.xml
|
||||
SHA-384-Digest: qT4ZRK+o4zHpepwgRpXk9LP2FR/c9UBcZsV+vLr2/ksqNkMYf1raYHsc
|
||||
eUPq+RVQ
|
||||
|
||||
Name: javax/servlet/http/LocalStrings.properties
|
||||
SHA-384-Digest: v3Zi5/SgqtXgnHRq6hN4IFQpb2SljTKMIgPKaQtINKSo/u8uPlmMjy9m
|
||||
qmmPov9g
|
||||
|
||||
Name: res/C6.png
|
||||
SHA-384-Digest: a4fjY9tJSFgTWO3+AkgPzDqaBjsBWyYwgFMTBoccDC0VCXyogQ71DJ3/
|
||||
JYc+fod1
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral4.xml
|
||||
SHA-384-Digest: uPgUpUcA0LvqPexkGKxaJ69GcDo6e54IFUPo5uVsYpwScVwIu04s/1/2
|
||||
Uaf3wZZv
|
||||
|
||||
Name: res/mG.xml
|
||||
SHA-384-Digest: EhOrezFJMJ6JYGOBr32Tm8JcRS12ageu8Yec0c6m/RYYavM59l0hT/fF
|
||||
Q0RM5BLx
|
||||
|
||||
Name: res/GF.xml
|
||||
SHA-384-Digest: 5vtSFSA5Yb6elr7JzAbEEi2n0UwUt9N+5PQM92TXvav7dpI6WOnEEkCp
|
||||
69daLrDT
|
||||
|
||||
Name: res/5T.xml
|
||||
SHA-384-Digest: vO9lNsHjlyNJhZX083AyxVRd9iachv0M0o6+rcJu1rz0EQAqPLV6IxVh
|
||||
yhDNagh1
|
||||
|
||||
Name: res/JT1.xml
|
||||
SHA-384-Digest: FVsdgF5RESz5ZsGrKqvfrUuGoLKUSUkQIdqVX2VvL/4dYNvKtkTbxzTt
|
||||
RHEOlAlm
|
||||
|
||||
Name: res/K51.xml
|
||||
SHA-384-Digest: zP6D6gPAt8m7ZsFSuEw7t3g9Yyy/dJTZeDwxDUzcb60acF9e82km4t7N
|
||||
7UNs+Vuq
|
||||
|
||||
Name: assets/test_base_module2.mjs
|
||||
SHA-384-Digest: kpJPjK8VH5T6ehwFAQtgVBwMctt9ZPAuZAcbPGB6UkvwA/IKU1UtNYRz
|
||||
Xk1v/bF6
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_item_tint.xml
|
||||
SHA-384-Digest: qO+T1tQSYE2LEdBVxHPRFb5tjjjURqmP86Jr6icxfM2ausToH7MP4wJc
|
||||
N5i0wgBp
|
||||
|
||||
Name: res/RI.xml
|
||||
SHA-384-Digest: HMyv/VF0IyoWWCWdwaBts483rhdfbChGjMA7o/+1s3RHVWdR9Wc/LMhe
|
||||
iiMir5GX
|
||||
|
||||
Name: assets/js/jquery.min.js
|
||||
SHA-384-Digest: 1H217gwSVyLSIfaLxHbE7dRb3v4mYCKbpQvzx0cegeju1MVsGrX5xXxA
|
||||
vs/HgeFs
|
||||
|
||||
Name: res/aW.xml
|
||||
SHA-384-Digest: Svjexdh2oPS5KrAk+x6/phnAhpVklCWm5t+82ihPVPSkFzYt+LT2jeyD
|
||||
hkV0li5Q
|
||||
|
||||
Name: res/wx.png
|
||||
SHA-384-Digest: 0xyKN7xr40C14ePJ/jAQVgu10gw+ER0nxZevuPq2+dWafKLskoWH2aCB
|
||||
w76uys/P
|
||||
|
||||
Name: res/21.xml
|
||||
SHA-384-Digest: StYNefStVeHnOrSjDL7Ns21+VlyeilLJKK1g28vim870xAmJme8Aukmo
|
||||
D6/1lmXM
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version
|
||||
SHA-384-Digest: paydoQqBb47xqyFYbn0pCKy7lEvXH1LUpOSWvrco5oTPnChe8y4Heb/Z
|
||||
mCeD4wX0
|
||||
|
||||
Name: kotlin/reflect/reflect.kotlin_builtins
|
||||
SHA-384-Digest: SvHcuBU/bxDoAYpvLLu8c9iZzJ13OD8wJ+cGvz85OKA+i06EDw2GMGqX
|
||||
mVD90qZG
|
||||
|
||||
Name: res/rH.png
|
||||
SHA-384-Digest: DMWIJ2CznDu7Qk3SteQ2QilM2vbZm40u/BmkzJ24krXxkdD0EwRLiXQF
|
||||
55B304U3
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/NOTICE
|
||||
SHA-384-Digest: 2YfsuyG46Kf5Pg4EDgMB7Z+ynxfnPKHFEIX0GQgrp2SEhuYwIk7iH6Mx
|
||||
+AQd+QHc
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: bBCrHdAsTLTQzBcZwPMvclEo55v9tzLkSouJgXa7afYkJUHaoHTujiYo
|
||||
QAlNmTbG
|
||||
|
||||
Name: res/4N.png
|
||||
SHA-384-Digest: znP3h2cfB9eDaMKqpfVggBUNBte7+OgSxEuSfemizuk5KlgWYIElNua7
|
||||
Mr7e8Rm+
|
||||
|
||||
Name: res/xd.xml
|
||||
SHA-384-Digest: Ch8fPztJbjXDv5zh71x4uBgXU+07S7pFZ26rYJYeoarz4iT0vmrES8uS
|
||||
5psew8AS
|
||||
|
||||
Name: res/hu.xml
|
||||
SHA-384-Digest: 7AD7+IX3g46X1CgRjc7k+2R+uGz9NdpkCF++mBenx0byeovYA/hiT14y
|
||||
rFpvNPEb
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant98.xml
|
||||
SHA-384-Digest: /1Q02oEkKb0mJEI8EPijfCkdYzAUKm1ceBJI03+RS61aVGRkx4XGjMK0
|
||||
1d0YKoyg
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerWrapper-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: vOdadktvdqRqhR5g75zrA1n1kQOpZVFO83alN1pIU8/4UJTZ3qg2s4SD
|
||||
ewn/wFMP
|
||||
|
||||
Name: META-INF/nanohttpd/mimetypes.properties
|
||||
SHA-384-Digest: N5uqu2rdDoUb43P3sCMflvQTwtQzsdl2nASe8E5FI6QWaBwpMBvUjDFA
|
||||
3ppZI8Vx
|
||||
|
||||
Name: res/oN.png
|
||||
SHA-384-Digest: Qjm7NULoTeauHRj6u2jpI4XF5fPqZb2hhD7ZNlDONhdXmXCm4IDVRGvS
|
||||
x0RpZGQa
|
||||
|
||||
Name: res/Ix.xml
|
||||
SHA-384-Digest: wes2AfE1+asMXgWqp+/Zg5tXomA4aA2f7IBstelU1WQELej+onBAhI+3
|
||||
fhrSGYdG
|
||||
|
||||
Name: res/color/mtrl_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: 4s9ZJYnexQk0+qbz3REQrQV8ii001f7EVP/SmRohXrPWOAU1jssr9Ave
|
||||
Yv93V+wH
|
||||
|
||||
Name: res/0G.png
|
||||
SHA-384-Digest: OxzqeOsNLXiKPk2pcI34rmrsIC6u8v2nHVaw5cwEu/aS1ja6psbDotPA
|
||||
uTUHmS2S
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: pORV+f810Xo3OItxEcP43hRmEehNU1neDmjnsW99y97fd0/aRN8B5Wqw
|
||||
z0Zf/z4e
|
||||
|
||||
Name: res/c6.xml
|
||||
SHA-384-Digest: 1/paPRyiiHsOXEqnTzHjzUkAOyIpMWFVIoISzD/ooKLb16+lALdvkxJn
|
||||
jZSI3Hth
|
||||
|
||||
Name: res/color/m3_hint_foreground.xml
|
||||
SHA-384-Digest: TLIo3vzr9nFi+uJ5G3UGzv95PmGsAoFJmCussDxVnCob8E2XSJdnsWNl
|
||||
P+SGEHYB
|
||||
|
||||
Name: res/dQ.xml
|
||||
SHA-384-Digest: 8ct+k+Jh5YfRocutZiWnTDp+xaLAxCpSKnG5xSmNOQyhM3K2TQnfS/m4
|
||||
G7C4aJ+h
|
||||
|
||||
Name: res/MH.png
|
||||
SHA-384-Digest: /3TmBSzi2RL8ruLFUoUa1R7lP/vdj/T80iFjQVo2DSvMd3sWT1kYxzpe
|
||||
zxl3nENT
|
||||
|
||||
Name: resources.arsc
|
||||
SHA-384-Digest: IFAf+LlWu/Kb4//r6P+9m8y9MGXVYB4ow3ajF0GJ7No8JCi9dFcrHVHR
|
||||
w1rWycNG
|
||||
|
||||
Name: res/color/m3_selection_control_ripple_color_selector.xml
|
||||
SHA-384-Digest: csrGrC39OkK+Ft7nDGNsYU475s/goyaE+1WMnVONewmlSU0vwdtbzpZp
|
||||
0oln7tWK
|
||||
|
||||
Name: res/QZ.xml
|
||||
SHA-384-Digest: xntcofMmd+qDGmm0EZQgrBf4bInN85cQmgyxoC4R1mosZkxn7Bb54roq
|
||||
Y3kDPGw6
|
||||
|
||||
Name: res/u3.png
|
||||
SHA-384-Digest: nk4lZoWbyjz//pMVW7ipQZ4AImVUWoUBlQsjK8KKQ+h+Bn/4AftU4keV
|
||||
WiyJIO/c
|
||||
|
||||
Name: res/color/abc_tint_spinner.xml
|
||||
SHA-384-Digest: /lt7D2L0tGtxFpUbFEU8keY2secM+KIbUp+nSw/dObnsjXhMz3IBWXSN
|
||||
WdUykEKm
|
||||
|
||||
Name: res/SY.png
|
||||
SHA-384-Digest: dq4UWmjfsCFi+TWg4SW/yZjniEEeojAUdSddMT1XxM941sbS9IDvGXcq
|
||||
MK5g92W8
|
||||
|
||||
Name: res/96.png
|
||||
SHA-384-Digest: jHuJBgZ+MSJZn1juXvSUwWYd/G2VMAtRHl6pDcLmAjDg8PrYjc6Z2aq9
|
||||
PQKKXaUE
|
||||
|
||||
Name: res/DG.xml
|
||||
SHA-384-Digest: Ix7FR17XC3Tdkass8PclhaXLxoAtB1pLDxZgi3JRUhEkb8eEjgxeECD4
|
||||
3GZFfpLR
|
||||
|
||||
Name: res/V3.xml
|
||||
SHA-384-Digest: zaVKhftS0bFQmVr9cvQeiuVRVORxyy8oYcGl1LxXj+qm+FYRqhL0n7Nn
|
||||
sRQd5gJ8
|
||||
|
||||
Name: res/U-.9.png
|
||||
SHA-384-Digest: hlNrbYgebC2pTjH2IZrqn1DTuAkhjHB2nLr+BJc4bCf4WWj8CbNwauXp
|
||||
/2/9BVFW
|
||||
|
||||
Name: res/Gc.png
|
||||
SHA-384-Digest: JujN02JdbdnMTe8J4WoGaHV9pgX19V49s9m6XbNiaZJO7yqcdqiEJJ8W
|
||||
r/bWB+vb
|
||||
|
||||
Name: res/6X.png
|
||||
SHA-384-Digest: h+/gXL3gJcIyS16DZQVW9x74mhIrreueV5wsm69WGoOW+Fm2g5J7B1M/
|
||||
Hz9ZgEQy
|
||||
|
||||
Name: res/DL.9.png
|
||||
SHA-384-Digest: 9A35CpQtXADkrqPBZdsbY6bDq8jEgneG9RwMiuFfCBGfzRUWftfcD/pf
|
||||
Flwe9EQv
|
||||
|
||||
Name: res/color/m3_button_outline_color_selector.xml
|
||||
SHA-384-Digest: dj+Xetk8hrt6Sk7vvCdQFc4tmyiSR6YaeZ76Szm05nX08gWZOiHFrgZE
|
||||
v48eZNL5
|
||||
|
||||
Name: res/rp.xml
|
||||
SHA-384-Digest: 3F8HRFOszXQI3TWrdPv5wH4fYXLuMz1hrWeAif3wyMBd51DuBd4323Re
|
||||
QbX98AvN
|
||||
|
||||
Name: res/tk.xml
|
||||
SHA-384-Digest: T7vht1DqWpR7QY/Qlt+WUr0VmPWP/68h6pdlzT3J9dzLPgrOITHSU8bW
|
||||
alkpcPvq
|
||||
|
||||
Name: res/v-.xml
|
||||
SHA-384-Digest: 84czgnn6tKfOddlZkCKBh3HzOCuzOc9qNjEzSgMCmss5LrM+bqqMYx2t
|
||||
FQQ6ky80
|
||||
|
||||
Name: res/Xx.xml
|
||||
SHA-384-Digest: mXCq3s51/ODXxzq/o2mxD/Ty+xN6bjsmT9Fdz78zPqmEfwKiSXYSH3v6
|
||||
B6EbslCh
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es3.glsl
|
||||
SHA-384-Digest: k/PqmBVvhE9twSv1DjHUckCMS4H3fIb8TCCqjomTMcGUJpuag7KIa2Zk
|
||||
O/xmyXy9
|
||||
|
||||
Name: res/Sr.xml
|
||||
SHA-384-Digest: /YSUHrjVC6WfhT34Q/XcTb6VeOyl6EI/Ex5ov4BLg5wyXjXiyf6chJ7s
|
||||
SGE45PuO
|
||||
|
||||
Name: res/9z.xml
|
||||
SHA-384-Digest: PPXdQpg6eL2DFENVtvCyTHbwOqXQv9LcZ8du/hzhpGBkzmztC5PflCwD
|
||||
zjNARbFB
|
||||
|
||||
Name: res/zr.png
|
||||
SHA-384-Digest: n04rh6Zn+VAb5TZh9BTjqh8AyaydGlq2owhIhrDru353HMPVSUXt+cbc
|
||||
pPqHQzZ7
|
||||
|
||||
Name: res/l3.xml
|
||||
SHA-384-Digest: tnV0YzqqQwdzJvY0tmST09Hkq/VGAQqWN1amkOJ56FEg0pUUFOJOKLd1
|
||||
Xvk4BQXW
|
||||
|
||||
Name: res/color/abc_search_url_text.xml
|
||||
SHA-384-Digest: BD602017vILgbGqItW+PrIIhGuBx2qALu8hCx3+hZ2PZtM0jvo96Fh2H
|
||||
kSKioBFH
|
||||
|
||||
Name: res/lc.png
|
||||
SHA-384-Digest: ef8vKgCPVt279q6rQ7CEfLJCWoyHAjA4IZ/k1VS2kh968QW7jdgDnCzz
|
||||
RUx/bBPO
|
||||
|
||||
Name: res/Yy.png
|
||||
SHA-384-Digest: S3x1pjdkgjoqB/GyDYZv1ddpYNqCQpnmWF7Am2jns57jg9XdgKTzfBqW
|
||||
ewR3zMFp
|
||||
|
||||
Name: res/zR.xml
|
||||
SHA-384-Digest: e4prutPwerCkjPhfYc5WbSAC8WmP84urK4cDDnJpnGmgMDMdvtJbMQ5i
|
||||
P08oTbnk
|
||||
|
||||
Name: res/Mp.xml
|
||||
SHA-384-Digest: dWnpG/yiaFh9H+xRv1oBSVWfU3chprrc4fiXqA6xXppudOMM7R6QZM+3
|
||||
eDX3je+Z
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler
|
||||
SHA-384-Digest: 0j/xSukYae23QZglmIbEaIYDJhjb1Wup2XnoqgJ4y7UwsydB5c0PB9hd
|
||||
yT9nwAyj
|
||||
|
||||
Name: res/xU.xml
|
||||
SHA-384-Digest: 2gMqnjCTA+lFtZV9VkAynbEoqbdodd9JQphZB75mI6Yg1SnTNsMxDKgv
|
||||
WLyWr8lx
|
||||
|
||||
Name: res/SH.xml
|
||||
SHA-384-Digest: NhayUlUVTKJsnmSt7VoIRRn8PPG+5aMY9BwEPT4WiPpmWEbje/KJBNX+
|
||||
B2YhphZ8
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages_de.properties
|
||||
SHA-384-Digest: DvKUx2fznT6HHp2tT7ons8xUSonqgGSlgAGK5gLnm7yhViWXXme8Z7Ti
|
||||
d+f2xzyy
|
||||
|
||||
Name: res/pF1.xml
|
||||
SHA-384-Digest: CXrW5aQUN3uz63ghaCJHY8spUBJ3Vg+IHM+m9YbaImtxjItAZQbAQ35/
|
||||
ukCdnb+U
|
||||
|
||||
Name: res/ph.png
|
||||
SHA-384-Digest: s1HZgpF0frUyXb5hdhxFe55/FlQavWXBEGbB+HjiIFUQK4uP8fsufWeP
|
||||
Tw5h9odO
|
||||
|
||||
Name: res/_y.xml
|
||||
SHA-384-Digest: 7PPodzHGikaDJpiPQ47uozRqPFOTJ1PqoERBbo30PtugdXKAF531kMnh
|
||||
pyoy48K5
|
||||
|
||||
Name: res/Sr1.xml
|
||||
SHA-384-Digest: uoMl0WcMd6ozCtOszjYU23Xfj5+SpVs5PW3FCftNmfTRB9oSOgynIoNT
|
||||
nQnYYqGJ
|
||||
|
||||
Name: res/vg.xml
|
||||
SHA-384-Digest: UagfrwkxLcjEt0iADFDHdNrhN5S2LLoGD8oUYJi3OMCeRBk6F28cVqmn
|
||||
eA+jeoDC
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: 6Fu3uQbvaS0yaGRyrfbwet16Jm4dR5tMIDx2sg0hCUOS4fjpGCZyBwv6
|
||||
t9X5M54P
|
||||
|
||||
Name: res/WB.png
|
||||
SHA-384-Digest: 7jSsPzLKNFNMQgegSv6jawOCTmNV+7aqHL/QksIpsgeG35L2JFb3AxXu
|
||||
yv5AafWq
|
||||
|
||||
Name: res/eT.9.png
|
||||
SHA-384-Digest: Fng/GAqtcF66YBczIbRx0WhxhcSTbbtQuqL8VY1BVZt/9I6vaCSPFwqx
|
||||
ddsLKQjF
|
||||
|
||||
Name: res/vZ.xml
|
||||
SHA-384-Digest: IWueyC0ihbyC1wosp6APZRfLGqV3KByYRHtdQTeSdb9rtAFxBSoCwvS5
|
||||
6CG2CM4v
|
||||
|
||||
Name: res/M7.xml
|
||||
SHA-384-Digest: Rk573PDwO+I9HasC8vN/H/uPbSoLxv5yzAsueBkMeileVoEX+LdPbVBY
|
||||
26U7Hd67
|
||||
|
||||
Name: res/d9.png
|
||||
SHA-384-Digest: PrBRAeeDb7ZGUKKJLTgLmLPNHT5FP7g05lYnXgLX+ioYBb8NNra3tyM+
|
||||
hetY+LJY
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactor
|
||||
y
|
||||
SHA-384-Digest: xSSEPWjh7L6lB3iSzSxlYgOX67JS6gNSt1ePv17NmMZterMimX5+It5L
|
||||
mQTMLHVc
|
||||
|
||||
Name: res/z-.9.png
|
||||
SHA-384-Digest: zkFhTjE4E+1LCsh0fvNNms30N9Nfjhuv0HLFXlB6H5r4kn21I7JoQTm1
|
||||
/seFV8OJ
|
||||
|
||||
Name: res/color/mtrl_tabs_colored_ripple_color.xml
|
||||
SHA-384-Digest: jJeH6LXNLqENkr/SBbacOYHncMjvPX/5w6VRZBxCNrlX6pyKOqwGrgfh
|
||||
JPVUqb7q
|
||||
|
||||
Name: kotlin/collections/collections.kotlin_builtins
|
||||
SHA-384-Digest: tJbtXDbzgHqEd/bQDlfqgj2SYPoeqACMYrd+E9KzhatQufNc7bAZUEna
|
||||
q3FyU20u
|
||||
|
||||
Name: org/seamless/schemas/xml.xsd
|
||||
SHA-384-Digest: FxYZFS/hR9sgbPXe+4Eui4FlrX9rW+QXAtNgVuci1vxaCs0kE6tA5xwY
|
||||
uiYHITjV
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_android.version
|
||||
SHA-384-Digest: WiL9gsoIjr0zczM6o/MWDl4bC9gpKlyXdruiClOZ4naudqPgSkfvMEIp
|
||||
CXbD7y72
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: L7auAoVosVBKrSyL2JLLB2s0uDg5Abtxjicoe2BJHq70kp6q0uuhhUd0
|
||||
/JATFBIa
|
||||
|
||||
Name: res/2O.xml
|
||||
SHA-384-Digest: 7QSiyCOXwWlbYEUrz+sCjByHyFxTeahXpTo3Nd45Q3N5SvaYVrGSRH2e
|
||||
FE9HbBQ5
|
||||
|
||||
Name: res/color/m3_timepicker_display_text_color.xml
|
||||
SHA-384-Digest: F+BEm/k3xsaJsiaAliFy4fS3v4RUFRd6BnX11hg7eGqRU7DfTVJ6VNXh
|
||||
qHwoEKU/
|
||||
|
||||
Name: res/XY.xml
|
||||
SHA-384-Digest: OvdWgCKwAiGpX8ITMt1aNgcKdCBzojny611P3hET+1XiVqOlP3BmqFh2
|
||||
iCv3DLcr
|
||||
|
||||
Name: res/Su.9.png
|
||||
SHA-384-Digest: OEDDyUtbs6Nc43Zd64URaWsK/y9YMdxbR3kUPPQUkhHX+O6Z6s/lpiTa
|
||||
dRvTl10Z
|
||||
|
||||
Name: res/oY.xml
|
||||
SHA-384-Digest: JYIBowuA5M7ylCdbUGVCYDP1FshsY3fLPmQZPzri+4J0NhfdY0mTmXL9
|
||||
1LVrfe1z
|
||||
|
||||
Name: res/eD.png
|
||||
SHA-384-Digest: SaAuxJTOrCnsYgPLabohjzv2L+YdnCCEfZF7e0u35Z3U6kXEclJOV26p
|
||||
phFtAffQ
|
||||
|
||||
Name: res/pY.png
|
||||
SHA-384-Digest: O8oAwxDymw/cFIYoflpBQINcCPHD3HUYrW62FlN06I3KdT4DFDv0Ph/A
|
||||
ujDprQ1V
|
||||
|
||||
Name: res/color/m3_simple_item_ripple_color.xml
|
||||
SHA-384-Digest: l1VEE/fU6XnJlHnU/MNuIro45Bx6c+/vKJAvX9/jNSI8YKZzxAL29gBX
|
||||
+0fokarN
|
||||
|
||||
Name: res/UE.9.png
|
||||
SHA-384-Digest: rtZcfa4QLx+PaXmiTAj2ImIAUrAShE08pV5bnqGSMRgWgICRcxn1O6GF
|
||||
PsIQ8iCY
|
||||
|
||||
Name: res/9P.xml
|
||||
SHA-384-Digest: StRXb273fFWwTzQFw4bcAVr0XfnzF9YNDfdUjtUVjMPlp2iFnGTbdRx2
|
||||
g9GcaFtp
|
||||
|
||||
Name: res/aJ.xml
|
||||
SHA-384-Digest: uK6DQYMPHp59AVyAJ+Xca/2VVDpZJX19kPxsiOe1GPdExVRDOCUCzWFv
|
||||
bty3YJfS
|
||||
|
||||
Name: res/OA.xml
|
||||
SHA-384-Digest: 6I5TE50SLP8xZ9O/EOhIz4ssDAwUwJUEUt1aQXdIUi8d/l1oUA6dHzfi
|
||||
onoz4c23
|
||||
|
||||
Name: res/_M.xml
|
||||
SHA-384-Digest: zplsnr0vHBYtl/FQyqgIAN5RmPxovEhLzfk8c+zuQ6eZoTbPlZhVNww3
|
||||
DtR13Bnp
|
||||
|
||||
Name: res/4u.xml
|
||||
SHA-384-Digest: s/eeUBlXOOZnoGS06CT150pU95dZUkBoStjo2JG8NOJQXto8RdhDauZb
|
||||
37+aXgja
|
||||
|
||||
Name: res/G2.xml
|
||||
SHA-384-Digest: 157D0+Igldvzy4QvmDkdJoe1w/+T1rlrEWMJ8hLhowjUbAD5PEUs7yEV
|
||||
pY7osiSr
|
||||
|
||||
Name: res/pU.xml
|
||||
SHA-384-Digest: R/4UcR/9IN9qwVeXi7K/vjIVHULRS94pfV654dS0ympysKgFfC2+JSkF
|
||||
gzvqePkI
|
||||
|
||||
Name: res/q6.xml
|
||||
SHA-384-Digest: /cISK1PIv9rHAnr5sbsz5bYoQOksS8vcC/8czaAbCEHQ11iMRJQX9II0
|
||||
Q+0Ob2Ph
|
||||
|
||||
Name: lib/arm64-v8a/libswscale.so
|
||||
SHA-384-Digest: hLVPCYdZuq47V/+zUazp18e7s3Ri0CShgcUTDo232XzHT2RA9E4zRNPe
|
||||
DU4TzBa+
|
||||
|
||||
Name: res/0E.xml
|
||||
SHA-384-Digest: FFGicYxeNWhx0+xhQ7ih3Bx4Vp2D9x4sUTmEooj2UVE5eXAgk7wO7Fjm
|
||||
HHr0o/XQ
|
||||
|
||||
Name: res/fM.9.png
|
||||
SHA-384-Digest: DMkB4xejzz3bGZHVYzERvHoywPXfd6rVkalCBSPYf4qXh97Kgvu/uW6T
|
||||
DMVgrP1c
|
||||
|
||||
Name: res/A2.xml
|
||||
SHA-384-Digest: zozjrCwJ6u1Ij5P0iKCmxBOy6G/X76UYzP1TO9zoQHcARasvbKnsgVT9
|
||||
mD6ABdml
|
||||
|
||||
Name: org/seamless/schemas/xhtml1-strict.xsd
|
||||
SHA-384-Digest: 7+iP7JT0e0TBDrM7XZ9lizHzDH2vs6W+CWLMs+0fbsHVMICKrz/LLTfp
|
||||
FyNeCeLB
|
||||
|
||||
Name: res/_h.xml
|
||||
SHA-384-Digest: YCE/VtqlVjgGUaGKlABBVm5M/EVzuF+B15ncdlRHww/0rvyMDzYVDX89
|
||||
uzZh5WCn
|
||||
|
||||
Name: res/color/m3_navigation_item_ripple_color.xml
|
||||
SHA-384-Digest: YVd0gpIjol6nV0Np2fCw6c22RLmJw5eABY3IEOO/B03CblwSwrFvguLs
|
||||
2Z81yiO4
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text.xml
|
||||
SHA-384-Digest: xUAb2QS0DkWDbGm/vKbeg0OqwtcpyXZE15c76hYX0181huhZu7xGHaAy
|
||||
ZiIEcTM/
|
||||
|
||||
Name: res/hX.xml
|
||||
SHA-384-Digest: JkgjrIVZO9OvxcfOXSLAMefrf6uNlbQlJj7S16ubhy0jt9KDADAmtT71
|
||||
jDmbsMqo
|
||||
|
||||
Name: assets/js/lib/cat.js
|
||||
SHA-384-Digest: xpLD4C6rahgehwup3ZvqdWaaP5OjEMCBts4rtAP4ncgyjeOygF7uwtDa
|
||||
GOzLQBdF
|
||||
|
||||
Name: META-INF/androidx.viewpager2_viewpager2.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/BN.png
|
||||
SHA-384-Digest: tFQaCkXdbSYFDoMVQX/i/QIPs0UdENtJwwKNbIz4P67BJeq5cs0fBxlH
|
||||
5Kr/gPVX
|
||||
|
||||
Name: res/Y-.xml
|
||||
SHA-384-Digest: b45Z+WZtAI9kwGyBZCBfcdHiE9tTGeEQKy8IWEhFToqu/IdsrlihoIZc
|
||||
zxRvMn5W
|
||||
|
||||
Name: res/color/m3_card_foreground_color.xml
|
||||
SHA-384-Digest: g++vDdn7lK2QnSfYy/BOLep2ST1HxZBGk0FPx0Vh5xRprAHsoxQna2E/
|
||||
gpFFXnBA
|
||||
|
||||
Name: res/fR.png
|
||||
SHA-384-Digest: +jjrVEqVhoaSRmfFr/lnEBZOPcGCt+13ZxA0hmCZVaHb2pWKrTuqGrx4
|
||||
0qqV7Cle
|
||||
|
||||
Name: res/Fq.xml
|
||||
SHA-384-Digest: AlKrIulo58Z57BQdZaCO8ly4orGH+Qnj9g3UJBoFK0SsHI1e3FPKHhNG
|
||||
TB4On8Pm
|
||||
|
||||
Name: res/GR.xml
|
||||
SHA-384-Digest: H7MmL3qqBHv95GCYSfGUEqArEuk2YXMp2SRzwMdjt4zdMSXGPjp+RFIg
|
||||
TDueaqhY
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant96.xml
|
||||
SHA-384-Digest: sYFqAaOrqg8W9CmBNz0HccxzdEiPjHDoB6exuzxIoBK9Aq1u29WY0bG3
|
||||
2LWkrDXe
|
||||
|
||||
Name: res/9n.9.png
|
||||
SHA-384-Digest: qY9IhvO/WQFpyf/886AHNpdIQAtVJTfmZtp52Iem45pAxr3UTirjRmvI
|
||||
cVMLUacx
|
||||
|
||||
Name: res/UE.xml
|
||||
SHA-384-Digest: yS5XbfKzXzHUzefeXrw55mRoxQnDfUL0m4FhCThb30EB4a3ClNpkvNkp
|
||||
E8Yh6nGi
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHandler-mbean.properties
|
||||
SHA-384-Digest: d7oM9zbtR0tF6g03M5cKjcHLvYzAL1+8GqjDXs1KmSy84j/oeB4H7Z6G
|
||||
YEGw3kKB
|
||||
|
||||
Name: res/cr.xml
|
||||
SHA-384-Digest: AicVMJDM7V9ehJ+T8Ys1wtOLwiBu6DQksH3E9Ph2jJM3Nllm1fWqaq7a
|
||||
y2yd0ceQ
|
||||
|
||||
Name: res/dS.xml
|
||||
SHA-384-Digest: tkWrSjjdasHlFcIcZehtt9IQlYSohahhHAsEE2Ww8IgalP2vAri4cCbk
|
||||
TWiyJH74
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text.xml
|
||||
SHA-384-Digest: X4nhM4KJFZ2PcikJK+krESccYp6Kt03MwF/VbaAiKnQKgjwlvdNLTtzH
|
||||
4lAlDjJ3
|
||||
|
||||
Name: META-INF/androidx.transition_transition.version
|
||||
SHA-384-Digest: dWwedGvhEw8ghxjll5AOUtPdfFQcYce9hFUHcj63aAr76xV82vJn3sLm
|
||||
jJrBXhA6
|
||||
|
||||
Name: res/By.xml
|
||||
SHA-384-Digest: bo/7yK53jiJNlFE1/DP6Gf310mo+LE2ChQNkq0OgCgrbi4LMBA9DF+tP
|
||||
7uh+m/Ae
|
||||
|
||||
Name: res/color/m3_radiobutton_button_tint.xml
|
||||
SHA-384-Digest: q9lmjZUKhF4HJJZzHmEJ0ILwDcRKHqL1i+qP6t6/o5Qgs0ONYNBXEj6U
|
||||
kCJ4TfTK
|
||||
|
||||
Name: res/JJ.9.png
|
||||
SHA-384-Digest: ei2t9upv29AdXePkYTk8YIrRMmf+OOaPJMi1wQ1jdP9CxHRLEWPGD969
|
||||
2MnQyTGP
|
||||
|
||||
Name: res/lN.xml
|
||||
SHA-384-Digest: d4RtPmKf6rNI3eI8tfSIY35zGAYjSLiu4twfoN/0IQBDOo9dfAreUhG8
|
||||
lv5Af4Z0
|
||||
|
||||
Name: res/23.png
|
||||
SHA-384-Digest: O6FvMtAEysBdxIByijyyjEFApYrFj920WiZ+XdVxxWSxopR2aVEWGbXw
|
||||
pw912eF+
|
||||
|
||||
Name: res/TG.xml
|
||||
SHA-384-Digest: YZ5l4kY2+vLA4VGgKmY82qMd6KUZVyBzRImRBIHsP/A66wQkOV77tbpB
|
||||
4aMCZwnS
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant17.xml
|
||||
SHA-384-Digest: y57oA7x4I20wZIpIU/XsLCNiC8DOte3Vr7yj3JwV3dCF6b6NV5uKlJUN
|
||||
WJ6c9k4+
|
||||
|
||||
Name: res/u01.xml
|
||||
SHA-384-Digest: ElzU1vZ52WV5PF5C55C61N3PL9hY7AGY+vRMV/LN1XtaRgQ1FubWYWYG
|
||||
y1i04Seq
|
||||
|
||||
Name: res/ua.png
|
||||
SHA-384-Digest: 0J1qaEoGWuDO+RXEvcZBPd/4PfzwYWlR8LiLhk73A2nt7iH75mL02GtY
|
||||
YqcmVkW3
|
||||
|
||||
Name: res/dt.png
|
||||
SHA-384-Digest: 1RlEClNS3+WEsYvW7KNpewvKntZynEzYjqCNFl9X8PhYuXOHH9rnT+os
|
||||
aJhpMzsc
|
||||
|
||||
Name: res/color/m3_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: SSg5RttNrxpHQ8YAf/GFiec4x4oeEGjAN2CbbvRcPFPDKLzrKy/b0iKx
|
||||
QUKblkNM
|
||||
|
||||
Name: res/zE.png
|
||||
SHA-384-Digest: FEvlnQD0t/SdhU0EE0nVV088nMEN7oDheGieLNr5H/dljpa2I1kKwQgC
|
||||
9GmNL9nf
|
||||
|
||||
Name: res/BJ.xml
|
||||
SHA-384-Digest: B+hTVsAe9EZnSfO1zOAqCqgV5fXr7YUuCSdGT8yScsrgo7oqyIO6PQTA
|
||||
l6KKOx84
|
||||
|
||||
Name: res/c4.xml
|
||||
SHA-384-Digest: LcFsY3sWrskIg/lREszJIFaYDsl8Ui2t7PNp6P58LVLQg6Wn2AgOQi5X
|
||||
6qbFlNxk
|
||||
|
||||
Name: res/Ff.png
|
||||
SHA-384-Digest: MmaFD17dtpaPXkJT/pCsDcJsK/FN0qwoenyTImnqk6/R6oa3AhOF2zaA
|
||||
5WEf5lwH
|
||||
|
||||
Name: res/4L.xml
|
||||
SHA-384-Digest: Cmsb/R7kzb/9gnO1Xt4auvmTuWC2NYiMcBJjEc8Mzp6erZt+59C+UyCc
|
||||
C1SyV2He
|
||||
|
||||
Name: res/Ga.png
|
||||
SHA-384-Digest: TapI0UJoAnH7Pxj0POZB/ggn8UW2LfxBz1CmKcX3bvjjQ1Uap8RFLRfu
|
||||
Hb30c/jK
|
||||
|
||||
Name: res/Zg.xml
|
||||
SHA-384-Digest: 662Qb3RyUfrmb53drp2IBJ+I2aLl8JQ3vZFYMhAVmKUyZPQiT7NbOxTT
|
||||
SgAOkyuE
|
||||
|
||||
Name: META-INF/androidx.documentfile_documentfile.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/6t.png
|
||||
SHA-384-Digest: M84CWmDYaSHJk2sb23H+dk7BOi0h7PDNOS0QXAIGSMZazVQHWhHyczeA
|
||||
YcVWdXjV
|
||||
|
||||
Name: res/jS1.9.png
|
||||
SHA-384-Digest: nCGpqni5PhvfilXFqTcZFqMHuecWmpOBBxo9qT33++to8FC7lHET8mme
|
||||
CRhYvSF+
|
||||
|
||||
Name: res/color/m3_checkbox_button_icon_tint.xml
|
||||
SHA-384-Digest: cIFP39G49StsBbTMAcXAtcQnkgJRXg6ngJG1fg+UszVnxP24OLW+06w2
|
||||
VYO0805i
|
||||
|
||||
Name: res/color/m3_switch_track_tint.xml
|
||||
SHA-384-Digest: jAEcIvZ8WCKGK237jkwHr1nbNbDXn+5lW4NMv0/YTHTeDW4yACTFrP2t
|
||||
VFnXCTnu
|
||||
|
||||
Name: res/6Z.png
|
||||
SHA-384-Digest: MWWLloI8+mHABZrHDt0PsfwDCaSeiq65QyZsfCjHfQ7cmRGPlAIXB1kI
|
||||
4HE6Y/cn
|
||||
|
||||
Name: res/77.xml
|
||||
SHA-384-Digest: vet9yEjnxlq4ZREgE17v1AhtkC/Yo01r8uGdn6IYKEF7XXH3pEbiPWf5
|
||||
9mANMCac
|
||||
|
||||
Name: res/color/mtrl_switch_track_tint.xml
|
||||
SHA-384-Digest: stjR7K1MA7de7c876hNOnh4KdmQTJ4SYQAenyrXHDBNluIU3YoLw8cNe
|
||||
GSaIlyoS
|
||||
|
||||
Name: res/NN1.xml
|
||||
SHA-384-Digest: qiofZS4JclIjm5OmR/Y5r/NVbP69ov4y013r/yencfLmsHhsNyY7vd1K
|
||||
aQGNpO57
|
||||
|
||||
Name: res/color-v23/abc_color_highlight_material.xml
|
||||
SHA-384-Digest: nhR8+6QO6Kn6IH3tM/v652SoKit+3BAo7wl4ZV8G4omZ8HoWi6Zzz/rV
|
||||
owa6mRzd
|
||||
|
||||
Name: res/color/material_timepicker_button_background.xml
|
||||
SHA-384-Digest: r+o0vZSJ6iPhdnLXtRuqlxhMGYY4BQoPC2Ah6Ajk/miJQthsRJsT7kp+
|
||||
dGusR2iv
|
||||
|
||||
Name: res/Pa.9.png
|
||||
SHA-384-Digest: dAp/FlkgnD482z++wKKW/6YbuQWZdOCxOwIk7YajYEX/5ekg/UG/eY4s
|
||||
SbBpIJqF
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2-views-helper.version
|
||||
SHA-384-Digest: dtT+kMaBn7mC0I5Zw2DO5bf//DqPWE7jsnjxasKo+dXF1wFxba3xTVXy
|
||||
iU0DEX70
|
||||
|
||||
Name: META-INF/androidx.recyclerview_recyclerview.version
|
||||
SHA-384-Digest: dtT+kMaBn7mC0I5Zw2DO5bf//DqPWE7jsnjxasKo+dXF1wFxba3xTVXy
|
||||
iU0DEX70
|
||||
|
||||
Name: res/X4.png
|
||||
SHA-384-Digest: gchrxn2h3BRgegzUIOqt5OVdsUhagjHPwM1nkQLgCjvRLGJlbvQRubX+
|
||||
fEUuyeRO
|
||||
|
||||
Name: res/Th.png
|
||||
SHA-384-Digest: fON1RmNqXUwLQYSuQQxrYQORlt7aEI0lM0ZKoj2OskMLJO4pxjRv+ASY
|
||||
zC/1sO4m
|
||||
|
||||
Name: res/GC.xml
|
||||
SHA-384-Digest: tdoU97l53185qOwAMcwEAqMXvkc10TSLmTQ/w0Jg5zf92y2KyaSFPNeh
|
||||
oGZkL7fa
|
||||
|
||||
Name: res/Qu.xml
|
||||
SHA-384-Digest: F97PwotwQWnOWQYkMXQ1RDDzT+zOJ03jpNAkLOOYVUJjto592IyPx73d
|
||||
okEA7oal
|
||||
|
||||
Name: res/jd.png
|
||||
SHA-384-Digest: MwQOsfph1zOxhThFYjg4qj9HrOK/Ihjm/clUUDHh1q6OqnYkYwwj/PWs
|
||||
sbHCKidS
|
||||
|
||||
Name: META-INF/androidx.tracing_tracing.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/06.xml
|
||||
SHA-384-Digest: YYGNWCrjRZ8sRFnQfq1fxwq7Ab2DRqkQ0RdGGclvjDLh12GwY93ubAnA
|
||||
P+l4Hvb4
|
||||
|
||||
Name: res/g-.xml
|
||||
SHA-384-Digest: D18xqYCfGgXWiRpF32nsLgVFvRGC4daWCjEz/OYMj1Ws318586qwP+vv
|
||||
K48x0XgF
|
||||
|
||||
Name: res/2w.xml
|
||||
SHA-384-Digest: 6RLkpEv8nCvSp7SWZMSxzYwVK+du4pd1W97oFLI4w6DQ3Msi9VIThvbP
|
||||
otD96tXh
|
||||
|
||||
Name: res/49.xml
|
||||
SHA-384-Digest: 2S2rSgomeIbRoz2BSvExkyArJj6IA5d+moRp0E6BZe9/d0Z5H6LFkW1t
|
||||
Q3kKf1kC
|
||||
|
||||
Name: res/bb.xml
|
||||
SHA-384-Digest: OChVqCXBh9lszIRngFSTms3fIzkvP+QtZFGh6J8W6sYgVkaouqP7fNZ3
|
||||
Lg7gKq3e
|
||||
|
||||
Name: res/Pg.9.png
|
||||
SHA-384-Digest: hc0NpBVLZiGL2F64y/Hru8vVQCmzG3xnj+D2C6svKxw5nIFKcFU1cUq0
|
||||
epLIG1ea
|
||||
|
||||
Name: res/vX.xml
|
||||
SHA-384-Digest: XA+251TrsP1BCsS+5CEhSho7Vjiw7cUqq0CjIcES7qTVeSswzNLYsnPs
|
||||
dWg3bcKF
|
||||
|
||||
Name: res/w9.xml
|
||||
SHA-384-Digest: pESIaOGKXaNBA4KCdCzoe7pjgPjbfSFFolNMU7rYspgObs2T7f5YrOLO
|
||||
Rpd0IZQn
|
||||
|
||||
Name: META-INF/androidx.startup_startup-runtime.version
|
||||
SHA-384-Digest: ITmiWuAF+c+Pj4UAzIIJAQIn3XFvV1dCIdAHYoSmOJvKd6lWT5XSw1mI
|
||||
zzCA0Q64
|
||||
|
||||
Name: assets/css/ui.css
|
||||
SHA-384-Digest: UmMe0Qo5t0+TkgW9+zmFL5HRQLE8at/LRwjJ47x2QzxoOaWuc5oUVk3e
|
||||
muM3RUWU
|
||||
|
||||
Name: res/PN.xml
|
||||
SHA-384-Digest: nfUlgdQl8Czd9n04jgcFy6Pd/yo/i0T9zUICg9N1BahOkwkkHxc27Fa3
|
||||
Z/kAeDrd
|
||||
|
||||
Name: res/YW.xml
|
||||
SHA-384-Digest: OC8A+M2FQOn8L141aokUK5fWTziIlxjpyMCEJbmv0qgbB8Bv4FZSdeLn
|
||||
3jjmX4gn
|
||||
|
||||
Name: res/sO.xml
|
||||
SHA-384-Digest: JmPt0PNvloFsmHZmE+CYuaJvl73I5zb96VOGRSWeUskFJiDmB5OqOYdY
|
||||
2NDcxuWG
|
||||
|
||||
Name: res/RA.png
|
||||
SHA-384-Digest: z4SlUfwjecJbBBDD7dq86/m/DTpnfpmijoOu5m302hshYxWTd30mdLvz
|
||||
UPQHD1wK
|
||||
|
||||
Name: res/ii.png
|
||||
SHA-384-Digest: ZdMWwCBr65jSVvTuU7/tshC/VYOC41WjLFrUuOuDdN1GdS8McxOuF5fk
|
||||
Hrz8GCS0
|
||||
|
||||
Name: res/LT.xml
|
||||
SHA-384-Digest: pX4NdvOwcig10llXsx3bpu9MuuACaHdsQlqajDTjl8YkNzJvLLFkCLpj
|
||||
d18lSkt4
|
||||
|
||||
Name: res/M5.xml
|
||||
SHA-384-Digest: 4d7Ea5l0l+ZPq7Y600+yH2unvjwnjuzodLNRzj9RxyKJ2QNjaoXwrmK9
|
||||
cBmEj0E4
|
||||
|
||||
Name: res/HQ.xml
|
||||
SHA-384-Digest: 2Rmb2gXqRyDgl9byuvpIAaP9V5Bz/H79iqnePLUil6OC9xDPY5bYMzm0
|
||||
EueTERYM
|
||||
|
||||
Name: res/tL.xml
|
||||
SHA-384-Digest: xOsRMYRC77kYzukz4oEBd95avuVQ8SGP6S4mlxAxMDBNTDQx36NsEQgi
|
||||
40ce2m+W
|
||||
|
||||
Name: org/fourthline/cling/support/renderingcontrol/metadata-1.0-rcs.xsd
|
||||
SHA-384-Digest: gGvjNfvyqiWjvxMC/XwCUM1Xu0W4v97oKz/BfSTejY5wXW6+q3dPorGU
|
||||
Qe+bfElJ
|
||||
|
||||
Name: res/a9.xml
|
||||
SHA-384-Digest: BtkyktbfH4Xzi4BO1XIFpIfeM5Bcuvx+imhvarj/2qke2JoWi8Vl5rtM
|
||||
7abnffQf
|
||||
|
||||
Name: res/color/m3_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: gXAEr8HsSsOMUK9WRDT00zEn/b7E1+D8yiFrJCD0+xukwe3st1LBR7Xk
|
||||
gUrwyIAo
|
||||
|
||||
Name: res/Lo.xml
|
||||
SHA-384-Digest: 1S4XSbRm/1qhkswzpfplJh5b9tbXrRHTx0xkna/lRWN4pQRAtyWyjmQ6
|
||||
kvicTASH
|
||||
|
||||
Name: res/eo.png
|
||||
SHA-384-Digest: 8ioR9Xc7V5ALhxWsATM23+Yu+zIzFazK1UCHFJzEY4UbTuazl2dWXzYs
|
||||
bgmTyXPj
|
||||
|
||||
Name: res/1c.png
|
||||
SHA-384-Digest: w9W4/fc/36IDLln5jrflut1f+WcNqXdCbMRf4F3ce3TcgHndD+hzTtb/
|
||||
jJlwzN8Y
|
||||
|
||||
Name: res/6G.png
|
||||
SHA-384-Digest: cyIEAqU6xummUg+uCOd+aBNr6AS3No2BbK0E8lTxZyRNF/EKfMg0LCFZ
|
||||
il/0rcVL
|
||||
|
||||
Name: res/LI.xml
|
||||
SHA-384-Digest: mw57q61bY7WJABffTru26yGi0hkc/s3EcnILR6xCqiUtip0jHXdaoyFq
|
||||
frvIO1rN
|
||||
|
||||
Name: res/color/m3_chip_stroke_color.xml
|
||||
SHA-384-Digest: vwh/Of3pEttoRqaJnnjPC4Iz1FCvm/iKodJ8+wXEtINg/uczbTk810of
|
||||
z98VWPyZ
|
||||
|
||||
Name: org/seamless/swing/logging/img/viewtext.png
|
||||
SHA-384-Digest: ML/+IPPw5ArW9euVRk/fCVwhav8V8XtDiuLnXzj7O7eVe5lIUQc4CITG
|
||||
VfYoa5ti
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant4.xml
|
||||
SHA-384-Digest: fCIVS/4alcX6NdwJk5k4ALTHz3u/XBUv5eVANDNGomZFX89sV09609oJ
|
||||
w4ZdEr5W
|
||||
|
||||
Name: res/yT.xml
|
||||
SHA-384-Digest: 770DQ4qXR/vUjBvdSxsYO70twT+7v3aJhajI7mmJe+E/lRYOJFyuk1xm
|
||||
rHLbCco5
|
||||
|
||||
Name: res/z5.xml
|
||||
SHA-384-Digest: v8AYKEQIZwxldzTPi47cxgzc1FyK11PbC1B/bKxtRIMtl19yonJWn9Ra
|
||||
5dzKQ9d3
|
||||
|
||||
Name: res/LX.png
|
||||
SHA-384-Digest: QS5NhWA0sy7Gxpuz9tL6TTiT0gwQQ2X7T4gEpbMxQ9XaBy5WbEFAkLtY
|
||||
cmy0t9cJ
|
||||
|
||||
Name: res/cV.xml
|
||||
SHA-384-Digest: xLIdrUt2UqNz1OHjIE6YyaA9HSGxsWoKgQ+Nx5QXVThRxv0Y6GkNMPej
|
||||
IwJEP4nk
|
||||
|
||||
Name: res/2w1.xml
|
||||
SHA-384-Digest: GFJDS+Chl+xho4AZA/OouCL7Yy0LBU1W1tZRUislA42IA6sqOtUwSOC9
|
||||
mPNQfLbr
|
||||
|
||||
Name: res/color/m3_navigation_item_background_color.xml
|
||||
SHA-384-Digest: VbTcpXlmzWXPbyI0DlbCVCzNcHwwbDMDbVU2KNEGyDmnmtwGvs9AANO8
|
||||
gbsahhkz
|
||||
|
||||
Name: res/T4.xml
|
||||
SHA-384-Digest: 1/w8Td0sI1x+5CbM6N2N3fEETZCgU4TeZG9+2BWT3Yd4JNWT5dW024lB
|
||||
sX9D+hzi
|
||||
|
||||
Name: res/-8.xml
|
||||
SHA-384-Digest: YLpKAeHNrBpQfCiOay7t96fz1hI0xy7+B7cC1YNQi4hEwkgVBabjD9Vx
|
||||
lwZJqLA1
|
||||
|
||||
Name: res/color/group.xml
|
||||
SHA-384-Digest: 9kQOGfzvak2H5fOFsJ5vvYzmL9MPdH4mSaVEt5I/kVWnuJtYfkNlk3ZT
|
||||
YT6HrchO
|
||||
|
||||
Name: res/FO.xml
|
||||
SHA-384-Digest: spBoG38cpkaZG86gKeofQ1Gu3CnJ2mJP0XF6xmYEOvN615fgiTdR+4Tl
|
||||
mRlFwKE/
|
||||
|
||||
Name: res/G0.xml
|
||||
SHA-384-Digest: JwhlYWrYXej5xJzS6v9LE0h3WWmGsJVaWNZz8YwADpZUdPc8kI6QW3AB
|
||||
rAaZYeZ9
|
||||
|
||||
Name: res/Yj.xml
|
||||
SHA-384-Digest: hhFOIF8t7uyTc2j8rWZ/LF4RqcczQ96zKK5x2eZXiLcmJKP7cZf+Fq3Y
|
||||
WgOfEnlm
|
||||
|
||||
Name: res/color/mtrl_on_surface_ripple_color.xml
|
||||
SHA-384-Digest: Bt//xtfFy31ZJiJw3jR1gKv6xDRagoT/zYY4A5KKsDY5IoyjWZ2/b6yh
|
||||
3deiHJEZ
|
||||
|
||||
Name: kotlin/annotation/annotation.kotlin_builtins
|
||||
SHA-384-Digest: XZyHISmUiAqIovmipIY+z1tjhg/T0SVIq54KTq/IRwZX/7uXtDSdVjKz
|
||||
dEk6ks95
|
||||
|
||||
Name: res/iv.xml
|
||||
SHA-384-Digest: QlIjmLlxmW7e4jNO2N6WACDuHITv/EPCjlBpZrz942wIWp5O8wrtiTe3
|
||||
RO7QD1fy
|
||||
|
||||
Name: res/k8.xml
|
||||
SHA-384-Digest: Av2GI7tPM+aH8+EmovqAemTK4BFWZNcyRq08NYBaotuDVQeqEohODx+r
|
||||
azUbDS2o
|
||||
|
||||
Name: res/color/m3_timepicker_display_ripple_color.xml
|
||||
SHA-384-Digest: MKdfszcTmon4ssfEFEyyfing2Ob9vBwEl78uPrYub0fG4pSKQI39QiHg
|
||||
wrYwCkZJ
|
||||
|
||||
Name: res/color/m3_dark_highlighted_text.xml
|
||||
SHA-384-Digest: BjVtlmbDIQXNVBO8WGQ/sBdgqPC0+BXEYlxtiaXqy2nNBfcSzMpXgCHZ
|
||||
cpaPHeUv
|
||||
|
||||
Name: res/wX.png
|
||||
SHA-384-Digest: F+MuunS5IR+p3FVO+5DsfNm5TroREqQ6uG/QstAfsCWXyFcw+axVB8U5
|
||||
Ft7qcuqP
|
||||
|
||||
Name: res/dW.png
|
||||
SHA-384-Digest: +lwxAUYfra71yJ8Ce0gbick4E5NkHTDYUl7d68hyoZ9P15MP7a4vK4/J
|
||||
SAnjQfdl
|
||||
|
||||
Name: res/NB.xml
|
||||
SHA-384-Digest: l9Wj1LmDoCvlcwjmrEv05RzK/VbNe2lqaHWX69L06mTwJ3HV4cbtkEgv
|
||||
im9cBnvW
|
||||
|
||||
Name: res/Ao.png
|
||||
SHA-384-Digest: kIe//JqBVvLrBAHE/RB9RKCdcwYC1l11Wki2fgDmgcB3DZxdfCsRBvXy
|
||||
bX4/+r0H
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version
|
||||
SHA-384-Digest: 9hzn8ktC2/lvE+T8yjBMZ6IgDGezETQciFc46t7rvGaeXOy6QJDexdkU
|
||||
N1w18cW3
|
||||
|
||||
Name: res/KH.9.png
|
||||
SHA-384-Digest: pHQ53glPsOjfRub3o3O2wYYZMvWgEydxLjquLwNd9nXZBkYqhdZOA3Zs
|
||||
HhU44Crz
|
||||
|
||||
Name: res/b-.xml
|
||||
SHA-384-Digest: bWMQQOgNsgXR2q2exT92ui5gJvH9OlRfpNKFItdMglgwKehRnhzq856G
|
||||
+NxpBjch
|
||||
|
||||
Name: res/iR.9.png
|
||||
SHA-384-Digest: 4mtcDRT0zqOT66v5NEDO+KdqGdQR4CSobrZqi9wZU8UQEdq2h9FxzzvF
|
||||
PQ+XOG2c
|
||||
|
||||
Name: res/OC.png
|
||||
SHA-384-Digest: HbsbVdJWNIbmLrAMn9ZB+0rPI9vM/H4MEA++Gi9NSwTqQMyr0/j/5/kQ
|
||||
0kPUQGrk
|
||||
|
||||
Name: res/f0.xml
|
||||
SHA-384-Digest: aNkKz6dHB5RwzupsXzwjjGb8/Nl2hZbxFsCM/M24yxz5D+iTxkGkoK1f
|
||||
5p0mtMjv
|
||||
|
||||
Name: res/FS.png
|
||||
SHA-384-Digest: OUtZWY1OxvAZ6KFQKWD9I/VxTVM2BiSozAwlrdEWfZyBZDRPPcxYQL7J
|
||||
yN8NtWCj
|
||||
|
||||
Name: res/l9.png
|
||||
SHA-384-Digest: AUpkNwcTpDB0pLFzTzoMJxUvI7w1RPkBJl1oCv9gY/Jz9sXs3o5sndDe
|
||||
msrD3uIA
|
||||
|
||||
Name: res/6p.xml
|
||||
SHA-384-Digest: v9Xcd7JAjvULTaUTNf5c/UKZBlnGOSTWxFOCbBIGW3Qb1+TCR9uTr46t
|
||||
e7ZCjpV3
|
||||
|
||||
Name: res/7Q.xml
|
||||
SHA-384-Digest: N/CsayMd38IZr67AL2VeCWMVnH30Ea/umWP1SiJn1F9IAZR/WIRdl/Iy
|
||||
IkabFEHF
|
||||
|
||||
Name: res/A4.xml
|
||||
SHA-384-Digest: 7DS7D4TEDqYQymPpKAltK6h3TdwSN7vNB7nzQvC8K0hMu+rEb3VOerNT
|
||||
HrEgBKob
|
||||
|
||||
Name: res/DV.xml
|
||||
SHA-384-Digest: 6hO2K20RA6sFC8Q0r3kBmzZNKomtmxTeLW4QzFBSUY6Zc41Q62Vzeyvr
|
||||
6wr4s7KJ
|
||||
|
||||
Name: res/zc.xml
|
||||
SHA-384-Digest: ShA0fJg/Ji35gj/3hkcXSBvZ34TJ8WlwOqOq7yjtzWniqlqMSsVQnCTX
|
||||
Mrjne1eW
|
||||
|
||||
Name: res/p01.xml
|
||||
SHA-384-Digest: U22lqmcDkxK/aAhnomkE2AiqvDX/1PDiNKtdN0FbFlbRfr73xfnHyMVq
|
||||
8pEoCYUX
|
||||
|
||||
Name: res/B5.png
|
||||
SHA-384-Digest: +bw2sNvxZ+diftj9RlPaLhbt7KLjZ+9pXC3/NADV/1ODs68Y0vsqB6II
|
||||
ukv2eM9I
|
||||
|
||||
Name: res/Tj.9.png
|
||||
SHA-384-Digest: wsNnM5I+mZcd/hjnOW7WnGg33MbG97VLGDQZ20NAVFU0m8Pg6kuzMZI5
|
||||
6Md8YxPk
|
||||
|
||||
Name: res/color/m3_timepicker_display_background_color.xml
|
||||
SHA-384-Digest: gmYYWqmSZkmoIq+8mK3seHElpc/N/lj5a6jXuHDLTERNVw0UIrXSG6xk
|
||||
YqHwEiRg
|
||||
|
||||
Name: res/ZZ.xml
|
||||
SHA-384-Digest: h2SM9kubUfolX0zRQRE4RpWVsYFXvk4qHN2ckxidu7ghfedLaeJE76gx
|
||||
7/wP/x+X
|
||||
|
||||
Name: res/lP.png
|
||||
SHA-384-Digest: vznK6MlmTgjxcINelh5zFs6zqcPwCUuFoLIfzKe/h+T868fZ/RBgrjRQ
|
||||
pNcU//IX
|
||||
|
||||
Name: res/hu.png
|
||||
SHA-384-Digest: XV4MLgGaYSIu0Qz+R27NTedZdbWYbhx9zi689jxwY5BUmRroHQP+WJj0
|
||||
vwBnwdKJ
|
||||
|
||||
Name: res/tV.png
|
||||
SHA-384-Digest: eWGrTI1GyexdfEgas/1eLnbi8Z+XNMtQcQbOqPrWS/EoTJsC3T2UTU2L
|
||||
jFj0/h3G
|
||||
|
||||
Name: res/eZ.xml
|
||||
SHA-384-Digest: iUwHBKFY737HIYrCYvSm2AxJ05uccit8Fw0SzeocDpd8w/IJdAkrxIc7
|
||||
OwQhCxEn
|
||||
|
||||
Name: res/VW.png
|
||||
SHA-384-Digest: L8uKgWzyVF5UGDNNA/sHlc5Ay1r3x+yoQT1Tj0sJ5w/9pUzL7V87XipD
|
||||
kPlwUZlY
|
||||
|
||||
Name: res/Mp.png
|
||||
SHA-384-Digest: TKRC25HZdEf924pkTo0hglViLTAOZoctLXQUk+K+GYJlsEjcbhmO0PRy
|
||||
qacMQ2k/
|
||||
|
||||
Name: res/cA.xml
|
||||
SHA-384-Digest: /T5aOMLdteODUAOdt3xO1BcwzZSwU58rgUOeYqnn2d6sBVDT6fsjx2J9
|
||||
sfMWO0t0
|
||||
|
||||
Name: META-INF/androidx/annotation/annotation/LICENSE.txt
|
||||
SHA-384-Digest: SS7625cNsh5VzhuqEjVcgZjBQsIthBX1srfNVFSvaVKkDBfXx8GFQoGX
|
||||
soOOD9z0
|
||||
|
||||
Name: res/9a.xml
|
||||
SHA-384-Digest: WqWKuhvnbBcJY7aixSheNo3wfqy83qYEzGIzZYWpu3dOPBHqQw6PLLw2
|
||||
8P0V+7Mu
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant94.xml
|
||||
SHA-384-Digest: ixVlRMOPh2xsCV07QASItXyxb4ks5yXm4CpJ6h2eIJGwOi/p6rYS13ku
|
||||
tdUiHc2O
|
||||
|
||||
Name: res/color/mtrl_switch_track_decoration_tint.xml
|
||||
SHA-384-Digest: 1Yjjpmo4TMEiPbliosHvRuo5f1tXFtrEQWMHSkfprv3nRUT6aeNmczYi
|
||||
9ZwF7PZl
|
||||
|
||||
Name: res/Tm.xml
|
||||
SHA-384-Digest: PAfYHNi/22oQVpFj/HBVZWHhXihGYmY7wirKuAF9Ntt/TaJKh70zQoO1
|
||||
ZTnx97U7
|
||||
|
||||
Name: res/rp.png
|
||||
SHA-384-Digest: ++s9OfQLxCfmj/6JW1VGvaDMi5Y32CsiKPrekXlBOTJe8ZsxGBqxlpVw
|
||||
EHVNIcXj
|
||||
|
||||
Name: res/jB.xml
|
||||
SHA-384-Digest: XyU8ZMfIMZW0U6k/dgERymM62PVNk7YUNcMFFEiYCjZHs+mZoxBTriaw
|
||||
nAuPCShA
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz
|
||||
SHA-384-Digest: rpBWd1vTeNi3xeRnpCM4n1GSiT50T01rwJwHKNNhX1fF6Wr9eFo/LaTO
|
||||
oDGJu7O9
|
||||
|
||||
Name: res/0k.xml
|
||||
SHA-384-Digest: pe1iOw67jlhBXBjBroO8NT5ahzrIOF9v5QOSXTKXb71wRvfWxfjArqbo
|
||||
ocic9IIT
|
||||
|
||||
Name: res/3A.xml
|
||||
SHA-384-Digest: 4Ck2sEZZWR3HNVl6YWq2adeZRNeSJDlULaOKP74T/TA+rYxopSxuPcBs
|
||||
uWf4/SZS
|
||||
|
||||
Name: assets/favicon.ico
|
||||
SHA-384-Digest: xMByfva4S/BaKuS+IoGmYDkEB1dT0pW80c81hCs0qWV+LlqAY5pPHa6x
|
||||
26kOuANH
|
||||
|
||||
Name: res/56.xml
|
||||
SHA-384-Digest: aiUV66RF+3I2z8lySBPW4ZW+1+dbF64gvn0PtC7u2ffoqxetsYwx+XXW
|
||||
HLMd+8gw
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: THStCi2fBFPiPiBq6fU7gi9DKVjkGaRyWeqDTpvl7uRvlZ/2YyFgzohK
|
||||
9nwp8Zam
|
||||
|
||||
Name: res/Ml.xml
|
||||
SHA-384-Digest: HT6D3RDfgwZYi2apG4vdLBxdgIWCPRCTk8ofuVfPQIGgZy7YHFfuih9X
|
||||
+KXUeiWH
|
||||
|
||||
Name: res/NM.xml
|
||||
SHA-384-Digest: +kMUu56UHtP50iIVccJkIoZVtKJCUh3CtojzNoZA0oq3ATOSQqvc8wKz
|
||||
rvnC7ZMY
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/AbstractConnector-mbean.properties
|
||||
SHA-384-Digest: VL85MMaFxR1L+07cTaUEPXwCUtPlssMeR6ErqOrPe6ZHysrT6ow8bu6n
|
||||
/Zj9OcJT
|
||||
|
||||
Name: res/bX.9.png
|
||||
SHA-384-Digest: m9r7I0o2l7c545Z8CUY+zg46ARq4t3Aq9WvGL2G3a8dKzEpPrh2s1XUb
|
||||
nYvqhLWR
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text_inverse.xml
|
||||
SHA-384-Digest: C28J8+a4l8o6W9S05kKh02wkFWfnoCf0DeMyJcavvHBQg9JvLqTa+GF1
|
||||
Mosf8aoP
|
||||
|
||||
Name: res/0V.xml
|
||||
SHA-384-Digest: PAyo6asKyww/IC9alWi2fLnCaa6Q3MB4ZbBLR8Eewq8BlsKncM3o+Af/
|
||||
RmBExN6d
|
||||
|
||||
Name: res/J71.xml
|
||||
SHA-384-Digest: Q0qs8UfE4ikcHQc3xHx9m/cLDL7SRsmn5lnKsQNtZTAj+raU065n6hS/
|
||||
wmPFwwyo
|
||||
|
||||
Name: res/zR.png
|
||||
SHA-384-Digest: Bn1+mO7yw3L/fopLvsFzeyxzFM2MIYgQDJGm3oQWWC6w0oNuR/Pr9Azr
|
||||
zmShxDwn
|
||||
|
||||
Name: res/tG.png
|
||||
SHA-384-Digest: BI+txq8ktpbtFhQ2GCSd3LBLMRAGu/qxGcYeaipMuIKlOkFJurwEqK+C
|
||||
6hvvjqJ2
|
||||
|
||||
Name: res/dj.xml
|
||||
SHA-384-Digest: uoLwuyBPw23Zw73fQ8Q0UiTKp1xH1yILtjeGKZHYRxpvIZhY1RzrzwYZ
|
||||
sMGEEXT5
|
||||
|
||||
Name: res/eK.xml
|
||||
SHA-384-Digest: 2wkZQfzxSwnpZdn/XGpye6VSaPwUslFoCCpLMCiReXulzhZyPIVM9KdG
|
||||
dUPXxtZt
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_internal_es2.gls
|
||||
l
|
||||
SHA-384-Digest: dtludXok2W/Hw+fnd5R58pu+dqdgMkcsKhFZOnQKGqxyx2pKbGrnXT+q
|
||||
gJOVa7o2
|
||||
|
||||
Name: res/color/m3_chip_background_color.xml
|
||||
SHA-384-Digest: YZAGSUzWnZHPS/BPIsHNua+QWrVvWTw7OPmtpetd8pMZcRQ/X2s/yqhf
|
||||
Bb6rY9rp
|
||||
|
||||
Name: res/color/mtrl_choice_chip_ripple_color.xml
|
||||
SHA-384-Digest: vtQ+aMxHGqPLmIVF12z5n20KZqS6DhuQYJWKhFMzAJ1wvdxSxtNfUHKd
|
||||
/ssoeTEp
|
||||
|
||||
Name: res/9z.png
|
||||
SHA-384-Digest: 0L44wweRKhmuyoeq8CABTd6CacvEbVztt/vdBz97aJPu6WkDnT6G2Rhc
|
||||
bFQMUaMg
|
||||
|
||||
Name: res/Ma.9.png
|
||||
SHA-384-Digest: VU5xX3jIN+eU2BIAecXbhP33ppMikY9F5nkPrREKHp9AQo2Tf/BCrv2L
|
||||
cjXteSNJ
|
||||
|
||||
Name: res/UR.png
|
||||
SHA-384-Digest: 6vAYw7KaFGEYB18vX/Bk7W56Oa370EHTBZfMWYOEN/ZEIz4v3/wfWPGX
|
||||
eX5spCO5
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_light.xml
|
||||
SHA-384-Digest: kU9JRj/jJ2BvcphnzBZtsCbYpJnLQLwZVPzSLrDo1GX3PQFDoqtMPU2O
|
||||
wndOSlHJ
|
||||
|
||||
Name: res/color/m3_slider_active_track_color.xml
|
||||
SHA-384-Digest: BlobBkkbJ7M9eEmDFjhmo7IYH9keEDCAMrFc2bQgT0qa8ZmZF+QKkgjZ
|
||||
LFYDyIn1
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/reflect-config.json
|
||||
SHA-384-Digest: 4UJPL6+US147r8N0KssUKyE0COUVMRkogTGYoRXC5wccXw0KP+OfJhZA
|
||||
I/lj7xA5
|
||||
|
||||
Name: res/6_.xml
|
||||
SHA-384-Digest: eZyX1IIUvJQUbkrxf/Wi+egMy/eNz/Ls/1zEplx3loActVVcdma7KGCn
|
||||
sW+12f5o
|
||||
|
||||
Name: res/_y.png
|
||||
SHA-384-Digest: 3szr5oFV8IeC6ekbSWuGJ/Ky8BtIrzFGcVnkhn9kMEhs3D0E6QQ96S8Q
|
||||
Od2uJFgj
|
||||
|
||||
Name: res/WK.xml
|
||||
SHA-384-Digest: yetDbIcPC74JHb4eBH0rkXhTrDYl+NUTtRAGoUknNiB0+Kiiyge3JMtN
|
||||
pDnAojDM
|
||||
|
||||
Name: res/_Q.xml
|
||||
SHA-384-Digest: EXZ4DJSZddp8GSZGFghemGrP1mYy9pLoxvoAOJbF4UG7uy5pR738DpCL
|
||||
6yCXnMMa
|
||||
|
||||
Name: classes5.dex
|
||||
SHA-384-Digest: YspVPNj8iza2d3yhpC1fSGD4y2d22uq7ILww9yRSJA/8d33NN0m2bOME
|
||||
7XEq/ZsB
|
||||
|
||||
Name: res/color/material_personalized_primary_text_disable_only.xml
|
||||
SHA-384-Digest: w8KeFUGLZSVEy4hE4vSUlvNaom47BiS6xeXNT8SFP9onUr77sSmMl8bs
|
||||
xrB3hRDY
|
||||
|
||||
Name: res/hh.9.png
|
||||
SHA-384-Digest: eXnKgcsBtt0o59q+bL2QY1OHtTLkLxwZviIAuSXyoAwCdJeH0XX7Vsh3
|
||||
7/+TSTEw
|
||||
|
||||
Name: res/fv.xml
|
||||
SHA-384-Digest: hPsrQCkf7m+79vPB7qPSwVWQsWflSPRlWYhd5IlkMVCLYjsAHoS9iS6X
|
||||
HqoeYR+U
|
||||
|
||||
Name: res/jQ.xml
|
||||
SHA-384-Digest: /r0U3rsg4tDulr4hfSQrPU8QIetDdGex3c0o/+jXkpqzHtHNZZVjFWvr
|
||||
+4/tt4io
|
||||
|
||||
Name: res/d_.png
|
||||
SHA-384-Digest: nDmQzLeR9O/S/jPu2wKc63iDX9FnGsz/d73xNQpUox0z7uzdm1Drs5WX
|
||||
R8UmoVlS
|
||||
|
||||
Name: res/qv.xml
|
||||
SHA-384-Digest: N9lwkJjHapZ61iALAwsNJTWLUMaXmbBMN+uqwRHzfQtPWebv06qzbopX
|
||||
cPf9nd7k
|
||||
|
||||
Name: res/rW.xml
|
||||
SHA-384-Digest: CrZdfP232WzqvtKjqkjJWzebb5GDq0f9u7hrYNJ2QrkHesZ11ze4AE4b
|
||||
tbFpL6Av
|
||||
|
||||
Name: javax/servlet/LocalStrings_fr.properties
|
||||
SHA-384-Digest: 24IaPuPt9VZGclBsTrt4cMuVfBL5eg4RntZMl/Lhp3MBbXS2SPe3Vn2i
|
||||
lXBrHd8r
|
||||
|
||||
Name: res/yV.xml
|
||||
SHA-384-Digest: OE94SOzuwg3EBgpxtUKaHM4+U3DE3KrYs8q3VQJwAkcr10Dx/nGd9dC2
|
||||
shFxJcYj
|
||||
|
||||
Name: META-INF/androidx.drawerlayout_drawerlayout.version
|
||||
SHA-384-Digest: ITmiWuAF+c+Pj4UAzIIJAQIn3XFvV1dCIdAHYoSmOJvKd6lWT5XSw1mI
|
||||
zzCA0Q64
|
||||
|
||||
Name: res/xQ.xml
|
||||
SHA-384-Digest: 3TUDmZsLXMj7RRzY6oSWC7cUF/eptafLQNocffRE26iTgUyLfpAwXJxv
|
||||
lMZxPne4
|
||||
|
||||
Name: res/Ox.xml
|
||||
SHA-384-Digest: z4kiaD34jNnH1/bQjrcP0/JUp8U6sRoYFcYpTGFzmEqkhUe8v2Z4ZR3Y
|
||||
IaHb2fEJ
|
||||
|
||||
Name: res/fz.png
|
||||
SHA-384-Digest: PyvyvI+9xLfjdzWfJEWVzoA6uJdXuONCohmfsmnU61t7FE+eDVoMEvIK
|
||||
BNy84d8g
|
||||
|
||||
Name: res/2y.png
|
||||
SHA-384-Digest: mtBBh2hrnoAYjzVQlEKHpQpwNovieObL0Ca3o7ALWh4vMeMm/FCI2m53
|
||||
1PcHadcz
|
||||
|
||||
Name: res/3Z.png
|
||||
SHA-384-Digest: 5gTAzGv28wNcYGJE+Zto9cRiePS9nC52EHAUpe/rB+gn2+rFGDdRjUpo
|
||||
dNAiFtY8
|
||||
|
||||
Name: res/xH.png
|
||||
SHA-384-Digest: 3PYkHnc62hVzOsM7Rf5cIh+WdJ/d3AZcFzUbnuo7DdhfGKwxAU3FAP2w
|
||||
ABWVWoc7
|
||||
|
||||
Name: res/_u.xml
|
||||
SHA-384-Digest: g9X5IlUci/Fd3ZB06JgrIVo1xJPwnaTg4pSvNubVDqZbKppLP7go8SNd
|
||||
B2uD9r10
|
||||
|
||||
Name: res/a7.xml
|
||||
SHA-384-Digest: 9JTYwvAcuPO0FG7FSoIaaUTeBWftv/UBDqh4rO5Zwfi9F4NlCIeGTsk2
|
||||
UDDnkSyb
|
||||
|
||||
Name: META-INF/versions/15/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: kA5UWTKxwj5eBUpT3CSRAvcGwkdM+dG855kywwUZpmXyaVZsaJBRKJpk
|
||||
dU/k4GVS
|
||||
|
||||
Name: res/Lq.png
|
||||
SHA-384-Digest: V3GWnfnLZf9LNDch9gJzr+d0mJQWefBoWE5YFEnooLjsdsdP84SEJT19
|
||||
Xs58rXSG
|
||||
|
||||
Name: res/N3.png
|
||||
SHA-384-Digest: denpgRQktH8DWSmz32XGwdi8Djt+dQSQjKGzkw/r7pKK1z3Puk+IbaX6
|
||||
PbtQPt/r
|
||||
|
||||
Name: res/ZE.xml
|
||||
SHA-384-Digest: edmchZ91NqqMcy6fXRANL8jcNIK60354eglS5XjRU4BS6ZdlLgoF/4a7
|
||||
+kn6wH90
|
||||
|
||||
Name: res/dY.png
|
||||
SHA-384-Digest: ScUT37ov7znEq4nFQSLcg3e+mckZjqObq49xYlrXCFYjLBgJaqeVlJkl
|
||||
f2I+kMJB
|
||||
|
||||
Name: res/Oi.xml
|
||||
SHA-384-Digest: s1XWv+1YZS3Ob0BHunLoKtSOT/wejtGPY834tmaegXdQeSZLXoleKaa5
|
||||
0yAh0wlF
|
||||
|
||||
Name: res/YD.png
|
||||
SHA-384-Digest: 6/b1pOnM5TsmZQ1MBcorb1VyHq/l8q23mym5thNUmkHKMNpYgEVvDwpc
|
||||
hKLG6mSB
|
||||
|
||||
Name: res/color/m3_default_color_secondary_text.xml
|
||||
SHA-384-Digest: IttvdJHwGwqeWogsROD7EaDVrbUSmjJljlKYNhARlanLlwQKN+fr2pmF
|
||||
SkDLg+jb
|
||||
|
||||
Name: res/te.png
|
||||
SHA-384-Digest: MXvS5f20WE/LirhgaaQ12gWcyuXn1EhGcQ4/iV+QtfeTvhv+aX78jMWI
|
||||
GLr5ci1b
|
||||
|
||||
Name: res/9T2.xml
|
||||
SHA-384-Digest: jZBU3hMLIgA6N6cDKT9LOlolM0GrfC2Udtu0scC2EJGfjrg3R08mH358
|
||||
Uj2UT+pq
|
||||
|
||||
Name: lib/arm64-v8a/libmedia3ext.so
|
||||
SHA-384-Digest: RltHLY9mDNgBJjpN45cBeY2daDOdi29oY2yrVIbtpTjpo2DFgyruGydp
|
||||
H0cwj+1Z
|
||||
|
||||
Name: res/NW.png
|
||||
SHA-384-Digest: W1T5ULQRWGH9RETOUfi5DJz746EzJ5y/EB32R9YakH26gTBfqiK30FM5
|
||||
ti+Vzhsm
|
||||
|
||||
Name: res/pu.png
|
||||
SHA-384-Digest: a0elcJFBLcc6cVz6OcekUxqh38y9Ld4dpDnLkDmkEGs360ARabbqGWYU
|
||||
ixIAhTRG
|
||||
|
||||
Name: assets/images/ic_setting.svg
|
||||
SHA-384-Digest: HQnDJzxSZGRalxfvb2zjqhORdqN+68wg/iMK6AP/1s2PSFhBP5GED+7c
|
||||
kVQVTcnD
|
||||
|
||||
Name: res/Ep.png
|
||||
SHA-384-Digest: JTmUuMK51FgBKmHUxxYywowL5WaNAcI7CrQK2PbLUkEyUUR+on9X7YY2
|
||||
rAou6csy
|
||||
|
||||
Name: res/vu.png
|
||||
SHA-384-Digest: /qj1WwRvCwd9adnkR6qph9ScDmC7ORq8EERbnyb2LfBcj64hurBG0EZJ
|
||||
1vtzQ0DH
|
||||
|
||||
Name: res/x7.png
|
||||
SHA-384-Digest: BptDn7ZqkZ5yD5AeDifBvxZlj7aUY44+kekmeKt5FXjsd3Tsr8Bs2QOU
|
||||
20qugGOw
|
||||
|
||||
Name: res/QN1.xml
|
||||
SHA-384-Digest: YYzXztm7vpc02LaHBHtLIpsghbKCVd3Uz+MNL46+x+kVXRnrLrtSR2UF
|
||||
SK8D9tLX
|
||||
|
||||
Name: res/eM.xml
|
||||
SHA-384-Digest: Q/5BMvJaU1y5hOe2ALECWyHtJY11TfgwdBHqbkEhwuTKwvKD+redkjZ6
|
||||
bC9T6YVN
|
||||
|
||||
Name: res/f_.xml
|
||||
SHA-384-Digest: h3Q3g9gx3fnzJydSGMt0d3FzqU/rERQpkcUJR+87ep2XssbLMNVJvOAa
|
||||
hp3e1Rb3
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_zh_CN.properties
|
||||
SHA-384-Digest: 0F50qwdm8H6b+bExwqCPVZduhRbw4asvzEyxUeMgPkiExoqg6HV3TH5A
|
||||
kvXCoox7
|
||||
|
||||
Name: res/kz.xml
|
||||
SHA-384-Digest: APkfPDGwiSskvN+V64f1NWJmx08Jf4/mkG1jzln64v8+UY21KksNVSmc
|
||||
Gov1UMjr
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground_inverse.xml
|
||||
SHA-384-Digest: HCbMtCSaYpcliYpdjfbAikMpZY2iohIYabr0qMY0RSOdHw5O+upd6+2C
|
||||
MP00vu9V
|
||||
|
||||
Name: res/4H.xml
|
||||
SHA-384-Digest: zDyLOzxm13M8k6jvkPjXozpQbwRo3e1p25ghy7T+DnzfZXhZ7HZNLvqn
|
||||
9ie2hV5A
|
||||
|
||||
Name: res/nX.xml
|
||||
SHA-384-Digest: LgSFR0Vn60Uz9F7QCLqqLsfzlO5Vu+i4b9eL4+cWGeYYQvOn5K1HtDoI
|
||||
15G9R6AS
|
||||
|
||||
Name: res/9p.xml
|
||||
SHA-384-Digest: RACxylC8oQ1xCF1Zc6BIhaF6fGDnOEl3zO4JuEVnlWTBAJDDk00nn5OA
|
||||
OGcKfak7
|
||||
|
||||
Name: res/vL.9.png
|
||||
SHA-384-Digest: KIHp3PZzTcgn8RgLXtpFhM0REWWwltS6GIjXsLO7FRAn2rfdxYOMdU4f
|
||||
t38g4ux8
|
||||
|
||||
Name: res/g3.xml
|
||||
SHA-384-Digest: d3zJxym1gGbECrVaoAjSWKWrE6gOn6FCUr+peVBjxuQ6Igd3SUhu67X1
|
||||
nySNxnNu
|
||||
|
||||
Name: res/Av.xml
|
||||
SHA-384-Digest: GgpLyWncsRIolhRK0gjzbg8fFPegIp9uxkjTHbdytYSwY4xdtxsFxew5
|
||||
WyKLGv+a
|
||||
|
||||
Name: res/BW.xml
|
||||
SHA-384-Digest: J7go12UHfiaPOl2H2TjZjRCcvSK7BmBHGwM/rw+L7yd98hDPLyQpCCZJ
|
||||
Wi4iZ1xo
|
||||
|
||||
Name: res/9X.9.png
|
||||
SHA-384-Digest: kKxYfBYUrMaQfe3MIeDzH5hMtx60vY6IETUiEh+tmCqqeeuQ/Qd5nyyD
|
||||
jBHkDR5j
|
||||
|
||||
Name: res/vG.xml
|
||||
SHA-384-Digest: YhuJ4JF1s1VzbqVLZi4iMfJN2h1PXnhOnzCv4YuKQvzOthdjhrNgPN/j
|
||||
KnxqxGgk
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages.properties
|
||||
SHA-384-Digest: BVGcQGS4hu/zfqSVVjZJNDVPPXkNg39qQ62a0QS1q7g7YYFb/O+f0WEe
|
||||
z/snsYun
|
||||
|
||||
Name: res/color/mtrl_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: ceU58PHHS47LYAjLBqlYJFqv/wAbFCkRKUTbATjMpt+ZSd9gCq8+zof8
|
||||
030WUmZb
|
||||
|
||||
Name: res/color/mtrl_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: MmsSpS8vhsHwKkhr7DSzAY2mA+275xe/A7dZQHyY8UDRxO9yPHTG7hTB
|
||||
3UAjhza6
|
||||
|
||||
Name: res/Sh.xml
|
||||
SHA-384-Digest: XYNEGLLFFAar3cUhLRdtUqMiNSRZRVNqBrMI6gCQeVEzxkBCPj/1gkjm
|
||||
oRU9ECRO
|
||||
|
||||
Name: res/yY.9.png
|
||||
SHA-384-Digest: 3H3QaLlLRhzZrYiBvUITlOVJ4VSArxbVz8Dea09LB3xOHW1YA4uGekME
|
||||
t15x+XRJ
|
||||
|
||||
Name: res/uu.9.png
|
||||
SHA-384-Digest: VjPICQ289rOcJD8keHqnNLEoZMzQKeVpSJ1vVFRyzVbDGH80PJNms36x
|
||||
ahGS+qMP
|
||||
|
||||
Name: res/color/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: DBUwP+qibmHo991xVW6kxmA8McsP5OJsHvZqadFaqrIDqqEMymROyErq
|
||||
uI1ldcOC
|
||||
|
||||
Name: META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/f2.png
|
||||
SHA-384-Digest: 9bRe5ns0wsOPvIa5uhUsVThMFEJ0tiF0On9/yAfM7idKEyLduUVcq+CX
|
||||
jo1Q583K
|
||||
|
||||
Name: res/W51.png
|
||||
SHA-384-Digest: Xyvbv0PkdK6Q9u1i2Hx/FfJyGZQa1feVrtlclYwxriVrK5mjCf8uQ6GW
|
||||
vSK2Uhle
|
||||
|
||||
Name: res/color/m3_chip_ripple_color.xml
|
||||
SHA-384-Digest: CpHbJB4ezisNXYpBcY39H+RH2bTQ/DZBZKOSFspGPy5E7wQSpJ/NNp9S
|
||||
lEYpKQaZ
|
||||
|
||||
Name: res/OX.png
|
||||
SHA-384-Digest: bhmOg8yE/9EcycrtrEDJR3F8G5zoH0kCjDk8eSuz6v2gWFLl4LHWPz0k
|
||||
yH3Km2yK
|
||||
|
||||
Name: res/RV.png
|
||||
SHA-384-Digest: 6FECSxTejC7LxgYgGASZatHMnghakGoe7iANBgsQd2AxjwZuV7PR31wb
|
||||
ExWha8eZ
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-process.version
|
||||
SHA-384-Digest: iLyjWruT6+tRask7Zsf13Og5Iw5MzTYcx3vpWkoN/Sytw8+J1QDZJvKf
|
||||
eIH5vPee
|
||||
|
||||
Name: res/color/mtrl_on_primary_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: dMqE6mGo0ZR3hRwIB33IiHzfFLBsTs8Lu8mkOEZKun/u0lENBWUE7MJU
|
||||
CxjXyDnZ
|
||||
|
||||
Name: res/ZM.png
|
||||
SHA-384-Digest: T22N9KyTgK19fAun+GujpT/UKGuoZ2vtqZ4FG/TFqofqgpI5ehXhjqO2
|
||||
AhJgSWxq
|
||||
|
||||
Name: res/ar.png
|
||||
SHA-384-Digest: 6+TYhwWE9hZ+kjKS2BFNyIiwfoezXl8FrWdkaR1r4/W22KFWWTJWCiwD
|
||||
XBxw1A3B
|
||||
|
||||
Name: res/UP.xml
|
||||
SHA-384-Digest: x2vlwvnyN6yKtQMmOo+qp3p6CxsgNpoqULaTIALJziAHYc8hq2K2OtTe
|
||||
I3U63br7
|
||||
|
||||
Name: res/V1.xml
|
||||
SHA-384-Digest: 2EkCIEGDIuuP7HA31V602My4piQVdBJ7ey+AKxogLRhCWKn9x59eG0qv
|
||||
+N1YVrrT
|
||||
|
||||
Name: META-INF/services/java.security.Provider
|
||||
SHA-384-Digest: AZixVK1zrBtjHJiG/VcRam6axCdV8MWZrijORgUWzIqaMMiTYeG4uzKH
|
||||
jygMzDKq
|
||||
|
||||
Name: res/zp.xml
|
||||
SHA-384-Digest: FwOLxbxuHK+SkhTAvqxW3nVn90RC7QvI0bJqYKkuG4PHtzCfX6jTYKXk
|
||||
sS38ce8d
|
||||
|
||||
Name: res/hG.xml
|
||||
SHA-384-Digest: WAkrHnVfi7VVIkFq11Fcup6+qpcuzYTWxQwZrrO8IQ7Y/lp9Tifn6Dx+
|
||||
z5fWjm7+
|
||||
|
||||
Name: res/cc.xml
|
||||
SHA-384-Digest: wXcjpNBPgnRuDbsJ683lVBjZ0/uMxPwAxgiKnxaVku2LN9YkE5N5dh9B
|
||||
XvgYeQGT
|
||||
|
||||
Name: res/3z.png
|
||||
SHA-384-Digest: 0O0OaVEloG5Ah5JTY0wGripR3pCDedA6mFihbx9VVQikPUof+Jxl2jqT
|
||||
VBjMzs+7
|
||||
|
||||
Name: res/0X.png
|
||||
SHA-384-Digest: lOze27+I1NUKbo5q8uN4EVR+NwRUBNH/dmgZ2HgH8Tti40Vl5MN2wiA1
|
||||
MAgFZXLP
|
||||
|
||||
Name: res/EH.png
|
||||
SHA-384-Digest: 4nOg5igbKQEud2cogSGWhJFl9cT55MKhyNXjzUy3K0if4UHl+yh/Utd5
|
||||
Eiealime
|
||||
|
||||
Name: res/Z8.png
|
||||
SHA-384-Digest: LDxcvzhFCeaT3p2ZPz1vnPByvXMqfJrmKwPIKnvcsnfghxxKcOdWV9Pz
|
||||
5ERTbZsW
|
||||
|
||||
Name: res/o_.9.png
|
||||
SHA-384-Digest: g6DwdDNUgmvD13XB5GfmDGizS4XqqNIg3aQmdsF1uPj0zuxb/O+UurRS
|
||||
vPHMsDwc
|
||||
|
||||
Name: res/V5.png
|
||||
SHA-384-Digest: 2E9k2cBeqt0/WG3ildnYdmLhFHhoUhnhvf1OUpr5GE3G9IYIrsM0vS6f
|
||||
lcRDBjRv
|
||||
|
||||
Name: res/Fg1.xml
|
||||
SHA-384-Digest: 8Cqrn9tPTm9PAhq+pEADz25VD+zZ3sVrWCiL13i95q6swLB3NG3AoSV1
|
||||
FXrW3XJT
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_icon_tint.xml
|
||||
SHA-384-Digest: hp0N6me2TYXB1HrI27efVDgjOy3DAh7ZnW3b6DJ90zRCImSjW2iYh6QN
|
||||
FkE/s4EP
|
||||
|
||||
Name: META-INF/androidx.viewpager_viewpager.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/y4.xml
|
||||
SHA-384-Digest: NZCHeHFCfR0DJVTJx3/BkZBx69lAA9XvKWROhsjy6/SxJATEB9FJ5Pl9
|
||||
1agJ/QcD
|
||||
|
||||
Name: res/Y3.png
|
||||
SHA-384-Digest: PlW+A3hCM024xgRfFXVkj+DhbSvd5mn+4qea3GGHvN0uKBHR75s8LQgY
|
||||
Eexh30B2
|
||||
|
||||
Name: res/_U.png
|
||||
SHA-384-Digest: Lo2pcALp4a1nky2s2ABL7IZpNdyGrenbScuU7XkBWItcEWGsishntB30
|
||||
imUTRSex
|
||||
|
||||
Name: META-INF/androidx.cardview_cardview.version
|
||||
SHA-384-Digest: giSg6p4ocy3N9b2NhrG/1pULpQTeSuhfZ7tVatNSqySJN0+q+9qU5XEM
|
||||
DvLEeIHO
|
||||
|
||||
Name: res/n0.xml
|
||||
SHA-384-Digest: SSeCg1RkvV1ZuMy/5+8HemYkiUh0DHSIfelhgEVbOtQHFpo/ZZh6w36L
|
||||
ZOVJOXoK
|
||||
|
||||
Name: res/RV.ttf
|
||||
SHA-384-Digest: efrBKhmOGewKhbaybaFQ6kJtfGoYFM94aXtBpYSNFgZJ6JDLnMJXPAFp
|
||||
hksqKnfV
|
||||
|
||||
Name: res/color/mtrl_btn_text_color_selector.xml
|
||||
SHA-384-Digest: vgiDRv3Hh36oWIJZZinvQMfJLZXJ884uIX1PEEBo/z2tJK3Y2vFsoVYV
|
||||
/SN3GWIe
|
||||
|
||||
Name: res/vM.png
|
||||
SHA-384-Digest: wVYWOVQrFNQr7tiXgpJm2USLiTIo9onVStaE4wawB7/UF7AFJqMWRfue
|
||||
SVhur5nN
|
||||
|
||||
Name: res/PL.png
|
||||
SHA-384-Digest: c/dQhIj/0JR7e3+29veVUy45zd99fFmCInZ6LnpIla0QOp+tC4ptCXt/
|
||||
BQzRzPpW
|
||||
|
||||
Name: res/Q-.png
|
||||
SHA-384-Digest: BkP02V9ONzspsPwrSNlnP25XUVpkKULYVrJk4arsVBb3ZleWTkZqKSaf
|
||||
wUs04Knh
|
||||
|
||||
Name: lib/arm64-v8a/libcronet.76.0.3809.111.so
|
||||
SHA-384-Digest: p+X8+fwtcyeIb3b6Kse2zs4YOl30skkeCFsZlB1cG+3+020TPrpajHK3
|
||||
uz4H/rGr
|
||||
|
||||
Name: res/2S.png
|
||||
SHA-384-Digest: U/gCV4afyRdXFu8Kuo6+6dfFfOsFVbi2XTlrba9xUfP70wwb9c9MHTyw
|
||||
ULatK0bx
|
||||
|
||||
Name: META-INF/androidx.coordinatorlayout_coordinatorlayout.version
|
||||
SHA-384-Digest: w9IE1UH/gUEbdNJkdvd4BXL4yAaceGr8xqlagTmnOQfkG69IuErYq8ZN
|
||||
m27DHrb4
|
||||
|
||||
Name: res/47.png
|
||||
SHA-384-Digest: JoWkzNDaPOokdeRpFXY/XCfdcvf2tu2i6Nk7pqJ2xU3eO1UNsZM0mocu
|
||||
Y8fxU+XO
|
||||
|
||||
Name: res/GN.xml
|
||||
SHA-384-Digest: v2IP+y6P/pWb8v8KHhc8NDFx8NAuaIK7byKa/Oiko2tAG7iKqjykNYpw
|
||||
3kCBdlvG
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant92.xml
|
||||
SHA-384-Digest: 2IyyuZrYsMX1TfXJ1fzwPDl7xTxgyogBiCYSNwm7/zDWx4Iu1UHVH+H9
|
||||
KJ8jGDxy
|
||||
|
||||
Name: res/9x.png
|
||||
SHA-384-Digest: T5Jri7YRmOR3pREn21CTh3mq+aHYLnFPArTdDk17vd1GRUpdxOdWnNps
|
||||
N/Y6nL3E
|
||||
|
||||
Name: res/o_.png
|
||||
SHA-384-Digest: mETO+CZOjNfdKsoh3P9WMYE+qSs+NZtK7ib9Y+sGxk/DpCKoE/RlYFv8
|
||||
2e7YiGqO
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_core.version
|
||||
SHA-384-Digest: WiL9gsoIjr0zczM6o/MWDl4bC9gpKlyXdruiClOZ4naudqPgSkfvMEIp
|
||||
CXbD7y72
|
||||
|
||||
Name: res/SJ.png
|
||||
SHA-384-Digest: dO+YNL2DL6PlFPeuSU8axqV3TyEMzhIrT2qet9m3I0Z44JClLHyGjU1y
|
||||
ao8ijrAO
|
||||
|
||||
Name: res/g-1.png
|
||||
SHA-384-Digest: mwsgQdq2V7J+tR0M/yKgOUpEC8XFxNJqcQdRQRGZNaYEsTTi44JOI0Yy
|
||||
3pB2eGE6
|
||||
|
||||
Name: res/VN1.xml
|
||||
SHA-384-Digest: R8fn5wbfZZ7w5znAlRLSkKIKXPoZvxrRYns6BnLN+mW+EchkBRqSiEBX
|
||||
u57vLW9+
|
||||
|
||||
Name: res/F8.xml
|
||||
SHA-384-Digest: OSrI1JxHnRzmOn7VA9UuwWuHNafmPYL4AcOSqT3BfrRE9aXbYvUSt9Kj
|
||||
hT7hEWKw
|
||||
|
||||
Name: res/GA.png
|
||||
SHA-384-Digest: KFMappF9t9dqMx4wKxSZ0WYHkLBXXbW8kfIsNqq15PMqAlJPYvfcCPjh
|
||||
MBgqRmAL
|
||||
|
||||
Name: META-INF/androidx.annotation_annotation-experimental.version
|
||||
SHA-384-Digest: 8beLkkbbTfzYQ5PfZ+mnJ1+6IQ0SPJBx8JCfXfJOs5S7MjsvxG08OaDe
|
||||
iYhcH1kK
|
||||
|
||||
Name: res/49.png
|
||||
SHA-384-Digest: 4SyWRFB1aO+fizSiIn1CsiecFDzb1DWhM6Ij5GTHeMidTWC/P2H4CmaZ
|
||||
09fygBAH
|
||||
|
||||
Name: res/6z.png
|
||||
SHA-384-Digest: 4M9VwvopBzykoiBh15SuRb81h+72GC6gX3CbwZe0cIceYDJvpKXAGyLY
|
||||
1zWEDvZe
|
||||
|
||||
Name: res/color/material_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: ltydCcugD87Ou79VRz6jIzUwM1GHrVTPswOmA26Q4gNHxgize3bkCnlM
|
||||
ytYHu2re
|
||||
|
||||
Name: res/color/m3_text_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: hj85u4Fa5PrhT3ZdtiXs108t0UmLahFGxTpo2+62WQGD11Aw8+HaOlDL
|
||||
LE+wB7t5
|
||||
|
||||
Name: res/0Z.png
|
||||
SHA-384-Digest: xXapRsGlAta1YZCxwRFqQkwPko5MZuXnZbeg7ODlRYbZaKsow/yH4dp7
|
||||
n+44SiVv
|
||||
|
||||
Name: assets/js/script.js
|
||||
SHA-384-Digest: G8dbNdy1ZzgVd7PFtrpSvP16MU4sUP9jRL6RLCQQ7k/xXHBzcTgNlYiV
|
||||
nCVko463
|
||||
|
||||
Name: classes3.dex
|
||||
SHA-384-Digest: SpEjh8lyIU+xwzxvOtQx0sN/BEFTiXaaqlM3oe3ec6jEbU0JJV5URgBM
|
||||
HxGABhcA
|
||||
|
||||
Name: res/YN.webp
|
||||
SHA-384-Digest: QYaFKiUvsXYkplsb1ScurhYhDo7658n4/nODP/RgS5xE5ZcLoh/mimF2
|
||||
whZgGxXM
|
||||
|
||||
Name: res/ut.9.png
|
||||
SHA-384-Digest: Ic9uhNAVXr86RoelV8yr0/JZAZxX7u82IYcahyWFh+xObKKuifhLjDNJ
|
||||
9RFW0Miw
|
||||
|
||||
Name: res/3R.xml
|
||||
SHA-384-Digest: x172q0EFCfcexeAhQVZGo8WGOC+iRQ0gHzd1borVeopWYbvqPRWiGhMZ
|
||||
D059svz4
|
||||
|
||||
Name: res/color-v23/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: RcCXo2k7szne1Z1INL9VUI2boXaU0pn4TVvIxgqFclB+K+S6Zo0VJ833
|
||||
qqABfQ0r
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/resource-config.json
|
||||
SHA-384-Digest: n4NRny3FGdXpIx6xOl0gAnx5MuYf/LYwHxfhl5C90QetnzN6oQSx/9tX
|
||||
p5dIypeP
|
||||
|
||||
Name: res/qx.xml
|
||||
SHA-384-Digest: tocHoFvWGALlCWCCxkUiGWDHfRBC34C3MrCITiZI5FWX10tZqCyfboHH
|
||||
G40wl675
|
||||
|
||||
Name: res/rY.xml
|
||||
SHA-384-Digest: munFCYS1G5Fr4u7wIRrZa2qbyaOf7iD4QSjwy5rPkyCWsl9kGAGUPDi8
|
||||
TYy/abMX
|
||||
|
||||
Name: assets/index.html
|
||||
SHA-384-Digest: AVGABh08ekKABN0XC/8pBdj1FczMZtxcuJjNMM/6FkwEqv9oEpEkAFlB
|
||||
uDV96Nsy
|
||||
|
||||
Name: res/d7.png
|
||||
SHA-384-Digest: a5046bDW5rOPCLjIKfKJ+CAhf3G70YwLatr+p3Jqg/Y7u088k12GAK/s
|
||||
zwaR4WgZ
|
||||
|
||||
Name: org/eclipse/jetty/favicon.ico
|
||||
SHA-384-Digest: uwg9rjA/DNOQThlho4p+d8/6ul0+QrZ50l1p081P+vXVhsDBa2ORh/IU
|
||||
oTf+BQwT
|
||||
|
||||
Name: res/A0.xml
|
||||
SHA-384-Digest: 6C0e/TmgR8Im9sEONB9bq6yf/K8MR7PtfrBe2Mgyqi5Q5cyisDKFZlef
|
||||
CK5xuV8o
|
||||
|
||||
Name: res/0C.xml
|
||||
SHA-384-Digest: LWIdUZrz9rG3uN5Z4cCGPUdreZ3ocW1zvZ89y4DJpFEUbbrvgy4KP1hs
|
||||
NcRY307A
|
||||
|
||||
Name: res/Gt.xml
|
||||
SHA-384-Digest: KAJccf5Z896P1NklWnXfkvh78oCnOMxRDXOG5v3anJb9F2CEZPbEBiv9
|
||||
D8qfCH99
|
||||
|
||||
Name: res/4F.xml
|
||||
SHA-384-Digest: gpKctNgb2kTVNAWUDKA12a0yIzjYhb+7Hf+mTs3QXgqAOs2iBZRMFnW6
|
||||
FVqAe+SP
|
||||
|
||||
Name: res/gy.xml
|
||||
SHA-384-Digest: QWDFwubKkzul6y94K6jndOCmtFtBp24/8CS2U1Pm/09hNRVnLjFaZtxQ
|
||||
O+2wp8Vr
|
||||
|
||||
Name: res/a5.xml
|
||||
SHA-384-Digest: kuqc3W+bteryOxjPXQuLlxOA0HCywrLJCnaV5IbXzLLc0xHARDFQrR3H
|
||||
g9UAfMaD
|
||||
|
||||
Name: res/cv.xml
|
||||
SHA-384-Digest: hZRngROezTSUwYUCk4k6c0HJ2w6tTsm7N/32eJtiXZRb6qfvdbl84V+1
|
||||
vJpCmaUw
|
||||
|
||||
Name: res/jW.png
|
||||
SHA-384-Digest: Q8dfVTlza1X2mkmFxPh3wNqXKeJo531YntBgsb8Xl2driIxHBbPqsg+b
|
||||
jJnzpjdr
|
||||
|
||||
Name: res/my.png
|
||||
SHA-384-Digest: QtSh+g9dw5Ss6A9oJJGB7UfUHe6nDOOqObuxan1M1CNF5J2wHypV4VWt
|
||||
nBGUfZQa
|
||||
|
||||
Name: res/YF.png
|
||||
SHA-384-Digest: mMdasgblyPTdKs4bOyKenakpKhSJ3UlfYNc2mglBAJ53k4WgqycZr6Jy
|
||||
wv7621kR
|
||||
|
||||
Name: res/nz.xml
|
||||
SHA-384-Digest: fTfgM7966CCGxK+EeIuhEEdZ/kvpbzBBx9hH6I5X7X7DRJhWfZ47g+my
|
||||
cXWH+5ia
|
||||
|
||||
Name: res/color-v23/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: dYqKoJ+YMO9w117fZCA/nUXci06bZelw2B3yFTGjxyJ6bBb7842i1XPD
|
||||
pDSlKH/1
|
||||
|
||||
Name: res/2d.png
|
||||
SHA-384-Digest: 9BZsFwJmH1O3qxEWF6y8hFw/H/712eSmdn+7UyWLYeVG123rewRm2XJD
|
||||
kFfisaOY
|
||||
|
||||
Name: res/3E.png
|
||||
SHA-384-Digest: GD5dyD3h/T8CV/GSOjlwTUnwGlMZcQmsZrdgI9DhFlSArYIBWK0VS16v
|
||||
4TeumVTK
|
||||
|
||||
Name: res/qA.xml
|
||||
SHA-384-Digest: TEbsguqQ4TmDrhRRIeaEskxPgq84/MuwAMpFPSa/hBJbAChB8Z1YHSbU
|
||||
6+R8HxFn
|
||||
|
||||
Name: res/lP.9.png
|
||||
SHA-384-Digest: spi5A2b45rMlgjg/+dhrtGwHhr2eD5W+81PRshtlQewBJwkWCM3izdlL
|
||||
vUEyMgST
|
||||
|
||||
Name: res/CQ.png
|
||||
SHA-384-Digest: ad7di9iRqobZV3Zf4eHvLUxpmIEPYKPexITsfn5S7XkWyQ545TGHsoZx
|
||||
9TS7ncIl
|
||||
|
||||
Name: res/WI.xml
|
||||
SHA-384-Digest: IRUQvhNEzl80evXzIdGCEPfuYvZXPkc8+IMarIwclXYFQ/+E0plAMSsK
|
||||
evgb4YAr
|
||||
|
||||
Name: res/color/type_text_color.xml
|
||||
SHA-384-Digest: 0zQXu4klACjVNR4gEZOSc0oq811BfkUD1ufz/AElK4F9KeG4g2JW8yhF
|
||||
qzcKUyji
|
||||
|
||||
Name: res/eO.png
|
||||
SHA-384-Digest: FFq7b0ooP5BRXc6yXmfZiTNTyNDMwkXsIHaD/uSbwmVNWVE9oMGqPWYd
|
||||
9MYhMZnA
|
||||
|
||||
@@ -1,6470 +0,0 @@
|
||||
Signature-Version: 1.0
|
||||
Created-By: 21.0.5 (Eclipse Adoptium)
|
||||
SHA-384-Digest-Manifest: spU8j1yBPQECTKA+qk1Y6RHFwI+KNqDeRHs4+SaAg9LbKdW
|
||||
R5UsdVGNvNQsfo+yb
|
||||
SHA-384-Digest-Manifest-Main-Attributes: wtCK1yIPZiLzrTFRWjUnfq7a8dH+bD3
|
||||
8TZht8j65teAMH0MXNB4GMak7Di0Ugr/P
|
||||
|
||||
Name: res/Wr.xml
|
||||
SHA-384-Digest: idTnOuJ+4grSYpaMiUJmPr/ySHMp45l4/tfdQGr8k5nxyvLiPKYdcJ+z
|
||||
BgDzRTQO
|
||||
|
||||
Name: res/Hd.xml
|
||||
SHA-384-Digest: MAP8elVjqLDNOu07lEabbXyNrfacbdt0EioBTAVGkTSEJ+aZvW5duIiJ
|
||||
Oq2UoXwy
|
||||
|
||||
Name: res/9V.xml
|
||||
SHA-384-Digest: WNuDxjBOfnTSZoR2UB7ja+ur4qSU60KlerDjhOjQuHHCUKGEqDh4iqj+
|
||||
g6YMSLTM
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_item_tint.xml
|
||||
SHA-384-Digest: 5O51i7bR7hHN4u6FEvUxNI2rYRxX4WPlTjKLS/baSvyQ4mmtw25s/TUT
|
||||
XRmRu1h/
|
||||
|
||||
Name: res/uT.xml
|
||||
SHA-384-Digest: rwkhfhxpL1XetnlL1OPa4n1G5CMiM+hH50gN+eFbVGUJdUoSArYFpY8K
|
||||
3u/TUxSs
|
||||
|
||||
Name: META-INF/versions/21/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: RTY0VA7xSQCJau8y2puTRr4E3RR26MQrHZpn/fA1bDwxKqSqe+ltBzHj
|
||||
6fjBW8S+
|
||||
|
||||
Name: res/color/material_on_primary_disabled.xml
|
||||
SHA-384-Digest: 812krOUQQlHQ1W5eiP94jDVisX6OgWHHpmk9Ye/yyK2Jc8Mev5g9C0Ea
|
||||
9WUQTzuC
|
||||
|
||||
Name: res/bN.xml
|
||||
SHA-384-Digest: unWOJwMEVf2StH55I3eIn4ql0iCN8ES6t+pwd/Jw87gdyn6HRn9VjOus
|
||||
OkwBcUgd
|
||||
|
||||
Name: res/Jd.png
|
||||
SHA-384-Digest: 28lz0AkhLR0mWLfgwkDa4EblbDAQqIqLmxUcmGCtdqQKkNSusXrwA6g2
|
||||
cQIRWssW
|
||||
|
||||
Name: res/th.png
|
||||
SHA-384-Digest: 5cD/sZe06NVCv24+fRTn8BHYV3m6HyRNgwzoCkbuxKLy3VqQOq9vx4w9
|
||||
SJdJP/Xa
|
||||
|
||||
Name: res/wP.xml
|
||||
SHA-384-Digest: 8up5bQwmCC75bKXVKT7ogGglDOhuPT49vjfeYPR17yZ3KSGf76V2eByS
|
||||
cjUXS9HN
|
||||
|
||||
Name: res/33.9.png
|
||||
SHA-384-Digest: Hkl4P7KAsPANxS1KHEJJpRGQMUTAwQBycDhFv97MNqh93ALE4PqfxUyO
|
||||
tLp0jm+f
|
||||
|
||||
Name: res/7I.9.png
|
||||
SHA-384-Digest: B8bojrlczZOQScuXZT+Mvns3TymoZ4kEe1I+og4RtmQjdu6XYdUREcjB
|
||||
xM4oIFql
|
||||
|
||||
Name: res/NA.9.png
|
||||
SHA-384-Digest: RjqWhQBclkzHfbOKxMFSxqQiiInLdN+eu9+6YzkgH+Xyq+p7/xzR+QJR
|
||||
G9jcYg8y
|
||||
|
||||
Name: res/Q5.xml
|
||||
SHA-384-Digest: ofdPTqGA/dalRcQ6FiwllNpfYB2zg9KXbrpYnBpi5duVYH3uUXUrmgXX
|
||||
4Vro1T3r
|
||||
|
||||
Name: res/QD.xml
|
||||
SHA-384-Digest: PypiGJL58dHbN5fJIaROaQ2n1XJKduHzgLr12PYKMlPkHAzBsUfwpjSJ
|
||||
+sdq+U0F
|
||||
|
||||
Name: assets/js/lib/http.js
|
||||
SHA-384-Digest: R0zDXgt8QaUZuwEkc/JGOEIZeV5D6XNCQETIu3lvIwHs5BP/4ePv9biS
|
||||
RGMC5MbW
|
||||
|
||||
Name: META-INF/services/org.xmlpull.v1.XmlPullParserFactory
|
||||
SHA-384-Digest: cmI/fwhpVkXzfbvV8K/llYXLqlCS2kpDaoThS1b2ByP6QYg9g2fRrUu2
|
||||
ocwVdDFW
|
||||
|
||||
Name: res/OH.xml
|
||||
SHA-384-Digest: zkYCB3dHhVO0C7WihbnNh/ytSYRfH/L2K17xODRuAwcww39BLTLbI43+
|
||||
6DabCvOb
|
||||
|
||||
Name: res/color/m3_bottom_sheet_drag_handle_color.xml
|
||||
SHA-384-Digest: ZwTfd6tk6+pqIHaNET/1mNePFnrYBrNgUQ+jEGa2d36Cb/ZXL/FbJKGl
|
||||
7Mnykd/9
|
||||
|
||||
Name: res/Da.png
|
||||
SHA-384-Digest: K2zeuJnvYSI6ViEW47YWSvIizXpmWL4yk8LXrUuDbP5wzxl09ge5ritZ
|
||||
qs1zeBC0
|
||||
|
||||
Name: res/5O.xml
|
||||
SHA-384-Digest: He5teL95AdBR2qG77zN4e4mdy7jkJPsVEN5O7mjP27G35joXirUMjm0P
|
||||
mezMrkid
|
||||
|
||||
Name: META-INF/androidx.customview_customview.version
|
||||
SHA-384-Digest: x+f6M3NBbU7KqnJew83LI2yu6yGAE8+1Q4zf0D1gNgAAapV7gdqQfEMl
|
||||
dXDy13OK
|
||||
|
||||
Name: res/tw.png
|
||||
SHA-384-Digest: VrzmhZkubMKTZYAc6DUO8iODfZON4TuQClxfqEmLlVcTWPxs0WzO0K8O
|
||||
NLorURJr
|
||||
|
||||
Name: res/uX.png
|
||||
SHA-384-Digest: wg/SgrbR/J54RUKYdWa/XfRM8F7mPyZqU0mIv3i+F7tu+0AmZVlWkXNL
|
||||
GEFvfXgn
|
||||
|
||||
Name: res/1K1.png
|
||||
SHA-384-Digest: Om1Kth7elJxHA03HUt+55ci5ojTFkKafvZI+4ugdH7bWZsMaQ6HyUPEG
|
||||
ijcCDkYQ
|
||||
|
||||
Name: META-INF/androidx.room_room-runtime.version
|
||||
SHA-384-Digest: uCBAcGCirOmvVwGsX/q8kA9krcqAiJYKY3khx9QugSU4YcE1MJA/YSyz
|
||||
3q3qPIBp
|
||||
|
||||
Name: res/TL.xml
|
||||
SHA-384-Digest: YjmWzoCzItdMBEFwytN2D59MdjjAwmS0nz+3aae6/sYM64f7HWgP14If
|
||||
SFpS9/8Y
|
||||
|
||||
Name: res/0K.xml
|
||||
SHA-384-Digest: c/KQOp4kqBasOx+kZTVjiHGZVqJwWH/8zgjaQCartsAqFmfiShS0ANBK
|
||||
FXsdust2
|
||||
|
||||
Name: res/color/abc_primary_text_material_light.xml
|
||||
SHA-384-Digest: 2ohgYgi+nmmC1/NR+p78dEtn1ZlZakiPutOyjAhVt95NSpeEq1jFYt1l
|
||||
gQko9YUx
|
||||
|
||||
Name: res/hm.xml
|
||||
SHA-384-Digest: GRITB98YSXLsOSqt9sGUfajSdiWqDD3DiuM7Puci3im5UwHSQ1ogDmNg
|
||||
7FGso5Z3
|
||||
|
||||
Name: res/et.xml
|
||||
SHA-384-Digest: izfxCEsQ38h7PhB0b2bZ4BBJWP0xeXkeNxrp7hy4B7KCPHlJR/z8IDv/
|
||||
HBqGmXoN
|
||||
|
||||
Name: res/cZ.xml
|
||||
SHA-384-Digest: 7tHOHDOH/+AsgrXArICu8CM926flbrvfwzdpovj46XKQ6xIfKL3jfuQV
|
||||
T8S1nK6U
|
||||
|
||||
Name: res/B6.xml
|
||||
SHA-384-Digest: +LkxO7KeA068p9VUNy4BnUD6oS+AbhyAGIbEdAoPV3Mfifo+h/AGdVtO
|
||||
MWg1YcPx
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_light.xml
|
||||
SHA-384-Digest: MYu4UABn3I8QBVJKP0PRytb8mPGmd72+4fU4fp0Ob+Mddj4iMv7oQMnq
|
||||
vARjTLB3
|
||||
|
||||
Name: assets/test_base_module1.mjs
|
||||
SHA-384-Digest: 72e1vHdyew76EmHADCNdu8V2Xv3LmFllVn/PHepuM2XETBX7LZaZ1c6e
|
||||
PMpez2ys
|
||||
|
||||
Name: res/_7.xml
|
||||
SHA-384-Digest: JSfzjsI2QUcHYmDLDlF0NCmu10Oqpa8z6jL12MGBp8dlP91VT4vhHjr1
|
||||
qbMx+Jkx
|
||||
|
||||
Name: res/color/m3_slider_thumb_color.xml
|
||||
SHA-384-Digest: wC5s+umUZMmJWK25/RQ4A6weH63RhlK00G64BZeIiXeln7cKJQM3Y0l8
|
||||
cm2nLKff
|
||||
|
||||
Name: res/sX.xml
|
||||
SHA-384-Digest: TciRkUBmVfUX0Sa4V4PPyH7dWEbuFdPM9YSppHCvzTpCw20Xyff7j2gA
|
||||
VRz/0O1E
|
||||
|
||||
Name: res/color/m3_timepicker_button_text_color.xml
|
||||
SHA-384-Digest: h5yIIlyDATg0DbwPI83NGGPEVwWyEnA2hI+IAZPC9LTIOlm2cIZ12JRn
|
||||
Ly6q0veo
|
||||
|
||||
Name: res/jx.xml
|
||||
SHA-384-Digest: TLwwIeFcxelkkhB/ZO+8E5Bq4kevV0UEkvFeYGx+cCVOoXQpty4+9DAl
|
||||
RvG98WoJ
|
||||
|
||||
Name: res/color/m3_slider_thumb_color_legacy.xml
|
||||
SHA-384-Digest: h8icCKEa7s+n1s5qSuGrhGsYvcoNWH2T0T7Jeertd99nPw5QsLpVLjbk
|
||||
irxsOnP6
|
||||
|
||||
Name: res/UX.xml
|
||||
SHA-384-Digest: hm7XMXjcBztx7JQWZjad4LBRw9UzI0IsU0ZsyaZMOdEmyemNWkxjGy2M
|
||||
kEoT+xbx
|
||||
|
||||
Name: res/df.xml
|
||||
SHA-384-Digest: EY6I1KqZWfzZ449A9RlsgxpHoPMuWxVUocqkt5e7UfGuKtR9Gvf9mFyB
|
||||
Leio0A7j
|
||||
|
||||
Name: res/5z.xml
|
||||
SHA-384-Digest: VESPhmZHV6tAv/riFsnQk+5VU1OXLq1m1Tlw+YBsNEnQLuFlNwaFKir1
|
||||
3cnPsqEx
|
||||
|
||||
Name: res/bj.xml
|
||||
SHA-384-Digest: GmWETGi9c3O9fywSoL1DZ2hxB/Ks6KkaU7qDmHffLpqPZZ27XyCEqz6V
|
||||
WF27lQAx
|
||||
|
||||
Name: res/color/text.xml
|
||||
SHA-384-Digest: u8UGls2ZbZHPkAx8FTE4Lv3Owli0t9ux2OrwAT1m/168y0OrZxOylWV3
|
||||
zfN4M25s
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate-ktx.version
|
||||
SHA-384-Digest: 7zmS78TrX5a58R4pBlbYv6d0B1yGt9W0FiyDGymt9o5tyJe1tGfQ866g
|
||||
iPzm/oZe
|
||||
|
||||
Name: res/4_.xml
|
||||
SHA-384-Digest: 5A2AxdigI0LY8h53fmVPGKZKX7zhid1QPHzOf+MY9fGozufQEigrYa6f
|
||||
EkY7zYex
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_medium.xml
|
||||
SHA-384-Digest: PAMjzknPyJ88ZJnNINTrmNtlAP5RnZMU/b30b26Z+rOPmdZ8dR49d8aO
|
||||
XzfKIU2B
|
||||
|
||||
Name: res/hZ.9.png
|
||||
SHA-384-Digest: AU9czvte0gBRCEoZnj7JDHnaxdEuhGZK+eeCFXb7xPEFhl0IjudvAs5r
|
||||
dHIeBA5C
|
||||
|
||||
Name: res/nT.xml
|
||||
SHA-384-Digest: DCmxeg+RxdYXvAxd5fiE+vdCoOOseYqe57XsU5BfetpQuM7hTrbScmLv
|
||||
Z3i3AEsX
|
||||
|
||||
Name: assets/images/ic_search.svg
|
||||
SHA-384-Digest: Bp0D+tB7X16P/euiUZOi18tGvw7qcIRQviey36CgQh+LQVm/dvLEIOPg
|
||||
6vvM+ZWQ
|
||||
|
||||
Name: res/s3.9.png
|
||||
SHA-384-Digest: Dt/ioJBnluUzC89qTVvLK5RGAmtNMf7sNQS7eMgEi1NraHNa/QXO+eOP
|
||||
51wTeNxQ
|
||||
|
||||
Name: res/aF.png
|
||||
SHA-384-Digest: UARBNlMr7q/CYts0FYpfyhfL2kWMciknjSO6nX1Q8OgLkx73EDHFgZqO
|
||||
p/OcYqjC
|
||||
|
||||
Name: res/up.xml
|
||||
SHA-384-Digest: KpXtWSv8fstwU59XQLRDVCU8Ft+qwjGtWqlVIxE4VO70TQ6z3fYfNW8D
|
||||
8l2/hSlk
|
||||
|
||||
Name: res/yn.png
|
||||
SHA-384-Digest: 8KoVS2e6NUdBlSfslYx5UQhsVeW/BTamgMf4ZAO9hyS/FAw3KUOOQYwm
|
||||
rsA+T6ip
|
||||
|
||||
Name: assets/css/style.css
|
||||
SHA-384-Digest: /PGLdCTpDXNz9NUD3+EM4PmSh35IgPWLlO4uBwKjdqphPRoKyiMnmx5m
|
||||
LAuzLZe2
|
||||
|
||||
Name: XPP3_1.1.3.2_VERSION
|
||||
SHA-384-Digest: 9mnZXYTIecUCW0kADWNdurGs5q/02NSxnW++TFzvv8FSylIibhithNAj
|
||||
HIquBEpm
|
||||
|
||||
Name: res/P8.xml
|
||||
SHA-384-Digest: AOZCtguTP16GgAk2EjwlOECOAGX20auOPJM/Fzbcn7XMyi1RFTkRKVF8
|
||||
5LHF58mi
|
||||
|
||||
Name: res/color/m3_slider_active_track_color_legacy.xml
|
||||
SHA-384-Digest: cc1LdFeqq7g1M6uPs3y4ZfEmRmaCsYYHUB9nS5/Yxp9dfJy4QyOIZqMD
|
||||
XhR2nByM
|
||||
|
||||
Name: res/gr.png
|
||||
SHA-384-Digest: i5wOCrYQopHnOfr3UUgaYScCIoLYXtvTGBlbxXDr+mJEDe5VVWyCUydS
|
||||
ILi0QhJ6
|
||||
|
||||
Name: res/i4.png
|
||||
SHA-384-Digest: V1uxZqfnrBqlX6WGnx/Bg1c1rE7klA9RZ5H4sjEBk+MqLrGLXrmzCmAC
|
||||
KMcurWT/
|
||||
|
||||
Name: res/oF.png
|
||||
SHA-384-Digest: scY1ph3dHbHdmA7PTheUY44nq9yikbuU1YovskxOjArGngn4m9T8LeRj
|
||||
mfXA+Itl
|
||||
|
||||
Name: res/gR.xml
|
||||
SHA-384-Digest: 0+IBvj9URyv4MvLW0MieHGgaWRnZbBBCX/24REWxYF0Z455zs7mueG96
|
||||
Cxt9yYZN
|
||||
|
||||
Name: res/UO.png
|
||||
SHA-384-Digest: v9pqI3aMZXOaaEZv0uNEbopjerSOqQPZWHRvcvsab4PZaQZt/yOsQJnY
|
||||
NONpaS4Y
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral96.xml
|
||||
SHA-384-Digest: Br7LOo5vW9SiiN+jkuAdVjFqyx6TjIztcrTA2qan1LEL1abAINxePkfq
|
||||
PkQP6nR3
|
||||
|
||||
Name: res/L1.xml
|
||||
SHA-384-Digest: bURkmznNDf7O9m8koBAjhXann3NT+lZidVrCmUFQ2lQO/whTc2/xNzAB
|
||||
uwu2xpam
|
||||
|
||||
Name: res/color/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: uKfCb/8bnIPswVD8itZ4pZ6BpScs2jflNcz0oW1FhGGuk36nO5p+xrC/
|
||||
R4ullaYz
|
||||
|
||||
Name: res/op.9.png
|
||||
SHA-384-Digest: vIltv5PI/CqP1oi6v7B1NTNMfAO8PwGECOB9nr0Am3MpxCL4wzclGvau
|
||||
Vxf3nnm2
|
||||
|
||||
Name: res/kh.xml
|
||||
SHA-384-Digest: cA0lQXjqjnXpoIeEieSEKsykThjBEiNsAdwLuRHmdzeh17YPsWiB8qYa
|
||||
85YaaqIw
|
||||
|
||||
Name: res/M2.png
|
||||
SHA-384-Digest: 8EJkhukB3mkLLtxMLZu0AR7Kdbr+MT5nKw3oF1ABLjxDa0IF9snhJYHv
|
||||
Bmavi2Nw
|
||||
|
||||
Name: res/gn.xml
|
||||
SHA-384-Digest: zQMivYEJQAj85p3KvSktTmbE3WevN2JiKgcDr8OF+X7Kycjgh/tJMcXd
|
||||
AhzPiv1G
|
||||
|
||||
Name: res/5D.png
|
||||
SHA-384-Digest: C9f9gIzNbvNC7UovAS+FkaDSEkmR+2nPgw7tiFsNMiMnX8NAUpUc1OOc
|
||||
9YI1IMej
|
||||
|
||||
Name: res/qz.xml
|
||||
SHA-384-Digest: 5zSc7iEsYpHyfPdyKFjwUBSEiHcCRnqj3JpU2xFZxtmlMLrrYtH1LlaB
|
||||
gsbdwKCK
|
||||
|
||||
Name: res/Mh.xml
|
||||
SHA-384-Digest: kgbwySrB5PCZleoja4wsl8FbT9+4+Lb3R6QAhELJQ2+cNSAtnwB7zGYQ
|
||||
97/JgrJ/
|
||||
|
||||
Name: res/color/m3_textfield_filled_background_color.xml
|
||||
SHA-384-Digest: YYfSj75C0JyMxh5E3+gS6A69AYGCmmxcS+Tgg/x5w+VRRzfmsT5KUpW8
|
||||
3UGw+eZa
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: KhB+OyvfCQB5w+FjwT2TWhC60TWIVpXYK2j8vCOVr3/z58jFNJwdu5g4
|
||||
eomRKyus
|
||||
|
||||
Name: res/oB.xml
|
||||
SHA-384-Digest: rPodO/iwhF3EHey9cDSWi3N3v3W7duRMxoSGpR3sj+EkRJmmyOSrKED1
|
||||
vYu4/pUx
|
||||
|
||||
Name: res/GM.png
|
||||
SHA-384-Digest: 4nhnigZ+9+I8nRB1sKbGzyvJoysUq0v+d939tdvt/QIVakyM2t/KAIyH
|
||||
zE0PkKsA
|
||||
|
||||
Name: res/fd.xml
|
||||
SHA-384-Digest: h9efeQJOzHJ83bSFsJao+zZLWghH3dX9zTTccMcrhcGmGjIZlOVb1WHE
|
||||
fnOi1GGy
|
||||
|
||||
Name: res/2T.xml
|
||||
SHA-384-Digest: cbeLDXIQE+6kiOkzLLNZwA4C6Yy95Bcj3mECGi6sVrfU3LDxBFjgjfL3
|
||||
CXbVtcvU
|
||||
|
||||
Name: res/color/m3_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: rb86ouj4hGlMSeaLztUC2SwS6yzzrvCdTwkR0Nm3Xc1RLsiSFCCQ8YaP
|
||||
v26S013b
|
||||
|
||||
Name: res/YV.png
|
||||
SHA-384-Digest: NfXyBZyih5gpxvusb4BgHBUmsJYaSMzodterzIEtDfVinNGYnXOItlfP
|
||||
i17hIg8D
|
||||
|
||||
Name: res/Z7.png
|
||||
SHA-384-Digest: ppS7cxpIAx6qG0+C2I6iSIOKaJE5o+C30camajS7fT4i3VqRGLke1ZkV
|
||||
Z+gi60Eg
|
||||
|
||||
Name: assets/dexopt/baseline.prof
|
||||
SHA-384-Digest: kICzefqwPPnczaeRAcxPWkMLMCmsDKWHV5uDvuOlkYCz6OZHKVNyAKlE
|
||||
nbnofmIX
|
||||
|
||||
Name: META-INF/androidx.exifinterface_exifinterface.version
|
||||
SHA-384-Digest: LoQjyhn6Ol9ftQRXpE5hvIjmPuaYcD5/TgRG4juO7ls9TJxnfYaHNLHH
|
||||
2uP2QNBv
|
||||
|
||||
Name: res/E5.png
|
||||
SHA-384-Digest: BwRClQlB6ZZ/3YnW9NFCxOiP9jYked3U70wBSQQrNf0asP1Es0cdfIUF
|
||||
pEota9tm
|
||||
|
||||
Name: res/Fu.xml
|
||||
SHA-384-Digest: 1mshigY4lh5No6qjqPUaU/lJlW3ykwLB9xeb6S3crT3AdIB1flFsQLz5
|
||||
NmMq0uiW
|
||||
|
||||
Name: res/QZ1.xml
|
||||
SHA-384-Digest: ueDG5c4XrX46OZep2gygT99JpLdpt/5MHlUoGEev0WxQ7DATKE5ekBFm
|
||||
y6gwQYs3
|
||||
|
||||
Name: res/tj.png
|
||||
SHA-384-Digest: k43/4BzhIrZTOhqMXL967XDQbhG2+KET5miH0C4LN4NAqIgBtuwrORcU
|
||||
sop6y6iC
|
||||
|
||||
Name: res/Gt.9.png
|
||||
SHA-384-Digest: ZwKa+WpCC75muylnbMmih6hi/13RDv9vCyVqpZsHMfZZzudbP44W5syK
|
||||
2M74Fhup
|
||||
|
||||
Name: res/Yp.png
|
||||
SHA-384-Digest: NW8Meyx7/C5tDBVLDYmMvUIcOwsKQXcwGa8jmpJqly0n7ysrBmfHNs/w
|
||||
FUae7FnW
|
||||
|
||||
Name: res/lv.xml
|
||||
SHA-384-Digest: j81ejnJA7RO3dCYmwxHIyqmwlnLQuhi/iFZgisY7tsNp2HdkvbnPrlf8
|
||||
pp/VGfC8
|
||||
|
||||
Name: res/_o.xml
|
||||
SHA-384-Digest: oZS2JTAc7seSC3dPy0GtNXJ+008ZJsK7p9KVUlrzH/quR4sHbdrDQb2a
|
||||
AwH6MvVz
|
||||
|
||||
Name: res/a1.xml
|
||||
SHA-384-Digest: wKHyELLKnP6pSHxm7TCV1SR7/Z7RWSzdXhArIr7aOBRKUBtqaZt39l63
|
||||
bwt0hVYj
|
||||
|
||||
Name: res/jz.xml
|
||||
SHA-384-Digest: iPWl8c6NeUY0xY4M3/8ewEZ3SkDvNpzW/zCg/wTZ+lsii2ZDaJxybNDQ
|
||||
ZL75G527
|
||||
|
||||
Name: res/PV.xml
|
||||
SHA-384-Digest: VFWTPZJdyv8l1myZC+vXlCrcDm5tZNzBkOt0R+jT7/6dxuIfsVAhsH/H
|
||||
I0GQhwFJ
|
||||
|
||||
Name: res/Q7.xml
|
||||
SHA-384-Digest: garSwj5BJNaS2vanJnOQjfYEOKZpU/1ZaPd1m75N610IHrwr5zIzgEyW
|
||||
g/FDjNaz
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/didl-lite
|
||||
-1.0.xsd
|
||||
SHA-384-Digest: Vqb70kZmHnDRzop0smQmY9Y3BgnZCz27eL/AIaPbOqhqtNy3OWXyXNkm
|
||||
v2w0HzMS
|
||||
|
||||
Name: res/3U.xml
|
||||
SHA-384-Digest: se2NQciu1B0r5QwSzysXHnJjMyE7vlnmreCR+/YlFcC3LB83zqfEowZW
|
||||
itXOsvLs
|
||||
|
||||
Name: res/46.xml
|
||||
SHA-384-Digest: ChRep6I9RgOfNK/XYk8gCFKBGhJQKCQbw+utUpnRPmm/3OEuz4pIotRL
|
||||
enT+Vdvm
|
||||
|
||||
Name: res/color/mtrl_tabs_ripple_color.xml
|
||||
SHA-384-Digest: 8tqR3zp05LTPs/pZFyDx0aaS9w76L0Zt02COGUeS7Nka65w80C56LcOp
|
||||
WicuJRfv
|
||||
|
||||
Name: res/My.png
|
||||
SHA-384-Digest: 75tQGUj+Ysvc0Qw3muI0A8+5SNd5BVNsHKcMThG/zOZvCu4k4b2LpUJB
|
||||
sdeh0hX8
|
||||
|
||||
Name: res/uR.xml
|
||||
SHA-384-Digest: wU/Oj7Xdn+fHguJmQqqtsK29roFGJg6g6bV0XHffo8APA2hyxk8RAVAt
|
||||
Eavh/ok0
|
||||
|
||||
Name: res/ec.xml
|
||||
SHA-384-Digest: ZVI6aJQlKeJFXtPfhdqs0tXTCRMXYBSdZZLXvKb3Mowp7d7uv6rW+cmT
|
||||
D4CwXAPp
|
||||
|
||||
Name: res/pn.xml
|
||||
SHA-384-Digest: afPkCFsQyNYMSf11nrkoylATUQD14CT8vbXCziiqVKsb/LmZK+sonrOL
|
||||
QEUkTtnp
|
||||
|
||||
Name: lib/arm64-v8a/libjpa.so
|
||||
SHA-384-Digest: CpJl9DxsVk4xaQ81SZQrBUme7YdJwV+52MMLF+knOWhS1QfHvt9ak8LU
|
||||
VxDXP8A3
|
||||
|
||||
Name: res/5U.png
|
||||
SHA-384-Digest: JjtlHcMnxqCDqS8YfLz+YhITLzZ9wqVnCiQ9K0TiHgiI3GV55P06XgPe
|
||||
iZbxALqb
|
||||
|
||||
Name: res/YW1.xml
|
||||
SHA-384-Digest: sib+Mckva+HIR4byA8sgzN7HG4UBBFrWcQrnbURruuPnycef3Yhwukqg
|
||||
k69YV10y
|
||||
|
||||
Name: res/GK.xml
|
||||
SHA-384-Digest: uXF/Wpw9VHf1j1T9NrSAetu8WpfD4Wtfi3bH0MCwkDhlOmpf6eTV61bw
|
||||
gVuFGh/P
|
||||
|
||||
Name: res/ZM.xml
|
||||
SHA-384-Digest: aInpUVU+UfO+tjSzzs2TJ1H6V33/kGUrty/3oBAYZKz2YfAZjyDdSylb
|
||||
wLZqNyYb
|
||||
|
||||
Name: res/Ui.xml
|
||||
SHA-384-Digest: FnfIYnxsx43thUfT8LkcOZs/l46P2w8vHQJ4NKRHeAOS//ZCD7BSYPw4
|
||||
EZZeBbbj
|
||||
|
||||
Name: res/8s.xml
|
||||
SHA-384-Digest: xZGdhAVuscat98fzp8qodw9yRtND7Dw0Nj3j1wr+lQ6w3NKRK3/Iu01Z
|
||||
U7G65hSJ
|
||||
|
||||
Name: res/9T.xml
|
||||
SHA-384-Digest: wSG+2vBlec3rHuuxhoBBTBwviMT9XtTneSMFIPlp6b8qxYIsJQyyd43w
|
||||
l8GscwB3
|
||||
|
||||
Name: res/color/control.xml
|
||||
SHA-384-Digest: IRqk/+EBRvpg3LLtqTzXDw7UyKj03Zw+aCuDAJMib1Zg0URFuVyIxScm
|
||||
hnRSlZwE
|
||||
|
||||
Name: res/n4.xml
|
||||
SHA-384-Digest: /dfE31ox/0sb4TQ24p90ZakwjT5aQCffLMdL0P49HJEI9WbN8Gu+DxYV
|
||||
XO9s4+zL
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: 6gnvATWMZ/mXFN9tx5VcRkaiw4oB9WR+XfK6H8NDppoieZklahcBRKs3
|
||||
FiOVZeCt
|
||||
|
||||
Name: res/42.9.png
|
||||
SHA-384-Digest: bAxFePiHYhFiWs1wN1VTkcMvbsNJrnE9E1XfGafI5bizXdjHiTiu6uVV
|
||||
t9WuI+jC
|
||||
|
||||
Name: res/rJ.xml
|
||||
SHA-384-Digest: 8K+ZwxrVpParOpZi3HhUWXiFmo1IEQn8JuVAoeAt/7nGLdO72UeOvKVo
|
||||
CfG8jVlp
|
||||
|
||||
Name: res/EZ.xml
|
||||
SHA-384-Digest: UQ9M//aLi26z9X2gkAsNrNn+nSFX8Z6PVsyZOzjFO4hHCFqlod4l7u6U
|
||||
iZrSY8n/
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/native-image.properties
|
||||
SHA-384-Digest: Eyatm+51aFgovEp+zn/7H/ypoCJz15NM2olB5dmhtXDcVip+14xPITFb
|
||||
HF0iik86
|
||||
|
||||
Name: res/mf.xml
|
||||
SHA-384-Digest: BpDzrB0nsmUpwv6TjM+GDKuX//b+fzwKKijRmwN8yvU26nBLqEPJT+XZ
|
||||
4XQH/PSN
|
||||
|
||||
Name: res/JS.xml
|
||||
SHA-384-Digest: SSQZalJOsxkBbs6/tc7InJlsVzL3RkloL0Jnk3dgT+pUlmsg9naHJAiG
|
||||
LajJ+B8n
|
||||
|
||||
Name: res/color/material_on_background_disabled.xml
|
||||
SHA-384-Digest: umPhq2p2BVem958gaaJG3oIGY6fbVROB7hH8aNhkoG+7pP+I0yuts9mR
|
||||
WiyylvL6
|
||||
|
||||
Name: res/-6.xml
|
||||
SHA-384-Digest: mP0W3Ov/CkPlzgMWw6Hn4kgfskjr0z8J+KWu9fAlGfv/nb92EU7cYD5y
|
||||
5PqQTrXQ
|
||||
|
||||
Name: res/9T1.xml
|
||||
SHA-384-Digest: IM0gBPCa2y/fdCRP0B+rgmDbIc5jS/4Kc9AAaJd929+jEKM1MWqaWtHG
|
||||
NAP/dvwi
|
||||
|
||||
Name: res/color/channel.xml
|
||||
SHA-384-Digest: y5VqiKPYMz1vfwZXTcEb95JEiU0syDDDB04K1+ySeZdrJUzm3w0Fy/ak
|
||||
w+PYs6IJ
|
||||
|
||||
Name: res/ue.xml
|
||||
SHA-384-Digest: GGrQqAn28XRAQpL+ziGT9NyhpHsZ70UTAQ7kufw7cfRbeSUkULkNMzbm
|
||||
TsLw+p4G
|
||||
|
||||
Name: res/vF.xml
|
||||
SHA-384-Digest: +ZtTifknSu9b0sb46XqF6IRR2nElxiEGeX8VzI1uSBUrtC3xvvzfaibm
|
||||
sei/pklh
|
||||
|
||||
Name: res/k0.xml
|
||||
SHA-384-Digest: /aW++hejWwRi1WvbQjLfvaT0iOnYi64JbV02BHDTUavIfoaE+cgLyGht
|
||||
BeQutnbo
|
||||
|
||||
Name: res/color-v26/biometric_error_color.xml
|
||||
SHA-384-Digest: AwmZ9HIL0BkXwmkpvBopJ9oxM5I4ApB7pw/baonNaM6fS/YVwVLaGL+v
|
||||
lzoczjw4
|
||||
|
||||
Name: res/Tl.xml
|
||||
SHA-384-Digest: RDRQJK1M1lFaxCYQ+3tQaWzl+X396Y3n6g/cVB3IeV4rharlfVXRTELQ
|
||||
L6eardVu
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral24.xml
|
||||
SHA-384-Digest: e5/elpvU1k49A8NCseOjzyiwXWEzEYmv20Z+L+qtkDZqJWNIWZxfzMEL
|
||||
7PIDBgGR
|
||||
|
||||
Name: res/fS.xml
|
||||
SHA-384-Digest: nmbnLWWm4rcACBeu0qZ1TQhz3E2arv74HBhUAD3RAHtiAuHVmdzBV3Zn
|
||||
M9PIg5yN
|
||||
|
||||
Name: res/vq.xml
|
||||
SHA-384-Digest: YChTCqT98mJMdpmQFtipDTPiuukGnxUGjEIUhEdlOswfRZpd/OXmWx1h
|
||||
XlB5w5oh
|
||||
|
||||
Name: res/Dn.png
|
||||
SHA-384-Digest: wpxafCZIJXA5YIQppyn5kITVn7tKE8wgVMy2xnxvc1YQC3dVBdVe37+s
|
||||
ffClZXAj
|
||||
|
||||
Name: res/R2.xml
|
||||
SHA-384-Digest: faFaU+S7e+rRU2il/5WjUg7VJRD+SVM4B6WeeEz6Bf41JOZWqlJRwuW9
|
||||
LS9nwG/z
|
||||
|
||||
Name: res/bP.xml
|
||||
SHA-384-Digest: EK7Wxx6fHUkeIHLbWzx3ZVCpZOmEREnUvzzgrD+YNeoer3/KaUDJXN5w
|
||||
3WoFlS/9
|
||||
|
||||
Name: res/A5.xml
|
||||
SHA-384-Digest: PelWQfnT5tLHaC4kitZjkZYJvPQY+wFKu+N+PpWQm0+X7AHdR1W4/6Dw
|
||||
V//nthOo
|
||||
|
||||
Name: res/color/m3_filled_icon_button_container_color_selector.xml
|
||||
SHA-384-Digest: MKPmNd8DDK8R8ub/1kLcZqx6faCMzLqKwkNmttrgxMKcp5afDJ8sWbqz
|
||||
KytJZCdc
|
||||
|
||||
Name: res/PC.xml
|
||||
SHA-384-Digest: QHeHxlhNiTrsMHwKbiHfIAL1TUTIxRcIg+7dLiAVioEZTisicX3KMC57
|
||||
USlzcxj1
|
||||
|
||||
Name: res/q3.xml
|
||||
SHA-384-Digest: Z27fl42kubfXX0AvLpgy0JNTdNRwrMwceKqxE4JtuDR8PGyLtyZBkP3F
|
||||
CkRPXUqZ
|
||||
|
||||
Name: res/DC.xml
|
||||
SHA-384-Digest: oxlmE0Oc/tQ4yqXA6w0PPOwuSIfR7Gr/ODsd50WcMyRnPPgdqhxhkxLC
|
||||
0eyAVJo8
|
||||
|
||||
Name: res/K_.9.png
|
||||
SHA-384-Digest: ACTxR8JLkV6foffYYRJwLAJyo7EPbGZv9hxY8JFOeLKJtMZz6qm+gxd8
|
||||
wdyUfF2p
|
||||
|
||||
Name: res/color/m3_radiobutton_ripple_tint.xml
|
||||
SHA-384-Digest: VRR5L5AlMU1W3adMnZs4lnRf6slbVFTYuqFKuNRIU2PNQnGL5iWPy9JR
|
||||
X7BU+EVG
|
||||
|
||||
Name: res/Pd1.xml
|
||||
SHA-384-Digest: JTu3XKFUKcKOwnXfMtXE/kDQyaMDqSegTmVGLnZomBvTbaweiO6mQNPx
|
||||
1DsZ5fn7
|
||||
|
||||
Name: res/Ge.xml
|
||||
SHA-384-Digest: KkhnoqJNWcdkkPId84rbEKqrIr5NRICLWou3xU0Uz7CGeJSogxjxivGn
|
||||
NFSy93fR
|
||||
|
||||
Name: res/ue1.xml
|
||||
SHA-384-Digest: NR94HjiOaC1fO5bsZ2AwbR/81jg8LTg4TuuKkMR3LirV3oWsRmzVwaLH
|
||||
8NyGiaMQ
|
||||
|
||||
Name: res/d5.9.png
|
||||
SHA-384-Digest: sKmulFpsmp31dpCj3gjcs4ZMNq8xNXOBsfWgJ6aNbcbSnrfBW8gJlGJg
|
||||
d7RVJWM5
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_hint_foreground.xml
|
||||
SHA-384-Digest: CpEE+Je0rTaCtwOwZ01zCQSJ7JrZgLhdBF3dTOCGYH6jAZKzGuK02poo
|
||||
TQBRKQPA
|
||||
|
||||
Name: res/J7.xml
|
||||
SHA-384-Digest: /cfDEUlCbKuu7pXkeI88i/sdNuIxir90iLkgoBClaMf+sgIoPcviB07g
|
||||
Tf7DEjS9
|
||||
|
||||
Name: res/aH.png
|
||||
SHA-384-Digest: NPE9bC4qSGbpxGUphXY5XTDQ03NWi2SDwgk1fpGVUSE4XJL0HfHPgnet
|
||||
xj3p9USl
|
||||
|
||||
Name: res/ZN.9.png
|
||||
SHA-384-Digest: yzhhWYyTkGj9gNJPMFlTpISk5Y49P2AaMDF/yOwTStQ1XUGS2au4fQtK
|
||||
gZKDjcdk
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color.xml
|
||||
SHA-384-Digest: 9mbqMy3xWdd6omDSflqGk6lT14cH3Gd2pwmXPUeT4zdrWwfTIlVs4TpD
|
||||
rABSKR5c
|
||||
|
||||
Name: res/6P.png
|
||||
SHA-384-Digest: RAdbkupbHKux/35Tr8HnP3cZkiADP8lbkoszl/ptaaN3ZKXDrw8UguiB
|
||||
CZh2iKTK
|
||||
|
||||
Name: res/71.png
|
||||
SHA-384-Digest: KbCCz+wZ+qXpKYa1z4s+7KfG6skRE8J74g7d6EwzfkhqzuPGRK6VrY7j
|
||||
my11+0zi
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral94.xml
|
||||
SHA-384-Digest: S9nTRzkkfQopRNTOqIOoE/szAUXAI4V/vGLoSYa6CkkDlRpJwqS/AMG1
|
||||
J+S5/Bn1
|
||||
|
||||
Name: res/0Z.xml
|
||||
SHA-384-Digest: dQPqz28jHL7iLXp75b4e7KX48IvTPh8cv9tMPcZQfv8Ztj4/z3v5ks8k
|
||||
L3xIIHsS
|
||||
|
||||
Name: res/iZ2.xml
|
||||
SHA-384-Digest: Qjo0dvw4LXJSvOguNpqReL227zoPgfK8lzh7Qg+9Mq8L8h+F75RFxRSS
|
||||
WqeanUQL
|
||||
|
||||
Name: res/ui.png
|
||||
SHA-384-Digest: qbY8DQ1gSoL/45RYCNr+63djWcuaSiQZTpSSS3VzeTVmQz6KcInZsvFU
|
||||
ojcCyVFT
|
||||
|
||||
Name: res/BT.xml
|
||||
SHA-384-Digest: QzSRuMFSrpkDBJRhN0ohVVUl279rAlPaVJj0gRCfX5hrnOpped+FyknB
|
||||
9qbpsUGf
|
||||
|
||||
Name: res/C5.xml
|
||||
SHA-384-Digest: MGWjrKLPdbUzutGlj/0ba+SNRhq1XAiI0BOxUD2w3IjIWdzNcBwNEvzM
|
||||
57bflCPP
|
||||
|
||||
Name: res/m9.xml
|
||||
SHA-384-Digest: YuurX5hICHsM1OAM+yfl9tjL8N9xfLW8CWDSNjWWWOoHH7v2xUjBXndB
|
||||
152Qd5DQ
|
||||
|
||||
Name: res/WV.xml
|
||||
SHA-384-Digest: cepUTQvEb3alYDeq2xs1u+Q2Q9OWvPX93dQG4cSEJZbBi7H/WUUrbeHp
|
||||
YJk4Io5y
|
||||
|
||||
Name: res/je.9.png
|
||||
SHA-384-Digest: hqbntdCQ0hWmkquXaCseqSsIraYyC9OekgPOE2n/u3T/8xpt+ChXM+YH
|
||||
yx13lNJ3
|
||||
|
||||
Name: res/zZ.xml
|
||||
SHA-384-Digest: xbT8rJTeVmc5qUBFSctbBLu8FFlaNeDg+UxkOZoxAzsbc/MdFI84QQm9
|
||||
QuJZq7+1
|
||||
|
||||
Name: org/eclipse/jetty/http/useragents
|
||||
SHA-384-Digest: TFMYpqSFDN18/vIKeEsA8vrhQC3+tLGM43SYcqzYO7tRCOiGzU2IqxC9
|
||||
IN+m3VGI
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral87.xml
|
||||
SHA-384-Digest: DVBIpNTuMTd2j8KJHxj8WDhw2IBxZAdOsFiPiPW3ebrTXBGHn984zwL6
|
||||
ofLReAJ6
|
||||
|
||||
Name: res/F81.xml
|
||||
SHA-384-Digest: e2NgP74AScgEji6o7xK/TIjFXzYen8P/gjNLiqwr6Wg7iK1+KUqoMAow
|
||||
KCv8oxzT
|
||||
|
||||
Name: res/H0.png
|
||||
SHA-384-Digest: J0hg1uZamR/HJZ8GPLwjQqAIl3zTIVDffR69TqQpazgyoE+DaTb4vPPn
|
||||
/K30BW3a
|
||||
|
||||
Name: res/gt.9.png
|
||||
SHA-384-Digest: yL2eNsPZCyr4z3cmial47gsVWGqhs9SNd6PC40bPRksl5JiBDHUXuaw8
|
||||
g0dXPlG7
|
||||
|
||||
Name: res/i6.9.png
|
||||
SHA-384-Digest: N63wXjQz4QMebNN0msM5tIQDgACAi/IrwMMYrXZEDu4Gm5fZAUwA9zEL
|
||||
iyldY0Yp
|
||||
|
||||
Name: res/Gk.png
|
||||
SHA-384-Digest: cRu2qM2zgEslYXehBIXY3pv1LJk/yrNqxNK0khn/04MJSb0i2E01RI8K
|
||||
QXBcYWht
|
||||
|
||||
Name: res/JQ.xml
|
||||
SHA-384-Digest: piqKhG8lpXvfB+2gfFMPjVsOR+YJm3E17gHpVjDx5OKA0cCNw6KX+Lf/
|
||||
+3J1pTza
|
||||
|
||||
Name: res/K2.xml
|
||||
SHA-384-Digest: htl9Otk0Fpo6R41LYRg1ga9P9/YZPWKpUnFmISzTlQvo7NIVbhL9dPir
|
||||
BXzgu0fn
|
||||
|
||||
Name: res/LO.png
|
||||
SHA-384-Digest: SeoYt28PRSoln6hj4oVM5ntxJOKnaP74Uiney7Hxgom/+Ws3UEkH6ZC9
|
||||
G6BfsiDa
|
||||
|
||||
Name: res/SV.9.png
|
||||
SHA-384-Digest: Jbnlp6UqEocAviJLUH2q9uijEJw4eCNGlqoDVj+Huh3EdpIsphRMB7dk
|
||||
Ue+uyy7o
|
||||
|
||||
Name: res/Ei1.png
|
||||
SHA-384-Digest: +n1o1LFzSHzt22PY2uHgWvj8QLC2sggl4Lat2Qb+97neiNZ5U96fGAT/
|
||||
E75J4NLu
|
||||
|
||||
Name: res/2R.xml
|
||||
SHA-384-Digest: e1pY27f11XRrqx2iMFk3WjAK6f7kHZ42DOPisE8ioTtlyuABp7ODLAyE
|
||||
tn5HZLhr
|
||||
|
||||
Name: res/color/material_on_background_emphasis_medium.xml
|
||||
SHA-384-Digest: hMlfv2lttlpq3zmfhsDQdCG9r8R4dLXs3YH3ib9P4hx5+qHbNeXiPE7q
|
||||
I7UmLcfl
|
||||
|
||||
Name: res/color/mtrl_chip_surface_color.xml
|
||||
SHA-384-Digest: EBF/iWmbYfsEdETb6BMO9mrcaLNH1z8+UZZaIeAm9HhQMx0qTHzKCtRY
|
||||
lWtATdp3
|
||||
|
||||
Name: res/hQ.png
|
||||
SHA-384-Digest: 5IXghwsBUwafpqWxs9mnPA2DQH5RP2jxgzVku1gh/+4v0IrlqgxDhdzY
|
||||
YToUvXlC
|
||||
|
||||
Name: res/zz.png
|
||||
SHA-384-Digest: r2haUUwTBB0xEsz67QY4JI/dkrcYAoz+p3YGY2ivhesCHX5NQjCl42c+
|
||||
zS0561Fi
|
||||
|
||||
Name: res/gG.xml
|
||||
SHA-384-Digest: 7S3SVbl/xYGOD37ftLvR5rfIt9OlvHz1TPsllTyFNH4dSckmB5RoyqLB
|
||||
tyiYaZvQ
|
||||
|
||||
Name: res/Qd.xml
|
||||
SHA-384-Digest: hD5RM8tA/4u7nUJQtpLxy8CqW2ixH5EModvNm05yY7BbMPRznBOrlR/a
|
||||
Bt8YNb6v
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral17.xml
|
||||
SHA-384-Digest: yt3e0YN7lcSYLEcaMY/dxM6EnkZC13qxyjf1EEHT+6z6RGqOhj3pP6/B
|
||||
q8z3mKWd
|
||||
|
||||
Name: res/qD.9.png
|
||||
SHA-384-Digest: SgBpzbcWxKT+19HhkwqkE3xX6ndIbQBmXrQuA6Sd4XnUW6f3X0oEDu+Y
|
||||
yIAaE5q5
|
||||
|
||||
Name: res/dw.xml
|
||||
SHA-384-Digest: 4ksUgdz+hniSfwJcXvIn5LqbEcUDlz040mN8uBfoBFP7osF2knARDxju
|
||||
KFKk3sSP
|
||||
|
||||
Name: res/hq.xml
|
||||
SHA-384-Digest: RolpMcC3NJ15hDWL0ylVxu/wxFqljxPpVw4IWROz1OWFWThDxT7dPVmf
|
||||
nRgf1Od5
|
||||
|
||||
Name: res/iR.xml
|
||||
SHA-384-Digest: 8bf7VHrya4ELV/DrPdNU8r1Gktg81KDCCqUsUAHeCAu1zdNxRhhk+Vg8
|
||||
8cG9xqEc
|
||||
|
||||
Name: res/j3.xml
|
||||
SHA-384-Digest: haIkyttXBtrDQGjSgz8kmcUB+a3kF8ZsEncOlRu1t77O+GKjPuKwXi+e
|
||||
p9AyLgxO
|
||||
|
||||
Name: res/color/mtrl_chip_text_color.xml
|
||||
SHA-384-Digest: TKqIsMI/qAbNcJY0W7Oq+HsCAVAf50WsNujvDg7ezOpsefAuTnk+MpmX
|
||||
BheL2cs5
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_highlighted_text.xml
|
||||
SHA-384-Digest: rQO24bTVC0zJK1pDt41OiKz2JYCSYRlIesdIjOGTLFB0i4/Zb4VKI0ZH
|
||||
bqcxCp26
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_secondary_text.xml
|
||||
SHA-384-Digest: E4IUZyaWsFH7ypRB1//gEJwWxW9KFC9TYrHVW83kwihj9Gxn/yI/yY3U
|
||||
mo/Q1qNY
|
||||
|
||||
Name: res/color/m3_assist_chip_icon_tint_color.xml
|
||||
SHA-384-Digest: yR0LbyDan8IwchldvR6gH9gd+x+0KqH0PvRTLAkZZn0XjVP1MELtcBvh
|
||||
LaCbzD65
|
||||
|
||||
Name: res/Af.png
|
||||
SHA-384-Digest: gRQF5dhXpTN3r8r7CldnCak4GeB2tFqvI0eviGlLG154TT7fhxTCoQ5r
|
||||
lH4lUq4y
|
||||
|
||||
Name: res/vz.9.png
|
||||
SHA-384-Digest: XuCRZxgoNVWVIcag1YsfslqNM/Vf1eLX8y5GrDuqcfJ3XkLa+7ZJ7sLN
|
||||
15lWtnTc
|
||||
|
||||
Name: res/color/m3_navigation_item_text_color.xml
|
||||
SHA-384-Digest: TL5C0WPWqMw03DnQ0LBPTBBU9g/a/5ma2OuPNjbtsAOWaYsVAKHlhXAS
|
||||
qiyJCjfJ
|
||||
|
||||
Name: lib/arm64-v8a/librtmp-jni.so
|
||||
SHA-384-Digest: dMSj7/IaH5He/Kp/5EpTsY0ib56tb8bxX/U0skNOS+mEOi0zSRgxxvsn
|
||||
jd4yf2vs
|
||||
|
||||
Name: res/LU.png
|
||||
SHA-384-Digest: lXIxThxpZU1jkZKu1Vx8n+DemNj+wyEIlsHc86C+0KBKQM+6vpShleRe
|
||||
YEcCMPPR
|
||||
|
||||
Name: res/color/m3_textfield_input_text_color.xml
|
||||
SHA-384-Digest: 9cRBhHTKCJTL7StDRMkQiFLabHpuUpXQfTLCqg/LPCHQLF4EY+/9UzPc
|
||||
+C/EOeO6
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral22.xml
|
||||
SHA-384-Digest: XbjRNtVcQynvqOcHbzO6LVlMnLFFfxsaMlkhA+SYzZaxtNLUTkoWllrj
|
||||
fHW6L+Jf
|
||||
|
||||
Name: res/GI.png
|
||||
SHA-384-Digest: G7Zq3TbPOg856Ro23K+YhA2HerZmBDhWj6X+HEumnfTBUEZBVlfHccr9
|
||||
p6q7Bgc0
|
||||
|
||||
Name: res/80.xml
|
||||
SHA-384-Digest: YzRr91TZPgvhqVEGol5P3j+UTozTotYH80Hw4svQJBNs0yBXJJHmu6nc
|
||||
NA3rFhn4
|
||||
|
||||
Name: res/GT.xml
|
||||
SHA-384-Digest: pEVABE2XyM4shv3HGM9+VELB7NmLhvjwzzeX61wYGYUTop1IUaQ427SM
|
||||
bLK1XMh0
|
||||
|
||||
Name: res/pw.xml
|
||||
SHA-384-Digest: OqD2BpNOKJtRfselfNljai2oJclbZBvLWimh6lFoaNSqciforqs4yVGw
|
||||
aia98jK2
|
||||
|
||||
Name: res/lE.xml
|
||||
SHA-384-Digest: bIuJlFxJenmuEWMhU4R5URXjUH5FG/1one01ghuhXhiKhlSfu1LX0CJH
|
||||
h99mH3ch
|
||||
|
||||
Name: res/M2.xml
|
||||
SHA-384-Digest: OWdTDOCJUrIFqBIB16t7PHzyLpCuNOWdhmrQUcySIphr8Dq6cgTfIGd2
|
||||
HwRsaViC
|
||||
|
||||
Name: res/Tf.xml
|
||||
SHA-384-Digest: SNRbwZfbYNjevLcKgi1CT6NNXQdyh739+jx4kWttjmmV5Zb7LgNO0LXN
|
||||
hGWgTYjk
|
||||
|
||||
Name: res/kN.xml
|
||||
SHA-384-Digest: pOv1rqENVipdRxqrFaBSCbGC3CqBZsYn2OPzCJWDpuIHRFzbNdkzAgzI
|
||||
KCJYkTlT
|
||||
|
||||
Name: res/color/mtrl_card_view_ripple.xml
|
||||
SHA-384-Digest: LP1KwU6DoYN2hlhv5ZlkxCYPlpMzUAGzOHKwbHJwulse1mj3w49Pi4dQ
|
||||
gEz3gt7a
|
||||
|
||||
Name: assets/shaders/fragment_shader_oetf_es3.glsl
|
||||
SHA-384-Digest: rZr+0elJV8z/f3AcHlbfu+EArWpdncKr++xcZvJWry5Q/VK4Cam8seoQ
|
||||
swN0x0bE
|
||||
|
||||
Name: res/U8.xml
|
||||
SHA-384-Digest: pTVgltJPQklL6ayPkC4PTkUcWDPW7U8hCH1hd6J76wupRhtiHX29mSU/
|
||||
Hqw6e3K0
|
||||
|
||||
Name: res/IP.xml
|
||||
SHA-384-Digest: 98W3s8Bl3KJmmRWbUhv29cuSxtEfR3jnBooEzZxxub+uQ+HWQOzTSHB1
|
||||
LFgHSuOS
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector_colored.xml
|
||||
SHA-384-Digest: Bwp5RIP5rglJ6071TV2Rh68U1fJJoE+X+4RxrTlpD438/gMOKphKOFZO
|
||||
7JPA98mp
|
||||
|
||||
Name: res/gl.xml
|
||||
SHA-384-Digest: 1WnYZ7SS8agO94k1UsIPRfgQbecbxsIifJsUQHOGXIck1buSgmL8NUsP
|
||||
aYvaltkW
|
||||
|
||||
Name: res/hM.xml
|
||||
SHA-384-Digest: be9Cw3MxaHWFG8oq6wVTGWZ7/eNht04u3HF1HT2mLRWZRMr3E6/7IVn1
|
||||
2ypStUdR
|
||||
|
||||
Name: res/L-.xml
|
||||
SHA-384-Digest: 524aIDKHDV3QBXA9eN0FOP7GemUOxdipgTelJqz36ThU4e6Uic31Ecwg
|
||||
4CfGAFuu
|
||||
|
||||
Name: res/Yw.9.png
|
||||
SHA-384-Digest: TCD1g+djTcu7cqXqffkOB4QKgq99vYlhw0qta0aKmWYNgllpQXboW1fl
|
||||
Xvu5Kdmo
|
||||
|
||||
Name: res/3b.png
|
||||
SHA-384-Digest: ok2B+0Kvv+dYGUXZUv9lPtWHb3wbNRqGtnrkfZKSouP1kcZJN3pGkQGu
|
||||
cybOlX+l
|
||||
|
||||
Name: assets/test_polyfill_date.js
|
||||
SHA-384-Digest: ufzUMKu5lhenAWlK8pFvf80KvJHmHX+G+mfxQ3dA4IOOuL3m8O9+2/AP
|
||||
syurURE+
|
||||
|
||||
Name: res/li.xml
|
||||
SHA-384-Digest: G14ONZW82nrRmBgvXzex4P5yg9ZdOvXCdMEOyUTUpbU3TxO0l89ffb4m
|
||||
RmUt5w2G
|
||||
|
||||
Name: res/4v.png
|
||||
SHA-384-Digest: 1R9gjkJhNNd/pZL1KlAcEC7lFpJ1xIklX4iH6ASRJ2uPBVpft4fqelyd
|
||||
nDnCHpRx
|
||||
|
||||
Name: res/68.png
|
||||
SHA-384-Digest: LqravoC/brjJb1k4PdsKmk7W096g1nzWl9DX7/svlFLWZxHBFVtvC+i5
|
||||
BQKH7Vvh
|
||||
|
||||
Name: res/Be.xml
|
||||
SHA-384-Digest: p7cpRGXRQpm9f/zCWikT+Z+39xDVMRxX6K1vfreE/DqmW9dZFu4zX0Du
|
||||
ojo6qPIE
|
||||
|
||||
Name: kotlin/coroutines/coroutines.kotlin_builtins
|
||||
SHA-384-Digest: Yxy8O4XTB7f5KjCF164NhyA5nc3MA2UaJDs48FsEmOe6s7r/DGqS47eq
|
||||
YdWFQ7fX
|
||||
|
||||
Name: res/color/m3_switch_thumb_tint.xml
|
||||
SHA-384-Digest: KgJXXlUGUNomuH55/O6pNEzpP+RcJfblDgpVfhTK3Vf3ew6zC+/W8vTf
|
||||
hcmlwnlm
|
||||
|
||||
Name: AndroidManifest.xml
|
||||
SHA-384-Digest: HydzKdG97Xkb0jmilvqk/zXv7RpXeZ/FqYIkjV63EkBBxZN+au15o3jB
|
||||
yUfDX5Si
|
||||
|
||||
Name: res/Lv.xml
|
||||
SHA-384-Digest: dFTVzwCwsxXEkUGUqaARVB+LhhdM6GFZW4PNNx0bUMK3AatQYIGChxPy
|
||||
5mcdpzn5
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant6.xml
|
||||
SHA-384-Digest: sqlfS6E21mz0I04zZteL7xu1xN0AyG4FckLLnCy3aDlMLnvSMQw/yoUM
|
||||
YQC8h0y7
|
||||
|
||||
Name: assets/test_module_import_dynamic.js
|
||||
SHA-384-Digest: KsKkSM9GnMdAZxaLAvxsOJPG3xVNu8OeGGbPFrbv3AVUKAidGv7rGxvn
|
||||
6vHXK+j5
|
||||
|
||||
Name: res/uc.png
|
||||
SHA-384-Digest: 0rGeP5kR/e0r/nQpbg9Yr2NUTRjK/u13e+csVUeElMhU3YES0AIt6nri
|
||||
Yto4uMkU
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime.version
|
||||
SHA-384-Digest: yaAB6eagCLWmL9/WQCnCuN6WQF5HZExKlrmZiLx0ug4YvS+CMpBcyYBD
|
||||
5ywx7JDc
|
||||
|
||||
Name: res/aU.9.png
|
||||
SHA-384-Digest: p12FTugYakzlErr8gj807IVsFsEwLiPN+FniDg9e7vqVocxdrPVL8zeF
|
||||
WVilZu2K
|
||||
|
||||
Name: res/nP.xml
|
||||
SHA-384-Digest: BcWd2YoOM3Yagic9RqW6qsi3HSRmSClDnZPD3H0i1lr56yXolG6lePrD
|
||||
53QZ2NXY
|
||||
|
||||
Name: res/zG.xml
|
||||
SHA-384-Digest: s3j9IRuSRe16TDt52X0pSPUCEpcZ/nUgNEprZP67FYAndmh3iVTzJRmJ
|
||||
NU1b8Jr+
|
||||
|
||||
Name: res/1W.png
|
||||
SHA-384-Digest: sxPsSE6JTEg6stjGYFip8kR4MGESnNeqxlVMSP8I5VsQTz5TbdQ18sav
|
||||
JXFJTI3i
|
||||
|
||||
Name: res/8y.xml
|
||||
SHA-384-Digest: wIsgZVbAb9GtQ8yZDLh1IYUBq+lMd4ZIfof2i8pr4sktW0Rmmu2nurV7
|
||||
HqtVbkx5
|
||||
|
||||
Name: res/k9.xml
|
||||
SHA-384-Digest: gLCF2I/aAyr0gPnff4tL01Sy+gTOudRYsnewX/I6bWqSmD2FJvNJ72Ja
|
||||
Or7OObXz
|
||||
|
||||
Name: res/4R.png
|
||||
SHA-384-Digest: Px/AxBCvwDFFYNV46XilxY7MufmVdy6j9PbTb8FTMbtvTPHTW4EBG5yH
|
||||
Qui6cxWa
|
||||
|
||||
Name: res/hb.xml
|
||||
SHA-384-Digest: Ia2G/FGD3m2l7oWJRVE4bHwocAmL/nK6P91Qjt9BmQmSMcnYEmsbqgtq
|
||||
als+2Nqs
|
||||
|
||||
Name: res/V7.xml
|
||||
SHA-384-Digest: /8z5xySz3jnWHCaTBntghaT8S6Tc690+65TmEZPykXElHq96En3juD8J
|
||||
vDrzaHiv
|
||||
|
||||
Name: res/QH.xml
|
||||
SHA-384-Digest: xNt3CdfZ+AtiZ8/7XPx9Fak/46WJJoQzPI80YqxMHo67v0Vh0+w/0xpk
|
||||
CPIUmnVR
|
||||
|
||||
Name: res/YN.xml
|
||||
SHA-384-Digest: 2rGNcObUVtUWuaDBnEUAAFR9t2Y/VrGKfvE+pgWJF/SklJfT2rkzXlv8
|
||||
ZMCcbxVC
|
||||
|
||||
Name: res/Wz.png
|
||||
SHA-384-Digest: DblED9inSYszV+iGRcrceP8EZ4cFvzf9Vfg4l/7e0vQ6K/3BT8Mz8oOP
|
||||
gr99yyba
|
||||
|
||||
Name: res/vz.xml
|
||||
SHA-384-Digest: x/3bZEId5HOhe7mR6uKKK5HLP7lncV70W8d9uDw3YEo2d0fJ7GPjVpZT
|
||||
tyYj/2U7
|
||||
|
||||
Name: res/Xf.xml
|
||||
SHA-384-Digest: 99bCKlf/JEhFk+3qxhmJeYL+SoPT++3n21nohhIVDmzK5jQ8AFTatXLw
|
||||
JAdHtoPW
|
||||
|
||||
Name: res/YG.xml
|
||||
SHA-384-Digest: ZQv3Fk/RrViVhG7CmqLI7b5guEqrtuOMjCb1mg4vAdyJ1uFifcCI57nX
|
||||
gE+VQ+m3
|
||||
|
||||
Name: res/Od.png
|
||||
SHA-384-Digest: K/YBkClD+1vifO/NKCxecfkGmOlKmxpKTPKEOmHJ3uyhSTAWtB/KVPYG
|
||||
jeLwPWlB
|
||||
|
||||
Name: res/aM.xml
|
||||
SHA-384-Digest: PBD2njqFIZEIFaNg5Kv0a8zzmOSuvlw7w0N2Hk8GxCfqQE1Mp1jt6a8z
|
||||
PbYNvmVg
|
||||
|
||||
Name: res/qI.xml
|
||||
SHA-384-Digest: yXOZMD1NNVow2MSl5545G1xQ5r3BkzvVuTjkOMu1tie/X+BvQr/vzJBt
|
||||
3rTmiNmD
|
||||
|
||||
Name: res/Aq.png
|
||||
SHA-384-Digest: gudBWfAFJagdxTpkd+3RQq2ZSOB5sdX9XX53jeT2x9crRKNnFnRSp/c+
|
||||
sKTFA5FZ
|
||||
|
||||
Name: res/Xz.xml
|
||||
SHA-384-Digest: Lxgl7AaW1XF01UCgWsmzNijU9lM+9O14DWsP1T4WlEZa3e7jMr2Q0CXl
|
||||
AMMdrAcl
|
||||
|
||||
Name: res/_H.xml
|
||||
SHA-384-Digest: 6k2Y6RdflAAu/5MBmh9aA3A0mGwem2IJdZLBLfHqUj+faz5Ye+cijBwt
|
||||
+u3jI/t+
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_tint.xml
|
||||
SHA-384-Digest: ip5+l7mXhXTe3oBqzootdWZ/nxWMGYvtfaMdG6hFo7VrVOcLRrp56rrL
|
||||
BIGWj0FL
|
||||
|
||||
Name: res/Mh.png
|
||||
SHA-384-Digest: k6V8Y6wj3bxNtVJwj6Cn7/1FKl5FSoukMG07kcFBeIlEFOPg8TIHdGx5
|
||||
a+Xd7YlN
|
||||
|
||||
Name: res/YD1.png
|
||||
SHA-384-Digest: CZdVfTUyBOldmchvO/3MMxaRT9bwvOFrKi7zzRJ+OsJncbjuGk2vxuJ+
|
||||
2eKvIKhy
|
||||
|
||||
Name: res/color/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: fLIK+GSrKtwDJ64Ts+X3y66wVcqzsKvWlzVrv9F4g0oyR7kINpfjKExm
|
||||
NcR8BdjA
|
||||
|
||||
Name: res/color/text_episode.xml
|
||||
SHA-384-Digest: 6pDD5wKQNsS46LDs8hCEJ9737iBZpA4s+djZewNSoiQLojysbVUvJ8g/
|
||||
Uruo5NKz
|
||||
|
||||
Name: res/EU.png
|
||||
SHA-384-Digest: 4cIIhAcnkubmh9ns3zErFnt9h89VIwSmdFdwZIaSdNPl2XTYBce4ErjI
|
||||
qZVB5teP
|
||||
|
||||
Name: res/eI.png
|
||||
SHA-384-Digest: 5oitDL1BGiwSViEUkU7T3JYPrzeXJXOBoNDL1eR2YvaJkC+WfAyHEhWI
|
||||
WYUsfTn6
|
||||
|
||||
Name: res/Eb.png
|
||||
SHA-384-Digest: fMoUvrf8IRMfCWg3myVyK/x1Xy6wCfL3meSekfjOv389M7HB4kHIrI1b
|
||||
rqus1P5Z
|
||||
|
||||
Name: res/color/mtrl_filled_stroke_color.xml
|
||||
SHA-384-Digest: GgNufGCgYMsy7+VnzuFK9n2HaXu+y/zFZkm/fduebi8SvWS13zakD3wb
|
||||
xUw6t9t2
|
||||
|
||||
Name: res/fN.png
|
||||
SHA-384-Digest: Cxifa7MlxCfPcVkVW9d193W0XJmQPtd4zWJ6wVT/1B4sQtrvwPk68Yyr
|
||||
tBY/Ipjh
|
||||
|
||||
Name: res/hS.xml
|
||||
SHA-384-Digest: 15K3XF/8P1wAZUGwv6ucTzyuvP7tNCg8T1H0cyMg8BoWZCE0SQOrJYE5
|
||||
ZUIOP2Gx
|
||||
|
||||
Name: DebugProbesKt.bin
|
||||
SHA-384-Digest: +I6t+9bBNLukGTkuW0QM1GSInoixxsGSLyv6+bzzCg98kneNpoKPjlq0
|
||||
Zrgnd24w
|
||||
|
||||
Name: res/fW.xml
|
||||
SHA-384-Digest: su6glkqpeb332zcTARn79iezSLDM5t6RHZUhtdqgBOcDC8j/xWD6sFS3
|
||||
tBJAQfXc
|
||||
|
||||
Name: res/wy.xml
|
||||
SHA-384-Digest: E7h74b98RSoRvHfhkK8oytREiNc5qosu6jCD7oRzunPdRJQaphT61lgi
|
||||
8tGNYbjp
|
||||
|
||||
Name: res/Ci.xml
|
||||
SHA-384-Digest: sMhQCoxwjI7pT3/FdkVFfRF3d9vzVAl57BO+CG5L098a3JRjL3P3dhl6
|
||||
f7vs8Tft
|
||||
|
||||
Name: res/color/material_slider_active_tick_marks_color.xml
|
||||
SHA-384-Digest: 6ThEuZRsA9ZQiWyeAU4+Ie1PiRt1GXbpiA5WxARtfTdhE6k0/8NEvdOh
|
||||
dX4vcPEc
|
||||
|
||||
Name: res/dP.png
|
||||
SHA-384-Digest: QX4lMGGFILUtCyfvz4LPl3RLVYUX1R/7kJZE6KANKQs/Z3hTEp1qldFK
|
||||
4GSeIRJZ
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral92.xml
|
||||
SHA-384-Digest: XUKWSkrQlOXPGkocaqxTfFQmrMeA8ZRAox5lm26mM/CEpqiGejYJPp0E
|
||||
aPZwmn5C
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text_inverse.xml
|
||||
SHA-384-Digest: C0Uj+FOWLTs73sORb/HpoYMGKG/X4Org712kJm5LU6TPRc3CHmKGYF4b
|
||||
wHqKmRsC
|
||||
|
||||
Name: res/color/m3_textfield_label_color.xml
|
||||
SHA-384-Digest: cZxV6kbRB30Ge/T42XRbLcR/nYOqQSAA3QSxZQbcsWQJGXsxLvh6+IYZ
|
||||
xg8nzvhO
|
||||
|
||||
Name: res/o9.9.png
|
||||
SHA-384-Digest: wEaQJeS/2f1x4e61XcFA9Yz3EBjAbKfyPQWjWZJHyNsjncSEfPOZ0uPr
|
||||
mUWojXgw
|
||||
|
||||
Name: res/zo.png
|
||||
SHA-384-Digest: plwRg21oS4bpA0F/oEFHbqKDIv3yQtve6pjXPKYAL3wZeo286iWj/UqH
|
||||
zQSJL154
|
||||
|
||||
Name: res/1w.xml
|
||||
SHA-384-Digest: gA+8W51sCIkHUrOvz89YE4rjpM0+h2TXEWWKT9SGsMSrT5AG7MRER36d
|
||||
S46DHMlP
|
||||
|
||||
Name: res/WP.xml
|
||||
SHA-384-Digest: INADClAANC78JHcHLGZ4PWM3fhZb4R4O5k5VUCeMCrmO9SC9Dgkdx1AQ
|
||||
N0KvwP0j
|
||||
|
||||
Name: res/X1.xml
|
||||
SHA-384-Digest: z10yS44TvKcw2zEuS72decZd2K09klcmWD7UVj9ieTroWf8mfES8S562
|
||||
KYFAXpwP
|
||||
|
||||
Name: res/p0.xml
|
||||
SHA-384-Digest: ujVc+VQV1KE24l/bNCVVGbLRRYZ4erIawtLM/p4HsIWiTV26jmu9MSHO
|
||||
LoAQyiSm
|
||||
|
||||
Name: res/5m.png
|
||||
SHA-384-Digest: 69o1L2KD/PffMCTkPRDGbqSfu8/G1XAMsMH4ibaKX3u+prny1Uh2cld/
|
||||
fL280fK1
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color_legacy.xml
|
||||
SHA-384-Digest: l7yAiawORObJXiDfDHj4kdRg7zFXWYfcFgr5a4Y9A+Ok8cRaUZb8ioaL
|
||||
PUzNwUHV
|
||||
|
||||
Name: res/NZ.9.png
|
||||
SHA-384-Digest: lbhPYxpNFWWXgEyXoRkeVyTcCPVMODUAsG6y2M+mMmV8Rx3rT1vH2akq
|
||||
xJ0J9NU2
|
||||
|
||||
Name: res/lV.png
|
||||
SHA-384-Digest: zvCEGC9HBf6J21pYYH0DgZeIGPQno+pZ8K0knDlxVVFxn66j/N5GZuI3
|
||||
CYSMW8iR
|
||||
|
||||
Name: res/color/m3_tabs_text_color_secondary.xml
|
||||
SHA-384-Digest: uCpBjQXS8vy9EDWYo9gX8Tuyz8mv/7KFwYJRpUcakJab9xJIe4NoyxW3
|
||||
I1F65QiP
|
||||
|
||||
Name: res/w_.png
|
||||
SHA-384-Digest: 2pIXb+TxMD2TJHOowb3Cm+LQ+rEkC6/WXk0zX+k9dah+puF9t2RX9PsE
|
||||
d6NX2gOz
|
||||
|
||||
Name: res/color/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: h85rz/cIeHYgUsvPdBYl421PD2KMs8VoIiwy4h5xIGYb1yDfjmmE6DL1
|
||||
CG14VY9U
|
||||
|
||||
Name: res/5U1.png
|
||||
SHA-384-Digest: ZCfE+UJQua5bdJ5obOWZ3qkmiW0BFicCGBtUnQG2QPEOeSI+WxRCPd+R
|
||||
nqfoTxD+
|
||||
|
||||
Name: res/lR.xml
|
||||
SHA-384-Digest: J7KR61VfAMUADUAXs1knbQ7siE9l5p/6RMfkmSIeh0SjR55ICJUqaye2
|
||||
EkYX46Q4
|
||||
|
||||
Name: res/color/abc_secondary_text_material_dark.xml
|
||||
SHA-384-Digest: PifmH4QaJTwS/zWyMkZHKOSTeQVmmt0PBKqHrjdcwDyS/lyf3U6/utTJ
|
||||
0PQE4/wD
|
||||
|
||||
Name: res/JF.xml
|
||||
SHA-384-Digest: eY3c6wCiHDxvUftBn1A9MlsO+gncgby/NGR7/ruddOCeRs6QXrbeUgNP
|
||||
omhK1kpG
|
||||
|
||||
Name: res/xM.png
|
||||
SHA-384-Digest: fu89R/DUJnZKjNsY/5yTIM6WlKw4EEOQuyELbw867QUk/VHPVv0R0A5B
|
||||
+kz+oUWx
|
||||
|
||||
Name: res/ck.xml
|
||||
SHA-384-Digest: frMaorVmG/3l00muYRVzoo6DUWcpDsejnjyjJQ5LgV2uFcHaOh2IO0XF
|
||||
v0JlQoqW
|
||||
|
||||
Name: res/e-.xml
|
||||
SHA-384-Digest: aVj5j0oCPO0GSoUDeP4eu5QzOMKEztumj17IRyCUzeT0XM3uTTdcjVIi
|
||||
LD1QxeuQ
|
||||
|
||||
Name: res/rd.xml
|
||||
SHA-384-Digest: +a+FFnar4TcNfp2A6M8Pm2E7XBRmK5NOegOxdHa59hvE3kEUoZZO/Q69
|
||||
GLZZQpgS
|
||||
|
||||
Name: res/color/material_divider_color.xml
|
||||
SHA-384-Digest: TjoU7G88WbzJFqtpDvNZFANSo9fx9mu7v/GUXrDTcqL8bn+YhFjeFDLG
|
||||
ByKomgRj
|
||||
|
||||
Name: res/D4.xml
|
||||
SHA-384-Digest: y64M2hrRi+YQfsksX3NuJ+QCZrZF8VOXuT80SczeIL9+dEv+daWx69CH
|
||||
E0JP8rhL
|
||||
|
||||
Name: res/_q.png
|
||||
SHA-384-Digest: /afRLwIQlk3rL4VICmla3v1hxToa8agYlWmvKN5a2PEryvV2vK1uihea
|
||||
D6v7LRuz
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant87.xml
|
||||
SHA-384-Digest: 8OmGjzUGqFYFibb4aLlRIz7AYM7TSk6yuKeyUcu+SMESSKyMJh/5TqaC
|
||||
pi2uVf0D
|
||||
|
||||
Name: res/Wt.xml
|
||||
SHA-384-Digest: kzEU4NfqJQxS/cs2z/MRGftjhuquoaA33EqQ8J0qnfCO+x4qLMpP+B0/
|
||||
HrGLEREw
|
||||
|
||||
Name: res/fm.xml
|
||||
SHA-384-Digest: EuMyQUj1lZGKa6w67Pic+1A22+ToYb1jLvjKJHYn4a7o9V0hzjETOKit
|
||||
Ctk/+zkv
|
||||
|
||||
Name: res/78.xml
|
||||
SHA-384-Digest: nKXulsnznr4QBTwh6dO5JK887VlKMxQmi59UXTyN5zwPKT/imZb1AejC
|
||||
NElQfQRN
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_fr.properties
|
||||
SHA-384-Digest: hMTSFBPtpfkcQN7yuGoER8NsghXffiSIErCHiWNo1ehpvJqsE4ZU+f4S
|
||||
JoEd1/59
|
||||
|
||||
Name: res/XJ.png
|
||||
SHA-384-Digest: K+vW884CTc842dE5nejSJjFg4ST/OoPAy1/Rv2gtiV/Ch66ZnWUtjgDf
|
||||
MVqqxfmQ
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_oetf_es2.glsl
|
||||
SHA-384-Digest: NytODzzloULyLR1gPboxuuxilD+s1wZn5F5fWXxvDrbC71RQNhgjNxGS
|
||||
C8SUfiX9
|
||||
|
||||
Name: res/color/mtrl_calendar_selected_range.xml
|
||||
SHA-384-Digest: zKBeSmC3fmOZs+zDYvo1urAEY8zQ/cMSWEquikgrIYZH4h0Ci96rapmL
|
||||
UHb9sK7w
|
||||
|
||||
Name: res/gc.png
|
||||
SHA-384-Digest: ZjXa4TN8of6oZ3gBH+/aOUT2P21PIsAa8FqAATon2E+bfPX1VX6Nfkxm
|
||||
Sy7vJ4gD
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_text_color.xml
|
||||
SHA-384-Digest: rMZDLvZONiQZ0v9TVmvRItz/M7K3+3PIuhKPveONMHCcM2o5QTRBd1Rc
|
||||
3VCfDLSy
|
||||
|
||||
Name: res/yH.9.png
|
||||
SHA-384-Digest: Z/IWW8ZWw2gO43Jm+3aNWu+C6uarK+kv+Qi5F8ohjX7CEMgtvuTr2knt
|
||||
bfQQv26H
|
||||
|
||||
Name: res/vf.xml
|
||||
SHA-384-Digest: AvL5OabN0Zi9AcMNNBWEIPftzyjRAnJLiUK1HDg/f8sFATHCqzuHAhX9
|
||||
Hw8j7/d0
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: 4FIE5FviiAOKAR6a8eSFKwtD2kjUeCS7RO/KpjL2dNPhf/N5bxiXFyiX
|
||||
HlJ4fEsd
|
||||
|
||||
Name: res/Ra.png
|
||||
SHA-384-Digest: Tr8tJASUKpW0EwB/k0bh+9VrtPgXtuKKX1rXGPlJXqCap+Zb0oVHG8HP
|
||||
Tej9sGXH
|
||||
|
||||
Name: res/color/mtrl_navigation_item_background_color.xml
|
||||
SHA-384-Digest: eqE9g6yxzIZTRtcZyIdweMh3rwWFN9QvmCkRXandoY+DTDnR1HZWNSJA
|
||||
6FyKujba
|
||||
|
||||
Name: res/color/m3_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: /AWZoWCnF0csAUCtKDJuMynCKRpCPWB5nNLpnDKLG5k+RFOAFKik3eSP
|
||||
jryIgTKc
|
||||
|
||||
Name: res/nN.xml
|
||||
SHA-384-Digest: bHYRFj2PMGQGZ6WiouraUUI3Qr2jvMgWn6R0zbcfSJ5817ncBTqK6sD0
|
||||
9dXQrKmB
|
||||
|
||||
Name: res/ua.xml
|
||||
SHA-384-Digest: U0bGqXxxznKRVSWjFKJIi3zWySYM7xOcJ3rEMgtRaEGNSnZ5NNq8zdnP
|
||||
FSizWNhn
|
||||
|
||||
Name: res/gj.9.png
|
||||
SHA-384-Digest: 8hyJtLsSQKJvC23VCJ61OcyA5K5W+Q0NW8lmwHMMDPHwS4x3eZNKE98V
|
||||
EfGtikIV
|
||||
|
||||
Name: META-INF/versions/11/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: VTx5uIR8bxx/gBT7SXcGbuYdGJU0xmrYxz+0wVGRPf3BJIZ4lPuT1zCD
|
||||
7sNpGc1U
|
||||
|
||||
Name: res/p8.png
|
||||
SHA-384-Digest: qLE25rP5R9pZoqbzqB+mLljYF1Li++1LQayZlJUKMgU9MlHsAYrSEcyO
|
||||
sHJHwiQw
|
||||
|
||||
Name: res/X4.9.png
|
||||
SHA-384-Digest: XAK/ybwCqwgqe201nWFgdLeiQTiSc9bqvLc+qODQygy5ypRC6bQ6vuDo
|
||||
ddP/ZLVr
|
||||
|
||||
Name: res/W3.png
|
||||
SHA-384-Digest: NmZnJavXaJLFFRAYIoF1EaQG+EPe3OTDjJgwppUAM2KCFw9sOKyJBvvX
|
||||
asVUcVsa
|
||||
|
||||
Name: kotlin/kotlin.kotlin_builtins
|
||||
SHA-384-Digest: vWDFjzd8cNvGLYY+XWfmrG5ZTXmWcMBdDihc4DQBPfsMFnhiJp2oCfBD
|
||||
ATYEdtv4
|
||||
|
||||
Name: res/2i.xml
|
||||
SHA-384-Digest: hnx0IpMaH/4ARdnAdCfoKiBlGBiA8W8g00EGA0pXmU3wAMXrEzLo4Xwp
|
||||
ato1k4s1
|
||||
|
||||
Name: res/3J.xml
|
||||
SHA-384-Digest: Bk0svZE5wZOBqjWh+l/bfkb3D4Xsjy5YDOA0HAtllTJSVRezK2t1a+3k
|
||||
PJ/aQBXd
|
||||
|
||||
Name: res/o3.png
|
||||
SHA-384-Digest: VW5bmjSCUR6eKiyiMBtJ7LjAXBqfC18aay+dKTtRzjHfjvDBp6uaKuhz
|
||||
MYstwmj9
|
||||
|
||||
Name: res/vJ1.xml
|
||||
SHA-384-Digest: dSXRtUjmCxqE2spe82/szFyVq1C5wlPQisAzN+YKV/JKyJ5Xj5eDHpuY
|
||||
WW47GBWy
|
||||
|
||||
Name: lib/arm64-v8a/libxl_stat.so
|
||||
SHA-384-Digest: OcyK2blKnQYGzXngIAxpt82sBBBx+hZcnmzAXyzR+3OGN3LTHVtZex2e
|
||||
Ce4b4Kof
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_colored_ripple_color.xml
|
||||
SHA-384-Digest: XlsQSd408HOGKEkaJYyzKyvTDRwr6MtbeKqfbmOTT7i8yegLzn6sNzpM
|
||||
uzzIdXRY
|
||||
|
||||
Name: res/g-.png
|
||||
SHA-384-Digest: 2AG4Dr8nPOmpAc4yEWCe2k/YW9bl8hDo0Dn2F9Hd0v0+DlZ4DC0sMw9/
|
||||
ZpZL9WQ1
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata.version
|
||||
SHA-384-Digest: c0W5ZSoXCl+WxLGxK5D1k2FgCuPgbQ7Sbx3hroVlPaKlXHKLZcrK8D3n
|
||||
ykGOwL+x
|
||||
|
||||
Name: res/0M.xml
|
||||
SHA-384-Digest: yP5YwMOKPfwLAsa15CDAaW6OookJ3DCqGBGdZNXbWUU0PIu2o4bdzY3W
|
||||
jzjrC864
|
||||
|
||||
Name: res/4P.xml
|
||||
SHA-384-Digest: ySY0srSOyAJrWFatZR9SEhIDr6bUJMRxnTLuqaNfzP+3msrLs38tV9Fg
|
||||
M9yP51by
|
||||
|
||||
Name: res/51.xml
|
||||
SHA-384-Digest: avHlH453/Om7+Ev9zVTM9NjYPgsv/UHO1A4kOP9TMjQZV8j1r6FGKxhE
|
||||
joObH6HR
|
||||
|
||||
Name: res/xa.9.png
|
||||
SHA-384-Digest: 1wPBd3D5o7RCHJzHplvk3Yuvcb5SjdwUw+Jpc8ixG2rsxAexrBQIx/py
|
||||
wosXPYkb
|
||||
|
||||
Name: res/TC.xml
|
||||
SHA-384-Digest: MAJ8xLEPA8Zz9f2nqUKtkJ7i2UR1P76CcWNov0C+s5e4sxRY4CdfcTFf
|
||||
F8YJ1OD1
|
||||
|
||||
Name: res/qK.xml
|
||||
SHA-384-Digest: 4xhf+MQdLB8FR2SlGi6h3OZo7CYBZo77pbOgTP14Si0B7gDhWCi5O9Pc
|
||||
aXV2orzb
|
||||
|
||||
Name: res/G21.xml
|
||||
SHA-384-Digest: bZFW+uM0DAFNXrE/evmEJ9WAaiAth0igNUicOvX03IPvRioP7Mk3Ybq8
|
||||
YRRMIlSo
|
||||
|
||||
Name: res/YG.9.png
|
||||
SHA-384-Digest: H5u9RxEJ7Jw/1VX7NDPS6ZDsGCm4IlJIDH61hbERsdBx9Q2AT9+LjxAL
|
||||
r68a32ve
|
||||
|
||||
Name: res/Lt.xml
|
||||
SHA-384-Digest: BMx36C04rGsqx+drs9+eanCIw0givyfXIoULQU2k0tdehLuNy+CKI8Uz
|
||||
WzBk46gv
|
||||
|
||||
Name: res/MU.xml
|
||||
SHA-384-Digest: 9C2gCZCX7LpmiYhtNPszsO+l04pM4VRZSzBBxEQL6j2tPg2VaahM0hDX
|
||||
e1vWUrNn
|
||||
|
||||
Name: res/color-v21/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: n+YHGVvulm+8zX0slTideovwzQ3qS2stZUoGSXwKdgagyoahcW+x2em+
|
||||
3LjJIBa9
|
||||
|
||||
Name: res/xu.png
|
||||
SHA-384-Digest: L8jIolZ6L9OClMEgkQQ+Rf5xqq/+evwzbpY3PXlab8JeX35p6r4nrMV7
|
||||
C7BrcUsz
|
||||
|
||||
Name: res/66.xml
|
||||
SHA-384-Digest: 1JbA6t5QiGugyK1gZ49v1jL7NmEt+jMs0co1LkocAqzmS4z1OpPkg0pB
|
||||
bK3gEr8q
|
||||
|
||||
Name: res/IR.xml
|
||||
SHA-384-Digest: 8m57CiFwyxYhbxipvEFMYaRlw1bRc0BtjHtBhIClVitMygiTD5KjH7BJ
|
||||
7bfEElJ5
|
||||
|
||||
Name: res/color/mtrl_chip_close_icon_tint.xml
|
||||
SHA-384-Digest: SNnChWNvli7Yl6Oi1vc4yOYrUjwdL25cVkBytPBkI0E1fGn2a0HUhJAE
|
||||
G88i4Kw4
|
||||
|
||||
Name: res/BJ1.xml
|
||||
SHA-384-Digest: Fj9FqSnRPE3p85tQ2kk+TVu/fI/dRcOYzZusmBFLRbbVVKFfMpisQJ4W
|
||||
q9k84ylc
|
||||
|
||||
Name: res/EA.9.png
|
||||
SHA-384-Digest: AKhfZQ1XO4/hUz/MMqc+/2KMmJx3fvanFPLQXMT4d6hgf97I08eCuZvE
|
||||
2BaKoROV
|
||||
|
||||
Name: res/VN.xml
|
||||
SHA-384-Digest: y+jB1Ks14PGTKSr4RaEdwFxCudqcNNJsDVgd96Tu3DSIPmts9m9Ruqgd
|
||||
HvIuVwgP
|
||||
|
||||
Name: res/zV.9.png
|
||||
SHA-384-Digest: ZuSsXaooIGNOvp17FG4bsrCBn0ArbBQGkG7IlPycd8NDLuVs06ZjzLaP
|
||||
oB/CQwDX
|
||||
|
||||
Name: res/U81.xml
|
||||
SHA-384-Digest: 0THq/SqxPz0UJ2Y4lMXMeYJdX2LBobXsk78DbxNnFn0QDtk0OLrtevku
|
||||
FfUXz3eo
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: zAOHE49MRnjxgncCEiQqxv1l3XvGXRPO6eaJV1Pttbm6FSPxDabVcPqf
|
||||
R7BTp8V7
|
||||
|
||||
Name: res/fY.xml
|
||||
SHA-384-Digest: Q1LNFrHQK3WdRKm8ZGKEApiGXoyOJd+krqbaANe4yQlrIsT32uzLrc66
|
||||
1iBuWXJ0
|
||||
|
||||
Name: META-INF/androidx.window_window.version
|
||||
SHA-384-Digest: NCJWomCrDsQXflxx/D1CuJsR0kxQWTkrOmEzObcJ0J7i+L067hJeXB7y
|
||||
W/t8EmeA
|
||||
|
||||
Name: res/JD.xml
|
||||
SHA-384-Digest: P4Mr/JqsYU9pLP11tV/t1fgEZWZphKyYBM/YtaQP2b0eG/o+ioC5/fSw
|
||||
TicvZKpC
|
||||
|
||||
Name: res/color/m3_dark_hint_foreground.xml
|
||||
SHA-384-Digest: 7VOvH1hqEjI8dPB4ApqRTHyKwxxpNOZfVRbzVssSpcPs2yLtrPbXSYCo
|
||||
dN3cY07c
|
||||
|
||||
Name: res/Bz.png
|
||||
SHA-384-Digest: tV+HJ7C/zlz64QwiEGKuP9aADieMRuQLNriexpKlA9QQYMxgdQTjM7zr
|
||||
SmT4WkEw
|
||||
|
||||
Name: META-INF/androidx.media_media.version
|
||||
SHA-384-Digest: ZEAFSZQkLs5nTPt8JejRcIj15pnGek6KRV7dVMyAEWD7gqVHJD/+9RXx
|
||||
3el/aZPK
|
||||
|
||||
Name: jetty-dir.css
|
||||
SHA-384-Digest: KrgFnZ0fR3W+NwpvHRSA61cB96kkKuQmfZvr4NDg0+kFQoSfTmrOuei2
|
||||
e1NZTxsK
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: /dkxUxPXbzoC4NFL+qF61nfcE8i4NsdYwG/sCtEfsmulZiWgKal6S8Xq
|
||||
p7D34jdt
|
||||
|
||||
Name: res/1u.xml
|
||||
SHA-384-Digest: vPvbGKIx/G2zdxRXAAWzKy4qPc6n5jqv+/rCNPwjuTTTcDlteTJ69EB9
|
||||
AGtUq2r3
|
||||
|
||||
Name: res/Lf.png
|
||||
SHA-384-Digest: 30a08Ik5/RB+vuTCB+xySM0JLB0h79sIKgdeuVR0ZE1I8LwI/jpGS4An
|
||||
llwPBU5i
|
||||
|
||||
Name: res/2K.9.png
|
||||
SHA-384-Digest: aM68IUMF5t86EI53Iej6oB5zZ5w7emSPmVKF9BKvaygxAJyAwtEsEZKN
|
||||
dQkC7l/U
|
||||
|
||||
Name: META-INF/androidx.savedstate_savedstate.version
|
||||
SHA-384-Digest: K1SOaWtvl6HKxgzXY8r8SxHSWDV6kyknhfyKArwzu4xV4KIeluaWNZB4
|
||||
HccgUhNB
|
||||
|
||||
Name: res/color/switch_thumb_material_dark.xml
|
||||
SHA-384-Digest: 33dewl+lou8dxMQgyrqbC4yXVoBSMozn61lRUe+SnAKd4Hnkv8gZLcZ6
|
||||
6B0ZesMM
|
||||
|
||||
Name: res/Pv.xml
|
||||
SHA-384-Digest: tlRXn/VKVSeId+FPME9auF7xuMGv45NlSzsCxwEz0QOIiUd6U+jGuBOO
|
||||
rvDemjV+
|
||||
|
||||
Name: res/G2.9.png
|
||||
SHA-384-Digest: LITrKCuBPvYbmtLA0VrAwzuWJ1Pb7/KgpQnww7u03klmvlFJ93qQ/0lP
|
||||
cg1tqZvI
|
||||
|
||||
Name: res/wL.9.png
|
||||
SHA-384-Digest: sFX803rQMJQBfL2FjDAHOhZXNqn0xN9BMl6qg6VBf6xkt+RB+tWAGNKk
|
||||
bLGJAO6u
|
||||
|
||||
Name: res/eH1.xml
|
||||
SHA-384-Digest: 2OQjq8K3RV+l7NlFmVekrbiGni7KKo2fvqbOc3zLAj3N8oPGgh7chNya
|
||||
ngxRZTIY
|
||||
|
||||
Name: assets/shaders/vertex_shader_thumbnail_strip_es2.glsl
|
||||
SHA-384-Digest: n25xCpgsdkQgsOLydpFMBT3Tv5Jx5XfBkpwT3ORDO+JdGVjRIXaSHw7+
|
||||
pwyH++B7
|
||||
|
||||
Name: res/-A.png
|
||||
SHA-384-Digest: EUlo41ZqPFy6e9mBQav/H1fvUOoZbQ56G9ObRZ84WengTGlZ89LR/3MC
|
||||
jCS0S0fN
|
||||
|
||||
Name: res/BT.png
|
||||
SHA-384-Digest: L4IbF7pwTdDDAYV+sOTCNat+bM6OR4A3LKMX2SH5QD77xdUoTdt4wqa5
|
||||
CidDmGm5
|
||||
|
||||
Name: res/hv.xml
|
||||
SHA-384-Digest: +sX8PGbVpiCUsd364kuktNmc+j8pdo5iIbcNt7tUnX6LOOSPQtOxoU3U
|
||||
EnNgwqlY
|
||||
|
||||
Name: res/D_.9.png
|
||||
SHA-384-Digest: cZlu813tnb8P8nD+4HSz/ft7zHGqjZRGhlaJsVyAgFsIQJggvmzK4mW2
|
||||
wc9Yi7XZ
|
||||
|
||||
Name: assets/test_assert_define.js
|
||||
SHA-384-Digest: 8vkjAB/LdCxYTlcZsP7JUtpISXlVGTGhHsVpQlo4jQ16U30ZSJKWovnv
|
||||
6SgkgQC8
|
||||
|
||||
Name: res/FW.png
|
||||
SHA-384-Digest: ATHQVWAisvGB5ZYFGnHPKVE7XsvOevABh+2zpRe3wvQnTnCCxTTxp4FA
|
||||
fuj91Tqu
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_label_tint.xml
|
||||
SHA-384-Digest: qbsiumfd2BdFgTAo/GAiT9qiTAG5uFKAAR9w6thD1HNzZnnDkQ/jkMj8
|
||||
YxQYm1hg
|
||||
|
||||
Name: res/IV.png
|
||||
SHA-384-Digest: hBuw83hFADyo0K4+4Kd0j8djop78Aks+xBoXqyDIu86w734AwU3j7ps3
|
||||
w1GxVjTY
|
||||
|
||||
Name: res/v_.webp
|
||||
SHA-384-Digest: zW6kz7qCmqkAXkGi1d8hiAVeFAF4P+YZZxLPIa9Typ/VXNF9HPzHfE7s
|
||||
4eWTqKQh
|
||||
|
||||
Name: res/F4.png
|
||||
SHA-384-Digest: yiqt8lQSn77074CgLNygShqFt7iH8buusUx5UdVo3ji/iZ1Z54ATMLJq
|
||||
vQpQJ2cD
|
||||
|
||||
Name: res/12.png
|
||||
SHA-384-Digest: /J3JLtdIrMgCvir3tCCQybBwsqQrRvdwgLt13S+/6VreOPSH4Qwhpgad
|
||||
q+JW5/nQ
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable.version
|
||||
SHA-384-Digest: D/RfPHtVIGKOe3ViN8XqcmWF0bNzRDhBL/aH8nRY3vISiHz+mMnzdc04
|
||||
3zqxtvzs
|
||||
|
||||
Name: res/m5.xml
|
||||
SHA-384-Digest: Ht76irWQrfh3u1feT6x6u6ia2fY3w/HKqEEMe5YEctGzFjyL+4a4Hwfi
|
||||
6+0+rdgN
|
||||
|
||||
Name: res/cm.xml
|
||||
SHA-384-Digest: JV5Wh0REmzT04j0WM6vsi9o4ZnxvqQmAB73S8d+I67OXhw9jTEyd08zP
|
||||
RR9IIt5X
|
||||
|
||||
Name: res/8h.png
|
||||
SHA-384-Digest: /g2ttcxW2yeTyh5fyUK2x8y2nGIiAKDLfTGy7IV5vQxP7jPtlVujlhiX
|
||||
y88+pzxe
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment-ktx.version
|
||||
SHA-384-Digest: FsnZhU27FydVoF4i7HKB1p3N+qAtEXPQJS5rhx8Hclk7d64PBF0YA6mG
|
||||
sRFJvARF
|
||||
|
||||
Name: res/Cg.xml
|
||||
SHA-384-Digest: vtvH7WPwWWtj3T+U3FTF40MKQ22LvPeLnzym5AlbqIGY/Blymb8UNclV
|
||||
ybZdYl3D
|
||||
|
||||
Name: res/eA.xml
|
||||
SHA-384-Digest: Mt4/lJ1Vo+4tcJv52N6IMNvRIe1RtCsnfDyuAhd2sSEAMPnVrcMeWgFr
|
||||
ENEyNe9D
|
||||
|
||||
Name: res/GC1.xml
|
||||
SHA-384-Digest: Us5WPu9xpLFHGFRqeNS+Dhj5CZPe1g3i6vuaJcq4kJlIt2ILP5cpQhU0
|
||||
Ne0k3HBp
|
||||
|
||||
Name: res/D6.xml
|
||||
SHA-384-Digest: JHJQYnz3nh7KUrscSQ4UXgi7M4CuwxueycEN9FYDvvM1LwHZW1OagVl3
|
||||
sSF/NhvM
|
||||
|
||||
Name: res/color/m3_textfield_stroke_color.xml
|
||||
SHA-384-Digest: W0FO2K5jlG8ynDpHCg5h7cjoj5sEev4bvQJuf1K6uHcbB9C9ogTwTiNf
|
||||
Y2uQ/K+t
|
||||
|
||||
Name: META-INF/androidx.core_core.version
|
||||
SHA-384-Digest: /Lom5MWwqIO8lo7G8G0+pF8doQtl1jet+H5YtaCv3EOIFde+QAFQJzK9
|
||||
IwnJZbaW
|
||||
|
||||
Name: res/XW.xml
|
||||
SHA-384-Digest: 8OwQQDjTvi7ije00zXS8GMqrrvyWGkzEM0Z3nQ7NHIiKNefTUCSYibd2
|
||||
rWMCKC+X
|
||||
|
||||
Name: assets/parse.html
|
||||
SHA-384-Digest: IgOjrVsRfWytvGeU2QM+TeOBpXLT4lFoDiGUIfL73lHVOj58rxME0viP
|
||||
HKcduXSb
|
||||
|
||||
Name: res/wN.9.png
|
||||
SHA-384-Digest: jneMdIfyfk9wnXfYQRK/DN+9NvVf/tJd5VHg/lUvBLiDYq5PO8tSITm1
|
||||
KX+IhWan
|
||||
|
||||
Name: META-INF/androidx.vectordrawable_vectordrawable-animated.version
|
||||
SHA-384-Digest: G88zdjHn3p1Bx2OCYI9K+j6qTSa7n0JOCw5XW3htvO7gGYFYXFTx6hxp
|
||||
6XD6YPb1
|
||||
|
||||
Name: res/SO.xml
|
||||
SHA-384-Digest: MPTV3RsZqLsCabQuQxbKdjlHxICJ12iBkAK2NCssXUsgVB+8maCWwK6F
|
||||
/SXPhCtr
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Connector-mbean.properties
|
||||
SHA-384-Digest: 5LCt6LyTK7Z0CHTxskqFmrHHIp918zopUSrqvrBXCsLTj95wVtWnkr+u
|
||||
HAu1u8MV
|
||||
|
||||
Name: res/5k.png
|
||||
SHA-384-Digest: 6JNebBo/o4MiB2ETWcP3SYyT3LQ62kcUQzFM4rKE/6osARKHNvhvO8qe
|
||||
Gj6LEdpe
|
||||
|
||||
Name: res/color/mtrl_chip_background_color.xml
|
||||
SHA-384-Digest: 83VD2SQ7+WyrwFTYJgRgs1zjUPySj/umijRL7L++ea/rBv0FH9A7yTL6
|
||||
N36Q2Osg
|
||||
|
||||
Name: res/vX1.xml
|
||||
SHA-384-Digest: gfKhaxYH6n/4gxz6EQF1QXJY19uCHjMALwwLWmx9DKQeEz//HdlklKSe
|
||||
zaIjFan5
|
||||
|
||||
Name: res/aU.png
|
||||
SHA-384-Digest: 5OJmmB5xYy1N4jKpgD9U8teTd0TO8C0R4INiIffQtzilQAO89FfCqW1t
|
||||
5fohpXC/
|
||||
|
||||
Name: res/color/text_control.xml
|
||||
SHA-384-Digest: VW0GtVq+smnjhyx5Ja7LSLksn9AX+pYfqF8L8zpsCXxr1VcUsd7jZnmo
|
||||
wfRqjw8v
|
||||
|
||||
Name: res/xo.xml
|
||||
SHA-384-Digest: L9+9t6Gxz76KAnDVgAujREMTFmMgz98YAS3YjcrvB73jc/LDrJt4Xb5X
|
||||
hynxc29P
|
||||
|
||||
Name: classes.dex
|
||||
SHA-384-Digest: vBCC9PcStoC80XE1ctTTLEA9WIt3GctgFS/PdOEBnYspyzChVcAucEA0
|
||||
4rvIr6jN
|
||||
|
||||
Name: res/color/design_icon_tint.xml
|
||||
SHA-384-Digest: e6KPvBR1eIC/cbLNApa8VI+RWB9hf/JglrL2D/8LQSh3FIYXt8UayZqB
|
||||
5k1ltq0F
|
||||
|
||||
Name: res/FS.xml
|
||||
SHA-384-Digest: vJHPN6HRBkg/pf+hrQ5lhIYllC6nOOuWTU4cr4CdmYXgPx3ivaOHPh3C
|
||||
s5zu+PKp
|
||||
|
||||
Name: res/color/material_on_surface_disabled.xml
|
||||
SHA-384-Digest: x29Fa6ru6w3G3FqNfjky6gd62IdWlitA1Sul5ahB7QqgkzPmGIH2cwhS
|
||||
npNe90jL
|
||||
|
||||
Name: res/Ol.xml
|
||||
SHA-384-Digest: HKF4sWmRCSbREHrIYB2ExEaZc3Q6FICkyFxoUzfvw4NWW6liaEObHQFh
|
||||
EwCTNZ6e
|
||||
|
||||
Name: res/EU1.png
|
||||
SHA-384-Digest: 9cmDiHetgHf78Zjkfv+0+tnWTO+96as1sHZAqPHmQeuuaZPZUwmGHQXK
|
||||
qsUJCjT0
|
||||
|
||||
Name: res/Nn.xml
|
||||
SHA-384-Digest: KHBnKQfCoWdLCZmqJSxM0NyaN4yuKSllMlS7RXUGNK6wopSyPlG4Q1d+
|
||||
Ca1aYHT/
|
||||
|
||||
Name: res/pe.xml
|
||||
SHA-384-Digest: HCznO6hCdG/xkLF7qhxa7rvEJqIDP4BNycF6QXpYnlyBsL9IDWq0CmD1
|
||||
Vy/1Ihad
|
||||
|
||||
Name: META-INF/androidx.localbroadcastmanager_localbroadcastmanager.vers
|
||||
ion
|
||||
SHA-384-Digest: qYDQXLMLyA+k/gKv7an2M1x8LHrES5ZyGAFU6sAY0s5SLb2gc+VQpByD
|
||||
4IN0FqlH
|
||||
|
||||
Name: res/8c.png
|
||||
SHA-384-Digest: KwDgW5HepptLVE5D2BcAnynQPjidp3RSuKXUhbhlAJYFRLm+RMsKIdcv
|
||||
em6vBpx4
|
||||
|
||||
Name: res/nL.xml
|
||||
SHA-384-Digest: NJ6xaD/DyG5XgDFq4HShS4rCTmMAyqUM6oxv7thdvbpIZ2u+IJV8/hcv
|
||||
l9BUSe0X
|
||||
|
||||
Name: res/SG.xml
|
||||
SHA-384-Digest: qFQ2BITJMccFj/B0QAuQNqxWEGo/ir3bj+lp5zP8500jINVHfgBifBfE
|
||||
7pQSwAm+
|
||||
|
||||
Name: res/color/mtrl_fab_bg_color_selector.xml
|
||||
SHA-384-Digest: D0AdiCfH4enX/N5iXr9gkujzOX1uDfk5Nv+SWMteQhDO9A6/nZ14xALu
|
||||
C0nen1Ih
|
||||
|
||||
Name: res/color/m3_tabs_ripple_color_secondary.xml
|
||||
SHA-384-Digest: q9mHCz3SjXsMGPzL1CLvabPogVa9e7qktBcTrGrdu0MQ4hepBhn9sxJd
|
||||
HYv8Iv/k
|
||||
|
||||
Name: res/Li.9.png
|
||||
SHA-384-Digest: BG8mk0jRvBQFdnCuOXHrYlTgFuR3/9UNF4EWvnC43S+0CUkB6/dOCc8q
|
||||
YXrpZjd+
|
||||
|
||||
Name: res/4k.png
|
||||
SHA-384-Digest: Ne/+gMCWDtZWlmDIM2yV7GCiPquk3HBpwjNk03GGxudCTAEfHxsR8seH
|
||||
TVMzGyGf
|
||||
|
||||
Name: res/el.xml
|
||||
SHA-384-Digest: ko1I2qlhdHE4Q3mP7/m8Uz4BMxSVgz1icDeKIp8Ef3cKBbz5iAE4nOCF
|
||||
9MZ9vMeC
|
||||
|
||||
Name: res/J1.png
|
||||
SHA-384-Digest: 0DB28FyDRduq/j/DMzLVFdhgfbklQ73ndtHlr1iC5oePkIico3YPmuxy
|
||||
ncW9kMsd
|
||||
|
||||
Name: res/color/m3_slider_halo_color_legacy.xml
|
||||
SHA-384-Digest: 9JlW04on7UZTtdrdyMjPbN9ArtFI99VowYzmS0jCoVj12r5vrJfeH8+3
|
||||
vt4C87ad
|
||||
|
||||
Name: res/fj.xml
|
||||
SHA-384-Digest: CdtY9zTQqdCdNOjZmL6mRcE94OSSgB7RXGek9V8Da5ZdUWOFKQZrgk2d
|
||||
il+gyA2v
|
||||
|
||||
Name: res/Ke.xml
|
||||
SHA-384-Digest: Qh0vysTzene1naPbTzTpJHlh/pdLfLqkU6/tfACNqxatw6UTbFDqhoU9
|
||||
XDNPBoQC
|
||||
|
||||
Name: res/N4.xml
|
||||
SHA-384-Digest: UONjHxE7g7OgIdTp7g19w8c9Aiigmx1ELS/Y7kRi7m8/a8vxOz6CPBRc
|
||||
tai3tTIO
|
||||
|
||||
Name: res/jI.png
|
||||
SHA-384-Digest: CFihOZrZqZYoluebu90RaAEfrj/1UXdE8hpTGgw7U61YJGtRkOH8z62w
|
||||
rpXWqVRf
|
||||
|
||||
Name: res/JD1.xml
|
||||
SHA-384-Digest: kGEWSxRohy4mn8InQOOqxH4xW1YMsRJjcCOpoJVTdalXfx8LQQ9uTnjA
|
||||
Wk1s2tEg
|
||||
|
||||
Name: res/No.9.png
|
||||
SHA-384-Digest: broJ/4K7App8GBh9L9aa+Jk6eHl23ygJT5JGoa7mv2j3MqDaXc2lsJ5U
|
||||
ZYsjWI1w
|
||||
|
||||
Name: res/color/mtrl_filled_icon_tint.xml
|
||||
SHA-384-Digest: c/ZbtepidEWtzvETDSGXgG8kfQNOHt50IaCLefMcUT5/ndlPq0Y+rAU/
|
||||
NE7l6J/q
|
||||
|
||||
Name: assets/js/lib/crypto-js.js
|
||||
SHA-384-Digest: ac2+ERgnipN8YBmKFNo2crjX+M7aMkKW/vYSp+hxUjZx4m7P1isJ088T
|
||||
H1CZwFIK
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/HandlerContainer-mbean.properties
|
||||
SHA-384-Digest: EBzV7g80C9MWxW5TdcLX7EVjf4jt61unoEtboA7DcfkpCwEHSgvX1ULV
|
||||
eJPvifoY
|
||||
|
||||
Name: res/68.xml
|
||||
SHA-384-Digest: EaBslk9Bcnb6vOFUfI2iWY+aXsJY0Hb+h6/qjv7ZS8QPNUdl8+TuV3t/
|
||||
99X4XwUq
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL5.bin.properties
|
||||
SHA-384-Digest: mP/dep8juYRLJdz3YGW4OJUtfXnG8YQjNEtD9CVbAJ5jTHXv3t8dFoa1
|
||||
aXAV1NPT
|
||||
|
||||
Name: res/pV.xml
|
||||
SHA-384-Digest: IpFjjDJ4Uj+UM6j0/N1k3vs+k0hK5sj4MsGzAlk+JDzXixZr30elpyK8
|
||||
2A72oQCh
|
||||
|
||||
Name: res/MW.png
|
||||
SHA-384-Digest: 2qZT998EqC3sTa2sE+KltPojmhQY8fObsLzDzstcHpzrSBxtEj7y1+3M
|
||||
H4MmRCmt
|
||||
|
||||
Name: res/65.9.png
|
||||
SHA-384-Digest: JJyMElPaGtLH3SbRr9J70exRpy1dvQnep31nt59hsxVkPHXJgsVEY0mO
|
||||
f/JnSPuL
|
||||
|
||||
Name: META-INF/androidx.biometric_biometric.version
|
||||
SHA-384-Digest: pwEtshogJZKHab6O1YiSiNblzEds6oj3aBVfjYF3llrpy47Vygjm25mR
|
||||
2Hm7iaHN
|
||||
|
||||
Name: res/color/mtrl_fab_icon_text_color_selector.xml
|
||||
SHA-384-Digest: fIk8Xaaa6CEuL90L+MflkstduSqb1kTSznC0OlJegG0DvswgzrH/kPwb
|
||||
cLw6xZ2F
|
||||
|
||||
Name: res/color/m3_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: ZZ/g21W+yCJtJqbMEc9KReDzZPDzmUZun5h5IDPTbWJdYKRE/IjHqFeY
|
||||
PjMN7y7F
|
||||
|
||||
Name: res/A1.xml
|
||||
SHA-384-Digest: Z/fuw6pfadcFhUsuRW0fH3mc03gq+oWHF2YsX5qT1cJh0kX8rG2qoXTx
|
||||
h8+om4pq
|
||||
|
||||
Name: res/_P.png
|
||||
SHA-384-Digest: fHM1vfWedXQnbVFyAlHb9xwjHazjWb0fVPlcQaokOL9u98sVkRDAebSj
|
||||
5jYXuKYe
|
||||
|
||||
Name: res/7R.xml
|
||||
SHA-384-Digest: wDXrCkjtDclaUXIHs2cpwIhGH/OoV9uONQJUUdiFPUFL+ZQi92CyeAYk
|
||||
4ZId6/a7
|
||||
|
||||
Name: res/Eq.xml
|
||||
SHA-384-Digest: 5hDYY1MxiAAydii0hE9i+AfHlJ4twgIEogZj4bWD/Jvze+yyVlEtsdRK
|
||||
GmmsZo1y
|
||||
|
||||
Name: res/FR.xml
|
||||
SHA-384-Digest: 31nFfCKu4iM1JFNCXVNsdQTu5bq1FJDowH8MBbg6McBtllmQCuFS+k/s
|
||||
UHtJHiLj
|
||||
|
||||
Name: res/XK.xml
|
||||
SHA-384-Digest: CxWi73ZF+G2Kj0HAvxbBcuUiSP62ytBLsTm4FtMqfpqyZIj5+8ApCicx
|
||||
HR0/9x2o
|
||||
|
||||
Name: res/tZ.9.png
|
||||
SHA-384-Digest: /WQ8N6vPHW2XToo1fpxts//gMI3xZcJ77z0iQ78oyovBRCbGYjnVPxT4
|
||||
ZDsoQfKb
|
||||
|
||||
Name: res/7_.9.png
|
||||
SHA-384-Digest: DQfSYgQJziwEz7Egzm2DMk/vHuXc/zhE+ROq/4928uNUORD8aH0ytmph
|
||||
zkBTry86
|
||||
|
||||
Name: res/br.xml
|
||||
SHA-384-Digest: mRwp2gB0BnCsVbsYRiKsH2+SXrAJz7Ko+YXim2vPnGJO954BWh1sVug5
|
||||
U3xWS9hx
|
||||
|
||||
Name: res/gK.9.png
|
||||
SHA-384-Digest: MkbBmI5p87hw4i6y0HbN1Gv+adQ+ClA8mQm9k+bRzy7vtupH8kXqm7J7
|
||||
euiowSJ8
|
||||
|
||||
Name: res/color/m3_button_background_color_selector.xml
|
||||
SHA-384-Digest: NmmdpNWDm29rdUAO3nJhdt0z4JWJGZX/xAyn1DNjmgMupTaJz3E/8wTv
|
||||
RVL8zT67
|
||||
|
||||
Name: res/eP.xml
|
||||
SHA-384-Digest: w0xzhbwP87B5kCnPvLWlScnATd+1cKT3Vxg6gncqicsaSK5dMLa8L9hY
|
||||
DY9G0lKY
|
||||
|
||||
Name: res/_i.xml
|
||||
SHA-384-Digest: gzp/LNs4s55YgwOZoEpMA71BIIcQPco/5R2Oa/Rxm97Yxf+NX7TyVmpo
|
||||
p/0Mhc8N
|
||||
|
||||
Name: res/9O.xml
|
||||
SHA-384-Digest: igx+9Er22VJVlozMA5Lj14TCQsCAXq6bzk1bdxmFsg6a93KcBHD/b28z
|
||||
R0WV+J8G
|
||||
|
||||
Name: res/Ud.png
|
||||
SHA-384-Digest: fJwrciqJvpYpxZ2/Wek++fysesI/N/H7P7Ozh9XyHln1hVJVnsr/6lkO
|
||||
9INnEbs7
|
||||
|
||||
Name: res/Ck.png
|
||||
SHA-384-Digest: +ZkWkEwqfsqMns6Op0s+z5j3M2WjifjyjUUS1tSPNkRe9gl7S7q2W31e
|
||||
XwwNPHY2
|
||||
|
||||
Name: res/5e.xml
|
||||
SHA-384-Digest: xdCcRi9q9nZRdq0GvWIEIB68BsOtd4RNGCK8kVnBbSej7SsfvObM14Ef
|
||||
ZmZiMRVb
|
||||
|
||||
Name: res/o1.png
|
||||
SHA-384-Digest: kraxHIeRJjldzCy/LvqTAfeMyyVWKqY/yJKrRM6vHJ+Np7z5BZzqerTw
|
||||
eQBL/Z5Q
|
||||
|
||||
Name: res/rE.xml
|
||||
SHA-384-Digest: PJZ2u1viJULvk4PSuquxRcY25LIamVhdUJ54zBUPSO3A7H3qzqVZ2VgQ
|
||||
/Rr95WZW
|
||||
|
||||
Name: assets/shaders/fragment_shader_copy_es2.glsl
|
||||
SHA-384-Digest: MR9S0bUUVuD4PfYZ6xiBNBHh0bd//FfkpyYVSIZY5n2AS/AKL0lb0LEu
|
||||
V8whCZUT
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/NCSARequestLog-mbean.properties
|
||||
SHA-384-Digest: ucMpqTbHvBJiWxPvzBStLDj3iDEjTUnqznwQeWglo+Hi5N+47LOpuCzX
|
||||
NbDRgmpB
|
||||
|
||||
Name: res/eR.png
|
||||
SHA-384-Digest: 2UnF0wvkctUmuCrvcslA1BmkETngpcK3JC8lBLQHfDFXIbDsM6/aZmUJ
|
||||
W0nXr9lo
|
||||
|
||||
Name: res/3u.9.png
|
||||
SHA-384-Digest: 1wcmqJVXO4cw7wWSwJgYZ5zUkoX0WQ9I2tDOCyREaEqoJ9os4PugHJdl
|
||||
ADPhIcMG
|
||||
|
||||
Name: res/ya.xml
|
||||
SHA-384-Digest: 5TfjqWjPmXPwkb0isgBAKrtoz2sftWknWvH+IonyRbgVrfeE26anKfbN
|
||||
UGhHOfrm
|
||||
|
||||
Name: res/hN.png
|
||||
SHA-384-Digest: mra1EHhwUR+YgaSCaoLYVt57tiA3FaEDYZe1EpJKvKBUlw5RV6vVLBmX
|
||||
GBK61LVC
|
||||
|
||||
Name: res/Zd.xml
|
||||
SHA-384-Digest: E97aJPEK25vLxtVuMDzi8RpF78/JCUIhULupNXm59PDJ+MUjhXlmwd+m
|
||||
CSpa+bkc
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core.version
|
||||
SHA-384-Digest: /sdECTOCxbC8anAoy+b5Be+s4sOxKa2lcCfAbSmHQRtFTXBTQ/FgNWV4
|
||||
EhYYNmwt
|
||||
|
||||
Name: res/ev.9.png
|
||||
SHA-384-Digest: c0l/WwgV/X7eLtEhedoLy4eEYMEMSO8jWdsAgWbBweoMioHMKD6+CA7W
|
||||
vHFt+Zyg
|
||||
|
||||
Name: res/Qk.png
|
||||
SHA-384-Digest: wQKT+E5rQoMUpJNlYqRmaI/CV/wTJ3FObXh7yldotsN0ReOfRspmeYbC
|
||||
RxVXXhRM
|
||||
|
||||
Name: res/RL.png
|
||||
SHA-384-Digest: JVgGtQO+W4rXyE/Stywig4SW2HPVTCgVVY3A1V3F3u0pIgO7BhuC248N
|
||||
1iec/7vm
|
||||
|
||||
Name: res/S-.png
|
||||
SHA-384-Digest: OQ21b4BRzMS4xIg1W7oMRWOcqrzAMxPdN+cJ7V4EMaZpHLUJgxgUx+mS
|
||||
ZJ9cVKB1
|
||||
|
||||
Name: res/20.xml
|
||||
SHA-384-Digest: KjY/x1IL4c9iklYaqQrhKupvc6HdR+7VDRQ1ubRxXp3LdgnJI3cLkYq0
|
||||
0/j/v/zi
|
||||
|
||||
Name: res/gv.xml
|
||||
SHA-384-Digest: PrMTDziGjfcJktvtG1roeZjcY1DaTBfJkEt/o+WEO4ny23l+r4Kdu3tF
|
||||
QhTgJw1p
|
||||
|
||||
Name: res/ZW.xml
|
||||
SHA-384-Digest: JqBEvIxaFUtHa15M8x766vAqeMEsd/8zwEPwZYHCdqfHh01YqT0E2t2b
|
||||
5wi3QKCQ
|
||||
|
||||
Name: res/tU.9.png
|
||||
SHA-384-Digest: HbjCQvZY9suVo2kLeAXTiBldga8iKs4vfOj2fpokZQQrKWcYDToKUOD6
|
||||
nWW2GNkQ
|
||||
|
||||
Name: org/eclipse/jetty/http/encoding.properties
|
||||
SHA-384-Digest: rOL62ZVNE6fH92hBGqxbXxLWIlr+R96mA1ricxYhkbDXDEIuuX+h9SAR
|
||||
G2N1M6Nj
|
||||
|
||||
Name: res/Sc.xml
|
||||
SHA-384-Digest: 9RDN7ASx1UIGG4WrLpUw0kVQ1NnFb7BgTRfVUYiE4vey+cYtG5e6K7pz
|
||||
bnChAgE5
|
||||
|
||||
Name: res/0S.xml
|
||||
SHA-384-Digest: CwY3AhJzZADyUta5AWi4GJvVXTQqTRHt2cgdw9tZbI6JDqENd4R6wwmG
|
||||
S1Uj6leo
|
||||
|
||||
Name: res/color/mtrl_navigation_item_text_color.xml
|
||||
SHA-384-Digest: V1p84HU/Z5lCFQ0Qr87ray9ywin6SZ6TpR1KZye630LjZhEVdc71o1es
|
||||
hxbu74ta
|
||||
|
||||
Name: res/2j.xml
|
||||
SHA-384-Digest: TZO0oOQkMySrrzp8c4oBwFE9JCN5nAyDDbjDcNQaiirFjsiB6XRNvzY/
|
||||
HZ/objJi
|
||||
|
||||
Name: res/sA.xml
|
||||
SHA-384-Digest: 7sVAUj6iXilyPo8tzJifa0guJ1cuhmhSgoMZBGf/1gw+TQAb5DHCGIAd
|
||||
cxSRhokl
|
||||
|
||||
Name: res/color/m3_timepicker_button_background_color.xml
|
||||
SHA-384-Digest: WCcHdpO1nUFDiciJ3YDjUE/4NpLGHeEVL46CcDaSE4jGcUw+k6oFK1+I
|
||||
SuWYJBbC
|
||||
|
||||
Name: res/9b.png
|
||||
SHA-384-Digest: NIkaE03/9mY+3TpWx9lMi3CeDGhpk/DQwirQq1wQ/9D1NFz1w2c31b0K
|
||||
bdrbc6od
|
||||
|
||||
Name: res/nn.png
|
||||
SHA-384-Digest: RlVDqZiw/iLj6PCuLFFmnK1xf/IusFHYkGvZDnPxNdui9mUigsCdckfd
|
||||
v0A9J0Lz
|
||||
|
||||
Name: res/RH.xml
|
||||
SHA-384-Digest: sylgWJhsfi9/eoYbZEaQQgLSo0IASLe0JxnXPy1XNsECAbT7wBPjmu4K
|
||||
AZIOO7fv
|
||||
|
||||
Name: res/GQ.xml
|
||||
SHA-384-Digest: 7bvL8xqwFDpH5Yoz+PSwzmMNiz6Ejos4/UOaZiem4gS1cdF8UjH6hIP2
|
||||
NzUkDZxM
|
||||
|
||||
Name: res/N01.xml
|
||||
SHA-384-Digest: eTdL+deiDDqooZndWumKhn/9JJSd3TxoPH7Rkc9DWMZVULVGRVSySSHB
|
||||
YK40mXfY
|
||||
|
||||
Name: res/kD.xml
|
||||
SHA-384-Digest: 8jePPxgNaqJ0sf4DvylwMzUoFDdoEeE9Dyhxgj0UApd7QKkhWuV5qY9r
|
||||
Wz6MbQ0T
|
||||
|
||||
Name: res/bT.xml
|
||||
SHA-384-Digest: hAfyCP+aTm4tNApOlCTJQ+CdLVg7vAgwzU4+XhlnGTZzMXj/VThhJIvQ
|
||||
d1TlRA5y
|
||||
|
||||
Name: res/c5.xml
|
||||
SHA-384-Digest: 8tyu3Ds02yxTG42G9ZmbvHLz0a0zUP12uNf2gN7pFMmUEqJp34IVXWwN
|
||||
Fl2QvNtR
|
||||
|
||||
Name: META-INF/androidx.legacy_legacy-support-core-utils.version
|
||||
SHA-384-Digest: nQdIi7fW7R8B64OMhUbRlmQ61FxVQ+vZVRbQHbtotQO9UHBsBiHg70l3
|
||||
1t/QXmiG
|
||||
|
||||
Name: res/t3.xml
|
||||
SHA-384-Digest: 6dopup/NAfhY6QB45ghuP9e4b5ArZbgVC3el7w8lNjjkPFIw3xi1Ifn/
|
||||
wrnUqQo0
|
||||
|
||||
Name: res/Bi.xml
|
||||
SHA-384-Digest: XhfrMjpjjgse2on2mTq86a5xa2b+4KXwp5TBS89ZeQHpsVs6XZIA4y1s
|
||||
lVm+t6x4
|
||||
|
||||
Name: res/k_.xml
|
||||
SHA-384-Digest: KXYe5tchI2kw+euj0Xi71ohBhcFaD+uUDfRjXv+cnBr6Job59HH1+OMh
|
||||
/Z6mZp/E
|
||||
|
||||
Name: res/color/m3_text_button_foreground_color_selector.xml
|
||||
SHA-384-Digest: p7jtp4KQhwVPtjLi3V6gdNZiYfUbU+dU1PHizOUeDteVZa/vstlkDgCS
|
||||
r4ARaSj+
|
||||
|
||||
Name: res/5v.png
|
||||
SHA-384-Digest: nSts7qLPlxfu394w4IoQmREekPODKQZNlx8EBqpgVovJfZIloQhVFWKQ
|
||||
rXd4BXnQ
|
||||
|
||||
Name: res/sn.xml
|
||||
SHA-384-Digest: SNWZRK8cyqUQj508M3LX1bQxhjf8wL7mf3J+hd0BdoZ0NMCU6nbL8+cS
|
||||
SuX5flBq
|
||||
|
||||
Name: res/u0.xml
|
||||
SHA-384-Digest: 1fIB9O/ZO8E6NE/kH/TsecCxPv2ybxa27mHMhiBvLE8XC/LPiq4PfOqG
|
||||
wsMh5/00
|
||||
|
||||
Name: res/tS.png
|
||||
SHA-384-Digest: l+eTKr/NotMUYWQKX7xz52bGYj5+KDiAT56GTfatqDsmb5XwuN6D/ynk
|
||||
f3W/kRwh
|
||||
|
||||
Name: assets/js/lib/cheerio.min.js
|
||||
SHA-384-Digest: RWjDmdwwoZ1WQ+lz+AgxFyFoIxXkbX2Yv3ERksXnHCQ0MN5+tza/MP7G
|
||||
7PFoaBXP
|
||||
|
||||
Name: res/Wp.png
|
||||
SHA-384-Digest: H18eLd+yPj3CHXkTV01LQrZCsj8+KW1ntOpIsidKzdvApy6URYkQs5PB
|
||||
mhYKEmhb
|
||||
|
||||
Name: res/color-v23/abc_tint_spinner.xml
|
||||
SHA-384-Digest: Rgm2Os9V5eW5NvADidkWeSZM0+LXD0zRl+xDZcXUuBblxeRtnTYdjW+H
|
||||
IkRIhszA
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/FilterMapping-mbean.properties
|
||||
SHA-384-Digest: Nqx6m8GIvng0RITQd3DcKuH0FwmVomIqHEKle98ayy68Cv8wFMxoMF2n
|
||||
ZNRHsHV+
|
||||
|
||||
Name: res/2x.xml
|
||||
SHA-384-Digest: HFidUmxFmP4aMO+1YTShwsgucCDFM12FLcnn65ZKjZULCHipppuS8mtW
|
||||
MVeZ+naf
|
||||
|
||||
Name: res/dC.xml
|
||||
SHA-384-Digest: UoYTWbUupEn/iTe6LRjGvCxRcPmwY6NUOUVNScgtxOt3Z6bCdYv3WVzl
|
||||
qMFC3W7b
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_dark.xml
|
||||
SHA-384-Digest: Liin6VIqzQBYjLGIEmaxCzSMn1g9eaFDsRlxotwlQ6rHJgeYTZh6PXbG
|
||||
ixtjuBoD
|
||||
|
||||
Name: res/Fg2.xml
|
||||
SHA-384-Digest: sVx+Nv6KhB2Yk51jQ8ZGzZ3XntsBUOr9gDFBHUdZPwx6MMjUlRnYiYMn
|
||||
5AzYvo/X
|
||||
|
||||
Name: res/W5.png
|
||||
SHA-384-Digest: R3ZqJIAmHE+yPZkZUSnS7mqG5QorIXoMklg/NNHZ60fKlzUN9ZFL4z0b
|
||||
Qx1MO5eB
|
||||
|
||||
Name: res/Ce.xml
|
||||
SHA-384-Digest: gEdfg95cCnF3avKJO7EtP0SulVCG52Bvp6wH1BRG/wb3noAVUQWqf8LB
|
||||
YdM/AsAs
|
||||
|
||||
Name: assets/js/lib/spider.js
|
||||
SHA-384-Digest: VKciyavudqpU2lmimGH/6OJcZp4pOy5HxwnSulg3swLzPNEO3Ccy//Kn
|
||||
y8JwXZj5
|
||||
|
||||
Name: res/1e.9.png
|
||||
SHA-384-Digest: Z9InkZ7V/avYQO7ju0HFzx4cNkCYxy2OQY0JRiw/SPf0ppVPX7dKd+mi
|
||||
AMfR03To
|
||||
|
||||
Name: res/wu.xml
|
||||
SHA-384-Digest: hhqmMukvbP37vMpCldAVWCyQaADPMqVcxET5pC+x683pZKax9OCB712u
|
||||
XBcR66cY
|
||||
|
||||
Name: classes6.dex
|
||||
SHA-384-Digest: h/htoWA8A6bv7Czj/e2zEYdu9oGezqB5DxGvbaDHk4bmK+5seo3Sou5c
|
||||
wqhRELA2
|
||||
|
||||
Name: org/seamless/swing/logging/img/pause.png
|
||||
SHA-384-Digest: xqwy6t31g68CBSv6T1qMmwN9w85QPv+nK6+RnF8PALUGTlzSWO1oge3t
|
||||
Bq5FO6V3
|
||||
|
||||
Name: res/color/material_on_primary_emphasis_high_type.xml
|
||||
SHA-384-Digest: rC41WLMtHMrQe0Mq0Wf1+rSZK0bz/RRJbU5iKglOZ2ANWtLL8v8jUkjd
|
||||
/cPhzSlT
|
||||
|
||||
Name: res/color/material_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: KccJorsRjtUzowqAe4OdfeWUvC0gRCB2BD3ycFZzzNpUxbgjGN+A7wel
|
||||
b/jNaWJt
|
||||
|
||||
Name: res/1d.png
|
||||
SHA-384-Digest: 3p6lO6uI6CeKanpthry1PcFDojZoYMAMLFN/6gonsY+RmUPQATCwyShV
|
||||
SpRVkYdF
|
||||
|
||||
Name: res/color/m3_navigation_rail_ripple_color_selector.xml
|
||||
SHA-384-Digest: 1zhZk0SRANvndRHb5vF3VtxWtzBfWYgqIfmD+DDgzc3V3/704+DNUbE5
|
||||
u2+f761o
|
||||
|
||||
Name: res/Lp.xml
|
||||
SHA-384-Digest: rh3QTLkrJsY1fUkFXSsv6JVStZFChDP9eaLn27mHF2WcgBWkJlxto4dR
|
||||
ii3dBA2C
|
||||
|
||||
Name: res/IN.xml
|
||||
SHA-384-Digest: LGsB5i0p0fpKqYcvC1muMFEd0BDO3xA9uCZJZtvb0t6tj/mnXJdz5ZpV
|
||||
xo8r2MNX
|
||||
|
||||
Name: res/iI.xml
|
||||
SHA-384-Digest: RVQFl6XsPaNwJQPriRIOFs0e7tXhFiT6Tbb7nCuiXkWyrk+WvD3QfUpf
|
||||
J1h4ZJc+
|
||||
|
||||
Name: res/n-.xml
|
||||
SHA-384-Digest: yZu1SpULWR2DOR5u/JYUJ+VLdOh0ttFfwqEPeHdxAP/yHvdGIBChX8G2
|
||||
hjqwWr8q
|
||||
|
||||
Name: org/seamless/swing/logging/img/removetext.png
|
||||
SHA-384-Digest: 8BscRJnUosjbdivDuaPhzd117ytOQIthaoy+frS0gQgedB/Gq66EENQp
|
||||
rDPQFqlv
|
||||
|
||||
Name: res/bt.xml
|
||||
SHA-384-Digest: dDOyMBhZr4WvmAQkYO+lweQzp+OG0sVIDzh4Y6yRdaqzvOKaDD02GIlb
|
||||
5atlneVm
|
||||
|
||||
Name: META-INF/androidx.print_print.version
|
||||
SHA-384-Digest: qP0uelGkXIaO8grIIlpo0dHCZW5b0GkcPWrJNqS1syuFI55bKupNPD/f
|
||||
hUmFm+N9
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL3.bin.properties
|
||||
SHA-384-Digest: KNpGqyaJ+qkzFbEPHhKuTEvByvYlbKUjCEl3Zj+5y+WDzPxBZaqME1FX
|
||||
Oq0rl0lk
|
||||
|
||||
Name: res/mA.xml
|
||||
SHA-384-Digest: kNB8G7k3pkc68jceVraTMS3dJFeJ/MVv5ks3QfGFjvknCGHCYGh7CaRS
|
||||
kKxHjcbK
|
||||
|
||||
Name: res/fO.png
|
||||
SHA-384-Digest: ePoN4rg/Mq+V8BRCMcAVsTYeI0AyZgvDOsv6IEd7eK6Z9HKA7AgLq2Qj
|
||||
JdD2WrQS
|
||||
|
||||
Name: res/hl.png
|
||||
SHA-384-Digest: 6XhKfzV9jnfZvR6sZ8uX1F96M/fg4KMw3EhVwiPLQELM3+c/W5OdKC0S
|
||||
TkJSctWA
|
||||
|
||||
Name: res/sl.xml
|
||||
SHA-384-Digest: t7QwssCYMdJT8GAd1SOkre6NY8180Pz8RQy1j0JXowJdMCg+4Fa0i3Mf
|
||||
Yee2z69P
|
||||
|
||||
Name: assets/libmitv.so
|
||||
SHA-384-Digest: DMv1ogovxJIwbBgmF1MBPFF5Ved4OOqGhxChGtZEsMU9w+f8JhGq/oxr
|
||||
pJaQEgeL
|
||||
|
||||
Name: res/Lt1.xml
|
||||
SHA-384-Digest: ISaIouDvHXY51ELluEe8dihPFFVf2FFiRDg2g6K0DKhEs5zuwebHZ3EL
|
||||
66Trihkc
|
||||
|
||||
Name: res/MU1.xml
|
||||
SHA-384-Digest: 36rB2sus+WA5ItAcKTpnulURLEzzc22R7XqRnvyZzmBsO9yzExpgWs4G
|
||||
GzY6MYe0
|
||||
|
||||
Name: res/pk.png
|
||||
SHA-384-Digest: c7KNn0m3JBfI0+i5QoMUpIrcwYs8Qk84smcNivGnlk8bR3pRkoON8QuB
|
||||
3ts2cEU9
|
||||
|
||||
Name: res/8p.xml
|
||||
SHA-384-Digest: niAFZGIRwQT1sJOiorwJRt4n5u8egMIQ4PE/GDRnDHjp53X0O8xW+koB
|
||||
uaz/UKbX
|
||||
|
||||
Name: res/kB.xml
|
||||
SHA-384-Digest: aBeO7gb6VBKbz1Knp9Tttb5kqilyVvcRUDLqEFt1O5trnMf87f7+TplN
|
||||
AJHgeSsL
|
||||
|
||||
Name: res/Nk.9.png
|
||||
SHA-384-Digest: 6iFJjl8JbBqq32IHrYFLlAGKxd6uS1zJZc40HRcGV4ACfrXSNlgyyH95
|
||||
p4AuUpiI
|
||||
|
||||
Name: res/color/mtrl_error.xml
|
||||
SHA-384-Digest: M0Ki4n2bk00vinCLAeUlSeWa9+1trN69do9cNS7iNkyi1xgY5Q5DFF6H
|
||||
WW9wSsxP
|
||||
|
||||
Name: res/eC.png
|
||||
SHA-384-Digest: 3e1Em+LhXWmToTQdMxSnpmIJWOW098nmoKcRXsSNg6+qpXb+EwcfhkkS
|
||||
4aCVi6HY
|
||||
|
||||
Name: lib/arm64-v8a/libquickjs-android-wrapper.so
|
||||
SHA-384-Digest: ndJGg1tqMM+kfhxn189iIUK9fPYhXg38cOg1qvlk6Vn98lbESj6u9gJk
|
||||
XLcgZMCT
|
||||
|
||||
Name: META-INF/androidx.core_core-ktx.version
|
||||
SHA-384-Digest: Q3gEnY5WNL6zdjRW90bEstC5SX9HH05ew5ShztAlmVpkhry9zUyXvW7n
|
||||
Mrvf97Ov
|
||||
|
||||
Name: res/color/m3_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: LC3q2+iys+sDWfGW4/tEmSxSafCbLIYjSYkO+NwVTSolMU+KsdVWpCn2
|
||||
BlzN4xNt
|
||||
|
||||
Name: res/color/m3_text_button_background_color_selector.xml
|
||||
SHA-384-Digest: 2K4bH+LmIKJbyqdv+5VRgE4tOKEMc0t7Qo8qxwh8NAnZ5fSmW/dQ6Svb
|
||||
FJOOJX+S
|
||||
|
||||
Name: res/0k1.xml
|
||||
SHA-384-Digest: gkFTEGYnN85XlSCGva6GNZrkH+NhliZMMd0ODyuDpUD49tOr6W+Ffibk
|
||||
KtuKjKTF
|
||||
|
||||
Name: res/bi.png
|
||||
SHA-384-Digest: FbKqtTUaxD17zFUpw3a6Mnw3cf2k+2O6gEFyBVyQDAlPLmQaQrAa8hiC
|
||||
OkYvyKNu
|
||||
|
||||
Name: res/color/mtrl_popupmenu_overlay_color.xml
|
||||
SHA-384-Digest: P5BULWmCqL4KB/sbKwzE91Z4AZVlrI2HE6cwXhW90nAipOItIbyc9G+o
|
||||
EbQqueU+
|
||||
|
||||
Name: res/color/mtrl_tabs_icon_color_selector.xml
|
||||
SHA-384-Digest: bpTxQZsCZu3lDsbwl9vDaDEm9QEbo7fyd7Dh1YkkTyGheTShCqOFBV2y
|
||||
bQ/0sSE2
|
||||
|
||||
Name: res/zb.xml
|
||||
SHA-384-Digest: z9XcuznmTM703Pd18O1cN7OUc8yOteyMD/xL9EtNBlFHZPGeziu1W1kW
|
||||
/GmfI9O5
|
||||
|
||||
Name: res/Dq.webp
|
||||
SHA-384-Digest: EHx2Q4VwZBqb2FxSqx2AiiORZ2N9M97Op9lgNG7ZVImsOyvIv9KNGzpD
|
||||
4acVIv4O
|
||||
|
||||
Name: res/Jw.xml
|
||||
SHA-384-Digest: oD/iHhAxq8z1dlGqxEaBgyvwPQF7auXB9HIlO1ZjtCFfOf1RGzw0grZW
|
||||
0YlgxIbC
|
||||
|
||||
Name: res/color/m3_checkbox_button_tint.xml
|
||||
SHA-384-Digest: 3qdLIIVbAi4u81ha0nZoFDFC9CFP66iEoJW6d9sh/vrxcaDdB/64hcr4
|
||||
eBozWmRh
|
||||
|
||||
Name: res/color/material_slider_inactive_tick_marks_color.xml
|
||||
SHA-384-Digest: RCYQFn98+3cERzfNejJxKqmVAjeeJSW5D8AbtAU8Z9GPNSIfvzx2c+Ty
|
||||
CZAEeZ3T
|
||||
|
||||
Name: res/color/abc_tint_edittext.xml
|
||||
SHA-384-Digest: HAP4EN2LeRyd9wAfYozgvx+gTNBGRIbvAR+0Ko3z9GXvIHmh/iD80bT0
|
||||
R/KOFPRt
|
||||
|
||||
Name: lib/arm64-v8a/libswresample.so
|
||||
SHA-384-Digest: +4igPJZ2YnzWfosJqtGklx80HZ/vXO444c05F/itXceX9bBZMzZevV4e
|
||||
QrnIMasz
|
||||
|
||||
Name: res/io.9.png
|
||||
SHA-384-Digest: ZJ9dceOSCXBSVMCsGc+zXTQEZb6ZE/pLSv+0Z4KA34F7xcsbxEPvbO/o
|
||||
5kDYGoHe
|
||||
|
||||
Name: res/3h.xml
|
||||
SHA-384-Digest: 4UO1tunBKQ6qK9aV1a4k8+p6q86uEPo2oEa20dXRbiFaUf/QiNZeGPIx
|
||||
+++P/l/U
|
||||
|
||||
Name: res/4I.xml
|
||||
SHA-384-Digest: F6dFQvziAtbpFV2Y8TaEAL0EEG6Ca5KrsRvtwskfwD8Vd3w/y4aLz05W
|
||||
NkK0tUax
|
||||
|
||||
Name: res/yF.png
|
||||
SHA-384-Digest: QLUIqzGoXcxHNbRVluaubDQ856+KdgGh40DlWjTWXEdLxidi6E54HH8k
|
||||
ngSxL/iB
|
||||
|
||||
Name: res/sV.png
|
||||
SHA-384-Digest: hBL/1DhvWB5RI5mE3Fg1f4e8rVWQdi1O9biUk6tuwqXWKVUbM3UdXiAD
|
||||
NqhLAPHB
|
||||
|
||||
Name: res/kn.xml
|
||||
SHA-384-Digest: HVOhGStVYVHizUDTkP/0eusPbj7Lb5AGMz0gv8ZIqM2zWqYcwAE/BoYR
|
||||
IG7PWaPA
|
||||
|
||||
Name: res/color/mtrl_indicator_text_color.xml
|
||||
SHA-384-Digest: APoN4wIFclMVh8wpb9xqUVlVp6mVz3Vdsds+wesiW+08mZ9CS3NYAfXK
|
||||
L2hpcVnu
|
||||
|
||||
Name: res/-N.png
|
||||
SHA-384-Digest: Bc/jESRcwAnthZAH+x4m2cJPRpTuR7Pe22hMeAV/84BF2IY3oskKlPS1
|
||||
xSHftgOo
|
||||
|
||||
Name: res/5v1.png
|
||||
SHA-384-Digest: PtTOWcdfSqPhaIXln1j7iMWPBRmiiVA5xMFye0GK9a9qPZwEi+HVKnYx
|
||||
KZiKhLRh
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/dc-elemen
|
||||
ts-1.1.xsd
|
||||
SHA-384-Digest: Nc3uuyHt9pqLxNoUVpH+bJB1wcDHoj71BtdXkgW8s5V1ftlAgBFmK7Ih
|
||||
i4J+o/aE
|
||||
|
||||
Name: res/mc.png
|
||||
SHA-384-Digest: /FiR2pIKTh8WhXS1OdSh/Za+Oyp/CyWM7F38ahAzqp2LOtBeaEpMuzux
|
||||
FypG2FMx
|
||||
|
||||
Name: res/y9.xml
|
||||
SHA-384-Digest: c8c3shB7vkZijqDLMOB9zOm13mO9Tu3BE5USZvxrlxsUsdjhHDk8duhx
|
||||
gpWUzP+Q
|
||||
|
||||
Name: res/Ju.xml
|
||||
SHA-384-Digest: NVFlZpf97wikDko+mLM8GhL94pFxPIvzka12m0GP5ryx2MOTAbyNMZqF
|
||||
MOduLfay
|
||||
|
||||
Name: res/gZ.9.png
|
||||
SHA-384-Digest: oUV2pU8/uPS+NzL1tXrQfUXRXGqBw3cKSCFMK4bzGNFg6QEe18lPqmqe
|
||||
LL8X68gq
|
||||
|
||||
Name: res/7G.xml
|
||||
SHA-384-Digest: betyP9FbEhW5FeXZU78k1U+hMqhYUeH86Ikdda4eTGv4crVVc2+GdqVG
|
||||
oSb/L+L4
|
||||
|
||||
Name: res/Fr.xml
|
||||
SHA-384-Digest: 4dCZr9/psbdMaD7aH7qhPv8eWhUESZRHFz3rCebyBqfniSla8u23E0qs
|
||||
9/SlNm6Q
|
||||
|
||||
Name: res/H4.xml
|
||||
SHA-384-Digest: 3/QJPnQ2ITfmbF8thoiNpstJB2tvzBmDCe2CWOBMVkcnjis0ZAPxdRqy
|
||||
d0Jchy8b
|
||||
|
||||
Name: res/Lf.xml
|
||||
SHA-384-Digest: F8HQrEQ+HZGQu1KqzpyjM6m6BTw+gnC9PX2jy9ZGtZcNzyFHLpR1SA8e
|
||||
cyxYQHDB
|
||||
|
||||
Name: org/seamless/swing/logging/img/debug.png
|
||||
SHA-384-Digest: Sb9czHpxlu1Hx2fWhONVwhN/DMB40Kesz1inOL09bOCOW19UBCfRL6+D
|
||||
/03XadX6
|
||||
|
||||
Name: res/UH.png
|
||||
SHA-384-Digest: /Vt9o6rigIeUD3IVqvpqxn+qSogtDkaKbaZZ6OGsQmJs6+9CpOCd0ZmF
|
||||
KYJ1O2o/
|
||||
|
||||
Name: META-INF/androidx.customview_customview-poolingcontainer.version
|
||||
SHA-384-Digest: EHf5MBesNj06gp+GpvENR3LtSvpSorFvIGQZBYtVzhv9c1TbnMLoP47p
|
||||
U0wo49PE
|
||||
|
||||
Name: res/4x.xml
|
||||
SHA-384-Digest: 4nISmwysAAm8FbDppatAoLH4yIbQ7vSBm9D9NkZZ/tAYJa0Evx6eWxHP
|
||||
6Ruf2qxo
|
||||
|
||||
Name: res/5Y.xml
|
||||
SHA-384-Digest: zvoGkkTWABOufda/RxBsZOj62Tcq2nC+/b/sHMeOlqbuYyvky52H6HJG
|
||||
Hvz/aHpB
|
||||
|
||||
Name: res/xa.xml
|
||||
SHA-384-Digest: //hHlGoAnYsX3EWaBXa5h5ABk80/l43NdUpXgCR2u+eUH+xGEMGSk69p
|
||||
IVesc7ke
|
||||
|
||||
Name: res/yj.webp
|
||||
SHA-384-Digest: EeuI0cz5cTo2SV2Fyt/95r47bHyDxjt3Q9DAijTb7Wq1TqHzIPY9aHN/
|
||||
dVLDxlkR
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version
|
||||
SHA-384-Digest: UutrFl0STXKxAaMcmggEj71td0a3E1WYlT0hVl7uktCUdfPDabIf/BPX
|
||||
dh4QJJ6r
|
||||
|
||||
Name: res/9m.xml
|
||||
SHA-384-Digest: EMPXGShM/cwfrrrncGl9/k+HQ9YnEuAHJVf9wtKs1By1Ukk4N9lQIx9Z
|
||||
6QsStGdT
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: I2eLzwMiqnHmfcOiXAjz2SQrqjR+6b/2wQFlz6rXZLgMdwIsf54x4uRE
|
||||
DDk/EAxj
|
||||
|
||||
Name: res/Iy.xml
|
||||
SHA-384-Digest: FPGUYUXuCzwDxAgu733yM3RKhOxS0pbNwVtq7VTr9WEeTX3SWp0m8tV7
|
||||
ojuYb60L
|
||||
|
||||
Name: res/gt.xml
|
||||
SHA-384-Digest: xLHkm2GQZ9YBUj+LxZGleumlPp/QoMGz6gaIWhaK3522deS6kIeAqLvh
|
||||
ILVLSQWU
|
||||
|
||||
Name: assets/shaders/fragment_shader_lut_es2.glsl
|
||||
SHA-384-Digest: ue47uo2x26US8QgrJR3t0re3A4ykcfvHd2V/nuzYDk6YBIq2m8M6RKjW
|
||||
xmQX7sRL
|
||||
|
||||
Name: res/7V.png
|
||||
SHA-384-Digest: SLUS+3uVbYMgChJtsCSr15cRmNkV9uxrGZSodjooeIup0MjDaB2AcudP
|
||||
C7jL1GFn
|
||||
|
||||
Name: res/um.xml
|
||||
SHA-384-Digest: SHuGyGQUOhXlDrL6/ENAb+RLHIfz1bP7zPDf/cymqiV0zUhJh0aiKh+5
|
||||
S+keld8l
|
||||
|
||||
Name: res/NN2.xml
|
||||
SHA-384-Digest: Mc/+NpaWyPQUUpLUqP5g4iQ52hLPiOmkPvKy9/rnX6Pa7jyVlFG6Zddu
|
||||
fBd5GjS6
|
||||
|
||||
Name: res/S8.xml
|
||||
SHA-384-Digest: oiHaMOhXwfRCoL+kb6E0DiSAFfnR9vJJIjPtAVbN6zcsioxcsxouFsZG
|
||||
qYqsDKju
|
||||
|
||||
Name: res/0c.9.png
|
||||
SHA-384-Digest: ZLGj0Q1IfT+WcJ4O2nMdEZaclTyDCDRa13GFQ+XaOzrztRhlDGjuWWla
|
||||
nmuRF+/3
|
||||
|
||||
Name: res/color/abc_secondary_text_material_light.xml
|
||||
SHA-384-Digest: qqS0FBbU9oCUtR1JZZbff0ZcYX2AJh9ASRot1bVsPHushJVLVYlve5Dx
|
||||
vsWKfRoe
|
||||
|
||||
Name: res/color/switch_thumb_material_light.xml
|
||||
SHA-384-Digest: DutYsEpVhJTRXLHvG6avUxz6fc5X+QsxGO3oVpAPV4QIHW0t6MrKOSN6
|
||||
6m4srKpB
|
||||
|
||||
Name: META-INF/androidx.arch.core_core-runtime.version
|
||||
SHA-384-Digest: jz6TlJYSdS28mB0Ilz92tFyeLbqcQ2STqN9LqRUkqQh3RLNCrlHEEmFI
|
||||
VFExA/hZ
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2.version
|
||||
SHA-384-Digest: q8zZlSP2PzcXI6eq42Mb5OFNcipRKtcDkkM7svIY0+yBMlUn3lRYABWq
|
||||
TgYe2efF
|
||||
|
||||
Name: res/nu.xml
|
||||
SHA-384-Digest: okG2dR4xTQOekrB3E6KWzAu8IUBrDyML/WthnJYeWLFcOIuczs9fjbkj
|
||||
JvNRTIN4
|
||||
|
||||
Name: res/color-v23/abc_tint_seek_thumb.xml
|
||||
SHA-384-Digest: 3qlsgXepFKEGUo6rfgNRveu522IwEdMuvCjZS6P59WOEsRzK+/Rqsx1l
|
||||
f91y+3co
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version
|
||||
SHA-384-Digest: wsaNMsWb6RQIy6WzraFZHnYm1auw2qAXCS9mKbQVshTwQm0yxwd1ZfCU
|
||||
cJ3MdSkp
|
||||
|
||||
Name: res/50.png
|
||||
SHA-384-Digest: YmYvWxSjy80Yth1HpagG/zmciOJBcyChYs8FLODRHFIvQK1aUJPJTV6o
|
||||
sdkVZnX4
|
||||
|
||||
Name: res/nl.xml
|
||||
SHA-384-Digest: PqNKGDZxRIYm83tqOnjxtKW86tQ4XgophH0vO9djCQxjwGkut3c3Zlj+
|
||||
Q/0Pi0cS
|
||||
|
||||
Name: XPP3_1.1.3.3_VERSION
|
||||
SHA-384-Digest: CklPlpd76s1tDOgGr6hghx4bk9MTNUMrG+9XNruXbsG8osCd+oOSg2Os
|
||||
sM6tCrjt
|
||||
|
||||
Name: res/t1.xml
|
||||
SHA-384-Digest: 5ZgzD8rur8eYk3DJo9kqEw3G2JOJH8+l0km0Am90AEPtpYa/E8xwVrxW
|
||||
Vir2xgxP
|
||||
|
||||
Name: res/color-v23/abc_tint_edittext.xml
|
||||
SHA-384-Digest: 8eOAxWZOG/KOMWLwZahIpLd77AJV9IN9diddiADllGCFlC6bNX7CmPre
|
||||
wQVsppoe
|
||||
|
||||
Name: res/Ei.png
|
||||
SHA-384-Digest: 6xH5N/pmcBrzDYuMBYCZcV5A3hcEUKx28dDuRTuFlthpqPCvcKd1JJ1C
|
||||
CmgEKGf7
|
||||
|
||||
Name: res/color/m3_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: r7h9WzlZOpNHJm2z82BjnVNVNG5uDmqv0vc2q3PoysqYj/Ialx2s/RIn
|
||||
BDObfS/k
|
||||
|
||||
Name: res/ea.xml
|
||||
SHA-384-Digest: LcyZY3b5j0la3PP6BpBuZxWhwNVpe8uRmcF2BHwjc/pDJqwbQl8YkvsX
|
||||
embJg6HW
|
||||
|
||||
Name: res/3W.xml
|
||||
SHA-384-Digest: alKJL222zabrY1FEqf2HHjZ3B9U7kNt5tZfnshyOLrQPRs1icqGaX4cm
|
||||
JIMqIcX7
|
||||
|
||||
Name: res/RJ.png
|
||||
SHA-384-Digest: u7Tr5M9AIJIFeXvvoBGL1wJYMw/8SZK4hAa5/K49/FGhWBJm6G2LHtJn
|
||||
jUmutXA6
|
||||
|
||||
Name: res/NG.png
|
||||
SHA-384-Digest: jOBMfDdS3YEjkXGa2zzE8rYb6fx4aTlBaz3T7sT6GJ+c8s+jD+Hq+ifs
|
||||
jsoR6ZtS
|
||||
|
||||
Name: res/ej.xml
|
||||
SHA-384-Digest: O8fSx7s/qrQfriote4OhMR9Pl/6cLlw6POD0DFqXaqxVaz0hAoTShGXr
|
||||
d+VcV8xH
|
||||
|
||||
Name: res/jS.9.png
|
||||
SHA-384-Digest: xLXYmQU9/B/GjycWsZpdYxnjdz+NCePGwpgwFQ8gJE0frGxOpwNfp6nZ
|
||||
EcrKVwCc
|
||||
|
||||
Name: res/6Q.xml
|
||||
SHA-384-Digest: no0nNL/fQnceDCisUceJzBxii8Ah+nMkKyXtNr2TIqfNW7gMGZ9gnUJn
|
||||
HOqzeYrC
|
||||
|
||||
Name: res/r2.xml
|
||||
SHA-384-Digest: fsJM0DF8pPCTA6YkBL3unbmcoWyOnH1etJjvbKQ04198WRi+O0qxZC9p
|
||||
nGtE4Gzu
|
||||
|
||||
Name: res/OD.xml
|
||||
SHA-384-Digest: 8iNXVyOf4UNlWv2Nog+CCc9X4cMGe4s2ciKZFA47ahMpgcqauoGmvOBz
|
||||
3dCJyJKI
|
||||
|
||||
Name: res/am.png
|
||||
SHA-384-Digest: ZztAmq0S64scRq7lgDzu10DJEmSs4Ee7mzSnw/Xyt9gSuJp7UFY3k849
|
||||
LY0nKeBy
|
||||
|
||||
Name: res/yW.xml
|
||||
SHA-384-Digest: YIhvcj/YuH5FYYGQV9Qo60dF/Xpnlw6qrYlcPSZQ6nBa5t3i6FGTjSkI
|
||||
Ww1Qpglz
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Server-mbean.properties
|
||||
SHA-384-Digest: +otYDh+ipBi+66uE6tHoO/L6SASFmSbIfJn/eXU6iNKzYT9dEDFIp9ED
|
||||
Qg9WjXmz
|
||||
|
||||
Name: res/1I.9.png
|
||||
SHA-384-Digest: N4dm0HQgAfNtvI84X5y7WuOrfgLOVNU6Ksq2aDVsU3a631fA03wnPeH0
|
||||
66/m0l+s
|
||||
|
||||
Name: res/PX.xml
|
||||
SHA-384-Digest: 7rSehPSLe4wa17Cso7Ls04dnEDw6NmbW3OwLOQNUIXE/RffjVnwDCRAj
|
||||
pyvmvtD1
|
||||
|
||||
Name: res/color/design_error.xml
|
||||
SHA-384-Digest: eBoYAU+4fQpV5fDoQP0jpkHO4E1Y/sYUHxv3jBoxQdyigtvD6Ea00hh7
|
||||
CKapEHjZ
|
||||
|
||||
Name: res/nW.xml
|
||||
SHA-384-Digest: Ai5qnK6mYzwaHlsVTDP2KLtWh/aZ3+amcwI3s2SHy1q8/3S2AmqZesGw
|
||||
eyD2pUU6
|
||||
|
||||
Name: res/I3.xml
|
||||
SHA-384-Digest: BmXRBDrX5ugujpMhoF/ql7AKxvjRaEY7avbQ/0jSnucFJOGxVjhavYM2
|
||||
mIpy0xB4
|
||||
|
||||
Name: res/Y3.webp
|
||||
SHA-384-Digest: PhwzK6ITtggp9IgyuD5rxyoAzpZEGz3WyqcFnfZRrNCKJhrkw3D1QKF2
|
||||
3nIpFVxv
|
||||
|
||||
Name: classes4.dex
|
||||
SHA-384-Digest: A3QI/aOWxp9D1Dh4/wLQBy2BMNeKGb+mHAHCTkiqoFWJFO/zMapb5yv2
|
||||
PBqtpGiQ
|
||||
|
||||
Name: res/z-.png
|
||||
SHA-384-Digest: sydD0tUuy+dXyE2ob3N84GLS2Ry2hAJZnY86Woil0Gtx2PhpmcxsXB4A
|
||||
OFZTSbB9
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletMapping-mbean.properties
|
||||
SHA-384-Digest: h8Zef6V9LA3ArtEXM0mTdQAi5n1Gl5sA5klnEUDqA2XupjBxc7FlrUju
|
||||
2WlH6i45
|
||||
|
||||
Name: res/BG.9.png
|
||||
SHA-384-Digest: vOyGqXu6t3b61r/EiVwpteTXDnGOff5Imf1VDrSLb8xzVbDPN3Q+OeQ6
|
||||
/hYpenDM
|
||||
|
||||
Name: org/seamless/swing/logging/img/copyclipboard.png
|
||||
SHA-384-Digest: /YO+oecgTyW9vadyc68upsmPDJG6/9pATZG8KTIK2Q6B+cgKjXiKIfvE
|
||||
9eEFcmjJ
|
||||
|
||||
Name: res/-7.xml
|
||||
SHA-384-Digest: 68g6FAjS1GonrRxOnTwQA0ydahGzKJCJzHi54d4VrA55ggRXfoWGnpWk
|
||||
QZWoIA6k
|
||||
|
||||
Name: res/h7.9.png
|
||||
SHA-384-Digest: GrolqyQRU8MlxS0AhahO91YGLuaDhxe8YCn3dKhqBuXLH51hyjTvgfDf
|
||||
Px/7qaAI
|
||||
|
||||
Name: res/Yc.xml
|
||||
SHA-384-Digest: riY7i9nq0JPfRqafLUbMf2QLP0dvsOPcOzEDUQsPIe6ZswIFEva+dBX6
|
||||
h1TrBNCV
|
||||
|
||||
Name: res/ZD.xml
|
||||
SHA-384-Digest: lPsS9fi2Xha++ZwBCS/Nw7mpbGlUrXxtjZ4t03vND4hnlF+kwgsdURaJ
|
||||
hn+0Obi6
|
||||
|
||||
Name: res/iO.png
|
||||
SHA-384-Digest: 6J38quWjrp7tu3/+kGl+00HpAzRslZN5HxFGtFReullkROqmpNbEnsKJ
|
||||
G8x3ZauF
|
||||
|
||||
Name: res/mm.9.png
|
||||
SHA-384-Digest: KDHJeGAT/E5o5Zt/JALkhwWZYmDtGxxBjMpMYgQRShT2s11RAsmk1sV5
|
||||
NDCpaMI1
|
||||
|
||||
Name: META-INF/androidx.activity_activity.version
|
||||
SHA-384-Digest: GAUzqROBqSNEOdKTgEYNH9FtP3gEM37QyKL0uj7CnogPXyqU/2ZCmyPZ
|
||||
OeyGd7Kx
|
||||
|
||||
Name: res/o-.png
|
||||
SHA-384-Digest: h6i2zRQXyiGrAu5TgTaMXgQOYdybRcAnLEsCK7aw2bInkmtm42YWn/KC
|
||||
R1jJVAX5
|
||||
|
||||
Name: res/8j.xml
|
||||
SHA-384-Digest: XAA5a7LJMHzgrH2f6UAao/6vSKxFrtmG8riWU/4spQzLuGWkc3hgDZOQ
|
||||
r4kgg+kb
|
||||
|
||||
Name: res/color/m3_card_ripple_color.xml
|
||||
SHA-384-Digest: nignLKrB2vyDjiUxkU7FPjbNvKESyBosb+5GJPF96VLOJEepfVIJ/+3y
|
||||
9jyWLNlQ
|
||||
|
||||
Name: res/qU.png
|
||||
SHA-384-Digest: Fz/zZ+9mX/3S6c4CGSmjrho8AKren1RY8tXl5+9J34x7X1cWwmgrV0eJ
|
||||
Mqc8bV/q
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/StatisticsHandler-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: xmIUW1P2T+KgsuOaGEitU03nTCySeQWnIErFRTtwA4R14LtQZvAgPdpJ
|
||||
65Ka25qM
|
||||
|
||||
Name: res/HC.xml
|
||||
SHA-384-Digest: J0RMBATR7KIXCRINtgFt1ipwhJzJEtf12Nhq2sAkuV97querK8Qdz2XQ
|
||||
8RqIifVz
|
||||
|
||||
Name: res/hP1.xml
|
||||
SHA-384-Digest: R52InEuA9XvAaY+Ea8iKuS9fm5Ymmh1TA8q+3TpAbIHu/TyKSUFP6L1e
|
||||
ztfO2zgO
|
||||
|
||||
Name: res/7i.png
|
||||
SHA-384-Digest: 5MCqNCKOeC59rlNzOJVsmdh0dtUdr9Yng3tAtXja2b2M2tt3R0BWPdtd
|
||||
FZZz6YFn
|
||||
|
||||
Name: res/color/m3_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: qPueOlWtmoGxaYh7MIqSFl1j6HKVzkBibSiD8SLpVzT5emRAEuguTcgz
|
||||
L091HP10
|
||||
|
||||
Name: res/Oh.xml
|
||||
SHA-384-Digest: P5QW9+fu66NCVS8ZWDv2cKOWiBJVRwj3/scQ3knzmDVEw0GPDBByFFyY
|
||||
/+0RiKkX
|
||||
|
||||
Name: res/td.png
|
||||
SHA-384-Digest: Iu6bxT3nx+aT6WxkHdmjf3mVAzE1w845r9RfJZy405YHqQQ4KhhLC6TJ
|
||||
WeyCE7h3
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant24.xml
|
||||
SHA-384-Digest: 94fcwkT8obJKw9fS+Rn2k0rA9tgtfP6zJDZZ6bS5UE5N9Ux8rTcFZ8GG
|
||||
t9IdZ37k
|
||||
|
||||
Name: res/DS.xml
|
||||
SHA-384-Digest: 0snZ9vKD0mb30ICkhzdni9SXm9FYDVSyqUoK026s516lKLNDBwYwQiO9
|
||||
I+L2c3sU
|
||||
|
||||
Name: res/np.png
|
||||
SHA-384-Digest: IdmPK6h99jD2CDHH68FL845mUxqK5QqjzOOMSn/Jq97pNaStpc0q/L9s
|
||||
ocDUoFry
|
||||
|
||||
Name: res/Zl.png
|
||||
SHA-384-Digest: HPP/U0YFc5YJooj777FQ+oeNJ/637Gtw9X1FAvFavy7t8na8Ps+tgGNe
|
||||
ow6+Y+4i
|
||||
|
||||
Name: res/do.png
|
||||
SHA-384-Digest: 1hcg6+NassUaYEG8AspaqrTLLne1Vw1NlrMoCkA78wIkdXwVYafdG14+
|
||||
SMi3uNGR
|
||||
|
||||
Name: res/2n.xml
|
||||
SHA-384-Digest: HheL6yHO4bGvejqa54UWsGE7xvr1ITG4/QrkMBs9uiY1xj//2Mudg85h
|
||||
cijqJKzY
|
||||
|
||||
Name: res/color-v31/m3_dynamic_highlighted_text.xml
|
||||
SHA-384-Digest: aO6QKy5iliRw/iELo3f0BovG8nhyYxE4AOYN1s2a1dOIJ99zgQSt+QSo
|
||||
+r1y6pPl
|
||||
|
||||
Name: META-INF/services/javax.script.ScriptEngineFactory
|
||||
SHA-384-Digest: E2xSOQUho8OXNU2x7fYtWlCrStjZSae2njau6GXa33bL/JVvo9mrHy9R
|
||||
YRMQMGlt
|
||||
|
||||
Name: res/TH.xml
|
||||
SHA-384-Digest: p0KeAxa2m600nZuAppt1RTtH9ZXPLUUYqSOHwOqRwRVek/LoO2bAFEO7
|
||||
dtDqqGZI
|
||||
|
||||
Name: org/eclipse/jetty/server/session/jmx/AbstractSessionManager-mbean.
|
||||
properties
|
||||
SHA-384-Digest: f9a4CzUeIwClEGm6hmVQqLRSF8LQKUo9uY0pmUw6k+WmYuZPlu6u6+vQ
|
||||
RW6hp5d0
|
||||
|
||||
Name: res/fu.xml
|
||||
SHA-384-Digest: ZQGtmO/8csMHJzcG4DRi4ivBb6DrctIORuwKowN8GCVJdHh/fYGkF2so
|
||||
O1u7zF/t
|
||||
|
||||
Name: res/_P.xml
|
||||
SHA-384-Digest: bZMcPCwIzmiIKjZMEyieZLJYxs9hTJja/9pAJI95JZSb+hgprDpQc5Gv
|
||||
HsXpzaJS
|
||||
|
||||
Name: res/nI.9.png
|
||||
SHA-384-Digest: Y3kdCKGKYPggfIyBjLPNsEL5/MeTKlLzib2vsoRYhK7P6jJ/6I4ZtXaH
|
||||
M/UK7g2f
|
||||
|
||||
Name: res/color/m3_assist_chip_stroke_color.xml
|
||||
SHA-384-Digest: 7e7q8xCzKKh4XPuDWIFI+dRkqfPKadJ6YQREhdqKYK4bj/uV2dpLv3s2
|
||||
9T9ygGWk
|
||||
|
||||
Name: res/YI.png
|
||||
SHA-384-Digest: WeHdQpDUkKNDw7SED691wHkcY0eECmSofF7Pg6mHn57e5lPnBu9K7YPg
|
||||
+WwaV0np
|
||||
|
||||
Name: res/Pb.png
|
||||
SHA-384-Digest: E8qgI//n1u/CTx5MaoN4JO+y6N6S03xCdNjb89wl2JGLARoQ/KdXFnVM
|
||||
Xu5ItNb8
|
||||
|
||||
Name: res/vH.xml
|
||||
SHA-384-Digest: /rey/FsBEyFWJda6pl5jRo0WPKn/7d+s/vsQAb48jtpuJbxiLE5pROQv
|
||||
jmGqBCNq
|
||||
|
||||
Name: res/xR.9.png
|
||||
SHA-384-Digest: BZqYwOOJ+HpY87MG1ekiidzC6QBR1tGSii6j3twEG84LpXa1p/mNxDCa
|
||||
Xy8TxLWv
|
||||
|
||||
Name: res/rm.xml
|
||||
SHA-384-Digest: Qltu5c06zjLEe/6Ys/gtGLXm9LiOXcRLyvnFvyVoaQ/FPCemAilsZvDp
|
||||
i5VwDVqS
|
||||
|
||||
Name: res/Tn.xml
|
||||
SHA-384-Digest: sVoz92HUrs00cI4fgXFkQiVP0FX321vBTS7xAuAFRGW1HMJsAT2CjalG
|
||||
22ebz7nm
|
||||
|
||||
Name: res/UO.xml
|
||||
SHA-384-Digest: EpC+3G6VpKub2ZbNi46X6XEoQ371QlKP6YlqHyFyme+/Im9RvwwkSosx
|
||||
axwqv0eO
|
||||
|
||||
Name: res/gE.png
|
||||
SHA-384-Digest: iWSZiPL/E+x2tm4oJaTq0SLZbBYj8RTRXi7PHTrmMH+wFOTYsN96GWhh
|
||||
PpGVRN1S
|
||||
|
||||
Name: META-INF/androidx.profileinstaller_profileinstaller.version
|
||||
SHA-384-Digest: P7PmzhZ8RItkxD31oFb/94LYLyWWoVAzFfwhMFNWhIBxHCCJJkR/UaVu
|
||||
etA/VFdg
|
||||
|
||||
Name: res/7o.png
|
||||
SHA-384-Digest: vr/EGSGlDE7tE0PZuNHYRHfP5B2mmk9uw6Qe6C3XGgk9ZkgGw4ESrZQ1
|
||||
vWr1li0z
|
||||
|
||||
Name: res/8P.png
|
||||
SHA-384-Digest: DWRoKEQTMIGQLY0l4fte8lxbO2xSq1ySt+fClZ87hognwMrgmf/7+V8J
|
||||
nBTlRd5+
|
||||
|
||||
Name: res/color/design_box_stroke_color.xml
|
||||
SHA-384-Digest: YGOP1FSZ9rfKr3bWc5ADc60veW1722RKmaIhP/CAtit0lfNbxFFDw7MY
|
||||
J4RNmn02
|
||||
|
||||
Name: META-INF/androidx.databinding_viewbinding.version
|
||||
SHA-384-Digest: JL5FDdf5FlA2LIe7bfx+vvLeaFni4rGviy8ZHUQsbozFJZzd/O4TfLdU
|
||||
Aya8Shl3
|
||||
|
||||
Name: res/4z.xml
|
||||
SHA-384-Digest: b+4Y8W/fv1btY6J3d8SQUlQV31JXazKZdP8U2ob0ROp/wsVThv8O60dK
|
||||
2gKVy2HB
|
||||
|
||||
Name: res/kp.png
|
||||
SHA-384-Digest: 8PtWv/V7slu48av6AG90Six7hNsper/kZLe8kukEEOdirqNJR+N80xm/
|
||||
zJqocs5P
|
||||
|
||||
Name: res/Eg.xml
|
||||
SHA-384-Digest: f3FQjFioH06Vos/MartQp3m+2bVeWMPRUusnxXc3ekkgPaUdL/Pn81Hz
|
||||
tsbUy6fa
|
||||
|
||||
Name: res/Mq.png
|
||||
SHA-384-Digest: jUsdDA7TkGoeCe1Tj/vSA6Ib9S92vjdQYIqf25rUkhf86EdPR4SIjIJn
|
||||
ukdsw+El
|
||||
|
||||
Name: res/ya.png
|
||||
SHA-384-Digest: lCuyflhb2WupPjEsc1x+BevEFqvsy/hpjskVg0eW3fJrQrixWv58bFAn
|
||||
Ytky25xB
|
||||
|
||||
Name: res/zB.png
|
||||
SHA-384-Digest: 8Y5A8CIXDLyng9UABBh8+M0U9r1Hp86mu6iKA1rKhA5LrnYubGEiPdAF
|
||||
EcAbjwms
|
||||
|
||||
Name: javax/servlet/LocalStrings.properties
|
||||
SHA-384-Digest: JwmvqB2OuQhvjkYmECAlPPojI7qF6qH7RzealBsgOjr3TdPeu2BxjzE3
|
||||
riVn7f4l
|
||||
|
||||
Name: res/color/material_on_surface_stroke.xml
|
||||
SHA-384-Digest: QQaxaquMqQRDqmIUpIX6qEnzf78VbWSsXv/V7V+IYExuP4b8WyVIYWa3
|
||||
SVGbX+2q
|
||||
|
||||
Name: res/VT.xml
|
||||
SHA-384-Digest: isQS5auzDqo1g07ahR5Th2G2ng50r8XJXoAnGCFnFU9I11ByiNCyivgk
|
||||
t6obIo9Y
|
||||
|
||||
Name: res/NN.xml
|
||||
SHA-384-Digest: DLj8o6fD5BXk+sAdGD99UklbTHKP910yKV76aOlwG3sjXYx9iSXS9CDk
|
||||
lyIjaKYq
|
||||
|
||||
Name: res/6d.png
|
||||
SHA-384-Digest: 85nqfnR9nymKEaE3LPp85rWYafpon575wUekktXbx7H6rPRyCawKdGHR
|
||||
pDH3Audy
|
||||
|
||||
Name: res/7E.png
|
||||
SHA-384-Digest: HTGk69DlbQzaAhWFf1YluLKRo5peTkHZnLcSeGcTWgowPn5eZD1MVfY7
|
||||
14MXoCcY
|
||||
|
||||
Name: META-INF/androidx.interpolator_interpolator.version
|
||||
SHA-384-Digest: Y3rGBi6XAW/5GC4bIZyUKaf7kUBkQnImZdlmfb1WeNkFlHnjtxck6HqB
|
||||
w2ok7ALQ
|
||||
|
||||
Name: res/color/mtrl_outlined_stroke_color.xml
|
||||
SHA-384-Digest: xIN7lobzcPAoILNwlq0EdI5rFK0jpMn23aHkKLNXtqBlRFCfC6yKaM0l
|
||||
2lxxfhu8
|
||||
|
||||
Name: res/vl.xml
|
||||
SHA-384-Digest: iU3EdrlYux/9dKozhgaCY2W9hOroJBv6stLI/yGgYB36IUTIBEv/9hKu
|
||||
Lx8EcZEE
|
||||
|
||||
Name: res/py.9.png
|
||||
SHA-384-Digest: yI51a33VvgIiJHETBbAqUoZ+ZBk6OVxSR0+I8acdrqRQ1CM3rwmwTkV+
|
||||
g1UxdtNV
|
||||
|
||||
Name: res/as.png
|
||||
SHA-384-Digest: bg5pTRurRAX3CSyvd6Qyu1Vl9uv4EKC8Gc0BEkPYmQIhXOG8YWZ0ujLd
|
||||
AZok9he0
|
||||
|
||||
Name: res/-1.xml
|
||||
SHA-384-Digest: blqMG8cgJoAt9lINeLx2uWeBOFbbxjOA6RxfCL2lD2A2aPqoczJXTLcy
|
||||
dBM4DRI5
|
||||
|
||||
Name: res/KT.xml
|
||||
SHA-384-Digest: RDvryT2Fxn7JXglR8aCQEtuEcPlashsYFG79ELrY1s1qxsz422yW6opH
|
||||
gZGjKn2p
|
||||
|
||||
Name: res/rz.xml
|
||||
SHA-384-Digest: A3HGWQwWg5dAM95fScjeSySHsPTt63mU8ZAOgUzAZdayE/rzQ2a4Agmw
|
||||
R5glldLV
|
||||
|
||||
Name: res/kL.png
|
||||
SHA-384-Digest: lcMlu8xM1HbVl/OL0c25HKmzcsOPFV2OCEyruNsAnFomqY1VEK0gNQSU
|
||||
fPey+lPP
|
||||
|
||||
Name: res/color-night-v8/material_timepicker_clockface.xml
|
||||
SHA-384-Digest: oFTfmKGjDFvAzR8vm2Y0Ns3XcTR4leLo+6yXCnGsDTjfjmvOti0kBpzC
|
||||
XLz3JnM6
|
||||
|
||||
Name: res/5T1.xml
|
||||
SHA-384-Digest: U/9BvVIgWH2lZv0oCVKM+lvn89fFqwJRobrzk3nMhZqTOV0beuhzGwVr
|
||||
W+IoT6w1
|
||||
|
||||
Name: META-INF/com/android/build/gradle/app-metadata.properties
|
||||
SHA-384-Digest: 4BxvuT+9Ja228Jy5CsCTEBTyvwsygj4VbPV8jciLdVFvjg19UhCMhTyT
|
||||
cdfrK+tP
|
||||
|
||||
Name: res/35.png
|
||||
SHA-384-Digest: HpYdt/Yte6gbgseUy3Bdwz3XEh9fqd34ImT6cyULnOK2HzSm7zmZxfCm
|
||||
SNvZ/r3v
|
||||
|
||||
Name: res/rI.xml
|
||||
SHA-384-Digest: 9WEdrn1qu8GYXQhusK9NFqrDTS+Jsu1d1LzLKCvmMtpXRbPHu7wCVcKo
|
||||
Cu+4mbmd
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel.version
|
||||
SHA-384-Digest: 6/ZbxWLH/SBCMX5Rq6/U9d/IsQt+rYw1pg8pTLiLxEY4A3aFaNca83Ph
|
||||
64apomWE
|
||||
|
||||
Name: res/color/material_slider_halo_color.xml
|
||||
SHA-384-Digest: TzX6Jg2Yd3PpWyJ2/JFpAGa+gyeKzQZZQBBywCO3jMnQwYkCJnF4Ot7I
|
||||
SarmCcBk
|
||||
|
||||
Name: res/ge.xml
|
||||
SHA-384-Digest: xWmifnmXNWIvgnH70/XpfhyQpK6zDGsNsEEnFehzp3TuxtYpygCsQsww
|
||||
9peE7Z0g
|
||||
|
||||
Name: res/io.xml
|
||||
SHA-384-Digest: AQDQbOV67PRWu6BNK5ZgUbTU2W2yE87xRbqUbgj3erEOa337ENfigbum
|
||||
HzdOPaD+
|
||||
|
||||
Name: assets/shaders/fragment_shader_hsl_es2.glsl
|
||||
SHA-384-Digest: IMJjrTFGtbAoXtyroOKcKhFU1jeiO9+Sv0neui5SMm3p69047e4xuEGw
|
||||
PCau5ylj
|
||||
|
||||
Name: res/color/material_cursor_color.xml
|
||||
SHA-384-Digest: SYJQcJW1n6snxCH1pfSPnJS6iClnEggqtrAmLGDiUA3v7Duq3V/9IwHW
|
||||
X4Rbm1ro
|
||||
|
||||
Name: res/0n.png
|
||||
SHA-384-Digest: 1Rz32E4inL8A6GIlcx/Vk355dN/W/vwh3KzHgjsg91BMYx0gDIvv9/vy
|
||||
jwwZVZkO
|
||||
|
||||
Name: res/5D.9.png
|
||||
SHA-384-Digest: XggJxokx/UetdePIxBZSsetbxYbP71HvCwp0plHpjUysXQIn4+O9B1gU
|
||||
qZ4y+55s
|
||||
|
||||
Name: res/Qt.xml
|
||||
SHA-384-Digest: hgN/yQL7LaMfzonM1NsPl/2XFwezyVmDedoSt7mabuZI2LoPsz9Yo1OZ
|
||||
lTPPImIh
|
||||
|
||||
Name: res/S6.xml
|
||||
SHA-384-Digest: HlBXKy+tRJPsRzLgezd9s4WkO1eQimLbD0pfBxi4zja148Svl2O8daii
|
||||
yTubj4Fa
|
||||
|
||||
Name: res/In.xml
|
||||
SHA-384-Digest: XnVzdMDqjudyJccVVIyQ/SM0XBdF3W+wH+XOdRs4QDy4bmQRtEsPcDUa
|
||||
87EoXMSC
|
||||
|
||||
Name: res/tS.xml
|
||||
SHA-384-Digest: cld5jKfjmB7Ax0Ub/Gj40JoExFKX3M2Fe801XhyPB4K57l3EQJm3S8oH
|
||||
ZA7CF9VT
|
||||
|
||||
Name: res/e_.png
|
||||
SHA-384-Digest: U0TikzXaJmPvs1sLWNdmS7mMIop2zC5wU5hhs3Ses79X8ND/i5hi6Q16
|
||||
j5I2Kce4
|
||||
|
||||
Name: res/3h1.xml
|
||||
SHA-384-Digest: qNrJZU4/t3frzVnzHXfAn36VCGhx4stoKxBDtf7/f0iu7IFpGTFmJHPa
|
||||
feV1dZgJ
|
||||
|
||||
Name: res/4I1.xml
|
||||
SHA-384-Digest: P7nniohIPoscfk3dPOm55iGrNPwlSEpLEUsz3qWia/705wm1hlUTHAlu
|
||||
P6rmyo+J
|
||||
|
||||
Name: lib/arm64-v8a/libavif_android.so
|
||||
SHA-384-Digest: FmAKaKFgYdUwCr2zGW5burQ+PyLCiExxHoFrEVKAOxnf8JRvRV4YxxD4
|
||||
HKndhiI6
|
||||
|
||||
Name: res/7o.9.png
|
||||
SHA-384-Digest: bAJzSpc6ew2tRXqJNC6HHrNyNB8dmL8UnGtALWrBVoTsYW+lACyIfnXn
|
||||
Oi8MOueV
|
||||
|
||||
Name: res/Tr.png
|
||||
SHA-384-Digest: sTpZUeZHUXrU16ZLl+Eld2YD2+FClir3AvfxmwaeCagZ6ZP5F/+1tUjA
|
||||
LvKj6WRh
|
||||
|
||||
Name: res/V4.png
|
||||
SHA-384-Digest: R7rxsMFMAXMvlk0xYz78JdZIoDpA7MQlbIhumOOa8Ju3bjTu66cikiFH
|
||||
nuK54RY0
|
||||
|
||||
Name: res/ba.xml
|
||||
SHA-384-Digest: kq8MnvvXk8oIaT4YVSEcaUkMYN0eEw6LBggpqS3S5knui+lvripCjfpf
|
||||
OsCytlv1
|
||||
|
||||
Name: res/pg.png
|
||||
SHA-384-Digest: 93X7ircnZWDvFgUe/jyUK0vRsg8Jgj5duZywbGKzl+m6f3B/a3bAiOt2
|
||||
lhzmXqYG
|
||||
|
||||
Name: res/ak.xml
|
||||
SHA-384-Digest: kkhSSudzQwAyRMjGk3kNkt5M917BjzXkzD9onhrkw+es/AVP3aGRYPQF
|
||||
KgpB08uq
|
||||
|
||||
Name: res/bL.xml
|
||||
SHA-384-Digest: IHkKu/AnqZmyZUjGyaTQKXt5cBJB4rRgTTzJnNAgCDy+6Or/zBlKNL5w
|
||||
slrfxtmA
|
||||
|
||||
Name: res/color/m3_tabs_text_color.xml
|
||||
SHA-384-Digest: E0rWvj9GMON+DoMqPlcgAWiOO0ujJ0eznHuiTJwopnyauy2nhFk1K+Lw
|
||||
u24QQEiO
|
||||
|
||||
Name: res/D-1.xml
|
||||
SHA-384-Digest: hqdyX7ImYBWmYjjF6/FD7KWgMyD/QtfyE/3RKuDjd3DJC+sIire/E78A
|
||||
ZkITMWl4
|
||||
|
||||
Name: res/mt.xml
|
||||
SHA-384-Digest: BObLIyrWBXGDvC675jI6k9u7aRS7uOm64Dc5KdSd6JsHvIVhhfpktwr1
|
||||
DQ6tUFrh
|
||||
|
||||
Name: res/gX.png
|
||||
SHA-384-Digest: XkERqurKNIyGzjHyztvc5nc+mU3tcKGSHnQU2wB1FAjeOQhOpEA5zqY8
|
||||
2FF5WjTP
|
||||
|
||||
Name: res/qw.xml
|
||||
SHA-384-Digest: RH3ELUBI5NtOhDpIk9XUIZ4TD6BbKntwM5WeeiDdqvtJAWK41c7o05G6
|
||||
95xkV3/N
|
||||
|
||||
Name: kotlin/internal/internal.kotlin_builtins
|
||||
SHA-384-Digest: V4E/ddV/uwTGbBWUdI2xiNHGyMqerrWNlE+rWLDwMF8l9WeL7uXeiusr
|
||||
PtOZ7+dQ
|
||||
|
||||
Name: res/-D.xml
|
||||
SHA-384-Digest: a4LwZ9jkgtWDjdrlKVMVgUGjTgpog3W1+l/+xd1P2LysV8rGPVA17InX
|
||||
xgWvzLJ+
|
||||
|
||||
Name: res/color/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: gq0uCw3r6HL38KxnusB9hXv1x9ijOcUGcfAX9kythhGjTEsEb2oNLbps
|
||||
jI4aRlge
|
||||
|
||||
Name: res/2P.png
|
||||
SHA-384-Digest: IlN0jgbCMECXaY/6+J8N2M7IqSU/7AmeM7D9wcfcOMeldx1N4zMD+d4K
|
||||
6aptQMgz
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_ripple_color.xml
|
||||
SHA-384-Digest: gCc2MFaoKDgWbpoGZZN+F1VaAAMr0L2hGNMU/BHVbyjwjFbCcwfjQoBO
|
||||
QZaytJ7Q
|
||||
|
||||
Name: res/Sq.png
|
||||
SHA-384-Digest: yXDz72AASy5MpFgMeyymr2gQ2kAiyTfVt1RPZNHGd9bH3WaTjr/+vlii
|
||||
i8zLe1PG
|
||||
|
||||
Name: res/SJ1.png
|
||||
SHA-384-Digest: Bav08UvOVRY+YN1heckVx/pIK53kF5q6Oc1iA4VC9UUNzVYCH7wZYEMY
|
||||
NS4lHqpB
|
||||
|
||||
Name: res/color-night-v8/nav.xml
|
||||
SHA-384-Digest: gSiYnG8MFZa+/eR4gp98rOx0e0JOKr3/iQNeypJ1uTFaCh/gQLy+GVns
|
||||
cNZMKUyB
|
||||
|
||||
Name: classes2.dex
|
||||
SHA-384-Digest: 1iPfGzAgMs9OFFbpVdOz0ehSBxxcGdWu+cxtbLUIl8mV8JntJwjBA3nB
|
||||
ToCwORkP
|
||||
|
||||
Name: res/bA.png
|
||||
SHA-384-Digest: lj6zNAG/f9aOKUsV3h8C2mgeOt74Ynd6rsVIoxXNohlp03kMuft2axxv
|
||||
9aO+PjF2
|
||||
|
||||
Name: res/color/material_timepicker_button_stroke.xml
|
||||
SHA-384-Digest: 41lgxZXOpQko2x8HdYY8HThT3QJCVPnwx1tOEmfcylgiLxkVhgC9Xg86
|
||||
XfW22pu6
|
||||
|
||||
Name: res/DQ.xml
|
||||
SHA-384-Digest: EOnedGLOR3ywAfviA+poKRrJCwtEaMG2IJTNnPyQqcBD8HvGdrJQ2YC7
|
||||
PJN8mCRj
|
||||
|
||||
Name: res/1K.png
|
||||
SHA-384-Digest: C+Hkj2IP/ZwYhbwYAG2RIdNvzkvzQSutQkoPZALEbVPPObBqJzR8M9ZX
|
||||
dHqX4/FL
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant22.xml
|
||||
SHA-384-Digest: dve/noeM1123blSR82by/tBFwSKQSCwekalQ2iyTeepNaCD3KRQn2NU+
|
||||
QuQYMisV
|
||||
|
||||
Name: org/eclipse/jetty/http/mime.properties
|
||||
SHA-384-Digest: xjOLYaJGSTOEinsr8GM2hbokAAyu9xbVnepVbNrxgDDhsGzxGfxUWbAV
|
||||
OdDHZxb3
|
||||
|
||||
Name: res/uG.png
|
||||
SHA-384-Digest: 9xYV4q17e+I53SGSv9qzp6zAFN+Hg7Ws3EuibJHYSdKtFfLfgGCmBrNV
|
||||
bsqLmNz2
|
||||
|
||||
Name: res/MQ.png
|
||||
SHA-384-Digest: X35ggX8nfQyJjFeo/BEc58z/Rm2zB3ibPEu1uTq/IeUHJGr6Df5w5ya/
|
||||
q4BEQ1Ea
|
||||
|
||||
Name: META-INF/androidx.loader_loader.version
|
||||
SHA-384-Digest: 3FVKjjKI0+5vNFqCn7e/gbN2NNbN7Evx6sKWCA/NHoGQzrQcTJH44GQF
|
||||
vh0zCyd+
|
||||
|
||||
Name: res/5c.png
|
||||
SHA-384-Digest: u4jWVofeerYqq44Lr7q4XZAGotaNRzzjUdvSYiqTP16OGT8IImCFWE8I
|
||||
dTuypovb
|
||||
|
||||
Name: res/color/m3_navigation_rail_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: YKl6NYraAjC4Nf9zPS1bOrT3ZbB3QlDR6CXOzQwx9P23i5zPOAZmbNDR
|
||||
3J73vUXe
|
||||
|
||||
Name: res/BM.png
|
||||
SHA-384-Digest: Ub53axTxtcG2cJwIorEiEppUPw1IcVCxEtc+DFjMzbwE7aeB6uI9OmsW
|
||||
cCJVNv0T
|
||||
|
||||
Name: res/mT.png
|
||||
SHA-384-Digest: LfpV6f4edILN0u4nU/0VP906H7M4+t+iosVli6l9kAio1lIPK5B2Qt1w
|
||||
BV9hHiwZ
|
||||
|
||||
Name: res/TJ.xml
|
||||
SHA-384-Digest: 8Zv13ZdKlu9FfUiIJG+iKal+USGDBn7VawZIJkG4Hh1bkJjS46c0HGRl
|
||||
8CdRMdzD
|
||||
|
||||
Name: res/color/m3_elevated_chip_background_color.xml
|
||||
SHA-384-Digest: 0JUXkSTIHg8DvY9077t950hgpHLATVO4g7EP04VG8lVSYxfm8ZGe6qMZ
|
||||
G7kD40fR
|
||||
|
||||
Name: res/ps.9.png
|
||||
SHA-384-Digest: hWFn66ENn37HROlGhd6MAchdQzU2Q6F2LrHsWOJIhNXy4XK32k5Emk0m
|
||||
PYNGkkTN
|
||||
|
||||
Name: res/d2.xml
|
||||
SHA-384-Digest: AcrOw6S/WxrnDu8m5KAtfp1d34iab/T1WqNTmEs5IbOJUOCt0Pp54qy+
|
||||
gdz4MI67
|
||||
|
||||
Name: res/Ir.png
|
||||
SHA-384-Digest: V4CeFo29P8w3GV2Wy+5RHhQPi4x/VSMegX3x+0/77oiZKW1RJZrpocvq
|
||||
7KJrCAR7
|
||||
|
||||
Name: res/JS.png
|
||||
SHA-384-Digest: 6YzJuCwcLWoY3HiSLmZ/DaRExwL6eIDDBSDpyiYWur8fdgjvO4aLcwVa
|
||||
EKNUfoSf
|
||||
|
||||
Name: res/Mu.png
|
||||
SHA-384-Digest: hVPY+KmyW8M3cH09IP7HZbs6GJhyTLA+DD6hq/0YjC0PUDnq0nAfyLG6
|
||||
CZ1ujFGr
|
||||
|
||||
Name: res/Qc.png
|
||||
SHA-384-Digest: USW01KAEcIxASMDhAhLB5dGl4noqmYn4IKch7MRYFpS/EoFaZNDExvW9
|
||||
MjETDmzd
|
||||
|
||||
Name: res/nY.png
|
||||
SHA-384-Digest: uvfRBGgfXGEuO8PqpfijWWve50dJThJwg+bLsaJVVgxffZfkjjPmj2XS
|
||||
d2rlowZm
|
||||
|
||||
Name: res/WH.xml
|
||||
SHA-384-Digest: /htTVQxlpsRhwEsKkn5FDQ8TY54Ah69EQ+hRXrWCY1f+ZrefYJ3o+qkv
|
||||
cUc8TJv8
|
||||
|
||||
Name: res/HX.png
|
||||
SHA-384-Digest: gbQN/iJ5+6gmr/3b5Pwc76kInyLqToo+NRnIhm++iDSI7B7nD3AF5tsz
|
||||
0HacnJ/Z
|
||||
|
||||
Name: res/Qt1.xml
|
||||
SHA-384-Digest: REMBnTYJ3qU2nQe3yn/NFWzKYtqd+ONAmMXiGam8BbbGMJX/QUPZMNIY
|
||||
LA+b2Iu1
|
||||
|
||||
Name: res/color/m3_timepicker_time_input_stroke_color.xml
|
||||
SHA-384-Digest: zcrE/Q3grFZIQWV9dS7lgPPEVgjOKRCMHa8dpxmjehPpb3yzq3FAyYjM
|
||||
+2cX0uGU
|
||||
|
||||
Name: res/color/m3_chip_text_color.xml
|
||||
SHA-384-Digest: eFLpa2jwAYYSGcPj/cldJwfw/HRUOdCy+CCBNFqFawQ6VGt8cSUxv1p1
|
||||
NwjrRcFl
|
||||
|
||||
Name: res/color/mtrl_fab_ripple_color.xml
|
||||
SHA-384-Digest: 8nYCjnttq3EEbbBKKqG6uz9IdU6prR4an9lb3B9MbPkbmZyu5P7s5I1R
|
||||
Mnrfgeov
|
||||
|
||||
Name: assets/js/lib/similarity.js
|
||||
SHA-384-Digest: ivf4Ko9W4Vmm3RBBKeH67zhCLJlkmyEJbOqI3oysJ4scbdFedodTVaMb
|
||||
I9JWmWM4
|
||||
|
||||
Name: res/color/material_slider_thumb_color.xml
|
||||
SHA-384-Digest: ZfoM5bbFHQbOgBfGKnF1Ajc5hdUhqk3G4QcP0WGRbn44ZsRtBHL/ObTl
|
||||
+1JIYJCy
|
||||
|
||||
Name: kotlin/ranges/ranges.kotlin_builtins
|
||||
SHA-384-Digest: ozNqkNPNooivSbSAAg88ciEosWvTQ5Ill1LhO9mRJpDD5drjBGNo4D8q
|
||||
5h3700sR
|
||||
|
||||
Name: res/e7.xml
|
||||
SHA-384-Digest: nO0PgogfaL2wNcFM4gmUVpltE3yL/irSBeqrn4FUL/vzIHllFQHNi8uQ
|
||||
CbxZURnE
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text_inverse.xml
|
||||
SHA-384-Digest: im+A0u1qePntbfclJzDEAeQUWeeu0osftExY71v9Wh4K54k9Dyot1Osz
|
||||
yHRR3sFf
|
||||
|
||||
Name: res/NP.xml
|
||||
SHA-384-Digest: El5Gt49cBzeAAfTcz0yFArAxWqJ5JuoaXDgcv/stVNWv22IArUQQzDCA
|
||||
T8dNNk41
|
||||
|
||||
Name: META-INF/androidx/room/room-common/LICENSE.txt
|
||||
SHA-384-Digest: nWi/9WgpBxubU1ELDgCyHd2/z06F1guukclvhIuyxwhVuJTe/GuZdHTm
|
||||
1yti5fie
|
||||
|
||||
Name: res/Bo.png
|
||||
SHA-384-Digest: xfI2VfmQEr2gbYv3a5NAcZR8UccH4+DWTtkKY1QRDreGMgMRKHXMnELW
|
||||
ywY+JncX
|
||||
|
||||
Name: org/bouncycastle/pqc/crypto/picnic/lowmcL1.bin.properties
|
||||
SHA-384-Digest: ntU/2KuqqZsDkmri/pNQMIIiDocnYPMuscCNsdkZLbVmiKo0bX+bTCrU
|
||||
LT7/oiSE
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: 6nZ/ZQZ2Hf7msOEfNJmHGn+c+dkqVJzO3kdb/dspwF7rhUDcJgChKQ0U
|
||||
8bUwGktC
|
||||
|
||||
Name: res/sL.xml
|
||||
SHA-384-Digest: OlGIeNzEyA86x3X7fvpoa4v0/dSDogfqYbpToNRBGeL/ns3gJs2kKjLH
|
||||
qw8du3Yx
|
||||
|
||||
Name: res/gC.xml
|
||||
SHA-384-Digest: XxneGLYt6nvT/qmjqvsILBkf9eaCcu5cZTsN5TUwfDGR79yiQfHVgGeq
|
||||
LLojSip7
|
||||
|
||||
Name: res/Nx.png
|
||||
SHA-384-Digest: 8xYnLDW2/bChPHQw8Q3Ds08oBqgbUYfb/+2/XtEDHtNT/CUeDxTdtkbr
|
||||
A6CdMyij
|
||||
|
||||
Name: org/seamless/swing/logging/img/configure.png
|
||||
SHA-384-Digest: gboPLyYH+IZ9yFFOtpIRuT/RD+V03B47hsTALvfkq3zPnpt2z4nhG4Ij
|
||||
ClM3UT37
|
||||
|
||||
Name: res/JQ.png
|
||||
SHA-384-Digest: 7d7EKtEPdePPZXBadXNfa0TWIA0bO8IasS5QuGwRDuds4AMPWMPV5Jm4
|
||||
1MYOvMuF
|
||||
|
||||
Name: res/Xs.xml
|
||||
SHA-384-Digest: /uvDgibr4nJGSrDaA6zmJKIOM13U2rgaWkwZUfMDiYxaDw2x+0TfTuK1
|
||||
8KQN0lbT
|
||||
|
||||
Name: res/Em.png
|
||||
SHA-384-Digest: iIMIKuMhNf7WaquQGCA2DEB5L+AcA4zgqpjCS+M6m8j2Dept/F1fpbkZ
|
||||
QKTk3HjD
|
||||
|
||||
Name: res/vJ.xml
|
||||
SHA-384-Digest: QBVPLAG8+781QYuVM+Sc5La7PMS0t/k4BBlJPHQcKMW04YTFImHO+hz0
|
||||
iK43o+vf
|
||||
|
||||
Name: res/Lj.xml
|
||||
SHA-384-Digest: nS4GyaWLi7ykOo28cTavlGwFb4pftWJduXz3pgrPgFBPFFB0wXhwQtoZ
|
||||
kiBkLc01
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/Holder-mbean.properties
|
||||
SHA-384-Digest: uQPz05ZSqNXOdJKbU3JD02g80BBK7asi3cipuZo5mMhSYV9M6/w4IO0e
|
||||
6R5iTTkR
|
||||
|
||||
Name: res/QN.xml
|
||||
SHA-384-Digest: 3vqkuvwFxTeT7HEjdjT/mzHA6FXXMZKoCf4bt0dWnyMWtX4IfouNYUo2
|
||||
kYGK+bLT
|
||||
|
||||
Name: res/7m.png
|
||||
SHA-384-Digest: fZFxudy01lLBj3i+85UCLry5IjjQB186w0StKSQdY8Z+lPuJnHRpDgiM
|
||||
zhkZ1UMs
|
||||
|
||||
Name: res/8N.png
|
||||
SHA-384-Digest: KVSY2BTM+lOa06UOiK5CCgV9duDxenCXlF4CS+Xpdk15lhcBLFUYtz3u
|
||||
ecmyoYsh
|
||||
|
||||
Name: res/color/mtrl_card_view_foreground.xml
|
||||
SHA-384-Digest: WY8Lx3ocIzpYcb1x7jl6HSwiQfAx/sj/KG3Jm2yHs8VVPDGBoWgIdxLT
|
||||
IGsdyww2
|
||||
|
||||
Name: res/zq.xml
|
||||
SHA-384-Digest: 55Xr3VGJAqFDVZAGpkuZwYm5oV7FojVtBUWMaUWz2Lw8gsRBjBuRKFiz
|
||||
mbR8PWV7
|
||||
|
||||
Name: res/0H.png
|
||||
SHA-384-Digest: 3rwatU4H7Idlf8b8md6HxynHSLXhKr1Nps4sn66I/v5RDxljsPJf0wZh
|
||||
5r5zBto+
|
||||
|
||||
Name: res/m0.png
|
||||
SHA-384-Digest: mjgFzZY0X6rC7aoInFbqZYUXXyfnhzYwLNJewPJXEDrXhJ4rD3zYvPHi
|
||||
aH3BKb6m
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite.version
|
||||
SHA-384-Digest: jtSk/Otl8g8HbDsV26HauAY6CfpKUS0i0HmAJ4m92qBuHpvAQcRKTqr0
|
||||
sL0OopQn
|
||||
|
||||
Name: res/color/m3_calendar_item_disabled_text.xml
|
||||
SHA-384-Digest: kgjRiSgzoI+zK1Fkpz70+M5vbCjtfG/YIzl1Hym300xO39PaDEOnHtJt
|
||||
iDlAbdLH
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/Handler-mbean.properties
|
||||
SHA-384-Digest: yjktctPxZ3A3DJ/Lthbmvs/0CJl02O6r9E1+zlZZYugDMpeNZYigub/6
|
||||
Yqs0zvyJ
|
||||
|
||||
Name: res/5P.png
|
||||
SHA-384-Digest: /M4nOH2PyFyOcpjTbJBZBs9PUGBCFsUYts2SMgvHSXIwTjH2WzOwMbOp
|
||||
0yBXgWSW
|
||||
|
||||
Name: res/-3.xml
|
||||
SHA-384-Digest: xHEiaw/qB2ryt89TX/wnR3BgkHoddkMpGKTIaXRTEq/sI2JQKgAxcHok
|
||||
OTzTMWkw
|
||||
|
||||
Name: res/OX1.png
|
||||
SHA-384-Digest: +sBkFPMIK5XgSVJeCkzoqOW0VdReMpPNggLGs46sowzTp6Ew6ET1ZwXz
|
||||
vyBMpHCh
|
||||
|
||||
Name: res/-J.png
|
||||
SHA-384-Digest: b8CjvtggHDVTeAUsvr3SlxgyyWOtQ4i5NwsfqSubL3VHs56bixGoBTmV
|
||||
7GSCvEnA
|
||||
|
||||
Name: res/59.xml
|
||||
SHA-384-Digest: RR0exfu5Ny/2GY2+N8wV+noGfLZ4E78C44WVmhborGXDtFGBxZM8awrV
|
||||
fG8CMoqn
|
||||
|
||||
Name: res/QR.png
|
||||
SHA-384-Digest: wfPyM46hv7UYJ/87CMlx7Ig8Hu/d8W/DAkbDGmWkCr2K+r47MrerJ8Wf
|
||||
uSrAjpl2
|
||||
|
||||
Name: res/AB.xml
|
||||
SHA-384-Digest: 7OXnagBgCQhC/dhd7OeYSFxLItkHJaaocmcPeCS8069xcQ9lFqZDg/bu
|
||||
8iQDRfAB
|
||||
|
||||
Name: res/BL.9.png
|
||||
SHA-384-Digest: DfkETnkG7ZCj//gIsduhyKdGwCZiMYntDB2aNLigua+6x5sYGTt94m2Z
|
||||
whQ8rPYc
|
||||
|
||||
Name: res/Bk.xml
|
||||
SHA-384-Digest: qZWk28Qnojgkr75zg2hv6xJkR5cUdahYy2q/VxM4Enix/3MgFeTc4V9Q
|
||||
3Y7yNCID
|
||||
|
||||
Name: res/D-.xml
|
||||
SHA-384-Digest: uQaco2mv57lI6meg6aJy5qsEaUMJVnKZv/n/Phjux2aZ9od4imTlJGO/
|
||||
kIy1bSeH
|
||||
|
||||
Name: res/aG.xml
|
||||
SHA-384-Digest: uVMlZ+hXpER8KoGf5ZSDVVPZbRz2P2F2h23V1MAA4xUZHQU7dgdJN9a+
|
||||
D5BnQuF4
|
||||
|
||||
Name: res/color/mtrl_choice_chip_background_color.xml
|
||||
SHA-384-Digest: //OWqfuAqv+2qy4NJeHVa6/3xk+vVw/HJOLE+VfJIPq4X64UUfrPKEmn
|
||||
UaEAJ/+e
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/AbstractHandler-mbean.propert
|
||||
ies
|
||||
SHA-384-Digest: KCQ2klYNRNUnS3odDhN5tUpGDSVlQp04wtz5KlQTqgnVyLHscoB+RTyw
|
||||
Fkl7gGfn
|
||||
|
||||
Name: res/5t.png
|
||||
SHA-384-Digest: GoBSdbCHEiN4S+w+RahPawQtsUfDkk/Vv3u4a5SNc6ZRZYrNJ37DawdJ
|
||||
t4x/66dy
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral12.xml
|
||||
SHA-384-Digest: BOVvbnBwjSBwyFD7GBZKRtHzj+2ZC/Hbp2hBt4nuHypSOQdCciiLuQ5g
|
||||
WZKfiKWA
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral98.xml
|
||||
SHA-384-Digest: UpgWCcBT33XaDuGiXTjwgolrxuqb9xWjRQt3hKtQqKaRIqQ9AX8MsTUw
|
||||
lY3rHRjM
|
||||
|
||||
Name: res/9w.png
|
||||
SHA-384-Digest: 5c4ghbjRa1Qvw9cHk7iaD0WdJVwV/etjgQVIB1OxN7EYqba3/t0rHfdD
|
||||
0Ak0P3XS
|
||||
|
||||
Name: res/yY.xml
|
||||
SHA-384-Digest: KHMaf1KCeqfZW+VEGbHeKIPJZlA7HsXmC84zHLq8Tk/uoCCEFWHQsxeH
|
||||
OcUnhQEN
|
||||
|
||||
Name: res/kj.xml
|
||||
SHA-384-Digest: XydmqAp6z8k/mfPcacGTX3U+XYY5tFhJi0HK+KAfd0q7/Cafc39/2Ezt
|
||||
8EFbI7eS
|
||||
|
||||
Name: res/Gf.png
|
||||
SHA-384-Digest: uDbEnRVE4kFZKp7r6hz8puKTsMsUaigdwUaWvJ+ObBd73pvzjpEbik8Q
|
||||
byI+ZJ9i
|
||||
|
||||
Name: res/W4.9.png
|
||||
SHA-384-Digest: EdxVrJjpD4IkDRnu8LJxQ3snoaoUACTAyxhjLHFRP5B1bQ9ohKqOMj1+
|
||||
60t5m7FL
|
||||
|
||||
Name: res/Wr.png
|
||||
SHA-384-Digest: b2JjMGltLTEEKSb6uPQABv4RH47Q6rVIgCSJP+jr1j/wz0MBCoVYjH3W
|
||||
29E2PvxZ
|
||||
|
||||
Name: res/vR.xml
|
||||
SHA-384-Digest: ku/ybutiu4a4LOqwgID/18ByODDg/4FnfqmpjbsHe4SSJXjyZkzb7O1G
|
||||
MhrmgUQu
|
||||
|
||||
Name: res/QJ.9.png
|
||||
SHA-384-Digest: TajNi0oWQhlmAYPI09NNdmdw0IxIjrQnJF9H0cXVTAGEQScyWGwqzVVG
|
||||
phw/GUaw
|
||||
|
||||
Name: res/wm.xml
|
||||
SHA-384-Digest: Pswg3aP0zOxYo0JtPw1MFjfIGEjbBiwV+GkBZEdMLFk48LD9O71yMDBq
|
||||
R+juYtyN
|
||||
|
||||
Name: res/xN.xml
|
||||
SHA-384-Digest: zdIm/Jqr2wBEZ3PMejHIYVpXEYJ/8bUjmJF1L7JbHAMLM9hCe3824MKK
|
||||
XDywKxpa
|
||||
|
||||
Name: res/X6.xml
|
||||
SHA-384-Digest: ejdKw1f5EWhBaUCEcCb2HoDFELYs1EWPtefTptRy3qXLa7zwp+GKkaaa
|
||||
lpmpC0J8
|
||||
|
||||
Name: res/gD.xml
|
||||
SHA-384-Digest: lK3KTIjBjFEucJvvq45I534Qq4o3S+n+Fe++5OvwQKbQ8/hz/RqAOQTB
|
||||
u94aSdFM
|
||||
|
||||
Name: res/-B.xml
|
||||
SHA-384-Digest: AKB05SRjE1eB9Fc5pODir/8TKHeeCw9vSIA/5Bxv2QL8mpL2pa2Qt3B2
|
||||
k9V/usow
|
||||
|
||||
Name: res/yg.9.png
|
||||
SHA-384-Digest: tA2bYSBYlMEaQNwzg4CY6UvppcmOPabwZQUfOfClp+Uh06zUkdzvB8il
|
||||
EcNKljau
|
||||
|
||||
Name: res/cL.xml
|
||||
SHA-384-Digest: 1JGavcM9lDqgMH8IaPVKDFYWYkZESYNjkArtx9RzyxK0aXsFhdzhmvT+
|
||||
LsqMqWRF
|
||||
|
||||
Name: res/d-.xml
|
||||
SHA-384-Digest: GfA1iczwwMkCjKYIOdnSZrAym9LR3PoYA+W98qd4ojBxode+JUNviSsZ
|
||||
NgSJPU/l
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_text_material.xml
|
||||
SHA-384-Digest: vSpsy5+SSCD8qX1VTNT1kJkssmBoOnQToeVEuiZx1O0POQ7k8GFgHWhY
|
||||
4hA6ks8+
|
||||
|
||||
Name: res/Ib.xml
|
||||
SHA-384-Digest: VB7atY1Pc7PlCus5ebBhoTZ0S95oOVVmZo94fRulH5uv0Eryo8u4y8F7
|
||||
HuE2uBMJ
|
||||
|
||||
Name: res/JC.xml
|
||||
SHA-384-Digest: gZvA2o20wrqm9reBGByyln4p/ycElbsme/0vZSFF+1mN/CofB3K1aBDK
|
||||
jwdbfVKy
|
||||
|
||||
Name: res/Ag.png
|
||||
SHA-384-Digest: 3KEh44n9+WxbCDBkQ+GFIT0sXiJEXedGp3A6nhgqXmQ4g6ftc5VtfAEx
|
||||
JBet2NIl
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant12.xml
|
||||
SHA-384-Digest: vG9eXcNi5XeTEp3ny68nPMV4v15CqB2Lguo9anWYu0u1LM0G3CNd3lQY
|
||||
N0jpn6es
|
||||
|
||||
Name: res/1x.png
|
||||
SHA-384-Digest: eWZyHHbDz/EEO4sVoMYYXADAGLZ41znVkQu/Dkf+8m8hXlRlVG47+bCx
|
||||
0GMzycSr
|
||||
|
||||
Name: res/Nu.xml
|
||||
SHA-384-Digest: GiIZIcpySrSHyUTmKU/Xunfm7bjnm3yDzwS8ZmEjycggp8xxXkccr+W3
|
||||
eg5hcl1k
|
||||
|
||||
Name: res/eK1.xml
|
||||
SHA-384-Digest: SSAVog/ypEUzhcQhIlngW+Gh22XPcm+l/pNjezgI+4x6YGnSAB9MiNoq
|
||||
b/h+cktV
|
||||
|
||||
Name: res/tK.png
|
||||
SHA-384-Digest: zz18+EeY73xS1pwPDiti6/eKFZtDVcP0eYiJiY5650l3fzLkV+sNBJrT
|
||||
Yt5ymmjD
|
||||
|
||||
Name: res/color/abc_primary_text_disable_only_material_dark.xml
|
||||
SHA-384-Digest: eX4xI7D24a10xohVO4x735Lz8mUzyAPC8K4B3t6fdzN+ayh1zGDyT+6v
|
||||
eMu4YFTb
|
||||
|
||||
Name: res/Ac.xml
|
||||
SHA-384-Digest: Zp3rwvuo/W08Swv8HuFcKytTZBRVFv2jp6Iu/NXebRF7bFh+P9Iagtrg
|
||||
1SlrFpWg
|
||||
|
||||
Name: res/zN.png
|
||||
SHA-384-Digest: 8jdEm/tunyKc6JcUb/k9hDsgBQBUci925NDYVkIhZs7whBHWPAEC7h+E
|
||||
vnfcreQ3
|
||||
|
||||
Name: res/MZ.xml
|
||||
SHA-384-Digest: 2/vmuWhWT8KXCAlv2gsUpw49HPIMt4nV8GxCvLQBFLlbHNq9cq678V8g
|
||||
TdlmjGjp
|
||||
|
||||
Name: res/T3.png
|
||||
SHA-384-Digest: kQEjZ/hnBtJKjnoCmBXFg2pHcncl3DQoLK97j/3MVDcTkBQzuSG7fyYe
|
||||
z/3/q7V7
|
||||
|
||||
Name: res/gs.png
|
||||
SHA-384-Digest: ZD5he/DxwbI+6pRiUEyMjLUzgvLUCts4wzbYZHuc2PV1oP+fxPJMHktE
|
||||
BUXkmny2
|
||||
|
||||
Name: res/s0.png
|
||||
SHA-384-Digest: 8mrNJDy2uw5Xns+Q56VnyZyMPB5Rh9I+dczH3p7EtbHIh6SLcIF4d1fa
|
||||
UaiitHS3
|
||||
|
||||
Name: res/color/m3_fab_efab_foreground_color_selector.xml
|
||||
SHA-384-Digest: IoaCuqoamQeAdaTmQPFTnmUdbfoThZuxf7cEbUEYN2q1MDjv9CJEybDW
|
||||
JpUEwjby
|
||||
|
||||
Name: res/-Q.xml
|
||||
SHA-384-Digest: sZRO66D5/mquO/IVzGlgWsZtS3b7IECnfacFqPT6udAF+hp53QPzcrZ2
|
||||
kDNw6efi
|
||||
|
||||
Name: res/eW.xml
|
||||
SHA-384-Digest: TVxyerYTCZv4hlX8QFxkkAKSyCQxktOU/40wS1IWZEBMAWnSu0v1wRyG
|
||||
glem3vxO
|
||||
|
||||
Name: res/color/m3_timepicker_button_ripple_color.xml
|
||||
SHA-384-Digest: O8wb7HBbPrZZPT+h8x+a74nJRWZuqLHi/EY0Kn0jLEYvVpJRtcgKH63T
|
||||
/C6SY/aV
|
||||
|
||||
Name: res/5l.xml
|
||||
SHA-384-Digest: DxEizlOchFr2RG4x6UAVGmalm098VKZRZYs9lbur0ApaPVwsaYn+tFbL
|
||||
FaDCuiOv
|
||||
|
||||
Name: res/9H.xml
|
||||
SHA-384-Digest: i9oZsU+8rTYEzpo4iypda4Rv5xQeO97Kca/3bUr0VGSjUpi0Njp4L3T0
|
||||
m0FiurS5
|
||||
|
||||
Name: res/NJ.xml
|
||||
SHA-384-Digest: 3+jwgsE4fyb1PpCTXhnpIJDr3gHz9XzUTmZzl12QixlsKGXbXIr2I5jh
|
||||
RiY2zON6
|
||||
|
||||
Name: res/color/m3_appbar_overlay_color.xml
|
||||
SHA-384-Digest: aO8v3bQuj8d++jfdnj2vkck9/m73dA9CBMM3mhHhnjhxZCaZO3azA1Ku
|
||||
Xy0jeyus
|
||||
|
||||
Name: res/xy.xml
|
||||
SHA-384-Digest: Q8isUz7N3qK8txu0ppQGF5VS7YsjwwWKcQcP+WCCx6jucdp+iEdPS5pD
|
||||
GHv9YfDD
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_external_yuv_es3.gls
|
||||
l
|
||||
SHA-384-Digest: k95lkyRl36JI+2CX6gGahqcoUB3Vtwa3rIFT52XQZwA3T9Y61t+BDTpJ
|
||||
AP1ZwvK+
|
||||
|
||||
Name: res/dX.xml
|
||||
SHA-384-Digest: RmzM3zq22oIwumYeZHZEMqySe+V3dH8dOUaxJVTlQTaVG/HhVKSys7ea
|
||||
TmRGMAGv
|
||||
|
||||
Name: res/j4.png
|
||||
SHA-384-Digest: X+2ZBI1L6hWmOwNjxi+z9P4nXp89FFYsHJr+6FGPIl3vjHD4tNiYecxj
|
||||
VUlBMfHr
|
||||
|
||||
Name: res/H-.png
|
||||
SHA-384-Digest: R4cBTEiiao9Mv6m5GK4v2k+97juIBLJN4DM5wpdH5v3oGiWqCHKZWxXm
|
||||
B9BsgZug
|
||||
|
||||
Name: res/w7.png
|
||||
SHA-384-Digest: WjtXUSljTfOiwex64g6pKV620Qg2atCBICF8uzB8c9zvecIkPD4CeYf6
|
||||
QNCmiFhU
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_external_es2.gls
|
||||
l
|
||||
SHA-384-Digest: 9mOTsdDk9p9O98ms7qu/Q5hnB7jqANIp/J/ffzRxS5t2A9+PAYEnzPPl
|
||||
NCBZcooD
|
||||
|
||||
Name: res/1I.xml
|
||||
SHA-384-Digest: 2/WjqwpR2XcD5UqIFQ4b3Oz1+EIl82HRZCUZU/4gMZ1mzlJQMn6iL74e
|
||||
psN4XNoh
|
||||
|
||||
Name: res/C_.9.png
|
||||
SHA-384-Digest: CZP617rR4YSyBFVL6FU0ssKNtEMQaRU7JQlWKGJhnlnZ6vJ0+v6+lBwH
|
||||
4gyQthv2
|
||||
|
||||
Name: assets/images/ic_local.svg
|
||||
SHA-384-Digest: tm8vbYmzxwyyydXgymUqab8YULpDPhf9ej65Ao9KGP5+4iA+86QwzWCR
|
||||
m4VuFZJf
|
||||
|
||||
Name: res/color/m3_fab_efab_background_color_selector.xml
|
||||
SHA-384-Digest: QfmY23lBp7OedzkBxOK7A3zuMkqGzq6x8sPw7wbmigqYuLlGTZG0TuZC
|
||||
Fb5ad6+a
|
||||
|
||||
Name: res/go.xml
|
||||
SHA-384-Digest: wPblYisHzm5Ix9h01+UQKLsqCtVMxTRfcZQ+5LwNrQduZt9yIUeKZZHE
|
||||
+f9rZY6M
|
||||
|
||||
Name: res/hP.xml
|
||||
SHA-384-Digest: hDrF49wu9IROTNLbqR9sx34SO3l5/63+CEY9xyHPxGE44tMgAjTV3qHV
|
||||
Pxzv0BvK
|
||||
|
||||
Name: res/SN.xml
|
||||
SHA-384-Digest: BjKj+dehrF4c0jY6aHTtPJI7oQKX1oGqPfEnwJS+xcqXFzBwOrythWz8
|
||||
g/KA7cCr
|
||||
|
||||
Name: res/wb.png
|
||||
SHA-384-Digest: Q5AxDeP9ZMhCkvHzeaeYmzzmjhWd6ZOxayku8ITGn6jREZH4Qra5sbEa
|
||||
EziEPHqf
|
||||
|
||||
Name: res/rj.9.png
|
||||
SHA-384-Digest: gL+uB9ipRWZLXXV/Hu0LNbNhFMQ6jSbMt215aw6FkdiIndifHGCwOCkL
|
||||
GU7hDW05
|
||||
|
||||
Name: META-INF/com.google.android.material_material.version
|
||||
SHA-384-Digest: vJ5t02iGXaOXx4BGVoGmMEbO7yKcaiFfLR47/8pv2nMnohoxhBwnnct7
|
||||
MKtI1u+y
|
||||
|
||||
Name: res/t8.xml
|
||||
SHA-384-Digest: nkLDiPAqeBCb7SLgpWvyWVQB8bHfRYge3cBvhkVlQPmwprm8/Mnv5S+y
|
||||
Zd7UWXz9
|
||||
|
||||
Name: res/XW1.xml
|
||||
SHA-384-Digest: DgCMQ98svcOQsKaVgK93TboRk3lT1baemQd55lNEGwHyrs/F+jQDsDbt
|
||||
Alt5PfyF
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral6.xml
|
||||
SHA-384-Digest: sAR0+JgfZtKshgx97Zt24h4Y2pGDu4E9QGxmdZPREhN2V5CXDRYRSlTQ
|
||||
kOeEPaJH
|
||||
|
||||
Name: res/Fg.xml
|
||||
SHA-384-Digest: NU+ugRcplEQyWWQOB5Wg4DeDnlZrm3AR0JiWJxiQW0kjTXmqYMjy9aCN
|
||||
R3yOljcV
|
||||
|
||||
Name: res/color/mtrl_outlined_icon_tint.xml
|
||||
SHA-384-Digest: L4QoYzdNWfbE8bwCO5DTdPlhaWPjG0XC4ffQNVM2tPxFWijVs6cg4J2p
|
||||
oZtqRCjY
|
||||
|
||||
Name: res/AI.png
|
||||
SHA-384-Digest: Od/YEyJ8I+onv/TEqQ22aOf+bfASdZAhEhPiHLxyDP6oKWfAk9ykIRCr
|
||||
O0LOfusn
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.01-avt.xsd
|
||||
SHA-384-Digest: 62ceA1lTUROX0zvfCeyCaPVBrqbMbSRvKtScevrdlfLuqYBtemkUsoHj
|
||||
g6x2FAqJ
|
||||
|
||||
Name: res/8k.png
|
||||
SHA-384-Digest: K3YEuiYsIZO6OJ5qTZznPzjNN+WXGajn4VVyy8AQGYUjeTThRSv8Sr63
|
||||
9W7V5T3A
|
||||
|
||||
Name: res/x3.9.png
|
||||
SHA-384-Digest: CHZckXZKKkxNaLfZ2DpQLId6h683OqRz+rNUxptwZ+sk8GKuDtwmccov
|
||||
tCckQsTu
|
||||
|
||||
Name: res/h8.png
|
||||
SHA-384-Digest: kQ+Ak1QuFDF4gYog7UTU/3sNEkImFTUKH1BAhuGcrZ1NhAJbp5XcqU59
|
||||
jf4UghbE
|
||||
|
||||
Name: res/uS.xml
|
||||
SHA-384-Digest: NS+3p8yf5ZpOCvSK0BDCaATD0uqFDXrB2h27fZXq9ONerkcgJWSJ5PWT
|
||||
zBcGFhlh
|
||||
|
||||
Name: res/color/mtrl_tabs_legacy_text_color_selector.xml
|
||||
SHA-384-Digest: w59Iurugc3+eZHiJEo1ywqCdP6V0JlXfdRgT0VRAX0NHeWtL/G2Ynr0C
|
||||
duKoAWsm
|
||||
|
||||
Name: res/Ja.xml
|
||||
SHA-384-Digest: 39GdJlievBr+stZHvjssN+TNSIxqecy3Nb1D0vG+K70of5YdrJcVHF+7
|
||||
MAqLvdqd
|
||||
|
||||
Name: res/0x.9.png
|
||||
SHA-384-Digest: yJxtwFdQo+VA8l265KbFBrkOSvtWzxy4j/5OYdDwhizaoNwUuqbitvFk
|
||||
+fWBdz/2
|
||||
|
||||
Name: res/8t.xml
|
||||
SHA-384-Digest: skAswrqbAJaRyPRyPThIMrlhOHwP0d9IaXLtJHEWVv5CrthIL6a2Nl/X
|
||||
GHacXHCd
|
||||
|
||||
Name: org/eclipse/jetty/server/nio/jmx/SelectChannelConnector-mbean.prop
|
||||
erties
|
||||
SHA-384-Digest: DyT/8YScke5gSciaRtHBxv+CMiUj9U+QMF5K5uJDNIdLGk1bF+nTCKzE
|
||||
ndMRxmky
|
||||
|
||||
Name: res/color/m3_textfield_indicator_text_color.xml
|
||||
SHA-384-Digest: SYuhR5vVNjGJDnvDsnLZwDjzyP8lZ5bkxOhvPLXqVP9VmVx8WznIso3f
|
||||
qyLUEOk/
|
||||
|
||||
Name: META-INF/androidx.activity_activity-ktx.version
|
||||
SHA-384-Digest: 4XuTjFSAD7rFUMU5gZ7xonfmbEe3GRU5HNpYjCMkL5wY3eSlIHnn97A9
|
||||
mTSEpnxF
|
||||
|
||||
Name: res/color/nav.xml
|
||||
SHA-384-Digest: Ed6sjtUTtuJMYqsMWzr07Iz9in7Py5nxcCEr+e6A+jnNENkp3FWbShn6
|
||||
pryYytth
|
||||
|
||||
Name: res/color/m3_default_color_primary_text.xml
|
||||
SHA-384-Digest: ELpd8WS6jV2RiixAY0Xn6f4UdeYjvdXAO9dnS+9620IVf8XmvP/gtqNR
|
||||
z6AO6Vp6
|
||||
|
||||
Name: res/7s1.xml
|
||||
SHA-384-Digest: deowbf3xB5WjsjW69MdylmvShiKYIiKEvKA6lpuYnM3VY5judZPCG7qL
|
||||
ofpG2RQg
|
||||
|
||||
Name: res/kg.xml
|
||||
SHA-384-Digest: oIwYA0L8wBzodQHxhbf7M0Tx7z5gmmbPdkZcgdQ8TxHA1wxejHWCZjtT
|
||||
OQsp7BAc
|
||||
|
||||
Name: res/Qp.xml
|
||||
SHA-384-Digest: T5DRfGgRmm9BWzIJVxuDDRoB3pP6AMHuCZcJO0x8aLk4GcN1O6dRikh0
|
||||
xBD5h81n
|
||||
|
||||
Name: res/2F.xml
|
||||
SHA-384-Digest: SBaWSg68lABevIE98LVDrbvCF2IogYR25eTRFrj3DdJqMxNU4SGHWudZ
|
||||
KY+/5l6+
|
||||
|
||||
Name: res/no.xml
|
||||
SHA-384-Digest: mHnTi46bsLk+rfZYs/KHWO7RYhFFT1A7VEdBwSGGWW/htEIHirhy2rFg
|
||||
W/DAXmLH
|
||||
|
||||
Name: res/oP.xml
|
||||
SHA-384-Digest: GiH+Y6aQ4ZCjirC5pOyddRbLK4LdWXsNLa0ILmi4/KCN1a6JRt6Aa8qN
|
||||
ByqC24CR
|
||||
|
||||
Name: res/ZN.xml
|
||||
SHA-384-Digest: 9Z6cwzm4GQlQ3SumRfi1P6nVJwJOtF5PafkLmdsjT112SnAtgAYdg/tn
|
||||
oJtZBbVN
|
||||
|
||||
Name: res/oa.xml
|
||||
SHA-384-Digest: dkSj7rfKr5L7gW3Tm3BoF6W7a25+M0Z1yc1ITYvrUYh/rTPhMorcaM/8
|
||||
ojcwPba1
|
||||
|
||||
Name: res/pB.xml
|
||||
SHA-384-Digest: NNamUuZH/UMnZzVWznwCUG6IG4bQWgwHNeXcuMFDBE/ut+tFvp1XXdX7
|
||||
cSO85BxL
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerCollection-mbean.prope
|
||||
rties
|
||||
SHA-384-Digest: kdlaIvm1+yL6Nn5AOIKF/Y2zGxoNVGs9Jnflxd4rNptuT6H0weOu9Gxu
|
||||
vV4IxDcW
|
||||
|
||||
Name: res/62.9.png
|
||||
SHA-384-Digest: zfWqrszC6JHBM40kcMmgXxVJqyod9T6u4wk5dfORf6OmAbgOZQ8+TDC7
|
||||
7V5kQAk4
|
||||
|
||||
Name: res/color/m3_primary_text_disable_only.xml
|
||||
SHA-384-Digest: /QKq1vsGLNtm3bSmOUbYf+iIJw6JOmTl391aaiEGpTYQJ20fu3DLr7sR
|
||||
er0qnAEl
|
||||
|
||||
Name: res/K5.png
|
||||
SHA-384-Digest: VVxKo4/1+8QT8yPElObXVmqarUIgOFuX4Z2kW1d/rwAVkqTqNnITSRKS
|
||||
Avk1M1GJ
|
||||
|
||||
Name: res/-5.xml
|
||||
SHA-384-Digest: pHEyKW2r/JKM/UblJL5/lSLrGKySxbYZGC/Syo2LgkPvMvS+Y/a9oYZF
|
||||
JNntZ4p6
|
||||
|
||||
Name: res/nf.png
|
||||
SHA-384-Digest: rRGmzG/T1sO4GnG2GYfHD11pwxBqa5M7JuXefgQ9iOQixZDGdU059Xo7
|
||||
noQwykbP
|
||||
|
||||
Name: res/1J.9.png
|
||||
SHA-384-Digest: v6Tb6Ro2pb4umhL3wXGS4P6lwuD//EFerLUT3tyJFG8wWEK/JPJ8X4Th
|
||||
Wdui3m1y
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_light.xml
|
||||
SHA-384-Digest: v49eKtp2cQCxB7PbN+KOZbakXa8e8WWIEvdVCk6PK7y4ISOdYcFcurdU
|
||||
05kuq7i+
|
||||
|
||||
Name: res/h4.xml
|
||||
SHA-384-Digest: +ymWhEaXMUC/4tpYphDVnEwEW3i7h4ZKHIsukJ6nVIKFpbPkKGhxy6UU
|
||||
AnuG/4nN
|
||||
|
||||
Name: res/By1.xml
|
||||
SHA-384-Digest: ulZiS+zIWuAIAI3amNZoZ1LcSpHM3LidwP1qDUyyNc04EyGqlZSDwqBO
|
||||
mVfaXHTC
|
||||
|
||||
Name: res/te.xml
|
||||
SHA-384-Digest: Iv68Gh5yGmQ71UQIRBjGMsOvtIroCHfy+lh0MKmo0KyyRmjGf68183Fs
|
||||
w7p/V0e/
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_high_type.xml
|
||||
SHA-384-Digest: oL4lPxAjxvArTnpmHYGMUEpqnUjRW6JJPk5Teu91fsyTaoVeE9Xp45To
|
||||
iFihb3I6
|
||||
|
||||
Name: res/Mv.xml
|
||||
SHA-384-Digest: VHJt6toQ/Jw7pUdz8VDDNf66J16Yaui3lFE8i2R2tmQapAqAlIDqsmjn
|
||||
f6mXSeNe
|
||||
|
||||
Name: res/color/mtrl_filled_background_color.xml
|
||||
SHA-384-Digest: g2GNIbZbuWtJSpOwrckfXxx4WMXp802ocdeLIO87bL8xfIzfLD6niMdr
|
||||
9qeteLei
|
||||
|
||||
Name: res/mr.xml
|
||||
SHA-384-Digest: 5llFwJdc8vZWIVrZhBcnlZXrjH8xmQENkq/b+duUDt/s7y5jXwTgjrni
|
||||
/BL0pZlh
|
||||
|
||||
Name: META-INF/androidx.slidingpanelayout_slidingpanelayout.version
|
||||
SHA-384-Digest: dZWsYPKcBB3hLWSKo7dk89yFwE8EGTmAkXXaN7mSWo6ZtatcGQ7lp2cl
|
||||
Qg5ZpkAa
|
||||
|
||||
Name: res/EP.png
|
||||
SHA-384-Digest: RBlkK+AxkX41eu4FrVVmB8zg0ysZoolN6zPYlmmAlfL1uVYG2MP+3D75
|
||||
nBOZUAL7
|
||||
|
||||
Name: res/8K.xml
|
||||
SHA-384-Digest: qcbRzO+AoPbFnzwuOAh61FUWYosoZhf9xNjyaPFy/xN46xLgiXjN56W6
|
||||
9GRICopu
|
||||
|
||||
Name: res/M-.xml
|
||||
SHA-384-Digest: fXc0PPqA+IDKf7Ly51BHqxlfv1pTgQhrNxfbk5UYuc5ciJc5JCtKe4L1
|
||||
34KzhDhy
|
||||
|
||||
Name: res/an.xml
|
||||
SHA-384-Digest: 2ARvLBn56s82XWU+/hg+UewJVqYlmQZJTp9r6ST0RmXY5nflYCsfCYXC
|
||||
acRY5RUF
|
||||
|
||||
Name: res/c0.xml
|
||||
SHA-384-Digest: pzuDv4z5jCsasdkzlmXo+NRDafLgB9dCcgWymvu7SyhzKBSjgjyKhC9M
|
||||
UWzAtZfu
|
||||
|
||||
Name: res/yi.xml
|
||||
SHA-384-Digest: wxQQkkCVrGsV8BxQmIdMm+YRu/gyG90hRDlF7Ff697/FSVbgWbD4idiz
|
||||
EQQ/t8wa
|
||||
|
||||
Name: META-INF/androidx.dynamicanimation_dynamicanimation.version
|
||||
SHA-384-Digest: mckGVV5yZITcGfKBEb9sMNyo8RcMd8EdHV+ZDpmrhxBBU+cFqAWsmsbB
|
||||
c6ylutdd
|
||||
|
||||
Name: res/color/m3_tonal_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: u1MsJPyrUt4dKaAXCm20K7B4uPaQo/MdzxooNzSlEdEUkR/A4rWgxta3
|
||||
iHsxCf7V
|
||||
|
||||
Name: res/color/material_on_background_emphasis_high_type.xml
|
||||
SHA-384-Digest: 8vr2px+mchHzH9PAAoGVobPGnYkLHAeBeRDHzzWABOvI+fAmk0gOtHgI
|
||||
jvsO3J46
|
||||
|
||||
Name: res/sA.9.png
|
||||
SHA-384-Digest: 09wT/gUp+Zpns2JXR1vzJLyEewLMOgz91k6+YONlpdmI3cOYFtqNy1ki
|
||||
0Nx55o38
|
||||
|
||||
Name: res/PF.xml
|
||||
SHA-384-Digest: FElgFZexzq68de/3qy8gp/2rVjLVWGu5JdThOcmxZbRUSEYvNkqICpxV
|
||||
vBNGMM/N
|
||||
|
||||
Name: res/z9.9.png
|
||||
SHA-384-Digest: 91WtN61BumX3ieflMnb5ZHGm2N9imhl6TjsWRVJMFhoKYhUAL15g7Bz2
|
||||
acDF+RhN
|
||||
|
||||
Name: res/eH.xml
|
||||
SHA-384-Digest: T8XbtoR2sgfbzAul7ffF2aHjhFCRAuSb9WIWmCQhe8Zis6EVwXnhDTLM
|
||||
+qURR9NM
|
||||
|
||||
Name: res/4Q.xml
|
||||
SHA-384-Digest: roiZHirNbd2Kj835FaZA84powRoLJcmg9IoMstuVl+hp4lC6qRkgtaqX
|
||||
xTP2Iegy
|
||||
|
||||
Name: res/Av.png
|
||||
SHA-384-Digest: 28gwjBDJNC3yJzJwG128vY0BdyfHdXsbm5kkfxx0m7A8iZXowuHbczoW
|
||||
7BUGaQqf
|
||||
|
||||
Name: res/color-v31/m3_dynamic_hint_foreground.xml
|
||||
SHA-384-Digest: /eXBcmiLVMFVp+5WDp67T2Da6WQPjz5/sQf1kfmYtcT7VOHe6jwyU+Cf
|
||||
4+RKk2ek
|
||||
|
||||
Name: res/zL.png
|
||||
SHA-384-Digest: 9CjS5bXNUCnh0wjeOuJJannRvVGw5PlYRKq6TRPvePZCpQO3nuQQg+Rq
|
||||
Wzg7m1US
|
||||
|
||||
Name: res/uh.png
|
||||
SHA-384-Digest: tmkAx6MXuQLwgJigjL6pzWdl8twmo0DxT9qhu+HqD7S6wX1rrj6KRCeh
|
||||
rGH90kCi
|
||||
|
||||
Name: res/UP.png
|
||||
SHA-384-Digest: 62X638Saq55d+EVU7Ij4UpvdT+w37BWVBEDhsNilWvSdUwUcqeVcrIfh
|
||||
OJB66yb1
|
||||
|
||||
Name: res/V1.png
|
||||
SHA-384-Digest: Jwm7CU6ZDfRh4ieBH7TPHuAsTsQxHuyqMp8HgBR+sZ7tObpuQp4zvr1S
|
||||
coAlPfG3
|
||||
|
||||
Name: res/q2.xml
|
||||
SHA-384-Digest: o1ngKwk+bXP1LmzVtqMKaP5w5x7as4cWlvYqbMnClIoyU2VvN/D2G821
|
||||
fmx+NpJH
|
||||
|
||||
Name: res/4S.xml
|
||||
SHA-384-Digest: 0oaa/Bq5LumCFxaz6Ywu3f8DY9RCQxUnSajlPRrUBdUhg5DEdEIEbmNL
|
||||
/oOz7W/r
|
||||
|
||||
Name: res/97.xml
|
||||
SHA-384-Digest: FenBwP2VGx/l/DY4JaVITKNy6/+5oAWqNQgpcEbiW3iqFrJ79Er3hcX/
|
||||
ubXvkc80
|
||||
|
||||
Name: res/Hx.png
|
||||
SHA-384-Digest: tRKYTUHRxSNDC39q7BZpFp50a8kzbBUiV2OhQWl+uxuWQlxQjwO2zymQ
|
||||
l+sGDQPH
|
||||
|
||||
Name: res/color/material_personalized__highlighted_text.xml
|
||||
SHA-384-Digest: ohqAziUdlIpGymNmLe2xkc4QvuJ6cwgkPTamCN31tnc70oAqwAN387Rg
|
||||
2S1R4WTB
|
||||
|
||||
Name: res/qp.png
|
||||
SHA-384-Digest: K5WRJ7e3vUjzKOQ/Y4vnVLPtwhmMc2adknT27SjqaCRNEGzG+toIAobo
|
||||
BXLnqawY
|
||||
|
||||
Name: res/cy.xml
|
||||
SHA-384-Digest: s4KFa0LTLabHcNejhohstLiZbWU4MGQpVCCgsOzMfitNC4/EaoosFneY
|
||||
j+HPR9lp
|
||||
|
||||
Name: res/Cp.png
|
||||
SHA-384-Digest: fiE6wfepbTVdf90VznXwO6wZftFC5Q9lrBkZx8jTkRtBvLw9Duaxnt6B
|
||||
m7HUdH02
|
||||
|
||||
Name: lib/arm64-v8a/libavcodec.so
|
||||
SHA-384-Digest: UhLMJkjwxTId/9KShbdept/usPSqIldAcKesiGHkqjjGw7OXk+KTZ2PS
|
||||
OS4YLViF
|
||||
|
||||
Name: res/Ro.png
|
||||
SHA-384-Digest: EKD6a2NvMXtTfll1NYpROvB+0nWCswEoBlVGvUuFGj+wBMBErNlAY2T3
|
||||
IDRSE/St
|
||||
|
||||
Name: res/Nl.png
|
||||
SHA-384-Digest: xtGFonmU++H8YmrF0kPYZ3fTCo2o6TN92abnNpADLlz55NnAw/P7fCgC
|
||||
FqsDZpwL
|
||||
|
||||
Name: res/OM.png
|
||||
SHA-384-Digest: /VMV5kXiU1jcoHhz/I1WINpoN+i/swFxXx+ogG6SEJGYVe/MApvNBN9f
|
||||
e9Sa21AF
|
||||
|
||||
Name: res/fp.xml
|
||||
SHA-384-Digest: Nub/5XDdrlMVKmhUPjW7MhWgfNjLG2g0xYjWL0h4E0tY2jhxoIznLF5O
|
||||
9UZFLn3z
|
||||
|
||||
Name: res/Kd.png
|
||||
SHA-384-Digest: m79Lic2BV1NgROwLmnY9Aei4db1uMzIlnXBvUk+tuKZE/9rvV1ykzfqd
|
||||
iFL31tbT
|
||||
|
||||
Name: res/uj.9.png
|
||||
SHA-384-Digest: 9rQTPAeU/7einiVSppbaAQRgK3u0y2m8fUhbHm5DZtS8gYFwvIfXWDqa
|
||||
0Dea6XpO
|
||||
|
||||
Name: res/bm.xml
|
||||
SHA-384-Digest: ZmgbQEdcFA7STKWimhNsXcXHOLe4FkuQh9TYNw5oLL6NNP+DMFX7QqFU
|
||||
gYAkuCYA
|
||||
|
||||
Name: res/ej.9.png
|
||||
SHA-384-Digest: itQLYheUPSVjyqev/myV1PB9NUgouleUiCEayMM32mD6frV30zz8lTJx
|
||||
HU4b2kBP
|
||||
|
||||
Name: res/Fx.png
|
||||
SHA-384-Digest: an2zjF1kW+ABwB3G4UKVGDi1Z60jn0o4yOP3lVCpz/GNrPMfwfFQ4tEy
|
||||
TM9Xin+U
|
||||
|
||||
Name: res/GY.png
|
||||
SHA-384-Digest: rjO7yTkjTdngvDr1YmzjLuK+ofIQRJCoRDs4mMwsSBd0D+b463grfkpZ
|
||||
N1CAvuBA
|
||||
|
||||
Name: res/D7.png
|
||||
SHA-384-Digest: MvDU9l06C1hrDSMBD435+zLrTGvTPUy16uCfd7QdUu6Tqq7TVT5X+xqZ
|
||||
I8GoiZD6
|
||||
|
||||
Name: res/OX.xml
|
||||
SHA-384-Digest: CSZ3UlmOYZ7CPXjQO5Q5WUaQzBWNEePvKs3Pks7Z+Y8+A6rM5h2/ZKnF
|
||||
U6isWEVH
|
||||
|
||||
Name: res/color/material_timepicker_modebutton_tint.xml
|
||||
SHA-384-Digest: WJcjJAzEKJM0cMgs4kwyaWXf3e3F2TA2UDeeo+CZ3huDPGvN1AO+miDy
|
||||
ht3wO/rN
|
||||
|
||||
Name: res/5N.xml
|
||||
SHA-384-Digest: ACygKz1FhnIbHrKNAt9gjL3VwCBwRe5DWMOhh46Bjo1RBmA+kOnyXyZu
|
||||
Fv2lXZwI
|
||||
|
||||
Name: res/color/m3_highlighted_text.xml
|
||||
SHA-384-Digest: bviuvfuHXYP4V6IIRyWq58DHBfzY43O27wCu8I+M3pSQH0GfyAvetQCO
|
||||
OYijAPEM
|
||||
|
||||
Name: res/color/material_slider_active_track_color.xml
|
||||
SHA-384-Digest: KG+hY2fpbNBUYjtJgyEvqZrcUdFn7iOb5qgntgR8jZLoXHYsr+w5YdkM
|
||||
OD6XqQ2G
|
||||
|
||||
Name: res/sH.xml
|
||||
SHA-384-Digest: PGaPV5X9hJdMlQ4QC6cBDcXDtnXX3CTVSQCY1JBQ0XQKLjKSeWYnjpNz
|
||||
2SNrEBko
|
||||
|
||||
Name: res/RD.xml
|
||||
SHA-384-Digest: 9qBKiHRi1cTEf7ArFaWT0xkO12l617ccsjFnzG93rscTuBsR5Mt7o4Fo
|
||||
Qa3NO3F/
|
||||
|
||||
Name: res/iZ1.xml
|
||||
SHA-384-Digest: DDOB9KPs2/XqkX45q604bUgow/J2CBqZwI4b/70EYCqhicZoHZvzeuYf
|
||||
1qNAycvd
|
||||
|
||||
Name: res/Uf.xml
|
||||
SHA-384-Digest: bRAtBLDFkz8XQOurXDUq6EY08LHQai24r+TbFd4ECzVL16UXYejoor6T
|
||||
gbcof36H
|
||||
|
||||
Name: res/color/abc_tint_default.xml
|
||||
SHA-384-Digest: 9yGIoNFXCUexT4K/G19OuczooHkRlGtkc+uS8w+habOrrEYNrw+7w7cc
|
||||
emBtDcw0
|
||||
|
||||
Name: res/hp.xml
|
||||
SHA-384-Digest: ULyoYzQvL4nH0jgDju883QTWScud68hxjsNnIPtb1k8s+WugZWkBC92k
|
||||
k+Ztt7Gn
|
||||
|
||||
Name: res/iQ.xml
|
||||
SHA-384-Digest: nUyIf6r6iLjBXg6zHOtit4ThVLa2udMrELE1al7QCEKkMl6H3ZSQU8sW
|
||||
HBcvcMFj
|
||||
|
||||
Name: res/JP.xml
|
||||
SHA-384-Digest: OUTuGwJHqFg7TiinzvFUm/Dtxv7aUjUVDjzyjhiRz0O7gRWNDdiWGA99
|
||||
ihCIpDAo
|
||||
|
||||
Name: res/ZC.xml
|
||||
SHA-384-Digest: ZntYVS7Fkp0bicqhtfBG8gasrKotzEMibi8d6C0zO6jTi/XfHkIAJwyU
|
||||
GvXvSXMx
|
||||
|
||||
Name: res/Fm.png
|
||||
SHA-384-Digest: AvWR8M+hukSbWfn4I3ZVL7n3RC4T8U3igynXfV2DBin6R3d8Mcy6HenQ
|
||||
5MAOHfIB
|
||||
|
||||
Name: res/aR.png
|
||||
SHA-384-Digest: dcpq8SDbUltUByshOBJ9mMAtAFWOe6OPRFJYCPa8e8O/OCAinBDYoxPy
|
||||
bLc4mgP3
|
||||
|
||||
Name: res/3-.png
|
||||
SHA-384-Digest: Ny7KV+9W8KmhFZqa01cntI145FIGVkA7MgO5OrtfKPXSW5kOfzGY0aNI
|
||||
C/fzG38k
|
||||
|
||||
Name: res/color/m3_button_ripple_color.xml
|
||||
SHA-384-Digest: rDx2n4+q3zeesMh6U/89L08SFy6zai3HsOUvdqOkjvWZOZ4HE9R7wE/M
|
||||
9NB/XL/i
|
||||
|
||||
Name: res/color/epg.xml
|
||||
SHA-384-Digest: gQgeD3GqsxIYL+9DHfERsTHTbiwjKvNAU5hBt7JsN4+zx7pEFyHKDz0S
|
||||
8zh5Jy3t
|
||||
|
||||
Name: res/color/mtrl_btn_stroke_color_selector.xml
|
||||
SHA-384-Digest: nITYRAamc51koJi72baQ2m3JZLeDl7aqJs9yolWNheJ4iNzUuM7Fhr8v
|
||||
d/lzEcy1
|
||||
|
||||
Name: res/AE.xml
|
||||
SHA-384-Digest: EQm1OEY3a3do9cLvcdh9qGcTVnayFaTqpIPxA1js0oqH3MA/3N1Q8yA3
|
||||
iI2S60oe
|
||||
|
||||
Name: res/Ws.xml
|
||||
SHA-384-Digest: /FuXzlNmR/KfDE6zFnN0Fp1RFBi0i2uiac1ysVFBppOxfUkLkdd4p2BU
|
||||
wMJP65ga
|
||||
|
||||
Name: res/XT.xml
|
||||
SHA-384-Digest: PtA7qpFYJQ9hOaOiX8bnaru7d+gVHykHicL5PX2HC4vogp7kFwsdPDf/
|
||||
EUlqPo6H
|
||||
|
||||
Name: org/seamless/swing/logging/img/trace.png
|
||||
SHA-384-Digest: Q1C4lFWPH+OF8tKRU1X/AhifcvQR+On68GKE0363LdXUMUepgsrIyxif
|
||||
a7Efn7Mu
|
||||
|
||||
Name: res/color/m3_fab_ripple_color_selector.xml
|
||||
SHA-384-Digest: eptQ6QcJOT3CZMJUo2aFQzUXG3Pnc+q98w6GVxBEaaR590Kf26lTLOaD
|
||||
REq1Uxvl
|
||||
|
||||
Name: res/bD.png
|
||||
SHA-384-Digest: dSDKwxvFa6DcrbVyg1fW5e9UIAMj8vgdXrLDW/Qqs6LOEF6EnU0k23jg
|
||||
XdABOqcf
|
||||
|
||||
Name: res/a0.xml
|
||||
SHA-384-Digest: Yaqjwqhn/uzNgAKfeAEif34+p6hqiNd3rQtlOVBN7ik0Uad58Ehd30UV
|
||||
/HcqbqdJ
|
||||
|
||||
Name: org/seamless/swing/logging/img/warn.png
|
||||
SHA-384-Digest: lnIX9FKS9qBuweUEmgIR4aMIX3RBiy8rEQrM2xpmRYmXZKmmdg7/bFKZ
|
||||
jp1TkEuu
|
||||
|
||||
Name: res/6x.xml
|
||||
SHA-384-Digest: Seo5uahO3tYwYlYdMVVTWE/bSd0A7VhJ/AJb6Iz8yGs50ZiwBhBPWeT8
|
||||
NzawOxHn
|
||||
|
||||
Name: res/4B.xml
|
||||
SHA-384-Digest: PvBIMN7DoCQ4WCtVG6cdtPVsW5hhrBHy0drgyLM0sA7NOiNuxWl/NXnb
|
||||
VykLk/O4
|
||||
|
||||
Name: res/AG.xml
|
||||
SHA-384-Digest: WBmsuN6n60lkh137dAo7KGZsTuxSQHLgxGGDXjnBZUluSlPUUJTB0/c+
|
||||
sdQruhJu
|
||||
|
||||
Name: res/U0.xml
|
||||
SHA-384-Digest: DD87CZ9e6oIqfirryo5kXehZ3vz1QYAxIUS4jSNjH65aLdUTt85BOi4A
|
||||
PdbcZK2H
|
||||
|
||||
Name: res/XR.xml
|
||||
SHA-384-Digest: zpdSFgQyhcbSDBzBwlUkJWEPSx2SSBoNPU+SnjJZ+vgCmWEWl+nihsIE
|
||||
dJdosY7j
|
||||
|
||||
Name: res/Y3.xml
|
||||
SHA-384-Digest: zi6g+CSY/hlfHRhhwb9oRtXuH6aqqactW5ba92NMR3zDaRfKQJ7sRCnZ
|
||||
7qmsQrkH
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandler-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: bKD2wv18sylO8tn/pJ9dhBZWfl2lP80oxsEXyDQjBUsMLsuzk3Dsjp14
|
||||
c9dyW5yT
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages.properties
|
||||
SHA-384-Digest: eVR0+DOhgUYdWJUt2L+MLMX3VaMhQEMZv4GMBBXZzrun4hxrs7liVwJu
|
||||
B6KLUPss
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_ja.properties
|
||||
SHA-384-Digest: d39wJjrPg5aiT3ecHez02jrkBRJDCqpzvZXGrb3ubz1QQWPP86KKDLaU
|
||||
V74ciBHn
|
||||
|
||||
Name: res/color/nav_item.xml
|
||||
SHA-384-Digest: EHlz9hfdZ52gomful9X2bp88ZR0PZZ97GzhrIJrE4F41zjV0GE7UDOqI
|
||||
fEj32OJu
|
||||
|
||||
Name: META-INF/androidx.versionedparcelable_versionedparcelable.version
|
||||
SHA-384-Digest: Vwo+5qnrRWD+fBGRDh7y4g/OJLq8uwZIy5Spg1Awa7ID23DP+X5mwx6L
|
||||
MHVvh9t8
|
||||
|
||||
Name: res/tp.xml
|
||||
SHA-384-Digest: H6hePGNlpNf7iIr8crNtY+wacAGbJNZa+Vz/YIiBRLv3uniYbpUzkWcT
|
||||
FrBCb/N4
|
||||
|
||||
Name: res/color/m3_card_stroke_color.xml
|
||||
SHA-384-Digest: cc+JbJodQSs5iJ8zjH1qUQHGHbR9N1djFf9o+zzqHkK4wRgBn+pu9LDQ
|
||||
ZQW+pjZU
|
||||
|
||||
Name: res/color/mtrl_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: dwT2+ThbqS4/P+DbyR4ngcYu4gh/qmoAWF9NWf7WgkGmRb450/jBDx8c
|
||||
IUa4CAGQ
|
||||
|
||||
Name: res/ls.xml
|
||||
SHA-384-Digest: 2tyCsFT94quXQ38zJlAT06GCykrZnvnu33AfJ9sukREXKgx23Um+M0wi
|
||||
YOfdtXwI
|
||||
|
||||
Name: res/uL.9.png
|
||||
SHA-384-Digest: SNRb84Pi67o7Un5BMOgk0kXeYO48KzxgfMQ+AGH6j3ln77nCeONZB8fA
|
||||
vXAfrR/3
|
||||
|
||||
Name: res/27.xml
|
||||
SHA-384-Digest: qCdUdZ00nWR1KGXjgBC0JVTu5ZuS5YgNfZ+cf30VoVBNcERIW/o928K1
|
||||
Y5JfF5Sw
|
||||
|
||||
Name: res/2H.xml
|
||||
SHA-384-Digest: WeAMlCweuLcew/8ocA/Aei7qrbpQyhKcxHTImsqtncjja65TRC5F/jAF
|
||||
Bjv/dIvI
|
||||
|
||||
Name: res/color/m3_dark_primary_text_disable_only.xml
|
||||
SHA-384-Digest: E58bmeYvgwEmcq3qAV24aL3srvbOh5Lz68F7k3y7c5kU0DSIwXyy7UdB
|
||||
gQPNx1yI
|
||||
|
||||
Name: res/Y9.png
|
||||
SHA-384-Digest: sy9A7yR+zCpRXYfFzH5/yiSFVla+frPhVUUVjwK9Yu+rtFY1Evfn4vgd
|
||||
EnaO/RBc
|
||||
|
||||
Name: res/Jl.xml
|
||||
SHA-384-Digest: YVkNeKFTj5wFJi/M7FTNUAFzvh6+Xebnv6RU/hySn/6u62KmkdXCWl3s
|
||||
qGf50Ar3
|
||||
|
||||
Name: res/xj.xml
|
||||
SHA-384-Digest: vPjJtZ1xzsDRyjnQkIXyeG3Ybm1J4w0JgIws+bcoFVWuUGc8scKc67MQ
|
||||
+6tDaD0j
|
||||
|
||||
Name: res/XY1.xml
|
||||
SHA-384-Digest: gaEUL/EadLxkgMRN1D5RRzZ5+V3q23odkqk7GnKjjPMkrVcPzcHk2Ph0
|
||||
pf9duKoN
|
||||
|
||||
Name: res/4o.xml
|
||||
SHA-384-Digest: 1dPkFluuAcjNUmQW+1LSJSdDgxHcnMytJU3SVv6E5eBGeX1HjMJrI/Tp
|
||||
dRCiRnbT
|
||||
|
||||
Name: res/61.xml
|
||||
SHA-384-Digest: gKGwnQ4wzxV9eJCSuz9aIUcPRP9JAsotZ/0JI4BCABEDWyVJb1+ErvLk
|
||||
re4I9xdR
|
||||
|
||||
Name: res/ly.png
|
||||
SHA-384-Digest: y+LZF4qY5D0KMDs1FzNlYPZEOrsIpdq6uZojtT+M9oQLP1B9c7KM8Z3/
|
||||
0LO7MIKp
|
||||
|
||||
Name: res/tg.xml
|
||||
SHA-384-Digest: IRmJg0dWSSpdsf5wdcepmJUmS6zp7nNgxoZrYZpcZa28jFaL0PgCk3qq
|
||||
nH9yM9nx
|
||||
|
||||
Name: res/Aa.xml
|
||||
SHA-384-Digest: 9O56xMWRJq7i1+2fpfAxOCCULIF6SG0JjzS511nz28qpmmcGBlijTDBv
|
||||
+yzPkObV
|
||||
|
||||
Name: res/c2.xml
|
||||
SHA-384-Digest: PBzmrIlNtAlqMktI7r5lA5d05gtfNACnhpXIrHSK3DbHM1kI8l+Wdq1L
|
||||
/ASZ0gNw
|
||||
|
||||
Name: res/color/material_on_surface_emphasis_medium.xml
|
||||
SHA-384-Digest: nnuBMGP0cnHUhDcnT/eHT38igBM96CkjxZlN0K49pWUdsbBESmRIGwbR
|
||||
e59lUNa7
|
||||
|
||||
Name: res/Y7.9.png
|
||||
SHA-384-Digest: 48F/ofMcKR0Es2Uo71hPzN/m4T/6+dPJzJD0DyGBYRWwCUbRZ4mkdcRB
|
||||
zWCotySb
|
||||
|
||||
Name: res/4F.png
|
||||
SHA-384-Digest: 1tzxn4JdG+iDfaJpiSnK6qW3f6TbpvVr2w66rGjS39zkgQHDjtrNc/U7
|
||||
9mV+qk3d
|
||||
|
||||
Name: res/Bb.png
|
||||
SHA-384-Digest: Dp1juMUnIarkgy34T6dyNV4OlMtE1mDheGW/Xee36MxoVoWoN0pgfMNM
|
||||
luSgiAxS
|
||||
|
||||
Name: res/xo1.xml
|
||||
SHA-384-Digest: gIMxE/Q041247Weip+tn+IGAM+pWi1lbQV3o2chzuwf0sNvsZps2vU5j
|
||||
ccMEOuco
|
||||
|
||||
Name: res/ay.xml
|
||||
SHA-384-Digest: BY4bbXAxd5g05o8d7n+uEoPqP9SNP3F33rWlUvfKkwLT4V1+9hoVAaWF
|
||||
a0nAR23z
|
||||
|
||||
Name: res/TB.png
|
||||
SHA-384-Digest: 0k8xeYC10DsNpQt3Bt/P0BGfc1TTcKm10+GDdq8/XFdrwH8cWEG+/8f+
|
||||
avk6qtZR
|
||||
|
||||
Name: res/ud.xml
|
||||
SHA-384-Digest: DMtpDfVgEhxMtRXMZj2zNMwwDz/ica8H7UtJyLnDFDd573n9IOnjB7BH
|
||||
V9GMPAeF
|
||||
|
||||
Name: res/Wd.png
|
||||
SHA-384-Digest: luOOzKNuA53xyPfG/pcB4Sm+opyvusRGgEO3LzKJuoTI0+wOCpovaB29
|
||||
s/rDQC8f
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_hdr_internal_es3.gls
|
||||
l
|
||||
SHA-384-Digest: 9/lNM5IkMAV39nbQWZf1fAuXgMI5ADGBe7n6pVQqsJMyJG5ESnpCWZhx
|
||||
aJ46OKzm
|
||||
|
||||
Name: res/7H.xml
|
||||
SHA-384-Digest: D6siyHUTPx6I0Eh060mnT3WkFrAMIondcC8L+Lt62LIgt2TtpITXlhhF
|
||||
aYddchvG
|
||||
|
||||
Name: res/Z0.xml
|
||||
SHA-384-Digest: S+5WMTKxvxOYUdkDNp2aHx1Yd/mTl3+XuuqbDlRB+2RdNyT0SGQ+gKji
|
||||
m1SSKZ3m
|
||||
|
||||
Name: res/rx.xml
|
||||
SHA-384-Digest: eaby9ehdKrEVE6eSAuqsXW3tqbRs+MsISyWuxbyRJDovFnVpLREXv1wo
|
||||
juZKGeUb
|
||||
|
||||
Name: res/color/abc_hint_foreground_material_dark.xml
|
||||
SHA-384-Digest: oS6BS216IwoejClzS9qDSu5SapTxf5oyuS25+elCnbDdtP9JoUA74O0Z
|
||||
amoetMEE
|
||||
|
||||
Name: res/MO.xml
|
||||
SHA-384-Digest: DHm7yKJMbQlCHCldKlFDKCRJWW4tZDUyf+VgpWZkwl0oNftyG4Wlhkym
|
||||
j84mzyj8
|
||||
|
||||
Name: res/N0.xml
|
||||
SHA-384-Digest: qI1A5qGje8n1/aDb2wghLG2jLyJqUVs4J4qbF8GAXWzLmdAjBHkiazl5
|
||||
k949EdHj
|
||||
|
||||
Name: res/d3.png
|
||||
SHA-384-Digest: aNw8aswpauwS3eXPyOKEfejvuS4O5eu8ecg7nyxuIYcLxXUNxj8I7OWm
|
||||
qimWXP4F
|
||||
|
||||
Name: res/NP.png
|
||||
SHA-384-Digest: J2Mj7HtSeBZ5YYps7oczdKXJI6rRfBmEjs6W8xoQI1BGwOZiadv67R/+
|
||||
o99aNDaQ
|
||||
|
||||
Name: res/Xe.xml
|
||||
SHA-384-Digest: CxVOuS15BeeEG2VxpP/rcKm/hzgFxeM1odSDQ4X9gXQQnfLOH/aW3rb0
|
||||
Z226xPyj
|
||||
|
||||
Name: res/Mq1.png
|
||||
SHA-384-Digest: uhgwoFVU8Le3xrV9bCEUyavb286sVkIr81YLTtTqIw2UfWEd4K2VssM4
|
||||
/eiGzKYk
|
||||
|
||||
Name: res/S4.png
|
||||
SHA-384-Digest: hAwbLrcNRUJHhdNeA6yCs6uD24/XIcnpv1ocFr/QxKN16jDLoOSHlQA9
|
||||
rDeV1Zia
|
||||
|
||||
Name: res/jN.xml
|
||||
SHA-384-Digest: EjDLl60kcOl9j+BQBYCS3qIOsLpA2aSlV9hnrh+nevWGCOB9sC0S00IO
|
||||
/cGE/5QC
|
||||
|
||||
Name: META-INF/androidx.preference_preference.version
|
||||
SHA-384-Digest: Wq5o6BYc/OOTgZoWqpNZmsuUTDCi9YRat3rMZdyEKxxSG8+nDNsqU/OH
|
||||
fQqHXINc
|
||||
|
||||
Name: res/Cc.xml
|
||||
SHA-384-Digest: aBWfd6n9ScV9r6UchGkI2+SZDHCiZ105vNWonKixUX6aBTeBzLoUXfte
|
||||
+YsTM/nK
|
||||
|
||||
Name: res/tK.xml
|
||||
SHA-384-Digest: c/clC4Kj7rs2Q+pz75AnjhOBy+IZlNb64OA8AveSrEMOz4XbWt3+IzAG
|
||||
oTmW10Qg
|
||||
|
||||
Name: META-INF/jsoup/LICENSE
|
||||
SHA-384-Digest: o8tNii50A/JFotn5jvM24abE1v1Sdomwl80tLa4KP9vVbSz0LX8x6xso
|
||||
20R8SBGf
|
||||
|
||||
Name: res/LJ.xml
|
||||
SHA-384-Digest: RM0PRzIvZenHxiVZAM0RCxQR8XNvhcZun1pxkwO4zlwtX6iSm20hSI5q
|
||||
mpzZh3s3
|
||||
|
||||
Name: res/qn.xml
|
||||
SHA-384-Digest: vc8uW3coB1BkXgO8MQ4rJCTxYMylCKndBAKC39tU4PRSjxLxYQsG5CfA
|
||||
iRRUkLFt
|
||||
|
||||
Name: res/sg.9.png
|
||||
SHA-384-Digest: x6DUu5WYGhx6rmDBkj3qyp9thUr1EzMD1t4VOK5jNiZOo3NTVh3eE7VL
|
||||
gvUogPAi
|
||||
|
||||
Name: res/Ny.xml
|
||||
SHA-384-Digest: f6rm2zvzKDMMwglbSGXor2m1Cfa6e2g1ZzLrgVNcVNtj3RQJVBq24PKh
|
||||
oWkwxYbp
|
||||
|
||||
Name: res/OZ.xml
|
||||
SHA-384-Digest: mfyvU8CCgyk7inKHevhiwmJCZ0vkgxCni6k6r8eL5zvjjdcTY88uHCWg
|
||||
Z/ht6Pcx
|
||||
|
||||
Name: res/_I.xml
|
||||
SHA-384-Digest: 4j9LjdQFMtmABkOoMnwcKxR+gjzd5sZaRUU7OfPgwWfobRWCPX6er5/T
|
||||
9LimDevS
|
||||
|
||||
Name: res/NF.xml
|
||||
SHA-384-Digest: ZkonzqoYV17K+LCjiTEJeVKO+MmiGuRiys4hCBJQIwXQ5onmf/VnHwzV
|
||||
NZvQdlBf
|
||||
|
||||
Name: res/Bw.png
|
||||
SHA-384-Digest: e5HIiFxL173r0QZsj4IrdW9qmQhIyMsTp6UCZP47IPArKEAI7Ypvwfk9
|
||||
+ZHCNXoH
|
||||
|
||||
Name: res/-B.png
|
||||
SHA-384-Digest: B85dv7Dj2aEWw4uCp0he1xujICQMlbhA/nwwebklnLhAtnTM1TNCwYuR
|
||||
TlCgn9as
|
||||
|
||||
Name: res/Ec.png
|
||||
SHA-384-Digest: NRTN+m2YL0AAAe4I1OAgbAYN1jHaiQoMsm3hPVknzkllbZS9strxDLAJ
|
||||
nyMJalYU
|
||||
|
||||
Name: res/8h.9.png
|
||||
SHA-384-Digest: qpQM/wg1kAHEHGhpCGKevLHVYky5qaoR9SrR0KiaXW/8a3hWq+7PoBMV
|
||||
UuPBXpf1
|
||||
|
||||
Name: res/1x.xml
|
||||
SHA-384-Digest: Pru/fmTQzrm47xLsmAnK7j2QSC/V/BKhDl5X7ig07n6G2ceunfNb0RvC
|
||||
zirIi5lX
|
||||
|
||||
Name: res/QK.png
|
||||
SHA-384-Digest: cW8WhhnuGPjD4Xig1nFRvqDxOgirvNbU2hSPDjEeR3G/CscLAlv+86Xh
|
||||
yRxmduA/
|
||||
|
||||
Name: res/eD.xml
|
||||
SHA-384-Digest: S8N9ilZSWZOw4JkuCDXS2CtBpP8m0Lb6BsxfxOV8svyDml/1vaStimA7
|
||||
0jpUTyY+
|
||||
|
||||
Name: res/DZ.xml
|
||||
SHA-384-Digest: 5vk6RZw4BQN+jPVFjVe84qTAnJjnqIg2lk226kq7Cz38PF2Q3JLxiXSm
|
||||
ey8qzXFN
|
||||
|
||||
Name: res/7C.9.png
|
||||
SHA-384-Digest: AJA0hcLEVfnJMp0WwwBJdSp7F0ruRZQ6zeNsCk8LVA3u3oOY7MTn+LfB
|
||||
nblRV/9X
|
||||
|
||||
Name: res/8K1.xml
|
||||
SHA-384-Digest: A2LLkgX4p51YFusHP/dQzZRy75bh42XnshmnhnLi1chFR3c0tZ4fCNYY
|
||||
zx0HasqP
|
||||
|
||||
Name: res/color/m3_tabs_icon_color_secondary.xml
|
||||
SHA-384-Digest: dSS0qj3cW14q6xL3CrWglE2XuR3LPiVZZ2rpSiCOYk0l6S5sNSDN6H6V
|
||||
SfIfezGB
|
||||
|
||||
Name: res/Mt.xml
|
||||
SHA-384-Digest: Bw8G7KXXXcwnjDDp7vcGzWPTiCn5/VVAMcKz7kEOe2Ya82JG3mSfQ55/
|
||||
rR9LBNHT
|
||||
|
||||
Name: res/D5.xml
|
||||
SHA-384-Digest: Qu/6Ebf9F3kujmLdgVCbHvskvpgvI004t7YZ2OkRJoVKj1elg0wIQMgK
|
||||
MQgBwsOQ
|
||||
|
||||
Name: lib/arm64-v8a/libavutil.so
|
||||
SHA-384-Digest: ZyvZvd0U09NznovolDkRCG2mcNdfYjVLJjmlz9EGBfdt/MvHm6FmhqWF
|
||||
X0NEabMG
|
||||
|
||||
Name: res/color/m3_chip_assist_text_color.xml
|
||||
SHA-384-Digest: MzamUoX7+e5LZpdeBX3xcZmWrJFgf01NqLtFMp2SV/CDjiMotvKUtvxP
|
||||
5BYF4aKg
|
||||
|
||||
Name: res/dv.png
|
||||
SHA-384-Digest: AJMiJ51DqzGMhI4mx10q490lJ2CmFIH7zVBSx8n0wwM3QdCZ+3TTL6mg
|
||||
ybubvaOC
|
||||
|
||||
Name: assets/shaders/fragment_shader_alpha_scale_es2.glsl
|
||||
SHA-384-Digest: 7hk6suC/CfRwjqRDpTaKLP8hJ7Bm/8YNjCNeKzUfmDpAsDPNU0GgFHvT
|
||||
BkOpzhj/
|
||||
|
||||
Name: res/fg.xml
|
||||
SHA-384-Digest: +Isir4Ts/wdvrWy+tKU7dobZky6r5RxOyQdz42yXmANc0A7pNeibMVzu
|
||||
HGkt9sRb
|
||||
|
||||
Name: res/kr.xml
|
||||
SHA-384-Digest: vR8+S6GMbHbMCu3BmwiTCdp7uDuQMIqQ+QUQhmeSDKKb2NQz7VFOr8u5
|
||||
5AN7ed92
|
||||
|
||||
Name: org/seamless/swing/logging/img/info.png
|
||||
SHA-384-Digest: 2iz8IhKVMAwBOGywx8UTXDIj5mgvxUALe3+ONLjr0K5eVZ5V/f65Og5Z
|
||||
19VBJnNB
|
||||
|
||||
Name: res/QZ.png
|
||||
SHA-384-Digest: 4UGx6bXNH2m/nlSB77M6Ird0fMYc70G9v3BpuCz3ylQCfQVCRLeKIKqj
|
||||
FWkVIZqn
|
||||
|
||||
Name: res/ZL.xml
|
||||
SHA-384-Digest: 1gEeX2THigamNCVIUvFGEfDJpGbcNcPblVUKnnBWOgGbEwWEpakYSYZa
|
||||
XmDv96qf
|
||||
|
||||
Name: res/iZ.xml
|
||||
SHA-384-Digest: 5Wjt+iCcSs+HBEbdgT6INggbfb95FMRbQY8JLinJTjFYB6Nqx+ejTVWD
|
||||
ASrGKfxT
|
||||
|
||||
Name: res/RM.xml
|
||||
SHA-384-Digest: xOGPgV0deTgmvR34nIVP4nqX+gHoHpX3g1csMY4wXAg2SBD7h2H9jtTt
|
||||
Wp6pcvXC
|
||||
|
||||
Name: res/w7.xml
|
||||
SHA-384-Digest: /3/ndqZ4FYSBLWjUGqKVmYO3lGvQIjQdbUlwFOBF9vuKOi/6XKUeE3J2
|
||||
ha3C1gvi
|
||||
|
||||
Name: res/aT.xml
|
||||
SHA-384-Digest: xX6hiFQVErXSd72zAyOFeZij55OstDLRxTDXf2jcApTuYp3PaY3X7gH+
|
||||
kkZRGbvd
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_ripple_color.xml
|
||||
SHA-384-Digest: lm3EwsJBw9jqnY3+g/3CPNg1JUBH1OTOjM6fJFQ0wVQAmiDiI6Vpfthe
|
||||
fZ4rDGwP
|
||||
|
||||
Name: res/nm.xml
|
||||
SHA-384-Digest: vVgqAO+YCCXMKxZffgSHbORVL5VfHBucazMn65YINLbuaNei7eG5JPR4
|
||||
Zfn4PbJD
|
||||
|
||||
Name: res/kJ.9.png
|
||||
SHA-384-Digest: 1Yq1PgfOaZIwDnSj7jNoglM3RcYP1H1oEiurtSkPuNaTncsfjB1VQByp
|
||||
LXEe7B/p
|
||||
|
||||
Name: lib/arm64-v8a/libxl_thunder_sdk.so
|
||||
SHA-384-Digest: hl0hFhQER+Rycfsb40+0UTM9vvAmrWk0WiEIKlEydQyJ4y6ejDnD/Wlj
|
||||
hEWUImdi
|
||||
|
||||
Name: res/color/m3_timepicker_clock_text_color.xml
|
||||
SHA-384-Digest: rJWyI1oJyQxyp+gR8SFHXKnC6n4nqWq+71ez9+wzmPDxH6tOBv32yGxo
|
||||
tBOKXPKg
|
||||
|
||||
Name: res/yO.xml
|
||||
SHA-384-Digest: T1PFozcJiT/2XZPzjL7DHUR2GgAQuchwt9BcpVa0cDlwtX026Xz4Nc/V
|
||||
4JIzvvw3
|
||||
|
||||
Name: res/9N.9.png
|
||||
SHA-384-Digest: dF3DOBMD41IgaZ6F5o9cV6cWn2aXAPV5wfywf7LcNX6YhXk1TkhvLABa
|
||||
ubMtgiUL
|
||||
|
||||
Name: res/Ha.xml
|
||||
SHA-384-Digest: gnXu4n0g/+/E37aWO1pn9C7OmPkKo87REj2QZ209ksY9LR1DAdvbWKTD
|
||||
n1Fvtco+
|
||||
|
||||
Name: res/s4.png
|
||||
SHA-384-Digest: T2X0yP9gITsDx+j1CL2gROKFamPCYLJILgi5Utx3DWn2s4hhkjzfYwu8
|
||||
qXRR3SLO
|
||||
|
||||
Name: res/uU.png
|
||||
SHA-384-Digest: 1UYiF0c8wCSvy6omkQ8LAqtFA9+thk2OQeR1EyWTCkGflDLTqIaA7nP8
|
||||
RLX+ewBD
|
||||
|
||||
Name: res/AI.xml
|
||||
SHA-384-Digest: NYO/dYndev+C/RlmiGgi6s0Sp+cVxAAOQbRc1Q5IGJb9wHn+OyjKzQMY
|
||||
jkMhztwm
|
||||
|
||||
Name: res/_p.png
|
||||
SHA-384-Digest: YsB1vhd/pelAJhSRz4Hg5fobx/Tn9TWr2npi3nnHB+ApX0XaN40sBlEi
|
||||
Tn48Wn3V
|
||||
|
||||
Name: res/aa.xml
|
||||
SHA-384-Digest: Jc1TxLKsyn5i2t+d2WgZgkKLKYLB1Js0/+Dv23iiP0DzFPLevtobCu4g
|
||||
7fomzofB
|
||||
|
||||
Name: res/Bd.xml
|
||||
SHA-384-Digest: QulHIkQUglTz4pdNeovEaaLGqmet3kHOU8dV63b03f/vnmmo2S4T0wtf
|
||||
Jf/Czm/o
|
||||
|
||||
Name: res/VO.png
|
||||
SHA-384-Digest: PHighKEEGnh4eR+8my3jpa8JxmLn+4KOwQQhmEr0vVubTwsm3h+iFkgH
|
||||
pszStuVK
|
||||
|
||||
Name: res/UF.xml
|
||||
SHA-384-Digest: xqm1+S85CIH0SYtx45ZPFMVLdrLnut25x2cOk3/ccgr8+5CLVXSrdjAD
|
||||
LR8WU+jM
|
||||
|
||||
Name: res/ln.png
|
||||
SHA-384-Digest: vdh8eKziwRyWOQ+a37Xe5xrMhRsI7PjVe0Fk1cUQTlRZDsu0BFf0XAR2
|
||||
0lv53imZ
|
||||
|
||||
Name: res/ti.xml
|
||||
SHA-384-Digest: 98PXSqXmWTXkaMvXkSBcNM2ulBFPF2VPoXCRoWpvH+ooSxQfWHbbrM/s
|
||||
PaxfJ2Q2
|
||||
|
||||
Name: res/uJ.xml
|
||||
SHA-384-Digest: 0g7DOKLgvrvy1LdI2c9sz7fV65BRuJs5mfdo5AFjV8i47sottA20EhNB
|
||||
oaLms7sN
|
||||
|
||||
Name: res/MF.9.png
|
||||
SHA-384-Digest: hhcvZfo4Z89OZzuGhkRSh2Z5SbNlO1oynoXtOlTgNODJ+dSxsBLt7y/y
|
||||
fMLWwhYD
|
||||
|
||||
Name: assets/dexopt/baseline.profm
|
||||
SHA-384-Digest: qD6Hu9f81hsDXFvB8fKfAtsjXn2/Y1NUrM/ug1F6cbXmN8v1W0VYDZLh
|
||||
8C5WpuBJ
|
||||
|
||||
Name: res/L_.xml
|
||||
SHA-384-Digest: LRhms+ng1wfhig0jlz4bVkMUm8TXjOTUSLX0XxaG3tA0baKv6352HKI1
|
||||
1RNo1SdL
|
||||
|
||||
Name: res/color/mtrl_choice_chip_text_color.xml
|
||||
SHA-384-Digest: V9ajQKFq0bq0HF7gUJx9fhJUBahA9ZUK137tqfYj7I47khQzlPXaXmOC
|
||||
gRycSrAl
|
||||
|
||||
Name: res/7N.xml
|
||||
SHA-384-Digest: Zsg5fdbunYUT7kuu3P4gbQI2kuMOee4htMxE7rOrihIj1I/UaqyE7AI9
|
||||
sLyXBf1m
|
||||
|
||||
Name: res/TV.xml
|
||||
SHA-384-Digest: lFNUy/RsgiHe+vdymzKz3nMLUsUnS8VBxXC1sMMeA6GNfv6W8E06Gr8L
|
||||
TLLkGjTE
|
||||
|
||||
Name: res/U7.xml
|
||||
SHA-384-Digest: PIQ2IFrn63YxxacPV/oke5n69DaSkQ0ukmNTfLE277L8EKhxvYiHkPYn
|
||||
zgmlumzr
|
||||
|
||||
Name: res/color/mtrl_btn_ripple_color.xml
|
||||
SHA-384-Digest: oF/nm6tdsOyygE65HkONxMKn/qimJUQBGJTN4EPFYfdCT8Kk0vdKspgv
|
||||
BqXgeLn8
|
||||
|
||||
Name: res/sS.xml
|
||||
SHA-384-Digest: BBah3KG+UDpPdETmCcpWLEa/Z/qFqXPY0IP6/zAJwq5kJKmuQcIPCz2o
|
||||
Lmj0kUSf
|
||||
|
||||
Name: res/uO.xml
|
||||
SHA-384-Digest: /HNbBdIu/OcgPaBg4kh9xKzK9wNK6KW4IjVEgN6lEzHq5YVnaWVIEhRv
|
||||
yxOh6Kom
|
||||
|
||||
Name: res/yS.png
|
||||
SHA-384-Digest: AMbwox1IT70FrlBjfTEWwBHMLgdmL/1aNcbqBRLVJRr7p9cvhisKUKxP
|
||||
Q5RiuBs4
|
||||
|
||||
Name: res/271.xml
|
||||
SHA-384-Digest: DEa+qXk4rmD8OtM/TZ7H+DfFYBRdCSQENiyOhmKFoAtz1gO5LNhcvmL5
|
||||
68g0Ob22
|
||||
|
||||
Name: res/GD.xml
|
||||
SHA-384-Digest: usPdgpTP6CmtKwjF2OQ6EmPxxm7EDdhH6oE7XNribeJMhTNsyuPRy7MY
|
||||
KFmMOwy5
|
||||
|
||||
Name: res/2f.xml
|
||||
SHA-384-Digest: oj2cTk3F4addP8BuUyvdXoC57UvTqzKEqSW4MN6WFcuwf2rmSsPVEdK4
|
||||
yyFfmddT
|
||||
|
||||
Name: res/zn.png
|
||||
SHA-384-Digest: aUYrbXuyRzf0i053TP+p1u1cfhLOoNnEISljCtR5enXGMXtwAu0k+V4+
|
||||
ig9EPLWU
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat-resources.version
|
||||
SHA-384-Digest: OJdKqS7BPvMDv6kg86pDe2iIdWwRyndLoE905Go0NVlmkCVwueaF6s8F
|
||||
ScPMFpv3
|
||||
|
||||
Name: res/color/material_personalized_primary_inverse_text_disable_only.
|
||||
xml
|
||||
SHA-384-Digest: yyO9Q91DyiZRVbz40krRnbZUpG42a2Wb60DZnLje8TLgOLEgmrt9PKPW
|
||||
l6Kyombl
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_fr.properties
|
||||
SHA-384-Digest: EeLPboQ+1AoD1r7LYmcoUejNrSFv6ZenOlLA0gnkw8LBt/6mI48ue8sx
|
||||
mzdnnGfq
|
||||
|
||||
Name: res/color/m3_icon_button_icon_color_selector.xml
|
||||
SHA-384-Digest: 1bSxdLHe4o022jUV02QxZLgSBK8LzgcgdfkZa0ZCVPVVNJAFcx+yeqMw
|
||||
vJFnXmJ4
|
||||
|
||||
Name: res/JT.xml
|
||||
SHA-384-Digest: wqHI24BmsrAr4W0Rywyik0xx/RxeArZ/o/B4DWByEw9GPqlLhQBlXAJ+
|
||||
lwUfjMun
|
||||
|
||||
Name: res/K5.xml
|
||||
SHA-384-Digest: IYLMcbEYIrlfIK/t1h1At598TcbLTaf1a/436I5vgrXfUaCBe8qrNc4l
|
||||
rip6mdcf
|
||||
|
||||
Name: META-INF/version-control-info.textproto
|
||||
SHA-384-Digest: 8BGGu05iYQawPwReB6cgR80rn0SsXmLFoiAbTxjCNXqRu3VEtPr/9c/x
|
||||
spX4ieUG
|
||||
|
||||
Name: res/7s.xml
|
||||
SHA-384-Digest: gGqIL+TWb2rUGvVi2SxxCAqnoJ0YX42k0cdGCUrkdN3hJ4tIsPVPYs5+
|
||||
XfwPTZep
|
||||
|
||||
Name: res/IX.9.png
|
||||
SHA-384-Digest: BU1xjQwqtHeUQIe9Wdo6k5lYh0EjhckBmz530dPfQlSJKkjq/VyP30xg
|
||||
WWGhdsGz
|
||||
|
||||
Name: res/color/m3_efab_ripple_color_selector.xml
|
||||
SHA-384-Digest: kZ9G++ybPkQFCDP8F/WO17vI8wU3tt8HSTYrQZ1C8JpSo25YYDsaA0+W
|
||||
XV9ytY8b
|
||||
|
||||
Name: res/ha.xml
|
||||
SHA-384-Digest: xjwVjOQd2ksc8hoo4qAwp7XQyTQqmAPrSCsgZgMbM8hqQ/1/BzLBBU0w
|
||||
dye47D7d
|
||||
|
||||
Name: res/MD.png
|
||||
SHA-384-Digest: a4v823Cast7TPrKJhcK2tl8xIm5x9H9vIUcMy7HcsbPWZZ6h/7OjNF7t
|
||||
eyIoJ7tK
|
||||
|
||||
Name: res/LA.png
|
||||
SHA-384-Digest: lxqCvKBjtUnfalnmb8+Yq64lJ5eaWnepBpznDdqj0Kc7jYq/TT7KKL9T
|
||||
NipHBCVD
|
||||
|
||||
Name: res/gM.xml
|
||||
SHA-384-Digest: a7TG8YT998crIDMlqpx438qm0DT1eULBcDpvirEAw59yJSOUI2yb4AeQ
|
||||
0Xi7OdYP
|
||||
|
||||
Name: res/Ap.xml
|
||||
SHA-384-Digest: J6gUIRhBMqQ+pM/9zRm+xiQCcK6WnULJDRJnej5t2tCTunqTRlUho4Ii
|
||||
QuxrisID
|
||||
|
||||
Name: javax/servlet/LocalStrings_ja.properties
|
||||
SHA-384-Digest: ldPOPoZW5jwIhF+AuIGd8oDzz/6DFBGUKm37f+bLyd58PfMu8Kg23xIP
|
||||
+9XSfCId
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_en.properties
|
||||
SHA-384-Digest: cdnmdGqgjmEgQpRH7E2k0sB+UYKPY4Gtt3fO+Aja3Le6gQQEX1ujXC5Y
|
||||
il3op8sX
|
||||
|
||||
Name: res/1v.xml
|
||||
SHA-384-Digest: WgmAikX2LxhHIiJRdUcDgT8Gz8b/5ehfDyhJYvz+bQwRnMGqmdM946hE
|
||||
CRnkQier
|
||||
|
||||
Name: res/FT.xml
|
||||
SHA-384-Digest: bB0EwZaxCR55heU3xJ+oHHZMbf3GY0IIhsYhCiTS3icAgNpe74GYBrZC
|
||||
j9bqlVfQ
|
||||
|
||||
Name: META-INF/androidx.appcompat_appcompat.version
|
||||
SHA-384-Digest: kAeVEStR/hlSCxBeSIj8tg6KO5B6H2ciuyj/wYR9+2vK7KfRYlxbTPvg
|
||||
+NI45wJ9
|
||||
|
||||
Name: res/OM.xml
|
||||
SHA-384-Digest: G5QhNGMLKoLHDCktlDUOZ8vl6isZWMXYQXulFur4QjZU4Jq6LyAwAM3y
|
||||
GEquz9Kl
|
||||
|
||||
Name: res/color/m3_navigation_bar_ripple_color_selector.xml
|
||||
SHA-384-Digest: 8uLD0TJySMfJWUXyB6Z7LlZc7f5wNO3DULqPr0Ts3KABbzKzTBmo/xr0
|
||||
8gJe6rkg
|
||||
|
||||
Name: res/Ro.xml
|
||||
SHA-384-Digest: YDOD3u5VYMEx0ZhsL6fSWIQRAmw2Wa2rm3WLEmth9kQVGLalGyv5Jukk
|
||||
59dRWW3a
|
||||
|
||||
Name: res/color/abc_primary_text_material_dark.xml
|
||||
SHA-384-Digest: eox6hNOdHqEnMFmI+vrvoYfc89FtHyRptzu9PrtclELJoWJ+pPC4ZOGR
|
||||
FYgReGt5
|
||||
|
||||
Name: res/Vv.png
|
||||
SHA-384-Digest: 2tTsPlvPCvusU3oTN8sFCUq5qHpeHsIqc+SnaUwYKnV/PrH6jiasAWB5
|
||||
F1FNBv95
|
||||
|
||||
Name: META-INF/nanohttpd/default-mimetypes.properties
|
||||
SHA-384-Digest: 4gHl/iwjjc3Lr5hOpPr/Lc6luYV9cwnnLwbCt1QOI0SJqkb/QnbXAOSo
|
||||
G0ghhheF
|
||||
|
||||
Name: res/vT.xml
|
||||
SHA-384-Digest: n823EEjy8z4oJ2nPKYfriMYwlmcEfRwORPjBIqMkDPyehzSxEf4S5fEX
|
||||
xNxaoggK
|
||||
|
||||
Name: res/Yt.9.png
|
||||
SHA-384-Digest: c6DDAvYGRUAqbaD3GisSQiSTuhsRyuWcCMQAA7kVCzhvPpv+bSO7dq7C
|
||||
mu48wDfX
|
||||
|
||||
Name: res/color-v31/m3_dynamic_default_color_primary_text.xml
|
||||
SHA-384-Digest: JA/qTwNlDgJBICXe73GsLlm6bOiSeDfjFZ8ZW8y9ekfOkHOIAo2jonWg
|
||||
9Asaxk9W
|
||||
|
||||
Name: res/color-v31/m3_dynamic_primary_text_disable_only.xml
|
||||
SHA-384-Digest: BE7E/tTYXXshSDVgX8mNwpRNoAGKqzfXD1suTho5JppJFUxP5sBSEBuF
|
||||
ONW/0tNL
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/ContextHandlerCollection-mbea
|
||||
n.properties
|
||||
SHA-384-Digest: 9zCcSmWDnDwXsCSZNjvdp+WDmXB/3hy7lngaqD/JIxxHelsQN0d9D0fL
|
||||
rB7cX3DM
|
||||
|
||||
Name: org/fourthline/cling/support/contentdirectory/descriptor/upnp-cds-
|
||||
1.0.xsd
|
||||
SHA-384-Digest: kTgDYvz2lTwrxTIzRwSozH3bkWKPBHYkv/E9BprEvUz50Uz35UDIh4MA
|
||||
WZVYriVH
|
||||
|
||||
Name: res/dt.xml
|
||||
SHA-384-Digest: kBn6WPeVXuFtmRxcjyXTCNhjMJuLw/Beo9ijYwOxq+3g0AAconJZQeky
|
||||
KinrSIZ/
|
||||
|
||||
Name: res/f6.xml
|
||||
SHA-384-Digest: tqMCWPsj4Am/3wgUzMSspZ/Cu/CDMfzkV+9LQXTa93VYH7ZRl3Xp/DAE
|
||||
LiFxRula
|
||||
|
||||
Name: res/DG1.xml
|
||||
SHA-384-Digest: E56ySTGoIObm0PgTyfaVC52ti/dGLpb2yWGz7cg+dVVB7ZiuPYGQcWY3
|
||||
y7JzV8OM
|
||||
|
||||
Name: res/v4.9.png
|
||||
SHA-384-Digest: S1xOWZG/PBejufz7COaUpPJ3yGSfYkU3KtoHCiYPpf014JmphyEivR49
|
||||
wNCU8PV4
|
||||
|
||||
Name: res/j9.xml
|
||||
SHA-384-Digest: hAWfboxeI3prFYkXi2LDck8SQqu1fMPZLLRqFjxCZnWUL6Xxwxe9klAp
|
||||
HtUDbplX
|
||||
|
||||
Name: res/hR.xml
|
||||
SHA-384-Digest: AuXrT1SE6PVBWEVfWeqyz1BktVmUcyzPIn8zqp0ltxYrEnGPodbV+71a
|
||||
lc6dwJ6T
|
||||
|
||||
Name: res/X3.9.png
|
||||
SHA-384-Digest: WvaqHpN2Bnb0xp3MFKdIdJI2ZipXg3roGP7coIkB+XrkEdOAdyJU8CeH
|
||||
QWOe9NAg
|
||||
|
||||
Name: res/yQ.xml
|
||||
SHA-384-Digest: ebO9zr3IR36wMMFlteXamhYOH3FdtmUbib61Vxa3YLV/NJXi6nf7pEGM
|
||||
AMD4k02v
|
||||
|
||||
Name: org/fourthline/cling/support/avtransport/metadata-1.0-avt.xsd
|
||||
SHA-384-Digest: bGfABkBPwkZ8D41yi2V8QnPAcULZ097m5hMlbDETwHVV0MZ/1LPpoR9/
|
||||
eQ02DP1Y
|
||||
|
||||
Name: res/color-v23/abc_tint_default.xml
|
||||
SHA-384-Digest: 2n2HOLN/UCDLk/4wfgKNdJd2/DiOgNM7Jm6pPcgcwQL3o7Rg4cvsMWyV
|
||||
D0u6QXsx
|
||||
|
||||
Name: res/dO.xml
|
||||
SHA-384-Digest: AAz4MTFvE4SMWxIaV2aTm9U5CBGXnG3JqYhQCC7NSY3sDEYga55IiS9F
|
||||
rI7hNCjl
|
||||
|
||||
Name: res/e0.xml
|
||||
SHA-384-Digest: ROSebSjhRGNfCIm6y4EdgxYQCLnbl3FJlAigpOcdE1Lonv9wdyFiueQ+
|
||||
vp/3KzmG
|
||||
|
||||
Name: res/E5.ogg
|
||||
SHA-384-Digest: CXzByAtuwXNwesTZSSC9tHO2B983WpGzlu4Kq+OqEV4ZwRPccGm2JYx/
|
||||
ycrw4WO7
|
||||
|
||||
Name: res/tI.xml
|
||||
SHA-384-Digest: 1V6QpVRKttjD0w3ORjaMXq8iauxGAT9zTro1ji6BPqHhYyHifouXW+Qf
|
||||
YczWyuHd
|
||||
|
||||
Name: assets/images/ic_push.svg
|
||||
SHA-384-Digest: 956E0YnoN/UhIzgAMIj39oB1wWY+yMkX47sMQ9q/5id5CtoI7kVRwdMf
|
||||
ohAAPrwH
|
||||
|
||||
Name: javax/servlet/http/LocalStrings_es.properties
|
||||
SHA-384-Digest: pDXy6tM1dLDm/4diyYtl/mbl/7JQNZhfmMxvBgKfrc8qArByZkQbQt5T
|
||||
mYUmcKgg
|
||||
|
||||
Name: res/y-.xml
|
||||
SHA-384-Digest: tk8VStD3XV0PAOmRNdlgKMsN9UVjct05SHiI+j0dN8/zapcauM9n43o1
|
||||
gsT/4Pg0
|
||||
|
||||
Name: res/Zu.xml
|
||||
SHA-384-Digest: fSCBWD1OvLX2l5i8cEn3kq6EhB1EGIIKR7mWdxreub9awV6mmy2+QyDN
|
||||
EPfXAfnO
|
||||
|
||||
Name: res/1R.xml
|
||||
SHA-384-Digest: BRv/2LFCbDWXBmIPIsmgpshgNZdfBmwJYj9JXRm6RippDLPSwLYBlFVZ
|
||||
15a36gz2
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground.xml
|
||||
SHA-384-Digest: mi8LUXnGIbpdAeF83QgV40ekbIoY2dofKTOuqd/Tiz6w7ayDveqPdonB
|
||||
QYDsbms0
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHolder-mbean.properties
|
||||
SHA-384-Digest: 5x/1ar+n5q1XAbNHOn8LlMurA1DiTuOQZf+WhBmfA5N4FB/XQZj/ecpa
|
||||
glnSFEM6
|
||||
|
||||
Name: res/NH.xml
|
||||
SHA-384-Digest: +4VXJe5WVGJDIxkcuExdyiuLtt1p/WDfHhQ64U4ZWuroL7qKnl3L6ad8
|
||||
/pdm5n/u
|
||||
|
||||
Name: res/color/m3_timepicker_secondary_text_button_ripple_color.xml
|
||||
SHA-384-Digest: sHF+aMBDCwro4Q2nnBdkt779E9wmeefmp/SFb5z/3Tqk2nexRdXJ2JJd
|
||||
Kz//FYtG
|
||||
|
||||
Name: res/Id.xml
|
||||
SHA-384-Digest: VIYJAgRXDNlZRs/F+/6S4oYKY/vW8cAqxlIb60N9usunqypEsWFd8o4n
|
||||
TF72Zzzy
|
||||
|
||||
Name: res/_G.xml
|
||||
SHA-384-Digest: ZgK22yB6xbSDEZFvSepqq1yh7Nn6xdwP9zCcnGZ4oVJM/8BDHPd/cmuL
|
||||
8IE6lW60
|
||||
|
||||
Name: res/oe.xml
|
||||
SHA-384-Digest: nMftZv7ybY0LATGQj62DJl5USk2GAVt59nuAOCAARWWXXvFu0uxhMYAp
|
||||
Q3xGl1/o
|
||||
|
||||
Name: res/pF.xml
|
||||
SHA-384-Digest: ijytAkmxTNCVTfPe7LSBX6fpyxUVbLwrKQSCZtK+Dc62s4CK7bEg5D3U
|
||||
o/NRaWwk
|
||||
|
||||
Name: res/Zc.xml
|
||||
SHA-384-Digest: dJZJ5Of3LgANMmKmuBNe5zpzdFiddTdoF4j6L7O19cYS+VEcyirs5zxH
|
||||
U05Zvjn0
|
||||
|
||||
Name: res/bV.xml
|
||||
SHA-384-Digest: ffvKKHyBwY9cA1EBvcjIJq2jvH2tEe6NdUavxFOHIon8nlsgqYVEp6pd
|
||||
0R/X8G6r
|
||||
|
||||
Name: res/CK.9.png
|
||||
SHA-384-Digest: Ddxrc+DRv65I1IJo3eZNA9N7l/kSkriVgMET0n/Vo2saT2q2eUnHkpGI
|
||||
LjXO2o5B
|
||||
|
||||
Name: res/KM.png
|
||||
SHA-384-Digest: jsz28lJFi0YLCCnkeBC3LL/mbRWWtYOJtaMa9wX35iUo/Dzs9wIiYSSC
|
||||
IZsojq5k
|
||||
|
||||
Name: res/3a.png
|
||||
SHA-384-Digest: 9OvixzYh0jUCkkjpGCd2PdU6z+EoAinhAs49Ryt0+6PEhOQ2AZ2bgq4M
|
||||
HNeDOOaE
|
||||
|
||||
Name: res/kS.png
|
||||
SHA-384-Digest: njdTYNcGfjv8yBv89aupB2Si8U86NlCE2+lCFWr2zFEwTWv6Wtg32nex
|
||||
+UgWkMZ6
|
||||
|
||||
Name: res/7R.png
|
||||
SHA-384-Digest: NamsrZ5G/58ofFDWlMm+ZCXGaJNHmPiDmC6fi8iIlh1V/rHN75Vh8y0w
|
||||
ZUWkVJCB
|
||||
|
||||
Name: META-INF/androidx.cursoradapter_cursoradapter.version
|
||||
SHA-384-Digest: iwEbL14KRTjjGGSDLpcoAQLYeIY7pP5kGYGf0Udn+Kf4tShyz+RN1Wm+
|
||||
YvDKq8jD
|
||||
|
||||
Name: res/t6.xml
|
||||
SHA-384-Digest: HT2W/formBf/E7fHypvmsOFUUFWMPPh52r9qoorKNyzAQZrjF6npoOMF
|
||||
/2ZsXHE4
|
||||
|
||||
Name: res/HQ.png
|
||||
SHA-384-Digest: 1xhlGiog30L9vr7Q3tCZg37wqjfRTBj+5MONRhzZ7EIAxbuotLcvclG/
|
||||
uN+mryMs
|
||||
|
||||
Name: res/jn.xml
|
||||
SHA-384-Digest: kEGvDwW79oD+EsFc/I296fSS2ygDy5i72P9tiU4BTf647wocL766Uho3
|
||||
XjpNCMGg
|
||||
|
||||
Name: res/VM.xml
|
||||
SHA-384-Digest: WimHL3t5ShkUGDlszcg6B9RsWemepqyaEAC5EhUXLQi/EbfrT4WdpXyn
|
||||
LZwdUD9V
|
||||
|
||||
Name: res/ZP.xml
|
||||
SHA-384-Digest: 7LQ8bcqEztRPU7g3oK7TMCEVJr4pVjdhky6QtRb78tZamTGCcpJpb92f
|
||||
vcfZjfIn
|
||||
|
||||
Name: res/IQ.xml
|
||||
SHA-384-Digest: vxuDeBHkVfMuiRMhztgaTiYw9jHnXGPiw4zIYrwCn82dr/lqiYGkLRML
|
||||
qwnjcbiq
|
||||
|
||||
Name: res/Wh.png
|
||||
SHA-384-Digest: Z5rIEDCCGzcRoeTNuHTWWUjRIejbsTi9Eo79vqtCF+RkpfIQMiGWxJnU
|
||||
WOzPy1Ur
|
||||
|
||||
Name: res/color/m3_tabs_icon_color.xml
|
||||
SHA-384-Digest: S6QzIrEVdABYH8PCDoGSqUFPdUXBc50650ggFxnRw8eiPFmsKbFz6F06
|
||||
Id7CJcEl
|
||||
|
||||
Name: res/wX.xml
|
||||
SHA-384-Digest: tG8A5UzkOZ9n/2O0TJiHJZcGzxDzJCa2TcATkr4m/5mn/uA2QsZeX5nC
|
||||
ZGKZ5728
|
||||
|
||||
Name: META-INF/androidx.fragment_fragment.version
|
||||
SHA-384-Digest: WaypCM+yE0/1Lb+EMCSkzaNk57favewOEwmzffOQoEvRXfArrgTV79aQ
|
||||
8FdxRAee
|
||||
|
||||
Name: res/0c.png
|
||||
SHA-384-Digest: HUzNT619ucHhlP+lzbNxxWWQ0ZTizT7kfCoTny4Mo9n63rq2QDh1Am8R
|
||||
oabzJHQB
|
||||
|
||||
Name: res/UH.xml
|
||||
SHA-384-Digest: Ms4XJ0ploThzV9AY03Px9yxMBd4mQ47D6QV4CNHbi0QgKKtrORJpqCSj
|
||||
XfzqPCmH
|
||||
|
||||
Name: res/Pd.xml
|
||||
SHA-384-Digest: 2JQdwJ9CfsSc6nZCc9xbjV3Xvg8KOhZYBCKOqR6gQOdkQESqkYHCUDE+
|
||||
ibt+UqWZ
|
||||
|
||||
Name: res/PQ.xml
|
||||
SHA-384-Digest: S1r5g93s5Tw4dXq7pcG/4XnzDvDmOi868kqZKW01RzRNU43TmwOW31gC
|
||||
UnkLtH21
|
||||
|
||||
Name: res/Gj.xml
|
||||
SHA-384-Digest: NoH2AGgnlgs60cZpd5A7VL4AiqLR11kXwgQWOQSW5ZSjo1BOMZKM8cUX
|
||||
A6j/NVYJ
|
||||
|
||||
Name: res/hc.xml
|
||||
SHA-384-Digest: sj6CBD0OZ4A8/Gl0Paz3yFMycve2D6ERIS7FhshHRDN/Yt4vxhz4+Xzc
|
||||
qqiX4AVp
|
||||
|
||||
Name: res/iD.xml
|
||||
SHA-384-Digest: OMbiyTOd/SxON8IVpjWoK1xMWUfFuM9uXjjYTBliybT0lq6DdMBthvm3
|
||||
wrRO9Gju
|
||||
|
||||
Name: META-INF/androidx.sqlite_sqlite-framework.version
|
||||
SHA-384-Digest: 6IDSDC1vT4Ya5La7JtumIJqHtTGPA5F9/XHq5plrXZWR1V4XSJQwJJj2
|
||||
EiGhrl42
|
||||
|
||||
Name: res/TB.xml
|
||||
SHA-384-Digest: 3pbZnUcuOIEuh0xTm5ehooDVajdrvYqIXU20TmHQDZqQBBoniStswmZL
|
||||
RSwQQYS5
|
||||
|
||||
Name: javax/servlet/http/LocalStrings.properties
|
||||
SHA-384-Digest: OxW36VtLaudlgmgQzRrDaSqud0gf9Im7DN61MynEuzxj8rD4PWGEi7TG
|
||||
Mxu7gCz/
|
||||
|
||||
Name: res/C6.png
|
||||
SHA-384-Digest: 1zMQeWRqm7kbVz4Plfzbmik+MoJl6kgHIMkrZbjOhBD+oTIgv0H3VZcf
|
||||
ltExU26R
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral4.xml
|
||||
SHA-384-Digest: DwEsuxTKLU6j9FDv7/z2aXCTV+hkhtVzPwXHxefroY8RJ4nCb2ude9fb
|
||||
vqtTt91Q
|
||||
|
||||
Name: res/mG.xml
|
||||
SHA-384-Digest: 0I9XlNIH2gWJqIaAfdZX1n09KWn3mEkqABohcaGomkWcI2QtidOpwXXy
|
||||
B7QhlaXC
|
||||
|
||||
Name: res/GF.xml
|
||||
SHA-384-Digest: Mf9AdZzw7FI1nJAK8YKck+stePQ0FsvVcQDA61GL7Y4n3TNndWHhXIo8
|
||||
AiRf0FQ0
|
||||
|
||||
Name: res/5T.xml
|
||||
SHA-384-Digest: 5POTljojGKsj/0k0xCt5qziElBDcwLMeGQ/bZ6ZNBV0th29wjTMdZKhy
|
||||
V74yeHZE
|
||||
|
||||
Name: res/JT1.xml
|
||||
SHA-384-Digest: Jfgai8ZTqgy6TFVA642Grq0iTa9nJypicRGJl0a6ZEyZzQL2nyMgq1EE
|
||||
8tovTs+i
|
||||
|
||||
Name: res/K51.xml
|
||||
SHA-384-Digest: JG3DUO7Kt3zo9DuDGVC365SscNLDZ2O0uynCPFd6j50coVZNqX1pTVJK
|
||||
eyelECqG
|
||||
|
||||
Name: assets/test_base_module2.mjs
|
||||
SHA-384-Digest: TPBfnFeHeut9Gr6DuVkG9rf/0I8H4G9OG9rVnraL5X9PutmKlFrP2IJ+
|
||||
2R7o4SJr
|
||||
|
||||
Name: res/color/mtrl_navigation_bar_item_tint.xml
|
||||
SHA-384-Digest: vPPCSuEglGsc7tikrWOZFZ8y0K1D5I5yWgu6f69gC+rQObQM2aI1GRsx
|
||||
18FMejWc
|
||||
|
||||
Name: res/RI.xml
|
||||
SHA-384-Digest: LhlZawi2x9MiED2Eabg02315gsZMWSQtD1AOvOsLT7vZ9xbPX1b38QLk
|
||||
ZXc0CgR6
|
||||
|
||||
Name: assets/js/jquery.min.js
|
||||
SHA-384-Digest: HPjBztVW0JXRtVcaiYJnhiydSEza3czwe0ZsznS6GSvqHJx7LUHCpXsq
|
||||
i/YacynG
|
||||
|
||||
Name: res/aW.xml
|
||||
SHA-384-Digest: Gy9iSmufS1vSUCjW3cZVkCgQUwBOSn71sOp2pHe4T1Vc7miPYWpVPZ2r
|
||||
bFuHJYAe
|
||||
|
||||
Name: res/wx.png
|
||||
SHA-384-Digest: ub5qu0BaWbXRFvNYhmX0aPJWTHSZYdP4fA1qTCEHsiNvQRhn6GOE4sO+
|
||||
ZB717gWL
|
||||
|
||||
Name: res/21.xml
|
||||
SHA-384-Digest: 3Qu0jrxgtr6qnA87w1YR7TbIhFuY6/sk8KVxlAZF82+GzBrzPVp4bqk6
|
||||
wGhnEIfn
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version
|
||||
SHA-384-Digest: bFAhyh9d3V1d0FXWgCKZvHdVZN7em8znzQq2nqmY81U5FbJflNIuw4fS
|
||||
Wo85aqvI
|
||||
|
||||
Name: kotlin/reflect/reflect.kotlin_builtins
|
||||
SHA-384-Digest: gHv4UYWuNoxyS3oQXI6iRtEN7p8OEhziLIWy/KaBiiFld5NGBLWkoTxf
|
||||
5gvvieZ0
|
||||
|
||||
Name: res/rH.png
|
||||
SHA-384-Digest: GhI5GTelH0bsUxoz4vEoRFeV8zqEzrfkMQOS1L6Afo2TMw9nn7HFjngB
|
||||
EmeSALs8
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/NOTICE
|
||||
SHA-384-Digest: E2IcMHFXtxCg6EaUkh/2/MIvgHaPppEDXt5W/wmFfBoQ2+UkKOF62Oi1
|
||||
r5mDC+NI
|
||||
|
||||
Name: res/color/mtrl_btn_text_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: XgBP0M3I5ArmybDFI4nzvBegpOa69VP9VmO2VEU+q6B0o34BehpXx+Kv
|
||||
6anh5Q2i
|
||||
|
||||
Name: res/4N.png
|
||||
SHA-384-Digest: Nen8rucT+wT9qEQJEsSb24mt6X7iBE96niN+Q20FU65bgXl9MpupwM4/
|
||||
ef/4cNk9
|
||||
|
||||
Name: res/xd.xml
|
||||
SHA-384-Digest: v+fj5MexJd7Yktmmr9TSKxT1Kr0+LIEmmr5xYNBZk0yzf743eoKbukpY
|
||||
l/1kytG2
|
||||
|
||||
Name: res/hu.xml
|
||||
SHA-384-Digest: iRF2EYIFIFU3UCsN50SbueM5Tp3CQAy+mqOCa8lswlIDn4bldyfPiZWk
|
||||
sgJWvxyZ
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant98.xml
|
||||
SHA-384-Digest: tPn0QsldesaIz3f0ENQO2pfUyikqSQgSggKwya7HG87SMhODkstOcf7t
|
||||
vOjzTvx9
|
||||
|
||||
Name: org/eclipse/jetty/server/handler/jmx/HandlerWrapper-mbean.properti
|
||||
es
|
||||
SHA-384-Digest: ziIMndzJMWCjUWEaQacoDnbHjV/Y4hk/80m3v2G9OIMDO/3vYLEomFG5
|
||||
Gpggc6fy
|
||||
|
||||
Name: META-INF/nanohttpd/mimetypes.properties
|
||||
SHA-384-Digest: oytHJyDvafvInI1qt8z/2ps1P5EgDihBK8PrqDYVO1DZIs43fK+WhSZc
|
||||
qEnvhqOV
|
||||
|
||||
Name: res/oN.png
|
||||
SHA-384-Digest: nltuuuKF+gscYuWUsmMJgOu6hddDxvm5GZhH52PYladwXzLVpyKTJWwM
|
||||
/9IsmZN3
|
||||
|
||||
Name: res/Ix.xml
|
||||
SHA-384-Digest: GthjlHbSlUPlenRvioR2OPo1ysY5EyJYV00kkWmqVi+3PM/WLiws+0YX
|
||||
KLc2MtV7
|
||||
|
||||
Name: res/color/mtrl_btn_bg_color_selector.xml
|
||||
SHA-384-Digest: /AzX7wlEQGjinFVOeZJxErvV5TnPHLygMxQ6HJ/s5yew08aokP9XWzFs
|
||||
ZkQYtj9k
|
||||
|
||||
Name: res/0G.png
|
||||
SHA-384-Digest: iMIrO9A1aduR/kLkPBnOglmhVn9WYIisz4ype6dqWjrAx2VsH78RNTJT
|
||||
Ds/JxWoB
|
||||
|
||||
Name: res/color/m3_navigation_bar_item_with_indicator_icon_tint.xml
|
||||
SHA-384-Digest: nGCX8F2NCgOsWuXeFy+WGvw9z1XPtQ0Hh+sIXRwdWtZhvAQO8LC8nnbY
|
||||
yzuQKS46
|
||||
|
||||
Name: res/c6.xml
|
||||
SHA-384-Digest: DYo25oURnmxdolIgUywysb8/Xb1fjDDAz5NsjK4tDp8eOCLdTlwdFIUb
|
||||
L9HtrgVB
|
||||
|
||||
Name: res/color/m3_hint_foreground.xml
|
||||
SHA-384-Digest: odaQx7ihuQhmseYmzZz12NjiiVlc4wD2LsHhT1k0EXSxsmRMrgxQm4fV
|
||||
OCZAcQWC
|
||||
|
||||
Name: res/dQ.xml
|
||||
SHA-384-Digest: UR1ZwTHm0AEHmuMNjfk1lyXO2NYLZj00lqBz7JXRL2UWg7fNjGXS7One
|
||||
HQIBiZ1t
|
||||
|
||||
Name: res/MH.png
|
||||
SHA-384-Digest: vGdzcYlOhjDqTv1Yuso72u3JQA/xGJhzz675bR8qaxWymzCJbHluvigR
|
||||
6PkBqR+8
|
||||
|
||||
Name: resources.arsc
|
||||
SHA-384-Digest: tyC1sRThyB6d/GSSxOQ2LnU/RrAat+0JZRmS8IeoIaoRGT9+X6/EzH+4
|
||||
MbZ1UtEH
|
||||
|
||||
Name: res/color/m3_selection_control_ripple_color_selector.xml
|
||||
SHA-384-Digest: JYFmYxtHEQnfmx6Pd6hVA24uKPBNdX8mUqR1UQTizpKd0nMC8U1iGrW8
|
||||
BrbpXA6p
|
||||
|
||||
Name: res/QZ.xml
|
||||
SHA-384-Digest: Bi8eTgF7LaTRqdpdt/kCzKlxZzzMHdqSXNiXLPUL7UILzDu2WtzCNrvc
|
||||
ERDM6tUn
|
||||
|
||||
Name: res/u3.png
|
||||
SHA-384-Digest: Ni5BMUKFdqjLbYatiZDPKP5u0co2w5R5fVVdKfNcbP6YFclU8FRvjeFP
|
||||
E/5UjILF
|
||||
|
||||
Name: res/color/abc_tint_spinner.xml
|
||||
SHA-384-Digest: eAg4pl09lgDPpJCCBlaE65lv8XaTgXsgdinWtmaMSDm/4QYy2evleEaY
|
||||
ZZPxan4l
|
||||
|
||||
Name: res/SY.png
|
||||
SHA-384-Digest: OMwQtZEHsTdjD4taciTPFrsz45rr8CiUh4EZxFFnSeL1Kh2hGzmyQ4f6
|
||||
YRS7K5Ls
|
||||
|
||||
Name: res/96.png
|
||||
SHA-384-Digest: O3JYNMBWEXrM5x26qN+I6jkrDy6DcFLndD9r4OHR83EVSlPl5qVqPCt3
|
||||
kit8vQkj
|
||||
|
||||
Name: res/DG.xml
|
||||
SHA-384-Digest: Kx8M4Vc1tf5d8+rmems1FunfCCvf//6rzK73BcduB/ww9743GnhcprfT
|
||||
cBtwVMHT
|
||||
|
||||
Name: res/V3.xml
|
||||
SHA-384-Digest: atyAo03JilNgUOosMMvYm/qO7AprKtuH02ezuG1E3+fqPWk/HcRTyaRs
|
||||
JsQBWUuA
|
||||
|
||||
Name: res/U-.9.png
|
||||
SHA-384-Digest: 2qoazX7Mc37+3d6CY+zy9pCncnoEBU/6Dhrl9TPiycsiwxr/Bu1qyWrJ
|
||||
NlKQX+bg
|
||||
|
||||
Name: res/Gc.png
|
||||
SHA-384-Digest: /dQdbuKUp5GdfOZ8LnvMwupW8dTt7w0LVjDAVJ1jYZ1VC6jIqeCPDFps
|
||||
7UJ9lU+S
|
||||
|
||||
Name: res/6X.png
|
||||
SHA-384-Digest: zYNiojAB0QzsxIjyii/e3aFEtDY2BWwjPfl1JHOI9PkL49tdsER6Uiaz
|
||||
Hf3953QD
|
||||
|
||||
Name: res/DL.9.png
|
||||
SHA-384-Digest: dHAA36PO+M7bwUmf0Ylhc5qzmKQDD/ovE5LIT5AZz0WmReENQljJYtl1
|
||||
pbs0ten9
|
||||
|
||||
Name: res/color/m3_button_outline_color_selector.xml
|
||||
SHA-384-Digest: cyZsztrW8jLoR7n6uNVw+sTFgMWXInwGap8G+/skWpudp+MRIkLapXJx
|
||||
+kzFP6iQ
|
||||
|
||||
Name: res/rp.xml
|
||||
SHA-384-Digest: E8/L9LrdKFsIUXe1TlkkIRGysciP+qpQ7MdcIJCqV+13KP1q19KjTxcA
|
||||
nA781RkI
|
||||
|
||||
Name: res/tk.xml
|
||||
SHA-384-Digest: OqsxyB7nyp+uP3To1H8PROWaZ1Foriu26UxbDjr2hp1dj34+sgHJNtKP
|
||||
5rNxAMoT
|
||||
|
||||
Name: res/v-.xml
|
||||
SHA-384-Digest: Fg0uPt/LUllf8KXBBqxJeMJXJ623anxsAu0OVnTOzjHUEev+GS5lB1NY
|
||||
ECiX2JoM
|
||||
|
||||
Name: res/Xx.xml
|
||||
SHA-384-Digest: p5qLJBy51gX8KtwckvyKmtmuvTQMLPb9VwPMOB4iUCWH3ikapVosCtGi
|
||||
yfDL7KYq
|
||||
|
||||
Name: assets/shaders/vertex_shader_transformation_es3.glsl
|
||||
SHA-384-Digest: cUqWwE9xXk3lIqoFDfnY90UH6g3pQu9sdZjuXb2wQTohG+hBDN5dSgBU
|
||||
8LwLD+QD
|
||||
|
||||
Name: res/Sr.xml
|
||||
SHA-384-Digest: QJNbfHq/JwTL521i+GR14Za1il94Fj1oKx1IUtgenAPNtQTl8MqN24e2
|
||||
uceym5dC
|
||||
|
||||
Name: res/9z.xml
|
||||
SHA-384-Digest: 3cCYU7RRZy1IMOaawsX2eBi8unDxp5AtuKYggoNcCEH+FiJZDFOG0FJK
|
||||
B0K6DoS8
|
||||
|
||||
Name: res/zr.png
|
||||
SHA-384-Digest: K8aK80xg1H1D53r/D5BR07To94+U11iwUKF1bfDNBmZ09EHbWCiJvKD3
|
||||
KZqpF+W4
|
||||
|
||||
Name: res/l3.xml
|
||||
SHA-384-Digest: 1AjY+/1eGSCa4vDQB6VMYQWgJcx6n1EDBuudxw3xEY3eBT/3dNL7Fb/x
|
||||
ze3lZmPq
|
||||
|
||||
Name: res/color/abc_search_url_text.xml
|
||||
SHA-384-Digest: 1nB4WI4X7s8UrJXE9DPK6MxmJQ/aIYroNbOqCk/Tqe+2PQs7plboErbh
|
||||
ra0c8Qc5
|
||||
|
||||
Name: res/lc.png
|
||||
SHA-384-Digest: LUIQG9tlwE8pHOl0WVnkZpJBhhiLl3eqcnQSGKFNdOKYkVovnyJku4ay
|
||||
3ejoyyd5
|
||||
|
||||
Name: res/Yy.png
|
||||
SHA-384-Digest: H3CZhaRLR4BVlYbXwaWpf8byUJDXttvcCl8u2aP3hvFgYgc27ECteM1x
|
||||
EwPTH4J9
|
||||
|
||||
Name: res/zR.xml
|
||||
SHA-384-Digest: gKRmrMoWdS4+eTJzsR0sdQiXJ8crjclnH9QhYUQzyGn248mKN0LrUFuH
|
||||
sp9Gjw9L
|
||||
|
||||
Name: res/Mp.xml
|
||||
SHA-384-Digest: vRKGiDJAaKeNfyCXLyRmkyjWvHYErZz11PgiGv74fLicLhCQ1nfACEv5
|
||||
GyNfttx2
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler
|
||||
SHA-384-Digest: 2a9u9oJnx6kIglXq4S1thFvGrUtj97Z+ZK85s9n67MlnFbVDB5FLiFRi
|
||||
I/OAHwlb
|
||||
|
||||
Name: res/xU.xml
|
||||
SHA-384-Digest: 6b0UpuIflcFA/T69dX6jJfYSE0wzzsHMj5wcdsfLKcUqqpaFtqK0geHf
|
||||
ZH+tAW7a
|
||||
|
||||
Name: res/SH.xml
|
||||
SHA-384-Digest: BeIilzRrjDbkCvOOpcs6gp0q6XEwlSPYObyc2LSL3rzGB4ltDRcp6OtA
|
||||
ONJF/imK
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages_de.properties
|
||||
SHA-384-Digest: f0P/drivzgQ6N6XTXHJlwQcF4ILYTS8wr0jYE2Izuy57CUCBcPlyXuAQ
|
||||
FFr68w0Z
|
||||
|
||||
Name: res/pF1.xml
|
||||
SHA-384-Digest: EWR0a9WIbRyNI4qi0qAyTCDIS3mHP15xyi+3P5HKZQi3ZugmWB4MOF4x
|
||||
W+Ynl0vM
|
||||
|
||||
Name: res/ph.png
|
||||
SHA-384-Digest: wsp7Lbvf9Xz3Ftmy7xHe8VIIXo9diV2IbuJxckgEtwH/u2tUtnVUeu0L
|
||||
dRKBaXyJ
|
||||
|
||||
Name: res/_y.xml
|
||||
SHA-384-Digest: 1/A0np51w7f9QWJsGv7oCU9bsPsal/fLd7MyRPX6XbII2liRMmIwWvqM
|
||||
4ULZuIas
|
||||
|
||||
Name: res/Sr1.xml
|
||||
SHA-384-Digest: BlFQIqfWy8A/lRTYOX+kT2l/lp/YZ/lYi7/57PrXpBvcYlYgY7ZVPtYE
|
||||
GO7ZCcf5
|
||||
|
||||
Name: res/vg.xml
|
||||
SHA-384-Digest: buq8+i3uR9yC/IhI+q0lLZvJc/jajC2vgDTsovTKINoMPKbk6DsutHad
|
||||
o3l9R4Gi
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_es2.glsl
|
||||
SHA-384-Digest: 5MHjB2xLCPW5wqBXCJEqyvZdMvf1m48/zx9BpCIUVDjBVHbMN3b5fdgd
|
||||
rFTuF4fl
|
||||
|
||||
Name: res/WB.png
|
||||
SHA-384-Digest: n92KbkQ9zWPkMgJe6/cC08h91NCYmNvwwF6TySShKy1Ezon5oFkFtPm+
|
||||
w1QjFbjU
|
||||
|
||||
Name: res/eT.9.png
|
||||
SHA-384-Digest: yfF79aK9spwev7yeA3MIGOKskuC3+77nVMB+w9F1KUz77Dd0xCJ7OhJi
|
||||
qXWKRfim
|
||||
|
||||
Name: res/vZ.xml
|
||||
SHA-384-Digest: AsKL7lVTnRufDZcu+M4r+kLpSZwyTa5beAJe+t6b8Le5LQd94oIk1HSp
|
||||
E4wKetLx
|
||||
|
||||
Name: res/M7.xml
|
||||
SHA-384-Digest: 1lO3krEbpP2qvHRu0nav6u2NFwlDLkDFMGteN0xibwICmp0xuBpCMavS
|
||||
+GhglUbm
|
||||
|
||||
Name: res/d9.png
|
||||
SHA-384-Digest: IylMdufLlJy9wSRssRXdcxh0emUCuIp9W0SZPLnNGs83pXuWkD6NyWap
|
||||
p9AbgR0X
|
||||
|
||||
Name: META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactor
|
||||
y
|
||||
SHA-384-Digest: SvKtmQd2cD/F3QykpRUeTmKsZQLsWxe2S6oUWxd0S3hxJxH/DFDOYxxf
|
||||
IBdxXt/Q
|
||||
|
||||
Name: res/z-.9.png
|
||||
SHA-384-Digest: 6SaZ1z0WAnb3sHKq52j5PHUc5/dUlrf991KCYhzGDgse/geqg0+tWU08
|
||||
FgowcVlu
|
||||
|
||||
Name: res/color/mtrl_tabs_colored_ripple_color.xml
|
||||
SHA-384-Digest: 9bYdH329Bf4WSx597aSELNM2dkd7U2aCy7zpyMGE0pZ52epOCxdmCK/W
|
||||
4vPfHi2P
|
||||
|
||||
Name: kotlin/collections/collections.kotlin_builtins
|
||||
SHA-384-Digest: XEvrbLScsVo3XLonuMHA9n7AAtw1MmWwcW6NeSRf0hQhkKuojlzYu5uJ
|
||||
IRBUi6QP
|
||||
|
||||
Name: org/seamless/schemas/xml.xsd
|
||||
SHA-384-Digest: PalDupgU6uwToZBdzyv/U3d7fGAvoFvf/A8aR1wPnP61lUUX3fEBy4sD
|
||||
+l2qtXGu
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_android.version
|
||||
SHA-384-Digest: E2tNDK/xEDe7KULnVhHhi4DR1gg+xx7i/MXJvLOghOc2VeyXxxxKgIsH
|
||||
Sbd2dnfI
|
||||
|
||||
Name: res/color-v23/abc_btn_colored_borderless_text_material.xml
|
||||
SHA-384-Digest: CQVZpPRpaqnQVCbCFuHADU2xN/kUNRpjXYPXSlVs7I0EOzJ0/8Jv4YJC
|
||||
AxcusXIi
|
||||
|
||||
Name: res/2O.xml
|
||||
SHA-384-Digest: HmalxxLeUnn/Iaz1qbVzU3nfklv4xLmOwkzJ4tIWSJ9/giL2oi1//fB7
|
||||
EQxFMI3I
|
||||
|
||||
Name: res/color/m3_timepicker_display_text_color.xml
|
||||
SHA-384-Digest: SZTdmUV6dcBaz7pnhuZsDelrJE0MPXEXf87mEEFuexZvZaQOGOgtqs2/
|
||||
+bMLpPUp
|
||||
|
||||
Name: res/XY.xml
|
||||
SHA-384-Digest: qQAlpB2Ko9aAnLuOqGkgyYWSjhS4SSNR2jxJXcI61u94VbOHNVtTsVmI
|
||||
cU2D4ixM
|
||||
|
||||
Name: res/Su.9.png
|
||||
SHA-384-Digest: zoG6eMmtdC1kM4IBkYmRyfS1KhwtX0D2HjMIoORSz5o8mIyatzfHMzKg
|
||||
ENav8A/e
|
||||
|
||||
Name: res/oY.xml
|
||||
SHA-384-Digest: HwTu151RyKm5REtuvZhWm22VaQQETC5EP+uj8VYaa5klcPdsbzTm5xbE
|
||||
rtDgMBBL
|
||||
|
||||
Name: res/eD.png
|
||||
SHA-384-Digest: KVdl+csGHMT3ts6f7fPoG36oIAymmMPAp/oQpQRcnASLDpHik+c93bnU
|
||||
rOkcK38k
|
||||
|
||||
Name: res/pY.png
|
||||
SHA-384-Digest: UthyXdFYYTigCoOinZRAmZROBZ3nFMVE9lzVULycn8AC3QeGc0Xqv4bZ
|
||||
f1kDCBqh
|
||||
|
||||
Name: res/color/m3_simple_item_ripple_color.xml
|
||||
SHA-384-Digest: Q82ehkaT+gNE5zjSS8wpylZiYs+baperM2nc3m1ib3tkIT9zvbuaLOND
|
||||
SA+h0TBa
|
||||
|
||||
Name: res/UE.9.png
|
||||
SHA-384-Digest: 9Jif6Uiq5VoTS52o31XniOgmrtpm3oDUTqmpIOQSMfTXp2lYykrHEzM8
|
||||
tOgFil3N
|
||||
|
||||
Name: res/9P.xml
|
||||
SHA-384-Digest: fpqdjsuo56u0RY5wj7sajCRkZB/w3ddMdYT5WqpSoTtCvijqljSGY/SZ
|
||||
jPEiHpWY
|
||||
|
||||
Name: res/aJ.xml
|
||||
SHA-384-Digest: TdeeTz3M0RyxsbwrkwkIQMwqN4ydLPKZy2P49jvm8P/XG/KaqwlMrggV
|
||||
tsiUYKYf
|
||||
|
||||
Name: res/OA.xml
|
||||
SHA-384-Digest: QhBBEULO4jNzfGQL76gEFASLMrfnWemzslL8EaCXaqiO6rojpb3ZPsr+
|
||||
gU3T1DT4
|
||||
|
||||
Name: res/_M.xml
|
||||
SHA-384-Digest: qNiBXagfa/SX1It3vY5wUZ1Q3AtHy369SJcSPoo0DPscGP6quHa7ioHt
|
||||
YDjnjF5v
|
||||
|
||||
Name: res/4u.xml
|
||||
SHA-384-Digest: nlNI58L2r1yGAMnqA2dxfbBnbVYLuKHk4VlTnui22qDfD8AzxGq7YRbt
|
||||
+i65ElDn
|
||||
|
||||
Name: res/G2.xml
|
||||
SHA-384-Digest: ksVtYXHwkWMQj7qIhQ0Tuw6Bho8ceUJRpEh32GbnKlsb8Sjkk388plIB
|
||||
r0mYBmlm
|
||||
|
||||
Name: res/pU.xml
|
||||
SHA-384-Digest: EuzhvELdLV8hn3naZRRNoqVWvtvXDtF0P2ltI4d17Lr6538X/rN9FEbQ
|
||||
IJfE7DZ5
|
||||
|
||||
Name: res/q6.xml
|
||||
SHA-384-Digest: 8a4NIlNqnX3kLoGwW8+E3LnCo+Z/rx+b23FHDJVqkvPUehoPn9ZoZpso
|
||||
RARJ4Td1
|
||||
|
||||
Name: lib/arm64-v8a/libswscale.so
|
||||
SHA-384-Digest: FBmuOSIVEVnaXtqTaEwStjHL4hDYK5aCP09ok97sBfgp/Nb5R26IrWZP
|
||||
hvrndQ4u
|
||||
|
||||
Name: res/0E.xml
|
||||
SHA-384-Digest: AUrFVHjbnZnWQBr9iX8UxZVbj8JhZGjPhyVkWWYVZp6K1y6ZTmX9We8J
|
||||
FDDi6Tf5
|
||||
|
||||
Name: res/fM.9.png
|
||||
SHA-384-Digest: GN1Y8cnvdD4O5S8yhrFSAeUy2p8YrXqHpiebwGXeNEKPLd7u5qtCi6u1
|
||||
9gpZmFNT
|
||||
|
||||
Name: res/A2.xml
|
||||
SHA-384-Digest: +8N9+DVZ6ijvvFjoIyOuSpL/68wwoaEYrxY+XBjxxivJ3KdbniXsPxGv
|
||||
MemJMKFq
|
||||
|
||||
Name: org/seamless/schemas/xhtml1-strict.xsd
|
||||
SHA-384-Digest: FlX68nGnFfC2i4abn9WmW7n0+BCdyv0RiINdAuW3IeJA4YTbcfdTgJg5
|
||||
waYodP+6
|
||||
|
||||
Name: res/_h.xml
|
||||
SHA-384-Digest: uyu3u4MUt5S3f50PcDbRp25IYTK0H2j0cFlZZW5lo/M+mrKxYECmtQgt
|
||||
lKwhavq8
|
||||
|
||||
Name: res/color/m3_navigation_item_ripple_color.xml
|
||||
SHA-384-Digest: 739IT64H7oPonQfLPgG9JqBHLNlUmKmT0ivzELrXNPuoW2ucG+QjpD7K
|
||||
HT0JWjD8
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text.xml
|
||||
SHA-384-Digest: wD5PfJm1aLvT67Awz+oXBFmPsLGVa6aDQcZjlSaOcyOmVJnn9gRRrqUd
|
||||
czX7eDJ9
|
||||
|
||||
Name: res/hX.xml
|
||||
SHA-384-Digest: 7xPzIXx0Kg5BBI7+lPyJoSnaAbLjpa1oT9uV86s1nblVxDPZJbFxgnH9
|
||||
UCTpg7V4
|
||||
|
||||
Name: assets/js/lib/cat.js
|
||||
SHA-384-Digest: hORSn/8IrZK8DC5OL/ZovIu3Oh0zqKqrHGFc2NmdKpIYkci3s0G3CRle
|
||||
6xXgB2bZ
|
||||
|
||||
Name: META-INF/androidx.viewpager2_viewpager2.version
|
||||
SHA-384-Digest: 06Z7BpcrmLDRxSNmu3rjzKNpJA/lJSra2enFEuDoDmidzYXhNuiQy/ox
|
||||
dkJitN2o
|
||||
|
||||
Name: res/BN.png
|
||||
SHA-384-Digest: oqMJ6GdTPTkptVOZD1ftHQxOb7LRpeqxiTGNrPVFi86zfwzhYVFHpSAU
|
||||
17OBzCak
|
||||
|
||||
Name: res/Y-.xml
|
||||
SHA-384-Digest: br97xqkfpQcqE8ay7CELE7ArpcnRWAe2Ma2SFpE0+EXn1jWSo9uJHbxO
|
||||
OIjoxMIF
|
||||
|
||||
Name: res/color/m3_card_foreground_color.xml
|
||||
SHA-384-Digest: 8WaoUIO7O0eBhmWN+bKW/nC9UvsKAtMU0+2ilSgqJ1IfoT25DyCzE+4f
|
||||
QzgUof1o
|
||||
|
||||
Name: res/fR.png
|
||||
SHA-384-Digest: C/wG3Ulm7smlpss+jA0fN2Xk9dGFX3Ipp3syugR5RXG8JNOif68gffch
|
||||
8HZhUkqE
|
||||
|
||||
Name: res/Fq.xml
|
||||
SHA-384-Digest: o0a0VeNtfPFk/RxewE90gj7tZf4HM94u9pCwz+muDm7pS1qUngSpmj3T
|
||||
Q1TDEHod
|
||||
|
||||
Name: res/GR.xml
|
||||
SHA-384-Digest: 64SV5E7exL+5JyUCAJWFCMyROjbcCC6vKpSV1xjjJFVwE3PJewgM6Fn9
|
||||
RU3Bhumf
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant96.xml
|
||||
SHA-384-Digest: Si28kFVzFijuQbc0Ga1tMtEMbrqCrZe7qcluIUC+LLRXssnovQZf0nt2
|
||||
CIaFDEPu
|
||||
|
||||
Name: res/9n.9.png
|
||||
SHA-384-Digest: LLLzU9mI4vNUCdWARRxZauITwJUjwfttzE/NdDWodPniOlj4hCdlySQO
|
||||
vMZjiVyP
|
||||
|
||||
Name: res/UE.xml
|
||||
SHA-384-Digest: VOaenWSf2c8R1giPFCiiAqje0bFMPyxwDW7hPqRZbBPjvMlw9RBaoQB1
|
||||
NSrLH8tI
|
||||
|
||||
Name: org/eclipse/jetty/servlet/jmx/ServletHandler-mbean.properties
|
||||
SHA-384-Digest: NvS/IWi5B9Ok6bdlI0lnoW/6a9IHBim2QVEW72pJjde4G1KVmxKsw3tR
|
||||
+RZdqhAi
|
||||
|
||||
Name: res/cr.xml
|
||||
SHA-384-Digest: D3V1r7NWKPUqdfdR/AIl3QNuS0Wzm60Nc7UA9YMQzBg8Yj5p+D2MmQUe
|
||||
STyyX7FF
|
||||
|
||||
Name: res/dS.xml
|
||||
SHA-384-Digest: tOkjcedgmvBKXLvWEq8URhvgs8Rd/1Gt9eolCXLDQFUSq4re87rb2KIv
|
||||
BYe7ZkWE
|
||||
|
||||
Name: res/color/material_personalized_color_secondary_text.xml
|
||||
SHA-384-Digest: eA7+BFPpOqfitYZILrE1rkAXZyyvqMD9ziNITXffOzMp0P/mizWDN+v8
|
||||
9T6gJ7X2
|
||||
|
||||
Name: META-INF/androidx.transition_transition.version
|
||||
SHA-384-Digest: GvR8UHp/YwDMBARXx8WHytVwBltlxxZTHrhWhzcL780JGryvIq5dmp9d
|
||||
g93lndjc
|
||||
|
||||
Name: res/By.xml
|
||||
SHA-384-Digest: L+SsXawroHqfB1/7MBRgKX5KLCw01R5DjiChBJefYrW0c/jU+/8c5wVc
|
||||
IjurQxUj
|
||||
|
||||
Name: res/color/m3_radiobutton_button_tint.xml
|
||||
SHA-384-Digest: 3PqOQvIOnz0bmkp7FeNBgczjlwUZ6tOM7emsd8Lz2RpkVRlF/tB1h9hB
|
||||
QZKd3DBQ
|
||||
|
||||
Name: res/JJ.9.png
|
||||
SHA-384-Digest: +Gd9PQiz5aA6tiZ5KEcp4fRiBas3Zu+QWWiRESFxJ5OhUQpxMXouzcw5
|
||||
u6780AsM
|
||||
|
||||
Name: res/lN.xml
|
||||
SHA-384-Digest: 1MNPp0x+ZdvedxATRo7SeF0PPkaUl+4Uxu6yonZuYQE99XtmkzOPUli+
|
||||
9x6OWx05
|
||||
|
||||
Name: res/23.png
|
||||
SHA-384-Digest: q1lGeTbi8gcNm1bNVPp4ajWjsOm65YTZeESEYeCR5NDdnka7z6vjOeEi
|
||||
RKU15a78
|
||||
|
||||
Name: res/TG.xml
|
||||
SHA-384-Digest: oHmI1iasm16Yx2LMaM9dsVFbyiAgk/4UYDu7LwLjkbODy/1lxZOkEkpm
|
||||
P4EE3Yim
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant17.xml
|
||||
SHA-384-Digest: 7I5ONIjRzJEz0DeGNiZ6k/ew1nHnpAd/a9J7Oe9ffnvXtw+J/4X16bwl
|
||||
ikAs92Tx
|
||||
|
||||
Name: res/u01.xml
|
||||
SHA-384-Digest: yPZOQWrgS1NoSDZ97oe78Q9BaRZK1UXQcnFzmhz7mV25e2LL0VxErDdM
|
||||
9Q5fjcdy
|
||||
|
||||
Name: res/ua.png
|
||||
SHA-384-Digest: 3LWa3UaUPiPYPIl/AQPLu+xve60xiKLKMYOebFlsoz12V7dkg2OvLRc2
|
||||
dZ6zMqoc
|
||||
|
||||
Name: res/dt.png
|
||||
SHA-384-Digest: PY0yrKsSE09N/TTsdS69gOotihsZoERfeKSIP/S/FHndcus26aST6+p+
|
||||
NARCZE05
|
||||
|
||||
Name: res/color/m3_dark_default_color_secondary_text.xml
|
||||
SHA-384-Digest: ucPZQzK2gYCO70t7cAhaqS599eZWslh39dh5rGgPuY4qvJqq7M7cw/PU
|
||||
joRER6Nl
|
||||
|
||||
Name: res/zE.png
|
||||
SHA-384-Digest: 8Z1LdiuMWs/4t7sqGbr7aI0V7SSgiGUwIre89HyaV1MK0IQegxhSykhl
|
||||
iAjmtKZi
|
||||
|
||||
Name: res/BJ.xml
|
||||
SHA-384-Digest: PGv/FwdxOqxVz+G3qoHA46zbbiQXX6S23hg3yXTbfEM5t7hWdmtjHSV/
|
||||
/Y9MlGMI
|
||||
|
||||
Name: res/c4.xml
|
||||
SHA-384-Digest: vJB8SwocZi2/Ob21RoRDxOnrcf9emDpC/YgM5pozX0Zst/FNIr+ai14b
|
||||
N3a/ZiOJ
|
||||
|
||||
Name: res/Ff.png
|
||||
SHA-384-Digest: qEZtTXcCVWri6e+jM8NETRYdONhE3HKeCNdWrkHKyF+Iieyuv3qTbTUY
|
||||
Q5JEKOu4
|
||||
|
||||
Name: res/4L.xml
|
||||
SHA-384-Digest: VturCPEmsSk38GDJpob2gO/FaQH3o16XZc7ZQCvi280n0EZo1Wu1r1wn
|
||||
wErd+2CN
|
||||
|
||||
Name: res/Ga.png
|
||||
SHA-384-Digest: eQb7cnup1PXy3OVYZB0DmQFU7/AB3bE/a3gNbCtETqy/PDKafvnePp3J
|
||||
k5JK0LSS
|
||||
|
||||
Name: res/Zg.xml
|
||||
SHA-384-Digest: seulcfFIevrF9TeSosKD5nqaD1BmlsA2dggczNXP5ukUgp9OEAsWomqa
|
||||
p5XDeNmN
|
||||
|
||||
Name: META-INF/androidx.documentfile_documentfile.version
|
||||
SHA-384-Digest: 33mUbTHzEhENUML6ontTV1+8qf4+/6oamJwi/TI39u73alvTcJapwKRy
|
||||
QLiO0XxD
|
||||
|
||||
Name: res/6t.png
|
||||
SHA-384-Digest: J+RTEPzuBRyUDKZtQaFsiwB5KBe8Ws43wmlefJq6d8CVbdOs98wA4ogU
|
||||
i3HwsGbt
|
||||
|
||||
Name: res/jS1.9.png
|
||||
SHA-384-Digest: OTfWD2qkmZOfAhE89zFXf/x1Kq6CrPIPCPjdDSAlIQKQMU3rXFyd8c/1
|
||||
dq4ezrAM
|
||||
|
||||
Name: res/color/m3_checkbox_button_icon_tint.xml
|
||||
SHA-384-Digest: hggqFCnbW+oqlau8+Kxb/dq08sjRdOz/C5ynJjdcVFusLVzZitb1FGOC
|
||||
1WarYnEs
|
||||
|
||||
Name: res/color/m3_switch_track_tint.xml
|
||||
SHA-384-Digest: qaWtRyA+xyvtZRvzl2Xpc4KdBZZrFumxWlODKKb6UnT6g36qNr8f0Uad
|
||||
5Qd7TZ06
|
||||
|
||||
Name: res/6Z.png
|
||||
SHA-384-Digest: zRh3Mp3M0Ki8vScW2+kdaNg0nTaf3WMrc1yiQ/kF1HoPw1j9ws8YS0VK
|
||||
SeN7dI5T
|
||||
|
||||
Name: res/77.xml
|
||||
SHA-384-Digest: QVaBtjHmI++duVD9IsWBB0aFuVTAaQIorE2SMxAV9woF7V0mz7K669Fa
|
||||
8QGOP1b8
|
||||
|
||||
Name: res/color/mtrl_switch_track_tint.xml
|
||||
SHA-384-Digest: eSJ6ZyXf3LDdIbYPQwU8K++vF2lCZBaX/Iw8xZ3Wn/zv6Oj2cHkddEEU
|
||||
OQ3hHEZW
|
||||
|
||||
Name: res/NN1.xml
|
||||
SHA-384-Digest: W7W1csmWiHN4M8ULFtvySTRBI8s5tvJ5Sk8LUdRxg0trE8WGhmFOCBJJ
|
||||
d+VlNdRd
|
||||
|
||||
Name: res/color-v23/abc_color_highlight_material.xml
|
||||
SHA-384-Digest: Al7OBfblD4jyAhRvzfspchNOEOWLFC15th8CcaTpcm6z37iZ2yUCWkVN
|
||||
O4lwkbCI
|
||||
|
||||
Name: res/color/material_timepicker_button_background.xml
|
||||
SHA-384-Digest: ll2mD0HPR+ILrINjHxgnh3BBqmjXdjJhhd9NXwpdg/ewC4BzN45KIIiY
|
||||
Uocuxwe5
|
||||
|
||||
Name: res/Pa.9.png
|
||||
SHA-384-Digest: S+VEtmqT2Qy27Kp8YqlbCmR4zh/abtRpJA0qz27IC+arrR9q0u8PnWCc
|
||||
XAn7kwv0
|
||||
|
||||
Name: META-INF/androidx.emoji2_emoji2-views-helper.version
|
||||
SHA-384-Digest: 6ZhGj7EwIC6cKUzr5pbIgsJC2l4oRznFyLhA6sBCwgCF4aD3ydvJ3SOe
|
||||
gR7JAGIY
|
||||
|
||||
Name: META-INF/androidx.recyclerview_recyclerview.version
|
||||
SHA-384-Digest: 0Dhh56ybPWynqrKupTKEZuWVJEQB/hhyixvsWy8LWcJj8JoM5whgj/8d
|
||||
NRWGA9pW
|
||||
|
||||
Name: res/X4.png
|
||||
SHA-384-Digest: 6MF20yZmbIwRd705/friLFAsFU5IkJ2DpnB81ssnPgo7sJmObjInOi/L
|
||||
muhCzLOV
|
||||
|
||||
Name: res/Th.png
|
||||
SHA-384-Digest: 2CzT/72xJbPermQ/nVTOljKuK4Tbxy6NmT+mVSQWkXFxcCmolROx+/8D
|
||||
BmXlaciE
|
||||
|
||||
Name: res/GC.xml
|
||||
SHA-384-Digest: VCKMz5G5XCgVTZMCro+Gb5vQ7lDwaDJjXsMJODULrDBJFAT+rZOUSM6R
|
||||
pQq0noTs
|
||||
|
||||
Name: res/Qu.xml
|
||||
SHA-384-Digest: wOvq/THrbpvPqEdSGU7PGxcvYOuL/3+iyEua844X6R6n5+nI6mIKebt4
|
||||
0RgIFvsB
|
||||
|
||||
Name: res/jd.png
|
||||
SHA-384-Digest: Qlsq0GLUtJo7FVL2Hy//tgfu5WE+0xnOlVkMKGFdQ1epWA0SPNRtQd3F
|
||||
qMPikreO
|
||||
|
||||
Name: META-INF/androidx.tracing_tracing.version
|
||||
SHA-384-Digest: KDxWnCoe731MScRwjJBcuG63E0YZyU7HYWy4LL2RE2ZCt/GFd05MtGcn
|
||||
eIq+AlL/
|
||||
|
||||
Name: res/06.xml
|
||||
SHA-384-Digest: IFcJak/Vli5VgK9nsE8hx3P0Bj8SgM3SB++GrAIQVUm8RXdruBtZf3D6
|
||||
RRo0b5wt
|
||||
|
||||
Name: res/g-.xml
|
||||
SHA-384-Digest: o7skI+Gdw4x5c3985zwQxUoOUtnI09enEfxO6ja1w54bC5eXjcoWVJJm
|
||||
RFrL4s/M
|
||||
|
||||
Name: res/2w.xml
|
||||
SHA-384-Digest: fh2RsAqAzPclVvSSfof01o1/qyhvYGXoYprEH24r7766UaK0cxYQFFO9
|
||||
1c0tpOrn
|
||||
|
||||
Name: res/49.xml
|
||||
SHA-384-Digest: dFr2jLx7r3StCVmhMXOEY0IElJ2j5iWaD2i5Wm70ImTCLmUJp6vq4anu
|
||||
Hf8NRUQQ
|
||||
|
||||
Name: res/bb.xml
|
||||
SHA-384-Digest: aoOkHkClwvU6IEcbdMuiJfEbf4phkeGVDSe8p/7wSbPzuhe8QXjdzO8i
|
||||
X1VpwGPq
|
||||
|
||||
Name: res/Pg.9.png
|
||||
SHA-384-Digest: g7QAjG408IYx2xl7VOdB2XnAN0rqx6XiH83D2ldCS1eKwo6Tm8Xgwyze
|
||||
DoTTq+Gf
|
||||
|
||||
Name: res/vX.xml
|
||||
SHA-384-Digest: F1Ycf2pdUwKH0aRGxP3ttQLlKbidBEsad8PK2qR13NS465JS8opo1SGk
|
||||
USMEv/h7
|
||||
|
||||
Name: res/w9.xml
|
||||
SHA-384-Digest: 3Noo+mBZoSQfD9chbcOv4/Zw1+3c5fCmXkg088ocjVXtR4ye8VIICEMn
|
||||
lN9m1qZv
|
||||
|
||||
Name: META-INF/androidx.startup_startup-runtime.version
|
||||
SHA-384-Digest: lUjgzEoqD7sexrgdVT9WSy8v1xVo86FcKoahBjv8rel5C1OB37BCw6KX
|
||||
7B0ZkqAq
|
||||
|
||||
Name: assets/css/ui.css
|
||||
SHA-384-Digest: zVEtZX4aCDbYDRU1et1oUv5oBWmxw+s99W8JBB9m+mmjRUfUQw0rlyhz
|
||||
ReBIoMrR
|
||||
|
||||
Name: res/PN.xml
|
||||
SHA-384-Digest: Cc07NPh8afKaSU2KS3E/9UPqv+UQlxba1Y1sBFsqmRAEBYMZtAR7CjHO
|
||||
f2L7hFqf
|
||||
|
||||
Name: res/YW.xml
|
||||
SHA-384-Digest: 22YDnt1GrFAKqKijTzNCFHAWD7nxYYahuvvWZVhXTNvI2bFcO79HH04D
|
||||
WW5XITMt
|
||||
|
||||
Name: res/sO.xml
|
||||
SHA-384-Digest: rpY7EaleF8sNZ6JUQ6SX2SmGXfojXt+g2Tewzsmpai6lb4eSk4qi/+lo
|
||||
T9wfmv5T
|
||||
|
||||
Name: res/RA.png
|
||||
SHA-384-Digest: CSahgYHE3ftj9Of1evNe2lTIDKZ7nif9l8Ri4gRpCcar71hkYdkmiVxB
|
||||
hcf2SzQw
|
||||
|
||||
Name: res/ii.png
|
||||
SHA-384-Digest: cmHbUbuVmt6y1y40ogs/2libGcEZ7L/9RdPb/P+zGXlAoTBQIlimxvAw
|
||||
YfRSd02M
|
||||
|
||||
Name: res/LT.xml
|
||||
SHA-384-Digest: eiOhJsAsXc681jKvAm1IccuJ44i0Xz+OgrfXXCr7iZzCN54ggxIOm4E9
|
||||
9yPAqKaB
|
||||
|
||||
Name: res/M5.xml
|
||||
SHA-384-Digest: jFKiKig/Mg7Y22ixY8DRlV6gVM5y8JqLEFsa+cMfVddWzqDyWBZjuNYD
|
||||
RmQNK+A7
|
||||
|
||||
Name: res/HQ.xml
|
||||
SHA-384-Digest: lRiDgxlBgI4oW0/hvaOTmY0UwAdQObKJt2RCRJkoLH1L03JFfV51+VPk
|
||||
+STXY++C
|
||||
|
||||
Name: res/tL.xml
|
||||
SHA-384-Digest: AhAwzxVAo5EZpHg73DOS188jLJCKtqeXAO/aGu7jZhGtmpv5a0TRbYPm
|
||||
OwvSTUBk
|
||||
|
||||
Name: org/fourthline/cling/support/renderingcontrol/metadata-1.0-rcs.xsd
|
||||
SHA-384-Digest: hqkRzk6HLjVaY4NDZ56hn9tDR5npsWP66J0Xwq6LsES+P7owuQuhhUMy
|
||||
vt1cg00M
|
||||
|
||||
Name: res/a9.xml
|
||||
SHA-384-Digest: dZjEHNeLBi/sAYX+QiWnZK0d3PLHmqwZGYsASgLWJ16Ex7pw7T1Y0zTB
|
||||
Rh7VkWr6
|
||||
|
||||
Name: res/color/m3_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: QGwZXnx4+eXdD0z5S8y/a8cvad015NLwsoNEjtbU0dVkQuFU+d1qIVmA
|
||||
HUZg5+aj
|
||||
|
||||
Name: res/Lo.xml
|
||||
SHA-384-Digest: rSgb8S5udleuefaJCNkQBTH7S713Gdhvl8E66+1GhPL/9dB2PfYOkAFp
|
||||
NWTtWY99
|
||||
|
||||
Name: res/eo.png
|
||||
SHA-384-Digest: DO3iHVEjX0VVauCz/8im7Kq1wfNwk9w2XpuMp2h/WIcwhve+thxQKcFr
|
||||
k+yXdKH8
|
||||
|
||||
Name: res/1c.png
|
||||
SHA-384-Digest: yC7eBdyCxPGXZLLAR0RroyNyHhpzXbEvCKtarpHNBhmyrI7PREQ8cPRK
|
||||
zFhKXRJs
|
||||
|
||||
Name: res/6G.png
|
||||
SHA-384-Digest: WX+hMGFnTOwmjvN84XPSuyPKSCHxHqOqIXBfh0N8AAVZJVHTtzYqBIL1
|
||||
Zi/7aFm/
|
||||
|
||||
Name: res/LI.xml
|
||||
SHA-384-Digest: qUTf95+d2tDIneaOjiYVKHv9v2przAJ5X7fTlf2Z2/6/zREnquC6LXc3
|
||||
25qAZhz5
|
||||
|
||||
Name: res/color/m3_chip_stroke_color.xml
|
||||
SHA-384-Digest: SHCm13+yRLvUeGxaC+MFrkDe92s/cTzjSLH2+5C2qoK3lt6ZhSbXm/hK
|
||||
ZeAU9c2B
|
||||
|
||||
Name: org/seamless/swing/logging/img/viewtext.png
|
||||
SHA-384-Digest: p47pw2JjXZnYYmwudhk527O0xvIR+7GD/1V2OGi5H478/R+LvPMA3jXD
|
||||
LIe6U6Ck
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant4.xml
|
||||
SHA-384-Digest: AbGKAe2HC+QTHYvXpor8sKu/7FD8R1RrW5PmZI1+6RZq8BbVQiHTOx4H
|
||||
hz0MlNph
|
||||
|
||||
Name: res/yT.xml
|
||||
SHA-384-Digest: MXZ2eqI/NbBsb9qZE1C1VrMoATl+QRAW+8GMMJZG4HFqMV3PCu7R0f/q
|
||||
JAD5jDOJ
|
||||
|
||||
Name: res/z5.xml
|
||||
SHA-384-Digest: vDEqn9O/y5o3XdCBjSDe99hNvoN0MzLZfeyefF3xJduuhmMYzhEo4PtW
|
||||
7NbrjgsD
|
||||
|
||||
Name: res/LX.png
|
||||
SHA-384-Digest: 6IarMkumCDH8CDYzxi5qC7cBnI5zxmypTo0zZbhOe7YnV/o9x1gs7UZV
|
||||
UvrD6bUj
|
||||
|
||||
Name: res/cV.xml
|
||||
SHA-384-Digest: DkO9dYD3WzM4dcVdqOQSs432mlQAIGYuAwrg9GdGgO9IOA3B+5D94dOf
|
||||
7XurgPjZ
|
||||
|
||||
Name: res/2w1.xml
|
||||
SHA-384-Digest: 3XC8GC9DuJ39I1YCzjkzUWzZ9NI1ngS/JVP+wDUSAKWtYPbdAqdrzO+7
|
||||
2PDufUNU
|
||||
|
||||
Name: res/color/m3_navigation_item_background_color.xml
|
||||
SHA-384-Digest: R+x4TBzIiFAShBoe2II95ajho7mtyqI1kANeXOMfKF8VL3r/axUKzwRj
|
||||
YOLRN4d4
|
||||
|
||||
Name: res/T4.xml
|
||||
SHA-384-Digest: MKNbAwYOmuXzzn8ilLzV6IQtjNdkfgzCvFI1LjABZGz1K0oCv5sv6V5p
|
||||
odzLTEjE
|
||||
|
||||
Name: res/-8.xml
|
||||
SHA-384-Digest: bdjNGJd6Nt9LUnkPB9yDzOrqtfg+F0K/ZZUddrB4ht7v3Tw5sQkYAuoh
|
||||
V2Q5yTIq
|
||||
|
||||
Name: res/color/group.xml
|
||||
SHA-384-Digest: 8p+MCuttEz1lWdi52/JPWL4ibwyVR3Fy63xjzMYcTbi+vmfgOYHvsi3a
|
||||
4Egx6ehK
|
||||
|
||||
Name: res/FO.xml
|
||||
SHA-384-Digest: tSLTEUpdaLvOVqcZK4oCPAHWpLEh7qAK03LJkdtLlec3J1/U0lfdaybX
|
||||
T6lMUeCU
|
||||
|
||||
Name: res/G0.xml
|
||||
SHA-384-Digest: pTyjc63zZ997FHdNot93zROGrsJUUIpWtApc5D6FWF+d/fuMpxxi65nr
|
||||
QN+au5ul
|
||||
|
||||
Name: res/Yj.xml
|
||||
SHA-384-Digest: fzdgOROPrnMoG2dy5rTadUBmuvwpmcD7daDVVBLf+fhYr1T+J1fvENsa
|
||||
Poo6pRXW
|
||||
|
||||
Name: res/color/mtrl_on_surface_ripple_color.xml
|
||||
SHA-384-Digest: CVofN0Kk1KMiye8OoChPqLxIb2ByLOPXQaCvQcWEjhnxHcfbSotgjMoS
|
||||
xbmywhiw
|
||||
|
||||
Name: kotlin/annotation/annotation.kotlin_builtins
|
||||
SHA-384-Digest: 6uKoko8b2hrrpzfbHh+lB0hqDd9W8ya9PCSFDyt7BrxXeQDoohpFNU3K
|
||||
5IwBP/Sk
|
||||
|
||||
Name: res/iv.xml
|
||||
SHA-384-Digest: pZMkj45xcB1r5GicO9FM5YgTDLPfqwQhZa4BVeCKgvMd04zmZL1gxsIE
|
||||
CPEMI1/Q
|
||||
|
||||
Name: res/k8.xml
|
||||
SHA-384-Digest: nn8F9AOIole/Ng2LpPLvPg9D9OKeQw7O0gpe3MtKGDCyRJJuFKgkn6tI
|
||||
A35lDJJv
|
||||
|
||||
Name: res/color/m3_timepicker_display_ripple_color.xml
|
||||
SHA-384-Digest: W5WFc1g0rm4Y7muzbFoozc6ABAA6C4RxuooBa9SjooxN08L/mf7SJLMz
|
||||
Xt7lZDar
|
||||
|
||||
Name: res/color/m3_dark_highlighted_text.xml
|
||||
SHA-384-Digest: cExXSqrLlc+OXsTYy6ytbNWO+XBzq/7NPuEIKPlIdZ9A2+KhM6mgPc/I
|
||||
sGb3RANy
|
||||
|
||||
Name: res/wX.png
|
||||
SHA-384-Digest: dDK8Vze6Grr0A75s4p3KAoky8qGaZI2aAuQFxAQMqq0v+Rrg/arP7Zrl
|
||||
l92zn33A
|
||||
|
||||
Name: res/dW.png
|
||||
SHA-384-Digest: NCXMJiaJtsRIpTLEyN+ypvB+4Jkf0tkbxjvhqvxAimW0sFRb4KdHuQ+J
|
||||
GNXDpGUu
|
||||
|
||||
Name: res/NB.xml
|
||||
SHA-384-Digest: UXUmeZmnInzSQfWbLAo33KDenRy7pjdRpLqAJEZrxuYXbmV1GYi9zIfp
|
||||
9IHGvPpU
|
||||
|
||||
Name: res/Ao.png
|
||||
SHA-384-Digest: XG93j0iuZAlhDOSVyvgWp8T5jUMcHtCK5KR0GqoSDSGjsZf2bPgE78ss
|
||||
qP1VhRUW
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version
|
||||
SHA-384-Digest: W9f/dl83UYP6UGja2F7eqPDsmepKXW8kMZe+BXZh948EQ7kEqbuBQpoW
|
||||
alx7kw/u
|
||||
|
||||
Name: res/KH.9.png
|
||||
SHA-384-Digest: q26+Hdwqi3sblqWxFeC0J+q9pkrf25f0UnbWfF5eWQEZDGYVsjcBpROP
|
||||
G+eTxGIT
|
||||
|
||||
Name: res/b-.xml
|
||||
SHA-384-Digest: 0zrkjeQye7+hRiQMr8ml8wCvIVxoDofGHV2E684qU9CDA+UcP5+lQuWc
|
||||
WyK14VV+
|
||||
|
||||
Name: res/iR.9.png
|
||||
SHA-384-Digest: N9t5yA88XLRn4hlTtTkYP2+JjeLZgPDis/bpNfmUKfwja/DmYXV2qgup
|
||||
S7hjMi5z
|
||||
|
||||
Name: res/OC.png
|
||||
SHA-384-Digest: 25pFGq/9jzkSUxCqRux5pIaylvQJoMtSomvy9FIxL3At0sp9Cijf3a1U
|
||||
weOPRf0Y
|
||||
|
||||
Name: res/f0.xml
|
||||
SHA-384-Digest: lWSPDn6HT6yo0OJSW9MtdpvF6GCVMGSUpYvFpb10epfRVoa8l4mjtdy7
|
||||
uTAJc2zh
|
||||
|
||||
Name: res/FS.png
|
||||
SHA-384-Digest: k7dUPkU/LecfarpfqdnuuVAES6efsVikYqP5wOLP9yrtk0al9zEMAvDF
|
||||
7ZDfkzhn
|
||||
|
||||
Name: res/l9.png
|
||||
SHA-384-Digest: JUSqBi8c/uxwI/0qrYuHL2WC45Eqc6H8bWpepw+VeZ8YrEUNqB6Iexh7
|
||||
eS436nN9
|
||||
|
||||
Name: res/6p.xml
|
||||
SHA-384-Digest: ct6nMhTucFMq8t7t3zmdvWqBoHyAuXkm89Wjk/Amugu1uDDUuXWzTKCq
|
||||
vf8BebeA
|
||||
|
||||
Name: res/7Q.xml
|
||||
SHA-384-Digest: pSokxccb2DqJk3ZkI7kn/xT/oTk5AKuKmh0q2zu952mO2kpdcHVSlblM
|
||||
HUQANpNa
|
||||
|
||||
Name: res/A4.xml
|
||||
SHA-384-Digest: Dsu1rSV/ajG4j729PkTpLuYcMjswI6T7U/hn8QoWFPgOC+HgXFoooAbG
|
||||
DQuF2eKv
|
||||
|
||||
Name: res/DV.xml
|
||||
SHA-384-Digest: 3cjQHYuZBR04pHwouGI18ik6xDu/ZlnMd3wPRvcCjodS1/lz7U8lwvk0
|
||||
gUtqdzxb
|
||||
|
||||
Name: res/zc.xml
|
||||
SHA-384-Digest: 2mWbdqeFDXnHiN0Zva7dxzPSpwU8nBdj/kpph3r8zsYZfNyRN3yYC4Lk
|
||||
tl0N3leJ
|
||||
|
||||
Name: res/p01.xml
|
||||
SHA-384-Digest: Zp/6JOe2mpt0cIizfrWlxX9B0fbH49UX1QgctBax0ed8lqGDTJQOi/g5
|
||||
eo3dJkGh
|
||||
|
||||
Name: res/B5.png
|
||||
SHA-384-Digest: wNu3hRK6dlQR6s3F8yQEWzwKe2XHNns2SYo7QswGCbAOiJlgQ2NwURrI
|
||||
vvwTGLFO
|
||||
|
||||
Name: res/Tj.9.png
|
||||
SHA-384-Digest: iLVooKsmMkvUSSG1R/DsFiXVxY8O0/PHaVeLOjGdMCXimQe2TDe73V/P
|
||||
E543lEEa
|
||||
|
||||
Name: res/color/m3_timepicker_display_background_color.xml
|
||||
SHA-384-Digest: b75pSFq9AAQDSnEqBVIxEPWQ+MjZG3a5iZi/4uSKUwK+7uipNYXKaC+g
|
||||
8clof9te
|
||||
|
||||
Name: res/ZZ.xml
|
||||
SHA-384-Digest: p06vyDlT/AvlArLYNcFuFEL4yzPKDhymUar+ct3QlyAeR+eX7rxVL/0Y
|
||||
F6wS917k
|
||||
|
||||
Name: res/lP.png
|
||||
SHA-384-Digest: BDyqk6eW7gD/HJEjmOkQ4RFKJfi1Oa9pHeddUjS4lUbBfyGhhpXEgP2r
|
||||
Jz7mO5z4
|
||||
|
||||
Name: res/hu.png
|
||||
SHA-384-Digest: VNxECb6Tb1xDHBq/NrqewwksiTg419T3MSKnQBWwJWfVnMSXWERCgjss
|
||||
Ips7TkUw
|
||||
|
||||
Name: res/tV.png
|
||||
SHA-384-Digest: Pl2Q2rV6KBQK882/1Qbtk0AMMTHr11znujTM1aB6kGIOQgZyOzAaMvr6
|
||||
5E8UlM4L
|
||||
|
||||
Name: res/eZ.xml
|
||||
SHA-384-Digest: upko7Xep6oiXs+epp/zZl/cCsQY1ybg4wQao76sKMkZfOLMXdhucuucT
|
||||
mMm/NAG2
|
||||
|
||||
Name: res/VW.png
|
||||
SHA-384-Digest: IlZC3mJARzUHTnZ1jJE3Bs0pa3/SwPeaB/MByh4pTWRTJsX3w0D8kBE4
|
||||
4M5mukNG
|
||||
|
||||
Name: res/Mp.png
|
||||
SHA-384-Digest: lRIBg46BvEIAntc/YMKcSYQrAu50LWk36d86xTC0UH9N8EVKpWBs3OzN
|
||||
wWpW02fA
|
||||
|
||||
Name: res/cA.xml
|
||||
SHA-384-Digest: n3znHivnBPYtl1xJdVtFBJwqXwQh6Ro6wSoHDUTxrakGNKpWZVGd4WqP
|
||||
NzOV48+o
|
||||
|
||||
Name: META-INF/androidx/annotation/annotation/LICENSE.txt
|
||||
SHA-384-Digest: FijqHNoFUwK86F8kufPzQ2/09IKehkYJkBCAoTxjshm6lP9e/cfN6Mse
|
||||
gV29zS9m
|
||||
|
||||
Name: res/9a.xml
|
||||
SHA-384-Digest: ZOPpD1YDkhtvYwoCqC81V7kMDx26PXaGddaSQZ/lczhsAjhyJpXTrbmA
|
||||
6v9mHQf1
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant94.xml
|
||||
SHA-384-Digest: 7MqDONc0BqUPQDnHQhY2LTCNlxMA3k0BFOUdZh5Ry3ovGOl7laF7lzEQ
|
||||
hduRBkMX
|
||||
|
||||
Name: res/color/mtrl_switch_track_decoration_tint.xml
|
||||
SHA-384-Digest: +oDe/c5CnTn1JVNYRIRUfA11vJ0zq4iCYF1CXMHVQ3Hdansm3blTit9V
|
||||
02OrHdzy
|
||||
|
||||
Name: res/Tm.xml
|
||||
SHA-384-Digest: pcbt9KQgK3lV9rJmVLvylr0b70g/5zDK8elEJguRmkhTyDdXyqfTbBcP
|
||||
W3YeIoPW
|
||||
|
||||
Name: res/rp.png
|
||||
SHA-384-Digest: 9EqQGuuDpq4LzoOY9HQXjXa9yCrkcmdJA0yQENcozxrkkRpedGMIkbL7
|
||||
I8YLY8FZ
|
||||
|
||||
Name: res/jB.xml
|
||||
SHA-384-Digest: ZBC0biVVkEo8D3CoOYmIJOLeYFMLP1nQSo6RSjjlHRmHWWO9NgJS65hq
|
||||
RgKNAl5N
|
||||
|
||||
Name: okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz
|
||||
SHA-384-Digest: Pg1KS7TNjYq3xdGSv9sZkh6a7Zr9UnEH07c4HiBQlahD+1grAN1boXms
|
||||
44ZoOY19
|
||||
|
||||
Name: res/0k.xml
|
||||
SHA-384-Digest: fOv8R1+oUY1ZJwk0RD7bGiKC31jNROzY003x97a3e+cQE+r9yDlercw/
|
||||
SwNrtMPW
|
||||
|
||||
Name: res/3A.xml
|
||||
SHA-384-Digest: iDqYUbkJ3i2oyVd2wJ3K5su6tSO8QA07umLwVOGJwWhTAOSr7vV8g+9L
|
||||
AwIkJ2KW
|
||||
|
||||
Name: assets/favicon.ico
|
||||
SHA-384-Digest: JKh/H5vzjFzgvqW5EB5eviCsilDgsmcNny2PAksMefso4wfp5sAlfrHB
|
||||
Ckx1JcIo
|
||||
|
||||
Name: res/56.xml
|
||||
SHA-384-Digest: 2fOG1gywd4JwNEN1a6vSB5kTFIlu3fr88FcyAjHeNY7YB7xfcLEeFycw
|
||||
Pxkj3rPB
|
||||
|
||||
Name: res/color-v31/m3_dynamic_dark_default_color_primary_text.xml
|
||||
SHA-384-Digest: RR0AIjrErmyXBFx/YRh5j8yzPjoRX42dst3Oh5s0awnD6KTfa9bFbarS
|
||||
yb0/ggn2
|
||||
|
||||
Name: res/Ml.xml
|
||||
SHA-384-Digest: a6Nk5pzf1VootQ+NOjyvlq2YHidd3foyZHD6q/Rw//o71jE/JhLU+O4+
|
||||
+rt+JV8s
|
||||
|
||||
Name: res/NM.xml
|
||||
SHA-384-Digest: 1IX/h414UNObmSD6S6RwP+avXKyjzkQRORFT2QPVfoI0SWus6wmn0Zy2
|
||||
vUzzCWzt
|
||||
|
||||
Name: org/eclipse/jetty/server/jmx/AbstractConnector-mbean.properties
|
||||
SHA-384-Digest: WJJ2rYtQ9yXHjMXecU7IUVPU7oIkS3iG5qWbxW/KimBvB6BEKYob3lCs
|
||||
frxtjS4D
|
||||
|
||||
Name: res/bX.9.png
|
||||
SHA-384-Digest: qbCk2b41WywWLBC+IGHHEHvko/qVY7GGARUnKLgISO02OLq8D7+MqQDk
|
||||
RZePLvAk
|
||||
|
||||
Name: res/color/material_personalized_color_primary_text_inverse.xml
|
||||
SHA-384-Digest: IaYhMEksecT8sK9WR4cGysFb+3vzYVcT7SU7gN4hqRRqWc4b4/o44v2e
|
||||
nHk7N7Pl
|
||||
|
||||
Name: res/0V.xml
|
||||
SHA-384-Digest: 4eUxDShqG1fABqSwo7CWSliKUJ7MTSGgCVRDfiS0OEgFkGB6PdRPuMIH
|
||||
+NqbNKU7
|
||||
|
||||
Name: res/J71.xml
|
||||
SHA-384-Digest: D4iSuNofMHv8cbouq/I/y6/QFJdT0Q7nBvhwyQV/BPF+ntXZ/kqQWBvM
|
||||
lLJ/Q4/S
|
||||
|
||||
Name: res/zR.png
|
||||
SHA-384-Digest: z+gxk6FIZ2xCfZ0CY23uzZULZoDL8kGeTkHHKvuRutbxdjVRRz5sjUUR
|
||||
m5up1ghe
|
||||
|
||||
Name: res/tG.png
|
||||
SHA-384-Digest: GLPzrytgCvsQInLmXmPYS08WrNjY3AFp/ofr0bQZoBLtTkJM4QlpMyle
|
||||
I9md5eqo
|
||||
|
||||
Name: res/dj.xml
|
||||
SHA-384-Digest: l922YMhM1pJbr8aYblEWxIdf0EjYCLV5An9+Y3Ayv+QywzS9OpiYLje6
|
||||
VuStwESa
|
||||
|
||||
Name: res/eK.xml
|
||||
SHA-384-Digest: i94SKSuGbla4vloRi1Eywi6sJHo7UhEPOAyUhlVZtudfkCLB9qDp/4O2
|
||||
2MEuDCKU
|
||||
|
||||
Name: assets/shaders/fragment_shader_transformation_sdr_internal_es2.gls
|
||||
l
|
||||
SHA-384-Digest: 72aGI36CHTGMr3GqHWCK1dJ4KbR/aj+rSQq8aevW+d/ENxhf/z89CaS3
|
||||
DDxjcK8R
|
||||
|
||||
Name: res/color/m3_chip_background_color.xml
|
||||
SHA-384-Digest: uDqHvVbO1+SF/If9AyU61ajbKkrsKicV45lCkyQyp8hp1xyikdNlog2o
|
||||
BozsjfTQ
|
||||
|
||||
Name: res/color/mtrl_choice_chip_ripple_color.xml
|
||||
SHA-384-Digest: eeObOePG7obzKa5fiU9EAYbbL0vC8d6aAhTZgy0z/5RVrJ0EkZ0xFSMl
|
||||
+/HPWVO3
|
||||
|
||||
Name: res/9z.png
|
||||
SHA-384-Digest: 37qXfpz2kvyiB7Iu/5gfYGME0wFh8XdLDJ3UWO4nIvmcT+OJuE2BeQ58
|
||||
fHR1yzQx
|
||||
|
||||
Name: res/Ma.9.png
|
||||
SHA-384-Digest: aGToD4lK9H4bN4aDCFRZCndRhptFz9HbFEygTqTFIP742XfLozP49+ND
|
||||
cZNXdib8
|
||||
|
||||
Name: res/UR.png
|
||||
SHA-384-Digest: tBPO3wC/I5Bgt0QGwkvgvEHfYtFKLVdB35RsFq/sUTwXxYjp3MDO8ogD
|
||||
iJsLnYjY
|
||||
|
||||
Name: res/color/abc_background_cache_hint_selector_material_light.xml
|
||||
SHA-384-Digest: HVfiPiHWwKDhHLsQsGhaVAhdpvA0nRc4UkMqReZtWtoCJWY6hIBgNlNh
|
||||
XZb1LBBu
|
||||
|
||||
Name: res/color/m3_slider_active_track_color.xml
|
||||
SHA-384-Digest: hu1BJgeyrwTnnrQLBty5DLrlSbQrxONFbZTodWXa9tW4f+kyzWwH+Hp8
|
||||
3GIgKIy8
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/reflect-config.json
|
||||
SHA-384-Digest: gIYIt554iTBloK5VIJX+fO+OGuWtZSG4SeB9uGq3qha4n9DSJmKlLtfs
|
||||
2rf73RGJ
|
||||
|
||||
Name: res/6_.xml
|
||||
SHA-384-Digest: /08yUm14zXOjgw3LKbs9UHgv6yz+8/4wdCN+jLOFTqKcH+xsU+vzV+Qn
|
||||
p7lU/Ilr
|
||||
|
||||
Name: res/_y.png
|
||||
SHA-384-Digest: nHakG8QaxKgLSiX2UNTsMF9BJwEBe9z2ilZOODulwbY8Y4gIP9sgniKo
|
||||
AZEj1K4g
|
||||
|
||||
Name: res/WK.xml
|
||||
SHA-384-Digest: UAfYdPrh+r8tH6Fru3NUTZtIOZKlChR/001IBe9SzxXjABOMbtBYiud6
|
||||
Mst6skmo
|
||||
|
||||
Name: res/_Q.xml
|
||||
SHA-384-Digest: pMrrQD/lq5VnjYVTmqwsHAh4e5BtujTo+HdteQ6tp+MTb5VLrWxAA87H
|
||||
6XKUNgRn
|
||||
|
||||
Name: classes5.dex
|
||||
SHA-384-Digest: t0hswY9BeYc2Mv+TyENKfmzhpRbzgvdcZB6lHtFMYyoQpNK4z/VftG7P
|
||||
cVwTPTEI
|
||||
|
||||
Name: res/color/material_personalized_primary_text_disable_only.xml
|
||||
SHA-384-Digest: gA3Xnbvq9nkfExy3OZaLEw5SQDr6yOWp87VtkmO0JFf69frEztu5YDDs
|
||||
7+r46HCU
|
||||
|
||||
Name: res/hh.9.png
|
||||
SHA-384-Digest: XsnEsYpojO7OuhFTxJwdNX/3vv609iFKtpnxwnSvQYOvo0ZSdKwWXnbS
|
||||
lDDMBRXZ
|
||||
|
||||
Name: res/fv.xml
|
||||
SHA-384-Digest: fU9dlG4J7iRzrlYKHI/2GWaxHRIKZSqVQyZ2OrpjCBxqPtpXe2o/JenX
|
||||
Z0v4Xx6f
|
||||
|
||||
Name: res/jQ.xml
|
||||
SHA-384-Digest: OoRCoiD0wSIjmFBKMWPnNmEtGwzB6u7QpWyET/A9jfwcjaATbLjH3Xic
|
||||
9wKJF428
|
||||
|
||||
Name: res/d_.png
|
||||
SHA-384-Digest: qpz0ve+dlgi2HzDZ5/6z+9VqslolIA8uzxpHU+D99XjQCoDFBpHG6VVU
|
||||
7+pr3Kwe
|
||||
|
||||
Name: res/qv.xml
|
||||
SHA-384-Digest: NoUKneaI8K2gPriIpsAkihPwCTm+FJ9Bk+gxZm0yzIxkR3D6bfNslQhq
|
||||
vvlQ3naG
|
||||
|
||||
Name: res/rW.xml
|
||||
SHA-384-Digest: 3vjYf2U1sOXgC9BVDmYvqYwBi9kiWaAf8UkjwZrbVuwH4y8QtNCfP0AS
|
||||
FGrjraJ2
|
||||
|
||||
Name: javax/servlet/LocalStrings_fr.properties
|
||||
SHA-384-Digest: YkBy01l99wbg5RDqWMZHwf68JH0R1A+OQSnLoZrAjsy+z5IzLWKvFlez
|
||||
He9q0U+D
|
||||
|
||||
Name: res/yV.xml
|
||||
SHA-384-Digest: m0FjF5KdEjtvN1GSRDezjqg3cife30+KEoHoEVEzyTo4C0onGVuhpVKW
|
||||
I1atx5HR
|
||||
|
||||
Name: META-INF/androidx.drawerlayout_drawerlayout.version
|
||||
SHA-384-Digest: fZO4/HsIi59dYMIMktb/SLoGcUGGpfZLFHU8oBbj76VYEEBmG4fQD4w/
|
||||
+S0EAa39
|
||||
|
||||
Name: res/xQ.xml
|
||||
SHA-384-Digest: XAgHMlYD/sUktn2h+n53J8ZP4FPEKPfK26gF5nRSNMkRPi7jWJrJZKwj
|
||||
IRZMioUZ
|
||||
|
||||
Name: res/Ox.xml
|
||||
SHA-384-Digest: eZqYi55DnnWrkn8No6iVsywWb2HAPNC5uWkXtOFJEFqwd09qs8xI97uc
|
||||
48Ug/Pjl
|
||||
|
||||
Name: res/fz.png
|
||||
SHA-384-Digest: /ch3M42AHrKZnwjHSgXSykdFc9t3hTn1cG3uADxPC3LkDVoIt2Bdd9Dq
|
||||
MFjopWqk
|
||||
|
||||
Name: res/2y.png
|
||||
SHA-384-Digest: UNt/0AlNtunAZ278K+XanmS5kuGwJb7Tyuthoi7uK/YPGxnRrOAGecbE
|
||||
SxKzAjPK
|
||||
|
||||
Name: res/3Z.png
|
||||
SHA-384-Digest: M1LIlyhI0gvBdeuSuv+OTh0K3TVH7LQp2+rbPXToRPDCJ2aykrjG17ml
|
||||
l2GYweMZ
|
||||
|
||||
Name: res/xH.png
|
||||
SHA-384-Digest: VDjRGdd9h6saAj0o8ZC8ryf4VZgSE0jOZSv0JKvk6LIWymIzQx6bHqkR
|
||||
jOfPyU5L
|
||||
|
||||
Name: res/_u.xml
|
||||
SHA-384-Digest: NPFeFjHZpwJMyFVxEj7TTL004OFPtnbOXP550JqTOgBcpisLQXPrrY0N
|
||||
vEMYITdm
|
||||
|
||||
Name: res/a7.xml
|
||||
SHA-384-Digest: gVuRJkAQFbDF9fsv3zjDXKLyOZs1eQ8yBIg+Hzzhuoup/3IFi7GnyIZq
|
||||
/4/YLCwH
|
||||
|
||||
Name: META-INF/versions/15/OSGI-INF/MANIFEST.MF
|
||||
SHA-384-Digest: ti0zZFKptjThWq/TfPyTeQAmowQrjfXGZBzS58IvnwqnVN+HioTB1qI7
|
||||
QqpfQ+MZ
|
||||
|
||||
Name: res/Lq.png
|
||||
SHA-384-Digest: 5w1RIHtdG0wT89UpToXOiouAVbG/LgkyoGNGdstSDDcBpYYE3Ap+9OBX
|
||||
QNJvJ6Iv
|
||||
|
||||
Name: res/N3.png
|
||||
SHA-384-Digest: NhnqVtv/KUPL9ZOQrN5f4Fo5QCJZcNYe2NrTafO+uxvQ86WQd/e8p3Bg
|
||||
Ey0Wd88p
|
||||
|
||||
Name: res/ZE.xml
|
||||
SHA-384-Digest: 0mSJC9F0MPD81awTJRvCTFRCjl5VZP4SKHrNJ9YHgGfOauf4T7Rqi9GL
|
||||
O7VMFkNc
|
||||
|
||||
Name: res/dY.png
|
||||
SHA-384-Digest: taeRThDuhnoVjZHfwbBn0WLH1njcCtGjF2Rkn0tkl5EG0OiRo3hxyfgt
|
||||
VS1SuHY0
|
||||
|
||||
Name: res/Oi.xml
|
||||
SHA-384-Digest: bGRUqRqsIFlcZEiRGUKGTd30+J6UTRfie2oEjrVni0oOioik34a+fjeF
|
||||
GrDWdIHC
|
||||
|
||||
Name: res/YD.png
|
||||
SHA-384-Digest: jDMEytsvDGFUffMefn/56ByL0YMqFrCB1tgDtYgT2kOKFwn8fCagmKRe
|
||||
MiVWoyvf
|
||||
|
||||
Name: res/color/m3_default_color_secondary_text.xml
|
||||
SHA-384-Digest: /wqoOwswyCK8PIzt71yl8Bj2kc/RB9BMk52YMf8f+ahmFLg0xlhbXpUg
|
||||
kkMzWy3P
|
||||
|
||||
Name: res/te.png
|
||||
SHA-384-Digest: eWrXL1nlt6Xnx591L2ZN/dV+mDuSUhnLHjv28eROJAW9YFOrOb17NcVM
|
||||
mWexk8R2
|
||||
|
||||
Name: res/9T2.xml
|
||||
SHA-384-Digest: sCgojscAz22Pc6BoQRLvnbZypSjlR3XoNgvHe1yfZz03u3Oldvkncy+l
|
||||
SlXqBbGf
|
||||
|
||||
Name: lib/arm64-v8a/libmedia3ext.so
|
||||
SHA-384-Digest: sjCKJRaVOjPOUFWRMKwkBlUgJ2sPZHjKVPj0jp76oa7IMbUDA2ZgRPp/
|
||||
odOQrSyG
|
||||
|
||||
Name: res/NW.png
|
||||
SHA-384-Digest: jthvkhevVGKzsOf0XChFOlmw/SIliujAjlyAmGBIUSZtTW25sc2jdgZM
|
||||
R5GOW+TU
|
||||
|
||||
Name: res/pu.png
|
||||
SHA-384-Digest: Odnk7y7M22cukHGMnq6xppVbOBGSPhc8lGilUkHDsMeSFXo4gwAw+pac
|
||||
X+EEvbW3
|
||||
|
||||
Name: assets/images/ic_setting.svg
|
||||
SHA-384-Digest: YUW7csCLmXQ/sVc4XcM3vA5rArNsmjRXAEC3p8PZOza2EcSAvAUgtEcU
|
||||
UEAUM175
|
||||
|
||||
Name: res/Ep.png
|
||||
SHA-384-Digest: XQ5vfXXFZqaQleQvX9QJ/GVs+Df4WWtp10JVWQUMD6CJDrI6zJyxf7Z/
|
||||
eOEo8/ji
|
||||
|
||||
Name: res/vu.png
|
||||
SHA-384-Digest: gUMgkYdfRG00msqJBJnFgIZ6MJFD9mCuSasJ0pDgc/4bnF7y/TWAGaLk
|
||||
xKFqEQdm
|
||||
|
||||
Name: res/x7.png
|
||||
SHA-384-Digest: +0MZom83oLStwTauEYlIMDfNmVdnWVp0/0GtD50bzI5sl75rlkPCn/wu
|
||||
G1xMv+rK
|
||||
|
||||
Name: res/QN1.xml
|
||||
SHA-384-Digest: YD9lxm/Q+V8VYo9sB+Zy9hSKiMLf+jEwk/yJaV/fY2WbMUVciPnoQOop
|
||||
fjSJK2nT
|
||||
|
||||
Name: res/eM.xml
|
||||
SHA-384-Digest: CoOsRmp78MLvkF4P9p+mDSQK1tIj5zwh3zV+h6YtMU3J2Syuw4i0fNwh
|
||||
FBObrC2H
|
||||
|
||||
Name: res/f_.xml
|
||||
SHA-384-Digest: 7AF6MSPU+lUeKcs3+1aIH+VEp5nBPZbcV8KFQmvkbTyJTYoGXdVzUgNP
|
||||
NF2RYpnl
|
||||
|
||||
Name: org/mozilla/javascript/resources/Messages_zh_CN.properties
|
||||
SHA-384-Digest: DazikSii+NdyQUbrbFMSVsPrJmRbhWLjxBb835JpNQ3yiRJqpU4fKVdg
|
||||
WiFJQU+R
|
||||
|
||||
Name: res/kz.xml
|
||||
SHA-384-Digest: R+sMSdZLrMy3GHPiu0NLkX7GLmO71vEiT6xJVOc7CtMPd36LGcuRKN1+
|
||||
4TnhsTkn
|
||||
|
||||
Name: res/color/material_personalized_hint_foreground_inverse.xml
|
||||
SHA-384-Digest: GwHHDDhtilyCoM6ORUk/XtW+ifwGy9F6fsmW02o1zi7GWUeVgTImNipR
|
||||
tw3W5jRR
|
||||
|
||||
Name: res/4H.xml
|
||||
SHA-384-Digest: qoGkmbOhKMRJD+Ia55gNCFp8MSbnBta8eZ1jngBf4h2JmzCONGGYorm8
|
||||
bhVB8h69
|
||||
|
||||
Name: res/nX.xml
|
||||
SHA-384-Digest: qHDvZm67et9V5cH5n41Iri7sZeh/J8c8C7actjSqg/bn51JCaI1oHZqP
|
||||
b4+0rPeh
|
||||
|
||||
Name: res/9p.xml
|
||||
SHA-384-Digest: 51lSNPpOYTP9GdWgWM0T10zjYtzUrieP9MVJ9+a2qUa2yDFmGDPL5nfI
|
||||
ErcjO6Fr
|
||||
|
||||
Name: res/vL.9.png
|
||||
SHA-384-Digest: PgU2SAFvgniXEsZPNd8/4vcAjMZLdpPxllLAni6F90BtyNVAGbbL4E5Q
|
||||
1i6U63x8
|
||||
|
||||
Name: res/g3.xml
|
||||
SHA-384-Digest: bANqkZwha/GoXIbJV2VZdpAoJS43ByqoHMgSVWhcr2BN7dMh/26W853n
|
||||
yiYARC1d
|
||||
|
||||
Name: res/Av.xml
|
||||
SHA-384-Digest: BkE8hodQYtv/3VxskdhodLhrf+HYZWdFFWye/tFAzbvwHWdJmXAaJFZb
|
||||
u7wvTxpl
|
||||
|
||||
Name: res/BW.xml
|
||||
SHA-384-Digest: NnbWr9LpN2cyBSWOtxfOS8HCzm/41X9jyKd6zX3RKWuhqgJioSqCbNap
|
||||
guPBLEk1
|
||||
|
||||
Name: res/9X.9.png
|
||||
SHA-384-Digest: ayKVlQ6QlmDlLO/qMtCpHiFDl9icQx10foh0mPNKHhzTwXhCmlEJRThT
|
||||
rnxBPL3V
|
||||
|
||||
Name: res/vG.xml
|
||||
SHA-384-Digest: aV3RImJbR72JnehyhgD+gChEcUU4+cNuwK+Fp86gfoYeAlKlRCvddO0P
|
||||
XEaXDQgy
|
||||
|
||||
Name: org/bouncycastle/x509/CertPathReviewerMessages.properties
|
||||
SHA-384-Digest: q2eJ99gIk/wDO2JKAPjwBWgK5u2NsmXlsodFSa0/fLZntoI7F2Vou30c
|
||||
NDKW/Jfb
|
||||
|
||||
Name: res/color/mtrl_navigation_item_icon_tint.xml
|
||||
SHA-384-Digest: AcBTGF+zMYn1BVyP9pdULFH605dDIAmhQGugeQ28N9DgtijZ0DRol/PC
|
||||
fazwuM1a
|
||||
|
||||
Name: res/color/mtrl_calendar_item_stroke_color.xml
|
||||
SHA-384-Digest: rEx9VyCjBoozAm9JUMsmutc09tlJLjYFvNuHT2KIybKJR49qiKNZgd3f
|
||||
wWvCE0Bo
|
||||
|
||||
Name: res/Sh.xml
|
||||
SHA-384-Digest: COCRKF/YXSrOIw79EG2WdDZ7m/ehqEpjDpJV92qPRZJIKBgznXIzHm8F
|
||||
/lnW4ShJ
|
||||
|
||||
Name: res/yY.9.png
|
||||
SHA-384-Digest: 5+bxfMC2U93waFWwH9MwCXeNTi+FGsXdqWoDdox/oobBc0nBwXcUE2O3
|
||||
2BHtGW7r
|
||||
|
||||
Name: res/uu.9.png
|
||||
SHA-384-Digest: WjZiIce0tzYeaQ4e+sdO47GyVTZNuIuk9ykbPtmaDuB+fuvsFyiHgs50
|
||||
FB8m86bN
|
||||
|
||||
Name: res/color/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: VNE7f8HgWX8izVoB/t0eWg7pFnj3ZujChzqjrCV5Jnoz9SIgnPsKqRYu
|
||||
jOLjeQsx
|
||||
|
||||
Name: META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version
|
||||
SHA-384-Digest: PXzK2spioJlSlZRBDGoLaM6Z2YO/aKwbuyz9WLXVQ8gg5wroeYXW2v2L
|
||||
UKZ9Ma+k
|
||||
|
||||
Name: res/f2.png
|
||||
SHA-384-Digest: 88JP2whB7GTOCWBD+4+5DMXLJfJiuW2E66NnUU6jqgSEk+ydwOupNrzi
|
||||
8TDEsDEA
|
||||
|
||||
Name: res/W51.png
|
||||
SHA-384-Digest: cwNTjCOytzKoLYSrm8KIOYa8QRCuY1YJwWsgxSBEHaesocxGMByPI63m
|
||||
GdqpxMTm
|
||||
|
||||
Name: res/color/m3_chip_ripple_color.xml
|
||||
SHA-384-Digest: 2ZBFY2c1PBQBeQlk+ripRJ/ChnyKKOgohhOE0ekkwZIy1RvhP3gVNY06
|
||||
17I+YvX4
|
||||
|
||||
Name: res/OX.png
|
||||
SHA-384-Digest: QzPJN2C1dIpXdG1+qSyVyrGKjmE7koPhJvVqp1/5qG+HKsjzE5Fu4S4a
|
||||
/05n/r/5
|
||||
|
||||
Name: res/RV.png
|
||||
SHA-384-Digest: SyxsH1NUo2ukaKfbfSMIaLLheLocoUu/Zh2CWAeqGpgETrlC/0wAmAxO
|
||||
7AQ7Cbxf
|
||||
|
||||
Name: META-INF/androidx.lifecycle_lifecycle-process.version
|
||||
SHA-384-Digest: tb4zvrKyt+xD3SBimsm9zyBy8bwKU6SXKnmc/Jz97d0UsyAumnGQOQWY
|
||||
rjLUNZOV
|
||||
|
||||
Name: res/color/mtrl_on_primary_text_btn_text_color_selector.xml
|
||||
SHA-384-Digest: L7fSGmHopoYZJQsPjzZkXBjDPV17wnPU9KooPO8dAixLloe6mlTdTfH7
|
||||
3LH0L0vA
|
||||
|
||||
Name: res/ZM.png
|
||||
SHA-384-Digest: 58XCczHX1r1XyyPEPSsqqx4Xnuu5OZ01uEYQjw+coFmsKq5Js9720Cbf
|
||||
MdNj2QmX
|
||||
|
||||
Name: res/ar.png
|
||||
SHA-384-Digest: On1U7cA9ZzzIrsFR1zBZTj7FxpWYLbk+nzgsaJoZPXV8a+bYwAb5Fsu6
|
||||
HkWE9HDA
|
||||
|
||||
Name: res/UP.xml
|
||||
SHA-384-Digest: BlkJQJiwCWEda9+zsqkb95AvVYDHJB+nxQVbD7A7pR/ZR81LvJCmMoeh
|
||||
nTgzEQCV
|
||||
|
||||
Name: res/V1.xml
|
||||
SHA-384-Digest: eT50vpMM9SefBugS8haAfJyYQl9umQOxue0y5oIwz/neRe1Qkwokbhek
|
||||
0R2ooDGu
|
||||
|
||||
Name: META-INF/services/java.security.Provider
|
||||
SHA-384-Digest: rNzpHZ9RvVTqROYb/UEuShmZFaoY6/2S97fItrm/bVHmFeZfQ6RqXGSN
|
||||
qz7xlZ69
|
||||
|
||||
Name: res/zp.xml
|
||||
SHA-384-Digest: b7DBEEKAVpPb4FrSml7bo8GNS9LflrU60LpB16Kxqfq4aRPkULzDrPGh
|
||||
nn4HhfTP
|
||||
|
||||
Name: res/hG.xml
|
||||
SHA-384-Digest: vzF4mfxUsmXzAN9sfYsgtv5PR3m6IgngTkWk2hBwIaAn3lXDqkQbIG35
|
||||
9T4Q2197
|
||||
|
||||
Name: res/cc.xml
|
||||
SHA-384-Digest: OYKdNG6llrFjlzYHQh5SIy4Z68tmRFenqfPi6nqqDNEJW0El2bSAPDAv
|
||||
HnBzsTLd
|
||||
|
||||
Name: res/3z.png
|
||||
SHA-384-Digest: bUfIbUn5+0ho7BpB9xUBxS2PYLAsAdHqFJBB9r4iff3t3rZefp2SP3UK
|
||||
3dCK6+Sy
|
||||
|
||||
Name: res/0X.png
|
||||
SHA-384-Digest: nG5UM96OwhjhVD6GR8TcaoUkj/IEk5be2cTMtRETIgE1+shrO7QNRVsE
|
||||
+kmtj+9I
|
||||
|
||||
Name: res/EH.png
|
||||
SHA-384-Digest: TZzuGJclMHHLTd9kJGnzv5jryDq5lCgJAbpE9aIfIgFIy1RPYr8XxOWx
|
||||
VyZ3fZ05
|
||||
|
||||
Name: res/Z8.png
|
||||
SHA-384-Digest: jTcBitc6etJaSS8EU3Yczn0psI6wJVzyzsHLECmaWhua1OoZTYDy3df5
|
||||
1z45r9Ha
|
||||
|
||||
Name: res/o_.9.png
|
||||
SHA-384-Digest: P24U0g1+yxSCQKtCLJeLh2GoKU8QAq3++MpfOdFTyia94CB3MumFSxK3
|
||||
Pyzvr+uQ
|
||||
|
||||
Name: res/V5.png
|
||||
SHA-384-Digest: Eq9HN2Mm5yKqOpww+RwRiN5rJ/A1OS3l+omHJdBb2Q0Hd1f2Jo40SDdR
|
||||
3wtOg1ow
|
||||
|
||||
Name: res/Fg1.xml
|
||||
SHA-384-Digest: clKubaOp6BfbZ+J/DZol1zyt+u1keemFyX1Hxw6vTZ4NXri1i2uyy4Hp
|
||||
fRxNd6Fv
|
||||
|
||||
Name: res/color/mtrl_switch_thumb_icon_tint.xml
|
||||
SHA-384-Digest: ttA2Ga0ZSNcsZWoTSIJOLpLsI7+VXWx47ha/aapTOSXElppc6URcu5uh
|
||||
Dtvj4GBS
|
||||
|
||||
Name: META-INF/androidx.viewpager_viewpager.version
|
||||
SHA-384-Digest: eTlY+O+SF4rzkafvD0RbGgC2MIz0yLg6L2Y0RaGdrcML03buuVbD+KFS
|
||||
YXiiEv8T
|
||||
|
||||
Name: res/y4.xml
|
||||
SHA-384-Digest: eFvvGIC/pa78C7p6+EbXCfMmERH+AnNaHgp2yGClPHG2a8bq5GfJ+DxM
|
||||
iwJKBnQC
|
||||
|
||||
Name: res/Y3.png
|
||||
SHA-384-Digest: +KsHZKNK4FX7svi07SyrT0Zv8OHkqD61cJhDJt04GwiWv6ouAtrQVRUg
|
||||
pNrgYurQ
|
||||
|
||||
Name: res/_U.png
|
||||
SHA-384-Digest: QkjavLoPqkHm555GjrYRYhYKZ/TXE8ZTW8AiXck0kQOS2FQ87kDhR97q
|
||||
3OvrbKM8
|
||||
|
||||
Name: META-INF/androidx.cardview_cardview.version
|
||||
SHA-384-Digest: VlWO/SAPFtUyoIeWVHUdy+65wUvbFYIGSSBw51w/9d52gmTToaRS8qpR
|
||||
gi95Yv2W
|
||||
|
||||
Name: res/n0.xml
|
||||
SHA-384-Digest: XI3vI0bCWbAhSz0qCm54YzWWLLyOLewQEg8YNzdzzwX3bYgljt/dc3xs
|
||||
eTKWfxzi
|
||||
|
||||
Name: res/RV.ttf
|
||||
SHA-384-Digest: xOTLd2+7QLw0XGhi33wDzGaTSTUdJls4TrbyKiSJoQSSimr0eGiz0Pla
|
||||
yShHNI/A
|
||||
|
||||
Name: res/color/mtrl_btn_text_color_selector.xml
|
||||
SHA-384-Digest: kNWWbt/OF2HCPAnRPLEzOCr0/fy5PwMrLh7bIxjbINt1dACbAzOeku26
|
||||
uCpgwiRw
|
||||
|
||||
Name: res/vM.png
|
||||
SHA-384-Digest: RtOC9HwgslPlR1Jl5TBG9KhEOvU2101UpNUWjHlXN3B62FMM2M5kXqix
|
||||
XZ3GykAK
|
||||
|
||||
Name: res/PL.png
|
||||
SHA-384-Digest: u50XejDXUtgmYJUy7isJbxklOEJcaLLlg7GTF4H5Pn2t61jWTSq7IA7Y
|
||||
ivo7s126
|
||||
|
||||
Name: res/Q-.png
|
||||
SHA-384-Digest: huxCWvIiZs5WG9U+1d3b+bEOr+FMdCpn+wgQT2aGjELRZTvKGoJPV0Hu
|
||||
9sbKSCMf
|
||||
|
||||
Name: lib/arm64-v8a/libcronet.76.0.3809.111.so
|
||||
SHA-384-Digest: 0PgmQEAn6r5jyp1BXBWcmRb4CVoaS1+IY3Q5Hxe+SseFyDOgqi9MIQ5A
|
||||
YhNGS8MX
|
||||
|
||||
Name: res/2S.png
|
||||
SHA-384-Digest: sZGG4BK6IlBgOLGzbvRAcQCR1+FN9bIOK5zFoVA3m8fDQ1SNOKkzJFwn
|
||||
7VepkYEB
|
||||
|
||||
Name: META-INF/androidx.coordinatorlayout_coordinatorlayout.version
|
||||
SHA-384-Digest: sNC3JJf9bXEFwzgax/iNZpcn0rC14jw9lm2kYx705tAo9d8hsIChNijf
|
||||
kkDpBVyB
|
||||
|
||||
Name: res/47.png
|
||||
SHA-384-Digest: UkhQOVOl4JIM96qxa3U8H7I3JA6F3FUKmJhNqTa/YqJHDsHfZFimuCrT
|
||||
/UWE0KVf
|
||||
|
||||
Name: res/GN.xml
|
||||
SHA-384-Digest: imL2GlZzmlcOeJaGghXsL/DY1dvRdT0DTYD3EM3mqLLlgeAblLTBhQad
|
||||
fPoSNC53
|
||||
|
||||
Name: res/color-v31/m3_ref_palette_dynamic_neutral_variant92.xml
|
||||
SHA-384-Digest: eE6trX2Ga/RmOhTaGy+AGg6Iegz/fCIRqL8J8iC0/80EcUYy6NUD0UAl
|
||||
se9gNL6u
|
||||
|
||||
Name: res/9x.png
|
||||
SHA-384-Digest: yjUNPEwtrDZM4I6X6r/9nplSHYyVqjSVW0UfM0/PZwoAoV++kZIbDv01
|
||||
q2v4oBkA
|
||||
|
||||
Name: res/o_.png
|
||||
SHA-384-Digest: x6wT0aZmSGqCuDkZeaOrmsEnnJ4hYjxgELGio4q5AOyoWiZ2s0QQog3t
|
||||
ItTg2JTa
|
||||
|
||||
Name: META-INF/kotlinx_coroutines_core.version
|
||||
SHA-384-Digest: 7jc5+d6JMuR0MBxtFsrj4EPPVd9Is4Qdq5KPSfcxh30VgyIIqJT2HeiP
|
||||
UxkYCrnv
|
||||
|
||||
Name: res/SJ.png
|
||||
SHA-384-Digest: 5S6f64TgVvDC7Lsu11XHQxtsCoug7HdpERLrOu0K0WvKI1ESyiWqtaW0
|
||||
5fZnsgmk
|
||||
|
||||
Name: res/g-1.png
|
||||
SHA-384-Digest: ZT29IxX8OA+rHxbW6+K9D7spAZgV8gnRZH44+L8pSfQab/FLbnjdw4Y4
|
||||
LdYTg0CW
|
||||
|
||||
Name: res/VN1.xml
|
||||
SHA-384-Digest: uswy8+CnUbbYtY10/4HLGw4GwzG6qxE8xI4LY0VxwnNJdvCjqnzsn1ve
|
||||
v8kcdpw4
|
||||
|
||||
Name: res/F8.xml
|
||||
SHA-384-Digest: lBtxrt7Z0fewmXazsXYOvFsjOBBSFwDKknhZjOndcDi+jzdUYgxhSABL
|
||||
/UjZw1L5
|
||||
|
||||
Name: res/GA.png
|
||||
SHA-384-Digest: lgB/et99CU8Ht0DcGJ4Y0iWLuVGqPIjRyxl/f5bcy9lhqGjsA2Fe/32o
|
||||
fthZ623y
|
||||
|
||||
Name: META-INF/androidx.annotation_annotation-experimental.version
|
||||
SHA-384-Digest: xjLWgfsCrtsNEmxBI3BJ/RmFPP/B6EoJnh9yDZ46ruMMQjt0yAV+cEzZ
|
||||
sGf0AawA
|
||||
|
||||
Name: res/49.png
|
||||
SHA-384-Digest: ItM7NNq7Mslq5vEOoHb9SfcFFisfDUEwNeKPGXawf6AcmC+8nCaq2ZlP
|
||||
0rsicy28
|
||||
|
||||
Name: res/6z.png
|
||||
SHA-384-Digest: wKocOUiLriw1ymDNgCVX2tcCxcrGl84ZLKJQsgmtqTCtQsrZ0GEgWrEU
|
||||
oS6Ih4Uz
|
||||
|
||||
Name: res/color/material_slider_inactive_track_color.xml
|
||||
SHA-384-Digest: ookzSC19C0xOgk1r2YvEl/jzdBmWmygiDBS/CXpmXeL+w6UiCBlD1xmE
|
||||
uEnu8JiH
|
||||
|
||||
Name: res/color/m3_text_button_ripple_color_selector.xml
|
||||
SHA-384-Digest: SIFdg1P7B5bzUKdGSjgPK3/zY4eKJ27ooIifNmo0q0r92lnKTg1zgAtu
|
||||
OR2SR/5n
|
||||
|
||||
Name: res/0Z.png
|
||||
SHA-384-Digest: +G7d+7QrSESKqyWF5cXLY43PEGO/Xn1c2ItWfV04KoPjoESsFFOq0jwX
|
||||
9rsUTSiV
|
||||
|
||||
Name: assets/js/script.js
|
||||
SHA-384-Digest: ewBhBji8NMKsk/xBfZVGyfN7VtNOGsdKDtSCysVrwFweRlYfzjPcZk23
|
||||
zeGYK4u1
|
||||
|
||||
Name: classes3.dex
|
||||
SHA-384-Digest: xWazOD16BzKwwYtbvwTFBobv3e0R47tPNnYYVEeVscE6Bme/d4hldGK6
|
||||
hxCWEZZQ
|
||||
|
||||
Name: res/YN.webp
|
||||
SHA-384-Digest: rd0XtlUtXib1eYG/E2Lz0ZjlLtXTkoHiefT5TVuTjhFLFEp0CDMxwhXE
|
||||
1YkQv3o1
|
||||
|
||||
Name: res/ut.9.png
|
||||
SHA-384-Digest: JYhDfObetmr5m9IG/OHKfj9YEt6bLBGpn2CuM9T7y+q9dQPckne/LuHq
|
||||
xWecLo0n
|
||||
|
||||
Name: res/3R.xml
|
||||
SHA-384-Digest: eKBRPtyoMOBfAzJaLUNK3lXrueOj2F6/OF0bPsiK/bfHctJKfYCvHRff
|
||||
uJty28tt
|
||||
|
||||
Name: res/color-v23/abc_tint_switch_track.xml
|
||||
SHA-384-Digest: M7UXgI0otjK3oTkQbLeRYAYyy/SLgSslgik/nAOP5DZsD7+VFwT7Ta0X
|
||||
CrDpRZff
|
||||
|
||||
Name: META-INF/native-image/okhttp/okhttp/resource-config.json
|
||||
SHA-384-Digest: 1Slfz83Mk94Dhaxr58hMlyRKBewuHu67p9ydJpcgQdeXJUhOskKqW990
|
||||
C98W33ZD
|
||||
|
||||
Name: res/qx.xml
|
||||
SHA-384-Digest: ucCTY2wotRSa19DuL18N6EmrDVDPccpKqt82xA6qgOIfo2QGtMqC7f1K
|
||||
rta6EWfD
|
||||
|
||||
Name: res/rY.xml
|
||||
SHA-384-Digest: H+Ix4/OPK8RPOSc64+GhDJey8LwTiyiNL4Ebto2Hoq85Y2ABxiTPzxrB
|
||||
KdfQk5L3
|
||||
|
||||
Name: assets/index.html
|
||||
SHA-384-Digest: +J8RJ2w2SV3g5KDb9YTYo9joCUukEYYnR8myOulFSZtIfdCBGIUVoadY
|
||||
ccBv2ccr
|
||||
|
||||
Name: res/d7.png
|
||||
SHA-384-Digest: Fa46LatTcXENwKpguod4OHf5WWQtFPPMNTS0ocxP6Am0ettCAD17762K
|
||||
+8xfo9QN
|
||||
|
||||
Name: org/eclipse/jetty/favicon.ico
|
||||
SHA-384-Digest: weucH7CvvkaODAvjpvsmAijW5M0wYj1A7NpzhWF3Q1WmRFjaLGWtmdcb
|
||||
J3+b6WiF
|
||||
|
||||
Name: res/A0.xml
|
||||
SHA-384-Digest: +A35ndfeyjxMLjJfjkmALpA8i1v5OEQW3rMahQLdTK9Akf0SBvlBKvT8
|
||||
UHAcNVP+
|
||||
|
||||
Name: res/0C.xml
|
||||
SHA-384-Digest: GGJMBO+zlUwCw2T8VN9ysR0OQal8WlwmalLVNYTELNq7W42r03bkySdU
|
||||
OtlJWT+p
|
||||
|
||||
Name: res/Gt.xml
|
||||
SHA-384-Digest: Jrmoh6HtdSE+4CJGCWtxJb9+ulJ8VlgKkRPTNgJJ1TXjQm+2tC9wNVAJ
|
||||
W7hPi7E6
|
||||
|
||||
Name: res/4F.xml
|
||||
SHA-384-Digest: HiPuHkA66+FBOImrNvF7nSvUmyzAKhFjNCtK/W0qdvci0pglGgnzNXKj
|
||||
iYfI3y7t
|
||||
|
||||
Name: res/gy.xml
|
||||
SHA-384-Digest: wdBAfUrPJhhQctnSgxyxNb6ds3kCmtVtAhJle4Sm+3mfIZn8EiacJfSp
|
||||
N7yGnl8J
|
||||
|
||||
Name: res/a5.xml
|
||||
SHA-384-Digest: onorOSxgDb8XUer6ilN0pB8r4CUxzl3UxcNmjfUgbpfsDtNdrJ4CJtyF
|
||||
+J7SBtoO
|
||||
|
||||
Name: res/cv.xml
|
||||
SHA-384-Digest: w5rAYu8sWOkoSFJo/eI2kk7U77PysBeLvvXHTrN/thFiJVVbw1sZu3WZ
|
||||
8Oqtzl8p
|
||||
|
||||
Name: res/jW.png
|
||||
SHA-384-Digest: Blr8BQnLYd4GzBV/eBApjOwWjEBNdnApcGtXxZ/y+/vkUG09/yQin3CG
|
||||
N24IcZui
|
||||
|
||||
Name: res/my.png
|
||||
SHA-384-Digest: bWh2JInly/E+xkkanFmAXvahy4myKkc5AvlxYKjo3Zkx6+jghqP8eDtQ
|
||||
PcnytmzU
|
||||
|
||||
Name: res/YF.png
|
||||
SHA-384-Digest: 9ovNByAzuQ4p4umNC1FtFUgp5DiVFIU7r4UnGvajC4GicV6DNHm9jGUX
|
||||
UX2fvkzY
|
||||
|
||||
Name: res/nz.xml
|
||||
SHA-384-Digest: zl0Pj89bZDSfGCHXpxSMuTiTEJ8ylNjBkISI+54tzdV0rvePCPNl/Ulj
|
||||
OeRjURlu
|
||||
|
||||
Name: res/color-v23/abc_tint_btn_checkable.xml
|
||||
SHA-384-Digest: FQuIsAdY0f8ZeS9ncAuE+nFwEwHymBMCHNzwO1Mhq2Q1vWvi9x8nwc47
|
||||
t18lyUCk
|
||||
|
||||
Name: res/2d.png
|
||||
SHA-384-Digest: +sp/LnbRwGY4+W/ItbZLm8LRvmOaa9KSCZHQVjCXuMNSB8ezcF6xKPDw
|
||||
KI3nUNtk
|
||||
|
||||
Name: res/3E.png
|
||||
SHA-384-Digest: DuX0tfObMeIx37dbDwoWJmClExNvGkGXKKC2mJTt4Ryl+7bp8Cu1j3gn
|
||||
kVJPPBs5
|
||||
|
||||
Name: res/qA.xml
|
||||
SHA-384-Digest: bEb8F9PEJHSzTK6RlPZJDnh1qcaiVQ7lnR8bTZNMb2X6V1YzqNjaUGKn
|
||||
2MX2WFSz
|
||||
|
||||
Name: res/lP.9.png
|
||||
SHA-384-Digest: yefbBYp1Csh3wATSA1QNwzihN2XYXsCb1illIXqujsrBxdaUh+9m4Q4T
|
||||
Ybw+LTRd
|
||||
|
||||
Name: res/CQ.png
|
||||
SHA-384-Digest: 0oPf3U0tvPWVD9idBg7YBArtkrBT799+Ts3mDXPToPluS8I6z80P3bGW
|
||||
yTKJEVqf
|
||||
|
||||
Name: res/WI.xml
|
||||
SHA-384-Digest: J26qqdMvtlMd33NfQwBSIjeppfMwDLTAmnnUJfI3nITwKJ7Veg5Yx6LE
|
||||
6ShdEJw0
|
||||
|
||||
Name: res/color/type_text_color.xml
|
||||
SHA-384-Digest: fMnpdzeImHuSE5xkMsFUJ+oZfJo/RctO5j9WnmByZD7mjURxQb+jxi1+
|
||||
Rvo+o8N0
|
||||
|
||||
Name: res/eO.png
|
||||
SHA-384-Digest: eCiTz5pcXbuGXAOcyQ8Xuni/mDyo5wGfRclH+HtIK5OOmx4b+wZhMklQ
|
||||
4BERCLgx
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
1.8.0
|
||||
@@ -1 +0,0 @@
|
||||
1.8.0
|
||||
@@ -1 +0,0 @@
|
||||
1.4.1
|
||||
@@ -1 +0,0 @@
|
||||
1.7.0
|
||||
@@ -1 +0,0 @@
|
||||
1.7.0
|
||||
@@ -1 +0,0 @@
|
||||
task ':arch:core:core-runtime:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.13.1
|
||||
@@ -1 +0,0 @@
|
||||
1.13.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
8.8.2
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.6
|
||||
@@ -1 +0,0 @@
|
||||
1.3.6
|
||||
@@ -1 +0,0 @@
|
||||
1.5.4
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-livedata-core-ktx:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-livedata-core:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-livedata:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-process:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-runtime-ktx:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-runtime:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-viewmodel-ktx:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-viewmodel-savedstate:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
task ':lifecycle:lifecycle-viewmodel:writeVersionFile' property 'version'
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.7.0
|
||||
@@ -1 +0,0 @@
|
||||
1.2.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.3.1
|
||||
@@ -1 +0,0 @@
|
||||
1.3.0
|
||||
@@ -1 +0,0 @@
|
||||
2.7.1
|
||||
@@ -1 +0,0 @@
|
||||
1.2.1
|
||||
@@ -1 +0,0 @@
|
||||
1.2.1
|
||||
@@ -1 +0,0 @@
|
||||
1.2.0
|
||||
@@ -1 +0,0 @@
|
||||
2.5.0
|
||||
@@ -1 +0,0 @@
|
||||
2.5.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.1
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.5.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.0
|
||||
@@ -1 +0,0 @@
|
||||
1.1.1
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
@@ -1,178 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
1.12.0
|
||||
@@ -1,21 +0,0 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2009-2025 Jonathan Hedley <https://jsoup.org/>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1 +0,0 @@
|
||||
1.7.3
|
||||
@@ -1 +0,0 @@
|
||||
1.7.3
|
||||
@@ -1,30 +0,0 @@
|
||||
#default mime types for nanohttpd, use META-INF/mimetypes.properties for user defined mimetypes
|
||||
css=text/css
|
||||
htm=text/html
|
||||
html=text/html
|
||||
xml=text/xml
|
||||
java=text/x-java-source, text/java
|
||||
md=text/plain
|
||||
txt=text/plain
|
||||
asc=text/plain
|
||||
gif=image/gif
|
||||
jpg=image/jpeg
|
||||
jpeg=image/jpeg
|
||||
png=image/png
|
||||
svg=image/svg+xml
|
||||
mp3=audio/mpeg
|
||||
m3u=audio/mpeg-url
|
||||
mp4=video/mp4
|
||||
ogv=video/ogg
|
||||
flv=video/x-flv
|
||||
mov=video/quicktime
|
||||
swf=application/x-shockwave-flash
|
||||
js=application/javascript
|
||||
pdf=application/pdf
|
||||
doc=application/msword
|
||||
ogg=application/x-ogg
|
||||
zip=application/octet-stream
|
||||
exe=application/octet-stream
|
||||
class=application/octet-stream
|
||||
m3u8=application/vnd.apple.mpegurl
|
||||
ts=video/mp2t
|
||||
@@ -1 +0,0 @@
|
||||
#mime types for nanohttpd, use a file like this for user defined mimetypes
|
||||
@@ -1 +0,0 @@
|
||||
Args = -H:+AddAllCharsets -H:EnableURLProtocols=http,https --enable-https --features=okhttp3.internal.graal.OkHttpFeature
|
||||
@@ -1,22 +0,0 @@
|
||||
[
|
||||
{
|
||||
"name": "kotlin.internal.jdk8.JDK8PlatformImplementations",
|
||||
"allDeclaredConstructors":true
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion",
|
||||
"allPublicMethods": true,
|
||||
"allDeclaredFields":true,
|
||||
"allDeclaredMethods":true,
|
||||
"allDeclaredConstructors":true
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion[]"
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion$Companion"
|
||||
},
|
||||
{
|
||||
"name": "kotlin.KotlinVersion$Companion[]"
|
||||
}
|
||||
]
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"resources": [
|
||||
{"pattern": "okhttp3/internal/publicsuffix/publicsuffixes.gz"}
|
||||
]
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
org.bouncycastle.jce.provider.BouncyCastleProvider
|
||||
org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider
|
||||
@@ -1 +0,0 @@
|
||||
org.mozilla.javascript.engine.RhinoScriptEngineFactory
|
||||
@@ -1 +0,0 @@
|
||||
kotlinx.coroutines.android.AndroidExceptionPreHandler
|
||||
@@ -1 +0,0 @@
|
||||
kotlinx.coroutines.android.AndroidDispatcherFactory
|
||||
@@ -1 +0,0 @@
|
||||
org.xmlpull.mxp1.MXParserFactory
|
||||
@@ -1,5 +0,0 @@
|
||||
repositories {
|
||||
system: GIT
|
||||
local_root_path: "$PROJECT_DIR"
|
||||
revision: "a03ac275211c5afa5764e9cd7724de5405f4d029"
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Import-Package: java.io;resolution:=optional,java.lang;resolution:=opt
|
||||
ional,java.lang.invoke;resolution:=optional,java.lang.ref;resolution:
|
||||
=optional,java.lang.reflect;resolution:=optional,java.math;resolution
|
||||
:=optional,java.net;resolution:=optional,java.nio;resolution:=optiona
|
||||
l,java.nio.channels;resolution:=optional,java.nio.charset;resolution:
|
||||
=optional,java.security;resolution:=optional,java.security.cert;resol
|
||||
ution:=optional,java.security.interfaces;resolution:=optional,java.se
|
||||
curity.spec;resolution:=optional,java.sql;resolution:=optional,java.t
|
||||
ext;resolution:=optional,java.util;resolution:=optional,java.util.con
|
||||
current;resolution:=optional,java.util.concurrent.atomic;resolution:=
|
||||
optional,java.util.logging;resolution:=optional,java.util.zip;resolut
|
||||
ion:=optional,javax.crypto;resolution:=optional,javax.crypto.interfac
|
||||
es;resolution:=optional,javax.crypto.spec;resolution:=optional,javax.
|
||||
naming;resolution:=optional,javax.naming.directory;resolution:=option
|
||||
al,javax.security.auth;resolution:=optional,javax.security.auth.callb
|
||||
ack;resolution:=optional,javax.security.auth.x500;resolution:=optiona
|
||||
l
|
||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Import-Package: java.io;resolution:=optional,java.lang;resolution:=opt
|
||||
ional,java.lang.invoke;resolution:=optional,java.lang.ref;resolution:
|
||||
=optional,java.lang.reflect;resolution:=optional,java.math;resolution
|
||||
:=optional,java.net;resolution:=optional,java.nio;resolution:=optiona
|
||||
l,java.nio.channels;resolution:=optional,java.nio.charset;resolution:
|
||||
=optional,java.security;resolution:=optional,java.security.cert;resol
|
||||
ution:=optional,java.security.interfaces;resolution:=optional,java.se
|
||||
curity.spec;resolution:=optional,java.sql;resolution:=optional,java.t
|
||||
ext;resolution:=optional,java.util;resolution:=optional,java.util.con
|
||||
current;resolution:=optional,java.util.concurrent.atomic;resolution:=
|
||||
optional,java.util.logging;resolution:=optional,java.util.zip;resolut
|
||||
ion:=optional,javax.crypto;resolution:=optional,javax.crypto.interfac
|
||||
es;resolution:=optional,javax.crypto.spec;resolution:=optional,javax.
|
||||
naming;resolution:=optional,javax.naming.directory;resolution:=option
|
||||
al,javax.security.auth;resolution:=optional,javax.security.auth.callb
|
||||
ack;resolution:=optional,javax.security.auth.x500;resolution:=optiona
|
||||
l
|
||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=15))"
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Import-Package: java.io;resolution:=optional,java.lang;resolution:=opt
|
||||
ional,java.lang.invoke;resolution:=optional,java.lang.ref;resolution:
|
||||
=optional,java.lang.reflect;resolution:=optional,java.math;resolution
|
||||
:=optional,java.net;resolution:=optional,java.nio;resolution:=optiona
|
||||
l,java.nio.channels;resolution:=optional,java.nio.charset;resolution:
|
||||
=optional,java.security;resolution:=optional,java.security.cert;resol
|
||||
ution:=optional,java.security.interfaces;resolution:=optional,java.se
|
||||
curity.spec;resolution:=optional,java.sql;resolution:=optional,java.t
|
||||
ext;resolution:=optional,java.util;resolution:=optional,java.util.con
|
||||
current;resolution:=optional,java.util.concurrent.atomic;resolution:=
|
||||
optional,java.util.logging;resolution:=optional,java.util.zip;resolut
|
||||
ion:=optional,javax.crypto;resolution:=optional,javax.crypto.interfac
|
||||
es;resolution:=optional,javax.crypto.spec;resolution:=optional,javax.
|
||||
naming;resolution:=optional,javax.naming.directory;resolution:=option
|
||||
al,javax.security.auth;resolution:=optional,javax.security.auth.callb
|
||||
ack;resolution:=optional,javax.security.auth.x500;resolution:=optiona
|
||||
l
|
||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=21))"
|
||||
|
||||
@@ -1,5576 +0,0 @@
|
||||
body {
|
||||
--weui-BTN-DISABLED-FONT-COLOR: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DISABLED-FONT-COLOR: hsla(0, 0%, 100%, 0.2);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DISABLED-FONT-COLOR: hsla(0, 0%, 100%, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-DEFAULT-BG: #f2f2f2;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-BG: hsla(0, 0%, 100%, 0.08);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-BG: hsla(0, 0%, 100%, 0.08);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-DEFAULT-COLOR: #06ae56;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-DEFAULT-ACTIVE-BG: #e6e6e6;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-ACTIVE-BG: hsla(0, 0%, 100%, 0.126);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-ACTIVE-BG: hsla(0, 0%, 100%, 0.126);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BTN-ACTIVE-MASK: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BTN-ACTIVE-MASK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-ACTIVE-MASK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"] {
|
||||
--weui-BTN-DEFAULT-COLOR: #018942;
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"][data-weui-theme="dark"] {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body[data-weui-mode="care"]:not([data-weui-theme="light"]) {
|
||||
--weui-BTN-DEFAULT-COLOR: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-DIALOG-LINE-COLOR: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-DIALOG-LINE-COLOR: hsla(0, 0%, 100%, 0.1);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-DIALOG-LINE-COLOR: hsla(0, 0%, 100%, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
line-height: 1.6;
|
||||
font-family: system-ui, -apple-system, Helvetica Neue, sans-serif;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
input,
|
||||
textarea {
|
||||
caret-color: #07c160;
|
||||
caret-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
::placeholder {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BG-0: #ededed;
|
||||
--weui-BG-1: #f7f7f7;
|
||||
--weui-BG-2: #fff;
|
||||
--weui-BG-3: #f7f7f7;
|
||||
--weui-BG-4: #4c4c4c;
|
||||
--weui-BG-5: #fff;
|
||||
--weui-FG-0: rgba(0, 0, 0, 0.9);
|
||||
--weui-FG-HALF: rgba(0, 0, 0, 0.9);
|
||||
--weui-FG-1: rgba(0, 0, 0, 0.5);
|
||||
--weui-FG-2: rgba(0, 0, 0, 0.3);
|
||||
--weui-FG-3: rgba(0, 0, 0, 0.1);
|
||||
--weui-FG-4: rgba(0, 0, 0, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #fa9d3b;
|
||||
--weui-YELLOW: #ffc300;
|
||||
--weui-GREEN: #91d300;
|
||||
--weui-LIGHTGREEN: #95ec69;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1485ee;
|
||||
--weui-PURPLE: #6467f0;
|
||||
--weui-WHITE: #fff;
|
||||
--weui-LINK: #576b95;
|
||||
--weui-TEXTGREEN: #06ae56;
|
||||
--weui-FG: #000;
|
||||
--weui-BG: #fff;
|
||||
--weui-TAG-TEXT-ORANGE: #fa9d3b;
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: #06ae56;
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: #10aeff;
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: rgba(0, 0, 0, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.6);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.3);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.6);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.3);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"] {
|
||||
--weui-BG-0: #ededed;
|
||||
--weui-BG-1: #f7f7f7;
|
||||
--weui-BG-2: #fff;
|
||||
--weui-BG-3: #f7f7f7;
|
||||
--weui-BG-4: #4c4c4c;
|
||||
--weui-BG-5: #fff;
|
||||
--weui-FG-0: #000;
|
||||
--weui-FG-HALF: #000;
|
||||
--weui-FG-1: rgba(0, 0, 0, 0.6);
|
||||
--weui-FG-2: rgba(0, 0, 0, 0.42);
|
||||
--weui-FG-3: rgba(0, 0, 0, 0.1);
|
||||
--weui-FG-4: rgba(0, 0, 0, 0.15);
|
||||
--weui-RED: #dc3636;
|
||||
--weui-ORANGE: #e17719;
|
||||
--weui-YELLOW: #bb8e00;
|
||||
--weui-GREEN: #4f8400;
|
||||
--weui-LIGHTGREEN: #2e8800;
|
||||
--weui-BRAND: #018942;
|
||||
--weui-BLUE: #007dbb;
|
||||
--weui-INDIGO: #0075e2;
|
||||
--weui-PURPLE: #6265f1;
|
||||
--weui-WHITE: #fff;
|
||||
--weui-LINK: #576b95;
|
||||
--weui-TEXTGREEN: #06ae56;
|
||||
--weui-FG: #000;
|
||||
--weui-BG: #fff;
|
||||
--weui-TAG-TEXT-ORANGE: #e17719;
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(225, 119, 25, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: #06ae56;
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: #007dbb;
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(0, 125, 187, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: rgba(0, 0, 0, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body[data-weui-mode="care"]:not([data-weui-theme="light"]) {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.85);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.65);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.55);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.35);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-mode="care"][data-weui-theme="dark"] {
|
||||
--weui-BG-0: #111;
|
||||
--weui-BG-1: #1e1e1e;
|
||||
--weui-BG-2: #191919;
|
||||
--weui-BG-3: #202020;
|
||||
--weui-BG-4: #404040;
|
||||
--weui-BG-5: #2c2c2c;
|
||||
--weui-FG-0: hsla(0, 0%, 100%, 0.85);
|
||||
--weui-FG-HALF: hsla(0, 0%, 100%, 0.65);
|
||||
--weui-FG-1: hsla(0, 0%, 100%, 0.55);
|
||||
--weui-FG-2: hsla(0, 0%, 100%, 0.35);
|
||||
--weui-FG-3: hsla(0, 0%, 100%, 0.1);
|
||||
--weui-FG-4: hsla(0, 0%, 100%, 0.15);
|
||||
--weui-RED: #fa5151;
|
||||
--weui-ORANGE: #c87d2f;
|
||||
--weui-YELLOW: #cc9c00;
|
||||
--weui-GREEN: #74a800;
|
||||
--weui-LIGHTGREEN: #3eb575;
|
||||
--weui-BRAND: #07c160;
|
||||
--weui-BLUE: #10aeff;
|
||||
--weui-INDIGO: #1196ff;
|
||||
--weui-PURPLE: #8183ff;
|
||||
--weui-WHITE: hsla(0, 0%, 100%, 0.8);
|
||||
--weui-LINK: #7d90a9;
|
||||
--weui-TEXTGREEN: #259c5c;
|
||||
--weui-FG: #fff;
|
||||
--weui-BG: #000;
|
||||
--weui-TAG-TEXT-ORANGE: rgba(250, 157, 59, 0.6);
|
||||
--weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
|
||||
--weui-TAG-TEXT-GREEN: rgba(6, 174, 86, 0.6);
|
||||
--weui-TAG-BACKGROUND-GREEN: rgba(6, 174, 86, 0.1);
|
||||
--weui-TAG-TEXT-BLUE: rgba(16, 174, 255, 0.6);
|
||||
--weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
|
||||
--weui-TAG-TEXT-BLACK: hsla(0, 0%, 100%, 0.5);
|
||||
--weui-TAG-BACKGROUND-BLACK: hsla(0, 0%, 100%, 0.05);
|
||||
}
|
||||
|
||||
body {
|
||||
--weui-BG-COLOR-ACTIVE: #ececec;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] {
|
||||
--weui-BG-COLOR-ACTIVE: #373737;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) {
|
||||
--weui-BG-COLOR-ACTIVE: #373737;
|
||||
}
|
||||
}
|
||||
|
||||
[class*=" weui-icon-"][class*=" weui-icon-"],
|
||||
[class*=" weui-icon-"][class^="weui-icon-"],
|
||||
[class^="weui-icon-"][class*=" weui-icon-"],
|
||||
[class^="weui-icon-"][class^="weui-icon-"] {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 10px;
|
||||
width: 2.4em;
|
||||
height: 2.4em;
|
||||
-webkit-mask-position: 50% 50%;
|
||||
mask-position: 50% 50%;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
}
|
||||
|
||||
.weui-icon-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-download {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.25%2012.04l-1.72-1.72-1.06%201.06%202.828%202.83a1%201%200%20001.414-.001l2.828-2.828-1.06-1.061-1.73%201.73V7h-1.5v5.04zm0-5.04V2h1.5v5h6.251c.55%200%20.999.446.999.996v13.008a.998.998%200%2001-.996.996H4.996A.998.998%200%20014%2021.004V7.996A1%201%200%20014.999%207h6.251z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.25%2012.04l-1.72-1.72-1.06%201.06%202.828%202.83a1%201%200%20001.414-.001l2.828-2.828-1.06-1.061-1.73%201.73V7h-1.5v5.04zm0-5.04V2h1.5v5h6.251c.55%200%20.999.446.999.996v13.008a.998.998%200%2001-.996.996H4.996A.998.998%200%20014%2021.004V7.996A1%201%200%20014.999%207h6.251z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-info {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.75-12v7h1.5v-7h-1.5zM12%209a1%201%200%20100-2%201%201%200%20000%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.75-12v7h1.5v-7h-1.5zM12%209a1%201%200%20100-2%201%201%200%20000%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-safe-success {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.6C315.5%2046.7%20180.4%2093.1%2057.6%20132c0%20129.3.2%20231.7.2%20339.7%200%20304.2%20248.3%20471.6%20443.1%20523.7C695.7%20943.3%20944%20775.9%20944%20471.7c0-108%20.2-210.4.2-339.7C821.4%2093.1%20686.3%2046.7%20500.9%204.6zm248.3%20349.1l-299.7%20295c-2.1%202-5.3%202-7.4-.1L304.4%20506.1c-2-2.1-2.3-5.7-.6-8l18.3-24.9c1.7-2.3%205-2.8%207.2-1l112.2%2086c2.3%201.8%206%201.7%208.1-.1l274.7-228.9c2.2-1.8%205.7-1.7%207.7.3l17%2016.8c2.2%202.1%202.2%205.3.2%207.4z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23070202%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.6C315.5%2046.7%20180.4%2093.1%2057.6%20132c0%20129.3.2%20231.7.2%20339.7%200%20304.2%20248.3%20471.6%20443.1%20523.7C695.7%20943.3%20944%20775.9%20944%20471.7c0-108%20.2-210.4.2-339.7C821.4%2093.1%20686.3%2046.7%20500.9%204.6zm248.3%20349.1l-299.7%20295c-2.1%202-5.3%202-7.4-.1L304.4%20506.1c-2-2.1-2.3-5.7-.6-8l18.3-24.9c1.7-2.3%205-2.8%207.2-1l112.2%2086c2.3%201.8%206%201.7%208.1-.1l274.7-228.9c2.2-1.8%205.7-1.7%207.7.3l17%2016.8c2.2%202.1%202.2%205.3.2%207.4z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23070202%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-safe-warn {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.5c-185.4%2042-320.4%2088.4-443.2%20127.3%200%20129.3.2%20231.7.2%20339.6%200%20304.1%20248.2%20471.4%20443%20523.6%20194.7-52.2%20443-219.5%20443-523.6%200-107.9.2-210.3.2-339.6C821.3%2092.9%20686.2%2046.5%20500.9%204.5zm-26.1%20271.1h52.1c5.8%200%2010.3%204.7%2010.1%2010.4l-11.6%20313.8c-.1%202.8-2.5%205.2-5.4%205.2h-38.2c-2.9%200-5.3-2.3-5.4-5.2L464.8%20286c-.2-5.8%204.3-10.4%2010-10.4zm26.1%20448.3c-20.2%200-36.5-16.3-36.5-36.5s16.3-36.5%2036.5-36.5%2036.5%2016.3%2036.5%2036.5-16.4%2036.5-36.5%2036.5z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23020202%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.5c-185.4%2042-320.4%2088.4-443.2%20127.3%200%20129.3.2%20231.7.2%20339.6%200%20304.1%20248.2%20471.4%20443%20523.6%20194.7-52.2%20443-219.5%20443-523.6%200-107.9.2-210.3.2-339.6C821.3%2092.9%20686.2%2046.5%20500.9%204.5zm-26.1%20271.1h52.1c5.8%200%2010.3%204.7%2010.1%2010.4l-11.6%20313.8c-.1%202.8-2.5%205.2-5.4%205.2h-38.2c-2.9%200-5.3-2.3-5.4-5.2L464.8%20286c-.2-5.8%204.3-10.4%2010-10.4zm26.1%20448.3c-20.2%200-36.5-16.3-36.5-36.5s16.3-36.5%2036.5-36.5%2036.5%2016.3%2036.5%2036.5-16.4%2036.5-36.5%2036.5z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23020202%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm-1.172-6.242l5.809-5.808.848.849-5.95%205.95a1%201%200%2001-1.414%200L7%2012.426l.849-.849%202.98%202.98z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm-1.172-6.242l5.809-5.808.848.849-5.95%205.95a1%201%200%2001-1.414%200L7%2012.426l.849-.849%202.98%202.98z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success-no-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-waiting {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.75%2011.38V6h-1.5v6l4.243%204.243%201.06-1.06-3.803-3.804zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.75%2011.38V6h-1.5v6l4.243%204.243%201.06-1.06-3.803-3.804zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-waiting-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.6%2011.503l3.891%203.891-.848.849L11.4%2012V6h1.2v5.503zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.6%2011.503l3.891%203.891-.848.849L11.4%2012V6h1.2v5.503zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-warn {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.763-15.864l.11%207.596h1.305l.11-7.596h-1.525zm.759%2010.967c.512%200%20.902-.383.902-.882%200-.5-.39-.882-.902-.882a.878.878%200%2000-.896.882c0%20.499.396.882.896.882z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.763-15.864l.11%207.596h1.305l.11-7.596h-1.525zm.759%2010.967c.512%200%20.902-.383.902-.882%200-.5-.39-.882-.902-.882a.878.878%200%2000-.896.882c0%20.499.396.882.896.882z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-info-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zM11.4%2010h1.2v7h-1.2v-7zm.6-1a1%201%200%20110-2%201%201%200%20010%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zM11.4%2010h1.2v7h-1.2v-7zm.6-1a1%201%200%20110-2%201%201%200%20010%202z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-cancel {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M12.849%2012l3.11%203.111-.848.849L12%2012.849l-3.111%203.11-.849-.848L11.151%2012l-3.11-3.111.848-.849L12%2011.151l3.111-3.11.849.848L12.849%2012z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M12.849%2012l3.11%203.111-.848.849L12%2012.849l-3.111%203.11-.849-.848L11.151%2012l-3.11-3.111.848-.849L12%2011.151l3.111-3.11.849.848L12.849%2012z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-search {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.31%2015.561l4.114%204.115-.848.848-4.123-4.123a7%207%200%2011.857-.84zM16.8%2011a5.8%205.8%200%2010-11.6%200%205.8%205.8%200%200011.6%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.31%2015.561l4.114%204.115-.848.848-4.123-4.123a7%207%200%2011.857-.84zM16.8%2011a5.8%205.8%200%2010-11.6%200%205.8%205.8%200%200011.6%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-clear {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.06%2012l3.006-3.005-1.06-1.06L12%2010.938%208.995%207.934l-1.06%201.06L10.938%2012l-3.005%203.005%201.06%201.06L12%2013.062l3.005%203.005%201.06-1.06L13.062%2012zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.06%2012l3.006-3.005-1.06-1.06L12%2010.938%208.995%207.934l-1.06%201.06L10.938%2012l-3.005%203.005%201.06%201.06L12%2013.062l3.005%203.005%201.06-1.06L13.062%2012zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm1.999-6.563L10.68%2012%2014%208.562%2012.953%207.5%209.29%2011.277a1.045%201.045%200%20000%201.446l3.663%203.777L14%2015.437z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm1.999-6.563L10.68%2012%2014%208.562%2012.953%207.5%209.29%2011.277a1.045%201.045%200%20000%201.446l3.663%203.777L14%2015.437z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-delete {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6.774%206.4l.812%2013.648a.8.8%200%2000.798.752h7.232a.8.8%200%2000.798-.752L17.226%206.4H6.774zm11.655%200l-.817%2013.719A2%202%200%200115.616%2022H8.384a2%202%200%2001-1.996-1.881L5.571%206.4H3.5v-.7a.5.5%200%2001.5-.5h16a.5.5%200%2001.5.5v.7h-2.071zM14%203a.5.5%200%2001.5.5v.7h-5v-.7A.5.5%200%200110%203h4zM9.5%209h1.2l.5%209H10l-.5-9zm3.8%200h1.2l-.5%209h-1.2l.5-9z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6.774%206.4l.812%2013.648a.8.8%200%2000.798.752h7.232a.8.8%200%2000.798-.752L17.226%206.4H6.774zm11.655%200l-.817%2013.719A2%202%200%200115.616%2022H8.384a2%202%200%2001-1.996-1.881L5.571%206.4H3.5v-.7a.5.5%200%2001.5-.5h16a.5.5%200%2001.5.5v.7h-2.071zM14%203a.5.5%200%2001.5.5v.7h-5v-.7A.5.5%200%200110%203h4zM9.5%209h1.2l.5%209H10l-.5-9zm3.8%200h1.2l-.5%209h-1.2l.5-9z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success-no-circle-thin {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.864%2016.617l-5.303-5.303-1.061%201.06%205.657%205.657a1%201%200%20001.414%200L21.238%206.364l-1.06-1.06L8.864%2016.616z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.864%2016.617l-5.303-5.303-1.061%201.06%205.657%205.657a1%201%200%20001.414%200L21.238%206.364l-1.06-1.06L8.864%2016.616z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-arrow {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-arrow-bold {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.157%2012.711L4.5%2018.368l-1.414-1.414%204.95-4.95-4.95-4.95L4.5%205.64l5.657%205.657a1%201%200%20010%201.414z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.157%2012.711L4.5%2018.368l-1.414-1.414%204.95-4.95-4.95-4.95L4.5%205.64l5.657%205.657a1%201%200%20010%201.414z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back-arrow {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3.343%2012l7.071%207.071L9%2020.485l-7.778-7.778a1%201%200%20010-1.414L9%203.515l1.414%201.414L3.344%2012z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3.343%2012l7.071%207.071L9%2020.485l-7.778-7.778a1%201%200%20010-1.414L9%203.515l1.414%201.414L3.344%2012z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back-arrow-thin {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-close {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2010.586l5.657-5.657%201.414%201.414L13.414%2012l5.657%205.657-1.414%201.414L12%2013.414l-5.657%205.657-1.414-1.414L10.586%2012%204.929%206.343%206.343%204.93%2012%2010.586z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2010.586l5.657-5.657%201.414%201.414L13.414%2012l5.657%205.657-1.414%201.414L12%2013.414l-5.657%205.657-1.414-1.414L10.586%2012%204.929%206.343%206.343%204.93%2012%2010.586z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-close-thin {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-back-circle {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm1.999-5.363L12.953%2016.5%209.29%2012.723a1.045%201.045%200%20010-1.446L12.953%207.5%2014%208.563%2010.68%2012%2014%2015.438z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm1.999-5.363L12.953%2016.5%209.29%2012.723a1.045%201.045%200%20010-1.446L12.953%207.5%2014%208.563%2010.68%2012%2014%2015.438z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-icon-success {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-waiting {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon-warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-icon-info {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon-success-circle,
|
||||
.weui-icon-success-no-circle,
|
||||
.weui-icon-success-no-circle-thin {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-waiting-circle {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon-circle {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-download {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-info-circle {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-safe-success {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-icon-safe-warn {
|
||||
color: #ffc300;
|
||||
color: var(--weui-YELLOW);
|
||||
}
|
||||
|
||||
.weui-icon-cancel {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-icon-search {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-icon-clear {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-clear:active {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-icon-delete.weui-icon_gallery-delete {
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
}
|
||||
|
||||
.weui-icon-arrow-bold.weui-icon-arrow,
|
||||
.weui-icon-arrow-bold.weui-icon-arrow-bold,
|
||||
.weui-icon-arrow-bold.weui-icon-back-arrow,
|
||||
.weui-icon-arrow-bold.weui-icon-back-arrow-thin,
|
||||
.weui-icon-arrow.weui-icon-arrow,
|
||||
.weui-icon-arrow.weui-icon-arrow-bold,
|
||||
.weui-icon-arrow.weui-icon-back-arrow,
|
||||
.weui-icon-arrow.weui-icon-back-arrow-thin,
|
||||
.weui-icon-back-arrow-thin.weui-icon-arrow,
|
||||
.weui-icon-back-arrow-thin.weui-icon-arrow-bold,
|
||||
.weui-icon-back-arrow-thin.weui-icon-back-arrow,
|
||||
.weui-icon-back-arrow-thin.weui-icon-back-arrow-thin,
|
||||
.weui-icon-back-arrow.weui-icon-arrow,
|
||||
.weui-icon-back-arrow.weui-icon-arrow-bold,
|
||||
.weui-icon-back-arrow.weui-icon-back-arrow,
|
||||
.weui-icon-back-arrow.weui-icon-back-arrow-thin {
|
||||
width: 1.2em;
|
||||
}
|
||||
|
||||
.weui-icon-arrow,
|
||||
.weui-icon-arrow-bold {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-icon-back,
|
||||
.weui-icon-back-arrow,
|
||||
.weui-icon-back-arrow-thin,
|
||||
.weui-icon-back-circle {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-icon_msg.weui-icon_msg {
|
||||
width: 6.4em;
|
||||
height: 6.4em;
|
||||
}
|
||||
|
||||
.weui-icon_msg.weui-icon_msg.weui-icon-warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-icon_msg.weui-icon_msg.weui-icon-info-circle {
|
||||
color: #10aeff;
|
||||
color: var(--weui-BLUE);
|
||||
}
|
||||
|
||||
.weui-icon_msg-primary.weui-icon_msg-primary {
|
||||
width: 6.4em;
|
||||
height: 6.4em;
|
||||
}
|
||||
|
||||
.weui-icon_msg-primary.weui-icon_msg-primary.weui-icon-warn {
|
||||
color: #ffc300;
|
||||
color: var(--weui-YELLOW);
|
||||
}
|
||||
|
||||
.weui-hidden_abs {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.weui-hidden-space:empty:before,
|
||||
.weui-hidden_abs {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-hidden-space:empty:before {
|
||||
content: "\00A0";
|
||||
}
|
||||
|
||||
.weui-a11y-combo {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-a11y-combo__helper {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-a11y-combo__content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea-el {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
min-width: 44px;
|
||||
min-height: 44px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea,
|
||||
.weui-wa-hotarea-el__wrp,
|
||||
.weui-wa-hotarea_before {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea-el__wrp a,
|
||||
.weui-wa-hotarea-el__wrp navigator,
|
||||
.weui-wa-hotarea_before a,
|
||||
.weui-wa-hotarea_before navigator,
|
||||
.weui-wa-hotarea a,
|
||||
.weui-wa-hotarea navigator {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.weui-wa-hotarea:after,
|
||||
.weui-wa-hotarea_before:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
min-width: 44px;
|
||||
min-height: 44px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-link {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-link,
|
||||
.weui-link:visited {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-link:active {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.weui-btn {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 184px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding: 8px 24px;
|
||||
box-sizing: border-box;
|
||||
font-weight: 700;
|
||||
font-size: 17px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
line-height: 1.88235294;
|
||||
border-radius: 8px;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.weui-btn:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-BTN-ACTIVE-MASK);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.weui-btn:not(.weui-btn_disabled):not(.weui-btn_loading):active:before,
|
||||
.weui-btn:not([disabled]):not(.weui-btn_loading):active:before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.weui-btn_block {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.weui-btn_inline {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.weui-btn_default {
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-btn_default,
|
||||
.weui-btn_default:not(.weui-btn_disabled):visited {
|
||||
color: #06ae56;
|
||||
color: var(--weui-BTN-DEFAULT-COLOR);
|
||||
}
|
||||
|
||||
.weui-btn_primary {
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-btn_primary:not(.weui-btn_disabled):visited {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.weui-btn_warn {
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-btn_warn,
|
||||
.weui-btn_warn:not(.weui-btn_disabled):visited {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-btn[disabled],
|
||||
.weui-btn_disabled {
|
||||
color: rgba(0, 0, 0, 0.2);
|
||||
color: var(--weui-BTN-DISABLED-FONT-COLOR);
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-btn_loading .weui-loading {
|
||||
margin: -0.2em 0.34em 0 0;
|
||||
}
|
||||
|
||||
.weui-btn_loading .weui-primary-loading {
|
||||
margin: -0.2em 8px 0 0;
|
||||
vertical-align: middle;
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
.weui-btn_loading .weui-primary-loading:before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.weui-btn_loading.weui-btn_primary {
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
}
|
||||
|
||||
.weui-btn_cell {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
box-sizing: border-box;
|
||||
font-size: 17px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
line-height: 1.41176471;
|
||||
padding: 16px;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-5);
|
||||
}
|
||||
|
||||
.weui-btn_cell+.weui-btn_cell {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.weui-btn_cell:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-btn_cell__icon {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: -0.2em 0.34em 0 0;
|
||||
}
|
||||
|
||||
.weui-btn_cell-default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-btn_cell-primary {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-btn_cell-warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page {
|
||||
height: 100%;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page__content {
|
||||
min-height: 0;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
padding-bottom: 80px;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr {
|
||||
padding: 16px 32px 24px;
|
||||
padding: 16px calc(32px + constant(safe-area-inset-right)) calc(24px + constant(safe-area-inset-bottom)) calc(32px + constant(safe-area-inset-left));
|
||||
padding: 16px calc(32px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(32px + env(safe-area-inset-left));
|
||||
background: #fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr:before {
|
||||
content: "";
|
||||
height: 80px;
|
||||
background: -webkit-linear-gradient(bottom, #fff, hsla(0, 0%, 100%, 0));
|
||||
background: linear-gradient(0deg, #fff, hsla(0, 0%, 100%, 0));
|
||||
position: absolute;
|
||||
bottom: calc(100% - 1px);
|
||||
left: 0;
|
||||
right: 0;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-bottom-fixed-opr {
|
||||
background: #191919;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-bottom-fixed-opr {
|
||||
background: #191919;
|
||||
}
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-bottom-fixed-opr:before {
|
||||
background: -webkit-linear-gradient(bottom, #191919, rgba(25, 25, 25, 0));
|
||||
background: linear-gradient(0deg, #191919, rgba(25, 25, 25, 0));
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-bottom-fixed-opr:before {
|
||||
background: -webkit-linear-gradient(bottom, #191919, rgba(25, 25, 25, 0));
|
||||
background: linear-gradient(0deg, #191919, rgba(25, 25, 25, 0));
|
||||
}
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn {
|
||||
width: 184px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2),
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
margin: 0 8px;
|
||||
width: 136px;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn:last-child,
|
||||
.weui-bottom-fixed-opr-page .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2):last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2),
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
width: 184px;
|
||||
margin: 16px 0 0;
|
||||
}
|
||||
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-bottom-fixed-opr-page_btn-wrap .weui-bottom-fixed-opr .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__hd {
|
||||
padding: 0 24px;
|
||||
padding: 0 calc(24px + constant(safe-area-inset-right)) 0 calc(24px + constant(safe-area-inset-left));
|
||||
padding: 0 calc(24px + env(safe-area-inset-right)) 0 calc(24px + env(safe-area-inset-left));
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__bd {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__ft {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr-page {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr-page__content {
|
||||
padding: 0 24px;
|
||||
padding: 0 calc(24px + constant(safe-area-inset-right)) 0 calc(24px + constant(safe-area-inset-left));
|
||||
padding: 0 calc(24px + env(safe-area-inset-right)) 0 calc(24px + env(safe-area-inset-left));
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr {
|
||||
padding: 16px 0 64px;
|
||||
padding: 16px 0 calc(64px + constant(safe-area-inset-bottom));
|
||||
padding: 16px 0 calc(64px + env(safe-area-inset-bottom));
|
||||
}
|
||||
|
||||
button.weui-btn,
|
||||
input.weui-btn {
|
||||
border-width: 0;
|
||||
outline: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
button.weui-btn:focus,
|
||||
input.weui-btn:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
button.weui-btn_inline,
|
||||
button.weui-btn_mini,
|
||||
input.weui-btn_inline,
|
||||
input.weui-btn_mini {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.weui-btn_mini {
|
||||
font-size: 16px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.weui-btn_mini,
|
||||
.weui-btn_xmini {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
padding: 0 12px;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.weui-btn_xmini {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
border-radius: 2.8px;
|
||||
}
|
||||
|
||||
.weui-btn+.weui-btn {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.weui-btn.weui-btn_mini+.weui-btn.weui-btn_mini,
|
||||
.weui-btn.weui-btn_xmini+.weui-btn.weui-btn_xmini {
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.weui-btn.weui-btn_inline+.weui-btn.weui-btn_inline {
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.weui-btn-area {
|
||||
margin: 48px 16px 8px;
|
||||
}
|
||||
|
||||
.weui-btn-area_inline {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-btn-area_inline .weui-btn {
|
||||
margin-top: auto;
|
||||
margin-right: 16px;
|
||||
width: 100%;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-btn-area_inline .weui-btn:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.weui-btn_icon,
|
||||
.weui-btn_reset {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.weui-btn_icon {
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-btn_icon:active [class*="weui-icon-"] {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-cells {
|
||||
margin-top: 8px;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-cells:before {
|
||||
top: 0;
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-cells:after,
|
||||
.weui-cells:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.weui-cells:after {
|
||||
bottom: 0;
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-cells__title {
|
||||
margin-top: 16px;
|
||||
margin-bottom: 3px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-cells__title+.weui-cells {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cells__tips {
|
||||
margin-top: 8px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-cells__tips a,
|
||||
.weui-cells__tips navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-cells__tips navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-cell {
|
||||
padding: 16px;
|
||||
position: relative;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
line-height: 1.41176471;
|
||||
font-size: 17px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-cell:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 16px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.weui-cell:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cell_active:active:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
background: var(--weui-FG-3);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.weui-cell_primary {
|
||||
-webkit-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.weui-cell__bd {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-cell__ft {
|
||||
text-align: right;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-cell__ft button {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.weui-cell__name {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-cell__desc {
|
||||
font-size: 12px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1.4;
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
.weui-cell_swiped {
|
||||
display: block;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-cell_swiped>.weui-cell__bd {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-cell_swiped>.weui-cell__ft {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.weui-cell_swiped>.weui-cell__ft,
|
||||
.weui-swiped-btn {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-swiped-btn {
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
padding: 16px 1em;
|
||||
line-height: 1.41176471;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.weui-swiped-btn_default {
|
||||
background-color: #ededed;
|
||||
background-color: var(--weui-BG-0);
|
||||
}
|
||||
|
||||
.weui-swiped-btn_warn {
|
||||
background-color: #fa5151;
|
||||
background-color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cell_access {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.weui-cell_access:active:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
background: var(--weui-FG-3);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.weui-cell_access .weui-cell__ft {
|
||||
padding-right: 24px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-cell_access .weui-cell__ft:after {
|
||||
content: " ";
|
||||
width: 12px;
|
||||
height: 24px;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
.weui-cell_link {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-cell_link:first-child:before {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-check__label {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-check__label.weui-cell_disabled,
|
||||
.weui-check__label.weui-cell_readonly {
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-check {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-check[disabled]+.weui-icon-checked {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.weui-cells_radio .weui-cell__ft {
|
||||
padding-left: 16px;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-cells_radio .weui-check+.weui-icon-checked {
|
||||
min-width: 16px;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.weui-cells_radio .weui-check:checked+.weui-icon-checked,
|
||||
.weui-cells_radio .weui-check[aria-checked="true"]+.weui-icon-checked {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-check__label:before {
|
||||
left: 55px;
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-cell__hd {
|
||||
padding-right: 16px;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-icon-checked {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-cells_checkbox .weui-check:checked+.weui-icon-checked,
|
||||
.weui-cells_checkbox .weui-check[aria-checked="true"]+.weui-icon-checked {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
}
|
||||
|
||||
.weui-label {
|
||||
display: block;
|
||||
width: 105px;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.weui-input {
|
||||
width: 100%;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
-webkit-appearance: none;
|
||||
background-color: transparent;
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
height: 1.41176471em;
|
||||
line-height: 1.41176471;
|
||||
}
|
||||
|
||||
.weui-input::-webkit-inner-spin-button,
|
||||
.weui-input::-webkit-outer-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.weui-input:focus:not(:placeholder-shown)+.weui-btn_input-clear {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-textarea {
|
||||
display: block;
|
||||
border: 0;
|
||||
resize: none;
|
||||
background: transparent;
|
||||
width: 100%;
|
||||
color: inherit;
|
||||
font-size: 1em;
|
||||
line-height: inherit;
|
||||
height: 80px;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.weui-textarea-counter {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
text-align: right;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-cell_warn,
|
||||
.weui-cell_warn .weui-textarea-counter {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cell_warn .weui-icon-warn {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.weui-cell_disabled .weui-input:disabled,
|
||||
.weui-cell_disabled .weui-textarea:disabled,
|
||||
.weui-cell_readonly .weui-input:disabled,
|
||||
.weui-cell_readonly .weui-textarea:disabled {
|
||||
opacity: 1;
|
||||
-webkit-text-fill-color: rgba(0, 0, 0, 0.5);
|
||||
-webkit-text-fill-color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-cell_disabled .weui-input[disabled],
|
||||
.weui-cell_disabled .weui-input[readonly],
|
||||
.weui-cell_disabled .weui-textarea[disabled],
|
||||
.weui-cell_disabled .weui-textarea[readonly],
|
||||
.weui-cell_readonly .weui-input[disabled],
|
||||
.weui-cell_readonly .weui-input[readonly],
|
||||
.weui-cell_readonly .weui-textarea[disabled],
|
||||
.weui-cell_readonly .weui-textarea[readonly] {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-btn_input-clear {
|
||||
display: none;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.weui-btn_input-clear [class*="weui-icon-"] {
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
.weui-cells_form .weui-cell_disabled:active,
|
||||
.weui-cells_form .weui-cell_readonly:active,
|
||||
.weui-cells_form .weui-cell_switch:active,
|
||||
.weui-cells_form .weui-cell_vcode:active {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.weui-cells_form .weui-cell__ft {
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-cells_form .weui-icon-warn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells_form input,
|
||||
.weui-cells_form label[for],
|
||||
.weui-cells_form textarea {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-form-preview {
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-form-preview:before {
|
||||
top: 0;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview:after,
|
||||
.weui-form-preview:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-form-preview:after {
|
||||
bottom: 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__hd {
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
text-align: right;
|
||||
line-height: 2.5em;
|
||||
}
|
||||
|
||||
.weui-form-preview__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 16px;
|
||||
}
|
||||
|
||||
.weui-form-preview__hd .weui-form-preview__value {
|
||||
font-style: normal;
|
||||
font-size: 1.6em;
|
||||
}
|
||||
|
||||
.weui-form-preview__bd {
|
||||
padding: 16px;
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.weui-form-preview__ft {
|
||||
position: relative;
|
||||
line-height: 50px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-form-preview__ft:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__item {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-form-preview__label {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
min-width: 4em;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: justify;
|
||||
text-align-last: justify;
|
||||
}
|
||||
|
||||
.weui-form-preview__value {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
word-break: normal;
|
||||
word-wrap: break-word;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn {
|
||||
position: relative;
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
button.weui-form-preview__btn {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
line-height: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.weui-form-preview__btn:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn:first-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-form-preview__btn_default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-HALF);
|
||||
}
|
||||
|
||||
.weui-form-preview__btn_primary {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-form-preview__list {
|
||||
padding-top: 24px;
|
||||
padding-bottom: 24px;
|
||||
line-height: 1.4;
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-form-preview__list:before {
|
||||
content: "";
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-form-preview__list:last-child {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__label {
|
||||
text-align: left;
|
||||
text-align-last: unset;
|
||||
width: 6em;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__value {
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__item {
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.weui-form-preview__list .weui-form-preview__item:first-child,
|
||||
.weui-form-preview__list>.weui-cells__title:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cell_select {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-cell_select .weui-cell__bd:after {
|
||||
content: " ";
|
||||
width: 12px;
|
||||
height: 24px;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 16px;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
.weui-select {
|
||||
-webkit-appearance: none;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
background-color: transparent;
|
||||
width: 100%;
|
||||
font-size: inherit;
|
||||
min-height: 56px;
|
||||
line-height: 56px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding-left: 16px;
|
||||
padding-right: 40px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
vertical-align: bottom;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__hd {
|
||||
padding-left: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-right: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 100% 0;
|
||||
transform-origin: 100% 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__hd:before {
|
||||
content: " ";
|
||||
width: 12px;
|
||||
height: 24px;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
background-color: currentColor;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 16px;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__bd {
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-cell__bd:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cell_select-before .weui-select {
|
||||
max-width: 5em;
|
||||
width: 105px;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.weui-cell_select-after .weui-cell__hd {
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.weui-cell_select-after .weui-select {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.weui-cell_vcode {
|
||||
padding-top: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-vcode-btn,
|
||||
.weui-vcode-img {
|
||||
margin-left: 5px;
|
||||
height: 56px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.weui-vcode-btn {
|
||||
display: inline-block;
|
||||
padding: 0 0.6em 0 0.7em;
|
||||
line-height: 56px;
|
||||
font-size: 17px;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-vcode-btn:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
button.weui-vcode-btn {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.weui-vcode-btn:active {
|
||||
color: var(--weui-LINK-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-gallery {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #000;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.weui-gallery__img,
|
||||
.weui-gallery__opr {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
left: constant(safe-area-inset-left);
|
||||
left: env(safe-area-inset-left);
|
||||
right: 0;
|
||||
right: constant(safe-area-inset-right);
|
||||
right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-gallery__img {
|
||||
top: 0;
|
||||
top: constant(safe-area-inset-top);
|
||||
top: env(safe-area-inset-top);
|
||||
bottom: 60px;
|
||||
bottom: calc(60px + constant(safe-area-inset-bottom));
|
||||
bottom: calc(60px + env(safe-area-inset-bottom));
|
||||
width: 100%;
|
||||
background: 50% no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.weui-gallery__opr {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
background-color: #0d0d0d;
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-gallery__del {
|
||||
display: block;
|
||||
padding-bottom: 0;
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
|
||||
.weui-gallery__del:active {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.weui-cell_switch {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.weui-cell_switch.weui-cell_disabled,
|
||||
.weui-cell_switch.weui-cell_readonly {
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-switch {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.weui-switch,
|
||||
.weui-switch-cp__box {
|
||||
vertical-align: bottom;
|
||||
position: relative;
|
||||
width: 52px;
|
||||
height: 32px;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-FG-3);
|
||||
border: 0;
|
||||
padding: 2px;
|
||||
outline: 0;
|
||||
border-radius: 16px;
|
||||
box-sizing: border-box;
|
||||
-webkit-transition: background-color 0.1s, border 0.1s;
|
||||
transition: background-color 0.1s, border 0.1s;
|
||||
}
|
||||
|
||||
.weui-switch-cp__box:after,
|
||||
.weui-switch:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 15px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.06);
|
||||
-webkit-transition: -webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
transition: -webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
transition: transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
transition: transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35),
|
||||
-webkit-transform 0.35s cubic-bezier(0.4, 0.4, 0.25, 1.35);
|
||||
}
|
||||
|
||||
.weui-switch-cp__input:checked+.weui-switch-cp__box,
|
||||
.weui-switch-cp__input[aria-checked="true"]+.weui-switch-cp__box,
|
||||
.weui-switch:checked {
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-switch-cp__input:checked+.weui-switch-cp__box:after,
|
||||
.weui-switch-cp__input[aria-checked="true"]+.weui-switch-cp__box:after,
|
||||
.weui-switch:checked:after {
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
}
|
||||
|
||||
.weui-switch-cp__input[aria-disabled="true"]+.weui-switch-cp__box,
|
||||
.weui-switch-cp__input[disabled]+.weui-switch-cp__box,
|
||||
.weui-switch[disabled] {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.weui-switch-cp__input {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-switch-cp__box {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-cell_uploader {
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
.weui-uploader {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-uploader__hd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
padding-bottom: 16px;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-uploader__title {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-uploader__info {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-uploader__bd {
|
||||
margin-bottom: -8px;
|
||||
margin-right: -8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-uploader__files {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.weui-uploader__file {
|
||||
float: left;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
background: no-repeat 50%;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.weui-uploader__file_status {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-uploader__file_status:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.weui-uploader__file_status .weui-uploader__file-content {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-uploader__file-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
color: #fff;
|
||||
color: var(--weui-WHITE);
|
||||
}
|
||||
|
||||
.weui-uploader__file-content .weui-icon-warn {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.weui-uploader__input-box {
|
||||
float: left;
|
||||
position: relative;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
box-sizing: border-box;
|
||||
background-color: #ededed;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-uploader__input-box {
|
||||
background-color: #2e2e2e;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-uploader__input-box {
|
||||
background-color: #2e2e2e;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:after,
|
||||
.weui-uploader__input-box:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
background-color: #a3a3a3;
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-uploader__input-box:after,
|
||||
body[data-weui-theme="dark"] .weui-uploader__input-box:before {
|
||||
background-color: #6d6d6d;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
|
||||
body:not([data-weui-theme="light"]) .weui-uploader__input-box:after,
|
||||
body:not([data-weui-theme="light"]) .weui-uploader__input-box:before {
|
||||
background-color: #6d6d6d;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:before {
|
||||
width: 2px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:after {
|
||||
width: 32px;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.weui-uploader__input-box:active:after,
|
||||
.weui-uploader__input-box:active:before {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.weui-uploader__input {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-msg__desc-primary a,
|
||||
.weui-msg__desc a,
|
||||
.weui-msg__tips a {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.weui-msg {
|
||||
padding-top: 48px;
|
||||
padding: calc(48px + constant(safe-area-inset-top)) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);
|
||||
padding: calc(48px + env(safe-area-inset-top)) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
|
||||
text-align: center;
|
||||
line-height: 1.4;
|
||||
min-height: 100%;
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-msg__icon-area {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.weui-msg__text-area {
|
||||
margin-bottom: 32px;
|
||||
padding: 0 32px;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
line-height: 1.6;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-msg__text-area:first-child {
|
||||
padding-top: 96px;
|
||||
}
|
||||
|
||||
.weui-msg__title {
|
||||
font-weight: 500;
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.weui-msg__desc,
|
||||
.weui-msg__title {
|
||||
margin-bottom: 16px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-msg__desc {
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.weui-msg__desc-primary {
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__custom-area {
|
||||
text-align: left;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__title+.weui-msg__custom-area {
|
||||
margin-top: 48px;
|
||||
}
|
||||
|
||||
.weui-msg__desc+.weui-msg__custom-area,
|
||||
.weui-msg__desc-primary+.weui-msg__custom-area {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.weui-msg__custom-area .weui-cells__group_form .weui-cells {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area .weui-btn-area {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area .weui-btn+.weui-btn {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area:last-child {
|
||||
margin-bottom: 96px;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area+.weui-msg__extra-area {
|
||||
margin-top: 48px;
|
||||
}
|
||||
|
||||
.weui-msg__tips-area {
|
||||
margin-bottom: 16px;
|
||||
padding: 0 40px;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-msg__opr-area+.weui-msg__tips-area {
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
|
||||
.weui-msg__tips-area:last-child {
|
||||
margin-bottom: 64px;
|
||||
}
|
||||
|
||||
.weui-msg__extra-area,
|
||||
.weui-msg__tips {
|
||||
font-size: 12px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-msg__extra-area {
|
||||
margin-bottom: 24px;
|
||||
padding: 0 32px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.weui-msg__extra-area a,
|
||||
.weui-msg__extra-area navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-msg__extra-area navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-msg_align-top .weui-msg__text-area:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
body,
|
||||
page {
|
||||
--weui-STEPS-DEFAULT-COLOR: var(--weui-FG-3);
|
||||
--weui-STEPS-HIGHLIGHT-COLOR: var(--weui-BRAND);
|
||||
--weui-STEPS-FONT-SIZE: 17;
|
||||
--weui-STEPS-LINEHEIGHT: 1.4;
|
||||
--weui-STEPS-DOT-SIZE: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
--weui-STEPS-ICON-SIZE: 40;
|
||||
--weui-STEPS-VERTICAL-DOT-GAP: calc((1em - var(--weui-STEPS-DOT-SIZE)) / 2);
|
||||
--weui-STEPS-HORIZONAL-DOT-GAP: 4px;
|
||||
}
|
||||
|
||||
.weui-steps {
|
||||
line-height: 1.4;
|
||||
line-height: var(--weui-STEPS-LINEHEIGHT);
|
||||
font-size: 17px;
|
||||
font-size: calc(1px * var(--weui-STEPS-FONT-SIZE));
|
||||
}
|
||||
|
||||
.weui-steps__item__desc,
|
||||
.weui-steps__item__title {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-steps__item__title {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.weui-steps__item__desc {
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.weui-steps_vertical {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item {
|
||||
position: relative;
|
||||
padding-bottom: 32px;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item:before {
|
||||
content: "";
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
border-left: 1px solid var(--weui-STEPS-DEFAULT-COLOR);
|
||||
color: var(--weui-FG-3);
|
||||
color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
top: 1.2em;
|
||||
top: calc((var(--weui-STEPS-LINEHEIGHT) - (var(--weui-STEPS-LINEHEIGHT) - 1) / 2) * 1em);
|
||||
bottom: -0.2em;
|
||||
bottom: calc((var(--weui-STEPS-LINEHEIGHT) - 1) / 2 * -1em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item:first-child:not(.weui-steps__item_success) .weui-steps__item__inner:before {
|
||||
background-color: var(--weui-BRAND);
|
||||
background-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item:last-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item__inner {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding-left: 36px;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item__inner:before {
|
||||
content: "";
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__icon,
|
||||
.weui-steps_vertical .weui-steps__item__inner:before {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
left: 0;
|
||||
top: 0.7em;
|
||||
top: calc(var(--weui-STEPS-LINEHEIGHT) / 2 * 1em);
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__icon {
|
||||
font-size: 17px;
|
||||
font-size: calc(1px * var(--weui-STEPS-FONT-SIZE));
|
||||
width: 2.35294em;
|
||||
width: calc(var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: 2.35294em;
|
||||
height: calc(var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
margin-top: 0.39647em;
|
||||
margin-top: calc((var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em - 1em) / 2 - 0.28em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_icon:before {
|
||||
top: calc(((1em - var(--weui-STEPS-DOT-SIZE)) / 2) + 40 / 17 * 1em - 0.14em);
|
||||
top: calc(var(--weui-STEPS-VERTICAL-DOT-GAP) + var(--weui-STEPS-ICON-SIZE) / var(--weui-STEPS-FONT-SIZE) * 1em - 0.14em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_icon .weui-steps__item__inner:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_icon-prev:before {
|
||||
bottom: calc(((1em - var(--weui-STEPS-DOT-SIZE)) / 2) - 0.4 / 2 * 1em + 0.14em);
|
||||
bottom: calc(var(--weui-STEPS-VERTICAL-DOT-GAP) - (var(--weui-STEPS-LINEHEIGHT) - 1) / 2 * 1em + 0.14em);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_success:before {
|
||||
border-color: var(--weui-BRAND);
|
||||
border-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_vertical .weui-steps__item_success+.weui-steps__item .weui-steps__item__inner:before,
|
||||
.weui-steps_vertical .weui-steps__item_success .weui-steps__item__inner:before {
|
||||
background-color: var(--weui-BRAND);
|
||||
background-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal,
|
||||
.weui-steps_horizonal .weui-steps__item {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:after {
|
||||
content: "";
|
||||
height: 0.5px;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
margin: 0 4px;
|
||||
margin: 0 var(--weui-STEPS-HORIZONAL-DOT-GAP);
|
||||
background: var(--weui-FG-3);
|
||||
background: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:last-child {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: none;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:last-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item:first-child:not(.weui-steps__item_success):before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item__inner {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal .weui-steps__item_success+.weui-steps__item:before,
|
||||
.weui-steps_horizonal .weui-steps__item_success:after,
|
||||
.weui-steps_horizonal .weui-steps__item_success:before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
border-top: 1px solid var(--weui-STEPS-DEFAULT-COLOR);
|
||||
color: var(--weui-FG-3);
|
||||
color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item:last-child {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: none;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item:last-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item__inner {
|
||||
position: relative;
|
||||
padding-top: 36px;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item__inner:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item__inner:after {
|
||||
content: "";
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
width: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
width: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
height: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
height: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-transform: translate(calc(-50% + (8 / var(--weui-STEPS-FONT-SIZE) * 1em) / 2),
|
||||
-50%);
|
||||
-webkit-transform: translate(calc(-50% + var(--weui-STEPS-DOT-SIZE) / 2),
|
||||
-50%);
|
||||
transform: translate(calc(-50% + (8 / var(--weui-STEPS-FONT-SIZE) * 1em) / 2),
|
||||
-50%);
|
||||
transform: translate(calc(-50% + var(--weui-STEPS-DOT-SIZE) / 2), -50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item_success:before {
|
||||
border-color: var(--weui-BRAND);
|
||||
border-color: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-primary .weui-steps__item_success+.weui-steps__item .weui-steps__item__inner:before,
|
||||
.weui-steps_horizonal-primary .weui-steps__item_success .weui-steps__item__inner:before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:after,
|
||||
.weui-steps_horizonal-center .weui-steps__item:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
border-top: 1px solid var(--weui-STEPS-DEFAULT-COLOR);
|
||||
color: var(--weui-FG-3);
|
||||
color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:before {
|
||||
right: 50%;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:after {
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item:first-child:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item:last-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item__inner {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding-top: 36px;
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item__inner:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
width: var(--weui-STEPS-DOT-SIZE);
|
||||
height: calc(8 / var(--weui-STEPS-FONT-SIZE) * 1em);
|
||||
height: var(--weui-STEPS-DOT-SIZE);
|
||||
border-radius: 100%;
|
||||
background-color: var(--weui-FG-3);
|
||||
background-color: var(--weui-STEPS-DEFAULT-COLOR);
|
||||
top: 0;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item__inner:after {
|
||||
content: "";
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
width: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
width: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
height: calc((8 / var(--weui-STEPS-FONT-SIZE) * 1em) + 2 * 4px);
|
||||
height: calc(var(--weui-STEPS-DOT-SIZE) + 2 * var(--weui-STEPS-HORIZONAL-DOT-GAP));
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.weui-steps_horizonal-center .weui-steps__item_success+.weui-steps__item .weui-steps__item__inner:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success+.weui-steps__item:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success .weui-steps__item__inner:before,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success:after,
|
||||
.weui-steps_horizonal-center .weui-steps__item_success:before {
|
||||
background: var(--weui-BRAND);
|
||||
background: var(--weui-STEPS-HIGHLIGHT-COLOR);
|
||||
}
|
||||
|
||||
body,
|
||||
page {
|
||||
--weui-cellMarginLR: 16px;
|
||||
--weui-cellPaddingLR: 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form {
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells {
|
||||
margin-left: 16px;
|
||||
margin-left: var(--weui-cellMarginLR);
|
||||
margin-right: 16px;
|
||||
margin-right: var(--weui-cellMarginLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells:after,
|
||||
.weui-cells__group_form .weui-cells:before {
|
||||
left: 16px;
|
||||
left: var(--weui-cellPaddingLR);
|
||||
right: 16px;
|
||||
right: var(--weui-cellPaddingLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell {
|
||||
padding: 16px;
|
||||
padding: 16px var(--weui-cellPaddingLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell:before {
|
||||
left: 16px;
|
||||
left: var(--weui-cellPaddingLR);
|
||||
right: 16px;
|
||||
right: var(--weui-cellPaddingLR);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__hd {
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__ft {
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__title {
|
||||
margin-top: 24px;
|
||||
margin-bottom: 8px;
|
||||
padding: 0 32px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form:first-child .weui-cells__title {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__tips {
|
||||
margin-top: 8px;
|
||||
padding: 0 32px;
|
||||
padding: 0 calc(var(--weui-cellMarginLR) + var(--weui-cellPaddingLR));
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__tips a {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells__tips_warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-label {
|
||||
max-width: 5em;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_access:active:after,
|
||||
.weui-cells__group_form .weui-cell_active:active:after {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_warn input {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_disabled:active:after,
|
||||
.weui-cells__group_form .weui-cell_readonly:active:after,
|
||||
.weui-cells__group_form .weui-cell_switch:active:after,
|
||||
.weui-cells__group_form .weui-cell_vcode:active:after,
|
||||
.weui-cells__group_form .weui-icon-warn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells__group_form input,
|
||||
.weui-cells__group_form label[for],
|
||||
.weui-cells__group_form textarea {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap {
|
||||
-webkit-box-align: initial;
|
||||
-webkit-align-items: initial;
|
||||
align-items: initial;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap .weui-cell__hd {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap .weui-label {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_wrap .weui-cell__bd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__control {
|
||||
margin: 8px 0 8px 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell__control_flex {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 30vw;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-vcode-btn {
|
||||
font-size: 16px;
|
||||
padding: 0 12px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
line-height: 2;
|
||||
border-radius: 6px;
|
||||
color: #06ae56;
|
||||
color: var(--weui-BTN-DEFAULT-COLOR);
|
||||
background-color: #f2f2f2;
|
||||
background-color: var(--weui-BTN-DEFAULT-BG);
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-vcode-btn:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-label {
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-input {
|
||||
font-size: 17px;
|
||||
min-height: 1.88235294em;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cells_checkbox .weui-check__label:before {
|
||||
left: 56px;
|
||||
left: calc(40px + var(--weui-cellPaddingLR));
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_select {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_select-before .weui-cell__hd {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.weui-cells__group_form .weui-cell_switch {
|
||||
padding: 12px 16px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary {
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary .weui-cells {
|
||||
background: #f7f7f7;
|
||||
background: var(--weui-BG-1);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary .weui-cells:after,
|
||||
.weui-cells__group_form-primary .weui-cells:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-cells__group_form-primary .weui-cell_access:active:after,
|
||||
.weui-cells__group_form-primary .weui-cell_active:active:after {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.weui-form {
|
||||
padding: 56px 0 0;
|
||||
padding: calc(56px + constant(safe-area-inset-top)) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);
|
||||
padding: calc(56px + env(safe-area-inset-top)) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
line-height: 1.4;
|
||||
min-height: 100%;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-form .weui-footer,
|
||||
.weui-form .weui-footer__link {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-form .weui-agree {
|
||||
padding: 0;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
text-align: justify;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
line-height: 1.6;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-form .weui-agree__checkbox {
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-form .weui-agree__text {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-form__text-area {
|
||||
padding: 0 32px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-form__control-area {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
margin: 48px 0;
|
||||
}
|
||||
|
||||
.weui-form__extra-area,
|
||||
.weui-form__tips-area {
|
||||
margin-bottom: 24px;
|
||||
padding: 0 32px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-form__extra-area {
|
||||
margin-top: 52px;
|
||||
}
|
||||
|
||||
.weui-form__opr-area {
|
||||
padding: 0 32px;
|
||||
}
|
||||
|
||||
.weui-form__opr-area:last-child {
|
||||
margin-bottom: 96px;
|
||||
}
|
||||
|
||||
.weui-form__opr-area+.weui-form__tips-area {
|
||||
margin-top: 16px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-form__tips-area+.weui-form__extra-area {
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.weui-form__tips-area:last-child {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.weui-form__title {
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
line-height: 1.36;
|
||||
}
|
||||
|
||||
.weui-form__desc {
|
||||
font-size: 17px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.weui-form__tips {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-form__tips a,
|
||||
.weui-form__tips navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-form__tips navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-article {
|
||||
padding: 48px 24px;
|
||||
padding: 48px calc(24px + constant(safe-area-inset-right)) calc(48px + constant(safe-area-inset-bottom)) calc(24px + constant(safe-area-inset-left));
|
||||
padding: 48px calc(24px + env(safe-area-inset-right)) calc(48px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 17px;
|
||||
line-height: 1.6;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-article section {
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
|
||||
.weui-article section section {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.weui-article section section section {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.weui-article h1,
|
||||
.weui-article h2,
|
||||
.weui-article h3,
|
||||
.weui-article h4,
|
||||
.weui-article h5,
|
||||
.weui-article h6 {
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-article h1 {
|
||||
font-size: 22px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 48px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-article h2 {
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-article h3 {
|
||||
font-size: 17px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.weui-article h4 {
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.weui-article h5,
|
||||
.weui-article h6 {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.weui-article * {
|
||||
max-width: 100%;
|
||||
box-sizing: border-box;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.weui-article img {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.weui-article p {
|
||||
margin: 0 0 24px;
|
||||
}
|
||||
|
||||
.weui-article ol,
|
||||
.weui-article ul {
|
||||
list-style: none;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.weui-article ol ol,
|
||||
.weui-article ol ul,
|
||||
.weui-article ul ol,
|
||||
.weui-article ul ul {
|
||||
padding-left: 16px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-tabbar {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
position: relative;
|
||||
z-index: 500;
|
||||
background-color: #f7f7f7;
|
||||
background-color: var(--weui-BG-1);
|
||||
}
|
||||
|
||||
.weui-tabbar:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-tabbar__item {
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
font-size: 0;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-tabbar__item:first-child {
|
||||
padding-left: constant(safe-area-inset-left);
|
||||
padding-left: env(safe-area-inset-left);
|
||||
}
|
||||
|
||||
.weui-tabbar__item:last-child {
|
||||
padding-right: constant(safe-area-inset-right);
|
||||
padding-right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon,
|
||||
.weui-tabbar__item.weui-bar__item_on .weui-tabbar__label {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
|
||||
svg {
|
||||
fill: #07c160;
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: var(--weui-BRAND);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-tabbar__icon {
|
||||
display: inline-block;
|
||||
margin-bottom: 6px;
|
||||
|
||||
svg {
|
||||
fill: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: var(--weui-FG-0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-tabbar__label {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 12px;
|
||||
line-height: 1.4;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.weui-navbar {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
position: relative;
|
||||
z-index: 500;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
padding-top: constant(safe-area-inset-top);
|
||||
padding-top: env(safe-area-inset-top);
|
||||
}
|
||||
|
||||
.weui-navbar:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-navbar+.weui-tab__panel {
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
|
||||
.weui-navbar__item {
|
||||
position: relative;
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
padding: 16px 0;
|
||||
padding-top: calc(16px + constant(safe-area-inset-top));
|
||||
padding-top: calc(16px + env(safe-area-inset-top));
|
||||
text-align: center;
|
||||
font-size: 17px;
|
||||
line-height: 1.41176471;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-navbar__item.weui-bar__item_on,
|
||||
.weui-navbar__item:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-navbar__item:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-right: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 100% 0;
|
||||
transform-origin: 100% 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-navbar__item:first-child {
|
||||
padding-left: constant(safe-area-inset-left);
|
||||
padding-left: env(safe-area-inset-left);
|
||||
}
|
||||
|
||||
.weui-navbar__item:last-child {
|
||||
padding-right: constant(safe-area-inset-right);
|
||||
padding-right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-navbar__item:last-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-tab {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-tab__panel {
|
||||
box-sizing: border-box;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.weui-tab__content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-progress {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-progress__bar {
|
||||
background-color: #ededed;
|
||||
background-color: var(--weui-BG-0);
|
||||
height: 3px;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-progress__inner-bar {
|
||||
width: 0;
|
||||
height: 100%;
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-progress__opr {
|
||||
display: block;
|
||||
margin-left: 15px;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-panel {
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
margin-top: 10px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-panel:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-panel:before {
|
||||
top: 0;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-panel:after,
|
||||
.weui-panel:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-panel:after {
|
||||
bottom: 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-panel .weui-cells:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-panel__hd {
|
||||
padding: 16px 16px 13px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-panel__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 15px;
|
||||
}
|
||||
|
||||
.weui-media-box {
|
||||
padding: 16px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-media-box:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
left: 16px;
|
||||
}
|
||||
|
||||
.weui-media-box:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a.weui-media-box {
|
||||
color: #000;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
a.weui-media-box:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-media-box__title {
|
||||
display: block;
|
||||
font-weight: 400;
|
||||
font-size: 17px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
width: auto;
|
||||
white-space: nowrap;
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
.weui-media-box__desc,
|
||||
.weui-media-box__title {
|
||||
line-height: 1.4;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-media-box__desc {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
font-size: 14px;
|
||||
padding-top: 4px;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
|
||||
.weui-media-box__info {
|
||||
display: block;
|
||||
margin-top: 16px;
|
||||
padding-bottom: 4px;
|
||||
font-size: 13px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1em;
|
||||
list-style: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-media-box__info__meta {
|
||||
float: left;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
.weui-media-box__info__meta_extra {
|
||||
padding-left: 1em;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.3);
|
||||
border-left: 1px solid var(--weui-FG-2);
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg .weui-media-box__hd {
|
||||
margin-right: 16px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg .weui-media-box__thumb {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.weui-media-box_appmsg .weui-media-box__bd {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-media-box_small-appmsg {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.weui-media-box_small-appmsg .weui-cells {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-media-box_small-appmsg .weui-cells:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-grids {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-grids:before {
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-grids:after,
|
||||
.weui-grids:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-grids:after {
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-grid {
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 20px 10px;
|
||||
width: 33.33333333%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.weui-grid:before {
|
||||
top: 0;
|
||||
width: 1px;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-right: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 100% 0;
|
||||
transform-origin: 100% 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-grid:after,
|
||||
.weui-grid:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-grid:after {
|
||||
left: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-grid:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-grid__icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.weui-grid__icon img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-grid__icon+.weui-grid__label {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.weui-grid__label {
|
||||
display: block;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-footer,
|
||||
.weui-grid__label {
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-footer {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-footer a,
|
||||
.weui-footer navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-footer navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-footer_fixed-bottom {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
padding-bottom: calc(16px + constant(safe-area-inset-bottom));
|
||||
padding-bottom: calc(16px + env(safe-area-inset-bottom));
|
||||
left: constant(safe-area-inset-left);
|
||||
left: env(safe-area-inset-left);
|
||||
right: constant(safe-area-inset-right);
|
||||
right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-footer__links {
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-footer__link {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 8px;
|
||||
position: relative;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-footer__link:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
left: -8px;
|
||||
top: 0.36em;
|
||||
bottom: 0.36em;
|
||||
}
|
||||
|
||||
.weui-footer__link:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-footer__text {
|
||||
padding: 0 16px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.weui-flex {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-flex__item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-dialog {
|
||||
position: fixed;
|
||||
z-index: 5000;
|
||||
top: 50%;
|
||||
left: 16px;
|
||||
right: 16px;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
text-align: center;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
flex-direction: column;
|
||||
max-height: 90%;
|
||||
}
|
||||
|
||||
.weui-dialog__hd {
|
||||
padding: 32px 24px 16px;
|
||||
}
|
||||
|
||||
.weui-dialog__title {
|
||||
font-weight: 700;
|
||||
font-size: 20px;
|
||||
line-height: 1.4;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-dialog__bd {
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
padding: 0 24px;
|
||||
margin-bottom: 32px;
|
||||
font-size: 17px;
|
||||
line-height: 1.4;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-dialog__bd:first-child {
|
||||
min-height: 40px;
|
||||
padding: 32px 24px 0;
|
||||
font-weight: 700;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
-webkit-flex-direction: column;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
flex-direction: column;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.weui-dialog__bd:first-child,
|
||||
.weui-dialog__ft {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.weui-dialog__ft {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-dialog__ft:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-dialog__btn {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
display: block;
|
||||
line-height: 1.41176471;
|
||||
padding: 16px 0;
|
||||
font-size: 17px;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-dialog__btn:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-dialog__btn:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
bottom: 0;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid var(--weui-DIALOG-LINE-COLOR);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-DIALOG-LINE-COLOR);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleX(0.5);
|
||||
transform: scaleX(0.5);
|
||||
}
|
||||
|
||||
.weui-dialog__btn:first-child:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-dialog__btn_default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-HALF);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog {
|
||||
text-align: left;
|
||||
box-shadow: 0 6px 30px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__title {
|
||||
font-size: 22px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__hd {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__bd {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__bd:first-child {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__ft {
|
||||
display: block;
|
||||
text-align: right;
|
||||
line-height: 40px;
|
||||
min-height: 40px;
|
||||
padding: 0 24px 16px;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__ft:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
padding: 0 0.8em;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn:last-child {
|
||||
margin-right: -0.8em;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-dialog__btn_default {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-HALF);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 352px) {
|
||||
.weui-dialog {
|
||||
width: 320px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
min-height: 255px;
|
||||
max-height: 75%;
|
||||
z-index: 5000;
|
||||
line-height: 1.4;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
border-top-left-radius: 12px;
|
||||
border-top-right-radius: 12px;
|
||||
overflow: hidden;
|
||||
padding: 0 24px;
|
||||
padding: 0 calc(24px + constant(safe-area-inset-right)) constant(safe-area-inset-bottom) calc(24px + constant(safe-area-inset-left));
|
||||
padding: 0 calc(24px + env(safe-area-inset-right)) env(safe-area-inset-bottom) calc(24px + env(safe-area-inset-left));
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
@media only screen and (max-device-height: 558px) {
|
||||
.weui-half-screen-dialog {
|
||||
max-height: calc(100% - 16px);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd {
|
||||
min-height: 64px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd .weui-btn_icon,
|
||||
.weui-half-screen-dialog__hd .weui-icon-btn {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd .weui-btn_icon:active,
|
||||
.weui-half-screen-dialog__hd .weui-icon-btn:active {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__side {
|
||||
position: relative;
|
||||
left: -8px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__main {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__side+.weui-half-screen-dialog__hd__main {
|
||||
text-align: center;
|
||||
padding: 0 40px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side {
|
||||
right: -8px;
|
||||
left: auto;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side .weui-btn_icon,
|
||||
.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side .weui-icon-btn {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__title {
|
||||
display: block;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-weight: 700;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__subtitle {
|
||||
display: block;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__bd {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
overflow-y: auto;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
padding-bottom: 56px;
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__desc {
|
||||
font-size: 17px;
|
||||
font-weight: 700;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__tips {
|
||||
padding-top: 16px;
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__ft {
|
||||
padding: 0 0 64px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n + 2),
|
||||
.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 8px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn {
|
||||
width: 184px;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2),
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
margin: 0 8px;
|
||||
width: 136px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn:last-child,
|
||||
.weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2):last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__btn-area+.weui-half-screen-dialog__attachment-area {
|
||||
margin-top: 24px;
|
||||
margin-bottom: -34px;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2),
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn {
|
||||
width: 184px;
|
||||
margin: 16px 0 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2)+.weui-btn:first-child,
|
||||
.weui-half-screen-dialog_btn-wrap .weui-half-screen-dialog__btn-area .weui-btn:nth-last-child(n + 2):first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog_large {
|
||||
max-height: none;
|
||||
top: 16px;
|
||||
}
|
||||
|
||||
.weui-icon-more {
|
||||
-webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M5 10.25a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5z'/%3E%3C/svg%3E") no-repeat 50% 50%;
|
||||
mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M5 10.25a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5z'/%3E%3C/svg%3E") no-repeat 50% 50%;
|
||||
}
|
||||
|
||||
.weui-icon-slide-down {
|
||||
-webkit-mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E %3Cdefs%3E %3Crect id='dda90263-a290-4594-926f-6aba8cb4779f-a' width='24' height='24' x='0' y='0' rx='12'/%3E %3C/defs%3E %3Cg fill='none' fill-rule='evenodd'%3E %3Cmask id='dda90263-a290-4594-926f-6aba8cb4779f-b' fill='%23fff'%3E %3Cuse xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3C/mask%3E %3Cuse fill='%23000' fill-opacity='.05' xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3Cg fill-opacity='.9' mask='url(%23dda90263-a290-4594-926f-6aba8cb4779f-b)'%3E %3Cpath fill='%23000' d='M11.407 15.464L6.693 10.75l1.179-1.179 4.125 4.125 4.124-4.125L17.3 10.75l-4.714 4.714a.833.833 0 0 1-1.179 0z'/%3E %3C/g%3E %3C/g%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E %3Cdefs%3E %3Crect id='dda90263-a290-4594-926f-6aba8cb4779f-a' width='24' height='24' x='0' y='0' rx='12'/%3E %3C/defs%3E %3Cg fill='none' fill-rule='evenodd'%3E %3Cmask id='dda90263-a290-4594-926f-6aba8cb4779f-b' fill='%23fff'%3E %3Cuse xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3C/mask%3E %3Cuse fill='%23000' fill-opacity='.05' xlink:href='%23dda90263-a290-4594-926f-6aba8cb4779f-a'/%3E %3Cg fill-opacity='.9' mask='url(%23dda90263-a290-4594-926f-6aba8cb4779f-b)'%3E %3Cpath fill='%23000' d='M11.407 15.464L6.693 10.75l1.179-1.179 4.125 4.125 4.124-4.125L17.3 10.75l-4.714 4.714a.833.833 0 0 1-1.179 0z'/%3E %3C/g%3E %3C/g%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.weui-icon-btn.weui-icon-btn {
|
||||
outline: 0;
|
||||
-webkit-appearance: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
border-width: 0;
|
||||
background-color: transparent;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
font-size: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.weui-icon-btn_goback.weui-icon-btn_goback {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
width: 1.2em;
|
||||
height: 2.4em;
|
||||
-webkit-mask: url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
}
|
||||
|
||||
.weui-icon-btn_close.weui-icon-btn_close {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
width: 1.4em;
|
||||
height: 2.4em;
|
||||
-webkit-mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;
|
||||
}
|
||||
|
||||
.weui-toast {
|
||||
position: fixed;
|
||||
z-index: 5000;
|
||||
font-size: 10px;
|
||||
width: 13.6em;
|
||||
height: 13.6em;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
border-radius: 12px;
|
||||
color: #333333;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
background-color: #1A1A1A;
|
||||
box-sizing: border-box;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-toast_text {
|
||||
width: auto;
|
||||
height: auto;
|
||||
min-width: 152px;
|
||||
max-width: 216px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.weui-toast_text .weui-toast__content {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.weui-icon_toast {
|
||||
display: block;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-icon_toast {
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-icon-success-no-circle,
|
||||
.weui-icon_toast.weui-icon-warn {
|
||||
color: #FFEB3B;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-loading {
|
||||
width: 3.6em;
|
||||
height: 3.6em;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
font-size: 40px;
|
||||
color: #FFEB3B;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading:before {
|
||||
border-width: 4px 0 4px 4px;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading:after {
|
||||
border-width: 4px 4px 4px 0;
|
||||
}
|
||||
|
||||
.weui-icon_toast.weui-primary-loading .weui-primary-loading__dot {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.weui-toast__content {
|
||||
font-size: 17px;
|
||||
padding: 0 12px;
|
||||
word-wrap: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.weui-toast_text-more .weui-icon_toast {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.weui-toast_text-more .weui-toast__content {
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.weui-mask {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.weui-mask,
|
||||
.weui-mask_transparent {
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.weui-actionsheet {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
-webkit-transform: translateY(100%);
|
||||
transform: translateY(100%);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
z-index: 5000;
|
||||
width: 100%;
|
||||
background-color: #f7f7f7;
|
||||
background-color: var(--weui-BG-1);
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
border-top-left-radius: 12px;
|
||||
border-top-right-radius: 12px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-actionsheet__title {
|
||||
position: relative;
|
||||
height: 56px;
|
||||
padding: 8px 24px;
|
||||
padding: 8px calc(24px + constant(safe-area-inset-right)) 8px calc(24px + constant(safe-area-inset-left));
|
||||
padding: 8px calc(24px + env(safe-area-inset-right)) 8px calc(24px + env(safe-area-inset-left));
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
line-height: 1.4;
|
||||
background: #fff;
|
||||
background: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-actionsheet__title:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-actionsheet__title .weui-actionsheet__title-text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
|
||||
.weui-actionsheet__action,
|
||||
.weui-actionsheet__menu {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-actionsheet__action {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.weui-actionsheet__action .weui-actionsheet__cell:last-child {
|
||||
padding-bottom: calc(16px + constant(safe-area-inset-bottom));
|
||||
padding-bottom: calc(16px + env(safe-area-inset-bottom));
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell {
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
padding: 16px calc(16px + constant(safe-area-inset-right)) 16px calc(16px + constant(safe-area-inset-left));
|
||||
padding: 16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));
|
||||
text-align: center;
|
||||
font-size: 17px;
|
||||
line-height: 1.41176471;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell:active {
|
||||
background-color: #ececec;
|
||||
background-color: var(--weui-BG-COLOR-ACTIVE);
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell:first-child:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-actionsheet__cell_warn {
|
||||
color: #fa5151;
|
||||
color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet {
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
bottom: auto;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
width: 274px;
|
||||
box-sizing: border-box;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
background: transparent;
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__action {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__menu {
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 6px 30px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__cell {
|
||||
padding: 16px;
|
||||
font-size: 17px;
|
||||
line-height: 1.41176471;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__cell:first-child {
|
||||
border-top-left-radius: 2px;
|
||||
border-top-right-radius: 2px;
|
||||
}
|
||||
|
||||
.weui-skin_android .weui-actionsheet__cell:last-child {
|
||||
border-bottom-left-radius: 2px;
|
||||
border-bottom-right-radius: 2px;
|
||||
}
|
||||
|
||||
.weui-actionsheet_toggle {
|
||||
-webkit-transform: translate(0);
|
||||
transform: translate(0);
|
||||
}
|
||||
|
||||
.weui-loadmore {
|
||||
width: 65%;
|
||||
margin: 20px auto;
|
||||
text-align: center;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.weui-loadmore .weui-loading,
|
||||
.weui-loadmore .weui-primary-loading {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.weui-loadmore__tips {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-loadmore_line {
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.weui-loadmore_line .weui-loadmore__tips {
|
||||
position: relative;
|
||||
top: -0.9em;
|
||||
padding: 0 0.55em;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
.weui-loadmore_dot .weui-loadmore__tips {
|
||||
padding: 0 0.16em;
|
||||
}
|
||||
|
||||
.weui-loadmore_dot .weui-loadmore__tips:before {
|
||||
content: " ";
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 50%;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-FG-3);
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: 0;
|
||||
top: -0.16em;
|
||||
}
|
||||
|
||||
.weui-badge {
|
||||
display: inline-block;
|
||||
padding: 0.15em 0.4em;
|
||||
min-width: 0.66666667em;
|
||||
border-radius: 18px;
|
||||
background-color: #fa5151;
|
||||
background-color: var(--weui-RED);
|
||||
color: #fff;
|
||||
line-height: 1.2;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.weui-badge_dot {
|
||||
padding: 0.4em;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.weui-toptips {
|
||||
display: none;
|
||||
position: fixed;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
top: 8px;
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
z-index: 5000;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.weui-toptips_warn {
|
||||
background-color: #fa5151;
|
||||
background-color: var(--weui-RED);
|
||||
}
|
||||
|
||||
.weui-list-tips {
|
||||
list-style: none;
|
||||
padding-top: 24px;
|
||||
padding-bottom: 24px;
|
||||
line-height: 1.4;
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.weui-list-tips:before {
|
||||
content: "";
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-list-tips:last-child {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.weui-list-tips__item {
|
||||
position: relative;
|
||||
padding-left: 15px;
|
||||
margin: 16px 0;
|
||||
}
|
||||
|
||||
.weui-list-tips__item:before {
|
||||
content: "\2022";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: -0.1em;
|
||||
}
|
||||
|
||||
.weui-list-tips__item:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.weui-form-preview__list+.weui-list-tips>.weui-list-tips__item:first-child {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.weui-search-bar {
|
||||
position: relative;
|
||||
padding: 8px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
background-color: #ededed;
|
||||
background-color: var(--weui-BG-0);
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-search-bar.weui-search-bar_focusing .weui-search-bar__cancel-btn {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.weui-search-bar.weui-search-bar_focusing .weui-search-bar__label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-search-bar .weui-icon-search {
|
||||
font-size: 10px;
|
||||
width: 1.6em;
|
||||
height: 1.6em;
|
||||
margin-left: 8px;
|
||||
margin-right: 4px;
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.weui-search-bar__form {
|
||||
position: relative;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.weui-search-bar__box {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-search-bar__input {
|
||||
padding: 8px 0;
|
||||
width: 100%;
|
||||
height: 1.14285714em;
|
||||
border: 0;
|
||||
font-size: 14px;
|
||||
line-height: 1.14285714em;
|
||||
box-sizing: content-box;
|
||||
background: transparent;
|
||||
caret-color: #07c160;
|
||||
caret-color: var(--weui-BRAND);
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-search-bar__input:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-icon-clear {
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
font-size: 10px;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
margin-left: 8px;
|
||||
-webkit-mask-size: 2em;
|
||||
mask-size: 2em;
|
||||
-webkit-mask-position: calc(100% - 8px) 0;
|
||||
mask-position: calc(100% - 8px) 0;
|
||||
min-width: 44px;
|
||||
}
|
||||
|
||||
.weui-search-bar__box .weui-icon-clear:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 44px;
|
||||
}
|
||||
|
||||
.weui-search-bar__label {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
font-size: 0;
|
||||
border-radius: 4px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
background: #fff;
|
||||
background: var(--weui-BG-2);
|
||||
}
|
||||
|
||||
.weui-search-bar__label span {
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.weui-search-bar__cancel-btn {
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
display: none;
|
||||
margin-left: 8px;
|
||||
line-height: 28px;
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-search-bar__input:not(:valid)+.weui-icon-clear {
|
||||
display: none;
|
||||
}
|
||||
|
||||
input[type="search"]::-webkit-search-cancel-button,
|
||||
input[type="search"]::-webkit-search-decoration,
|
||||
input[type="search"]::-webkit-search-results-button,
|
||||
input[type="search"]::-webkit-search-results-decoration {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.weui-picker {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 5000;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-transform: translateY(100%);
|
||||
transform: translateY(100%);
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
}
|
||||
|
||||
.weui-picker__hd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
padding: 16px;
|
||||
padding: 16px calc(16px + constant(safe-area-inset-right)) 16px calc(16px + constant(safe-area-inset-left));
|
||||
padding: 16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));
|
||||
position: relative;
|
||||
text-align: center;
|
||||
font-size: 17px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.weui-picker__hd:after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-picker__bd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
background-color: var(--weui-BG-2);
|
||||
height: 240px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-picker__group {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.weui-picker__group:first-child .weui-picker__item {
|
||||
padding-left: constant(safe-area-inset-left);
|
||||
padding-left: env(safe-area-inset-left);
|
||||
}
|
||||
|
||||
.weui-picker__group:last-child .weui-picker__item {
|
||||
padding-right: constant(safe-area-inset-right);
|
||||
padding-right: env(safe-area-inset-right);
|
||||
}
|
||||
|
||||
.weui-picker__mask {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0 auto;
|
||||
z-index: 3;
|
||||
background-image: -webkit-linear-gradient(top,
|
||||
hsla(0, 0%, 100%, 0.95),
|
||||
hsla(0, 0%, 100%, 0.6)),
|
||||
-webkit-linear-gradient(bottom, hsla(0, 0%, 100%, 0.95), hsla(0, 0%, 100%, 0.6));
|
||||
background-image: linear-gradient(180deg,
|
||||
hsla(0, 0%, 100%, 0.95),
|
||||
hsla(0, 0%, 100%, 0.6)),
|
||||
linear-gradient(0deg, hsla(0, 0%, 100%, 0.95), hsla(0, 0%, 100%, 0.6));
|
||||
background-position: top, bottom;
|
||||
background-size: 100% 92px;
|
||||
background-repeat: no-repeat;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
body[data-weui-theme="dark"] .weui-picker__mask {
|
||||
background-image: -webkit-linear-gradient(top,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
-webkit-linear-gradient(bottom, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
background-image: linear-gradient(180deg,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
linear-gradient(0deg, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body:not([data-weui-theme="light"]) .weui-picker__mask {
|
||||
background-image: -webkit-linear-gradient(top,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
-webkit-linear-gradient(bottom, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
background-image: linear-gradient(180deg,
|
||||
rgba(25, 25, 25, 0.95),
|
||||
rgba(25, 25, 25, 0.6)),
|
||||
linear-gradient(0deg, rgba(25, 25, 25, 0.95), rgba(25, 25, 25, 0.6));
|
||||
}
|
||||
}
|
||||
|
||||
.weui-picker__indicator {
|
||||
width: 100%;
|
||||
height: 56px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 92px;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.weui-picker__indicator:before {
|
||||
top: 0;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-picker__indicator:after,
|
||||
.weui-picker__indicator:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-picker__indicator:after {
|
||||
bottom: 0;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid var(--weui-FG-3);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
.weui-picker__content {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.weui-picker__item {
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
text-align: center;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
color: var(--weui-FG-0);
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-picker__item_disabled {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
}
|
||||
|
||||
@-webkit-keyframes a {
|
||||
0% {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes a {
|
||||
0% {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-slide-up,
|
||||
.weui-animate_slide-up {
|
||||
-webkit-animation: a ease 0.3s forwards;
|
||||
animation: a ease 0.3s forwards;
|
||||
}
|
||||
|
||||
@-webkit-keyframes b {
|
||||
0% {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes b {
|
||||
0% {
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-slide-down,
|
||||
.weui-animate_slide-down {
|
||||
-webkit-animation: b ease 0.3s forwards;
|
||||
animation: b ease 0.3s forwards;
|
||||
}
|
||||
|
||||
@-webkit-keyframes c {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes c {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-fade-in,
|
||||
.weui-animate_fade-in {
|
||||
-webkit-animation: c ease 0.3s forwards;
|
||||
animation: c ease 0.3s forwards;
|
||||
}
|
||||
|
||||
@-webkit-keyframes d {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes d {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.weui-animate-fade-out,
|
||||
.weui-animate_fade-out {
|
||||
-webkit-animation: d ease 0.3s forwards;
|
||||
animation: d ease 0.3s forwards;
|
||||
}
|
||||
|
||||
.weui-transition.weui-mask {
|
||||
-webkit-transition: opacity 0.3s, visibility 0.3s;
|
||||
transition: opacity 0.3s, visibility 0.3s;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.weui-transition.weui-half-screen-dialog {
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
transition: -webkit-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
transition: transform 0.3s, -webkit-transform 0.3s;
|
||||
-webkit-transform: translateY(100%);
|
||||
transform: translateY(100%);
|
||||
}
|
||||
|
||||
.weui-transition_show.weui-mask {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.weui-transition_show.weui-half-screen-dialog {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.weui-agree {
|
||||
display: block;
|
||||
padding: 8px 15px 0;
|
||||
font-size: 14px;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.weui-agree a,
|
||||
.weui-agree navigator {
|
||||
color: #576b95;
|
||||
color: var(--weui-LINK);
|
||||
}
|
||||
|
||||
.weui-agree navigator {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.weui-agree__text {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.weui-agree__checkbox {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
display: inline-block;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
vertical-align: middle;
|
||||
background-color: currentColor;
|
||||
-webkit-mask-position: 0 0;
|
||||
mask-position: 0 0;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
color: var(--weui-FG-2);
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
font-size: 17px;
|
||||
margin-top: -0.2em;
|
||||
}
|
||||
|
||||
.weui-agree__checkbox-check {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.weui-agree__checkbox-check[aria-checked="true"]+.weui-agree__checkbox,
|
||||
.weui-agree__checkbox:checked {
|
||||
-webkit-mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-agree_animate {
|
||||
-webkit-animation: e 0.3s 1;
|
||||
animation: e 0.3s 1;
|
||||
}
|
||||
|
||||
@-webkit-keyframes e {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
16% {
|
||||
-webkit-transform: translateX(-8px);
|
||||
transform: translateX(-8px);
|
||||
}
|
||||
|
||||
28% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
44% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
59% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
73% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
82% {
|
||||
-webkit-transform: translateX(16px);
|
||||
transform: translateX(16px);
|
||||
}
|
||||
|
||||
94% {
|
||||
-webkit-transform: translateX(8px);
|
||||
transform: translateX(8px);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes e {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
16% {
|
||||
-webkit-transform: translateX(-8px);
|
||||
transform: translateX(-8px);
|
||||
}
|
||||
|
||||
28% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
44% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
59% {
|
||||
-webkit-transform: translateX(-16px);
|
||||
transform: translateX(-16px);
|
||||
}
|
||||
|
||||
73% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
82% {
|
||||
-webkit-transform: translateX(16px);
|
||||
transform: translateX(16px);
|
||||
}
|
||||
|
||||
94% {
|
||||
-webkit-transform: translateX(8px);
|
||||
transform: translateX(8px);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-primary-loading {
|
||||
font-size: 16px;
|
||||
display: -webkit-inline-box;
|
||||
display: -webkit-inline-flex;
|
||||
display: inline-flex;
|
||||
position: relative;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
vertical-align: middle;
|
||||
color: #606060;
|
||||
-webkit-animation: f 1s steps(60) infinite;
|
||||
animation: f 1s steps(60) infinite;
|
||||
}
|
||||
|
||||
.weui-primary-loading:after,
|
||||
.weui-primary-loading:before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 0.5em;
|
||||
height: 1em;
|
||||
box-sizing: border-box;
|
||||
border: 0.125em solid;
|
||||
border-color: currentColor;
|
||||
}
|
||||
|
||||
.weui-primary-loading:before {
|
||||
border-right-width: 0;
|
||||
border-top-left-radius: 1em;
|
||||
border-bottom-left-radius: 1em;
|
||||
-webkit-mask-image: -webkit-linear-gradient(top,
|
||||
#000 8%,
|
||||
rgba(0, 0, 0, 0.3) 95%);
|
||||
}
|
||||
|
||||
.weui-primary-loading:after {
|
||||
border-left-width: 0;
|
||||
border-top-right-radius: 1em;
|
||||
border-bottom-right-radius: 1em;
|
||||
-webkit-mask-image: -webkit-linear-gradient(top,
|
||||
transparent 8%,
|
||||
rgba(0, 0, 0, 0.3) 95%);
|
||||
}
|
||||
|
||||
.weui-primary-loading__dot {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left: -0.0625em;
|
||||
width: 0.125em;
|
||||
height: 0.125em;
|
||||
border-top-right-radius: 0.125em;
|
||||
border-bottom-right-radius: 0.125em;
|
||||
background: currentColor;
|
||||
}
|
||||
|
||||
.weui-primary-loading_brand {
|
||||
color: #07c160;
|
||||
color: var(--weui-BRAND);
|
||||
}
|
||||
|
||||
.weui-primary-loading_transparent {
|
||||
color: #ededed;
|
||||
}
|
||||
|
||||
.weui-loading {
|
||||
font-size: 10px;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
-webkit-animation: f 1s steps(12) infinite;
|
||||
animation: f 1s steps(12) infinite;
|
||||
background: transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.weui-btn_loading.weui-btn_primary .weui-loading,
|
||||
.weui-loading.weui-loading_transparent {
|
||||
background-image: url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
@-webkit-keyframes f {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: rotate(1turn);
|
||||
transform: rotate(1turn);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes f {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: rotate(1turn);
|
||||
transform: rotate(1turn);
|
||||
}
|
||||
}
|
||||
|
||||
.weui-slider {
|
||||
padding: 15px 18px;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.weui-slider__inner {
|
||||
position: relative;
|
||||
height: 2px;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-slider__track {
|
||||
height: 100%;
|
||||
background-color: #07c160;
|
||||
background-color: var(--weui-BRAND);
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.weui-slider__handler {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
margin-left: -14px;
|
||||
margin-top: -14px;
|
||||
border-radius: 50%;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 4px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 0 4px var(--weui-FG-3);
|
||||
}
|
||||
|
||||
.weui-slider-box {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.weui-slider-box .weui-slider {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.weui-slider-box__value {
|
||||
margin-left: 0.5em;
|
||||
min-width: 24px;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
color: var(--weui-FG-1);
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: system-ui, -apple-system, Helvetica Neue, sans-serif;
|
||||
}
|
||||
|
||||
.page,
|
||||
body {
|
||||
background-color: var(--weui-BG-0);
|
||||
}
|
||||
|
||||
.page {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
box-sizing: border-box;
|
||||
z-index: 1;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 15 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M9.17 6l2 2H20v10H4V6h5.17M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
|
||||
|
Before Width: | Height: | Size: 276 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3zM8 13h2.55v3h2.9v-3H16l-4-4z"/></svg>
|
||||
|
Before Width: | Height: | Size: 518 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
|
||||
|
Before Width: | Height: | Size: 393 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.09-.16-.26-.25-.44-.25-.06 0-.12.01-.17.03l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.06-.02-.12-.03-.18-.03-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.09.16.26.25.44.25.06 0 .12-.01.17-.03l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,215 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cmn-Hans">
|
||||
|
||||
<head>
|
||||
<title>影視</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">
|
||||
<meta name="wechat-enable-text-zoom-em" content="true">
|
||||
<meta name="layoutmode" content="standard">
|
||||
<link rel="stylesheet" type="text/css" href="css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/ui.css">
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/script.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="page">
|
||||
<div class="page__bd" style="height: 100%;">
|
||||
<div class="weui-tab">
|
||||
<div id="panel1" role="tabpanel" aria-labelledby="tab1" class="weui-tab__panel">
|
||||
<div class="weui-form">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">搜尋</h2>
|
||||
</div>
|
||||
<div class="weui-form__control-area">
|
||||
<div class="weui-cells__group weui-cells__group_form">
|
||||
<div class="weui-cells">
|
||||
<div class="weui-cell weui-cell_active weui-cell_vcode weui-cell_wrap">
|
||||
<div class="weui-cell__bd weui-flex">
|
||||
<input id="keyword" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入關鍵字..." />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 16px;">
|
||||
<button onclick="search(); return false;" class="weui-cell__control weui-btn weui-btn_default weui-vcode-btn">確定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="panel2" role="tabpanel" aria-labelledby="tab2" class="weui-tab__panel" style="display: none;">
|
||||
<div class="weui-form">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">推送</h2>
|
||||
</div>
|
||||
<div class="weui-form__control-area">
|
||||
<div class="weui-cells__group weui-cells__group_form">
|
||||
<div class="weui-cells">
|
||||
<div class="weui-cell weui-cell_active weui-cell_vcode weui-cell_wrap">
|
||||
<div class="weui-cell__bd weui-flex">
|
||||
<input id="push_url" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入播放網址..." />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 16px;">
|
||||
<button onclick="push(); return false;" class="weui-cell__control weui-btn weui-btn_default weui-vcode-btn">確定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="panel3" role="tabpanel" aria-labelledby="tab3" class="weui-tab__panel" style="display: none;">
|
||||
<div class="weui-form">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">設定</h2>
|
||||
</div>
|
||||
<div class="weui-form__control-area">
|
||||
<div class="weui-cells__group weui-cells__group_form">
|
||||
<div class="weui-cells">
|
||||
<div class="weui-cell weui-cell_active weui-cell_vcode weui-cell_wrap">
|
||||
<div class="weui-cell__bd weui-flex">
|
||||
<input id="setting_name" class="weui-input weui-cell__control" type="text" value="" placeholder="請輸入名稱" />
|
||||
<input id="setting_text" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入接口/Proxy/User-Agent..." />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 16px;">
|
||||
<button onclick="setting(); return false;" class="weui-cell__control weui-btn weui-btn_default weui-vcode-btn">確定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="panel4" role="tabpanel" aria-labelledby="tab4" class="weui-tab__panel" style="display: none;">
|
||||
<div class="weui-form" style="min-height: 0;">
|
||||
<div class="weui-form__text-area">
|
||||
<h2 class="weui-form__title">本地</h2>
|
||||
</div>
|
||||
<input type="file" id="file_uploader" style="display:none;" onchange="uploadTip()" multiple />
|
||||
<div class="weui-form__control-area" style="text-align: center;margin-bottom: 8px !important;">
|
||||
<div>
|
||||
<a href="javascript:void(0)" role="button" class="weui-btn weui-btn_mini weui-btn_default weui-wa-hotarea" href="javascript:void(0)" onclick="uploadFile()">上傳檔案</a>
|
||||
<a href="javascript:void(0)" role="button" class="weui-btn weui-btn_mini weui-btn_default weui-wa-hotarea" href="javascript:void(0)" onclick="newFolder()">新增資料夾</a>
|
||||
<a id="delCurFolder" href="javascript:void(0)" role="button" class="weui-btn weui-btn_mini weui-btn_warn weui-wa-hotarea" href="javascript:void(0)" onclick="delFolder()" style="display: none;">刪除資料夾</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="weui-cells" id="file_list"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tablist" class="weui-tabbar">
|
||||
<div id="tab1" role="tab" aria-labelledby="t1_title" aria-selected="true" aria-controls="panel1" class="weui-tabbar__item weui-bar__item_on">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t1_title" aria-hidden="true" class="weui-tabbar__label">搜尋</p>
|
||||
</div>
|
||||
<div id="tab2" role="tab" aria-labelledby="t2_title" aria-selected="false" aria-controls="panel2" class="weui-tabbar__item">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3zM8 13h2.55v3h2.9v-3H16l-4-4z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t2_title" aria-hidden="true" class="weui-tabbar__label">推送</p>
|
||||
</div>
|
||||
<div id="tab3" role="tab" aria-labelledby="t3_title" aria-selected="false" aria-controls="panel3" class="weui-tabbar__item">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.09-.16-.26-.25-.44-.25-.06 0-.12.01-.17.03l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.06-.02-.12-.03-.18-.03-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.09.16.26.25.44.25.06 0 .12-.01.17-.03l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t3_title" aria-hidden="true" class="weui-tabbar__label">設定</p>
|
||||
</div>
|
||||
<div id="tab4" role="tab" aria-labelledby="t4_title" aria-selected="false" aria-controls="panel4" class="weui-tabbar__item">
|
||||
<div class="weui-tabbar__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M9.17 6l2 2H20v10H4V6h5.17M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="t4_title" aria-hidden="true" class="weui-tabbar__label">本地</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="fileInfoDialog" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">本地路徑</strong></div>
|
||||
<div class="weui-dialog__bd" id="fileUrl"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="pushFile(0)" class="weui-dialog__btn weui-dialog__btn_default">關閉</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="pushFile(1)" class="weui-dialog__btn weui-dialog__btn_primary">使用</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="delFile()" class="weui-dialog__btn weui-dialog__btn_primary" id="delFileBtn">刪除</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="uploadTip" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">確認上傳?</strong></div>
|
||||
<div class="weui-dialog__bd" id="uploadTipContent"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doUpload(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doUpload(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="newFolder" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">新增資料夾</strong></div>
|
||||
<div class="weui-dialog__bd">
|
||||
<input id="newFolderContent" class="weui-input weui-cell__control weui-cell__control_flex" type="text" value="" placeholder="請輸入資料夾名稱..." />
|
||||
</div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doNewFolder(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doNewFolder(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="delFolder" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">刪除資料夾</strong></div>
|
||||
<div class="weui-dialog__bd" id="delFolderContent"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFolder(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFolder(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="dialog" aria-hidden="true" aria-modal="true" id="delFile" style="display: none;">
|
||||
<div class="weui-mask"></div>
|
||||
<div class="weui-dialog">
|
||||
<div class="weui-dialog__hd"><strong class="weui-dialog__title">刪除檔案</strong></div>
|
||||
<div class="weui-dialog__bd" id="delFileContent"></div>
|
||||
<div class="weui-dialog__ft">
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFile(0)" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
|
||||
<a role="button" href="javascript:void(0)" onclick="doDelFile(1)" class="weui-dialog__btn weui-dialog__btn_primary">確定</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="alert" id="warnToast" style="display: none;">
|
||||
<div class="weui-mask_transparent"></div>
|
||||
<div class="weui-toast">
|
||||
<i class="weui-icon-warn weui-icon_toast"></i>
|
||||
<p class="weui-toast__content" id="warnToastContent"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div role="alert" id="loadingToast" style="display: none;">
|
||||
<div class="weui-mask_transparent"></div>
|
||||
<div class="weui-toast">
|
||||
<span class="weui-primary-loading weui-icon_toast"><span class="weui-primary-loading__dot"></span></span>
|
||||
<p class="weui-toast__content">載入中</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,6191 +0,0 @@
|
||||
;(function (root, factory) {
|
||||
if (typeof exports === "object") {
|
||||
// CommonJS
|
||||
module.exports = exports = factory();
|
||||
}
|
||||
else if (typeof define === "function" && define.amd) {
|
||||
// AMD
|
||||
define([], factory);
|
||||
}
|
||||
else {
|
||||
// Global (browser)
|
||||
globalThis.CryptoJS = factory();
|
||||
}
|
||||
}(this, function () {
|
||||
|
||||
/*globals window, global, require*/
|
||||
|
||||
/**
|
||||
* CryptoJS core components.
|
||||
*/
|
||||
var CryptoJS = CryptoJS || (function (Math, undefined) {
|
||||
|
||||
var crypto;
|
||||
|
||||
// Native crypto from window (Browser)
|
||||
if (typeof window !== 'undefined' && window.crypto) {
|
||||
crypto = window.crypto;
|
||||
}
|
||||
|
||||
// Native crypto in web worker (Browser)
|
||||
if (typeof self !== 'undefined' && self.crypto) {
|
||||
crypto = self.crypto;
|
||||
}
|
||||
|
||||
// Native crypto from worker
|
||||
if (typeof globalThis !== 'undefined' && globalThis.crypto) {
|
||||
crypto = globalThis.crypto;
|
||||
}
|
||||
|
||||
// Native (experimental IE 11) crypto from window (Browser)
|
||||
if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
|
||||
crypto = window.msCrypto;
|
||||
}
|
||||
|
||||
// Native crypto from global (NodeJS)
|
||||
if (!crypto && typeof global !== 'undefined' && global.crypto) {
|
||||
crypto = global.crypto;
|
||||
}
|
||||
|
||||
// Native crypto import via require (NodeJS)
|
||||
if (!crypto && typeof require === 'function') {
|
||||
try {
|
||||
crypto = require('crypto');
|
||||
} catch (err) {}
|
||||
}
|
||||
|
||||
/*
|
||||
* Cryptographically secure pseudorandom number generator
|
||||
*
|
||||
* As Math.random() is cryptographically not safe to use
|
||||
*/
|
||||
var cryptoSecureRandomInt = function () {
|
||||
if (crypto) {
|
||||
// Use getRandomValues method (Browser)
|
||||
if (typeof crypto.getRandomValues === 'function') {
|
||||
try {
|
||||
return crypto.getRandomValues(new Uint32Array(1))[0];
|
||||
} catch (err) {}
|
||||
}
|
||||
|
||||
// Use randomBytes method (NodeJS)
|
||||
if (typeof crypto.randomBytes === 'function') {
|
||||
try {
|
||||
return crypto.randomBytes(4).readInt32LE();
|
||||
} catch (err) {}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('Native crypto module could not be used to get secure random number.');
|
||||
};
|
||||
|
||||
/*
|
||||
* Local polyfill of Object.create
|
||||
|
||||
*/
|
||||
var create = Object.create || (function () {
|
||||
function F() {}
|
||||
|
||||
return function (obj) {
|
||||
var subtype;
|
||||
|
||||
F.prototype = obj;
|
||||
|
||||
subtype = new F();
|
||||
|
||||
F.prototype = null;
|
||||
|
||||
return subtype;
|
||||
};
|
||||
}());
|
||||
|
||||
/**
|
||||
* CryptoJS namespace.
|
||||
*/
|
||||
var C = {};
|
||||
|
||||
/**
|
||||
* Library namespace.
|
||||
*/
|
||||
var C_lib = C.lib = {};
|
||||
|
||||
/**
|
||||
* Base object for prototypal inheritance.
|
||||
*/
|
||||
var Base = C_lib.Base = (function () {
|
||||
|
||||
|
||||
return {
|
||||
/**
|
||||
* Creates a new object that inherits from this object.
|
||||
*
|
||||
* @param {Object} overrides Properties to copy into the new object.
|
||||
*
|
||||
* @return {Object} The new object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var MyType = CryptoJS.lib.Base.extend({
|
||||
* field: 'value',
|
||||
*
|
||||
* method: function () {
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
extend: function (overrides) {
|
||||
// Spawn
|
||||
var subtype = create(this);
|
||||
|
||||
// Augment
|
||||
if (overrides) {
|
||||
subtype.mixIn(overrides);
|
||||
}
|
||||
|
||||
// Create default initializer
|
||||
if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
|
||||
subtype.init = function () {
|
||||
subtype.$super.init.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
|
||||
// Initializer's prototype is the subtype object
|
||||
subtype.init.prototype = subtype;
|
||||
|
||||
// Reference supertype
|
||||
subtype.$super = this;
|
||||
|
||||
return subtype;
|
||||
},
|
||||
|
||||
/**
|
||||
* Extends this object and runs the init method.
|
||||
* Arguments to create() will be passed to init().
|
||||
*
|
||||
* @return {Object} The new object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var instance = MyType.create();
|
||||
*/
|
||||
create: function () {
|
||||
var instance = this.extend();
|
||||
instance.init.apply(instance, arguments);
|
||||
|
||||
return instance;
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes a newly created object.
|
||||
* Override this method to add some logic when your objects are created.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var MyType = CryptoJS.lib.Base.extend({
|
||||
* init: function () {
|
||||
* // ...
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
init: function () {
|
||||
},
|
||||
|
||||
/**
|
||||
* Copies properties into this object.
|
||||
*
|
||||
* @param {Object} properties The properties to mix in.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* MyType.mixIn({
|
||||
* field: 'value'
|
||||
* });
|
||||
*/
|
||||
mixIn: function (properties) {
|
||||
for (var propertyName in properties) {
|
||||
if (properties.hasOwnProperty(propertyName)) {
|
||||
this[propertyName] = properties[propertyName];
|
||||
}
|
||||
}
|
||||
|
||||
// IE won't copy toString using the loop above
|
||||
if (properties.hasOwnProperty('toString')) {
|
||||
this.toString = properties.toString;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this object.
|
||||
*
|
||||
* @return {Object} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = instance.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
return this.init.prototype.extend(this);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
/**
|
||||
* An array of 32-bit words.
|
||||
*
|
||||
* @property {Array} words The array of 32-bit words.
|
||||
* @property {number} sigBytes The number of significant bytes in this word array.
|
||||
*/
|
||||
var WordArray = C_lib.WordArray = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created word array.
|
||||
*
|
||||
* @param {Array} words (Optional) An array of 32-bit words.
|
||||
* @param {number} sigBytes (Optional) The number of significant bytes in the words.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.lib.WordArray.create();
|
||||
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
|
||||
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
|
||||
*/
|
||||
init: function (words, sigBytes) {
|
||||
words = this.words = words || [];
|
||||
|
||||
if (sigBytes != undefined) {
|
||||
this.sigBytes = sigBytes;
|
||||
} else {
|
||||
this.sigBytes = words.length * 4;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts this word array to a string.
|
||||
*
|
||||
* @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
|
||||
*
|
||||
* @return {string} The stringified word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var string = wordArray + '';
|
||||
* var string = wordArray.toString();
|
||||
* var string = wordArray.toString(CryptoJS.enc.Utf8);
|
||||
*/
|
||||
toString: function (encoder) {
|
||||
return (encoder || Hex).stringify(this);
|
||||
},
|
||||
|
||||
/**
|
||||
* Concatenates a word array to this word array.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array to append.
|
||||
*
|
||||
* @return {WordArray} This word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* wordArray1.concat(wordArray2);
|
||||
*/
|
||||
concat: function (wordArray) {
|
||||
// Shortcuts
|
||||
var thisWords = this.words;
|
||||
var thatWords = wordArray.words;
|
||||
var thisSigBytes = this.sigBytes;
|
||||
var thatSigBytes = wordArray.sigBytes;
|
||||
|
||||
// Clamp excess bits
|
||||
this.clamp();
|
||||
|
||||
// Concat
|
||||
if (thisSigBytes % 4) {
|
||||
// Copy one byte at a time
|
||||
for (var i = 0; i < thatSigBytes; i++) {
|
||||
var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
|
||||
}
|
||||
} else {
|
||||
// Copy one word at a time
|
||||
for (var j = 0; j < thatSigBytes; j += 4) {
|
||||
thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
|
||||
}
|
||||
}
|
||||
this.sigBytes += thatSigBytes;
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes insignificant bits.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* wordArray.clamp();
|
||||
*/
|
||||
clamp: function () {
|
||||
// Shortcuts
|
||||
var words = this.words;
|
||||
var sigBytes = this.sigBytes;
|
||||
|
||||
// Clamp
|
||||
words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
|
||||
words.length = Math.ceil(sigBytes / 4);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this word array.
|
||||
*
|
||||
* @return {WordArray} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = wordArray.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
clone.words = this.words.slice(0);
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a word array filled with random bytes.
|
||||
*
|
||||
* @param {number} nBytes The number of random bytes to generate.
|
||||
*
|
||||
* @return {WordArray} The random word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.lib.WordArray.random(16);
|
||||
*/
|
||||
random: function (nBytes) {
|
||||
var words = [];
|
||||
|
||||
for (var i = 0; i < nBytes; i += 4) {
|
||||
words.push(cryptoSecureRandomInt());
|
||||
}
|
||||
|
||||
return new WordArray.init(words, nBytes);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Encoder namespace.
|
||||
*/
|
||||
var C_enc = C.enc = {};
|
||||
|
||||
/**
|
||||
* Hex encoding strategy.
|
||||
*/
|
||||
var Hex = C_enc.Hex = {
|
||||
/**
|
||||
* Converts a word array to a hex string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The hex string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hexString = CryptoJS.enc.Hex.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var hexChars = [];
|
||||
for (var i = 0; i < sigBytes; i++) {
|
||||
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
hexChars.push((bite >>> 4).toString(16));
|
||||
hexChars.push((bite & 0x0f).toString(16));
|
||||
}
|
||||
|
||||
return hexChars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a hex string to a word array.
|
||||
*
|
||||
* @param {string} hexStr The hex string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Hex.parse(hexString);
|
||||
*/
|
||||
parse: function (hexStr) {
|
||||
// Shortcut
|
||||
var hexStrLength = hexStr.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < hexStrLength; i += 2) {
|
||||
words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
|
||||
}
|
||||
|
||||
return new WordArray.init(words, hexStrLength / 2);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Latin1 encoding strategy.
|
||||
*/
|
||||
var Latin1 = C_enc.Latin1 = {
|
||||
/**
|
||||
* Converts a word array to a Latin1 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The Latin1 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var latin1Chars = [];
|
||||
for (var i = 0; i < sigBytes; i++) {
|
||||
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
latin1Chars.push(String.fromCharCode(bite));
|
||||
}
|
||||
|
||||
return latin1Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Latin1 string to a word array.
|
||||
*
|
||||
* @param {string} latin1Str The Latin1 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
|
||||
*/
|
||||
parse: function (latin1Str) {
|
||||
// Shortcut
|
||||
var latin1StrLength = latin1Str.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < latin1StrLength; i++) {
|
||||
words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
|
||||
}
|
||||
|
||||
return new WordArray.init(words, latin1StrLength);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* UTF-8 encoding strategy.
|
||||
*/
|
||||
var Utf8 = C_enc.Utf8 = {
|
||||
/**
|
||||
* Converts a word array to a UTF-8 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The UTF-8 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
try {
|
||||
return decodeURIComponent(escape(Latin1.stringify(wordArray)));
|
||||
} catch (e) {
|
||||
throw new Error('Malformed UTF-8 data');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a UTF-8 string to a word array.
|
||||
*
|
||||
* @param {string} utf8Str The UTF-8 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
|
||||
*/
|
||||
parse: function (utf8Str) {
|
||||
return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Abstract buffered block algorithm template.
|
||||
*
|
||||
* The property blockSize must be implemented in a concrete subtype.
|
||||
*
|
||||
* @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
|
||||
*/
|
||||
var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
|
||||
/**
|
||||
* Resets this block algorithm's data buffer to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* bufferedBlockAlgorithm.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Initial values
|
||||
this._data = new WordArray.init();
|
||||
this._nDataBytes = 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds new data to this block algorithm's buffer.
|
||||
*
|
||||
* @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* bufferedBlockAlgorithm._append('data');
|
||||
* bufferedBlockAlgorithm._append(wordArray);
|
||||
*/
|
||||
_append: function (data) {
|
||||
// Convert string to WordArray, else assume WordArray already
|
||||
if (typeof data == 'string') {
|
||||
data = Utf8.parse(data);
|
||||
}
|
||||
|
||||
// Append
|
||||
this._data.concat(data);
|
||||
this._nDataBytes += data.sigBytes;
|
||||
},
|
||||
|
||||
/**
|
||||
* Processes available data blocks.
|
||||
*
|
||||
* This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
|
||||
*
|
||||
* @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
|
||||
*
|
||||
* @return {WordArray} The processed data.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var processedData = bufferedBlockAlgorithm._process();
|
||||
* var processedData = bufferedBlockAlgorithm._process(!!'flush');
|
||||
*/
|
||||
_process: function (doFlush) {
|
||||
var processedWords;
|
||||
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
var dataSigBytes = data.sigBytes;
|
||||
var blockSize = this.blockSize;
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count blocks ready
|
||||
var nBlocksReady = dataSigBytes / blockSizeBytes;
|
||||
if (doFlush) {
|
||||
// Round up to include partial blocks
|
||||
nBlocksReady = Math.ceil(nBlocksReady);
|
||||
} else {
|
||||
// Round down to include only full blocks,
|
||||
// less the number of blocks that must remain in the buffer
|
||||
nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
|
||||
}
|
||||
|
||||
// Count words ready
|
||||
var nWordsReady = nBlocksReady * blockSize;
|
||||
|
||||
// Count bytes ready
|
||||
var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
|
||||
|
||||
// Process blocks
|
||||
if (nWordsReady) {
|
||||
for (var offset = 0; offset < nWordsReady; offset += blockSize) {
|
||||
// Perform concrete-algorithm logic
|
||||
this._doProcessBlock(dataWords, offset);
|
||||
}
|
||||
|
||||
// Remove processed words
|
||||
processedWords = dataWords.splice(0, nWordsReady);
|
||||
data.sigBytes -= nBytesReady;
|
||||
}
|
||||
|
||||
// Return processed words
|
||||
return new WordArray.init(processedWords, nBytesReady);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this object.
|
||||
*
|
||||
* @return {Object} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = bufferedBlockAlgorithm.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
clone._data = this._data.clone();
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
_minBufferSize: 0
|
||||
});
|
||||
|
||||
/**
|
||||
* Abstract hasher template.
|
||||
*
|
||||
* @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
|
||||
*/
|
||||
var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*/
|
||||
cfg: Base.extend(),
|
||||
|
||||
/**
|
||||
* Initializes a newly created hasher.
|
||||
*
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hasher = CryptoJS.algo.SHA256.create();
|
||||
*/
|
||||
init: function (cfg) {
|
||||
// Apply config defaults
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Set initial values
|
||||
this.reset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets this hasher to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hasher.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Reset data buffer
|
||||
BufferedBlockAlgorithm.reset.call(this);
|
||||
|
||||
// Perform concrete-hasher logic
|
||||
this._doReset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates this hasher with a message.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate The message to append.
|
||||
*
|
||||
* @return {Hasher} This hasher.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hasher.update('message');
|
||||
* hasher.update(wordArray);
|
||||
*/
|
||||
update: function (messageUpdate) {
|
||||
// Append
|
||||
this._append(messageUpdate);
|
||||
|
||||
// Update the hash
|
||||
this._process();
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Finalizes the hash computation.
|
||||
* Note that the finalize operation is effectively a destructive, read-once operation.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = hasher.finalize();
|
||||
* var hash = hasher.finalize('message');
|
||||
* var hash = hasher.finalize(wordArray);
|
||||
*/
|
||||
finalize: function (messageUpdate) {
|
||||
// Final message update
|
||||
if (messageUpdate) {
|
||||
this._append(messageUpdate);
|
||||
}
|
||||
|
||||
// Perform concrete-hasher logic
|
||||
var hash = this._doFinalize();
|
||||
|
||||
return hash;
|
||||
},
|
||||
|
||||
blockSize: 512/32,
|
||||
|
||||
/**
|
||||
* Creates a shortcut function to a hasher's object interface.
|
||||
*
|
||||
* @param {Hasher} hasher The hasher to create a helper for.
|
||||
*
|
||||
* @return {Function} The shortcut function.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
||||
*/
|
||||
_createHelper: function (hasher) {
|
||||
return function (message, cfg) {
|
||||
return new hasher.init(cfg).finalize(message);
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {Hasher} hasher The hasher to use in this HMAC helper.
|
||||
*
|
||||
* @return {Function} The shortcut function.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
||||
*/
|
||||
_createHmacHelper: function (hasher) {
|
||||
return function (message, key) {
|
||||
return new C_algo.HMAC.init(hasher, key).finalize(message);
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Algorithm namespace.
|
||||
*/
|
||||
var C_algo = C.algo = {};
|
||||
|
||||
return C;
|
||||
}(Math));
|
||||
|
||||
|
||||
(function (undefined) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var X32WordArray = C_lib.WordArray;
|
||||
|
||||
/**
|
||||
* x64 namespace.
|
||||
*/
|
||||
var C_x64 = C.x64 = {};
|
||||
|
||||
/**
|
||||
* A 64-bit word.
|
||||
*/
|
||||
var X64Word = C_x64.Word = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created 64-bit word.
|
||||
*
|
||||
* @param {number} high The high 32 bits.
|
||||
* @param {number} low The low 32 bits.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
|
||||
*/
|
||||
init: function (high, low) {
|
||||
this.high = high;
|
||||
this.low = low;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bitwise NOTs this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after negating.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var negated = x64Word.not();
|
||||
*/
|
||||
// not: function () {
|
||||
// var high = ~this.high;
|
||||
// var low = ~this.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Bitwise ANDs this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to AND with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after ANDing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var anded = x64Word.and(anotherX64Word);
|
||||
*/
|
||||
// and: function (word) {
|
||||
// var high = this.high & word.high;
|
||||
// var low = this.low & word.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Bitwise ORs this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to OR with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after ORing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ored = x64Word.or(anotherX64Word);
|
||||
*/
|
||||
// or: function (word) {
|
||||
// var high = this.high | word.high;
|
||||
// var low = this.low | word.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Bitwise XORs this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to XOR with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after XORing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var xored = x64Word.xor(anotherX64Word);
|
||||
*/
|
||||
// xor: function (word) {
|
||||
// var high = this.high ^ word.high;
|
||||
// var low = this.low ^ word.low;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Shifts this word n bits to the left.
|
||||
*
|
||||
* @param {number} n The number of bits to shift.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after shifting.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var shifted = x64Word.shiftL(25);
|
||||
*/
|
||||
// shiftL: function (n) {
|
||||
// if (n < 32) {
|
||||
// var high = (this.high << n) | (this.low >>> (32 - n));
|
||||
// var low = this.low << n;
|
||||
// } else {
|
||||
// var high = this.low << (n - 32);
|
||||
// var low = 0;
|
||||
// }
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Shifts this word n bits to the right.
|
||||
*
|
||||
* @param {number} n The number of bits to shift.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after shifting.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var shifted = x64Word.shiftR(7);
|
||||
*/
|
||||
// shiftR: function (n) {
|
||||
// if (n < 32) {
|
||||
// var low = (this.low >>> n) | (this.high << (32 - n));
|
||||
// var high = this.high >>> n;
|
||||
// } else {
|
||||
// var low = this.high >>> (n - 32);
|
||||
// var high = 0;
|
||||
// }
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Rotates this word n bits to the left.
|
||||
*
|
||||
* @param {number} n The number of bits to rotate.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after rotating.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var rotated = x64Word.rotL(25);
|
||||
*/
|
||||
// rotL: function (n) {
|
||||
// return this.shiftL(n).or(this.shiftR(64 - n));
|
||||
// },
|
||||
|
||||
/**
|
||||
* Rotates this word n bits to the right.
|
||||
*
|
||||
* @param {number} n The number of bits to rotate.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after rotating.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var rotated = x64Word.rotR(7);
|
||||
*/
|
||||
// rotR: function (n) {
|
||||
// return this.shiftR(n).or(this.shiftL(64 - n));
|
||||
// },
|
||||
|
||||
/**
|
||||
* Adds this word with the passed word.
|
||||
*
|
||||
* @param {X64Word} word The x64-Word to add with this word.
|
||||
*
|
||||
* @return {X64Word} A new x64-Word object after adding.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var added = x64Word.add(anotherX64Word);
|
||||
*/
|
||||
// add: function (word) {
|
||||
// var low = (this.low + word.low) | 0;
|
||||
// var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
|
||||
// var high = (this.high + word.high + carry) | 0;
|
||||
|
||||
// return X64Word.create(high, low);
|
||||
// }
|
||||
});
|
||||
|
||||
/**
|
||||
* An array of 64-bit words.
|
||||
*
|
||||
* @property {Array} words The array of CryptoJS.x64.Word objects.
|
||||
* @property {number} sigBytes The number of significant bytes in this word array.
|
||||
*/
|
||||
var X64WordArray = C_x64.WordArray = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created word array.
|
||||
*
|
||||
* @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
|
||||
* @param {number} sigBytes (Optional) The number of significant bytes in the words.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.x64.WordArray.create();
|
||||
*
|
||||
* var wordArray = CryptoJS.x64.WordArray.create([
|
||||
* CryptoJS.x64.Word.create(0x00010203, 0x04050607),
|
||||
* CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
|
||||
* ]);
|
||||
*
|
||||
* var wordArray = CryptoJS.x64.WordArray.create([
|
||||
* CryptoJS.x64.Word.create(0x00010203, 0x04050607),
|
||||
* CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
|
||||
* ], 10);
|
||||
*/
|
||||
init: function (words, sigBytes) {
|
||||
words = this.words = words || [];
|
||||
|
||||
if (sigBytes != undefined) {
|
||||
this.sigBytes = sigBytes;
|
||||
} else {
|
||||
this.sigBytes = words.length * 8;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts this 64-bit word array to a 32-bit word array.
|
||||
*
|
||||
* @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var x32WordArray = x64WordArray.toX32();
|
||||
*/
|
||||
toX32: function () {
|
||||
// Shortcuts
|
||||
var x64Words = this.words;
|
||||
var x64WordsLength = x64Words.length;
|
||||
|
||||
// Convert
|
||||
var x32Words = [];
|
||||
for (var i = 0; i < x64WordsLength; i++) {
|
||||
var x64Word = x64Words[i];
|
||||
x32Words.push(x64Word.high);
|
||||
x32Words.push(x64Word.low);
|
||||
}
|
||||
|
||||
return X32WordArray.create(x32Words, this.sigBytes);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this word array.
|
||||
*
|
||||
* @return {X64WordArray} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = x64WordArray.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
|
||||
// Clone "words" array
|
||||
var words = clone.words = this.words.slice(0);
|
||||
|
||||
// Clone each X64Word object
|
||||
var wordsLength = words.length;
|
||||
for (var i = 0; i < wordsLength; i++) {
|
||||
words[i] = words[i].clone();
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Check if typed arrays are supported
|
||||
if (typeof ArrayBuffer != 'function') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
|
||||
// Reference original init
|
||||
var superInit = WordArray.init;
|
||||
|
||||
// Augment WordArray.init to handle typed arrays
|
||||
var subInit = WordArray.init = function (typedArray) {
|
||||
// Convert buffers to uint8
|
||||
if (typedArray instanceof ArrayBuffer) {
|
||||
typedArray = new Uint8Array(typedArray);
|
||||
}
|
||||
|
||||
// Convert other array views to uint8
|
||||
if (
|
||||
typedArray instanceof Int8Array ||
|
||||
(typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) ||
|
||||
typedArray instanceof Int16Array ||
|
||||
typedArray instanceof Uint16Array ||
|
||||
typedArray instanceof Int32Array ||
|
||||
typedArray instanceof Uint32Array ||
|
||||
typedArray instanceof Float32Array ||
|
||||
typedArray instanceof Float64Array
|
||||
) {
|
||||
typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
|
||||
}
|
||||
|
||||
// Handle Uint8Array
|
||||
if (typedArray instanceof Uint8Array) {
|
||||
// Shortcut
|
||||
var typedArrayByteLength = typedArray.byteLength;
|
||||
|
||||
// Extract bytes
|
||||
var words = [];
|
||||
for (var i = 0; i < typedArrayByteLength; i++) {
|
||||
words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
|
||||
}
|
||||
|
||||
// Initialize this word array
|
||||
superInit.call(this, words, typedArrayByteLength);
|
||||
} else {
|
||||
// Else call normal init
|
||||
superInit.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
subInit.prototype = WordArray;
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_enc = C.enc;
|
||||
|
||||
/**
|
||||
* UTF-16 BE encoding strategy.
|
||||
*/
|
||||
var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
|
||||
/**
|
||||
* Converts a word array to a UTF-16 BE string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The UTF-16 BE string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var utf16Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 2) {
|
||||
var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
|
||||
utf16Chars.push(String.fromCharCode(codePoint));
|
||||
}
|
||||
|
||||
return utf16Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a UTF-16 BE string to a word array.
|
||||
*
|
||||
* @param {string} utf16Str The UTF-16 BE string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
|
||||
*/
|
||||
parse: function (utf16Str) {
|
||||
// Shortcut
|
||||
var utf16StrLength = utf16Str.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < utf16StrLength; i++) {
|
||||
words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
|
||||
}
|
||||
|
||||
return WordArray.create(words, utf16StrLength * 2);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* UTF-16 LE encoding strategy.
|
||||
*/
|
||||
C_enc.Utf16LE = {
|
||||
/**
|
||||
* Converts a word array to a UTF-16 LE string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The UTF-16 LE string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var utf16Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 2) {
|
||||
var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
|
||||
utf16Chars.push(String.fromCharCode(codePoint));
|
||||
}
|
||||
|
||||
return utf16Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a UTF-16 LE string to a word array.
|
||||
*
|
||||
* @param {string} utf16Str The UTF-16 LE string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
|
||||
*/
|
||||
parse: function (utf16Str) {
|
||||
// Shortcut
|
||||
var utf16StrLength = utf16Str.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < utf16StrLength; i++) {
|
||||
words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
|
||||
}
|
||||
|
||||
return WordArray.create(words, utf16StrLength * 2);
|
||||
}
|
||||
};
|
||||
|
||||
function swapEndian(word) {
|
||||
return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
|
||||
}
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_enc = C.enc;
|
||||
|
||||
/**
|
||||
* Base64 encoding strategy.
|
||||
*/
|
||||
var Base64 = C_enc.Base64 = {
|
||||
/**
|
||||
* Converts a word array to a Base64 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The Base64 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var base64String = CryptoJS.enc.Base64.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
var map = this._map;
|
||||
|
||||
// Clamp excess bits
|
||||
wordArray.clamp();
|
||||
|
||||
// Convert
|
||||
var base64Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 3) {
|
||||
var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
|
||||
var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
|
||||
|
||||
var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
|
||||
|
||||
for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
|
||||
base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
|
||||
}
|
||||
}
|
||||
|
||||
// Add padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
while (base64Chars.length % 4) {
|
||||
base64Chars.push(paddingChar);
|
||||
}
|
||||
}
|
||||
|
||||
return base64Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Base64 string to a word array.
|
||||
*
|
||||
* @param {string} base64Str The Base64 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Base64.parse(base64String);
|
||||
*/
|
||||
parse: function (base64Str) {
|
||||
// Shortcuts
|
||||
var base64StrLength = base64Str.length;
|
||||
var map = this._map;
|
||||
var reverseMap = this._reverseMap;
|
||||
|
||||
if (!reverseMap) {
|
||||
reverseMap = this._reverseMap = [];
|
||||
for (var j = 0; j < map.length; j++) {
|
||||
reverseMap[map.charCodeAt(j)] = j;
|
||||
}
|
||||
}
|
||||
|
||||
// Ignore padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
var paddingIndex = base64Str.indexOf(paddingChar);
|
||||
if (paddingIndex !== -1) {
|
||||
base64StrLength = paddingIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert
|
||||
return parseLoop(base64Str, base64StrLength, reverseMap);
|
||||
|
||||
},
|
||||
|
||||
_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
|
||||
};
|
||||
|
||||
function parseLoop(base64Str, base64StrLength, reverseMap) {
|
||||
var words = [];
|
||||
var nBytes = 0;
|
||||
for (var i = 0; i < base64StrLength; i++) {
|
||||
if (i % 4) {
|
||||
var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
|
||||
var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
|
||||
var bitsCombined = bits1 | bits2;
|
||||
words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
|
||||
nBytes++;
|
||||
}
|
||||
}
|
||||
return WordArray.create(words, nBytes);
|
||||
}
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_enc = C.enc;
|
||||
|
||||
/**
|
||||
* Base64url encoding strategy.
|
||||
*/
|
||||
var Base64url = C_enc.Base64url = {
|
||||
/**
|
||||
* Converts a word array to a Base64url string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @param {boolean} urlSafe Whether to use url safe
|
||||
*
|
||||
* @return {string} The Base64url string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray, urlSafe=true) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
var map = urlSafe ? this._safe_map : this._map;
|
||||
|
||||
// Clamp excess bits
|
||||
wordArray.clamp();
|
||||
|
||||
// Convert
|
||||
var base64Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 3) {
|
||||
var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
|
||||
var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
|
||||
|
||||
var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
|
||||
|
||||
for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
|
||||
base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
|
||||
}
|
||||
}
|
||||
|
||||
// Add padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
while (base64Chars.length % 4) {
|
||||
base64Chars.push(paddingChar);
|
||||
}
|
||||
}
|
||||
|
||||
return base64Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Base64url string to a word array.
|
||||
*
|
||||
* @param {string} base64Str The Base64url string.
|
||||
*
|
||||
* @param {boolean} urlSafe Whether to use url safe
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Base64url.parse(base64String);
|
||||
*/
|
||||
parse: function (base64Str, urlSafe=true) {
|
||||
// Shortcuts
|
||||
var base64StrLength = base64Str.length;
|
||||
var map = urlSafe ? this._safe_map : this._map;
|
||||
var reverseMap = this._reverseMap;
|
||||
|
||||
if (!reverseMap) {
|
||||
reverseMap = this._reverseMap = [];
|
||||
for (var j = 0; j < map.length; j++) {
|
||||
reverseMap[map.charCodeAt(j)] = j;
|
||||
}
|
||||
}
|
||||
|
||||
// Ignore padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
var paddingIndex = base64Str.indexOf(paddingChar);
|
||||
if (paddingIndex !== -1) {
|
||||
base64StrLength = paddingIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert
|
||||
return parseLoop(base64Str, base64StrLength, reverseMap);
|
||||
|
||||
},
|
||||
|
||||
_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
|
||||
_safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
|
||||
};
|
||||
|
||||
function parseLoop(base64Str, base64StrLength, reverseMap) {
|
||||
var words = [];
|
||||
var nBytes = 0;
|
||||
for (var i = 0; i < base64StrLength; i++) {
|
||||
if (i % 4) {
|
||||
var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
|
||||
var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
|
||||
var bitsCombined = bits1 | bits2;
|
||||
words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
|
||||
nBytes++;
|
||||
}
|
||||
}
|
||||
return WordArray.create(words, nBytes);
|
||||
}
|
||||
}());
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Constants table
|
||||
var T = [];
|
||||
|
||||
// Compute constants
|
||||
(function () {
|
||||
for (var i = 0; i < 64; i++) {
|
||||
T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
|
||||
}
|
||||
}());
|
||||
|
||||
/**
|
||||
* MD5 hash algorithm.
|
||||
*/
|
||||
var MD5 = C_algo.MD5 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init([
|
||||
0x67452301, 0xefcdab89,
|
||||
0x98badcfe, 0x10325476
|
||||
]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Swap endian
|
||||
for (var i = 0; i < 16; i++) {
|
||||
// Shortcuts
|
||||
var offset_i = offset + i;
|
||||
var M_offset_i = M[offset_i];
|
||||
|
||||
M[offset_i] = (
|
||||
(((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
|
||||
(((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var H = this._hash.words;
|
||||
|
||||
var M_offset_0 = M[offset + 0];
|
||||
var M_offset_1 = M[offset + 1];
|
||||
var M_offset_2 = M[offset + 2];
|
||||
var M_offset_3 = M[offset + 3];
|
||||
var M_offset_4 = M[offset + 4];
|
||||
var M_offset_5 = M[offset + 5];
|
||||
var M_offset_6 = M[offset + 6];
|
||||
var M_offset_7 = M[offset + 7];
|
||||
var M_offset_8 = M[offset + 8];
|
||||
var M_offset_9 = M[offset + 9];
|
||||
var M_offset_10 = M[offset + 10];
|
||||
var M_offset_11 = M[offset + 11];
|
||||
var M_offset_12 = M[offset + 12];
|
||||
var M_offset_13 = M[offset + 13];
|
||||
var M_offset_14 = M[offset + 14];
|
||||
var M_offset_15 = M[offset + 15];
|
||||
|
||||
// Working varialbes
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
|
||||
// Computation
|
||||
a = FF(a, b, c, d, M_offset_0, 7, T[0]);
|
||||
d = FF(d, a, b, c, M_offset_1, 12, T[1]);
|
||||
c = FF(c, d, a, b, M_offset_2, 17, T[2]);
|
||||
b = FF(b, c, d, a, M_offset_3, 22, T[3]);
|
||||
a = FF(a, b, c, d, M_offset_4, 7, T[4]);
|
||||
d = FF(d, a, b, c, M_offset_5, 12, T[5]);
|
||||
c = FF(c, d, a, b, M_offset_6, 17, T[6]);
|
||||
b = FF(b, c, d, a, M_offset_7, 22, T[7]);
|
||||
a = FF(a, b, c, d, M_offset_8, 7, T[8]);
|
||||
d = FF(d, a, b, c, M_offset_9, 12, T[9]);
|
||||
c = FF(c, d, a, b, M_offset_10, 17, T[10]);
|
||||
b = FF(b, c, d, a, M_offset_11, 22, T[11]);
|
||||
a = FF(a, b, c, d, M_offset_12, 7, T[12]);
|
||||
d = FF(d, a, b, c, M_offset_13, 12, T[13]);
|
||||
c = FF(c, d, a, b, M_offset_14, 17, T[14]);
|
||||
b = FF(b, c, d, a, M_offset_15, 22, T[15]);
|
||||
|
||||
a = GG(a, b, c, d, M_offset_1, 5, T[16]);
|
||||
d = GG(d, a, b, c, M_offset_6, 9, T[17]);
|
||||
c = GG(c, d, a, b, M_offset_11, 14, T[18]);
|
||||
b = GG(b, c, d, a, M_offset_0, 20, T[19]);
|
||||
a = GG(a, b, c, d, M_offset_5, 5, T[20]);
|
||||
d = GG(d, a, b, c, M_offset_10, 9, T[21]);
|
||||
c = GG(c, d, a, b, M_offset_15, 14, T[22]);
|
||||
b = GG(b, c, d, a, M_offset_4, 20, T[23]);
|
||||
a = GG(a, b, c, d, M_offset_9, 5, T[24]);
|
||||
d = GG(d, a, b, c, M_offset_14, 9, T[25]);
|
||||
c = GG(c, d, a, b, M_offset_3, 14, T[26]);
|
||||
b = GG(b, c, d, a, M_offset_8, 20, T[27]);
|
||||
a = GG(a, b, c, d, M_offset_13, 5, T[28]);
|
||||
d = GG(d, a, b, c, M_offset_2, 9, T[29]);
|
||||
c = GG(c, d, a, b, M_offset_7, 14, T[30]);
|
||||
b = GG(b, c, d, a, M_offset_12, 20, T[31]);
|
||||
|
||||
a = HH(a, b, c, d, M_offset_5, 4, T[32]);
|
||||
d = HH(d, a, b, c, M_offset_8, 11, T[33]);
|
||||
c = HH(c, d, a, b, M_offset_11, 16, T[34]);
|
||||
b = HH(b, c, d, a, M_offset_14, 23, T[35]);
|
||||
a = HH(a, b, c, d, M_offset_1, 4, T[36]);
|
||||
d = HH(d, a, b, c, M_offset_4, 11, T[37]);
|
||||
c = HH(c, d, a, b, M_offset_7, 16, T[38]);
|
||||
b = HH(b, c, d, a, M_offset_10, 23, T[39]);
|
||||
a = HH(a, b, c, d, M_offset_13, 4, T[40]);
|
||||
d = HH(d, a, b, c, M_offset_0, 11, T[41]);
|
||||
c = HH(c, d, a, b, M_offset_3, 16, T[42]);
|
||||
b = HH(b, c, d, a, M_offset_6, 23, T[43]);
|
||||
a = HH(a, b, c, d, M_offset_9, 4, T[44]);
|
||||
d = HH(d, a, b, c, M_offset_12, 11, T[45]);
|
||||
c = HH(c, d, a, b, M_offset_15, 16, T[46]);
|
||||
b = HH(b, c, d, a, M_offset_2, 23, T[47]);
|
||||
|
||||
a = II(a, b, c, d, M_offset_0, 6, T[48]);
|
||||
d = II(d, a, b, c, M_offset_7, 10, T[49]);
|
||||
c = II(c, d, a, b, M_offset_14, 15, T[50]);
|
||||
b = II(b, c, d, a, M_offset_5, 21, T[51]);
|
||||
a = II(a, b, c, d, M_offset_12, 6, T[52]);
|
||||
d = II(d, a, b, c, M_offset_3, 10, T[53]);
|
||||
c = II(c, d, a, b, M_offset_10, 15, T[54]);
|
||||
b = II(b, c, d, a, M_offset_1, 21, T[55]);
|
||||
a = II(a, b, c, d, M_offset_8, 6, T[56]);
|
||||
d = II(d, a, b, c, M_offset_15, 10, T[57]);
|
||||
c = II(c, d, a, b, M_offset_6, 15, T[58]);
|
||||
b = II(b, c, d, a, M_offset_13, 21, T[59]);
|
||||
a = II(a, b, c, d, M_offset_4, 6, T[60]);
|
||||
d = II(d, a, b, c, M_offset_11, 10, T[61]);
|
||||
c = II(c, d, a, b, M_offset_2, 15, T[62]);
|
||||
b = II(b, c, d, a, M_offset_9, 21, T[63]);
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
|
||||
var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
|
||||
var nBitsTotalL = nBitsTotal;
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
|
||||
(((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
|
||||
(((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
|
||||
data.sigBytes = (dataWords.length + 1) * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Shortcuts
|
||||
var hash = this._hash;
|
||||
var H = hash.words;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 4; i++) {
|
||||
// Shortcut
|
||||
var H_i = H[i];
|
||||
|
||||
H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
|
||||
(((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
|
||||
}
|
||||
|
||||
// Return final computed hash
|
||||
return hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
function FF(a, b, c, d, x, s, t) {
|
||||
var n = a + ((b & c) | (~b & d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function GG(a, b, c, d, x, s, t) {
|
||||
var n = a + ((b & d) | (c & ~d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function HH(a, b, c, d, x, s, t) {
|
||||
var n = a + (b ^ c ^ d) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function II(a, b, c, d, x, s, t) {
|
||||
var n = a + (c ^ (b | ~d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.MD5('message');
|
||||
* var hash = CryptoJS.MD5(wordArray);
|
||||
*/
|
||||
C.MD5 = Hasher._createHelper(MD5);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacMD5(message, key);
|
||||
*/
|
||||
C.HmacMD5 = Hasher._createHmacHelper(MD5);
|
||||
}(Math));
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Reusable object
|
||||
var W = [];
|
||||
|
||||
/**
|
||||
* SHA-1 hash algorithm.
|
||||
*/
|
||||
var SHA1 = C_algo.SHA1 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init([
|
||||
0x67452301, 0xefcdab89,
|
||||
0x98badcfe, 0x10325476,
|
||||
0xc3d2e1f0
|
||||
]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var H = this._hash.words;
|
||||
|
||||
// Working variables
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
var e = H[4];
|
||||
|
||||
// Computation
|
||||
for (var i = 0; i < 80; i++) {
|
||||
if (i < 16) {
|
||||
W[i] = M[offset + i] | 0;
|
||||
} else {
|
||||
var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
|
||||
W[i] = (n << 1) | (n >>> 31);
|
||||
}
|
||||
|
||||
var t = ((a << 5) | (a >>> 27)) + e + W[i];
|
||||
if (i < 20) {
|
||||
t += ((b & c) | (~b & d)) + 0x5a827999;
|
||||
} else if (i < 40) {
|
||||
t += (b ^ c ^ d) + 0x6ed9eba1;
|
||||
} else if (i < 60) {
|
||||
t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
|
||||
} else /* if (i < 80) */ {
|
||||
t += (b ^ c ^ d) - 0x359d3e2a;
|
||||
}
|
||||
|
||||
e = d;
|
||||
d = c;
|
||||
c = (b << 30) | (b >>> 2);
|
||||
b = a;
|
||||
a = t;
|
||||
}
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
H[4] = (H[4] + e) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Return final computed hash
|
||||
return this._hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA1('message');
|
||||
* var hash = CryptoJS.SHA1(wordArray);
|
||||
*/
|
||||
C.SHA1 = Hasher._createHelper(SHA1);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA1(message, key);
|
||||
*/
|
||||
C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
|
||||
}());
|
||||
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Initialization and round constants tables
|
||||
var H = [];
|
||||
var K = [];
|
||||
|
||||
// Compute constants
|
||||
(function () {
|
||||
function isPrime(n) {
|
||||
var sqrtN = Math.sqrt(n);
|
||||
for (var factor = 2; factor <= sqrtN; factor++) {
|
||||
if (!(n % factor)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function getFractionalBits(n) {
|
||||
return ((n - (n | 0)) * 0x100000000) | 0;
|
||||
}
|
||||
|
||||
var n = 2;
|
||||
var nPrime = 0;
|
||||
while (nPrime < 64) {
|
||||
if (isPrime(n)) {
|
||||
if (nPrime < 8) {
|
||||
H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
|
||||
}
|
||||
K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
|
||||
|
||||
nPrime++;
|
||||
}
|
||||
|
||||
n++;
|
||||
}
|
||||
}());
|
||||
|
||||
// Reusable object
|
||||
var W = [];
|
||||
|
||||
/**
|
||||
* SHA-256 hash algorithm.
|
||||
*/
|
||||
var SHA256 = C_algo.SHA256 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init(H.slice(0));
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var H = this._hash.words;
|
||||
|
||||
// Working variables
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
var e = H[4];
|
||||
var f = H[5];
|
||||
var g = H[6];
|
||||
var h = H[7];
|
||||
|
||||
// Computation
|
||||
for (var i = 0; i < 64; i++) {
|
||||
if (i < 16) {
|
||||
W[i] = M[offset + i] | 0;
|
||||
} else {
|
||||
var gamma0x = W[i - 15];
|
||||
var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^
|
||||
((gamma0x << 14) | (gamma0x >>> 18)) ^
|
||||
(gamma0x >>> 3);
|
||||
|
||||
var gamma1x = W[i - 2];
|
||||
var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^
|
||||
((gamma1x << 13) | (gamma1x >>> 19)) ^
|
||||
(gamma1x >>> 10);
|
||||
|
||||
W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
|
||||
}
|
||||
|
||||
var ch = (e & f) ^ (~e & g);
|
||||
var maj = (a & b) ^ (a & c) ^ (b & c);
|
||||
|
||||
var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
|
||||
var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));
|
||||
|
||||
var t1 = h + sigma1 + ch + K[i] + W[i];
|
||||
var t2 = sigma0 + maj;
|
||||
|
||||
h = g;
|
||||
g = f;
|
||||
f = e;
|
||||
e = (d + t1) | 0;
|
||||
d = c;
|
||||
c = b;
|
||||
b = a;
|
||||
a = (t1 + t2) | 0;
|
||||
}
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
H[4] = (H[4] + e) | 0;
|
||||
H[5] = (H[5] + f) | 0;
|
||||
H[6] = (H[6] + g) | 0;
|
||||
H[7] = (H[7] + h) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Return final computed hash
|
||||
return this._hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA256('message');
|
||||
* var hash = CryptoJS.SHA256(wordArray);
|
||||
*/
|
||||
C.SHA256 = Hasher._createHelper(SHA256);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA256(message, key);
|
||||
*/
|
||||
C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
|
||||
}(Math));
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var SHA256 = C_algo.SHA256;
|
||||
|
||||
/**
|
||||
* SHA-224 hash algorithm.
|
||||
*/
|
||||
var SHA224 = C_algo.SHA224 = SHA256.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init([
|
||||
0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
|
||||
0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
|
||||
]);
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
var hash = SHA256._doFinalize.call(this);
|
||||
|
||||
hash.sigBytes -= 4;
|
||||
|
||||
return hash;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA224('message');
|
||||
* var hash = CryptoJS.SHA224(wordArray);
|
||||
*/
|
||||
C.SHA224 = SHA256._createHelper(SHA224);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA224(message, key);
|
||||
*/
|
||||
C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_x64 = C.x64;
|
||||
var X64Word = C_x64.Word;
|
||||
var X64WordArray = C_x64.WordArray;
|
||||
var C_algo = C.algo;
|
||||
|
||||
function X64Word_create() {
|
||||
return X64Word.create.apply(X64Word, arguments);
|
||||
}
|
||||
|
||||
// Constants
|
||||
var K = [
|
||||
X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),
|
||||
X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),
|
||||
X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),
|
||||
X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),
|
||||
X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),
|
||||
X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),
|
||||
X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),
|
||||
X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),
|
||||
X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),
|
||||
X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),
|
||||
X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),
|
||||
X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),
|
||||
X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),
|
||||
X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),
|
||||
X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),
|
||||
X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),
|
||||
X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),
|
||||
X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),
|
||||
X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),
|
||||
X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),
|
||||
X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),
|
||||
X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),
|
||||
X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),
|
||||
X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),
|
||||
X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),
|
||||
X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),
|
||||
X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),
|
||||
X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),
|
||||
X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),
|
||||
X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),
|
||||
X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),
|
||||
X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),
|
||||
X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),
|
||||
X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),
|
||||
X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),
|
||||
X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),
|
||||
X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),
|
||||
X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),
|
||||
X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),
|
||||
X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)
|
||||
];
|
||||
|
||||
// Reusable objects
|
||||
var W = [];
|
||||
(function () {
|
||||
for (var i = 0; i < 80; i++) {
|
||||
W[i] = X64Word_create();
|
||||
}
|
||||
}());
|
||||
|
||||
/**
|
||||
* SHA-512 hash algorithm.
|
||||
*/
|
||||
var SHA512 = C_algo.SHA512 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new X64WordArray.init([
|
||||
new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),
|
||||
new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),
|
||||
new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),
|
||||
new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)
|
||||
]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcuts
|
||||
var H = this._hash.words;
|
||||
|
||||
var H0 = H[0];
|
||||
var H1 = H[1];
|
||||
var H2 = H[2];
|
||||
var H3 = H[3];
|
||||
var H4 = H[4];
|
||||
var H5 = H[5];
|
||||
var H6 = H[6];
|
||||
var H7 = H[7];
|
||||
|
||||
var H0h = H0.high;
|
||||
var H0l = H0.low;
|
||||
var H1h = H1.high;
|
||||
var H1l = H1.low;
|
||||
var H2h = H2.high;
|
||||
var H2l = H2.low;
|
||||
var H3h = H3.high;
|
||||
var H3l = H3.low;
|
||||
var H4h = H4.high;
|
||||
var H4l = H4.low;
|
||||
var H5h = H5.high;
|
||||
var H5l = H5.low;
|
||||
var H6h = H6.high;
|
||||
var H6l = H6.low;
|
||||
var H7h = H7.high;
|
||||
var H7l = H7.low;
|
||||
|
||||
// Working variables
|
||||
var ah = H0h;
|
||||
var al = H0l;
|
||||
var bh = H1h;
|
||||
var bl = H1l;
|
||||
var ch = H2h;
|
||||
var cl = H2l;
|
||||
var dh = H3h;
|
||||
var dl = H3l;
|
||||
var eh = H4h;
|
||||
var el = H4l;
|
||||
var fh = H5h;
|
||||
var fl = H5l;
|
||||
var gh = H6h;
|
||||
var gl = H6l;
|
||||
var hh = H7h;
|
||||
var hl = H7l;
|
||||
|
||||
// Rounds
|
||||
for (var i = 0; i < 80; i++) {
|
||||
var Wil;
|
||||
var Wih;
|
||||
|
||||
// Shortcut
|
||||
var Wi = W[i];
|
||||
|
||||
// Extend message
|
||||
if (i < 16) {
|
||||
Wih = Wi.high = M[offset + i * 2] | 0;
|
||||
Wil = Wi.low = M[offset + i * 2 + 1] | 0;
|
||||
} else {
|
||||
// Gamma0
|
||||
var gamma0x = W[i - 15];
|
||||
var gamma0xh = gamma0x.high;
|
||||
var gamma0xl = gamma0x.low;
|
||||
var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);
|
||||
var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));
|
||||
|
||||
// Gamma1
|
||||
var gamma1x = W[i - 2];
|
||||
var gamma1xh = gamma1x.high;
|
||||
var gamma1xl = gamma1x.low;
|
||||
var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);
|
||||
var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));
|
||||
|
||||
// W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
|
||||
var Wi7 = W[i - 7];
|
||||
var Wi7h = Wi7.high;
|
||||
var Wi7l = Wi7.low;
|
||||
|
||||
var Wi16 = W[i - 16];
|
||||
var Wi16h = Wi16.high;
|
||||
var Wi16l = Wi16.low;
|
||||
|
||||
Wil = gamma0l + Wi7l;
|
||||
Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);
|
||||
Wil = Wil + gamma1l;
|
||||
Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);
|
||||
Wil = Wil + Wi16l;
|
||||
Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);
|
||||
|
||||
Wi.high = Wih;
|
||||
Wi.low = Wil;
|
||||
}
|
||||
|
||||
var chh = (eh & fh) ^ (~eh & gh);
|
||||
var chl = (el & fl) ^ (~el & gl);
|
||||
var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
|
||||
var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
|
||||
|
||||
var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
|
||||
var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
|
||||
var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
|
||||
var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
|
||||
|
||||
// t1 = h + sigma1 + ch + K[i] + W[i]
|
||||
var Ki = K[i];
|
||||
var Kih = Ki.high;
|
||||
var Kil = Ki.low;
|
||||
|
||||
var t1l = hl + sigma1l;
|
||||
var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
|
||||
var t1l = t1l + chl;
|
||||
var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
|
||||
var t1l = t1l + Kil;
|
||||
var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);
|
||||
var t1l = t1l + Wil;
|
||||
var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);
|
||||
|
||||
// t2 = sigma0 + maj
|
||||
var t2l = sigma0l + majl;
|
||||
var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
|
||||
|
||||
// Update working variables
|
||||
hh = gh;
|
||||
hl = gl;
|
||||
gh = fh;
|
||||
gl = fl;
|
||||
fh = eh;
|
||||
fl = el;
|
||||
el = (dl + t1l) | 0;
|
||||
eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
|
||||
dh = ch;
|
||||
dl = cl;
|
||||
ch = bh;
|
||||
cl = bl;
|
||||
bh = ah;
|
||||
bl = al;
|
||||
al = (t1l + t2l) | 0;
|
||||
ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
|
||||
}
|
||||
|
||||
// Intermediate hash value
|
||||
H0l = H0.low = (H0l + al);
|
||||
H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));
|
||||
H1l = H1.low = (H1l + bl);
|
||||
H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));
|
||||
H2l = H2.low = (H2l + cl);
|
||||
H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));
|
||||
H3l = H3.low = (H3l + dl);
|
||||
H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));
|
||||
H4l = H4.low = (H4l + el);
|
||||
H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));
|
||||
H5l = H5.low = (H5l + fl);
|
||||
H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));
|
||||
H6l = H6.low = (H6l + gl);
|
||||
H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));
|
||||
H7l = H7.low = (H7l + hl);
|
||||
H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);
|
||||
dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Convert hash to 32-bit word array before returning
|
||||
var hash = this._hash.toX32();
|
||||
|
||||
// Return final computed hash
|
||||
return hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
blockSize: 1024/32
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA512('message');
|
||||
* var hash = CryptoJS.SHA512(wordArray);
|
||||
*/
|
||||
C.SHA512 = Hasher._createHelper(SHA512);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA512(message, key);
|
||||
*/
|
||||
C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_x64 = C.x64;
|
||||
var X64Word = C_x64.Word;
|
||||
var X64WordArray = C_x64.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var SHA512 = C_algo.SHA512;
|
||||
|
||||
/**
|
||||
* SHA-384 hash algorithm.
|
||||
*/
|
||||
var SHA384 = C_algo.SHA384 = SHA512.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new X64WordArray.init([
|
||||
new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
|
||||
new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
|
||||
new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
|
||||
new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
|
||||
]);
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
var hash = SHA512._doFinalize.call(this);
|
||||
|
||||
hash.sigBytes -= 16;
|
||||
|
||||
return hash;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA384('message');
|
||||
* var hash = CryptoJS.SHA384(wordArray);
|
||||
*/
|
||||
C.SHA384 = SHA512._createHelper(SHA384);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA384(message, key);
|
||||
*/
|
||||
C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
|
||||
}());
|
||||
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_x64 = C.x64;
|
||||
var X64Word = C_x64.Word;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Constants tables
|
||||
var RHO_OFFSETS = [];
|
||||
var PI_INDEXES = [];
|
||||
var ROUND_CONSTANTS = [];
|
||||
|
||||
// Compute Constants
|
||||
(function () {
|
||||
// Compute rho offset constants
|
||||
var x = 1, y = 0;
|
||||
for (var t = 0; t < 24; t++) {
|
||||
RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
|
||||
|
||||
var newX = y % 5;
|
||||
var newY = (2 * x + 3 * y) % 5;
|
||||
x = newX;
|
||||
y = newY;
|
||||
}
|
||||
|
||||
// Compute pi index constants
|
||||
for (var x = 0; x < 5; x++) {
|
||||
for (var y = 0; y < 5; y++) {
|
||||
PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
|
||||
}
|
||||
}
|
||||
|
||||
// Compute round constants
|
||||
var LFSR = 0x01;
|
||||
for (var i = 0; i < 24; i++) {
|
||||
var roundConstantMsw = 0;
|
||||
var roundConstantLsw = 0;
|
||||
|
||||
for (var j = 0; j < 7; j++) {
|
||||
if (LFSR & 0x01) {
|
||||
var bitPosition = (1 << j) - 1;
|
||||
if (bitPosition < 32) {
|
||||
roundConstantLsw ^= 1 << bitPosition;
|
||||
} else /* if (bitPosition >= 32) */ {
|
||||
roundConstantMsw ^= 1 << (bitPosition - 32);
|
||||
}
|
||||
}
|
||||
|
||||
// Compute next LFSR
|
||||
if (LFSR & 0x80) {
|
||||
// Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
|
||||
LFSR = (LFSR << 1) ^ 0x71;
|
||||
} else {
|
||||
LFSR <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
|
||||
}
|
||||
}());
|
||||
|
||||
// Reusable objects for temporary values
|
||||
var T = [];
|
||||
(function () {
|
||||
for (var i = 0; i < 25; i++) {
|
||||
T[i] = X64Word.create();
|
||||
}
|
||||
}());
|
||||
|
||||
/**
|
||||
* SHA-3 hash algorithm.
|
||||
*/
|
||||
var SHA3 = C_algo.SHA3 = Hasher.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} outputLength
|
||||
* The desired number of bits in the output hash.
|
||||
* Only values permitted are: 224, 256, 384, 512.
|
||||
* Default: 512
|
||||
*/
|
||||
cfg: Hasher.cfg.extend({
|
||||
outputLength: 512
|
||||
}),
|
||||
|
||||
_doReset: function () {
|
||||
var state = this._state = []
|
||||
for (var i = 0; i < 25; i++) {
|
||||
state[i] = new X64Word.init();
|
||||
}
|
||||
|
||||
this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcuts
|
||||
var state = this._state;
|
||||
var nBlockSizeLanes = this.blockSize / 2;
|
||||
|
||||
// Absorb
|
||||
for (var i = 0; i < nBlockSizeLanes; i++) {
|
||||
// Shortcuts
|
||||
var M2i = M[offset + 2 * i];
|
||||
var M2i1 = M[offset + 2 * i + 1];
|
||||
|
||||
// Swap endian
|
||||
M2i = (
|
||||
(((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
|
||||
(((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
M2i1 = (
|
||||
(((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
|
||||
(((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
|
||||
// Absorb message into state
|
||||
var lane = state[i];
|
||||
lane.high ^= M2i1;
|
||||
lane.low ^= M2i;
|
||||
}
|
||||
|
||||
// Rounds
|
||||
for (var round = 0; round < 24; round++) {
|
||||
// Theta
|
||||
for (var x = 0; x < 5; x++) {
|
||||
// Mix column lanes
|
||||
var tMsw = 0, tLsw = 0;
|
||||
for (var y = 0; y < 5; y++) {
|
||||
var lane = state[x + 5 * y];
|
||||
tMsw ^= lane.high;
|
||||
tLsw ^= lane.low;
|
||||
}
|
||||
|
||||
// Temporary values
|
||||
var Tx = T[x];
|
||||
Tx.high = tMsw;
|
||||
Tx.low = tLsw;
|
||||
}
|
||||
for (var x = 0; x < 5; x++) {
|
||||
// Shortcuts
|
||||
var Tx4 = T[(x + 4) % 5];
|
||||
var Tx1 = T[(x + 1) % 5];
|
||||
var Tx1Msw = Tx1.high;
|
||||
var Tx1Lsw = Tx1.low;
|
||||
|
||||
// Mix surrounding columns
|
||||
var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
|
||||
var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
|
||||
for (var y = 0; y < 5; y++) {
|
||||
var lane = state[x + 5 * y];
|
||||
lane.high ^= tMsw;
|
||||
lane.low ^= tLsw;
|
||||
}
|
||||
}
|
||||
|
||||
// Rho Pi
|
||||
for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
|
||||
var tMsw;
|
||||
var tLsw;
|
||||
|
||||
// Shortcuts
|
||||
var lane = state[laneIndex];
|
||||
var laneMsw = lane.high;
|
||||
var laneLsw = lane.low;
|
||||
var rhoOffset = RHO_OFFSETS[laneIndex];
|
||||
|
||||
// Rotate lanes
|
||||
if (rhoOffset < 32) {
|
||||
tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
|
||||
tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
|
||||
} else /* if (rhoOffset >= 32) */ {
|
||||
tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
|
||||
tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
|
||||
}
|
||||
|
||||
// Transpose lanes
|
||||
var TPiLane = T[PI_INDEXES[laneIndex]];
|
||||
TPiLane.high = tMsw;
|
||||
TPiLane.low = tLsw;
|
||||
}
|
||||
|
||||
// Rho pi at x = y = 0
|
||||
var T0 = T[0];
|
||||
var state0 = state[0];
|
||||
T0.high = state0.high;
|
||||
T0.low = state0.low;
|
||||
|
||||
// Chi
|
||||
for (var x = 0; x < 5; x++) {
|
||||
for (var y = 0; y < 5; y++) {
|
||||
// Shortcuts
|
||||
var laneIndex = x + 5 * y;
|
||||
var lane = state[laneIndex];
|
||||
var TLane = T[laneIndex];
|
||||
var Tx1Lane = T[((x + 1) % 5) + 5 * y];
|
||||
var Tx2Lane = T[((x + 2) % 5) + 5 * y];
|
||||
|
||||
// Mix rows
|
||||
lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
|
||||
lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
|
||||
}
|
||||
}
|
||||
|
||||
// Iota
|
||||
var lane = state[0];
|
||||
var roundConstant = ROUND_CONSTANTS[round];
|
||||
lane.high ^= roundConstant.high;
|
||||
lane.low ^= roundConstant.low;
|
||||
}
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
var blockSizeBits = this.blockSize * 32;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
|
||||
dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Shortcuts
|
||||
var state = this._state;
|
||||
var outputLengthBytes = this.cfg.outputLength / 8;
|
||||
var outputLengthLanes = outputLengthBytes / 8;
|
||||
|
||||
// Squeeze
|
||||
var hashWords = [];
|
||||
for (var i = 0; i < outputLengthLanes; i++) {
|
||||
// Shortcuts
|
||||
var lane = state[i];
|
||||
var laneMsw = lane.high;
|
||||
var laneLsw = lane.low;
|
||||
|
||||
// Swap endian
|
||||
laneMsw = (
|
||||
(((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
|
||||
(((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
laneLsw = (
|
||||
(((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
|
||||
(((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
|
||||
// Squeeze state to retrieve hash
|
||||
hashWords.push(laneLsw);
|
||||
hashWords.push(laneMsw);
|
||||
}
|
||||
|
||||
// Return final computed hash
|
||||
return new WordArray.init(hashWords, outputLengthBytes);
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
|
||||
var state = clone._state = this._state.slice(0);
|
||||
for (var i = 0; i < 25; i++) {
|
||||
state[i] = state[i].clone();
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA3('message');
|
||||
* var hash = CryptoJS.SHA3(wordArray);
|
||||
*/
|
||||
C.SHA3 = Hasher._createHelper(SHA3);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA3(message, key);
|
||||
*/
|
||||
C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
|
||||
}(Math));
|
||||
|
||||
|
||||
/** @preserve
|
||||
(c) 2012 by Cédric Mesnil. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Constants table
|
||||
var _zl = WordArray.create([
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
||||
7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
|
||||
3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
|
||||
1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
|
||||
4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);
|
||||
var _zr = WordArray.create([
|
||||
5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
|
||||
6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
|
||||
15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
|
||||
8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
|
||||
12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);
|
||||
var _sl = WordArray.create([
|
||||
11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
|
||||
7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
|
||||
11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
|
||||
11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
|
||||
9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);
|
||||
var _sr = WordArray.create([
|
||||
8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
|
||||
9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
|
||||
9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
|
||||
15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
|
||||
8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);
|
||||
|
||||
var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);
|
||||
var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);
|
||||
|
||||
/**
|
||||
* RIPEMD160 hash algorithm.
|
||||
*/
|
||||
var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 16; i++) {
|
||||
// Shortcuts
|
||||
var offset_i = offset + i;
|
||||
var M_offset_i = M[offset_i];
|
||||
|
||||
// Swap
|
||||
M[offset_i] = (
|
||||
(((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
|
||||
(((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
}
|
||||
// Shortcut
|
||||
var H = this._hash.words;
|
||||
var hl = _hl.words;
|
||||
var hr = _hr.words;
|
||||
var zl = _zl.words;
|
||||
var zr = _zr.words;
|
||||
var sl = _sl.words;
|
||||
var sr = _sr.words;
|
||||
|
||||
// Working variables
|
||||
var al, bl, cl, dl, el;
|
||||
var ar, br, cr, dr, er;
|
||||
|
||||
ar = al = H[0];
|
||||
br = bl = H[1];
|
||||
cr = cl = H[2];
|
||||
dr = dl = H[3];
|
||||
er = el = H[4];
|
||||
// Computation
|
||||
var t;
|
||||
for (var i = 0; i < 80; i += 1) {
|
||||
t = (al + M[offset+zl[i]])|0;
|
||||
if (i<16){
|
||||
t += f1(bl,cl,dl) + hl[0];
|
||||
} else if (i<32) {
|
||||
t += f2(bl,cl,dl) + hl[1];
|
||||
} else if (i<48) {
|
||||
t += f3(bl,cl,dl) + hl[2];
|
||||
} else if (i<64) {
|
||||
t += f4(bl,cl,dl) + hl[3];
|
||||
} else {// if (i<80) {
|
||||
t += f5(bl,cl,dl) + hl[4];
|
||||
}
|
||||
t = t|0;
|
||||
t = rotl(t,sl[i]);
|
||||
t = (t+el)|0;
|
||||
al = el;
|
||||
el = dl;
|
||||
dl = rotl(cl, 10);
|
||||
cl = bl;
|
||||
bl = t;
|
||||
|
||||
t = (ar + M[offset+zr[i]])|0;
|
||||
if (i<16){
|
||||
t += f5(br,cr,dr) + hr[0];
|
||||
} else if (i<32) {
|
||||
t += f4(br,cr,dr) + hr[1];
|
||||
} else if (i<48) {
|
||||
t += f3(br,cr,dr) + hr[2];
|
||||
} else if (i<64) {
|
||||
t += f2(br,cr,dr) + hr[3];
|
||||
} else {// if (i<80) {
|
||||
t += f1(br,cr,dr) + hr[4];
|
||||
}
|
||||
t = t|0;
|
||||
t = rotl(t,sr[i]) ;
|
||||
t = (t+er)|0;
|
||||
ar = er;
|
||||
er = dr;
|
||||
dr = rotl(cr, 10);
|
||||
cr = br;
|
||||
br = t;
|
||||
}
|
||||
// Intermediate hash value
|
||||
t = (H[1] + cl + dr)|0;
|
||||
H[1] = (H[2] + dl + er)|0;
|
||||
H[2] = (H[3] + el + ar)|0;
|
||||
H[3] = (H[4] + al + br)|0;
|
||||
H[4] = (H[0] + bl + cr)|0;
|
||||
H[0] = t;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
|
||||
(((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
data.sigBytes = (dataWords.length + 1) * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Shortcuts
|
||||
var hash = this._hash;
|
||||
var H = hash.words;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 5; i++) {
|
||||
// Shortcut
|
||||
var H_i = H[i];
|
||||
|
||||
// Swap
|
||||
H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
|
||||
(((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
|
||||
}
|
||||
|
||||
// Return final computed hash
|
||||
return hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function f1(x, y, z) {
|
||||
return ((x) ^ (y) ^ (z));
|
||||
|
||||
}
|
||||
|
||||
function f2(x, y, z) {
|
||||
return (((x)&(y)) | ((~x)&(z)));
|
||||
}
|
||||
|
||||
function f3(x, y, z) {
|
||||
return (((x) | (~(y))) ^ (z));
|
||||
}
|
||||
|
||||
function f4(x, y, z) {
|
||||
return (((x) & (z)) | ((y)&(~(z))));
|
||||
}
|
||||
|
||||
function f5(x, y, z) {
|
||||
return ((x) ^ ((y) |(~(z))));
|
||||
|
||||
}
|
||||
|
||||
function rotl(x,n) {
|
||||
return (x<<n) | (x>>>(32-n));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.RIPEMD160('message');
|
||||
* var hash = CryptoJS.RIPEMD160(wordArray);
|
||||
*/
|
||||
C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacRIPEMD160(message, key);
|
||||
*/
|
||||
C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
|
||||
}(Math));
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var C_enc = C.enc;
|
||||
var Utf8 = C_enc.Utf8;
|
||||
var C_algo = C.algo;
|
||||
|
||||
/**
|
||||
* HMAC algorithm.
|
||||
*/
|
||||
var HMAC = C_algo.HMAC = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created HMAC.
|
||||
*
|
||||
* @param {Hasher} hasher The hash algorithm to use.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
|
||||
*/
|
||||
init: function (hasher, key) {
|
||||
// Init hasher
|
||||
hasher = this._hasher = new hasher.init();
|
||||
|
||||
// Convert string to WordArray, else assume WordArray already
|
||||
if (typeof key == 'string') {
|
||||
key = Utf8.parse(key);
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var hasherBlockSize = hasher.blockSize;
|
||||
var hasherBlockSizeBytes = hasherBlockSize * 4;
|
||||
|
||||
// Allow arbitrary length keys
|
||||
if (key.sigBytes > hasherBlockSizeBytes) {
|
||||
key = hasher.finalize(key);
|
||||
}
|
||||
|
||||
// Clamp excess bits
|
||||
key.clamp();
|
||||
|
||||
// Clone key for inner and outer pads
|
||||
var oKey = this._oKey = key.clone();
|
||||
var iKey = this._iKey = key.clone();
|
||||
|
||||
// Shortcuts
|
||||
var oKeyWords = oKey.words;
|
||||
var iKeyWords = iKey.words;
|
||||
|
||||
// XOR keys with pad constants
|
||||
for (var i = 0; i < hasherBlockSize; i++) {
|
||||
oKeyWords[i] ^= 0x5c5c5c5c;
|
||||
iKeyWords[i] ^= 0x36363636;
|
||||
}
|
||||
oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
|
||||
|
||||
// Set initial values
|
||||
this.reset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets this HMAC to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hmacHasher.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Shortcut
|
||||
var hasher = this._hasher;
|
||||
|
||||
// Reset
|
||||
hasher.reset();
|
||||
hasher.update(this._iKey);
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates this HMAC with a message.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate The message to append.
|
||||
*
|
||||
* @return {HMAC} This HMAC instance.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hmacHasher.update('message');
|
||||
* hmacHasher.update(wordArray);
|
||||
*/
|
||||
update: function (messageUpdate) {
|
||||
this._hasher.update(messageUpdate);
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Finalizes the HMAC computation.
|
||||
* Note that the finalize operation is effectively a destructive, read-once operation.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = hmacHasher.finalize();
|
||||
* var hmac = hmacHasher.finalize('message');
|
||||
* var hmac = hmacHasher.finalize(wordArray);
|
||||
*/
|
||||
finalize: function (messageUpdate) {
|
||||
// Shortcut
|
||||
var hasher = this._hasher;
|
||||
|
||||
// Compute HMAC
|
||||
var innerHash = hasher.finalize(messageUpdate);
|
||||
hasher.reset();
|
||||
var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
|
||||
|
||||
return hmac;
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var SHA1 = C_algo.SHA1;
|
||||
var HMAC = C_algo.HMAC;
|
||||
|
||||
/**
|
||||
* Password-Based Key Derivation Function 2 algorithm.
|
||||
*/
|
||||
var PBKDF2 = C_algo.PBKDF2 = Base.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
|
||||
* @property {Hasher} hasher The hasher to use. Default: SHA1
|
||||
* @property {number} iterations The number of iterations to perform. Default: 1
|
||||
*/
|
||||
cfg: Base.extend({
|
||||
keySize: 128/32,
|
||||
hasher: SHA1,
|
||||
iterations: 1
|
||||
}),
|
||||
|
||||
/**
|
||||
* Initializes a newly created key derivation function.
|
||||
*
|
||||
* @param {Object} cfg (Optional) The configuration options to use for the derivation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var kdf = CryptoJS.algo.PBKDF2.create();
|
||||
* var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
|
||||
* var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
init: function (cfg) {
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Computes the Password-Based Key Derivation Function 2.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = kdf.compute(password, salt);
|
||||
*/
|
||||
compute: function (password, salt) {
|
||||
// Shortcut
|
||||
var cfg = this.cfg;
|
||||
|
||||
// Init HMAC
|
||||
var hmac = HMAC.create(cfg.hasher, password);
|
||||
|
||||
// Initial values
|
||||
var derivedKey = WordArray.create();
|
||||
var blockIndex = WordArray.create([0x00000001]);
|
||||
|
||||
// Shortcuts
|
||||
var derivedKeyWords = derivedKey.words;
|
||||
var blockIndexWords = blockIndex.words;
|
||||
var keySize = cfg.keySize;
|
||||
var iterations = cfg.iterations;
|
||||
|
||||
// Generate key
|
||||
while (derivedKeyWords.length < keySize) {
|
||||
var block = hmac.update(salt).finalize(blockIndex);
|
||||
hmac.reset();
|
||||
|
||||
// Shortcuts
|
||||
var blockWords = block.words;
|
||||
var blockWordsLength = blockWords.length;
|
||||
|
||||
// Iterations
|
||||
var intermediate = block;
|
||||
for (var i = 1; i < iterations; i++) {
|
||||
intermediate = hmac.finalize(intermediate);
|
||||
hmac.reset();
|
||||
|
||||
// Shortcut
|
||||
var intermediateWords = intermediate.words;
|
||||
|
||||
// XOR intermediate with block
|
||||
for (var j = 0; j < blockWordsLength; j++) {
|
||||
blockWords[j] ^= intermediateWords[j];
|
||||
}
|
||||
}
|
||||
|
||||
derivedKey.concat(block);
|
||||
blockIndexWords[0]++;
|
||||
}
|
||||
derivedKey.sigBytes = keySize * 4;
|
||||
|
||||
return derivedKey;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Computes the Password-Based Key Derivation Function 2.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this computation.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = CryptoJS.PBKDF2(password, salt);
|
||||
* var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
|
||||
* var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
C.PBKDF2 = function (password, salt, cfg) {
|
||||
return PBKDF2.create(cfg).compute(password, salt);
|
||||
};
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_algo = C.algo;
|
||||
var MD5 = C_algo.MD5;
|
||||
|
||||
/**
|
||||
* This key derivation function is meant to conform with EVP_BytesToKey.
|
||||
* www.openssl.org/docs/crypto/EVP_BytesToKey.html
|
||||
*/
|
||||
var EvpKDF = C_algo.EvpKDF = Base.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
|
||||
* @property {Hasher} hasher The hash algorithm to use. Default: MD5
|
||||
* @property {number} iterations The number of iterations to perform. Default: 1
|
||||
*/
|
||||
cfg: Base.extend({
|
||||
keySize: 128/32,
|
||||
hasher: MD5,
|
||||
iterations: 1
|
||||
}),
|
||||
|
||||
/**
|
||||
* Initializes a newly created key derivation function.
|
||||
*
|
||||
* @param {Object} cfg (Optional) The configuration options to use for the derivation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var kdf = CryptoJS.algo.EvpKDF.create();
|
||||
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
|
||||
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
init: function (cfg) {
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Derives a key from a password.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = kdf.compute(password, salt);
|
||||
*/
|
||||
compute: function (password, salt) {
|
||||
var block;
|
||||
|
||||
// Shortcut
|
||||
var cfg = this.cfg;
|
||||
|
||||
// Init hasher
|
||||
var hasher = cfg.hasher.create();
|
||||
|
||||
// Initial values
|
||||
var derivedKey = WordArray.create();
|
||||
|
||||
// Shortcuts
|
||||
var derivedKeyWords = derivedKey.words;
|
||||
var keySize = cfg.keySize;
|
||||
var iterations = cfg.iterations;
|
||||
|
||||
// Generate key
|
||||
while (derivedKeyWords.length < keySize) {
|
||||
if (block) {
|
||||
hasher.update(block);
|
||||
}
|
||||
block = hasher.update(password).finalize(salt);
|
||||
hasher.reset();
|
||||
|
||||
// Iterations
|
||||
for (var i = 1; i < iterations; i++) {
|
||||
block = hasher.finalize(block);
|
||||
hasher.reset();
|
||||
}
|
||||
|
||||
derivedKey.concat(block);
|
||||
}
|
||||
derivedKey.sigBytes = keySize * 4;
|
||||
|
||||
return derivedKey;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Derives a key from a password.
|
||||
*
|
||||
* @param {WordArray|string} password The password.
|
||||
* @param {WordArray|string} salt A salt.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this computation.
|
||||
*
|
||||
* @return {WordArray} The derived key.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var key = CryptoJS.EvpKDF(password, salt);
|
||||
* var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
|
||||
* var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
|
||||
*/
|
||||
C.EvpKDF = function (password, salt, cfg) {
|
||||
return EvpKDF.create(cfg).compute(password, salt);
|
||||
};
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Cipher core components.
|
||||
*/
|
||||
CryptoJS.lib.Cipher || (function (undefined) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var Base = C_lib.Base;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
|
||||
var C_enc = C.enc;
|
||||
var Utf8 = C_enc.Utf8;
|
||||
var Base64 = C_enc.Base64;
|
||||
var C_algo = C.algo;
|
||||
var EvpKDF = C_algo.EvpKDF;
|
||||
|
||||
/**
|
||||
* Abstract base cipher template.
|
||||
*
|
||||
* @property {number} keySize This cipher's key size. Default: 4 (128 bits)
|
||||
* @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
|
||||
* @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
|
||||
* @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
|
||||
*/
|
||||
var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {WordArray} iv The IV to use for this operation.
|
||||
*/
|
||||
cfg: Base.extend(),
|
||||
|
||||
/**
|
||||
* Creates this cipher in encryption mode.
|
||||
*
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {Cipher} A cipher instance.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
|
||||
*/
|
||||
createEncryptor: function (key, cfg) {
|
||||
return this.create(this._ENC_XFORM_MODE, key, cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates this cipher in decryption mode.
|
||||
*
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {Cipher} A cipher instance.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
|
||||
*/
|
||||
createDecryptor: function (key, cfg) {
|
||||
return this.create(this._DEC_XFORM_MODE, key, cfg);
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes a newly created cipher.
|
||||
*
|
||||
* @param {number} xformMode Either the encryption or decryption transormation mode constant.
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
|
||||
*/
|
||||
init: function (xformMode, key, cfg) {
|
||||
// Apply config defaults
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Store transform mode and key
|
||||
this._xformMode = xformMode;
|
||||
this._key = key;
|
||||
|
||||
// Set initial values
|
||||
this.reset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets this cipher to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* cipher.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Reset data buffer
|
||||
BufferedBlockAlgorithm.reset.call(this);
|
||||
|
||||
// Perform concrete-cipher logic
|
||||
this._doReset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds data to be encrypted or decrypted.
|
||||
*
|
||||
* @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
|
||||
*
|
||||
* @return {WordArray} The data after processing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var encrypted = cipher.process('data');
|
||||
* var encrypted = cipher.process(wordArray);
|
||||
*/
|
||||
process: function (dataUpdate) {
|
||||
// Append
|
||||
this._append(dataUpdate);
|
||||
|
||||
// Process available blocks
|
||||
return this._process();
|
||||
},
|
||||
|
||||
/**
|
||||
* Finalizes the encryption or decryption process.
|
||||
* Note that the finalize operation is effectively a destructive, read-once operation.
|
||||
*
|
||||
* @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
|
||||
*
|
||||
* @return {WordArray} The data after final processing.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var encrypted = cipher.finalize();
|
||||
* var encrypted = cipher.finalize('data');
|
||||
* var encrypted = cipher.finalize(wordArray);
|
||||
*/
|
||||
finalize: function (dataUpdate) {
|
||||
// Final data update
|
||||
if (dataUpdate) {
|
||||
this._append(dataUpdate);
|
||||
}
|
||||
|
||||
// Perform concrete-cipher logic
|
||||
var finalProcessedData = this._doFinalize();
|
||||
|
||||
return finalProcessedData;
|
||||
},
|
||||
|
||||
keySize: 128/32,
|
||||
|
||||
ivSize: 128/32,
|
||||
|
||||
_ENC_XFORM_MODE: 1,
|
||||
|
||||
_DEC_XFORM_MODE: 2,
|
||||
|
||||
/**
|
||||
* Creates shortcut functions to a cipher's object interface.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher to create a helper for.
|
||||
*
|
||||
* @return {Object} An object with encrypt and decrypt shortcut functions.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
|
||||
*/
|
||||
_createHelper: (function () {
|
||||
function selectCipherStrategy(key) {
|
||||
if (typeof key == 'string') {
|
||||
return PasswordBasedCipher;
|
||||
} else {
|
||||
return SerializableCipher;
|
||||
}
|
||||
}
|
||||
|
||||
return function (cipher) {
|
||||
return {
|
||||
encrypt: function (message, key, cfg) {
|
||||
return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
|
||||
},
|
||||
|
||||
decrypt: function (ciphertext, key, cfg) {
|
||||
return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
|
||||
}
|
||||
};
|
||||
};
|
||||
}())
|
||||
});
|
||||
|
||||
/**
|
||||
* Abstract base stream cipher template.
|
||||
*
|
||||
* @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
|
||||
*/
|
||||
var StreamCipher = C_lib.StreamCipher = Cipher.extend({
|
||||
_doFinalize: function () {
|
||||
// Process partial blocks
|
||||
var finalProcessedBlocks = this._process(!!'flush');
|
||||
|
||||
return finalProcessedBlocks;
|
||||
},
|
||||
|
||||
blockSize: 1
|
||||
});
|
||||
|
||||
/**
|
||||
* Mode namespace.
|
||||
*/
|
||||
var C_mode = C.mode = {};
|
||||
|
||||
/**
|
||||
* Abstract base block cipher mode template.
|
||||
*/
|
||||
var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
|
||||
/**
|
||||
* Creates this mode for encryption.
|
||||
*
|
||||
* @param {Cipher} cipher A block cipher instance.
|
||||
* @param {Array} iv The IV words.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
|
||||
*/
|
||||
createEncryptor: function (cipher, iv) {
|
||||
return this.Encryptor.create(cipher, iv);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates this mode for decryption.
|
||||
*
|
||||
* @param {Cipher} cipher A block cipher instance.
|
||||
* @param {Array} iv The IV words.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
|
||||
*/
|
||||
createDecryptor: function (cipher, iv) {
|
||||
return this.Decryptor.create(cipher, iv);
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes a newly created mode.
|
||||
*
|
||||
* @param {Cipher} cipher A block cipher instance.
|
||||
* @param {Array} iv The IV words.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
|
||||
*/
|
||||
init: function (cipher, iv) {
|
||||
this._cipher = cipher;
|
||||
this._iv = iv;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Cipher Block Chaining mode.
|
||||
*/
|
||||
var CBC = C_mode.CBC = (function () {
|
||||
/**
|
||||
* Abstract base CBC mode.
|
||||
*/
|
||||
var CBC = BlockCipherMode.extend();
|
||||
|
||||
/**
|
||||
* CBC encryptor.
|
||||
*/
|
||||
CBC.Encryptor = CBC.extend({
|
||||
/**
|
||||
* Processes the data block at offset.
|
||||
*
|
||||
* @param {Array} words The data words to operate on.
|
||||
* @param {number} offset The offset where the block starts.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* mode.processBlock(data.words, offset);
|
||||
*/
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
// XOR and encrypt
|
||||
xorBlock.call(this, words, offset, blockSize);
|
||||
cipher.encryptBlock(words, offset);
|
||||
|
||||
// Remember this block to use with next block
|
||||
this._prevBlock = words.slice(offset, offset + blockSize);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* CBC decryptor.
|
||||
*/
|
||||
CBC.Decryptor = CBC.extend({
|
||||
/**
|
||||
* Processes the data block at offset.
|
||||
*
|
||||
* @param {Array} words The data words to operate on.
|
||||
* @param {number} offset The offset where the block starts.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* mode.processBlock(data.words, offset);
|
||||
*/
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
// Remember this block to use with next block
|
||||
var thisBlock = words.slice(offset, offset + blockSize);
|
||||
|
||||
// Decrypt and XOR
|
||||
cipher.decryptBlock(words, offset);
|
||||
xorBlock.call(this, words, offset, blockSize);
|
||||
|
||||
// This block becomes the previous block
|
||||
this._prevBlock = thisBlock;
|
||||
}
|
||||
});
|
||||
|
||||
function xorBlock(words, offset, blockSize) {
|
||||
var block;
|
||||
|
||||
// Shortcut
|
||||
var iv = this._iv;
|
||||
|
||||
// Choose mixing block
|
||||
if (iv) {
|
||||
block = iv;
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
} else {
|
||||
block = this._prevBlock;
|
||||
}
|
||||
|
||||
// XOR blocks
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= block[i];
|
||||
}
|
||||
}
|
||||
|
||||
return CBC;
|
||||
}());
|
||||
|
||||
/**
|
||||
* Padding namespace.
|
||||
*/
|
||||
var C_pad = C.pad = {};
|
||||
|
||||
/**
|
||||
* PKCS #5/7 padding strategy.
|
||||
*/
|
||||
var Pkcs7 = C_pad.Pkcs7 = {
|
||||
/**
|
||||
* Pads data using the algorithm defined in PKCS #5/7.
|
||||
*
|
||||
* @param {WordArray} data The data to pad.
|
||||
* @param {number} blockSize The multiple that the data should be padded to.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* CryptoJS.pad.Pkcs7.pad(wordArray, 4);
|
||||
*/
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcut
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count padding bytes
|
||||
var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
|
||||
|
||||
// Create padding word
|
||||
var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
|
||||
|
||||
// Create padding
|
||||
var paddingWords = [];
|
||||
for (var i = 0; i < nPaddingBytes; i += 4) {
|
||||
paddingWords.push(paddingWord);
|
||||
}
|
||||
var padding = WordArray.create(paddingWords, nPaddingBytes);
|
||||
|
||||
// Add padding
|
||||
data.concat(padding);
|
||||
},
|
||||
|
||||
/**
|
||||
* Unpads data that had been padded using the algorithm defined in PKCS #5/7.
|
||||
*
|
||||
* @param {WordArray} data The data to unpad.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* CryptoJS.pad.Pkcs7.unpad(wordArray);
|
||||
*/
|
||||
unpad: function (data) {
|
||||
// Get number of padding bytes from last byte
|
||||
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
|
||||
|
||||
// Remove padding
|
||||
data.sigBytes -= nPaddingBytes;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Abstract base block cipher template.
|
||||
*
|
||||
* @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
|
||||
*/
|
||||
var BlockCipher = C_lib.BlockCipher = Cipher.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {Mode} mode The block mode to use. Default: CBC
|
||||
* @property {Padding} padding The padding strategy to use. Default: Pkcs7
|
||||
*/
|
||||
cfg: Cipher.cfg.extend({
|
||||
mode: CBC,
|
||||
padding: Pkcs7
|
||||
}),
|
||||
|
||||
reset: function () {
|
||||
var modeCreator;
|
||||
|
||||
// Reset cipher
|
||||
Cipher.reset.call(this);
|
||||
|
||||
// Shortcuts
|
||||
var cfg = this.cfg;
|
||||
var iv = cfg.iv;
|
||||
var mode = cfg.mode;
|
||||
|
||||
// Reset block mode
|
||||
if (this._xformMode == this._ENC_XFORM_MODE) {
|
||||
modeCreator = mode.createEncryptor;
|
||||
} else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
|
||||
modeCreator = mode.createDecryptor;
|
||||
// Keep at least one block in the buffer for unpadding
|
||||
this._minBufferSize = 1;
|
||||
}
|
||||
|
||||
if (this._mode && this._mode.__creator == modeCreator) {
|
||||
this._mode.init(this, iv && iv.words);
|
||||
} else {
|
||||
this._mode = modeCreator.call(mode, this, iv && iv.words);
|
||||
this._mode.__creator = modeCreator;
|
||||
}
|
||||
},
|
||||
|
||||
_doProcessBlock: function (words, offset) {
|
||||
this._mode.processBlock(words, offset);
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
var finalProcessedBlocks;
|
||||
|
||||
// Shortcut
|
||||
var padding = this.cfg.padding;
|
||||
|
||||
// Finalize
|
||||
if (this._xformMode == this._ENC_XFORM_MODE) {
|
||||
// Pad data
|
||||
padding.pad(this._data, this.blockSize);
|
||||
|
||||
// Process final blocks
|
||||
finalProcessedBlocks = this._process(!!'flush');
|
||||
} else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
|
||||
// Process final blocks
|
||||
finalProcessedBlocks = this._process(!!'flush');
|
||||
|
||||
// Unpad data
|
||||
padding.unpad(finalProcessedBlocks);
|
||||
}
|
||||
|
||||
return finalProcessedBlocks;
|
||||
},
|
||||
|
||||
blockSize: 128/32
|
||||
});
|
||||
|
||||
/**
|
||||
* A collection of cipher parameters.
|
||||
*
|
||||
* @property {WordArray} ciphertext The raw ciphertext.
|
||||
* @property {WordArray} key The key to this ciphertext.
|
||||
* @property {WordArray} iv The IV used in the ciphering operation.
|
||||
* @property {WordArray} salt The salt used with a key derivation function.
|
||||
* @property {Cipher} algorithm The cipher algorithm.
|
||||
* @property {Mode} mode The block mode used in the ciphering operation.
|
||||
* @property {Padding} padding The padding scheme used in the ciphering operation.
|
||||
* @property {number} blockSize The block size of the cipher.
|
||||
* @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
|
||||
*/
|
||||
var CipherParams = C_lib.CipherParams = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created cipher params object.
|
||||
*
|
||||
* @param {Object} cipherParams An object with any of the possible cipher parameters.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipherParams = CryptoJS.lib.CipherParams.create({
|
||||
* ciphertext: ciphertextWordArray,
|
||||
* key: keyWordArray,
|
||||
* iv: ivWordArray,
|
||||
* salt: saltWordArray,
|
||||
* algorithm: CryptoJS.algo.AES,
|
||||
* mode: CryptoJS.mode.CBC,
|
||||
* padding: CryptoJS.pad.PKCS7,
|
||||
* blockSize: 4,
|
||||
* formatter: CryptoJS.format.OpenSSL
|
||||
* });
|
||||
*/
|
||||
init: function (cipherParams) {
|
||||
this.mixIn(cipherParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts this cipher params object to a string.
|
||||
*
|
||||
* @param {Format} formatter (Optional) The formatting strategy to use.
|
||||
*
|
||||
* @return {string} The stringified cipher params.
|
||||
*
|
||||
* @throws Error If neither the formatter nor the default formatter is set.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var string = cipherParams + '';
|
||||
* var string = cipherParams.toString();
|
||||
* var string = cipherParams.toString(CryptoJS.format.OpenSSL);
|
||||
*/
|
||||
toString: function (formatter) {
|
||||
return (formatter || this.formatter).stringify(this);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Format namespace.
|
||||
*/
|
||||
var C_format = C.format = {};
|
||||
|
||||
/**
|
||||
* OpenSSL formatting strategy.
|
||||
*/
|
||||
var OpenSSLFormatter = C_format.OpenSSL = {
|
||||
/**
|
||||
* Converts a cipher params object to an OpenSSL-compatible string.
|
||||
*
|
||||
* @param {CipherParams} cipherParams The cipher params object.
|
||||
*
|
||||
* @return {string} The OpenSSL-compatible string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
|
||||
*/
|
||||
stringify: function (cipherParams) {
|
||||
var wordArray;
|
||||
|
||||
// Shortcuts
|
||||
var ciphertext = cipherParams.ciphertext;
|
||||
var salt = cipherParams.salt;
|
||||
|
||||
// Format
|
||||
if (salt) {
|
||||
wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);
|
||||
} else {
|
||||
wordArray = ciphertext;
|
||||
}
|
||||
|
||||
return wordArray.toString(Base64);
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts an OpenSSL-compatible string to a cipher params object.
|
||||
*
|
||||
* @param {string} openSSLStr The OpenSSL-compatible string.
|
||||
*
|
||||
* @return {CipherParams} The cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
|
||||
*/
|
||||
parse: function (openSSLStr) {
|
||||
var salt;
|
||||
|
||||
// Parse base64
|
||||
var ciphertext = Base64.parse(openSSLStr);
|
||||
|
||||
// Shortcut
|
||||
var ciphertextWords = ciphertext.words;
|
||||
|
||||
// Test for salt
|
||||
if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
|
||||
// Extract salt
|
||||
salt = WordArray.create(ciphertextWords.slice(2, 4));
|
||||
|
||||
// Remove salt from ciphertext
|
||||
ciphertextWords.splice(0, 4);
|
||||
ciphertext.sigBytes -= 16;
|
||||
}
|
||||
|
||||
return CipherParams.create({ ciphertext: ciphertext, salt: salt });
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* A cipher wrapper that returns ciphertext as a serializable cipher params object.
|
||||
*/
|
||||
var SerializableCipher = C_lib.SerializableCipher = Base.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
|
||||
*/
|
||||
cfg: Base.extend({
|
||||
format: OpenSSLFormatter
|
||||
}),
|
||||
|
||||
/**
|
||||
* Encrypts a message.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {WordArray|string} message The message to encrypt.
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {CipherParams} A cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
encrypt: function (cipher, message, key, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Encrypt
|
||||
var encryptor = cipher.createEncryptor(key, cfg);
|
||||
var ciphertext = encryptor.finalize(message);
|
||||
|
||||
// Shortcut
|
||||
var cipherCfg = encryptor.cfg;
|
||||
|
||||
// Create and return serializable cipher params
|
||||
return CipherParams.create({
|
||||
ciphertext: ciphertext,
|
||||
key: key,
|
||||
iv: cipherCfg.iv,
|
||||
algorithm: cipher,
|
||||
mode: cipherCfg.mode,
|
||||
padding: cipherCfg.padding,
|
||||
blockSize: cipher.blockSize,
|
||||
formatter: cfg.format
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Decrypts serialized ciphertext.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {CipherParams|string} ciphertext The ciphertext to decrypt.
|
||||
* @param {WordArray} key The key.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {WordArray} The plaintext.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
||||
* var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
decrypt: function (cipher, ciphertext, key, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Convert string to CipherParams
|
||||
ciphertext = this._parse(ciphertext, cfg.format);
|
||||
|
||||
// Decrypt
|
||||
var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
|
||||
|
||||
return plaintext;
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts serialized ciphertext to CipherParams,
|
||||
* else assumed CipherParams already and returns ciphertext unchanged.
|
||||
*
|
||||
* @param {CipherParams|string} ciphertext The ciphertext.
|
||||
* @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
|
||||
*
|
||||
* @return {CipherParams} The unserialized ciphertext.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
|
||||
*/
|
||||
_parse: function (ciphertext, format) {
|
||||
if (typeof ciphertext == 'string') {
|
||||
return format.parse(ciphertext, this);
|
||||
} else {
|
||||
return ciphertext;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Key derivation function namespace.
|
||||
*/
|
||||
var C_kdf = C.kdf = {};
|
||||
|
||||
/**
|
||||
* OpenSSL key derivation function.
|
||||
*/
|
||||
var OpenSSLKdf = C_kdf.OpenSSL = {
|
||||
/**
|
||||
* Derives a key and IV from a password.
|
||||
*
|
||||
* @param {string} password The password to derive from.
|
||||
* @param {number} keySize The size in words of the key to generate.
|
||||
* @param {number} ivSize The size in words of the IV to generate.
|
||||
* @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
|
||||
*
|
||||
* @return {CipherParams} A cipher params object with the key, IV, and salt.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
|
||||
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
|
||||
*/
|
||||
execute: function (password, keySize, ivSize, salt) {
|
||||
// Generate random salt
|
||||
if (!salt) {
|
||||
salt = WordArray.random(64/8);
|
||||
}
|
||||
|
||||
// Derive key and IV
|
||||
var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
|
||||
|
||||
// Separate key and IV
|
||||
var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
|
||||
key.sigBytes = keySize * 4;
|
||||
|
||||
// Return params
|
||||
return CipherParams.create({ key: key, iv: iv, salt: salt });
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* A serializable cipher wrapper that derives the key from a password,
|
||||
* and returns ciphertext as a serializable cipher params object.
|
||||
*/
|
||||
var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
|
||||
*/
|
||||
cfg: SerializableCipher.cfg.extend({
|
||||
kdf: OpenSSLKdf
|
||||
}),
|
||||
|
||||
/**
|
||||
* Encrypts a message using a password.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {WordArray|string} message The message to encrypt.
|
||||
* @param {string} password The password.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {CipherParams} A cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
|
||||
* var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
encrypt: function (cipher, message, password, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Derive key and other params
|
||||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);
|
||||
|
||||
// Add IV to config
|
||||
cfg.iv = derivedParams.iv;
|
||||
|
||||
// Encrypt
|
||||
var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
|
||||
|
||||
// Mix in derived params
|
||||
ciphertext.mixIn(derivedParams);
|
||||
|
||||
return ciphertext;
|
||||
},
|
||||
|
||||
/**
|
||||
* Decrypts serialized ciphertext using a password.
|
||||
*
|
||||
* @param {Cipher} cipher The cipher algorithm to use.
|
||||
* @param {CipherParams|string} ciphertext The ciphertext to decrypt.
|
||||
* @param {string} password The password.
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
||||
*
|
||||
* @return {WordArray} The plaintext.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
|
||||
* var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
|
||||
*/
|
||||
decrypt: function (cipher, ciphertext, password, cfg) {
|
||||
// Apply config defaults
|
||||
cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Convert string to CipherParams
|
||||
ciphertext = this._parse(ciphertext, cfg.format);
|
||||
|
||||
// Derive key and other params
|
||||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);
|
||||
|
||||
// Add IV to config
|
||||
cfg.iv = derivedParams.iv;
|
||||
|
||||
// Decrypt
|
||||
var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
|
||||
|
||||
return plaintext;
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Cipher Feedback block mode.
|
||||
*/
|
||||
CryptoJS.mode.CFB = (function () {
|
||||
var CFB = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
CFB.Encryptor = CFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
|
||||
|
||||
// Remember this block to use with next block
|
||||
this._prevBlock = words.slice(offset, offset + blockSize);
|
||||
}
|
||||
});
|
||||
|
||||
CFB.Decryptor = CFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
// Remember this block to use with next block
|
||||
var thisBlock = words.slice(offset, offset + blockSize);
|
||||
|
||||
generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
|
||||
|
||||
// This block becomes the previous block
|
||||
this._prevBlock = thisBlock;
|
||||
}
|
||||
});
|
||||
|
||||
function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
|
||||
var keystream;
|
||||
|
||||
// Shortcut
|
||||
var iv = this._iv;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
keystream = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
} else {
|
||||
keystream = this._prevBlock;
|
||||
}
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
|
||||
return CFB;
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Counter block mode.
|
||||
*/
|
||||
CryptoJS.mode.CTR = (function () {
|
||||
var CTR = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
var Encryptor = CTR.Encryptor = CTR.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher
|
||||
var blockSize = cipher.blockSize;
|
||||
var iv = this._iv;
|
||||
var counter = this._counter;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
counter = this._counter = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
}
|
||||
var keystream = counter.slice(0);
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Increment counter
|
||||
counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
CTR.Decryptor = Encryptor;
|
||||
|
||||
return CTR;
|
||||
}());
|
||||
|
||||
|
||||
/** @preserve
|
||||
* Counter block mode compatible with Dr Brian Gladman fileenc.c
|
||||
* derived from CryptoJS.mode.CTR
|
||||
* Jan Hruby jhruby.web@gmail.com
|
||||
*/
|
||||
CryptoJS.mode.CTRGladman = (function () {
|
||||
var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
function incWord(word)
|
||||
{
|
||||
if (((word >> 24) & 0xff) === 0xff) { //overflow
|
||||
var b1 = (word >> 16)&0xff;
|
||||
var b2 = (word >> 8)&0xff;
|
||||
var b3 = word & 0xff;
|
||||
|
||||
if (b1 === 0xff) // overflow b1
|
||||
{
|
||||
b1 = 0;
|
||||
if (b2 === 0xff)
|
||||
{
|
||||
b2 = 0;
|
||||
if (b3 === 0xff)
|
||||
{
|
||||
b3 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
++b3;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++b2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++b1;
|
||||
}
|
||||
|
||||
word = 0;
|
||||
word += (b1 << 16);
|
||||
word += (b2 << 8);
|
||||
word += b3;
|
||||
}
|
||||
else
|
||||
{
|
||||
word += (0x01 << 24);
|
||||
}
|
||||
return word;
|
||||
}
|
||||
|
||||
function incCounter(counter)
|
||||
{
|
||||
if ((counter[0] = incWord(counter[0])) === 0)
|
||||
{
|
||||
// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8
|
||||
counter[1] = incWord(counter[1]);
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
||||
var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher
|
||||
var blockSize = cipher.blockSize;
|
||||
var iv = this._iv;
|
||||
var counter = this._counter;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
counter = this._counter = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
}
|
||||
|
||||
incCounter(counter);
|
||||
|
||||
var keystream = counter.slice(0);
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
CTRGladman.Decryptor = Encryptor;
|
||||
|
||||
return CTRGladman;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Output Feedback block mode.
|
||||
*/
|
||||
CryptoJS.mode.OFB = (function () {
|
||||
var OFB = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
var Encryptor = OFB.Encryptor = OFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher
|
||||
var blockSize = cipher.blockSize;
|
||||
var iv = this._iv;
|
||||
var keystream = this._keystream;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
keystream = this._keystream = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
}
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
OFB.Decryptor = Encryptor;
|
||||
|
||||
return OFB;
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* Electronic Codebook block mode.
|
||||
*/
|
||||
CryptoJS.mode.ECB = (function () {
|
||||
var ECB = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
ECB.Encryptor = ECB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
this._cipher.encryptBlock(words, offset);
|
||||
}
|
||||
});
|
||||
|
||||
ECB.Decryptor = ECB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
this._cipher.decryptBlock(words, offset);
|
||||
}
|
||||
});
|
||||
|
||||
return ECB;
|
||||
}());
|
||||
|
||||
|
||||
/**
|
||||
* ANSI X.923 padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.AnsiX923 = {
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcuts
|
||||
var dataSigBytes = data.sigBytes;
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count padding bytes
|
||||
var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
|
||||
|
||||
// Compute last byte position
|
||||
var lastBytePos = dataSigBytes + nPaddingBytes - 1;
|
||||
|
||||
// Pad
|
||||
data.clamp();
|
||||
data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
|
||||
data.sigBytes += nPaddingBytes;
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Get number of padding bytes from last byte
|
||||
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
|
||||
|
||||
// Remove padding
|
||||
data.sigBytes -= nPaddingBytes;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* ISO 10126 padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.Iso10126 = {
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcut
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count padding bytes
|
||||
var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
|
||||
|
||||
// Pad
|
||||
data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).
|
||||
concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Get number of padding bytes from last byte
|
||||
var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
|
||||
|
||||
// Remove padding
|
||||
data.sigBytes -= nPaddingBytes;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* ISO/IEC 9797-1 Padding Method 2.
|
||||
*/
|
||||
CryptoJS.pad.Iso97971 = {
|
||||
pad: function (data, blockSize) {
|
||||
// Add 0x80 byte
|
||||
data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
|
||||
|
||||
// Zero pad the rest
|
||||
CryptoJS.pad.ZeroPadding.pad(data, blockSize);
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Remove zero padding
|
||||
CryptoJS.pad.ZeroPadding.unpad(data);
|
||||
|
||||
// Remove one more byte -- the 0x80 byte
|
||||
data.sigBytes--;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Zero padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.ZeroPadding = {
|
||||
pad: function (data, blockSize) {
|
||||
// Shortcut
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Pad
|
||||
data.clamp();
|
||||
data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
|
||||
},
|
||||
|
||||
unpad: function (data) {
|
||||
// Shortcut
|
||||
var dataWords = data.words;
|
||||
|
||||
// Unpad
|
||||
var i = data.sigBytes - 1;
|
||||
for (var i = data.sigBytes - 1; i >= 0; i--) {
|
||||
if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
|
||||
data.sigBytes = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* A noop padding strategy.
|
||||
*/
|
||||
CryptoJS.pad.NoPadding = {
|
||||
pad: function () {
|
||||
},
|
||||
|
||||
unpad: function () {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
(function (undefined) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var CipherParams = C_lib.CipherParams;
|
||||
var C_enc = C.enc;
|
||||
var Hex = C_enc.Hex;
|
||||
var C_format = C.format;
|
||||
|
||||
var HexFormatter = C_format.Hex = {
|
||||
/**
|
||||
* Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
|
||||
*
|
||||
* @param {CipherParams} cipherParams The cipher params object.
|
||||
*
|
||||
* @return {string} The hexadecimally encoded string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hexString = CryptoJS.format.Hex.stringify(cipherParams);
|
||||
*/
|
||||
stringify: function (cipherParams) {
|
||||
return cipherParams.ciphertext.toString(Hex);
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a hexadecimally encoded ciphertext string to a cipher params object.
|
||||
*
|
||||
* @param {string} input The hexadecimally encoded string.
|
||||
*
|
||||
* @return {CipherParams} The cipher params object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var cipherParams = CryptoJS.format.Hex.parse(hexString);
|
||||
*/
|
||||
parse: function (input) {
|
||||
var ciphertext = Hex.parse(input);
|
||||
return CipherParams.create({ ciphertext: ciphertext });
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var BlockCipher = C_lib.BlockCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Lookup tables
|
||||
var SBOX = [];
|
||||
var INV_SBOX = [];
|
||||
var SUB_MIX_0 = [];
|
||||
var SUB_MIX_1 = [];
|
||||
var SUB_MIX_2 = [];
|
||||
var SUB_MIX_3 = [];
|
||||
var INV_SUB_MIX_0 = [];
|
||||
var INV_SUB_MIX_1 = [];
|
||||
var INV_SUB_MIX_2 = [];
|
||||
var INV_SUB_MIX_3 = [];
|
||||
|
||||
// Compute lookup tables
|
||||
(function () {
|
||||
// Compute double table
|
||||
var d = [];
|
||||
for (var i = 0; i < 256; i++) {
|
||||
if (i < 128) {
|
||||
d[i] = i << 1;
|
||||
} else {
|
||||
d[i] = (i << 1) ^ 0x11b;
|
||||
}
|
||||
}
|
||||
|
||||
// Walk GF(2^8)
|
||||
var x = 0;
|
||||
var xi = 0;
|
||||
for (var i = 0; i < 256; i++) {
|
||||
// Compute sbox
|
||||
var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
|
||||
sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
|
||||
SBOX[x] = sx;
|
||||
INV_SBOX[sx] = x;
|
||||
|
||||
// Compute multiplication
|
||||
var x2 = d[x];
|
||||
var x4 = d[x2];
|
||||
var x8 = d[x4];
|
||||
|
||||
// Compute sub bytes, mix columns tables
|
||||
var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
|
||||
SUB_MIX_0[x] = (t << 24) | (t >>> 8);
|
||||
SUB_MIX_1[x] = (t << 16) | (t >>> 16);
|
||||
SUB_MIX_2[x] = (t << 8) | (t >>> 24);
|
||||
SUB_MIX_3[x] = t;
|
||||
|
||||
// Compute inv sub bytes, inv mix columns tables
|
||||
var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
|
||||
INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
|
||||
INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
|
||||
INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);
|
||||
INV_SUB_MIX_3[sx] = t;
|
||||
|
||||
// Compute next counter
|
||||
if (!x) {
|
||||
x = xi = 1;
|
||||
} else {
|
||||
x = x2 ^ d[d[d[x8 ^ x2]]];
|
||||
xi ^= d[d[xi]];
|
||||
}
|
||||
}
|
||||
}());
|
||||
|
||||
// Precomputed Rcon lookup
|
||||
var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
|
||||
|
||||
/**
|
||||
* AES block cipher algorithm.
|
||||
*/
|
||||
var AES = C_algo.AES = BlockCipher.extend({
|
||||
_doReset: function () {
|
||||
var t;
|
||||
|
||||
// Skip reset of nRounds has been set before and key did not change
|
||||
if (this._nRounds && this._keyPriorReset === this._key) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var key = this._keyPriorReset = this._key;
|
||||
var keyWords = key.words;
|
||||
var keySize = key.sigBytes / 4;
|
||||
|
||||
// Compute number of rounds
|
||||
var nRounds = this._nRounds = keySize + 6;
|
||||
|
||||
// Compute number of key schedule rows
|
||||
var ksRows = (nRounds + 1) * 4;
|
||||
|
||||
// Compute key schedule
|
||||
var keySchedule = this._keySchedule = [];
|
||||
for (var ksRow = 0; ksRow < ksRows; ksRow++) {
|
||||
if (ksRow < keySize) {
|
||||
keySchedule[ksRow] = keyWords[ksRow];
|
||||
} else {
|
||||
t = keySchedule[ksRow - 1];
|
||||
|
||||
if (!(ksRow % keySize)) {
|
||||
// Rot word
|
||||
t = (t << 8) | (t >>> 24);
|
||||
|
||||
// Sub word
|
||||
t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
|
||||
|
||||
// Mix Rcon
|
||||
t ^= RCON[(ksRow / keySize) | 0] << 24;
|
||||
} else if (keySize > 6 && ksRow % keySize == 4) {
|
||||
// Sub word
|
||||
t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
|
||||
}
|
||||
|
||||
keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
|
||||
}
|
||||
}
|
||||
|
||||
// Compute inv key schedule
|
||||
var invKeySchedule = this._invKeySchedule = [];
|
||||
for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
|
||||
var ksRow = ksRows - invKsRow;
|
||||
|
||||
if (invKsRow % 4) {
|
||||
var t = keySchedule[ksRow];
|
||||
} else {
|
||||
var t = keySchedule[ksRow - 4];
|
||||
}
|
||||
|
||||
if (invKsRow < 4 || ksRow <= 4) {
|
||||
invKeySchedule[invKsRow] = t;
|
||||
} else {
|
||||
invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
|
||||
INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
encryptBlock: function (M, offset) {
|
||||
this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
|
||||
},
|
||||
|
||||
decryptBlock: function (M, offset) {
|
||||
// Swap 2nd and 4th rows
|
||||
var t = M[offset + 1];
|
||||
M[offset + 1] = M[offset + 3];
|
||||
M[offset + 3] = t;
|
||||
|
||||
this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
|
||||
|
||||
// Inv swap 2nd and 4th rows
|
||||
var t = M[offset + 1];
|
||||
M[offset + 1] = M[offset + 3];
|
||||
M[offset + 3] = t;
|
||||
},
|
||||
|
||||
_doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {
|
||||
// Shortcut
|
||||
var nRounds = this._nRounds;
|
||||
|
||||
// Get input, add round key
|
||||
var s0 = M[offset] ^ keySchedule[0];
|
||||
var s1 = M[offset + 1] ^ keySchedule[1];
|
||||
var s2 = M[offset + 2] ^ keySchedule[2];
|
||||
var s3 = M[offset + 3] ^ keySchedule[3];
|
||||
|
||||
// Key schedule row counter
|
||||
var ksRow = 4;
|
||||
|
||||
// Rounds
|
||||
for (var round = 1; round < nRounds; round++) {
|
||||
// Shift rows, sub bytes, mix columns, add round key
|
||||
var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];
|
||||
var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];
|
||||
var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];
|
||||
var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];
|
||||
|
||||
// Update state
|
||||
s0 = t0;
|
||||
s1 = t1;
|
||||
s2 = t2;
|
||||
s3 = t3;
|
||||
}
|
||||
|
||||
// Shift rows, sub bytes, add round key
|
||||
var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
|
||||
var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
|
||||
var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
|
||||
var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
|
||||
|
||||
// Set output
|
||||
M[offset] = t0;
|
||||
M[offset + 1] = t1;
|
||||
M[offset + 2] = t2;
|
||||
M[offset + 3] = t3;
|
||||
},
|
||||
|
||||
keySize: 256/32
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.AES = BlockCipher._createHelper(AES);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var BlockCipher = C_lib.BlockCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Permuted Choice 1 constants
|
||||
var PC1 = [
|
||||
57, 49, 41, 33, 25, 17, 9, 1,
|
||||
58, 50, 42, 34, 26, 18, 10, 2,
|
||||
59, 51, 43, 35, 27, 19, 11, 3,
|
||||
60, 52, 44, 36, 63, 55, 47, 39,
|
||||
31, 23, 15, 7, 62, 54, 46, 38,
|
||||
30, 22, 14, 6, 61, 53, 45, 37,
|
||||
29, 21, 13, 5, 28, 20, 12, 4
|
||||
];
|
||||
|
||||
// Permuted Choice 2 constants
|
||||
var PC2 = [
|
||||
14, 17, 11, 24, 1, 5,
|
||||
3, 28, 15, 6, 21, 10,
|
||||
23, 19, 12, 4, 26, 8,
|
||||
16, 7, 27, 20, 13, 2,
|
||||
41, 52, 31, 37, 47, 55,
|
||||
30, 40, 51, 45, 33, 48,
|
||||
44, 49, 39, 56, 34, 53,
|
||||
46, 42, 50, 36, 29, 32
|
||||
];
|
||||
|
||||
// Cumulative bit shift constants
|
||||
var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
|
||||
|
||||
// SBOXes and round permutation constants
|
||||
var SBOX_P = [
|
||||
{
|
||||
0x0: 0x808200,
|
||||
0x10000000: 0x8000,
|
||||
0x20000000: 0x808002,
|
||||
0x30000000: 0x2,
|
||||
0x40000000: 0x200,
|
||||
0x50000000: 0x808202,
|
||||
0x60000000: 0x800202,
|
||||
0x70000000: 0x800000,
|
||||
0x80000000: 0x202,
|
||||
0x90000000: 0x800200,
|
||||
0xa0000000: 0x8200,
|
||||
0xb0000000: 0x808000,
|
||||
0xc0000000: 0x8002,
|
||||
0xd0000000: 0x800002,
|
||||
0xe0000000: 0x0,
|
||||
0xf0000000: 0x8202,
|
||||
0x8000000: 0x0,
|
||||
0x18000000: 0x808202,
|
||||
0x28000000: 0x8202,
|
||||
0x38000000: 0x8000,
|
||||
0x48000000: 0x808200,
|
||||
0x58000000: 0x200,
|
||||
0x68000000: 0x808002,
|
||||
0x78000000: 0x2,
|
||||
0x88000000: 0x800200,
|
||||
0x98000000: 0x8200,
|
||||
0xa8000000: 0x808000,
|
||||
0xb8000000: 0x800202,
|
||||
0xc8000000: 0x800002,
|
||||
0xd8000000: 0x8002,
|
||||
0xe8000000: 0x202,
|
||||
0xf8000000: 0x800000,
|
||||
0x1: 0x8000,
|
||||
0x10000001: 0x2,
|
||||
0x20000001: 0x808200,
|
||||
0x30000001: 0x800000,
|
||||
0x40000001: 0x808002,
|
||||
0x50000001: 0x8200,
|
||||
0x60000001: 0x200,
|
||||
0x70000001: 0x800202,
|
||||
0x80000001: 0x808202,
|
||||
0x90000001: 0x808000,
|
||||
0xa0000001: 0x800002,
|
||||
0xb0000001: 0x8202,
|
||||
0xc0000001: 0x202,
|
||||
0xd0000001: 0x800200,
|
||||
0xe0000001: 0x8002,
|
||||
0xf0000001: 0x0,
|
||||
0x8000001: 0x808202,
|
||||
0x18000001: 0x808000,
|
||||
0x28000001: 0x800000,
|
||||
0x38000001: 0x200,
|
||||
0x48000001: 0x8000,
|
||||
0x58000001: 0x800002,
|
||||
0x68000001: 0x2,
|
||||
0x78000001: 0x8202,
|
||||
0x88000001: 0x8002,
|
||||
0x98000001: 0x800202,
|
||||
0xa8000001: 0x202,
|
||||
0xb8000001: 0x808200,
|
||||
0xc8000001: 0x800200,
|
||||
0xd8000001: 0x0,
|
||||
0xe8000001: 0x8200,
|
||||
0xf8000001: 0x808002
|
||||
},
|
||||
{
|
||||
0x0: 0x40084010,
|
||||
0x1000000: 0x4000,
|
||||
0x2000000: 0x80000,
|
||||
0x3000000: 0x40080010,
|
||||
0x4000000: 0x40000010,
|
||||
0x5000000: 0x40084000,
|
||||
0x6000000: 0x40004000,
|
||||
0x7000000: 0x10,
|
||||
0x8000000: 0x84000,
|
||||
0x9000000: 0x40004010,
|
||||
0xa000000: 0x40000000,
|
||||
0xb000000: 0x84010,
|
||||
0xc000000: 0x80010,
|
||||
0xd000000: 0x0,
|
||||
0xe000000: 0x4010,
|
||||
0xf000000: 0x40080000,
|
||||
0x800000: 0x40004000,
|
||||
0x1800000: 0x84010,
|
||||
0x2800000: 0x10,
|
||||
0x3800000: 0x40004010,
|
||||
0x4800000: 0x40084010,
|
||||
0x5800000: 0x40000000,
|
||||
0x6800000: 0x80000,
|
||||
0x7800000: 0x40080010,
|
||||
0x8800000: 0x80010,
|
||||
0x9800000: 0x0,
|
||||
0xa800000: 0x4000,
|
||||
0xb800000: 0x40080000,
|
||||
0xc800000: 0x40000010,
|
||||
0xd800000: 0x84000,
|
||||
0xe800000: 0x40084000,
|
||||
0xf800000: 0x4010,
|
||||
0x10000000: 0x0,
|
||||
0x11000000: 0x40080010,
|
||||
0x12000000: 0x40004010,
|
||||
0x13000000: 0x40084000,
|
||||
0x14000000: 0x40080000,
|
||||
0x15000000: 0x10,
|
||||
0x16000000: 0x84010,
|
||||
0x17000000: 0x4000,
|
||||
0x18000000: 0x4010,
|
||||
0x19000000: 0x80000,
|
||||
0x1a000000: 0x80010,
|
||||
0x1b000000: 0x40000010,
|
||||
0x1c000000: 0x84000,
|
||||
0x1d000000: 0x40004000,
|
||||
0x1e000000: 0x40000000,
|
||||
0x1f000000: 0x40084010,
|
||||
0x10800000: 0x84010,
|
||||
0x11800000: 0x80000,
|
||||
0x12800000: 0x40080000,
|
||||
0x13800000: 0x4000,
|
||||
0x14800000: 0x40004000,
|
||||
0x15800000: 0x40084010,
|
||||
0x16800000: 0x10,
|
||||
0x17800000: 0x40000000,
|
||||
0x18800000: 0x40084000,
|
||||
0x19800000: 0x40000010,
|
||||
0x1a800000: 0x40004010,
|
||||
0x1b800000: 0x80010,
|
||||
0x1c800000: 0x0,
|
||||
0x1d800000: 0x4010,
|
||||
0x1e800000: 0x40080010,
|
||||
0x1f800000: 0x84000
|
||||
},
|
||||
{
|
||||
0x0: 0x104,
|
||||
0x100000: 0x0,
|
||||
0x200000: 0x4000100,
|
||||
0x300000: 0x10104,
|
||||
0x400000: 0x10004,
|
||||
0x500000: 0x4000004,
|
||||
0x600000: 0x4010104,
|
||||
0x700000: 0x4010000,
|
||||
0x800000: 0x4000000,
|
||||
0x900000: 0x4010100,
|
||||
0xa00000: 0x10100,
|
||||
0xb00000: 0x4010004,
|
||||
0xc00000: 0x4000104,
|
||||
0xd00000: 0x10000,
|
||||
0xe00000: 0x4,
|
||||
0xf00000: 0x100,
|
||||
0x80000: 0x4010100,
|
||||
0x180000: 0x4010004,
|
||||
0x280000: 0x0,
|
||||
0x380000: 0x4000100,
|
||||
0x480000: 0x4000004,
|
||||
0x580000: 0x10000,
|
||||
0x680000: 0x10004,
|
||||
0x780000: 0x104,
|
||||
0x880000: 0x4,
|
||||
0x980000: 0x100,
|
||||
0xa80000: 0x4010000,
|
||||
0xb80000: 0x10104,
|
||||
0xc80000: 0x10100,
|
||||
0xd80000: 0x4000104,
|
||||
0xe80000: 0x4010104,
|
||||
0xf80000: 0x4000000,
|
||||
0x1000000: 0x4010100,
|
||||
0x1100000: 0x10004,
|
||||
0x1200000: 0x10000,
|
||||
0x1300000: 0x4000100,
|
||||
0x1400000: 0x100,
|
||||
0x1500000: 0x4010104,
|
||||
0x1600000: 0x4000004,
|
||||
0x1700000: 0x0,
|
||||
0x1800000: 0x4000104,
|
||||
0x1900000: 0x4000000,
|
||||
0x1a00000: 0x4,
|
||||
0x1b00000: 0x10100,
|
||||
0x1c00000: 0x4010000,
|
||||
0x1d00000: 0x104,
|
||||
0x1e00000: 0x10104,
|
||||
0x1f00000: 0x4010004,
|
||||
0x1080000: 0x4000000,
|
||||
0x1180000: 0x104,
|
||||
0x1280000: 0x4010100,
|
||||
0x1380000: 0x0,
|
||||
0x1480000: 0x10004,
|
||||
0x1580000: 0x4000100,
|
||||
0x1680000: 0x100,
|
||||
0x1780000: 0x4010004,
|
||||
0x1880000: 0x10000,
|
||||
0x1980000: 0x4010104,
|
||||
0x1a80000: 0x10104,
|
||||
0x1b80000: 0x4000004,
|
||||
0x1c80000: 0x4000104,
|
||||
0x1d80000: 0x4010000,
|
||||
0x1e80000: 0x4,
|
||||
0x1f80000: 0x10100
|
||||
},
|
||||
{
|
||||
0x0: 0x80401000,
|
||||
0x10000: 0x80001040,
|
||||
0x20000: 0x401040,
|
||||
0x30000: 0x80400000,
|
||||
0x40000: 0x0,
|
||||
0x50000: 0x401000,
|
||||
0x60000: 0x80000040,
|
||||
0x70000: 0x400040,
|
||||
0x80000: 0x80000000,
|
||||
0x90000: 0x400000,
|
||||
0xa0000: 0x40,
|
||||
0xb0000: 0x80001000,
|
||||
0xc0000: 0x80400040,
|
||||
0xd0000: 0x1040,
|
||||
0xe0000: 0x1000,
|
||||
0xf0000: 0x80401040,
|
||||
0x8000: 0x80001040,
|
||||
0x18000: 0x40,
|
||||
0x28000: 0x80400040,
|
||||
0x38000: 0x80001000,
|
||||
0x48000: 0x401000,
|
||||
0x58000: 0x80401040,
|
||||
0x68000: 0x0,
|
||||
0x78000: 0x80400000,
|
||||
0x88000: 0x1000,
|
||||
0x98000: 0x80401000,
|
||||
0xa8000: 0x400000,
|
||||
0xb8000: 0x1040,
|
||||
0xc8000: 0x80000000,
|
||||
0xd8000: 0x400040,
|
||||
0xe8000: 0x401040,
|
||||
0xf8000: 0x80000040,
|
||||
0x100000: 0x400040,
|
||||
0x110000: 0x401000,
|
||||
0x120000: 0x80000040,
|
||||
0x130000: 0x0,
|
||||
0x140000: 0x1040,
|
||||
0x150000: 0x80400040,
|
||||
0x160000: 0x80401000,
|
||||
0x170000: 0x80001040,
|
||||
0x180000: 0x80401040,
|
||||
0x190000: 0x80000000,
|
||||
0x1a0000: 0x80400000,
|
||||
0x1b0000: 0x401040,
|
||||
0x1c0000: 0x80001000,
|
||||
0x1d0000: 0x400000,
|
||||
0x1e0000: 0x40,
|
||||
0x1f0000: 0x1000,
|
||||
0x108000: 0x80400000,
|
||||
0x118000: 0x80401040,
|
||||
0x128000: 0x0,
|
||||
0x138000: 0x401000,
|
||||
0x148000: 0x400040,
|
||||
0x158000: 0x80000000,
|
||||
0x168000: 0x80001040,
|
||||
0x178000: 0x40,
|
||||
0x188000: 0x80000040,
|
||||
0x198000: 0x1000,
|
||||
0x1a8000: 0x80001000,
|
||||
0x1b8000: 0x80400040,
|
||||
0x1c8000: 0x1040,
|
||||
0x1d8000: 0x80401000,
|
||||
0x1e8000: 0x400000,
|
||||
0x1f8000: 0x401040
|
||||
},
|
||||
{
|
||||
0x0: 0x80,
|
||||
0x1000: 0x1040000,
|
||||
0x2000: 0x40000,
|
||||
0x3000: 0x20000000,
|
||||
0x4000: 0x20040080,
|
||||
0x5000: 0x1000080,
|
||||
0x6000: 0x21000080,
|
||||
0x7000: 0x40080,
|
||||
0x8000: 0x1000000,
|
||||
0x9000: 0x20040000,
|
||||
0xa000: 0x20000080,
|
||||
0xb000: 0x21040080,
|
||||
0xc000: 0x21040000,
|
||||
0xd000: 0x0,
|
||||
0xe000: 0x1040080,
|
||||
0xf000: 0x21000000,
|
||||
0x800: 0x1040080,
|
||||
0x1800: 0x21000080,
|
||||
0x2800: 0x80,
|
||||
0x3800: 0x1040000,
|
||||
0x4800: 0x40000,
|
||||
0x5800: 0x20040080,
|
||||
0x6800: 0x21040000,
|
||||
0x7800: 0x20000000,
|
||||
0x8800: 0x20040000,
|
||||
0x9800: 0x0,
|
||||
0xa800: 0x21040080,
|
||||
0xb800: 0x1000080,
|
||||
0xc800: 0x20000080,
|
||||
0xd800: 0x21000000,
|
||||
0xe800: 0x1000000,
|
||||
0xf800: 0x40080,
|
||||
0x10000: 0x40000,
|
||||
0x11000: 0x80,
|
||||
0x12000: 0x20000000,
|
||||
0x13000: 0x21000080,
|
||||
0x14000: 0x1000080,
|
||||
0x15000: 0x21040000,
|
||||
0x16000: 0x20040080,
|
||||
0x17000: 0x1000000,
|
||||
0x18000: 0x21040080,
|
||||
0x19000: 0x21000000,
|
||||
0x1a000: 0x1040000,
|
||||
0x1b000: 0x20040000,
|
||||
0x1c000: 0x40080,
|
||||
0x1d000: 0x20000080,
|
||||
0x1e000: 0x0,
|
||||
0x1f000: 0x1040080,
|
||||
0x10800: 0x21000080,
|
||||
0x11800: 0x1000000,
|
||||
0x12800: 0x1040000,
|
||||
0x13800: 0x20040080,
|
||||
0x14800: 0x20000000,
|
||||
0x15800: 0x1040080,
|
||||
0x16800: 0x80,
|
||||
0x17800: 0x21040000,
|
||||
0x18800: 0x40080,
|
||||
0x19800: 0x21040080,
|
||||
0x1a800: 0x0,
|
||||
0x1b800: 0x21000000,
|
||||
0x1c800: 0x1000080,
|
||||
0x1d800: 0x40000,
|
||||
0x1e800: 0x20040000,
|
||||
0x1f800: 0x20000080
|
||||
},
|
||||
{
|
||||
0x0: 0x10000008,
|
||||
0x100: 0x2000,
|
||||
0x200: 0x10200000,
|
||||
0x300: 0x10202008,
|
||||
0x400: 0x10002000,
|
||||
0x500: 0x200000,
|
||||
0x600: 0x200008,
|
||||
0x700: 0x10000000,
|
||||
0x800: 0x0,
|
||||
0x900: 0x10002008,
|
||||
0xa00: 0x202000,
|
||||
0xb00: 0x8,
|
||||
0xc00: 0x10200008,
|
||||
0xd00: 0x202008,
|
||||
0xe00: 0x2008,
|
||||
0xf00: 0x10202000,
|
||||
0x80: 0x10200000,
|
||||
0x180: 0x10202008,
|
||||
0x280: 0x8,
|
||||
0x380: 0x200000,
|
||||
0x480: 0x202008,
|
||||
0x580: 0x10000008,
|
||||
0x680: 0x10002000,
|
||||
0x780: 0x2008,
|
||||
0x880: 0x200008,
|
||||
0x980: 0x2000,
|
||||
0xa80: 0x10002008,
|
||||
0xb80: 0x10200008,
|
||||
0xc80: 0x0,
|
||||
0xd80: 0x10202000,
|
||||
0xe80: 0x202000,
|
||||
0xf80: 0x10000000,
|
||||
0x1000: 0x10002000,
|
||||
0x1100: 0x10200008,
|
||||
0x1200: 0x10202008,
|
||||
0x1300: 0x2008,
|
||||
0x1400: 0x200000,
|
||||
0x1500: 0x10000000,
|
||||
0x1600: 0x10000008,
|
||||
0x1700: 0x202000,
|
||||
0x1800: 0x202008,
|
||||
0x1900: 0x0,
|
||||
0x1a00: 0x8,
|
||||
0x1b00: 0x10200000,
|
||||
0x1c00: 0x2000,
|
||||
0x1d00: 0x10002008,
|
||||
0x1e00: 0x10202000,
|
||||
0x1f00: 0x200008,
|
||||
0x1080: 0x8,
|
||||
0x1180: 0x202000,
|
||||
0x1280: 0x200000,
|
||||
0x1380: 0x10000008,
|
||||
0x1480: 0x10002000,
|
||||
0x1580: 0x2008,
|
||||
0x1680: 0x10202008,
|
||||
0x1780: 0x10200000,
|
||||
0x1880: 0x10202000,
|
||||
0x1980: 0x10200008,
|
||||
0x1a80: 0x2000,
|
||||
0x1b80: 0x202008,
|
||||
0x1c80: 0x200008,
|
||||
0x1d80: 0x0,
|
||||
0x1e80: 0x10000000,
|
||||
0x1f80: 0x10002008
|
||||
},
|
||||
{
|
||||
0x0: 0x100000,
|
||||
0x10: 0x2000401,
|
||||
0x20: 0x400,
|
||||
0x30: 0x100401,
|
||||
0x40: 0x2100401,
|
||||
0x50: 0x0,
|
||||
0x60: 0x1,
|
||||
0x70: 0x2100001,
|
||||
0x80: 0x2000400,
|
||||
0x90: 0x100001,
|
||||
0xa0: 0x2000001,
|
||||
0xb0: 0x2100400,
|
||||
0xc0: 0x2100000,
|
||||
0xd0: 0x401,
|
||||
0xe0: 0x100400,
|
||||
0xf0: 0x2000000,
|
||||
0x8: 0x2100001,
|
||||
0x18: 0x0,
|
||||
0x28: 0x2000401,
|
||||
0x38: 0x2100400,
|
||||
0x48: 0x100000,
|
||||
0x58: 0x2000001,
|
||||
0x68: 0x2000000,
|
||||
0x78: 0x401,
|
||||
0x88: 0x100401,
|
||||
0x98: 0x2000400,
|
||||
0xa8: 0x2100000,
|
||||
0xb8: 0x100001,
|
||||
0xc8: 0x400,
|
||||
0xd8: 0x2100401,
|
||||
0xe8: 0x1,
|
||||
0xf8: 0x100400,
|
||||
0x100: 0x2000000,
|
||||
0x110: 0x100000,
|
||||
0x120: 0x2000401,
|
||||
0x130: 0x2100001,
|
||||
0x140: 0x100001,
|
||||
0x150: 0x2000400,
|
||||
0x160: 0x2100400,
|
||||
0x170: 0x100401,
|
||||
0x180: 0x401,
|
||||
0x190: 0x2100401,
|
||||
0x1a0: 0x100400,
|
||||
0x1b0: 0x1,
|
||||
0x1c0: 0x0,
|
||||
0x1d0: 0x2100000,
|
||||
0x1e0: 0x2000001,
|
||||
0x1f0: 0x400,
|
||||
0x108: 0x100400,
|
||||
0x118: 0x2000401,
|
||||
0x128: 0x2100001,
|
||||
0x138: 0x1,
|
||||
0x148: 0x2000000,
|
||||
0x158: 0x100000,
|
||||
0x168: 0x401,
|
||||
0x178: 0x2100400,
|
||||
0x188: 0x2000001,
|
||||
0x198: 0x2100000,
|
||||
0x1a8: 0x0,
|
||||
0x1b8: 0x2100401,
|
||||
0x1c8: 0x100401,
|
||||
0x1d8: 0x400,
|
||||
0x1e8: 0x2000400,
|
||||
0x1f8: 0x100001
|
||||
},
|
||||
{
|
||||
0x0: 0x8000820,
|
||||
0x1: 0x20000,
|
||||
0x2: 0x8000000,
|
||||
0x3: 0x20,
|
||||
0x4: 0x20020,
|
||||
0x5: 0x8020820,
|
||||
0x6: 0x8020800,
|
||||
0x7: 0x800,
|
||||
0x8: 0x8020000,
|
||||
0x9: 0x8000800,
|
||||
0xa: 0x20800,
|
||||
0xb: 0x8020020,
|
||||
0xc: 0x820,
|
||||
0xd: 0x0,
|
||||
0xe: 0x8000020,
|
||||
0xf: 0x20820,
|
||||
0x80000000: 0x800,
|
||||
0x80000001: 0x8020820,
|
||||
0x80000002: 0x8000820,
|
||||
0x80000003: 0x8000000,
|
||||
0x80000004: 0x8020000,
|
||||
0x80000005: 0x20800,
|
||||
0x80000006: 0x20820,
|
||||
0x80000007: 0x20,
|
||||
0x80000008: 0x8000020,
|
||||
0x80000009: 0x820,
|
||||
0x8000000a: 0x20020,
|
||||
0x8000000b: 0x8020800,
|
||||
0x8000000c: 0x0,
|
||||
0x8000000d: 0x8020020,
|
||||
0x8000000e: 0x8000800,
|
||||
0x8000000f: 0x20000,
|
||||
0x10: 0x20820,
|
||||
0x11: 0x8020800,
|
||||
0x12: 0x20,
|
||||
0x13: 0x800,
|
||||
0x14: 0x8000800,
|
||||
0x15: 0x8000020,
|
||||
0x16: 0x8020020,
|
||||
0x17: 0x20000,
|
||||
0x18: 0x0,
|
||||
0x19: 0x20020,
|
||||
0x1a: 0x8020000,
|
||||
0x1b: 0x8000820,
|
||||
0x1c: 0x8020820,
|
||||
0x1d: 0x20800,
|
||||
0x1e: 0x820,
|
||||
0x1f: 0x8000000,
|
||||
0x80000010: 0x20000,
|
||||
0x80000011: 0x800,
|
||||
0x80000012: 0x8020020,
|
||||
0x80000013: 0x20820,
|
||||
0x80000014: 0x20,
|
||||
0x80000015: 0x8020000,
|
||||
0x80000016: 0x8000000,
|
||||
0x80000017: 0x8000820,
|
||||
0x80000018: 0x8020820,
|
||||
0x80000019: 0x8000020,
|
||||
0x8000001a: 0x8000800,
|
||||
0x8000001b: 0x0,
|
||||
0x8000001c: 0x20800,
|
||||
0x8000001d: 0x820,
|
||||
0x8000001e: 0x20020,
|
||||
0x8000001f: 0x8020800
|
||||
}
|
||||
];
|
||||
|
||||
// Masks that select the SBOX input
|
||||
var SBOX_MASK = [
|
||||
0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,
|
||||
0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f
|
||||
];
|
||||
|
||||
/**
|
||||
* DES block cipher algorithm.
|
||||
*/
|
||||
var DES = C_algo.DES = BlockCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var key = this._key;
|
||||
var keyWords = key.words;
|
||||
|
||||
// Select 56 bits according to PC1
|
||||
var keyBits = [];
|
||||
for (var i = 0; i < 56; i++) {
|
||||
var keyBitPos = PC1[i] - 1;
|
||||
keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;
|
||||
}
|
||||
|
||||
// Assemble 16 subkeys
|
||||
var subKeys = this._subKeys = [];
|
||||
for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
|
||||
// Create subkey
|
||||
var subKey = subKeys[nSubKey] = [];
|
||||
|
||||
// Shortcut
|
||||
var bitShift = BIT_SHIFTS[nSubKey];
|
||||
|
||||
// Select 48 bits according to PC2
|
||||
for (var i = 0; i < 24; i++) {
|
||||
// Select from the left 28 key bits
|
||||
subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);
|
||||
|
||||
// Select from the right 28 key bits
|
||||
subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);
|
||||
}
|
||||
|
||||
// Since each subkey is applied to an expanded 32-bit input,
|
||||
// the subkey can be broken into 8 values scaled to 32-bits,
|
||||
// which allows the key to be used without expansion
|
||||
subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
|
||||
for (var i = 1; i < 7; i++) {
|
||||
subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
|
||||
}
|
||||
subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
|
||||
}
|
||||
|
||||
// Compute inverse subkeys
|
||||
var invSubKeys = this._invSubKeys = [];
|
||||
for (var i = 0; i < 16; i++) {
|
||||
invSubKeys[i] = subKeys[15 - i];
|
||||
}
|
||||
},
|
||||
|
||||
encryptBlock: function (M, offset) {
|
||||
this._doCryptBlock(M, offset, this._subKeys);
|
||||
},
|
||||
|
||||
decryptBlock: function (M, offset) {
|
||||
this._doCryptBlock(M, offset, this._invSubKeys);
|
||||
},
|
||||
|
||||
_doCryptBlock: function (M, offset, subKeys) {
|
||||
// Get input
|
||||
this._lBlock = M[offset];
|
||||
this._rBlock = M[offset + 1];
|
||||
|
||||
// Initial permutation
|
||||
exchangeLR.call(this, 4, 0x0f0f0f0f);
|
||||
exchangeLR.call(this, 16, 0x0000ffff);
|
||||
exchangeRL.call(this, 2, 0x33333333);
|
||||
exchangeRL.call(this, 8, 0x00ff00ff);
|
||||
exchangeLR.call(this, 1, 0x55555555);
|
||||
|
||||
// Rounds
|
||||
for (var round = 0; round < 16; round++) {
|
||||
// Shortcuts
|
||||
var subKey = subKeys[round];
|
||||
var lBlock = this._lBlock;
|
||||
var rBlock = this._rBlock;
|
||||
|
||||
// Feistel function
|
||||
var f = 0;
|
||||
for (var i = 0; i < 8; i++) {
|
||||
f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
|
||||
}
|
||||
this._lBlock = rBlock;
|
||||
this._rBlock = lBlock ^ f;
|
||||
}
|
||||
|
||||
// Undo swap from last round
|
||||
var t = this._lBlock;
|
||||
this._lBlock = this._rBlock;
|
||||
this._rBlock = t;
|
||||
|
||||
// Final permutation
|
||||
exchangeLR.call(this, 1, 0x55555555);
|
||||
exchangeRL.call(this, 8, 0x00ff00ff);
|
||||
exchangeRL.call(this, 2, 0x33333333);
|
||||
exchangeLR.call(this, 16, 0x0000ffff);
|
||||
exchangeLR.call(this, 4, 0x0f0f0f0f);
|
||||
|
||||
// Set output
|
||||
M[offset] = this._lBlock;
|
||||
M[offset + 1] = this._rBlock;
|
||||
},
|
||||
|
||||
keySize: 64/32,
|
||||
|
||||
ivSize: 64/32,
|
||||
|
||||
blockSize: 64/32
|
||||
});
|
||||
|
||||
// Swap bits across the left and right words
|
||||
function exchangeLR(offset, mask) {
|
||||
var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
|
||||
this._rBlock ^= t;
|
||||
this._lBlock ^= t << offset;
|
||||
}
|
||||
|
||||
function exchangeRL(offset, mask) {
|
||||
var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
|
||||
this._lBlock ^= t;
|
||||
this._rBlock ^= t << offset;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.DES = BlockCipher._createHelper(DES);
|
||||
|
||||
/**
|
||||
* Triple-DES block cipher algorithm.
|
||||
*/
|
||||
var TripleDES = C_algo.TripleDES = BlockCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var key = this._key;
|
||||
var keyWords = key.words;
|
||||
// Make sure the key length is valid (64, 128 or >= 192 bit)
|
||||
if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
|
||||
throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');
|
||||
}
|
||||
|
||||
// Extend the key according to the keying options defined in 3DES standard
|
||||
var key1 = keyWords.slice(0, 2);
|
||||
var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
|
||||
var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
|
||||
|
||||
// Create DES instances
|
||||
this._des1 = DES.createEncryptor(WordArray.create(key1));
|
||||
this._des2 = DES.createEncryptor(WordArray.create(key2));
|
||||
this._des3 = DES.createEncryptor(WordArray.create(key3));
|
||||
},
|
||||
|
||||
encryptBlock: function (M, offset) {
|
||||
this._des1.encryptBlock(M, offset);
|
||||
this._des2.decryptBlock(M, offset);
|
||||
this._des3.encryptBlock(M, offset);
|
||||
},
|
||||
|
||||
decryptBlock: function (M, offset) {
|
||||
this._des3.decryptBlock(M, offset);
|
||||
this._des2.encryptBlock(M, offset);
|
||||
this._des1.decryptBlock(M, offset);
|
||||
},
|
||||
|
||||
keySize: 192/32,
|
||||
|
||||
ivSize: 64/32,
|
||||
|
||||
blockSize: 64/32
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.TripleDES = BlockCipher._createHelper(TripleDES);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var StreamCipher = C_lib.StreamCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
/**
|
||||
* RC4 stream cipher algorithm.
|
||||
*/
|
||||
var RC4 = C_algo.RC4 = StreamCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var key = this._key;
|
||||
var keyWords = key.words;
|
||||
var keySigBytes = key.sigBytes;
|
||||
|
||||
// Init sbox
|
||||
var S = this._S = [];
|
||||
for (var i = 0; i < 256; i++) {
|
||||
S[i] = i;
|
||||
}
|
||||
|
||||
// Key setup
|
||||
for (var i = 0, j = 0; i < 256; i++) {
|
||||
var keyByteIndex = i % keySigBytes;
|
||||
var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
|
||||
|
||||
j = (j + S[i] + keyByte) % 256;
|
||||
|
||||
// Swap
|
||||
var t = S[i];
|
||||
S[i] = S[j];
|
||||
S[j] = t;
|
||||
}
|
||||
|
||||
// Counters
|
||||
this._i = this._j = 0;
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
M[offset] ^= generateKeystreamWord.call(this);
|
||||
},
|
||||
|
||||
keySize: 256/32,
|
||||
|
||||
ivSize: 0
|
||||
});
|
||||
|
||||
function generateKeystreamWord() {
|
||||
// Shortcuts
|
||||
var S = this._S;
|
||||
var i = this._i;
|
||||
var j = this._j;
|
||||
|
||||
// Generate keystream word
|
||||
var keystreamWord = 0;
|
||||
for (var n = 0; n < 4; n++) {
|
||||
i = (i + 1) % 256;
|
||||
j = (j + S[i]) % 256;
|
||||
|
||||
// Swap
|
||||
var t = S[i];
|
||||
S[i] = S[j];
|
||||
S[j] = t;
|
||||
|
||||
keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
|
||||
}
|
||||
|
||||
// Update counters
|
||||
this._i = i;
|
||||
this._j = j;
|
||||
|
||||
return keystreamWord;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.RC4 = StreamCipher._createHelper(RC4);
|
||||
|
||||
/**
|
||||
* Modified RC4 stream cipher algorithm.
|
||||
*/
|
||||
var RC4Drop = C_algo.RC4Drop = RC4.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*
|
||||
* @property {number} drop The number of keystream words to drop. Default 192
|
||||
*/
|
||||
cfg: RC4.cfg.extend({
|
||||
drop: 192
|
||||
}),
|
||||
|
||||
_doReset: function () {
|
||||
RC4._doReset.call(this);
|
||||
|
||||
// Drop
|
||||
for (var i = this.cfg.drop; i > 0; i--) {
|
||||
generateKeystreamWord.call(this);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.RC4Drop = StreamCipher._createHelper(RC4Drop);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var StreamCipher = C_lib.StreamCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Reusable objects
|
||||
var S = [];
|
||||
var C_ = [];
|
||||
var G = [];
|
||||
|
||||
/**
|
||||
* Rabbit stream cipher algorithm
|
||||
*/
|
||||
var Rabbit = C_algo.Rabbit = StreamCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var K = this._key.words;
|
||||
var iv = this.cfg.iv;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 4; i++) {
|
||||
K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |
|
||||
(((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);
|
||||
}
|
||||
|
||||
// Generate initial state values
|
||||
var X = this._X = [
|
||||
K[0], (K[3] << 16) | (K[2] >>> 16),
|
||||
K[1], (K[0] << 16) | (K[3] >>> 16),
|
||||
K[2], (K[1] << 16) | (K[0] >>> 16),
|
||||
K[3], (K[2] << 16) | (K[1] >>> 16)
|
||||
];
|
||||
|
||||
// Generate initial counter values
|
||||
var C = this._C = [
|
||||
(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
|
||||
(K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
|
||||
(K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
|
||||
(K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
|
||||
];
|
||||
|
||||
// Carry bit
|
||||
this._b = 0;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
|
||||
// Modify the counters
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C[i] ^= X[(i + 4) & 7];
|
||||
}
|
||||
|
||||
// IV setup
|
||||
if (iv) {
|
||||
// Shortcuts
|
||||
var IV = iv.words;
|
||||
var IV_0 = IV[0];
|
||||
var IV_1 = IV[1];
|
||||
|
||||
// Generate four subvectors
|
||||
var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
|
||||
var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
|
||||
var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
|
||||
var i3 = (i2 << 16) | (i0 & 0x0000ffff);
|
||||
|
||||
// Modify counter values
|
||||
C[0] ^= i0;
|
||||
C[1] ^= i1;
|
||||
C[2] ^= i2;
|
||||
C[3] ^= i3;
|
||||
C[4] ^= i0;
|
||||
C[5] ^= i1;
|
||||
C[6] ^= i2;
|
||||
C[7] ^= i3;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var X = this._X;
|
||||
|
||||
// Iterate the system
|
||||
nextState.call(this);
|
||||
|
||||
// Generate four keystream words
|
||||
S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
|
||||
S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
|
||||
S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
|
||||
S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
// Swap endian
|
||||
S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
|
||||
(((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
|
||||
|
||||
// Encrypt
|
||||
M[offset + i] ^= S[i];
|
||||
}
|
||||
},
|
||||
|
||||
blockSize: 128/32,
|
||||
|
||||
ivSize: 64/32
|
||||
});
|
||||
|
||||
function nextState() {
|
||||
// Shortcuts
|
||||
var X = this._X;
|
||||
var C = this._C;
|
||||
|
||||
// Save old counter values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C_[i] = C[i];
|
||||
}
|
||||
|
||||
// Calculate new counter values
|
||||
C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
|
||||
C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
|
||||
C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
|
||||
C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
|
||||
C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
|
||||
C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
|
||||
C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
|
||||
C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
|
||||
this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
|
||||
|
||||
// Calculate the g-values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
var gx = X[i] + C[i];
|
||||
|
||||
// Construct high and low argument for squaring
|
||||
var ga = gx & 0xffff;
|
||||
var gb = gx >>> 16;
|
||||
|
||||
// Calculate high and low result of squaring
|
||||
var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
|
||||
var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
|
||||
|
||||
// High XOR low
|
||||
G[i] = gh ^ gl;
|
||||
}
|
||||
|
||||
// Calculate new state values
|
||||
X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
|
||||
X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
|
||||
X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
|
||||
X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
|
||||
X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
|
||||
X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
|
||||
X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
|
||||
X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.Rabbit = StreamCipher._createHelper(Rabbit);
|
||||
}());
|
||||
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var StreamCipher = C_lib.StreamCipher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Reusable objects
|
||||
var S = [];
|
||||
var C_ = [];
|
||||
var G = [];
|
||||
|
||||
/**
|
||||
* Rabbit stream cipher algorithm.
|
||||
*
|
||||
* This is a legacy version that neglected to convert the key to little-endian.
|
||||
* This error doesn't affect the cipher's security,
|
||||
* but it does affect its compatibility with other implementations.
|
||||
*/
|
||||
var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
|
||||
_doReset: function () {
|
||||
// Shortcuts
|
||||
var K = this._key.words;
|
||||
var iv = this.cfg.iv;
|
||||
|
||||
// Generate initial state values
|
||||
var X = this._X = [
|
||||
K[0], (K[3] << 16) | (K[2] >>> 16),
|
||||
K[1], (K[0] << 16) | (K[3] >>> 16),
|
||||
K[2], (K[1] << 16) | (K[0] >>> 16),
|
||||
K[3], (K[2] << 16) | (K[1] >>> 16)
|
||||
];
|
||||
|
||||
// Generate initial counter values
|
||||
var C = this._C = [
|
||||
(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
|
||||
(K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
|
||||
(K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
|
||||
(K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
|
||||
];
|
||||
|
||||
// Carry bit
|
||||
this._b = 0;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
|
||||
// Modify the counters
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C[i] ^= X[(i + 4) & 7];
|
||||
}
|
||||
|
||||
// IV setup
|
||||
if (iv) {
|
||||
// Shortcuts
|
||||
var IV = iv.words;
|
||||
var IV_0 = IV[0];
|
||||
var IV_1 = IV[1];
|
||||
|
||||
// Generate four subvectors
|
||||
var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
|
||||
var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
|
||||
var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
|
||||
var i3 = (i2 << 16) | (i0 & 0x0000ffff);
|
||||
|
||||
// Modify counter values
|
||||
C[0] ^= i0;
|
||||
C[1] ^= i1;
|
||||
C[2] ^= i2;
|
||||
C[3] ^= i3;
|
||||
C[4] ^= i0;
|
||||
C[5] ^= i1;
|
||||
C[6] ^= i2;
|
||||
C[7] ^= i3;
|
||||
|
||||
// Iterate the system four times
|
||||
for (var i = 0; i < 4; i++) {
|
||||
nextState.call(this);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var X = this._X;
|
||||
|
||||
// Iterate the system
|
||||
nextState.call(this);
|
||||
|
||||
// Generate four keystream words
|
||||
S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
|
||||
S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
|
||||
S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
|
||||
S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
// Swap endian
|
||||
S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
|
||||
(((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
|
||||
|
||||
// Encrypt
|
||||
M[offset + i] ^= S[i];
|
||||
}
|
||||
},
|
||||
|
||||
blockSize: 128/32,
|
||||
|
||||
ivSize: 64/32
|
||||
});
|
||||
|
||||
function nextState() {
|
||||
// Shortcuts
|
||||
var X = this._X;
|
||||
var C = this._C;
|
||||
|
||||
// Save old counter values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
C_[i] = C[i];
|
||||
}
|
||||
|
||||
// Calculate new counter values
|
||||
C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
|
||||
C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
|
||||
C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
|
||||
C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
|
||||
C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
|
||||
C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
|
||||
C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
|
||||
C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
|
||||
this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
|
||||
|
||||
// Calculate the g-values
|
||||
for (var i = 0; i < 8; i++) {
|
||||
var gx = X[i] + C[i];
|
||||
|
||||
// Construct high and low argument for squaring
|
||||
var ga = gx & 0xffff;
|
||||
var gb = gx >>> 16;
|
||||
|
||||
// Calculate high and low result of squaring
|
||||
var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
|
||||
var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
|
||||
|
||||
// High XOR low
|
||||
G[i] = gh ^ gl;
|
||||
}
|
||||
|
||||
// Calculate new state values
|
||||
X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
|
||||
X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
|
||||
X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
|
||||
X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
|
||||
X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
|
||||
X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
|
||||
X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
|
||||
X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut functions to the cipher's object interface.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
|
||||
* var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
|
||||
*/
|
||||
C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
|
||||
}());
|
||||
|
||||
|
||||
return CryptoJS;
|
||||
|
||||
}));
|
||||
@@ -1,17 +0,0 @@
|
||||
let req = (url, options) => http(url, Object.assign({
|
||||
async: false
|
||||
}, options));
|
||||
|
||||
function http(url, options = {}) {
|
||||
if (options?.async === false) return _http(url, options)
|
||||
return new Promise(resolve => _http(url, Object.assign({
|
||||
complete: res => resolve(res)
|
||||
}, options))).catch(err => {
|
||||
console.error(err.name, err.message, err.stack)
|
||||
return {
|
||||
ok: false,
|
||||
status: 500,
|
||||
url
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
function compareTwoStrings(first,second){if((first=first.replace(/\s+/g,""))===(second=second.replace(/\s+/g,"")))return 1;if(first.length<2||second.length<2)return 0;var firstBigrams=new Map;for(let i=0;i<first.length-1;i++){var bigram=first.substring(i,i+2),count=firstBigrams.has(bigram)?firstBigrams.get(bigram)+1:1;firstBigrams.set(bigram,count)}let intersectionSize=0;for(let i=0;i<second.length-1;i++){const bigram=second.substring(i,i+2),count=firstBigrams.has(bigram)?firstBigrams.get(bigram):0;0<count&&(firstBigrams.set(bigram,count-1),intersectionSize++)}return 2*intersectionSize/(first.length+second.length-2)}function findBestMatch(mainString,targetStrings){var ratings=[];let bestMatchIndex=0;for(let i=0;i<targetStrings.length;i++){var currentTargetString=targetStrings[i],currentRating=compareTwoStrings(mainString,currentTargetString);ratings.push({target:currentTargetString,rating:currentRating}),currentRating>ratings[bestMatchIndex].rating&&(bestMatchIndex=i)}return{ratings:ratings,bestMatch:ratings[bestMatchIndex],bestMatchIndex:bestMatchIndex}}function lcs(str1,str2){if(!str1||!str2)return{length:0,sequence:"",offset:0};for(var sequence="",str1Length=str1.length,str2Length=str2.length,num=new Array(str1Length),maxlen=0,lastSubsBegin=0,i=0;i<str1Length;i++){for(var subArray=new Array(str2Length),j=0;j<str2Length;j++)subArray[j]=0;num[i]=subArray}for(var thisSubsBegin=null,i=0;i<str1Length;i++)for(j=0;j<str2Length;j++)str1[i]!==str2[j]?num[i][j]=0:(num[i][j]=0===i||0===j?1:1+num[i-1][j-1],num[i][j]>maxlen&&(maxlen=num[i][j],lastSubsBegin===(thisSubsBegin=i-num[i][j]+1)?sequence+=str1[i]:(lastSubsBegin=thisSubsBegin,sequence="",sequence+=str1.substr(lastSubsBegin,i+1-lastSubsBegin))));return{length:maxlen,sequence:sequence,offset:thisSubsBegin}}function findBestLCS(mainString,targetStrings){var results=[];let bestMatchIndex=0;for(let i=0;i<targetStrings.length;i++){var currentTargetString=targetStrings[i],currentLCS=lcs(mainString,currentTargetString);results.push({target:currentTargetString,lcs:currentLCS}),currentLCS.length>results[bestMatchIndex].lcs.length&&(bestMatchIndex=i)}return{allLCS:results,bestMatch:results[bestMatchIndex],bestMatchIndex:bestMatchIndex}}export{compareTwoStrings,findBestMatch,findBestLCS};
|
||||
@@ -1,10 +0,0 @@
|
||||
import * as spider from '%s'
|
||||
|
||||
if (!globalThis.__JS_SPIDER__) {
|
||||
if (spider.__jsEvalReturn) {
|
||||
globalThis.req = http
|
||||
globalThis.__JS_SPIDER__ = spider.__jsEvalReturn()
|
||||
} else if (spider.default) {
|
||||
globalThis.__JS_SPIDER__ = typeof spider.default === 'function' ? spider.default() : spider.default
|
||||
}
|
||||
}
|
||||
@@ -1,250 +0,0 @@
|
||||
let ic_dir = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA7AAAAOwBeShxvQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIoSURBVFiF7Ze/T9RgGMc/T9/WO+74IXdRNKCJxETPQaOJi8LoxiouTurmv+DAYvwH3JzVhOhgSHByMTqY6GBCCBFMcJFwURC4O1rbvo8DoIg9rvHuYOGTdGjfb/J88vZpn1Z0bKw7JjsiaCcJqMiCKQ1OyuhonLTeLG5MZlLQq/UCooqd/nwfuNcOAUfgSorcbR0fN20RACRF7hgzc0PtEJB47IGmCSq8EXjbOKjG+VG54Buv531puK/WkfO2L0cY+ZI5ksVfD84vTt91U5vCEBvH7qxU0GqV18PX+Xg2+e6GFmZXhPlc3zOX5dW0Do2xMbIeEBuXmVMX68Y8BwxQzhXFlWqtdQKbzA+cIch0pMq630vgX55DTJgY+Bn18ql8hyAqphb4VjjeMLPVeG722nOKztddw0EPTARPUws0ohqB3TRw8w2KAwyaCRara/i2u+niCqxHf85TPQWe+Jw2L3kX3GhaYCdip5xU74FV28dSPNB8QZR8VEbCiCe1h+kFWopCVLH42oWz58Xh98s/y9o+CWzjQOBA4EBg3wX+mgWxdwlrTtSJRrjBK0T99glUC49R52jdcG75Fp7/on0C4BGGIeWFMtsHRL4zT2/hMCoerebfHkgYTWm+2/+XHTsQ4h3y6D/ZnxgWjRKvt0wgv3QTa+rN/I0mbDVipxxLe3c5kWjNgqIOSOO/nRajMVu99kF0hi4iM4LQtSfVrWbigHMa21k35NEvWSq4Cnb1Ay8AAAAASUVORK5CYII=';
|
||||
let ic_file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA7AAAAOwBeShxvQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJdSURBVFiF7ZfLaxNRFMa/c+8MbZO0xAgmGIIxUmtsQCkobsSNO12I7v0PXAjuBDeCCN0I/gvdu3HhQlHBBwouTA1UUoulKXmYSDp59TEzx4XUpmFm0tsMTRd+u5l7uN9vvnvunRmCh+r1+km2+CWAlFedm5byP79PIHRx8tKk4VYjvCawTfvafs0BoN1qThWNYn7h3cK4EgDPI23P07Ox5pM7+zXfVqPRPFbulPO517nQngBmv3JwkwIPQXQDXDs9KAAANI1WtLpVXcx9yEU8AWY/WU95nRvL1tVbfhgLKXcgGq1oZe3XajabPdJdo3VfMOg2AAL7YQ8kUyewIiQs0wQAbG5sjHbqnUUARx0BAMi/IP4oEAxganpnFcuFEggU7q7x3AUHoaED9C6Bp5gZlmUpGQgSENL9OR0B2KUJCssFFAslJQAShPMXzkHX9b0DuCmRTCCRTCgB9JPzSeirhbeUEjDqBgyjoWQgiBCLxyCEcx8494DLZLZtwzbVmpAFeUaqlEA4EkY4Eu5fqKBDeg64bsNVVEoVJQMCITOTga47WznfJefJ4onjiMWjygBSk67jSgcRCYImlNqmr4beA0M/iP4ncDgT+BfBAUThmQDbpv+OPZ+8ngBa+xWEWfbFt9PqgJmh6/r7XR5OxduIkpcw9uMsWE4MZM7QMKoFq2uBF2dS6VO1vgArWzPIjDwHSUCOA2DXf0sFit9z6XS61nu7F8AEgLfrD/CtfQUhWR3YNzZS+ngzdPc+ps03TuO7Xjuzn61HzHQPDL1pAvaAu4AZJYvo+uPL9MWt5g/5NsVsHsMO8wAAAABJRU5ErkJggg==';
|
||||
let current_root = '';
|
||||
let current_file = '';
|
||||
let current_parent = '';
|
||||
|
||||
function search() {
|
||||
doAction('search', { word: $('#keyword').val() });
|
||||
}
|
||||
|
||||
function push() {
|
||||
doAction('push', { url: $('#push_url').val() });
|
||||
}
|
||||
|
||||
function setting() {
|
||||
doAction('setting', { text: $('#setting_text').val(), name: $('#setting_name').val() });
|
||||
}
|
||||
|
||||
function file(path) {
|
||||
doAction('file', { path: path });
|
||||
}
|
||||
|
||||
function doAction(action, kv) {
|
||||
kv['do'] = action;
|
||||
$.post('/action', kv, function (data) {
|
||||
console.log(data);
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
function tpl_top(path) {
|
||||
return `<a class="weui-cell weui-cell_access" href="javascript:void(0)" onclick="listFile('` + path + `')">
|
||||
<div class="weui-cell__hd"><img src="` + ic_dir + `" alt="" style="width: 32px; margin-right: 16px; display: block;"></div>
|
||||
<span class="weui-cell__bd">
|
||||
<span class="weui-cell__name">..</span>
|
||||
</span>
|
||||
<span class="weui-cell__ft">
|
||||
</span>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
function tpl_dir(name, time, path) {
|
||||
return `<a class="weui-cell weui-cell_access" href="#" onclick="listFile('` + path + `')">
|
||||
<div class="weui-cell__hd"><img src="` + ic_dir + `" alt="" style="width: 32px; margin-right: 16px; display: block;"></div>
|
||||
<span class="weui-cell__bd">
|
||||
<span class="weui-cell__name">` + name + `</span>
|
||||
<div class="weui-cell__desc">` + time + `</div>
|
||||
</span>
|
||||
<span class="weui-cell__ft">
|
||||
</span>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
function tpl_file(name, time, path, canDel) {
|
||||
return `<a class="weui-cell weui-cell_access" href="javascript:void(0)" onclick="selectFile('` + path + `', ` + canDel + `)">
|
||||
<div class="weui-cell__hd"><img src="` + ic_file + `" alt="" style="width: 32px; margin-right: 16px; display: block;"></div>
|
||||
<span class="weui-cell__bd">
|
||||
<span class="weui-cell__name">` + name + `</span>
|
||||
<div class="weui-cell__desc">` + time + `</div>
|
||||
</span>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
function clear_list() {
|
||||
$('#file_list').html('');
|
||||
}
|
||||
|
||||
function add_file(node) {
|
||||
$('#file_list').append(node);
|
||||
}
|
||||
|
||||
function selectFile(path, canDel) {
|
||||
current_file = path;
|
||||
if (canDel) $("#delFileBtn").show();
|
||||
else $("#delFileBtn").hide();
|
||||
$("#fileUrl").html("file:/" + current_file);
|
||||
$("#fileInfoDialog").show();
|
||||
}
|
||||
|
||||
function pushFile(yes) {
|
||||
hideFileInfo();
|
||||
if (yes == 1) {
|
||||
file("file:/" + current_file);
|
||||
}
|
||||
}
|
||||
|
||||
function hideFileInfo() {
|
||||
$("#fileInfoDialog").hide();
|
||||
}
|
||||
|
||||
function listFile(path) {
|
||||
$('#loadingToast').show();
|
||||
$.get('/file' + path, function (res) {
|
||||
let info = JSON.parse(res);
|
||||
let parent = info.parent;
|
||||
let canDel = info.parent != '.';
|
||||
current_root = path;
|
||||
current_parent = parent;
|
||||
let array = info.files;
|
||||
if (path === '' && array.length == 0) {
|
||||
warnToast('可能沒有存儲權限');
|
||||
}
|
||||
clear_list();
|
||||
if (parent !== '.') {
|
||||
add_file(tpl_top(parent));
|
||||
}
|
||||
if (canDel) {
|
||||
$('#delCurFolder').show();
|
||||
} else {
|
||||
$('#delCurFolder').hide();
|
||||
}
|
||||
array.forEach(node => {
|
||||
if (node.dir === 1) {
|
||||
add_file(tpl_dir(node.name, node.time, node.path));
|
||||
} else {
|
||||
add_file(tpl_file(node.name, node.time, node.path, canDel));
|
||||
}
|
||||
});
|
||||
$('#loadingToast').hide();
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function uploadFile() {
|
||||
$('#file_uploader').click();
|
||||
}
|
||||
|
||||
function uploadTip() {
|
||||
let files = $('#file_uploader')[0].files;
|
||||
if (files.length <= 0) return false;
|
||||
let tip = '';
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
tip += (files[i].name) + ',';
|
||||
}
|
||||
tip = tip.substring(0, tip.length - 1);
|
||||
$('#uploadTipContent').html(tip);
|
||||
$('#uploadTip').show();
|
||||
}
|
||||
|
||||
function doUpload(yes) {
|
||||
$('#uploadTip').hide();
|
||||
if (yes == 1) {
|
||||
let files = $('#file_uploader')[0].files;
|
||||
if (files.length <= 0) return false;
|
||||
var formData = new FormData();
|
||||
formData.append('path', current_root);
|
||||
for (i = 0; i < files.length; i++) {
|
||||
formData.append("files-" + i, files[i]);
|
||||
}
|
||||
$('#loadingToast').show();
|
||||
$.ajax({
|
||||
url: '/upload',
|
||||
type: 'post',
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
complete: function () {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_root);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function newFolder() {
|
||||
$('#newFolder').show();
|
||||
}
|
||||
|
||||
function doNewFolder(yes) {
|
||||
$('#newFolder').hide();
|
||||
if (yes == 1) {
|
||||
let name = $('#newFolderContent')[0].value.trim();
|
||||
if (name.length <= 0) return false;
|
||||
$('#loadingToast').show();
|
||||
$.post('/newFolder', { path: current_root, name: name }, function (data) {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_root);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function delFolder() {
|
||||
$('#delFolderContent').html('是否刪除 ' + current_root);
|
||||
$('#delFolder').show();
|
||||
}
|
||||
|
||||
function doDelFolder(yes) {
|
||||
$('#delFolder').hide();
|
||||
if (yes == 1) {
|
||||
$('#loadingToast').show();
|
||||
$.post('/delFolder', { path: current_root }, function (data) {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_parent);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function delFile() {
|
||||
$('#delFileContent').html('是否刪除 ' + current_file);
|
||||
$('#delFile').show();
|
||||
hideFileInfo();
|
||||
}
|
||||
|
||||
function doDelFile(yes) {
|
||||
$('#delFile').hide();
|
||||
if (yes == 1) {
|
||||
$('#loadingToast').show();
|
||||
$.post('/delFile', { path: current_file }, function (data) {
|
||||
$('#loadingToast').hide();
|
||||
listFile(current_root);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function warnToast(msg) {
|
||||
$('#warnToastContent').html(msg);
|
||||
$('#warnToast').show();
|
||||
setTimeout(() => {
|
||||
$('#warnToast').hide();
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
function showPanel(id) {
|
||||
let tab = $('#tab' + id);
|
||||
$(tab).attr('aria-selected', 'true').addClass('weui-bar__item_on');
|
||||
$(tab).siblings('.weui-bar__item_on').removeClass('weui-bar__item_on').attr('aria-selected', 'false');
|
||||
var panelId = '#' + $(tab).attr('aria-controls');
|
||||
$(panelId).css('display', 'block');
|
||||
$(panelId).siblings('.weui-tab__panel').css('display', 'none');
|
||||
if (id === 4) listFile('')
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$('.weui-tabbar__item').on('click', function () {
|
||||
showPanel(parseInt($(this).attr('id').substr(3)));
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function () {
|
||||
var url = window.location.search;
|
||||
if (url.indexOf('tab=2') > 0) {
|
||||
showPanel(2);
|
||||
} else if (url.indexOf('tab=3') > 0) {
|
||||
showPanel(3);
|
||||
} else if (url.indexOf('tab=4') > 0) {
|
||||
showPanel(4);
|
||||
} else {
|
||||
showPanel(1);
|
||||
}
|
||||
});
|
||||
@@ -1,26 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-TW">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
|
||||
<title>解析</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container"></div>
|
||||
<script>
|
||||
const jxs = "%s";
|
||||
const url = "%s";
|
||||
const list = jxs.split(";");
|
||||
const container = document.getElementById('container');
|
||||
list.forEach(item => {
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.src = item + url;
|
||||
iframe.sandbox = 'allow-scripts allow-same-origin allow-forms';
|
||||
container.appendChild(iframe);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,27 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 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.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler, and multiplies its alpha value by uAlphaScale.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform float uAlphaScale;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
vec4 src = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
gl_FragColor = vec4(src.rgb, src.a * uAlphaScale);
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 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.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler and copies this to the output.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
gl_FragColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 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.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler. It then converts the RGB color input into HSL and adjusts
|
||||
// the Hue, Saturation, and Lightness and converts it then back to RGB.
|
||||
|
||||
// We use the algorithm based on the work by Sam Hocevar, which optimizes
|
||||
// for an efficient branchless RGB <-> HSL conversion. A blog post is
|
||||
// at https://www.chilliant.com/rgb2hsv.html and it is further explained at
|
||||
// http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv.
|
||||
|
||||
precision highp float;
|
||||
uniform sampler2D uTexSampler;
|
||||
// uHueAdjustmentDegrees, uSaturationAdjustment, and uLightnessAdjustment
|
||||
// are normalized to the unit interval [0, 1].
|
||||
uniform float uHueAdjustmentDegrees;
|
||||
uniform float uSaturationAdjustment;
|
||||
uniform float uLightnessAdjustment;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
const float epsilon = 1e-10;
|
||||
|
||||
vec3 rgbToHcv(vec3 rgb) {
|
||||
vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0)
|
||||
: vec4(rgb.gb, 0.0, -1.0 / 3.0);
|
||||
vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);
|
||||
float c = q.x - min(q.w, q.y);
|
||||
float h = abs((q.w - q.y) / (6.0 * c + epsilon) + q.z);
|
||||
return vec3(h, c, q.x);
|
||||
}
|
||||
|
||||
vec3 rgbToHsl(vec3 rgb) {
|
||||
vec3 hcv = rgbToHcv(rgb);
|
||||
float l = hcv.z - hcv.y * 0.5;
|
||||
float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + epsilon);
|
||||
return vec3(hcv.x, s, l);
|
||||
}
|
||||
|
||||
vec3 hueToRgb(float hue) {
|
||||
float r = abs(hue * 6.0 - 3.0) - 1.0;
|
||||
float g = 2.0 - abs(hue * 6.0 - 2.0);
|
||||
float b = 2.0 - abs(hue * 6.0 - 4.0);
|
||||
return clamp(vec3(r, g, b), 0.0, 1.0);
|
||||
}
|
||||
|
||||
vec3 hslToRgb(vec3 hsl) {
|
||||
vec3 rgb = hueToRgb(hsl.x);
|
||||
float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;
|
||||
return (rgb - 0.5) * c + hsl.z;
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
vec3 hslColor = rgbToHsl(inputColor.rgb);
|
||||
|
||||
hslColor.x = mod(hslColor.x + uHueAdjustmentDegrees, 1.0);
|
||||
hslColor.y = clamp(hslColor.y + uSaturationAdjustment, 0.0, 1.0);
|
||||
hslColor.z = clamp(hslColor.z + uLightnessAdjustment, 0.0, 1.0);
|
||||
|
||||
gl_FragColor = vec4(hslToRgb(hslColor), inputColor.a);
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 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.
|
||||
|
||||
// ES2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler, copying from this texture to the current output while
|
||||
// applying a 3D color lookup table to change the pixel colors.
|
||||
|
||||
precision highp float;
|
||||
uniform sampler2D uTexSampler;
|
||||
// The uColorLut texture is a N x N^2 2D texture where each z-plane of the 3D
|
||||
// LUT is vertically stacked on top of each other. The red channel of the input
|
||||
// color (z-axis in LUT[R][G][B] = LUT[z][y][x]) points to the plane to sample
|
||||
// from. For more information check the
|
||||
// androidx/media3/effect/SingleColorLut.java class, especially the function
|
||||
// #transformCubeIntoBitmap with a provided example.
|
||||
uniform sampler2D uColorLut;
|
||||
uniform float uColorLutLength;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
// Applies the color lookup using uLut based on the input colors.
|
||||
vec3 applyLookup(vec3 color) {
|
||||
// Reminder: Inside OpenGL vector.xyz is the same as vector.rgb.
|
||||
// Here we use mentions of x and y coordinates to references to
|
||||
// the position to sample from inside the 2D LUT plane and
|
||||
// rgb to create the 3D coordinates based on the input colors.
|
||||
|
||||
// To sample from the 3D LUT we interpolate bilinearly twice in the 2D LUT
|
||||
// to replicate the trilinear interpolation in a 3D LUT. Thus we sample
|
||||
// from the plane of position redCoordLow and on the plane above.
|
||||
// redCoordLow points to the lower plane to sample from.
|
||||
float redCoord = color.r * (uColorLutLength - 1.0);
|
||||
// Clamping to uColorLutLength - 2 is only needed if redCoord points to the
|
||||
// most upper plane. In this case there would not be any plane above
|
||||
// available to sample from.
|
||||
float redCoordLow = clamp(floor(redCoord), 0.0, uColorLutLength - 2.0);
|
||||
|
||||
// lowerY is indexed in two steps. First redCoordLow defines the plane to
|
||||
// sample from. Next the green color component is added to index the row in
|
||||
// the found plane. As described in the NVIDIA blog article about LUTs
|
||||
// https://developer.nvidia.com/gpugems/gpugems2/part-iii-high-quality-rendering/chapter-24-using-lookup-tables-accelerate-color
|
||||
// (Section 24.2), we sample from color * scale + offset, where offset is
|
||||
// defined by 1 / (2 * uColorLutLength) and the scale is defined by
|
||||
// (uColorLutLength - 1.0) / uColorLutLength.
|
||||
|
||||
// The following derives the equation of lowerY. For this let
|
||||
// N = uColorLutLenght. The general formula to sample at row y
|
||||
// is defined as y = N * r + g.
|
||||
// Using the offset and scale as described in NVIDIA's blog article we get:
|
||||
// y = offset + (N * r + g) * scale
|
||||
// y = 1 / (2 * N) + (N * r + g) * (N - 1) / N
|
||||
// y = 1 / (2 * N) + N * r * (N - 1) / N + g * (N - 1) / N
|
||||
// We have defined redCoord as r * (N - 1) if we excluded the clamping for
|
||||
// now, giving us:
|
||||
// y = 1 / (2 * N) + N * redCoord / N + g * (N - 1) / N
|
||||
// This simplifies to:
|
||||
// y = 0.5 / N + (N * redCoord + g * (N - 1)) / N
|
||||
// y = (0.5 + N * redCoord + g * (N - 1)) / N
|
||||
// This formula now assumes a coordinate system in the range of [0, N] but
|
||||
// OpenGL uses a [0, 1] unit coordinate system internally. Thus dividing
|
||||
// by N gives us the final formula for y:
|
||||
// y = ((0.5 + N * redCoord + g * (N - 1)) / N) / N
|
||||
// y = (0.5 + redCoord * N + g * (N - 1)) / (N * N)
|
||||
float lowerY = (0.5 + redCoordLow * uColorLutLength +
|
||||
color.g * (uColorLutLength - 1.0)) /
|
||||
(uColorLutLength * uColorLutLength);
|
||||
// The upperY is the same position moved up by one LUT plane.
|
||||
float upperY = lowerY + 1.0 / uColorLutLength;
|
||||
|
||||
// The x position is the blue color channel (x-axis in LUT[R][G][B]).
|
||||
float x = (0.5 + color.b * (uColorLutLength - 1.0)) / uColorLutLength;
|
||||
|
||||
vec3 lowerRgb = texture2D(uColorLut, vec2(x, lowerY)).rgb;
|
||||
vec3 upperRgb = texture2D(uColorLut, vec2(x, upperY)).rgb;
|
||||
|
||||
// Linearly interpolate between lowerRgb and upperRgb based on the
|
||||
// distance of the actual in the plane and the lower sampling position.
|
||||
return mix(lowerRgb, upperRgb, redCoord - redCoordLow);
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
|
||||
gl_FragColor.rgb = applyLookup(inputColor.rgb);
|
||||
gl_FragColor.a = inputColor.a;
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2022 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.
|
||||
|
||||
// ES 3 fragment shader that:
|
||||
// 1. Samples optical linear BT.2020 RGB from a (non-external) texture with
|
||||
// uTexSampler.
|
||||
// 2. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 3. Outputs electrical (HLG or PQ) BT.2020 RGB based on uOutputColorTransfer,
|
||||
// via an OETF.
|
||||
// The output will be red if an error has occurred.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
in vec2 vTexSamplingCoord;
|
||||
out vec4 outColor;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_ST2084 and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
uniform mat3 uColorTransform;
|
||||
uniform mat4 uRgbMatrix;
|
||||
|
||||
// TODO(b/227624622): Consider using mediump to save precision, if it won't lead
|
||||
// to noticeable quantization.
|
||||
|
||||
// HLG OETF for one channel.
|
||||
highp float hlgOetfSingleChannel(highp float linearChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=529-543;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
|
||||
return linearChannel <= 1.0 / 12.0 ? sqrt(3.0 * linearChannel)
|
||||
: a * log(12.0 * linearChannel - b) + c;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF.
|
||||
highp vec3 hlgOetf(highp vec3 linearColor) {
|
||||
return vec3(hlgOetfSingleChannel(linearColor.r),
|
||||
hlgOetfSingleChannel(linearColor.g),
|
||||
hlgOetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020, PQ / ST2084 OETF.
|
||||
highp vec3 pqOetf(highp vec3 linearColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=514-527;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(linearColor, vec3(m1));
|
||||
temp = (c1 + c2 * temp) / (1.0 + c3 * temp);
|
||||
return pow(temp, vec3(m2));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_ST2084 = 6;
|
||||
const int COLOR_TRANSFER_HLG = 7;
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgOetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture(uTexSampler, vTexSamplingCoord);
|
||||
// transformedColors is an optical color.
|
||||
vec4 transformedColors = uRgbMatrix * vec4(inputColor.rgb, 1);
|
||||
outColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 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.
|
||||
|
||||
// ES 2 fragment shader that samples from a (non-external) texture with
|
||||
// uTexSampler, copying from this texture to the current output while
|
||||
// applying a 4x4 RGB color matrix to change the pixel colors.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
gl_FragColor = uRgbMatrix * vec4(inputColor.rgb, 1);
|
||||
gl_FragColor.a = inputColor.a;
|
||||
}
|
||||
@@ -1,240 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2022 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.
|
||||
|
||||
// ES 3 fragment shader that:
|
||||
// 1. Samples electrical (HLG or PQ) BT.2020 YUV from an external texture with
|
||||
// uTexSampler, where the sampler uses the EXT_YUV_target extension specified
|
||||
// at
|
||||
// https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_YUV_target.txt,
|
||||
// 2. Applies a YUV to RGB conversion using the specified color transform
|
||||
// uYuvToRgbColorTransform, yielding electrical (HLG or PQ) BT.2020 RGB,
|
||||
// 3. Applies an EOTF based on uInputColorTransfer, yielding optical linear
|
||||
// BT.2020 RGB.
|
||||
// 4. Optionally applies a BT2020 to BT709 OOTF, if OpenGL tone-mapping is
|
||||
// requested via uApplyHdrToSdrToneMapping.
|
||||
// 5. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 6. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_ST2084 /
|
||||
// COLOR_TRANSFER_HLG to output electrical colors via an OETF (e.g. to an
|
||||
// encoder).
|
||||
// The output will be red or blue if an error has occurred.
|
||||
|
||||
#extension GL_OES_EGL_image_external : require
|
||||
#extension GL_EXT_YUV_target : require
|
||||
precision mediump float;
|
||||
uniform __samplerExternal2DY2YEXT uTexSampler;
|
||||
uniform mat3 uYuvToRgbColorTransform;
|
||||
uniform mat4 uRgbMatrix;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_ST2084 and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uInputColorTransfer;
|
||||
uniform int uApplyHdrToSdrToneMapping;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR, COLOR_TRANSFER_GAMMA_2_2, COLOR_TRANSFER_ST2084,
|
||||
// and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
in vec2 vTexSamplingCoord;
|
||||
out vec4 outColor;
|
||||
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_GAMMA_2_2 = 10;
|
||||
const int COLOR_TRANSFER_ST2084 = 6;
|
||||
const int COLOR_TRANSFER_HLG = 7;
|
||||
|
||||
// TODO(b/227624622): Consider using mediump to save precision, if it won't lead
|
||||
// to noticeable quantization errors.
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF for one channel.
|
||||
highp float hlgEotfSingleChannel(highp float hlgChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=265-279;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
return hlgChannel <= 0.5 ? hlgChannel * hlgChannel / 3.0
|
||||
: (b + exp((hlgChannel - c) / a)) / 12.0;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF.
|
||||
highp vec3 hlgEotf(highp vec3 hlgColor) {
|
||||
return vec3(hlgEotfSingleChannel(hlgColor.r),
|
||||
hlgEotfSingleChannel(hlgColor.g),
|
||||
hlgEotfSingleChannel(hlgColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 PQ EOTF.
|
||||
highp vec3 pqEotf(highp vec3 pqColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=250-263;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(clamp(pqColor, 0.0, 1.0), 1.0 / vec3(m2));
|
||||
temp = max(temp - c1, 0.0) / (c2 - c3 * temp);
|
||||
return pow(temp, 1.0 / vec3(m1));
|
||||
}
|
||||
|
||||
// Applies the appropriate EOTF to convert nonlinear electrical values to linear
|
||||
// optical values. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyEotf(highp vec3 electricalColor) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqEotf(electricalColor);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgEotf(electricalColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// Apply the HLG BT2020 to BT709 OOTF.
|
||||
highp vec3 applyHlgBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
// Reference ("HLG Reference OOTF" section):
|
||||
// https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-2-201807-I!!PDF-E.pdf
|
||||
// Matrix values based on computeXYZMatrix(BT2020Primaries, BT2020WhitePoint)
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/libs/hwui/utils/HostColorSpace.cpp;l=200-232;drc=86bd214059cd6150304888a285941bf74af5b687
|
||||
const mat3 RGB_TO_XYZ_BT2020 =
|
||||
mat3(0.63695805f, 0.26270021f, 0.00000000f, 0.14461690f, 0.67799807f,
|
||||
0.02807269f, 0.16888098f, 0.05930172f, 1.06098506f);
|
||||
// Matrix values based on computeXYZMatrix(BT709Primaries, BT709WhitePoint)
|
||||
const mat3 XYZ_TO_RGB_BT709 =
|
||||
mat3(3.24096994f, -0.96924364f, 0.05563008f, -1.53738318f, 1.87596750f,
|
||||
-0.20397696f, -0.49861076f, 0.04155506f, 1.05697151f);
|
||||
// hlgGamma is 1.2 + 0.42 * log10(nominalPeakLuminance/1000);
|
||||
// nominalPeakLuminance was selected to use a 500 as a typical value, used
|
||||
// in
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/tonemap/tonemap.cpp;drc=7a577450e536aa1e99f229a0cb3d3531c82e8a8d;l=62,
|
||||
// b/199162498#comment35, and
|
||||
// https://www.microsoft.com/applied-sciences/uploads/projects/investigation-of-hdr-vs-tone-mapped-sdr/investigation-of-hdr-vs-tone-mapped-sdr.pdf.
|
||||
const float hlgGamma = 1.0735674018211279;
|
||||
|
||||
vec3 linearXyzBt2020 = RGB_TO_XYZ_BT2020 * linearRgbBt2020;
|
||||
vec3 linearXyzBt709 =
|
||||
linearXyzBt2020 * pow(linearXyzBt2020[1], hlgGamma - 1.0);
|
||||
vec3 linearRgbBt709 = clamp((XYZ_TO_RGB_BT709 * linearXyzBt709), 0.0, 1.0);
|
||||
return linearRgbBt709;
|
||||
}
|
||||
|
||||
// Apply the PQ BT2020 to BT709 OOTF.
|
||||
highp vec3 applyPqBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
float pqPeakLuminance = 10000.0;
|
||||
float sdrPeakLuminance = 500.0;
|
||||
|
||||
return linearRgbBt2020 * pqPeakLuminance / sdrPeakLuminance;
|
||||
}
|
||||
|
||||
highp vec3 applyBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return applyPqBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return applyHlgBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else {
|
||||
// Output green as an obviously visible error.
|
||||
return vec3(0.0, 1.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF for one channel.
|
||||
highp float hlgOetfSingleChannel(highp float linearChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=529-543;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
|
||||
return linearChannel <= 1.0 / 12.0 ? sqrt(3.0 * linearChannel)
|
||||
: a * log(12.0 * linearChannel - b) + c;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF.
|
||||
highp vec3 hlgOetf(highp vec3 linearColor) {
|
||||
return vec3(hlgOetfSingleChannel(linearColor.r),
|
||||
hlgOetfSingleChannel(linearColor.g),
|
||||
hlgOetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020, PQ / ST2084 OETF.
|
||||
highp vec3 pqOetf(highp vec3 linearColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=514-527;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(linearColor, vec3(m1));
|
||||
temp = (c1 + c2 * temp) / (1.0 + c3 * temp);
|
||||
return pow(temp, vec3(m2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF for one channel.
|
||||
float gamma22OetfSingleChannel(highp float linearChannel) {
|
||||
// Reference:
|
||||
// https://developer.android.com/reference/android/hardware/DataSpace#TRANSFER_GAMMA2_2
|
||||
return pow(linearChannel, (1.0 / 2.2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF.
|
||||
vec3 gamma22Oetf(highp vec3 linearColor) {
|
||||
return vec3(gamma22OetfSingleChannel(linearColor.r),
|
||||
gamma22OetfSingleChannel(linearColor.g),
|
||||
gamma22OetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_GAMMA_2_2) {
|
||||
return gamma22Oetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR) {
|
||||
return linearColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
vec3 yuvToRgb(vec3 yuv) {
|
||||
const vec3 yuvOffset = vec3(0.0625, 0.5, 0.5);
|
||||
return clamp(uYuvToRgbColorTransform * (yuv - yuvOffset), 0.0, 1.0);
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 srcYuv = texture(uTexSampler, vTexSamplingCoord).xyz;
|
||||
vec3 opticalColorBt2020 = applyEotf(yuvToRgb(srcYuv));
|
||||
vec4 opticalColor =
|
||||
(uApplyHdrToSdrToneMapping == 1)
|
||||
? vec4(applyBt2020ToBt709Ootf(opticalColorBt2020), 1.0)
|
||||
: vec4(opticalColorBt2020, 1.0);
|
||||
vec4 transformedColors = uRgbMatrix * opticalColor;
|
||||
outColor = vec4(applyOetf(transformedColors.rgb), 1.0);
|
||||
}
|
||||
@@ -1,227 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2022 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.
|
||||
|
||||
// ES 3 fragment shader that:
|
||||
// 1. Samples electrical (HLG or PQ) BT.2020 RGB from an internal texture.
|
||||
// 2. Applies an EOTF based on uInputColorTransfer, yielding optical linear
|
||||
// BT.2020 RGB.
|
||||
// 3. Optionally applies a BT2020 to BT709 OOTF, if OpenGL tone-mapping is
|
||||
// requested via uApplyHdrToSdrToneMapping.
|
||||
// 4. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 5. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_ST2084 /
|
||||
// COLOR_TRANSFER_HLG to output electrical colors via an OETF (e.g. to an
|
||||
// encoder).
|
||||
// The output will be red or blue if an error has occurred.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_ST2084 and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uInputColorTransfer;
|
||||
uniform int uApplyHdrToSdrToneMapping;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR, COLOR_TRANSFER_GAMMA_2_2, COLOR_TRANSFER_ST2084,
|
||||
// and COLOR_TRANSFER_HLG are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
in vec2 vTexSamplingCoord;
|
||||
out vec4 outColor;
|
||||
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_GAMMA_2_2 = 10;
|
||||
const int COLOR_TRANSFER_ST2084 = 6;
|
||||
const int COLOR_TRANSFER_HLG = 7;
|
||||
|
||||
// TODO(b/227624622): Consider using mediump to save precision, if it won't lead
|
||||
// to noticeable quantization errors.
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF for one channel.
|
||||
highp float hlgEotfSingleChannel(highp float hlgChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=265-279;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
return hlgChannel <= 0.5 ? hlgChannel * hlgChannel / 3.0
|
||||
: (b + exp((hlgChannel - c) / a)) / 12.0;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG EOTF.
|
||||
highp vec3 hlgEotf(highp vec3 hlgColor) {
|
||||
return vec3(hlgEotfSingleChannel(hlgColor.r),
|
||||
hlgEotfSingleChannel(hlgColor.g),
|
||||
hlgEotfSingleChannel(hlgColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 PQ EOTF.
|
||||
highp vec3 pqEotf(highp vec3 pqColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=250-263;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(clamp(pqColor, 0.0, 1.0), 1.0 / vec3(m2));
|
||||
temp = max(temp - c1, 0.0) / (c2 - c3 * temp);
|
||||
return pow(temp, 1.0 / vec3(m1));
|
||||
}
|
||||
|
||||
// Applies the appropriate EOTF to convert nonlinear electrical values to linear
|
||||
// optical values. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyEotf(highp vec3 electricalColor) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqEotf(electricalColor);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgEotf(electricalColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// Apply the HLG BT2020 to BT709 OOTF.
|
||||
highp vec3 applyHlgBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
// Reference ("HLG Reference OOTF" section):
|
||||
// https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-2-201807-I!!PDF-E.pdf
|
||||
// Matrix values based on computeXYZMatrix(BT2020Primaries, BT2020WhitePoint)
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/libs/hwui/utils/HostColorSpace.cpp;l=200-232;drc=86bd214059cd6150304888a285941bf74af5b687
|
||||
const mat3 RGB_TO_XYZ_BT2020 =
|
||||
mat3(0.63695805f, 0.26270021f, 0.00000000f, 0.14461690f, 0.67799807f,
|
||||
0.02807269f, 0.16888098f, 0.05930172f, 1.06098506f);
|
||||
// Matrix values based on computeXYZMatrix(BT709Primaries, BT709WhitePoint)
|
||||
const mat3 XYZ_TO_RGB_BT709 =
|
||||
mat3(3.24096994f, -0.96924364f, 0.05563008f, -1.53738318f, 1.87596750f,
|
||||
-0.20397696f, -0.49861076f, 0.04155506f, 1.05697151f);
|
||||
// hlgGamma is 1.2 + 0.42 * log10(nominalPeakLuminance/1000);
|
||||
// nominalPeakLuminance was selected to use a 500 as a typical value, used
|
||||
// in
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/tonemap/tonemap.cpp;drc=7a577450e536aa1e99f229a0cb3d3531c82e8a8d;l=62,
|
||||
// b/199162498#comment35, and
|
||||
// https://www.microsoft.com/applied-sciences/uploads/projects/investigation-of-hdr-vs-tone-mapped-sdr/investigation-of-hdr-vs-tone-mapped-sdr.pdf.
|
||||
const float hlgGamma = 1.0735674018211279;
|
||||
|
||||
vec3 linearXyzBt2020 = RGB_TO_XYZ_BT2020 * linearRgbBt2020;
|
||||
vec3 linearXyzBt709 =
|
||||
linearXyzBt2020 * pow(linearXyzBt2020[1], hlgGamma - 1.0);
|
||||
vec3 linearRgbBt709 = clamp((XYZ_TO_RGB_BT709 * linearXyzBt709), 0.0, 1.0);
|
||||
return linearRgbBt709;
|
||||
}
|
||||
|
||||
// Apply the PQ BT2020 to BT709 OOTF.
|
||||
highp vec3 applyPqBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
float pqPeakLuminance = 10000.0;
|
||||
float sdrPeakLuminance = 500.0;
|
||||
|
||||
return linearRgbBt2020 * pqPeakLuminance / sdrPeakLuminance;
|
||||
}
|
||||
|
||||
highp vec3 applyBt2020ToBt709Ootf(highp vec3 linearRgbBt2020) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return applyPqBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return applyHlgBt2020ToBt709Ootf(linearRgbBt2020);
|
||||
} else {
|
||||
// Output green as an obviously visible error.
|
||||
return vec3(0.0, 1.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF for one channel.
|
||||
highp float hlgOetfSingleChannel(highp float linearChannel) {
|
||||
// Specification:
|
||||
// https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_HLG
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=529-543;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float a = 0.17883277;
|
||||
const highp float b = 0.28466892;
|
||||
const highp float c = 0.55991073;
|
||||
|
||||
return linearChannel <= 1.0 / 12.0 ? sqrt(3.0 * linearChannel)
|
||||
: a * log(12.0 * linearChannel - b) + c;
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020 HLG OETF.
|
||||
highp vec3 hlgOetf(highp vec3 linearColor) {
|
||||
return vec3(hlgOetfSingleChannel(linearColor.r),
|
||||
hlgOetfSingleChannel(linearColor.g),
|
||||
hlgOetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// BT.2100 / BT.2020, PQ / ST2084 OETF.
|
||||
highp vec3 pqOetf(highp vec3 linearColor) {
|
||||
// Specification:
|
||||
// https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.inline.html#TRANSFER_PQ
|
||||
// Reference implementation:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/gl/ProgramCache.cpp;l=514-527;drc=de09f10aa504fd8066370591a00c9ff1cafbb7fa
|
||||
const highp float m1 = (2610.0 / 16384.0);
|
||||
const highp float m2 = (2523.0 / 4096.0) * 128.0;
|
||||
const highp float c1 = (3424.0 / 4096.0);
|
||||
const highp float c2 = (2413.0 / 4096.0) * 32.0;
|
||||
const highp float c3 = (2392.0 / 4096.0) * 32.0;
|
||||
|
||||
highp vec3 temp = pow(linearColor, vec3(m1));
|
||||
temp = (c1 + c2 * temp) / (1.0 + c3 * temp);
|
||||
return pow(temp, vec3(m2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF for one channel.
|
||||
float gamma22OetfSingleChannel(highp float linearChannel) {
|
||||
// Reference:
|
||||
// https://developer.android.com/reference/android/hardware/DataSpace#TRANSFER_GAMMA2_2
|
||||
return pow(linearChannel, (1.0 / 2.2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF.
|
||||
vec3 gamma22Oetf(highp vec3 linearColor) {
|
||||
return vec3(gamma22OetfSingleChannel(linearColor.r),
|
||||
gamma22OetfSingleChannel(linearColor.g),
|
||||
gamma22OetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_ST2084) {
|
||||
return pqOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_HLG) {
|
||||
return hlgOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_GAMMA_2_2) {
|
||||
return gamma22Oetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR) {
|
||||
return linearColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 opticalColorBt2020 =
|
||||
applyEotf(texture(uTexSampler, vTexSamplingCoord).xyz);
|
||||
vec4 opticalColor =
|
||||
(uApplyHdrToSdrToneMapping == 1)
|
||||
? vec4(applyBt2020ToBt709Ootf(opticalColorBt2020), 1.0)
|
||||
: vec4(opticalColorBt2020, 1.0);
|
||||
vec4 transformedColors = uRgbMatrix * opticalColor;
|
||||
outColor = vec4(applyOetf(transformedColors.rgb), 1.0);
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2021 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.
|
||||
|
||||
// ES 2 fragment shader that:
|
||||
// 1. Samples from an external texture with uTexSampler copying from this
|
||||
// texture to the current output.
|
||||
// 2. Transforms the electrical colors to optical colors using the SMPTE 170M
|
||||
// EOTF.
|
||||
// 3. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 4. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_SDR_VIDEO to
|
||||
// output electrical colors via an OETF (e.g. to an encoder).
|
||||
|
||||
#extension GL_OES_EGL_image_external : require
|
||||
precision mediump float;
|
||||
uniform samplerExternalOES uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR and COLOR_TRANSFER_SDR_VIDEO are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
uniform int uEnableColorTransfer;
|
||||
|
||||
const float inverseGamma = 0.4500;
|
||||
const float gamma = 1.0 / inverseGamma;
|
||||
const int GL_FALSE = 0;
|
||||
const int GL_TRUE = 1;
|
||||
|
||||
// Transforms a single channel from electrical to optical SDR using the SMPTE
|
||||
// 170M OETF.
|
||||
float smpte170mEotfSingleChannel(float electricalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return electricalChannel < 0.0812
|
||||
? electricalChannel / 4.500
|
||||
: pow((electricalChannel + 0.099) / 1.099, gamma);
|
||||
}
|
||||
|
||||
// Transforms electrical to optical SDR using the SMPTE 170M EOTF.
|
||||
vec3 smpte170mEotf(vec3 electricalColor) {
|
||||
return vec3(smpte170mEotfSingleChannel(electricalColor.r),
|
||||
smpte170mEotfSingleChannel(electricalColor.g),
|
||||
smpte170mEotfSingleChannel(electricalColor.b));
|
||||
}
|
||||
|
||||
// Transforms a single channel from optical to electrical SDR.
|
||||
float smpte170mOetfSingleChannel(float opticalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return opticalChannel < 0.018
|
||||
? opticalChannel * 4.500
|
||||
: 1.099 * pow(opticalChannel, inverseGamma) - 0.099;
|
||||
}
|
||||
|
||||
// Transforms optical SDR colors to electrical SDR using the SMPTE 170M OETF.
|
||||
vec3 smpte170mOetf(vec3 opticalColor) {
|
||||
return vec3(smpte170mOetfSingleChannel(opticalColor.r),
|
||||
smpte170mOetfSingleChannel(opticalColor.g),
|
||||
smpte170mOetfSingleChannel(opticalColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_SDR_VIDEO = 3;
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR ||
|
||||
uEnableColorTransfer == GL_FALSE) {
|
||||
return linearColor;
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mOetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
vec3 applyEotf(vec3 electricalColor) {
|
||||
if (uEnableColorTransfer == GL_TRUE) {
|
||||
return smpte170mEotf(electricalColor);
|
||||
} else if (uEnableColorTransfer == GL_FALSE) {
|
||||
return electricalColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
vec3 linearInputColor = applyEotf(inputColor.rgb);
|
||||
|
||||
vec4 transformedColors = uRgbMatrix * vec4(linearInputColor, 1);
|
||||
|
||||
gl_FragColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 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.
|
||||
|
||||
// ES 2 fragment shader that:
|
||||
// 1. Samples from an input texture created from an internal texture (e.g. a
|
||||
// texture created from a bitmap), with uTexSampler copying from this texture
|
||||
// to the current output.
|
||||
// 2. Transforms the electrical colors to optical colors using the SMPTE 170M
|
||||
// EOTF or the sRGB EOTF, as requested by uInputColorTransfer.
|
||||
// 3. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 4. Outputs as requested by uOutputColorTransfer. Use COLOR_TRANSFER_LINEAR
|
||||
// for outputting to intermediate shaders, or COLOR_TRANSFER_SDR_VIDEO to
|
||||
// output electrical colors via an OETF (e.g. to an encoder).
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_SRGB and COLOR_TRANSFER_SDR_VIDEO are allowed.
|
||||
uniform int uInputColorTransfer;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_LINEAR and COLOR_TRANSFER_SDR_VIDEO are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
uniform int uEnableColorTransfer;
|
||||
|
||||
const float inverseGamma = 0.4500;
|
||||
const float gamma = 1.0 / inverseGamma;
|
||||
const int GL_FALSE = 0;
|
||||
const int GL_TRUE = 1;
|
||||
// LINT.IfChange(color_transfer)
|
||||
const int COLOR_TRANSFER_LINEAR = 1;
|
||||
const int COLOR_TRANSFER_SRGB = 2;
|
||||
const int COLOR_TRANSFER_SDR_VIDEO = 3;
|
||||
|
||||
// Transforms a single channel from electrical to optical SDR using the sRGB
|
||||
// EOTF.
|
||||
float srgbEotfSingleChannel(float electricalChannel) {
|
||||
// Specification:
|
||||
// https://developer.android.com/ndk/reference/group/a-data-space#group___a_data_space_1gga2759ad19cae46646cc5f7002758c4a1cac1bef6aa3a72abbf4a651a0bfb117f96
|
||||
return electricalChannel <= 0.04045
|
||||
? electricalChannel / 12.92
|
||||
: pow((electricalChannel + 0.055) / 1.055, 2.4);
|
||||
}
|
||||
|
||||
// Transforms electrical to optical SDR using the sRGB EOTF.
|
||||
vec3 srgbEotf(const vec3 electricalColor) {
|
||||
return vec3(srgbEotfSingleChannel(electricalColor.r),
|
||||
srgbEotfSingleChannel(electricalColor.g),
|
||||
srgbEotfSingleChannel(electricalColor.b));
|
||||
}
|
||||
|
||||
// Transforms a single channel from electrical to optical SDR using the SMPTE
|
||||
// 170M OETF.
|
||||
float smpte170mEotfSingleChannel(float electricalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return electricalChannel < 0.0812
|
||||
? electricalChannel / 4.500
|
||||
: pow((electricalChannel + 0.099) / 1.099, gamma);
|
||||
}
|
||||
|
||||
// Transforms electrical to optical SDR using the SMPTE 170M EOTF.
|
||||
vec3 smpte170mEotf(vec3 electricalColor) {
|
||||
return vec3(smpte170mEotfSingleChannel(electricalColor.r),
|
||||
smpte170mEotfSingleChannel(electricalColor.g),
|
||||
smpte170mEotfSingleChannel(electricalColor.b));
|
||||
}
|
||||
|
||||
// Transforms a single channel from optical to electrical SDR.
|
||||
float smpte170mOetfSingleChannel(float opticalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return opticalChannel < 0.018
|
||||
? opticalChannel * 4.500
|
||||
: 1.099 * pow(opticalChannel, inverseGamma) - 0.099;
|
||||
}
|
||||
|
||||
// Transforms optical SDR colors to electrical SDR using the SMPTE 170M OETF.
|
||||
vec3 smpte170mOetf(vec3 opticalColor) {
|
||||
return vec3(smpte170mOetfSingleChannel(opticalColor.r),
|
||||
smpte170mOetfSingleChannel(opticalColor.g),
|
||||
smpte170mOetfSingleChannel(opticalColor.b));
|
||||
}
|
||||
// Applies the appropriate EOTF to convert nonlinear electrical signals to
|
||||
// linear optical signals. Input and output are both normalized to [0, 1].
|
||||
vec3 applyEotf(vec3 electricalColor) {
|
||||
if (uEnableColorTransfer == GL_TRUE) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_SRGB) {
|
||||
return srgbEotf(electricalColor);
|
||||
} else if (uInputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mEotf(electricalColor);
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
} else if (uEnableColorTransfer == GL_FALSE) {
|
||||
return electricalColor;
|
||||
} else {
|
||||
// Output blue as an obviously visible error.
|
||||
return vec3(0.0, 0.0, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_LINEAR ||
|
||||
uEnableColorTransfer == GL_FALSE) {
|
||||
return linearColor;
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mOetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
vec2 getAdjustedTexSamplingCoord(vec2 originalTexSamplingCoord) {
|
||||
if (uInputColorTransfer == COLOR_TRANSFER_SRGB) {
|
||||
// Whereas the Android system uses the top-left corner as (0,0) of the
|
||||
// coordinate system, OpenGL uses the bottom-left corner as (0,0), so the
|
||||
// texture gets flipped. We flip the texture vertically to ensure the
|
||||
// orientation of the output is correct.
|
||||
return vec2(originalTexSamplingCoord.x, 1.0 - originalTexSamplingCoord.y);
|
||||
} else {
|
||||
return originalTexSamplingCoord;
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor =
|
||||
texture2D(uTexSampler, getAdjustedTexSamplingCoord(vTexSamplingCoord));
|
||||
vec3 linearInputColor = applyEotf(inputColor.rgb);
|
||||
vec4 transformedColors = uRgbMatrix * vec4(linearInputColor, 1);
|
||||
|
||||
gl_FragColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2022 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.
|
||||
|
||||
// ES 2 fragment shader that:
|
||||
// 1. Samples from uTexSampler, copying from this texture to the current
|
||||
// output.
|
||||
// 2. Applies a 4x4 RGB color matrix to change the pixel colors.
|
||||
// 3. Transforms the optical colors to electrical colors using the SMPTE
|
||||
// 170M OETF.
|
||||
|
||||
precision mediump float;
|
||||
uniform sampler2D uTexSampler;
|
||||
uniform mat4 uRgbMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
// C.java#ColorTransfer value.
|
||||
// Only COLOR_TRANSFER_SDR and COLOR_TRANSFER_GAMMA_2_2 are allowed.
|
||||
uniform int uOutputColorTransfer;
|
||||
|
||||
const float inverseGamma = 0.4500;
|
||||
|
||||
// Transforms a single channel from optical to electrical SDR using the SMPTE
|
||||
// 170M OETF.
|
||||
float smpte170mOetfSingleChannel(float opticalChannel) {
|
||||
// Specification:
|
||||
// https://www.itu.int/rec/R-REC-BT.1700-0-200502-I/en
|
||||
return opticalChannel < 0.018
|
||||
? opticalChannel * 4.500
|
||||
: 1.099 * pow(opticalChannel, inverseGamma) - 0.099;
|
||||
}
|
||||
|
||||
// Transforms optical SDR colors to electrical SDR using the SMPTE 170M OETF.
|
||||
vec3 smpte170mOetf(vec3 opticalColor) {
|
||||
return vec3(smpte170mOetfSingleChannel(opticalColor.r),
|
||||
smpte170mOetfSingleChannel(opticalColor.g),
|
||||
smpte170mOetfSingleChannel(opticalColor.b));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF for one channel.
|
||||
float gamma22OetfSingleChannel(highp float linearChannel) {
|
||||
// Reference:
|
||||
// https://developer.android.com/reference/android/hardware/DataSpace#TRANSFER_gamma22
|
||||
return pow(linearChannel, (1.0 / 2.2));
|
||||
}
|
||||
|
||||
// BT.709 gamma 2.2 OETF.
|
||||
vec3 gamma22Oetf(highp vec3 linearColor) {
|
||||
return vec3(gamma22OetfSingleChannel(linearColor.r),
|
||||
gamma22OetfSingleChannel(linearColor.g),
|
||||
gamma22OetfSingleChannel(linearColor.b));
|
||||
}
|
||||
|
||||
// Applies the appropriate OETF to convert linear optical signals to nonlinear
|
||||
// electrical signals. Input and output are both normalized to [0, 1].
|
||||
highp vec3 applyOetf(highp vec3 linearColor) {
|
||||
// LINT.IfChange(color_transfer_oetf)
|
||||
const int COLOR_TRANSFER_SDR_VIDEO = 3;
|
||||
const int COLOR_TRANSFER_GAMMA_2_2 = 10;
|
||||
if (uOutputColorTransfer == COLOR_TRANSFER_SDR_VIDEO) {
|
||||
return smpte170mOetf(linearColor);
|
||||
} else if (uOutputColorTransfer == COLOR_TRANSFER_GAMMA_2_2) {
|
||||
return gamma22Oetf(linearColor);
|
||||
} else {
|
||||
// Output red as an obviously visible error.
|
||||
return vec3(1.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inputColor = texture2D(uTexSampler, vTexSamplingCoord);
|
||||
vec4 transformedColors = uRgbMatrix * vec4(inputColor.rgb, 1);
|
||||
|
||||
gl_FragColor = vec4(applyOetf(transformedColors.rgb), inputColor.a);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2023 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.
|
||||
|
||||
// ES2 vertex shader that tiles frames horizontally.
|
||||
|
||||
attribute vec4 aFramePosition;
|
||||
uniform int uIndex;
|
||||
uniform int uCount;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
|
||||
void main() {
|
||||
// Translate the coordinates from -1,+1 to 0,+2.
|
||||
float x = aFramePosition.x + 1.0;
|
||||
// Offset the frame by its index times its width (2).
|
||||
x += float(uIndex) * 2.0;
|
||||
// Shrink the frame to fit the thumbnail strip.
|
||||
x /= float(uCount);
|
||||
// Translate the coordinates back to -1,+1.
|
||||
x -= 1.0;
|
||||
|
||||
gl_Position = vec4(x, aFramePosition.yzw);
|
||||
vTexSamplingCoord = aFramePosition.xy * 0.5 + 0.5;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
#version 100
|
||||
// Copyright 2021 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.
|
||||
|
||||
// ES 2 vertex shader that applies the 4 * 4 transformation matrices
|
||||
// uTransformationMatrix and the uTexTransformationMatrix.
|
||||
|
||||
attribute vec4 aFramePosition;
|
||||
uniform mat4 uTransformationMatrix;
|
||||
uniform mat4 uTexTransformationMatrix;
|
||||
varying vec2 vTexSamplingCoord;
|
||||
void main() {
|
||||
gl_Position = uTransformationMatrix * aFramePosition;
|
||||
vec4 texturePosition = vec4(aFramePosition.x * 0.5 + 0.5,
|
||||
aFramePosition.y * 0.5 + 0.5, 0.0, 1.0);
|
||||
vTexSamplingCoord = (uTexTransformationMatrix * texturePosition).xy;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
#version 300 es
|
||||
// Copyright 2021 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.
|
||||
|
||||
// ES 3 vertex shader that applies the 4 * 4 transformation matrices
|
||||
// uTransformationMatrix and the uTexTransformationMatrix.
|
||||
|
||||
in vec4 aFramePosition;
|
||||
uniform mat4 uTransformationMatrix;
|
||||
uniform mat4 uTexTransformationMatrix;
|
||||
out vec2 vTexSamplingCoord;
|
||||
void main() {
|
||||
gl_Position = uTransformationMatrix * aFramePosition;
|
||||
vec4 texturePosition = vec4(aFramePosition.x * 0.5 + 0.5,
|
||||
aFramePosition.y * 0.5 + 0.5, 0.0, 1.0);
|
||||
vTexSamplingCoord = (uTexTransformationMatrix * texturePosition).xy;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
function fail(message) {
|
||||
if (message == null) {
|
||||
throw Error("❌assert error.")
|
||||
}
|
||||
|
||||
throw Error(message);
|
||||
}
|
||||
|
||||
export function assertEquals(expected, actual) {
|
||||
if (expected !== actual) {
|
||||
fail(`❌assert failed, expected:[${expected}] but was:[${actual}]`)
|
||||
}
|
||||
}
|
||||
|
||||
export function assertTrue(condition) {
|
||||
if (!condition) {
|
||||
fail()
|
||||
}
|
||||
}
|
||||
|
||||
export function assertFalse(condition) {
|
||||
if (condition) {
|
||||
fail()
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import {name, age} from './test_base_module2.mjs';
|
||||
import {assertEquals} from "./test_assert_define.js";
|
||||
|
||||
assertEquals(name, "Jack")
|
||||
assertEquals(age, 18)
|
||||
@@ -1,2 +0,0 @@
|
||||
export var name = 'Jack';
|
||||
export var age = 18;
|
||||
@@ -1,7 +0,0 @@
|
||||
import {assertEquals} from "./test_assert_define.js";
|
||||
|
||||
// dynamic import
|
||||
import("test_base_module2.mjs").then((res) => {
|
||||
assertEquals(res.name, "Jack")
|
||||
assertEquals(res.age, 18)
|
||||
})
|
||||
@@ -1,20 +0,0 @@
|
||||
function assertDate(expected, actual) {
|
||||
if ((Date.parse(expected) === new Date(expected).getTime()) && (Date.parse(expected) === actual)) {
|
||||
console.log('✅assert passed with ' + expected, 'Date.parse = ' + Date.parse(expected), 'Date.construct = ' + new Date(expected).getTime(), 'actual = ' + actual);
|
||||
} else {
|
||||
console.log('❌assert failed with ' + expected, 'Date.parse = ' + Date.parse(expected), 'Date.construct = ' + new Date(expected).getTime(), 'actual = ' + actual);
|
||||
throw Error('parse failed.');
|
||||
}
|
||||
}
|
||||
|
||||
assertDate('20130108', 1357603200000);
|
||||
assertDate('2018-04-24', 1524528000000);
|
||||
assertDate('2018-04-24 11:12', 1524539520000);
|
||||
assertDate('2018-05-02 11:12:13', 1525230733000);
|
||||
assertDate('2018-05-02 11:12:13.998', 1525230733998);
|
||||
assertDate('2018-4-1', 1522540800000);
|
||||
assertDate('2018-4-1 11:12', 1522552320000);
|
||||
assertDate('2018-4-1 1:1:1:223', 1522515661223);
|
||||
assertDate('2018-01', 1514764800000);
|
||||
assertDate('2018', 1514764800000);
|
||||
assertDate('2018-05-02T11:12:13Z', 1525259533000);
|
||||
@@ -1,65 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale en_US
|
||||
|
||||
err.not_iso8859_1=Not an ISO 8859-1 character: {0}
|
||||
err.servlet_config_not_initialized=ServletConfig has not been initialized
|
||||
value.true=true
|
||||
value.false=false
|
||||
@@ -1,66 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale fr_FR
|
||||
|
||||
err.not_iso8859_1={0} n''est pas un caractère ISO 8859-1
|
||||
value.true=true
|
||||
value.false=false
|
||||
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale ja_JP
|
||||
|
||||
err.not_iso8859_1=ISO 8859-1 \u306e\u6587\u5b57\u3067\u306f\u3042\u308a\u307e\u305b\u3093: {0}
|
||||
value.true=true
|
||||
value.false=false
|
||||
@@ -1,75 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale en_US
|
||||
|
||||
err.cookie_name_is_token=Cookie name \"{0}\" is a reserved token
|
||||
err.cookie_name_blank=Cookie name must not be null or empty
|
||||
err.io.nullArray=Null passed for byte array in write method
|
||||
err.io.indexOutOfBounds=Invalid offset [{0}] and / or length [{1}] specified for array of size [{2}]
|
||||
err.io.short_read=Short Read
|
||||
err.ise.getWriter=Illegal to call getWriter() after getOutputStream() has been called
|
||||
err.ise.getOutputStream=Illegal to call getOutputStream() after getWriter() has been called
|
||||
|
||||
http.method_not_implemented=Method {0} is not defined in RFC 2068 and is not supported by the Servlet API
|
||||
|
||||
http.method_get_not_supported=HTTP method GET is not supported by this URL
|
||||
http.method_post_not_supported=HTTP method POST is not supported by this URL
|
||||
http.method_put_not_supported=HTTP method PUT is not supported by this URL
|
||||
http.method_delete_not_supported=Http method DELETE is not supported by this URL
|
||||
@@ -1,73 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# $Id: LocalStrings_es.properties,v 1.1.1.1 2003/01/27 16:07:47 ja120114 Exp $
|
||||
#
|
||||
# Default localized string information
|
||||
# Localized para Locale es_ES
|
||||
|
||||
err.cookie_name_is_token=El Nombre de Cookie {0} es una palabra reservada
|
||||
err.io.negativelength=Longitud Negativa en el metodo write
|
||||
err.io.short_read=Lectura Corta
|
||||
|
||||
http.method_not_implemented=El Metodo {0} no esta definido en la especificacion RFC 2068 y no es soportado por la API Servlet
|
||||
|
||||
http.method_get_not_supported=El Metodo HTTP GET no es soportado por esta URL
|
||||
http.method_post_not_supported=El Metodo HTTP POST no es soportado por esta URL
|
||||
http.method_put_not_supported=El Metodo HTTP PUT no es soportado por esta URL
|
||||
http.method_delete_not_supported=El Metodo HTTP DELETE no es soportado por esta URL
|
||||
@@ -1,71 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale fr_FR
|
||||
|
||||
err.cookie_name_is_token=Le nom de cookie \"{0}\" est un \"token\" réservé
|
||||
err.io.negativelength=Taille négative donnée dans la méthode \"write\"
|
||||
err.io.short_read=Lecture partielle
|
||||
|
||||
http.method_not_implemented=Le méthode {0} n''est pas définie dans la RFC 2068 et n''est pas supportée par l''API Servlet
|
||||
|
||||
http.method_get_not_supported=La méthode HTTP GET n''est pas supportée par cette URL
|
||||
http.method_post_not_supported=La méthode HTTP POST n''est pas supportée par cette URL
|
||||
http.method_put_not_supported=La méthode HTTP PUT n''est pas supportée par cette URL
|
||||
http.method_delete_not_supported=La méthode HTTP DELETE n''est pas supportée par cette URL
|
||||
@@ -1,71 +0,0 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU
|
||||
# General Public License Version 2 only ("GPL") or the Common Development
|
||||
# and Distribution License("CDDL") (collectively, the "License"). You
|
||||
# may not use this file except in compliance with the License. You can
|
||||
# obtain a copy of the License at
|
||||
# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
||||
# or packager/legal/LICENSE.txt. See the License for the specific
|
||||
# language governing permissions and limitations under the License.
|
||||
#
|
||||
# When distributing the software, include this License Header Notice in each
|
||||
# file and include the License file at packager/legal/LICENSE.txt.
|
||||
#
|
||||
# GPL Classpath Exception:
|
||||
# Oracle designates this particular file as subject to the "Classpath"
|
||||
# exception as provided by Oracle in the GPL Version 2 section of the License
|
||||
# file that accompanied this code.
|
||||
#
|
||||
# Modifications:
|
||||
# If applicable, add the following below the License Header, with the fields
|
||||
# enclosed by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyright [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
# If you wish your version of this file to be governed by only the CDDL or
|
||||
# only the GPL Version 2, indicate your decision by adding "[Contributor]
|
||||
# elects to include this software in this distribution under the [CDDL or GPL
|
||||
# Version 2] license." If you don't indicate a single choice of license, a
|
||||
# recipient has the option to distribute your version of this file under
|
||||
# either the CDDL, the GPL Version 2 or to extend the choice of license to
|
||||
# its licensees as provided above. However, if you add GPL Version 2 code
|
||||
# and therefore, elected the GPL Version 2 license, then the option applies
|
||||
# only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
#
|
||||
# This file incorporates work covered by the following copyright and
|
||||
# permission notice:
|
||||
#
|
||||
# Copyright 2004 The Apache Software Foundation
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Default localized string information
|
||||
# Localized for Locale ja_JP
|
||||
|
||||
err.cookie_name_is_token=\u30af\u30c3\u30ad\u30fc\u540d \"{0}\" \u306f\u4e88\u7d04\u6e08\u306e\u30c8\u30fc\u30af\u30f3\u3067\u3059\u3002
|
||||
err.io.negativelength=write\u30e1\u30bd\u30c3\u30c9\u306b\u8ca0\u306e\u9577\u3055\u304c\u6307\u5b9a\u3055\u308c\u307e\u3057\u305f\u3002
|
||||
err.io.short_read=\u8aad\u307f\u8fbc\u307f\u304c\u3059\u3050\u306b\u7d42\u308f\u308a\u307e\u3057\u305f\u3002
|
||||
|
||||
http.method_not_implemented=\u30e1\u30bd\u30c3\u30c9 {0} \u306fRFC 2068\u306b\u306f\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u3089\u305a\u3001\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8API\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
|
||||
|
||||
http.method_get_not_supported=HTTP\u306eGET\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
http.method_post_not_supported=HTTP\u306ePOST\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
http.method_put_not_supported=HTTP\u306ePUT\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
http.method_delete_not_supported=HTTP\u306eDELETE\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
@@ -1,31 +0,0 @@
|
||||
body
|
||||
{
|
||||
background-color: #FFFFFF;
|
||||
margin: 10px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
h1
|
||||
{
|
||||
text-shadow: #000000 -1px -1px 1px;
|
||||
color: #FC390E;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
color: #7036be;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
text-decoration: none;
|
||||
font-size:inherit;
|
||||
}
|
||||
|
||||
td
|
||||
{
|
||||
font-style: italic;
|
||||
padding: 2px 15px 2px 0px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
Note that PublicSuffixDatabase.gz is compiled from The Public Suffix List:
|
||||
https://publicsuffix.org/list/public_suffix_list.dat
|
||||
|
||||
It is subject to the terms of the Mozilla Public License, v. 2.0:
|
||||
https://mozilla.org/MPL/2.0/
|
||||
@@ -1,616 +0,0 @@
|
||||
|
||||
## constructor exceptions
|
||||
|
||||
# cert path is empty
|
||||
CertPathReviewer.emptyCertPath.title = CertPath is empty
|
||||
CertPathReviewer.emptyCertPath.text = PKIXCertPathReviewer: the CertPath is empty.
|
||||
CertPathReviewer.emptyCertPath.summary = PKIXCertPathReviewer: the CertPath is empty.
|
||||
CertPathReviewer.emptyCertPath.details = PKIXCertPathReviewer: the CertPath is empty.
|
||||
|
||||
## name constraints processing errors
|
||||
|
||||
# cert DN is not in the permitted tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.notPermittedDN.title = Name constraint error: certificate DN is not permitted
|
||||
CertPathReviewer.notPermittedDN.text = Name constraint error: the certificate DN {0} is not permitted.
|
||||
CertPathReviewer.notPermittedDN.summary = Name constraint error: certificate DN is not permitted.
|
||||
CertPathReviewer.notPermittedDN.details = Name constraint checking error. The certificate DN {0} is not in the permitted set of DNs.
|
||||
|
||||
# cert DN is in the excluded tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.excludedDN.title = Name constraint error: certificate DN is excluded
|
||||
CertPathReviewer.excludedDN.text = Name constraint error: The certificate DN {0} is excluded.
|
||||
CertPathReviewer.excludedDN.summary = Name constraint error: certificate DN is excluded.
|
||||
CertPathReviewer.excludedDN.details = Name constraint checking error. The certificate DN {0} is inside of the excluded set of DNs.
|
||||
|
||||
# cert email is not in the permitted tree
|
||||
# {0} email address as String
|
||||
CertPathReviewer.notPermittedEmail.title = Name constraint error: not permitted email address
|
||||
CertPathReviewer.notPermittedEmail.text = Name constraint error: certificate contains the not permitted email address {0}.
|
||||
CertPathReviewer.notPermittedEmail.summary = Name constraint error: not permitted email address.
|
||||
CertPathReviewer.notPermittedEmail.details = Name constraint checking error. The certificate contains the email address {0} which is not in the permitted set of email addresses.
|
||||
|
||||
# cert email is in the excluded tree
|
||||
# {0} email as String
|
||||
CertPathReviewer.excludedEmail.title = Name constraint error: excluded email address
|
||||
CertPathReviewer.excludedEmail.text = Name constraint error: certificate contains the excluded email address {0}.
|
||||
CertPathReviewer.excludedEmail.summary = Name constraint error: excluded email address.
|
||||
CertPathReviewer.excludedEmail.details = Name constraint checking error. The certificate contains the email address {0} which is in the excluded set of email addresses.
|
||||
|
||||
# cert IP is not in the permitted tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.notPermittedIP.title = Name constraint error: not permitted IP address
|
||||
CertPathReviewer.notPermittedIP.text = Name constraint error: certificate contains the not permitted IP address {0}.
|
||||
CertPathReviewer.notPermittedIP.summary = Name constraint error: not permitted IP address.
|
||||
CertPathReviewer.notPermittedIP.details = Name constraint checking error. The certificate contains the IP address {0} which is not in the permitted set of IP addresses.
|
||||
|
||||
# cert ip is in the excluded tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.excludedIP.title = Name constraint error: excluded IP address
|
||||
CertPathReviewer.excludedIP.text = Name constraint error: certificate contains the excluded IP address {0}.
|
||||
CertPathReviewer.excludedIP.summary = Name constraint error: excluded IP address.
|
||||
CertPathReviewer.excludedIP.details = Name constraint checking error. The certificate contains the IP address {0} which is in the excluded set of IP addresses.
|
||||
|
||||
# error processing the name constraints extension
|
||||
CertPathReviewer.ncExtError.title = Name constraint checking failed
|
||||
CertPathReviewer.ncExtError.text = Name constraint checking failed: there was an error processing the name constraints extension of the certificate.
|
||||
CertPathReviewer.ncExtError.summary = Error processing the name constraints extension.
|
||||
CertPathReviewer.ncExtError.details = Name constraint checking failed: there was an error processing the name constraints extension of the certificate.
|
||||
|
||||
# error processing the subject alternative name extension
|
||||
CertPathReviewer.subjAltNameExtError.title = Name constraint checking failed
|
||||
CertPathReviewer.subjAltNameExtError.text = Name constraint checking failed: there was an error processing the subject alternative name extension of the certificate.
|
||||
CertPathReviewer.subjAltNameExtError.summary = Error processing the subject alternative name extension.
|
||||
CertPathReviewer.subjAltNameExtError.details = Name constraint checking failed: there was an error processing the subject alternative name extension of the certificate.
|
||||
|
||||
# exception extracting subject name when checking subtrees
|
||||
# {0} subject Principal
|
||||
CertPathReviewer.ncSubjectNameError.title = Name constraint checking failed
|
||||
CertPathReviewer.ncSubjectNameError.text = Name constraint checking failed: there was an exception extracting the DN from the certificate.
|
||||
CertPathReviewer.ncSubjectNameError.summary = Name constraint checking failed: exception extracting the DN.
|
||||
CertPathReviewer.ncSubjectNameError.details = Name constraint checking failed: there was an exception extracting the DN from the certificate.
|
||||
|
||||
|
||||
## path length errors
|
||||
|
||||
# max path length extended
|
||||
CertPathReviewer.pathLengthExtended.title = Maximum path length extended
|
||||
CertPathReviewer.pathLengthExtended.text = Certificate path invalid: Maximum path length extended.
|
||||
CertPathReviewer.pathLengthExtended.summary = Certificate path invalid: Maximum path length extended.
|
||||
CertPathReviewer.pathLengthExtended.details = Certificate path invalid: Maximum path length extended.
|
||||
|
||||
# error reading length constraint from basic constraint extension
|
||||
CertPathReviewer.processLengthConstError.title = Path length checking failed
|
||||
CertPathReviewer.processLengthConstError.text = Path length checking failed: there was an error processing the basic constraint extension of the certificate.
|
||||
CertPathReviewer.processLengthConstError.summary = Error processing the subject alternative name extension.
|
||||
CertPathReviewer.processLengthConstError.details = Path length checking failed: there was an error processing the basic constraint extension of the certificate.
|
||||
|
||||
|
||||
## path length notifications
|
||||
|
||||
# total path length as defined in rfc 3280
|
||||
# {0} the path length as Integer
|
||||
CertPathReviewer.totalPathLength.title = Total path length
|
||||
CertPathReviewer.totalPathLength.text = The total path length without self-signed certificates is {0}.
|
||||
CertPathReviewer.totalPathLength.summary = The total path length without self-signed certificates is {0}.
|
||||
CertPathReviewer.totalPathLength.details = The total path length without self-signed certificates, as defined in RFC 3280, is {0}.
|
||||
|
||||
|
||||
## critical extensions errors
|
||||
|
||||
# one unknown critical extension
|
||||
# {0} extension as String
|
||||
CertPathReviewer.unknownCriticalExt.title = Unknown critical extension
|
||||
CertPathReviewer.unknownCriticalExt.text = The certificate contains the unknown critical extension {0}.
|
||||
CertPathReviewer.unknownCriticalExt.summary = Unknown critical extension: {0}.
|
||||
CertPathReviewer.unknownCriticalExt.details = The certificate contains the unknown critical extension with the OID {0}.
|
||||
|
||||
# more unknown critical extensions
|
||||
# {0} extensions as Set of Strings
|
||||
CertPathReviewer.unknownCriticalExts.title = Unknown critical extensions
|
||||
CertPathReviewer.unknownCriticalExts.text = The certificate contains two or more unknown critical extensions: {0}.
|
||||
CertPathReviewer.unknownCriticalExts.summary = Unknown critical extensions: {0}.
|
||||
CertPathReviewer.unknownCriticalExts.details = The certificate contains two or more unknown critical extensions with the OIDs: {0}.
|
||||
|
||||
# error processing critical extension
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.criticalExtensionError.title = Error processing a critical extension
|
||||
CertPathReviewer.criticalExtensionError.text = Error processing a critical extension. A {0} occurred.
|
||||
CertPathReviewer.criticalExtensionError.summary = Error processing a critical extension. A {0} occurred.
|
||||
CertPathReviewer.criticalExtensionError.details = Error processing a critical extension. A {0} occurred. Cause: {0}.
|
||||
|
||||
# error initializing the certpath checkers
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.certPathCheckerError.title = Checking critical extensions failed
|
||||
CertPathReviewer.certPathCheckerError.text = Checking critical extensions failed: there was a {2} initializing a CertPathChecker.
|
||||
CertPathReviewer.certPathCheckerError.summary = Checking critical extensions failed: {2} initializing a CertPathChecker
|
||||
CertPathReviewer.certPathCheckerError.details = Checking critical extensions failed: there was an {2} initializing a CertPathChecker. Cause: {0}
|
||||
|
||||
|
||||
## check signature errors
|
||||
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.title = Root key with valid signature but no trust anchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.text = The certificate has a valid signature, but is no trust anchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.summary = The certificate has a valid signature, but is no trust anchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.details = The certificate has a valid signature, but is no trust anchor
|
||||
|
||||
# trustanchor found, but certificate validation failed
|
||||
CertPathReviewer.trustButInvalidCert.title = Trust anchor found, but different public key
|
||||
CertPathReviewer.trustButInvalidCert.text = A trust anchor was found. But it has a different public key, than was used to issue the first certificate of the cert path.
|
||||
CertPathReviewer.trustButInvalidCert.summary = A trust anchor was found. But it has a different public key, than was used to issue the first certificate of the cert path.
|
||||
CertPathReviewer.trustButInvalidCert.details = A trust anchor was found. But it has a different public key, than was used to issue the first certificate of the cert path.
|
||||
|
||||
# trustanchor - cannot extract issuer
|
||||
CertPathReviewer.trustAnchorIssuerError.title = Finding trust anchor failed
|
||||
CertPathReviewer.trustAnchorIssuerError.text = Finding trust anchor failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.trustAnchorIssuerError.summary = Finding trust anchor failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.trustAnchorIssuerError.details = Finding trust anchor failed: cannot extract issuer from certificate.
|
||||
|
||||
# no trustanchor was found for the certificate path
|
||||
# {0} issuer of the root certificate of the path
|
||||
# {1} number of trusted root certificates (trustanchors) provided
|
||||
CertPathReviewer.noTrustAnchorFound.title = No trusted root certificate found
|
||||
CertPathReviewer.noTrustAnchorFound.text = The root certificate of the certificate path was issued by a CA that is not in the the trusted-root-certificate-store used for the path validation. The name of the CA is "{0}".
|
||||
CertPathReviewer.noTrustAnchorFound.summary = The root certificate of the certificate path was issued by a CA that is not in the the trusted-root-certificate-store used for the path validation.
|
||||
CertPathReviewer.noTrustAnchorFound.details = The root certificate of the certificate path was issued by a CA that is not in the the trusted-root-certificate-store used for the path validation. The name of the CA is "{0}". The trusted-root-certificate store contains {1} CA(s).
|
||||
|
||||
# conflicting trust anchors
|
||||
# {0} number of trustanchors found (Integer)
|
||||
# {1} the ca name
|
||||
CertPathReviewer.conflictingTrustAnchors.title = Corrupt trust root store
|
||||
CertPathReviewer.conflictingTrustAnchors.text = Warning: corrupt trust root store: There are {0} trusted public keys for the CA "{1}" - please ensure with CA which is the correct key.
|
||||
CertPathReviewer.conflictingTrustAnchors.summary = Warning: corrupt trust root store: There are {0} trusted public keys for the CA "{1}" - please ensure with CA which is the correct key.
|
||||
CertPathReviewer.conflictingTrustAnchors.details = Warning: corrupt trust root store: There are {0} trusted public keys for the CA "{1}" - please ensure with CA which is the correct key.
|
||||
|
||||
# trustanchor DN is invalid
|
||||
# {0} DN of the Trustanchor
|
||||
CertPathReviewer.trustDNInvalid.title = DN of TrustAnchor is improperly specified
|
||||
CertPathReviewer.trustDNInvalid.text = The DN of the TrustAnchor is improperly specified: {0}.
|
||||
CertPathReviewer.trustDNInvalid.summary = The DN of the TrustAnchor is improperly specified.
|
||||
CertPathReviewer.trustDNInvalid.details = The DN of the TrustAnchor is improperly specified: {0}. It's not a valid X.500 name. See RFC 1779 or RFC 2253.
|
||||
|
||||
# trustanchor public key algorithm error
|
||||
CertPathReviewer.trustPubKeyError.title = Error processing public key of the trust anchor
|
||||
CertPathReviewer.trustPubKeyError.text = Error processing public key of the trust anchor.
|
||||
CertPathReviewer.trustPubKeyError.summary = Error processing public key of the trust anchor.
|
||||
CertPathReviewer.trustPubKeyError.details = Error processing public key of the trust anchor. Could not extract the AlorithmIdentifier for the key.
|
||||
|
||||
# can not verifiy signature: issuer public key unknown
|
||||
CertPathReviewer.NoIssuerPublicKey.title = Can not verify the certificate signature
|
||||
CertPathReviewer.NoIssuerPublicKey.text = Can not verify the certificate signature: Issuer public key is unknown.
|
||||
CertPathReviewer.NoIssuerPublicKey.summary = Can not verify the certificate signature: Issuer public key is unknown.
|
||||
CertPathReviewer.NoIssuerPublicKey.details = Can not verify the certificate signature: Issuer public key is unknown.
|
||||
|
||||
# signature can not be verified
|
||||
# {0} message of the underlying exception (english)
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.signatureNotVerified.title = Certificate signature invalid
|
||||
CertPathReviewer.signatureNotVerified.text = The certificate signature is invalid. A {2} occurred.
|
||||
CertPathReviewer.signatureNotVerified.summary = The certificate signature is invalid.
|
||||
CertPathReviewer.signatureNotVerified.details = The certificate signature is invalid. A {2} occurred. Cause: {0}
|
||||
|
||||
# certificate expired
|
||||
# {0} the date the certificate expired
|
||||
CertPathReviewer.certificateExpired.title = Certificate is expired
|
||||
CertPathReviewer.certificateExpired.text = Could not validate the certificate. Certificate expired on {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateExpired.summary = Certificate expired on {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateExpired.details = Could not validate the certificate. Certificate expired on {0,date} {0,time,full}.
|
||||
|
||||
# certificate not yet valid
|
||||
# {0} the date from which on the certificate is valid
|
||||
CertPathReviewer.certificateNotYetValid.title = Certificate is not yet valid
|
||||
CertPathReviewer.certificateNotYetValid.text = Could not validate the certificate. Certificate is not valid until {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.summary = Certificate is not valid until {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.details = Could not validate the certificate. Certificate is not valid until {0,date} {0,time,full}.
|
||||
|
||||
# certificate invalid issuer DN
|
||||
# {0} expected issuer DN as String
|
||||
# {1} found issuer DN as String
|
||||
CertPathReviewer.certWrongIssuer.title = Issuer of certificate not valid
|
||||
CertPathReviewer.certWrongIssuer.text = Issuer of certificate is not valid. Expected {0}, but found {1}.
|
||||
CertPathReviewer.certWrongIssuer.summary = Issuer of certificate is not valid.
|
||||
CertPathReviewer.certWrongIssuer.details = Issuer of certificate is not valid. Expected {0}, but found {1}.
|
||||
|
||||
# intermediate certificate is no ca cert
|
||||
CertPathReviewer.noCACert.title = Certificate is no CA certificate
|
||||
CertPathReviewer.noCACert.text = Intermediate certificate is no CA certificate.
|
||||
CertPathReviewer.noCACert.summary = The certificate is no CA certificate.
|
||||
CertPathReviewer.noCACert.details = The certificate is no CA certificate but used as one.
|
||||
|
||||
# cert laks basic constraints
|
||||
CertPathReviewer.noBasicConstraints.title = Certificate has no basic constraints
|
||||
CertPathReviewer.noBasicConstraints.text = Intermediate certificate has no basic constraints.
|
||||
CertPathReviewer.noBasicConstraints.summary = Intermediate certificate has no basic constraints.
|
||||
CertPathReviewer.noBasicConstraints.details = Intermediate certificate has no basic constraints.
|
||||
|
||||
# error processing basic constraints
|
||||
CertPathReviewer.errorProcesingBC.title = Error processing the basic constraints extension
|
||||
CertPathReviewer.errorProcesingBC.text = There was an error while processing the basic constraints extension of this certificate.
|
||||
CertPathReviewer.errorProcesingBC.summary = Error processing the basic constraints extension.
|
||||
CertPathReviewer.errorProcesingBC.details = There was an error while processing the basic constraints extension of this certificate.
|
||||
|
||||
# certificate not usable for signing certs
|
||||
CertPathReviewer.noCertSign.title = Key not usable for signing certificates
|
||||
CertPathReviewer.noCertSign.text = The key usage constraint does not allow the use of this certificate key for signing certificates.
|
||||
CertPathReviewer.noCertSign.summary = The certificate key can not be used for signing certificates.
|
||||
CertPathReviewer.noCertSign.details = The key usage constraint does not allow the use of this certificate key for signing certificates.
|
||||
|
||||
# error processing public key
|
||||
CertPathReviewer.pubKeyError.title = Error processing public key
|
||||
CertPathReviewer.pubKeyError.text = Error processing public key of the certificate.
|
||||
CertPathReviewer.pubKeyError.summary = Error processing public key of the certificate.
|
||||
CertPathReviewer.pubKeyError.details = Error processing public key of the certificate. Could not extract the AlorithmIdentifier for the key.
|
||||
|
||||
|
||||
## check signatures notifications
|
||||
|
||||
#
|
||||
# trust anchor has no keyusage certSign
|
||||
CertPathReviewer.trustKeyUsage.title = Trust anchor key usage
|
||||
CertPathReviewer.trustKeyUsage.text = The trust anchor is not alloed to sign certificates.
|
||||
CertPathReviewer.trustKeyUsage.summary = The trust anchor is not alloed to sign certificates.
|
||||
CertPathReviewer.trustKeyUsage.details = The trust anchor is not alloed to sign certificates.
|
||||
|
||||
# certificate path validation date
|
||||
# {0} date for which the cert path is validated
|
||||
# {1} current date
|
||||
CertPathReviewer.certPathValidDate.title = Certificate path validation date
|
||||
CertPathReviewer.certPathValidDate.text = The certificate path was applied on {0,date} {0,time,full}. It was checked at {1,date} {1,time,full}.
|
||||
CertPathReviewer.certPathValidDate.summary = The certificate path was validated for {0,date} {0,time,full}. It was checked at {1,date} {1,time,full}.
|
||||
CertPathReviewer.certPathValidDate.details = The certificate path was validated for {0,date} {0,time,full}. It was checked at {1,date} {1,time,full}.
|
||||
|
||||
|
||||
## check policy errors
|
||||
|
||||
# error processing certificate policy extension
|
||||
CertPathReviewer.policyExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyExtError.text = Policy checking failed: there was an error processing the certificate policy extension.
|
||||
CertPathReviewer.policyExtError.summary = Error processing the certificate policy extension.
|
||||
CertPathReviewer.policyExtError.details = Policy checking failed: there was an error processing the certificate policy extension.
|
||||
|
||||
# error processing policy constraints extension
|
||||
CertPathReviewer.policyConstExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyConstExtError.text = Policy checking failed: there was an error processing the policy constraints extension.
|
||||
CertPathReviewer.policyConstExtError.summary = Error processing the policy constraints extension.
|
||||
CertPathReviewer.policyConstExtError.details = Policy checking failed: there was an error processing the policy constraints extension.
|
||||
|
||||
# error processing policy mapping extension
|
||||
CertPathReviewer.policyMapExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyMapExtError.text = Policy checking failed: there was an error processing the policy mapping extension.
|
||||
CertPathReviewer.policyMapExtError.summary = Error processing the policy mapping extension.
|
||||
CertPathReviewer.policyMapExtError.details = Policy checking failed: there was an error processing the policy mapping extension.
|
||||
|
||||
# error processing inhibit any policy extension
|
||||
CertPathReviewer.policyInhibitExtError.title = Policy checking failed
|
||||
CertPathReviewer.policyInhibitExtError.text = Policy checking failed: there was an error processing the inhibit any policy extension.
|
||||
CertPathReviewer.policyInhibitExtError.summary = Error processing the inhibit any policy extension.
|
||||
CertPathReviewer.policyInhibitExtError.details = Policy checking failed: there was an error processing the inhibit any policy extension.
|
||||
|
||||
# error building qualifier set
|
||||
CertPathReviewer.policyQualifierError.title = Policy checking failed
|
||||
CertPathReviewer.policyQualifierError.text = Policy checking failed: error building the policy qualifier set.
|
||||
CertPathReviewer.policyQualifierError.summary = Policy checking failed: error building the policy qualifier set.
|
||||
CertPathReviewer.policyQualifierError.details = Policy checking failed: error building the policy qualifier set.
|
||||
|
||||
# no valid policy tree - explicit policy required
|
||||
CertPathReviewer.noValidPolicyTree.title = Policy checking failed
|
||||
CertPathReviewer.noValidPolicyTree.text = Policy checking failed: no valid policy tree found when one expected.
|
||||
CertPathReviewer.noValidPolicyTree.summary = Policy checking failed: no valid policy tree found when one expected.
|
||||
CertPathReviewer.noValidPolicyTree.details = Policy checking failed: no valid policy tree found when one expected.
|
||||
|
||||
# expicit policy requested, but no policy available
|
||||
CertPathReviewer.explicitPolicy.title = Policy checking failed
|
||||
CertPathReviewer.explicitPolicy.text = Policy checking failed: explicit policy requested but no policy available.
|
||||
CertPathReviewer.explicitPolicy.summary = Policy checking failed: explicit policy requested but no policy available.
|
||||
CertPathReviewer.explicitPolicy.details = Policy checking failed: explicit policy requested but no policy available.
|
||||
|
||||
# path processing failed on policy
|
||||
CertPathReviewer.invalidPolicy.title = Path processing failed on policy
|
||||
CertPathReviewer.invalidPolicy.text = Path processing failed on policy.
|
||||
CertPathReviewer.invalidPolicy.summary = Path processing failed on policy.
|
||||
CertPathReviewer.invalidPolicy.details = Path processing failed on policy.
|
||||
|
||||
# invalid policy mapping
|
||||
CertPathReviewer.invalidPolicyMapping.title = Invalid policy mapping
|
||||
CertPathReviewer.invalidPolicyMapping.text = Certificate contains an invalid policy mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.summary = Certificate contains an invalid policy mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.details = Certificate contains a policy mapping including the value any policy which is invalid.
|
||||
|
||||
## check CRL notifications
|
||||
|
||||
# found local valid CRL
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localValidCRL.title = Found valid local CRL
|
||||
CertPathReviewer.localValidCRL.text = Found a valid CRL in local certstore. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localValidCRL.summary = Found a valid CRL in local certstore. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localValidCRL.details = Found a valid CRL in local certstore. Issued on {0,date}, next update {1,date}.
|
||||
|
||||
|
||||
# found matching CRL, but not valid
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localInvalidCRL.title = Local CRL outdated
|
||||
CertPathReviewer.localInvalidCRL.text = Did not use a matching CRL in a local certstore, because it is outdated. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.summary = Did not use a matching CRL in a local certstore, because it is outdated. Issued on {0,date}, next update {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.details = Did not use a matching CRL in a local certstore, because it is outdated. Issued on {0,date}, next update {1,date}.
|
||||
|
||||
# found a valid crl at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineValidCRL.title = Found valid CRL at CRL distribution point
|
||||
CertPathReviewer.onlineValidCRL.text = Found a valid CRL at: {2}. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.summary = Found a valid CRL at: {2}. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.details = Found a valid CRL at: {2}. Issued on {0,date}, next update on {1,date}.
|
||||
|
||||
# found an invalid CRL at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineInvalidCRL.title = Outdated CRL at CRL distribution point
|
||||
CertPathReviewer.onlineInvalidCRL.text = The CRL loaded from {2} was outdated. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.summary = The CRL loaded from {2} was outdated. Issued on {0,date}, next update on {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.details = The CRL loaded from {2} was outdated. Issued on {0,date}, next update on {1,date}.
|
||||
|
||||
#found a CRL at a crl distribution point, but issued by another CA
|
||||
# {0} issuer of the CRL
|
||||
# {1} expected issuer
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineCRLWrongCA.title = CRL from wrong issuer at CRL distribution point
|
||||
CertPathReviewer.onlineCRLWrongCA.text = The CRL loaded from {2} has was issued by {0}, excpected {1}.
|
||||
CertPathReviewer.onlineCRLWrongCA.summary = The CRL loaded from {2} has a wrong issuer.
|
||||
CertPathReviewer.onlineCRLWrongCA.details = The CRL loaded from {2} has was issued by {0}, excpected {1}.
|
||||
|
||||
# Certificate not revoked
|
||||
CertPathReviewer.notRevoked.title = Certificate not revoked
|
||||
CertPathReviewer.notRevoked.text = The certificate was not revoked.
|
||||
CertPathReviewer.notRevoked.summary = The certificate was not revoked.
|
||||
CertPathReviewer.notRevoked.details = The certificate was not revoked.
|
||||
|
||||
# CRL found: certificate was revoked, but after the validationDate
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.revokedAfterValidation.title = Certificate was revoked after the validation date
|
||||
CertPathReviewer.revokedAfterValidation.text = The certificate was revoked after the validation date at {0,date} {0,time,full}. Reason: {1}.
|
||||
CertPathReviewer.revokedAfterValidation.summary = The certificate was revoked after the validation date at {0,date} {0,time,full}.
|
||||
CertPathReviewer.revokedAfterValidation.details = The certificate was revoked after the validation date at {0,date} {0,time,full}. Reason: {1}.
|
||||
|
||||
# updated crl available
|
||||
# {0} date since when the update is available
|
||||
CertPathReviewer.crlUpdateAvailable.title = CRL update available
|
||||
CertPathReviewer.crlUpdateAvailable.text = An update for the CRL of this certificate is available since {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.summary = An update for the CRL of this certificate is available since {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.details = An update for the CRL of this certificate is available since {0,date} {0,time,full}.
|
||||
|
||||
# crl distribution point url
|
||||
# {0} the crl distribution point url as String
|
||||
CertPathReviewer.crlDistPoint.title = CRL distribution point
|
||||
CertPathReviewer.crlDistPoint.text = A CRL can be obtained from: {0}.
|
||||
CertPathReviewer.crlDistPoint.summary = A CRL can be obtained from: {0}.
|
||||
CertPathReviewer.crlDistPoint.details = A CRL can be obtained from: {0}.
|
||||
|
||||
# ocsp location
|
||||
# {0} the url on which the ocsp service can be found
|
||||
CertPathReviewer.ocspLocation.title = OCSP responder location
|
||||
CertPathReviewer.ocspLocation.text = OCSP responder location: {0}.
|
||||
CertPathReviewer.ocspLocation.summary = OCSP responder location: {0}.
|
||||
CertPathReviewer.ocspLocation.details = OCSP responder location: {0}.
|
||||
|
||||
# unable to get crl from crl distribution point
|
||||
# {0} the url of the distribution point
|
||||
# {1} the message of the occurred exception
|
||||
# {2} the occurred exception
|
||||
# {3} the name of the exception
|
||||
CertPathReviewer.loadCrlDistPointError.title = Cannot load CRL from CRL distribution point
|
||||
CertPathReviewer.loadCrlDistPointError.text = Unable to load a CRL from: {0}. A {3} occurred.
|
||||
CertPathReviewer.loadCrlDistPointError.summary = Unable to load a CRL from: {0}. A {3} occurred.
|
||||
CertPathReviewer.loadCrlDistPointError.details = Unable to load a CRL from: {0}. A {3} occurred. Cause: {1}.
|
||||
|
||||
# no crl found in certstores
|
||||
# {0} the issuers which we searched for
|
||||
# {1} list of crl issuer names that are found in the certstores
|
||||
# {2} number of crls in the certstores
|
||||
CertPathReviewer.noCrlInCertstore.title = No matching CRL found in local CRL store
|
||||
CertPathReviewer.noCrlInCertstore.text = No matching CRL was found in the provided local CRL store.
|
||||
CertPathReviewer.noCrlInCertstore.summary = No matching CRL was found in the provided local CRL store.
|
||||
CertPathReviewer.noCrlInCertstore.details = No matching CRL was found in the provided local CRL store. \
|
||||
No CRL was found for the selector "{0}". The {2} CRL(s) in the certstores are from "{1}".
|
||||
|
||||
|
||||
## check CRL exceptions
|
||||
|
||||
# cannot extract issuer from certificate
|
||||
CertPathReviewer.crlIssuerException.title = CRL checking failed
|
||||
CertPathReviewer.crlIssuerException.text = CRL checking failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.crlIssuerException.summary = CRL checking failed: cannot extract issuer from certificate.
|
||||
CertPathReviewer.crlIssuerException.details = CRL checking failed: cannot extract issuer from certificate.
|
||||
|
||||
# cannot extract crls
|
||||
# {0} message from the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.crlExtractionError.title = CRL checking failed
|
||||
CertPathReviewer.crlExtractionError.text = CRL checking failed: Cannot extract CRL from CertStore. There was a {2}.
|
||||
CertPathReviewer.crlExtractionError.summary = CRL checking failed: Cannot extract CRL from CertStore. There was a {2}.
|
||||
CertPathReviewer.crlExtractionError.details = CRL checking failed: Cannot extract CRL from CertStore. There was a {2}. Cause: {0}.
|
||||
|
||||
# Issuer certificate key usage extension does not permit crl signing
|
||||
CertPathReviewer.noCrlSigningPermited.title = CRL checking failed
|
||||
CertPathReviewer.noCrlSigningPermited.text = CRL checking failed: issuer certificate does not permit CRL signing.
|
||||
CertPathReviewer.noCrlSigningPermited.summary = CRL checking failed: issuer certificate does not permit CRL signing.
|
||||
CertPathReviewer.noCrlSigningPermited.details = CRL checking failed: issuer certificate does not permit CRL signing.
|
||||
|
||||
# can not verify crl: issuer public key unknown
|
||||
CertPathReviewer.crlNoIssuerPublicKey.title = CRL checking failed
|
||||
CertPathReviewer.crlNoIssuerPublicKey.text = CRL checking failed: Can not verify the CRL: Issuer public key is unknown.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.summary = CRL checking failed: Can not verify the CRL: Issuer public key is unknown.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.details = CRL checking failed: Can not verify the CRL: Issuer public key is unknown.
|
||||
|
||||
# crl verification failed
|
||||
CertPathReviewer.crlVerifyFailed.title = CRL checking failed
|
||||
CertPathReviewer.crlVerifyFailed.text = CRL checking failed: CRL signature is invalid.
|
||||
CertPathReviewer.crlVerifyFailed.summary = CRL checking failed: CRL signature is invalid.
|
||||
CertPathReviewer.crlVerifyFailed.details = CRL checking failed: CRL signature is invalid.
|
||||
|
||||
# no valid CRL found
|
||||
CertPathReviewer.noValidCrlFound.title = CRL checking failed
|
||||
CertPathReviewer.noValidCrlFound.text = CRL checking failed: no valid CRL found.
|
||||
CertPathReviewer.noValidCrlFound.summary = CRL checking failed: no valid CRL found.
|
||||
CertPathReviewer.noValidCrlFound.details = CRL checking failed: no valid CRL found.
|
||||
|
||||
# No base CRL for delta CRL
|
||||
CertPathReviewer.noBaseCRL.title = CRL checking failed
|
||||
CertPathReviewer.noBaseCRL.text = CRL checking failed: no base CRL found for delta CRL.
|
||||
CertPathReviewer.noBaseCRL.summary = CRL checking failed: no base CRL found for delta CRL.
|
||||
CertPathReviewer.noBaseCRL.details = CRL checking failed: no base CRL found for delta CRL.
|
||||
|
||||
# certificate revoked
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.certRevoked.title = Certificate was revoked
|
||||
CertPathReviewer.certRevoked.text = The certificate was revoked at {0,date} {0,time,full}. Reason: {1}.
|
||||
CertPathReviewer.certRevoked.summary = The certificate was revoked at {0,date} {0,time,full}.
|
||||
CertPathReviewer.certRevoked.details = The certificate was revoked at {0,date} {0,time,full}. Reason: {1}.
|
||||
|
||||
# error processing issuing distribution point extension
|
||||
CertPathReviewer.distrPtExtError.title = CRL checking failed
|
||||
CertPathReviewer.distrPtExtError.text = CRL checking failed: there was an error processing the issuing distribution point extension.
|
||||
CertPathReviewer.distrPtExtError.summary = Error processing the issuing distribution point extension.
|
||||
CertPathReviewer.distrPtExtError.details = CRL checking failed: there was an error processing the issuing distribution point extension.
|
||||
|
||||
# error processing crl distribution points extension
|
||||
CertPathReviewer.crlDistPtExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlDistPtExtError.text = CRL checking failed: there was an error processing the crl distribution points extension.
|
||||
CertPathReviewer.crlDistPtExtError.summary = Error processing the crl distribution points extension.
|
||||
CertPathReviewer.crlDistPtExtError.details = CRL checking failed: there was an error processing the crl distribution points extension.
|
||||
|
||||
# error processing the authority info access extension
|
||||
CertPathReviewer.crlAuthInfoAccError.title = CRL checking failed
|
||||
CertPathReviewer.crlAuthInfoAccError.text = CRL checking failed: there was an error processing the authority info access extension.
|
||||
CertPathReviewer.crlAuthInfoAccError.summary = Error processing the authority info access extension.
|
||||
CertPathReviewer.crlAuthInfoAccError.details = CRL checking failed: there was an error processing the authority info access extension.
|
||||
|
||||
# error processing delta crl indicator extension
|
||||
CertPathReviewer.deltaCrlExtError.title = CRL checking failed
|
||||
CertPathReviewer.deltaCrlExtError.text = CRL checking failed: there was an error processing the delta CRL indicator extension.
|
||||
CertPathReviewer.deltaCrlExtError.summary = Error processing the delta CRL indicator extension.
|
||||
CertPathReviewer.deltaCrlExtError.details = CRL checking failed: there was an error processing the delta CRL indicator extension.
|
||||
|
||||
# error porcessing crl number extension
|
||||
CertPathReviewer.crlNbrExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlNbrExtError.text = CRL checking failed: there was an error processing the CRL number extension.
|
||||
CertPathReviewer.crlNbrExtError.summary = Error processing the CRL number extension.
|
||||
CertPathReviewer.crlNbrExtError.details = CRL checking failed: there was an error processing the CRL number extension.
|
||||
|
||||
# error processing crl reason code extension
|
||||
CertPathReviewer.crlReasonExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlReasonExtError.text = CRL checking failed: there was an error processing the CRL reason code extension.
|
||||
CertPathReviewer.crlReasonExtError.summary = Error processing the CRL reason code extension.
|
||||
CertPathReviewer.crlReasonExtError.details = CRL checking failed: there was an error processing the CRL reason code extension.
|
||||
|
||||
# error processing basic constraints extension
|
||||
CertPathReviewer.crlBCExtError.title = CRL checking failed
|
||||
CertPathReviewer.crlBCExtError.text = CRL checking failed: there was an error processing the basic constraints extension.
|
||||
CertPathReviewer.crlBCExtError.summary = Error processing the basic constraints extension.
|
||||
CertPathReviewer.crlBCExtError.details = CRL checking failed: there was an error processing the basic constraints extension.
|
||||
|
||||
# CA Cert CRL only contains user certificates
|
||||
CertPathReviewer.crlOnlyUserCert.title = CRL checking failed
|
||||
CertPathReviewer.crlOnlyUserCert.text = CRL checking failed: CRL only contains user certificates.
|
||||
CertPathReviewer.crlOnlyUserCert.summary = CRL checking failed: CRL only contains user certificates.
|
||||
CertPathReviewer.crlOnlyUserCert.details = CRL checking failed: CRL for CA certificate only contains user certificates.
|
||||
|
||||
# End CRL only contains CA certificates
|
||||
CertPathReviewer.crlOnlyCaCert.title = CRL checking failed
|
||||
CertPathReviewer.crlOnlyCaCert.text = CRL checking failed: CRL only contains CA certificates.
|
||||
CertPathReviewer.crlOnlyCaCert.summary = CRL checking failed: CRL only contains CA certificates.
|
||||
CertPathReviewer.crlOnlyCaCert.details = CRL checking failed: CRL for end certificate only contains CA certificates.
|
||||
|
||||
# onlyContainsAttributeCerts boolean is asserted
|
||||
CertPathReviewer.crlOnlyAttrCert.title = CRL checking failed
|
||||
CertPathReviewer.crlOnlyAttrCert.text = CRL checking failed: CRL only contains attribute certificates.
|
||||
CertPathReviewer.crlOnlyAttrCert.summary = CRL checking failed: CRL only contains attribute certificates.
|
||||
CertPathReviewer.crlOnlyAttrCert.details = CRL checking failed: CRL only contains attribute certificates.
|
||||
|
||||
|
||||
## QcStatement notifications
|
||||
|
||||
# unkown statement
|
||||
# {0} statement OID
|
||||
# {1} statement as ANS1Sequence
|
||||
CertPathReviewer.QcUnknownStatement.title = Unknown statement in QcStatement extension
|
||||
CertPathReviewer.QcUnknownStatement.text = Unknown statement in QcStatement extension: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.summary = Unknown statement in QcStatement extension: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.details = Unknown statement in QcStatement extension: OID = {0}, statement = {1}
|
||||
|
||||
# QcLimitValue Alpha currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueAlpha.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueAlpha.text = This certificate has a limit for the transaction value: {1,number, ###,###,###,##0.00#} {0}.
|
||||
CertPathReviewer.QcLimitValueAlpha.summary = Transaction value limit: {1,number, ###,###,###,##0.00#} {0}.
|
||||
CertPathReviewer.QcLimitValueAlpha.details = This certificate has a limitation on the value of transaction for which this certificate can be used to the specified amount, according to the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate. The limit for this certificate is {1,number, ###,###,###,##0.00#} {0}.
|
||||
|
||||
# QcLimitValue Numeric currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueNum.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueNum.text = This certificate has a limit for the transaction value: {1,number, ###,###,###,##0.00#} of currency {0} (See RFC 4217 for currency codes).
|
||||
CertPathReviewer.QcLimitValueNum.summary = Transaction value limit: {1,number, ###,###,###,##0.00#} of currency {0} (See RFC 4217 for currency codes).
|
||||
CertPathReviewer.QcLimitValueNum.details = This certificate has a limitation on the value of transaction for which this certificate can be used to the specified amount, according to the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate. The limit for this certificate is {1,number, ###,###,###,##0.00#} of currency {0} (See RFC 4217 for currency codes).
|
||||
|
||||
# QcSSCD
|
||||
CertPathReviewer.QcSSCD.title = QcSSCD Statement
|
||||
CertPathReviewer.QcSSCD.text = (SSCD) The issuer claims that for the certificate where this statement appears that the private key associated with the public key in the certificate is protected according to Annex III of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures.
|
||||
CertPathReviewer.QcSSCD.summary = (SSCD) The issuer claims that for the certificate where this statement appears that the private key associated with the public key in the certificate is protected according to Annex III of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures.
|
||||
CertPathReviewer.QcSSCD.details = (SSCD) The issuer claims that for the certificate where this statement appears that the private key associated with the public key in the certificate is protected according to Annex III of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures.
|
||||
|
||||
# QcEuCompliance
|
||||
CertPathReviewer.QcEuCompliance.title = Qualified Certificate
|
||||
CertPathReviewer.QcEuCompliance.text = This certificate is issued as a Qualified Certificate according Annex I and II of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate.
|
||||
CertPathReviewer.QcEuCompliance.summary = This certificate is issued as a Qualified Certificate according Annex I and II of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate.
|
||||
CertPathReviewer.QcEuCompliance.details = This certificate is issued as a Qualified Certificate according Annex I and II of the Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures, as implemented in the law of the country specified in the issuer field of this certificate.
|
||||
|
||||
## QcStatement errors
|
||||
|
||||
# error processing the QcStatement extension
|
||||
CertPathReviewer.QcStatementExtError.title = Error processing the qc statements extension
|
||||
CertPathReviewer.QcStatementExtError.text = Error processing the qc statements extension.
|
||||
CertPathReviewer.QcStatementExtError.summary = Error processing the qc statements extension.
|
||||
CertPathReviewer.QcStatementExtError.details = Error processing the qc statements extension.
|
||||
|
||||
## unknown/generic errors
|
||||
CertPathReviewer.unknown.title = Unexpected Error
|
||||
CertPathReviewer.unknown.text = Unexpected Error {0}
|
||||
CertPathReviewer.unknown.summary = Unexpected Error
|
||||
CertPathReviewer.unknown.details = Unexpected Error {0}
|
||||
|
||||
#
|
||||
# crl reasons
|
||||
#
|
||||
unspecified = Unspecified
|
||||
keyCompromise = Key Compromise
|
||||
cACompromise = CA Compromise
|
||||
affiliationChanged = Affiliation Changed
|
||||
superseded = Superseded
|
||||
cessationOfOperation = Cessation of Operation
|
||||
certificateHold = Certificate Hold
|
||||
unknown = Unknown
|
||||
removeFromCRL = Remove from CRL
|
||||
privilegeWithdrawn = Privilege Withdrawn
|
||||
aACompromise = AA Compromise
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
missingIssuer = The missing certificate was issued by
|
||||
missingSerial = with the serial number
|
||||
|
||||
@@ -1,621 +0,0 @@
|
||||
|
||||
## constructor exceptions
|
||||
|
||||
# cert path is empty
|
||||
CertPathReviewer.emptyCertPath.title = Zertifizierungspfad ist leer
|
||||
CertPathReviewer.emptyCertPath.text = PKIXCertPathReviewer: der Zertifizierungspfad ist leer.
|
||||
CertPathReviewer.emptyCertPath.summary = PKIXCertPathReviewer: der Zertifizierungspfad ist leer.
|
||||
CertPathReviewer.emptyCertPath.details = PKIXCertPathReviewer: der Zertifizierungspfad ist leer.
|
||||
|
||||
## name constraints processing errors
|
||||
|
||||
# cert DN is not in the permitted tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.notPermittedDN.title = Fehler bei der Namensbeschränkung: Zertifikats DN ist nicht erlaubt
|
||||
CertPathReviewer.notPermittedDN.text = Fehler bei der Namensbeschränkung: Der Zertifikats DN {0} ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedDN.summary = Fehler bei der Namensbeschränkung: Der Zertifikats DN ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedDN.details = Fehler bei der Namensbeschränkung: Der Zertifikats DN {0} ist nicht im Set der erlaubten DNs.
|
||||
|
||||
# cert DN is in the excluded tree
|
||||
# {0} DN as String
|
||||
CertPathReviewer.excludedDN.title = Fehler bei der Namensbeschränkung: Zertifikats DN ist ausgeschlossen
|
||||
CertPathReviewer.excludedDN.text = Fehler bei der Namensbeschränkung: Der Zertifikats DN {0} ist ausgeschlossen.
|
||||
CertPathReviewer.excludedDN.summary = Fehler bei der Namensbeschränkung: Der Zertifikats DN ist ausgeschlossen
|
||||
CertPathReviewer.excludedDN.details = Fehler bei der Namensbeschränkung: Der Zertifikats DN ist {0} is innerhalb des Sets von ausgeschlossenen DNs.
|
||||
|
||||
# cert email is not in the permitted tree
|
||||
# {0} email address as String
|
||||
CertPathReviewer.notPermittedEmail.title = Fehler bei der Namensbeschränkung: nicht erlaubte Email Addresse
|
||||
CertPathReviewer.notPermittedEmail.text = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die nicht erlaubte Email Addresse {0}.
|
||||
CertPathReviewer.notPermittedEmail.summary = Fehler bei der Namensbeschränkung: Die Email Addresse ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedEmail.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die Email Addresse {0}, welche nicht im Set der erlaubten Email Addressen ist.
|
||||
|
||||
# cert email is in the excluded tree
|
||||
# {0} email as String
|
||||
CertPathReviewer.excludedEmail.title = Fehler bei der Namensbeschränkung: Email Addresse ausgeschlossen
|
||||
CertPathReviewer.excludedEmail.text = Fehler bei der Namensbeschränkung: Die Email Addresse {0} im Zertifikat ist ausgeschlossen.
|
||||
CertPathReviewer.excludedEmail.summary = Fehler bei der Namensbeschränkung: Die Email Addresse ist ausgeschlossen.
|
||||
CertPathReviewer.excludedEmail.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die Email Addresse {0}, welche im Set der ausgeschlossenen Email Addressen ist.
|
||||
|
||||
# cert IP is not in the permitted tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.notPermittedIP.title = Fehler bei der Namensbeschränkung: nicht erlaubte IP Addresse
|
||||
CertPathReviewer.notPermittedIP.text = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die nicht erlaubte IP Addresse {0}.
|
||||
CertPathReviewer.notPermittedIP.summary = Fehler bei der Namensbeschränkung: Die IP Addresse ist nicht erlaubt.
|
||||
CertPathReviewer.notPermittedIP.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die IP Addresse {0}, welche nicht im Set der erlaubten IP Addressen ist.
|
||||
|
||||
# cert ip is in the excluded tree
|
||||
# {0} ip address as String
|
||||
CertPathReviewer.excludedIP.title = Fehler bei der Namensbeschränkung: Ausgeschlossene IP Addresse
|
||||
CertPathReviewer.excludedIP.text = Fehler bei der Namensbeschränkung: Das Zertifikat enhält die ausgeschlossene IP Addresse {0}.
|
||||
CertPathReviewer.excludedIP.summary = Fehler bei der Namensbeschränkung: Die IP Addresse im Zertifikat ist ausgeschlossen.
|
||||
CertPathReviewer.excludedIP.details = Fehler bei der Namensbeschränkung: Das Zertifikat enthält die IP Addresse {0}, welche im Set der ausgeschlossenen IP Addressen ist.
|
||||
|
||||
# error processing the name constraints extension
|
||||
CertPathReviewer.ncExtError.title = Prüfen der Namensbeschränkungen fehlgeschlagen
|
||||
CertPathReviewer.ncExtError.text = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Name Constraints Erweiterung des Zertifikats.
|
||||
CertPathReviewer.ncExtError.summary = Prüfen der Namensbeschränkungen fehlgeschlagen: Fehler bei der Verarbeitung der Name Constraints Erweiterung.
|
||||
CertPathReviewer.ncExtError.details = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Name Constraints Erweiterung des Zertifikats.
|
||||
|
||||
# error processing the subject alternative name extension
|
||||
CertPathReviewer.subjAltNameExtError.title = Prüfen der Namensbeschränkungen fehlgeschlagen
|
||||
CertPathReviewer.subjAltNameExtError.text = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Subject Alternative Name Erweiterung des Zertifikats.
|
||||
CertPathReviewer.subjAltNameExtError.summary = Prüfen der Namensbeschränkungen fehlgeschlagen: Fehler bei der Verarbeitung der Subject Alternative Name Erweiterung.
|
||||
CertPathReviewer.subjAltNameExtError.details = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab Fehler bei der Verarbeitung der Subject Alternative Name Erweiterung des Zertifikats.
|
||||
|
||||
# exception extracting subject name when checking subtrees
|
||||
# {0} subject Principal
|
||||
CertPathReviewer.ncSubjectNameError.title = Prüfen der Namensbeschränkungen fehlgeschlagen
|
||||
CertPathReviewer.ncSubjectNameError.text = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab einen Fehler beim auslesen des DN des Zertifikats.
|
||||
CertPathReviewer.ncSubjectNameError.summary = Prüfen der Namensbeschränkungen fehlgeschlagen: Fehler beim auslesen des DNs.
|
||||
CertPathReviewer.ncSubjectNameError.details = Prüfen der Namensbeschränkungen fehlgeschlagen: Es gab einen Fehler beim auslesen des DN des Zertifikats.
|
||||
|
||||
|
||||
## path length errors
|
||||
|
||||
# max path length extended
|
||||
CertPathReviewer.pathLengthExtended.title = Maximale Pfadlänge überschritten
|
||||
CertPathReviewer.pathLengthExtended.text = Zertifizierungspfad ungültig: die Maximale Pfadlänge ist überschritten.
|
||||
CertPathReviewer.pathLengthExtended.summary = Zertifizierungspfad ungültig: die Maximale Pfadlänge ist überschritten.
|
||||
CertPathReviewer.pathLengthExtended.details = Zertifizierungspfad ungültig: die Maximale Pfadlänge ist überschritten.
|
||||
|
||||
# error reading length constraint from basic constraint extension
|
||||
CertPathReviewer.processLengthConstError.title = Prüfen der Pfadlänge fehlgeschlagen
|
||||
CertPathReviewer.processLengthConstError.text = Prüfen der Pfadlänge fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der subject alternative name Erweiterung des Zertifikats.
|
||||
CertPathReviewer.processLengthConstError.summary = Fehler bei der Verarbeitung der subject alternative name Erweiterung.
|
||||
CertPathReviewer.processLengthConstError.details = Prüfen der Pfadlänge fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der subject alternative name Erweiterung des Zertifikats.
|
||||
|
||||
|
||||
## path length notifications
|
||||
|
||||
# total path length as defined in rfc 3280
|
||||
# {0} the path length as Integer
|
||||
CertPathReviewer.totalPathLength.title = Totale Pfadlänge
|
||||
CertPathReviewer.totalPathLength.text = Die totale Pfadlänge ohne self-signed Zertifikate ist {0}.
|
||||
CertPathReviewer.totalPathLength.summary = Die totale Pfadlänge ohne self-signed Zertifikate ist {0}.
|
||||
CertPathReviewer.totalPathLength.details = Die totale Pfadlänge ohne self-signed Zertifikate, wie beschrieben in RFC 3280, ist {0}.
|
||||
|
||||
|
||||
## critical extensions errors
|
||||
|
||||
# one unknown critical extension
|
||||
# {0} extension as String
|
||||
CertPathReviewer.unknownCriticalExt.title = Unbekannte kritische Erweiterung
|
||||
CertPathReviewer.unknownCriticalExt.text = Das Zertifikat enhält eine unbekannte kritische Erweiterung mit der OID {0}.
|
||||
CertPathReviewer.unknownCriticalExt.summary = Unbekannte kritische Erweiterung: {0}.
|
||||
CertPathReviewer.unknownCriticalExt.details = Das Zertifikat enhält eine unbekannte kritische Erweiterung mit der OID {0}.
|
||||
|
||||
# more unknown critical extensions
|
||||
# {0} extensions as Set of Strings
|
||||
CertPathReviewer.unknownCriticalExts.title = Unbekannte kritische Erweiterung
|
||||
CertPathReviewer.unknownCriticalExts.text = Das Zertifikat enhält zwei oder mehr unbekannte kritische Erweiterungen mit den OIDs {0}.
|
||||
CertPathReviewer.unknownCriticalExts.summary = Unbekannte kritische Erweiterungen: {0}.
|
||||
CertPathReviewer.unknownCriticalExts.details = Das Zertifikat enhält zwei oder mehr unbekannte kritische Erweiterungen mit den OIDs {0}.
|
||||
|
||||
# error processing critical extension
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.criticalExtensionError.title = Fehler bei der Verarbeitung einer kritischen Erweiterung
|
||||
CertPathReviewer.criticalExtensionError.text = Fehler bei der Verarbeitung einer kritischen Erweiterung. Es gab eine {2}.
|
||||
CertPathReviewer.criticalExtensionError.summary = Fehler bei der Verarbeitung einer kritischen Erweiterung. Es gab eine {2}.
|
||||
CertPathReviewer.criticalExtensionError.details = Fehler bei der Verarbeitung einer kritischen Erweiterung. Es gab eine {2}. Grund: {0}.
|
||||
|
||||
# error initializing the certpath checkers
|
||||
# {0} the message of the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.certPathCheckerError.title = Prüfen der kritischen Erweiterungen fehlgeschlagen
|
||||
CertPathReviewer.certPathCheckerError.text = Prüfen der kritischen Erweiterungen fehlgeschlagen: Es gab eine {2} bei der Initialisierung eines CertPathChecker.
|
||||
CertPathReviewer.certPathCheckerError.summary = Prüfen der kritischen Erweiterungen fehlgeschlagen: {2} bei der Initialisierung eines CertPathChecker.
|
||||
CertPathReviewer.certPathCheckerError.details = Prüfen der kritischen Erweiterungen fehlgeschlagen: Es gab eine {2} bei der Initialisierung eines CertPathChecker. Grund: {0}
|
||||
|
||||
|
||||
## check signature errors
|
||||
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.title = rootKeyIsValidButNotATrustAnchor
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.text = Das Zertifikat hat eine gültige Signatur, ist aber kein vertrauenswürdiges Root Zertifikat.
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.summary = Das Zertifikat hat eine gültige Signatur, ist aber kein vertrauenswürdiges Root Zertifikat.
|
||||
CertPathReviewer.rootKeyIsValidButNotATrustAnchor.details = Das Zertifikat hat eine gültige Signatur, ist aber kein vertrauenswürdiges Root Zertifikat.
|
||||
|
||||
# trustanchor found, but certificate validation failed
|
||||
CertPathReviewer.trustButInvalidCert.title = Vertrauenswürdiges Root Zertifikat invalid
|
||||
CertPathReviewer.trustButInvalidCert.text = Ein Root Zertifikat wurde gefunden. Es hat aber einen anderen öffentlichen Schlüssel als verwendet wurde um das erste Zertifikat des Zertifizierungspfades zu signieren.
|
||||
CertPathReviewer.trustButInvalidCert.summary = Ein Root Zertifikat wurde gefunden. Es hat aber einen anderen öffentlichen Schlüssel als verwendet wurde um das erste Zertifikat des Zertifizierungspfades zu signieren.
|
||||
CertPathReviewer.trustButInvalidCert.details = Ein Root Zertifikat wurde gefunden. Es hat aber einen anderen öffentlichen Schlüssel als verwendet wurde um das erste Zertifikat des Zertifizierungspfades zu signieren.
|
||||
|
||||
# trustanchor - cannot extract issuer
|
||||
CertPathReviewer.trustAnchorIssuerError.title = Kann kein vertrauenswürdiges Root Zertifikat finden
|
||||
CertPathReviewer.trustAnchorIssuerError.text = Kann kein vertrauenswürdiges Root Zertifikat finden: Der Herausgeber vom Zertifikat kann nicht auslesen werden.
|
||||
CertPathReviewer.trustAnchorIssuerError.summary = Kann kein vertrauenswürdiges Root Zertifikat finden: Der Herausgeber vom Zertifikat kann nicht auslesen werden.
|
||||
CertPathReviewer.trustAnchorIssuerError.details = Kann kein vertrauenswürdiges Root Zertifikat finden: Der Herausgeber vom Zertifikat kann nicht auslesen werden.
|
||||
|
||||
# no trustanchor was found for the certificate path
|
||||
# {0} issuer of the root certificate of the path
|
||||
# {1} number of trusted root certificates (trustanchors) provided
|
||||
CertPathReviewer.noTrustAnchorFound.title = Kein vertrauenswürdiges Root Zertifikat gefunden
|
||||
CertPathReviewer.noTrustAnchorFound.text = Das Root Zertifikat der Zertifizierungspfads wurde nicht von einer vertrauenswürdigen CA ausgestellt. Der Name der CA ist "{0}".
|
||||
CertPathReviewer.noTrustAnchorFound.summary = Das Root Zertifikat der Zertifizierungspfads wurde nicht von einer vertrauenswürdigen CA ausgestellt.
|
||||
CertPathReviewer.noTrustAnchorFound.details = Das Root Zertifikat der Zertifizierungspfads wurde nicht von einer vertrauenswürdigen CA ausgestellt. Der Name der CA ist "{0}". Der Root-Zertifikat-Speicher enthält {1} CA(s).
|
||||
|
||||
# conflicting trust anchors
|
||||
# {0} number of trustanchors found (Integer)
|
||||
# {1} the ca name
|
||||
CertPathReviewer.conflictingTrustAnchors.title = Korrupter Root-Zertifikat-Speicher
|
||||
CertPathReviewer.conflictingTrustAnchors.text = Warnung: Es sind {0} öffentliche Schlüssel für die CA "{1}" im Root-Zertifikat-Speicher vorhanden - bitte prüfen Sie mit der CA welches der richtige Schlüssel ist.
|
||||
CertPathReviewer.conflictingTrustAnchors.summary = Warnung: Es sind {0} öffentliche Schlüssel für die CA "{1}" im Root-Zertifikat-Speicher vorhanden - bitte prüfen Sie mit der CA welches der richtige Schlüssel ist.
|
||||
CertPathReviewer.conflictingTrustAnchors.details = Warnung: Es sind {0} öffentliche Schlüssel für die CA "{1}" im Root-Zertifikat-Speicher vorhanden - bitte prüfen Sie mit der CA welches der richtige Schlüssel ist.
|
||||
|
||||
# trustanchor DN is invalid
|
||||
# {0} DN of the Trustanchor
|
||||
CertPathReviewer.trustDNInvalid.title = DN des vertrauenswürdigen Root Zertifikats mit falschem Format.
|
||||
CertPathReviewer.trustDNInvalid.text = Der DN des vertrauenswürdigen Root Zertifikats hat ein falsches Format: {0}.
|
||||
CertPathReviewer.trustDNInvalid.summary = Der DN des vertrauenswürdigen Root Zertifikats hat ein falsches Format: {0}.
|
||||
CertPathReviewer.trustDNInvalid.details = Der DN des vertrauenswürdigen Root Zertifikats hat ein falsches Format: {0}. Es ist kein gültiger X.500 Name. Siehe RFC 1779 oder RFC 2253.
|
||||
|
||||
# trustanchor public key algorithm error
|
||||
CertPathReviewer.trustPubKeyError.title = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats
|
||||
CertPathReviewer.trustPubKeyError.text = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats.
|
||||
CertPathReviewer.trustPubKeyError.summary = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats.
|
||||
CertPathReviewer.trustPubKeyError.details = Fehler bei der Verarbeitung des öffentlichen Schlüssels der vertrauenswürdigen Root Zertifikats. Der AlorithmIdentifier vom Schlüssel kann nicht ausgelesen werden.
|
||||
|
||||
# can not verifiy signature: issuer public key unknown
|
||||
CertPathReviewer.NoIssuerPublicKey.title = Zertifikats Signatur kann nicht geprüft werden
|
||||
CertPathReviewer.NoIssuerPublicKey.text = Die Zertifikats Signatur kann nicht geprüft werden: Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.NoIssuerPublicKey.summary = Die Zertifikats Signatur kann nicht geprüft werden: Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.NoIssuerPublicKey.details = Die Zertifikats Signatur kann nicht geprüft werden: Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
|
||||
# signature can not be verified
|
||||
# {0} message of the underlying exception (english)
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.signatureNotVerified.title = Zertifikats Signatur ist ungültig
|
||||
CertPathReviewer.signatureNotVerified.text = Die Zertifikats Signatur ist ungültig. Es gab eine {2}.
|
||||
CertPathReviewer.signatureNotVerified.summary = Die Zertifikats Signatur ist ungültig.
|
||||
CertPathReviewer.signatureNotVerified.details = Die Zertifikats Signatur ist ungültig. Es gab eine {2}. Grund: {0}
|
||||
|
||||
# certificate expired
|
||||
# {0} the date the certificate expired
|
||||
CertPathReviewer.certificateExpired.title = Zertifikat ist abgelaufen
|
||||
CertPathReviewer.certificateExpired.text = Das Zertifikat ist ungültig. Es ist am {0,date} {0,time,full} abgelaufen.
|
||||
CertPathReviewer.certificateExpired.summary = Das Zertifikat ist abgelaufen am {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateExpired.details = Das Zertifikat ist ungültig. Es ist am {0,date} {0,time,full} abgelaufen.
|
||||
|
||||
# certificate not yet valid
|
||||
# {0} the date from which on the certificate is valid
|
||||
CertPathReviewer.certificateNotYetValid.title = Das Zertifikat ist noch nicht gültig
|
||||
CertPathReviewer.certificateNotYetValid.text = Das Zertifikat ist ungültig. Es ist erst gültig ab {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.summary = Das Zertifikat ist nicht gültig bis {0,date} {0,time,full}.
|
||||
CertPathReviewer.certificateNotYetValid.details = Das Zertifikat ist ungültig. Es ist erst gültig ab {0,date} {0,time,full}.
|
||||
|
||||
# certificate invalid issuer DN
|
||||
# {0} expected issuer DN as String
|
||||
# {1} found issuer DN as String
|
||||
CertPathReviewer.certWrongIssuer.title = Falscher Herausgeber
|
||||
CertPathReviewer.certWrongIssuer.text = Das Herausgeber des Zertifikats ist ungültig. Erwartet {0}, gefunden {1}.
|
||||
CertPathReviewer.certWrongIssuer.summary = Das Herausgeber des Zertifikats ist ungültig.
|
||||
CertPathReviewer.certWrongIssuer.details = Das Herausgeber des Zertifikats ist ungültig. Erwartet {0}, gefunden {1}.
|
||||
|
||||
# intermediate certificate is no ca cert
|
||||
CertPathReviewer.noCACert.title = Zertifikat ist kein CA Zertifikat
|
||||
CertPathReviewer.noCACert.text = Das Zertifikat ist kein CA Zertifikat.
|
||||
CertPathReviewer.noCACert.summary = Das Zertifikat ist kein CA Zertifikat.
|
||||
CertPathReviewer.noCACert.details = Das Zertifikat ist kein CA Zertifikat, wird aber wie eines gebraucht.
|
||||
|
||||
# cert laks basic constraints
|
||||
CertPathReviewer.noBasicConstraints.title = Zertifikat hat keine Basiseinschränkungen
|
||||
CertPathReviewer.noBasicConstraints.text = Das Zertifikat hat keine Basiseinschränkungen.
|
||||
CertPathReviewer.noBasicConstraints.summary = Das Zertifikat hat keine Basiseinschränkungen.
|
||||
CertPathReviewer.noBasicConstraints.details = Das Zertifikat hat keine Basiseinschränkungen.
|
||||
|
||||
# error processing basic constraints
|
||||
CertPathReviewer.errorProcesingBC.title = Fehler bei der Verarbeitung der Basiseinschränkungen
|
||||
CertPathReviewer.errorProcesingBC.text = Es gab einen Fehler bei der Verarbeitung der Basiseinschränkungen des Zertifikats.
|
||||
CertPathReviewer.errorProcesingBC.summary = Fehler bei der Verarbeitung der Basiseinschränkungen
|
||||
CertPathReviewer.errorProcesingBC.details = Es gab einen Fehler bei der Verarbeitung der Basiseinschränkungen des Zertifikats.
|
||||
|
||||
# certificate not usable for signing certs
|
||||
CertPathReviewer.noCertSign.title = Schlüssel nicht nutzbar für Zertifikatssignaturen
|
||||
CertPathReviewer.noCertSign.text = Der Schlüssel kann nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.noCertSign.summary = Der Schlüssel kann nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.noCertSign.details = Der Schlüssel kann nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
|
||||
# error processing public key
|
||||
CertPathReviewer.pubKeyError.title = Fehler bei der Verarbeitung des öffentlichen Schlüssels
|
||||
CertPathReviewer.pubKeyError.text = Fehler bei der Verarbeitung des öffentlichen Schlüssels des Zertifikats.
|
||||
CertPathReviewer.pubKeyError.summary = Fehler bei der Verarbeitung des öffentlichen Schlüssels des Zertifikats.
|
||||
CertPathReviewer.pubKeyError.details = Fehler bei der Verarbeitung des öffentlichen Schlüssels des Zertifikats. Der AlorithmIdentifier konnte nicht extrahiert werden.
|
||||
|
||||
|
||||
## check signatures notifications
|
||||
|
||||
#
|
||||
# trust anchor has no keyusage certSign
|
||||
CertPathReviewer.trustKeyUsage.title = Root-Zertifikat Schlüsselverwendung
|
||||
CertPathReviewer.trustKeyUsage.text = Das Root-Zertifikat darf nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.trustKeyUsage.summary = Das Root-Zertifikat darf nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
CertPathReviewer.trustKeyUsage.details = Das Root-Zertifikat darf nicht zum Signieren von Zertifikaten verwendet werden.
|
||||
|
||||
# certificate path validation date
|
||||
# {0} date for which the cert path is validated
|
||||
# {1} current date
|
||||
CertPathReviewer.certPathValidDate.title = Datum der Zertifikatspfad Validierung
|
||||
CertPathReviewer.certPathValidDate.text = Der Zertifikatspfad wurde am {0,date} {0,time,full} angewendet. Er wurde am {1,date} {1,time,full} geprüft.
|
||||
CertPathReviewer.certPathValidDate.summary = Der Zertifikatspfad wurde am {0,date} {0,time,full} angewendet. Er wurde am {1,date} {1,time,full} geprüft.
|
||||
CertPathReviewer.certPathValidDate.details = Der Zertifikatspfad wurde am {0,date} {0,time,full} angewendet. Er wurde am {1,date} {1,time,full} geprüft.
|
||||
|
||||
|
||||
## check policy errors
|
||||
|
||||
# error processing certificate policy extension
|
||||
CertPathReviewer.policyExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Erweiterung.
|
||||
CertPathReviewer.policyExtError.summary = Fehler bei der Verarbeitung der Policy Erweiterung.
|
||||
CertPathReviewer.policyExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Erweiterung.
|
||||
|
||||
# error processing policy constraints extension
|
||||
CertPathReviewer.policyConstExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyConstExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Constraints Erweiterung.
|
||||
CertPathReviewer.policyConstExtError.summary = Fehler bei der Verarbeitung der Policy Constraints Erweiterung.
|
||||
CertPathReviewer.policyConstExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Constraints Erweiterung.
|
||||
|
||||
# error processing policy mapping extension
|
||||
CertPathReviewer.policyMapExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyMapExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Mapping Erweiterung.
|
||||
CertPathReviewer.policyMapExtError.summary = Fehler bei der Verarbeitung der Policy Mapping Erweiterung.
|
||||
CertPathReviewer.policyMapExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Policy Mapping Erweiterung.
|
||||
|
||||
# error processing inhibit any policy extension
|
||||
CertPathReviewer.policyInhibitExtError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyInhibitExtError.text = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Inhibit Any Policy Erweiterung.
|
||||
CertPathReviewer.policyInhibitExtError.summary = Fehler bei der Verarbeitung der Inhibit Any Policy Erweiterung.
|
||||
CertPathReviewer.policyInhibitExtError.details = Prüfen der Policy fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Inhibit Any Policy Erweiterung.
|
||||
|
||||
# error building qualifier set
|
||||
CertPathReviewer.policyQualifierError.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.policyQualifierError.text = Prüfen der Policy fehlgeschlagen: Fehler beim erstellen des Policy Qualifier Set.
|
||||
CertPathReviewer.policyQualifierError.summary = Prüfen der Policy fehlgeschlagen: Fehler beim erstellen des Policy Qualifier Set.
|
||||
CertPathReviewer.policyQualifierError.details = Prüfen der Policy fehlgeschlagen: Fehler beim erstellen des Policy Qualifier Set.
|
||||
|
||||
# no valid policy tree - explicit policy required
|
||||
CertPathReviewer.noValidPolicyTree.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.noValidPolicyTree.text = Prüfen der Policy fehlgeschlagen: Kein gültiger Policy Baum gefunden, als einer erwartet wurde.
|
||||
CertPathReviewer.noValidPolicyTree.summary = Prüfen der Policy fehlgeschlagen: Kein gültiger Policy Baum gefunden, als einer erwartet wurde.
|
||||
CertPathReviewer.noValidPolicyTree.details = Prüfen der Policy fehlgeschlagen: Kein gültiger Policy Baum gefunden, als einer erwartet wurde.
|
||||
|
||||
# expicit policy requested, but no policy available
|
||||
CertPathReviewer.explicitPolicy.title = Prüfen der Policy fehlgeschlagen
|
||||
CertPathReviewer.explicitPolicy.text = Prüfen der Policy fehlgeschlagen: Policy verlang, aber keine Policy vorhanden.
|
||||
CertPathReviewer.explicitPolicy.summary = Prüfen der Policy fehlgeschlagen: Policy verlang, aber keine Policy vorhanden.
|
||||
CertPathReviewer.explicitPolicy.details = Prüfen der Policy fehlgeschlagen: Policy verlang, aber keine Policy vorhanden.
|
||||
|
||||
# path processing failed on policy
|
||||
CertPathReviewer.invalidPolicy.title = Pfad Validierung wegen der Policy fehlgeschlagen
|
||||
CertPathReviewer.invalidPolicy.text = Pfad Validierung wegen der Policy fehlgeschlagen.
|
||||
CertPathReviewer.invalidPolicy.summary = Pfad Validierung wegen der Policy fehlgeschlagen.
|
||||
CertPathReviewer.invalidPolicy.details = Pfad Validierung wegen der Policy fehlgeschlagen.
|
||||
|
||||
# invalid policy mapping
|
||||
CertPathReviewer.invalidPolicyMapping.title = Ungültiges Policy Mapping
|
||||
CertPathReviewer.invalidPolicyMapping.text = Das Zertifikat enthält ein Ungültiges Policy Mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.summary = Das Zertifikat enthält ein Ungültiges Policy Mapping.
|
||||
CertPathReviewer.invalidPolicyMapping.details = Das Zertifikat enthält ein Ungültiges Policy Mapping, das den Wert Any Policy enthält.
|
||||
|
||||
## check CRL notifications
|
||||
|
||||
# found local valid CRL
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localValidCRL.title = Gültige Zertifikatssperrliste (CRL) gefunden
|
||||
CertPathReviewer.localValidCRL.text = Gültige Zertifikatssperrliste (CRL) im lokalen Speicher gefunden. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localValidCRL.summary = Gültige Zertifikatssperrliste (CRL) im lokalen Speicher gefunden. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localValidCRL.details = Gültige Zertifikatssperrliste (CRL) im lokalen Speicher gefunden. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
|
||||
# found matching CRL, but not valid
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
CertPathReviewer.localInvalidCRL.title = Lokale Zertifikatssperrliste (CRL) veraltet
|
||||
CertPathReviewer.localInvalidCRL.text = Eine lokale Zertifikatssperrliste (CRL) wurde nicht genutzt, da sie veraltet ist. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.summary = Eine lokale Zertifikatssperrliste (CRL) wurde nicht genutzt, da sie veraltet ist. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.localInvalidCRL.details = Eine lokale Zertifikatssperrliste (CRL) wurde nicht genutzt, da sie veraltet ist. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
# found a valid crl at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineValidCRL.title = Gültige Zertifikatssperrliste (CRL) von einem CDP
|
||||
CertPathReviewer.onlineValidCRL.text = Gültige Zertifikatssperrliste (CRL) gefunden von: {2}. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.summary = Gültige Zertifikatssperrliste (CRL) gefunden von: {2}. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineValidCRL.details = Gültige Zertifikatssperrliste (CRL) gefunden von: {2}. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
# found an invalid CRL at crl distribution point
|
||||
# {0} thisUpdate of the CRL
|
||||
# {1} nextUpdate of the CRL
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineInvalidCRL.title = Veraltete Zertifikatssperrliste (CRL) von einem CDP
|
||||
CertPathReviewer.onlineInvalidCRL.text = Die Zertifikatssperrliste (CRL) von {2} ist veraltet. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.summary = Die Zertifikatssperrliste (CRL) von {2} ist veraltet. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
CertPathReviewer.onlineInvalidCRL.details = Die Zertifikatssperrliste (CRL) von {2} ist veraltet. Herausgegeben am {0,date}, nächstes Update am {1,date}.
|
||||
|
||||
#found a CRL at a crl distribution point, but issued by another CA
|
||||
# {0} issuer of the CRL
|
||||
# {1} expected issuer
|
||||
# {2} the url of the distribution point
|
||||
CertPathReviewer.onlineCRLWrongCA.title = Zertifikatssperrliste (CRL) von CDP mit falschem Herausgeber
|
||||
CertPathReviewer.onlineCRLWrongCA.text = Die Zertifikatssperrliste (CRL) von {2} wurde von {0} herausgegeben, erwartet wurde {1}.
|
||||
CertPathReviewer.onlineCRLWrongCA.summary = Die Zertifikatssperrliste (CRL) von {2} hat einen falschen Herausgeber.
|
||||
CertPathReviewer.onlineCRLWrongCA.details = Die Zertifikatssperrliste (CRL) von {2} wurde von {0} herausgegeben, erwartet wurde {1}.
|
||||
|
||||
# Certificate not revoked
|
||||
CertPathReviewer.notRevoked.title = Zertifikat nicht revoziert
|
||||
CertPathReviewer.notRevoked.text = Das Zertifikat ist nicht revoziert.
|
||||
CertPathReviewer.notRevoked.summary = Das Zertifikat ist nicht revoziert.
|
||||
CertPathReviewer.notRevoked.details = Das Zertifikat ist nicht revoziert.
|
||||
|
||||
# CRL found: certificate was revoked, but after the validationDate
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.revokedAfterValidation.title = Zertifikat revoziert nach dem Validierungdatum
|
||||
CertPathReviewer.revokedAfterValidation.text = Das Zertifikat wurde nach dem Validierungdatum am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
CertPathReviewer.revokedAfterValidation.summary = Das Zertifikat wurde nach dem Validierungdatum am {0,date} {0,time,full} revoziert.
|
||||
CertPathReviewer.revokedAfterValidation.details = Das Zertifikat wurde nach dem Validierungdatum am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
|
||||
# updated crl available
|
||||
# {0} date since when the update is available
|
||||
CertPathReviewer.crlUpdateAvailable.title = Zertifikatssperrlisten (CRL) Update erhältlich
|
||||
CertPathReviewer.crlUpdateAvailable.text = Ein Update für die Zertifikatssperrliste (CRL) für dieses Zertifikat ist erhältlich seit {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.summary = Ein Update für die Zertifikatssperrliste (CRL) für dieses Zertifikat ist erhältlich seit {0,date} {0,time,full}.
|
||||
CertPathReviewer.crlUpdateAvailable.details = Ein Update für die Zertifikatssperrliste (CRL) für dieses Zertifikat ist erhältlich seit {0,date} {0,time,full}.
|
||||
|
||||
# crl distribution point url
|
||||
# {0} the crl distribution point url as String
|
||||
CertPathReviewer.crlDistPoint.title = CDP
|
||||
CertPathReviewer.crlDistPoint.text = Eine Zertifikatssperrliste (CRL) kann von {0} geladen werden.
|
||||
CertPathReviewer.crlDistPoint.summary = Eine Zertifikatssperrliste (CRL) kann von {0} geladen werden.
|
||||
CertPathReviewer.crlDistPoint.details = Eine Zertifikatssperrliste (CRL) kann von {0} geladen werden.
|
||||
|
||||
# ocsp location
|
||||
# {0} the url on which the ocsp service can be found
|
||||
CertPathReviewer.ocspLocation.title = OCSP Server
|
||||
CertPathReviewer.ocspLocation.text = OCSP Server: {0}.
|
||||
CertPathReviewer.ocspLocation.summary = OCSP Server: {0}.
|
||||
CertPathReviewer.ocspLocation.details = OCSP Server: {0}.
|
||||
|
||||
# unable to get crl from crl distribution point
|
||||
# {0} the url of the distribution point
|
||||
# {1} the message of the occurred exception
|
||||
# {2} the occurred exception
|
||||
# {3} the name of the exception
|
||||
CertPathReviewer.loadCrlDistPointError.title = Kann Zertifikatssperrliste (CRL) nicht von CDP laden
|
||||
CertPathReviewer.loadCrlDistPointError.text = Kann die Zertifikatssperrliste (CRL) von {0} nicht laden. Es gab eine {2}.
|
||||
CertPathReviewer.loadCrlDistPointError.summary = Kann die Zertifikatssperrliste (CRL) von {0} nicht laden. Es gab eine {2}.
|
||||
CertPathReviewer.loadCrlDistPointError.details = Kann die Zertifikatssperrliste (CRL) von {0} nicht laden. Es gab eine {2}. Grund: {1}.
|
||||
|
||||
# no crl found in certstores
|
||||
# {0} the issuers which we searched for
|
||||
# {1} list of crl issuer names that are found in the certstores
|
||||
# {2} number of crls in the certstores
|
||||
CertPathReviewer.noCrlInCertstore.title = Keine Zertifikatssperrliste (CRL) im lokalen Speicher
|
||||
CertPathReviewer.noCrlInCertstore.text = Es wurde keine Zertifikatssperrliste (CRL) im lokalen Speicher gefunden.
|
||||
CertPathReviewer.noCrlInCertstore.summary = Es wurde keine Zertifikatssperrliste (CRL) im lokalen Speicher gefunden.
|
||||
CertPathReviewer.noCrlInCertstore.details = Es wurde keine Zertifikatssperrliste (CRL) für den Herausgeber {0} im lokalen Speicher gefunden. \
|
||||
Die {2} Zertifikatssperrlisten im lokalen Speicher wurden hearusgegeben von {1}.
|
||||
|
||||
|
||||
## check CRL exceptions
|
||||
|
||||
# cannot extract issuer from certificate
|
||||
CertPathReviewer.crlIssuerException.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlIssuerException.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann den Herausgeber vom Zertifikat nicht extrahieren.
|
||||
CertPathReviewer.crlIssuerException.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann den Herausgeber vom Zertifikat nicht extrahieren.
|
||||
CertPathReviewer.crlIssuerException.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann den Herausgeber vom Zertifikat nicht extrahieren.
|
||||
|
||||
# cannot extract crls
|
||||
# {0} message from the underlying exception
|
||||
# {1} the underlying exception
|
||||
# {2} the name of the exception
|
||||
CertPathReviewer.crlExtractionError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlExtractionError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab eine {2} beim laden der Zertifikatssperrliste (CRL) aus dem lokalen Speicher.
|
||||
CertPathReviewer.crlExtractionError.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab eine {2} beim laden der Zertifikatssperrliste (CRL) aus dem lokalen Speicher.
|
||||
CertPathReviewer.crlExtractionError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab eine {2} beim laden der Zertifikatssperrliste (CRL) aus dem lokalen Speicher. Grund: {0}.
|
||||
|
||||
# Issuer certificate key usage extension does not permit crl signing
|
||||
CertPathReviewer.noCrlSigningPermited.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.noCrlSigningPermited.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Das Herausgeber Zertifikat erlaubt keine Signieren von Zertifikatssperrlisten (CRL).
|
||||
CertPathReviewer.noCrlSigningPermited.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Das Herausgeber Zertifikat erlaubt keine Signieren von Zertifikatssperrlisten (CRL).
|
||||
CertPathReviewer.noCrlSigningPermited.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Das Herausgeber Zertifikat erlaubt keine Signieren von Zertifikatssperrlisten (CRL).
|
||||
|
||||
# can not verify crl: issuer public key unknown
|
||||
CertPathReviewer.crlNoIssuerPublicKey.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlNoIssuerPublicKey.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann die Zertifikatssperrliste (CRL) nicht verifizieren. Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann die Zertifikatssperrliste (CRL) nicht verifizieren. Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
CertPathReviewer.crlNoIssuerPublicKey.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Kann die Zertifikatssperrliste (CRL) nicht verifizieren. Der öffentliche Schlüssel des Herausgebers ist unbekannt.
|
||||
|
||||
# crl verification failed
|
||||
CertPathReviewer.crlVerifyFailed.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlVerifyFailed.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Signatur der Zertifikatssperrliste (CRL) ist ungültig.
|
||||
CertPathReviewer.crlVerifyFailed.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Signatur der Zertifikatssperrliste (CRL) ist ungültig.
|
||||
CertPathReviewer.crlVerifyFailed.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Signatur der Zertifikatssperrliste (CRL) ist ungültig.
|
||||
|
||||
# no valid CRL found
|
||||
CertPathReviewer.noValidCrlFound.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.noValidCrlFound.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine gültige Zertifikatssperrliste (CRL) gefunden.
|
||||
CertPathReviewer.noValidCrlFound.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine gültige Zertifikatssperrliste (CRL) gefunden.
|
||||
CertPathReviewer.noValidCrlFound.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine gültige Zertifikatssperrliste (CRL) gefunden.
|
||||
|
||||
# No base CRL for delta CRL
|
||||
CertPathReviewer.noBaseCRL.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.noBaseCRL.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine Basis CRL für die Delta CRL gefunden.
|
||||
CertPathReviewer.noBaseCRL.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine Basis CRL für die Delta CRL gefunden.
|
||||
CertPathReviewer.noBaseCRL.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: keine Basis CRL für die Delta CRL gefunden.
|
||||
|
||||
# certificate revoked
|
||||
# {0} the date the certificate was revoked
|
||||
# {1} the reason for revoking the certificate
|
||||
CertPathReviewer.certRevoked.title = Zertifikat wurde revoziert
|
||||
CertPathReviewer.certRevoked.text = Das Zertifikat wurde am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
CertPathReviewer.certRevoked.summary = Das Zertifikat wurde am {0,date} {0,time,full} revoziert.
|
||||
CertPathReviewer.certRevoked.details = Das Zertifikat wurde am {0,date} {0,time,full} revoziert. Grund: {1}.
|
||||
|
||||
# error processing issuing distribution point extension
|
||||
CertPathReviewer.distrPtExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.distrPtExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Issuing Distribution Point Erweiterung.
|
||||
CertPathReviewer.distrPtExtError.summary = Fehler bei der Verarbeitung der Issuing Distribution Point Erweiterung.
|
||||
CertPathReviewer.distrPtExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Issuing Distribution Point Erweiterung.
|
||||
|
||||
# error processing crl distribution points extension
|
||||
CertPathReviewer.crlDistPtExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlDistPtExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Distribution Points Erweiterung.
|
||||
CertPathReviewer.crlDistPtExtError.summary = Fehler bei der Verarbeitung der CRL Distribution Points Erweiterung.
|
||||
CertPathReviewer.crlDistPtExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Distribution Points Erweiterung.
|
||||
|
||||
# error processing the authority info access extension
|
||||
CertPathReviewer.crlAuthInfoAccError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlAuthInfoAccError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Authority Info Access Erweiterung.
|
||||
CertPathReviewer.crlAuthInfoAccError.summary = Fehler bei der Verarbeitung der Authority Info Access Erweiterung.
|
||||
CertPathReviewer.crlAuthInfoAccError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Authority Info Access Erweiterung.
|
||||
|
||||
# error processing delta crl indicator extension
|
||||
CertPathReviewer.deltaCrlExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.deltaCrlExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Delta CRL Indicator Erweiterung.
|
||||
CertPathReviewer.deltaCrlExtError.summary = Fehler bei der Verarbeitung der Delta CRL Indicator Erweiterung.
|
||||
CertPathReviewer.deltaCrlExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der Delta CRL Indicator Erweiterung.
|
||||
|
||||
# error porcessing crl number extension
|
||||
CertPathReviewer.crlNbrExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlNbrExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Number Erweiterung.
|
||||
CertPathReviewer.crlNbrExtError.summary = Fehler bei der Verarbeitung der CRL Number Erweiterung.
|
||||
CertPathReviewer.crlNbrExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Number Erweiterung.
|
||||
|
||||
# error processing crl reason code extension
|
||||
CertPathReviewer.crlReasonExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlReasonExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlReasonExtError.summary = Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlReasonExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
|
||||
# error processing basic constraints extension
|
||||
CertPathReviewer.crlBCExtError.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlBCExtError.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlBCExtError.summary = Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
CertPathReviewer.crlBCExtError.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Es gab einen Fehler bei der Verarbeitung der CRL Reason Code Erweiterung.
|
||||
|
||||
# CA Cert CRL only contains user certificates
|
||||
CertPathReviewer.crlOnlyUserCert.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlOnlyUserCert.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur User Zertifikate.
|
||||
CertPathReviewer.crlOnlyUserCert.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur User Zertifikate.
|
||||
CertPathReviewer.crlOnlyUserCert.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur User Zertifikate.
|
||||
|
||||
# End CRL only contains CA certificates
|
||||
CertPathReviewer.crlOnlyCaCert.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlOnlyCaCert.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur CA Zertifikate.
|
||||
CertPathReviewer.crlOnlyCaCert.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur CA Zertifikate.
|
||||
CertPathReviewer.crlOnlyCaCert.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur CA Zertifikate.
|
||||
|
||||
# onlyContainsAttributeCerts boolean is asserted
|
||||
CertPathReviewer.crlOnlyAttrCert.title = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen
|
||||
CertPathReviewer.crlOnlyAttrCert.text = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur Attribut Zertifikate.
|
||||
CertPathReviewer.crlOnlyAttrCert.summary = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur Attribut Zertifikate.
|
||||
CertPathReviewer.crlOnlyAttrCert.details = Prüfung der Zertifikatssperrliste (CRL) fehlgeschlagen: Die Zertifikatssperrliste (CRL) enthält nur Attribut Zertifikate.
|
||||
|
||||
|
||||
## QcStatement notifications
|
||||
|
||||
# unkown statement
|
||||
# {0} statement OID
|
||||
# {1} statement as ANS1Sequence
|
||||
CertPathReviewer.QcUnknownStatement.title = Unbekanntes Statement in der QcStatement Erweiterung
|
||||
CertPathReviewer.QcUnknownStatement.text = Unbekanntes Statement in der QcStatement Erweiterung: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.summary = Unbekanntes Statement in der QcStatement Erweiterung: OID = {0}
|
||||
CertPathReviewer.QcUnknownStatement.details = Unbekanntes Statement in der QcStatement Erweiterung: OID = {0}, statement = {1}
|
||||
|
||||
# QcLimitValue Alpha currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueAlpha.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueAlpha.text = Dieses Zertifikat hat ein Wertlimite von {1,number, ###,###,###,##0.00#} {0} für Transaktionen.
|
||||
CertPathReviewer.QcLimitValueAlpha.summary = Wertlimite von {1,number, ###,###,###,##0.00#} {0} für Transaktionen.
|
||||
CertPathReviewer.QcLimitValueAlpha.details = Dieses Zertifikat hat eine Wertlimite für Transaktionen für welche\
|
||||
das Zertifikat genutzt werden kann, gemäss der Richtlinie 1999/93/EG des Europäischen Parlaments und\
|
||||
des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der\
|
||||
Richtlinie im Land, das im Herausgeber dieses Zertifikats angegeben ist. Die Limite für diese Zertifikat ist {1,number, ###,###,###,##0.00#} {0}.
|
||||
|
||||
# QcLimitValue Numeric currency code
|
||||
# {0} currency code
|
||||
# {1} limit value
|
||||
# {2} monetary value as MonetaryValue
|
||||
CertPathReviewer.QcLimitValueNum.title = Transaction Value Limit
|
||||
CertPathReviewer.QcLimitValueNum.text = Dieses Zertifikat hat eine Wertlimite für Transaktionen von {1,number, ###,###,###,##0.00#} der Währung {0} (Siehe RFC 4217 für Währungscodes).
|
||||
CertPathReviewer.QcLimitValueNum.summary = Wertlimite für Transaktionen von {1,number, ###,###,###,##0.00#} der Währung {0} (Siehe RFC 4217 für Währungscodes).
|
||||
CertPathReviewer.QcLimitValueNum.details = Dieses Zertifikat hat eine Wertlimite für Transaktionen für welche\
|
||||
das Zertifikat genutzt werden kann, gemäss der Richtlinie 1999/93/EG des Europäischen Parlaments und\
|
||||
des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der\
|
||||
Richtlinie im Land, das im Herausgeber dieses Zertifikats angegeben ist. Die Limite für diese Zertifikat ist {1,number, ###,###,###,##0.00#} der Währung {0} (Siehe RFC 4217 für Währungscodes).
|
||||
|
||||
# QcSSCD
|
||||
CertPathReviewer.QcSSCD.title = QcSSCD Statement
|
||||
CertPathReviewer.QcSSCD.text = (SSCD) Der Herausgeber macht geltend, dass der Private Schlüssel, der mit diesem Zertifikat verbunden ist, nach den Anforderungen die im Anhang III der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen geschützt ist.
|
||||
CertPathReviewer.QcSSCD.summary = (SSCD) Der Herausgeber macht geltend, dass der Private Schlüssel, der mit diesem Zertifikat verbunden ist, nach den Anforderungen die im Anhang III der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen geschützt ist.
|
||||
CertPathReviewer.QcSSCD.details = (SSCD) Der Herausgeber macht geltend, dass der Private Schlüssel, der mit diesem Zertifikat verbunden ist, nach den Anforderungen die im Anhang III der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen geschützt ist.
|
||||
|
||||
# QcEuCompliance
|
||||
CertPathReviewer.QcEuCompliance.title = Qualifiziertes Zertifikat
|
||||
CertPathReviewer.QcEuCompliance.text = Dieses Zertifikat wurde als Qualifiziertes Zertifikat herausgegeben gemäss Anhang I und II der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der Richtlinie im Land, das im Herausgeber dieses Zertifikats angegeben ist.
|
||||
CertPathReviewer.QcEuCompliance.summary = Dieses Zertifikat wurde als Qualifiziertes Zertifikat herausgegeben gemäss Anhang I und II der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der Richtlinie in dem Land, das im Herausgeber dieses Zertifikats angegeben ist.
|
||||
CertPathReviewer.QcEuCompliance.details = Dieses Zertifikat wurde als Qualifiziertes Zertifikat herausgegeben gemäss Anhang I und II der Richtlinie 1999/93/EG des Europäischen Parlaments und des Rates über gemeinschaftliche Rahmenbedingungen für elektronische Signaturen und gemäss der Umsetzung der Richtlinie in dem Land, das im Herausgeber dieses Zertifikats angegeben ist.
|
||||
|
||||
## QcStatement errors
|
||||
|
||||
# error processing the QcStatement extension
|
||||
CertPathReviewer.QcStatementExtError.title = Fehler bei der Verarbeitung der QcStatement Erweiterung
|
||||
CertPathReviewer.QcStatementExtError.text = Fehler bei der Verarbeitung der QcStatement Erweiterung.
|
||||
CertPathReviewer.QcStatementExtError.summary = Fehler bei der Verarbeitung der QcStatement Erweiterung.
|
||||
CertPathReviewer.QcStatementExtError.details = Fehler bei der Verarbeitung der QcStatement Erweiterung.
|
||||
|
||||
## unknown/generic errors
|
||||
CertPathReviewer.unknown.title = Unbekannter Fehler
|
||||
CertPathReviewer.unknown.text = Unbekannter Fehler {0}
|
||||
CertPathReviewer.unknown.summary = Unbekannter Fehler
|
||||
CertPathReviewer.unknown.details = Unbekannter Fehler {0}
|
||||
|
||||
#
|
||||
# crl reasons
|
||||
#
|
||||
unspecified = Nicht spezifiziert
|
||||
keyCompromise = Schlüssel Kompromittierung
|
||||
cACompromise = CA Kompromittierung
|
||||
affiliationChanged = Veränderte Zugehörigkeit
|
||||
superseded = Ersetzt
|
||||
cessationOfOperation = Einstellen der Tätigkeiten
|
||||
certificateHold = Zertifikat vorübergehend gesperrt
|
||||
unknown = Unbekannt
|
||||
removeFromCRL = Entferne von der CRL
|
||||
privilegeWithdrawn = Zurückgezogene Rechte
|
||||
aACompromise = AA Kompromittierung
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
missingIssuer = The missing certificate was issued by
|
||||
missingSerial = with the serial number
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,4 +0,0 @@
|
||||
text/html = ISO-8859-1
|
||||
text/plain = ISO-8859-1
|
||||
text/xml = UTF-8
|
||||
text/json = UTF-8
|
||||
@@ -1,181 +0,0 @@
|
||||
ai = application/postscript
|
||||
aif = audio/x-aiff
|
||||
aifc = audio/x-aiff
|
||||
aiff = audio/x-aiff
|
||||
apk = application/vnd.android.package-archive
|
||||
asc = text/plain
|
||||
asf = video/x.ms.asf
|
||||
asx = video/x.ms.asx
|
||||
au = audio/basic
|
||||
avi = video/x-msvideo
|
||||
bcpio = application/x-bcpio
|
||||
bin = application/octet-stream
|
||||
cab = application/x-cabinet
|
||||
cdf = application/x-netcdf
|
||||
class = application/java-vm
|
||||
cpio = application/x-cpio
|
||||
cpt = application/mac-compactpro
|
||||
crt = application/x-x509-ca-cert
|
||||
csh = application/x-csh
|
||||
css = text/css
|
||||
csv = text/comma-separated-values
|
||||
dcr = application/x-director
|
||||
dir = application/x-director
|
||||
dll = application/x-msdownload
|
||||
dms = application/octet-stream
|
||||
doc = application/msword
|
||||
dtd = application/xml-dtd
|
||||
dvi = application/x-dvi
|
||||
dxr = application/x-director
|
||||
eps = application/postscript
|
||||
etx = text/x-setext
|
||||
exe = application/octet-stream
|
||||
ez = application/andrew-inset
|
||||
gif = image/gif
|
||||
gtar = application/x-gtar
|
||||
gz = application/gzip
|
||||
gzip = application/gzip
|
||||
hdf = application/x-hdf
|
||||
hqx = application/mac-binhex40
|
||||
htc = text/x-component
|
||||
htm = text/html
|
||||
html = text/html
|
||||
ice = x-conference/x-cooltalk
|
||||
ico = image/x-icon
|
||||
ief = image/ief
|
||||
iges = model/iges
|
||||
igs = model/iges
|
||||
jad = text/vnd.sun.j2me.app-descriptor
|
||||
jar = application/java-archive
|
||||
java = text/plain
|
||||
jnlp = application/x-java-jnlp-file
|
||||
jpe = image/jpeg
|
||||
jpeg = image/jpeg
|
||||
jpg = image/jpeg
|
||||
js = application/x-javascript
|
||||
jsp = text/html
|
||||
kar = audio/midi
|
||||
latex = application/x-latex
|
||||
lha = application/octet-stream
|
||||
lzh = application/octet-stream
|
||||
man = application/x-troff-man
|
||||
mathml = application/mathml+xml
|
||||
me = application/x-troff-me
|
||||
mesh = model/mesh
|
||||
mid = audio/midi
|
||||
midi = audio/midi
|
||||
mif = application/vnd.mif
|
||||
mol = chemical/x-mdl-molfile
|
||||
mov = video/quicktime
|
||||
movie = video/x-sgi-movie
|
||||
mp2 = audio/mpeg
|
||||
mp3 = audio/mpeg
|
||||
mpe = video/mpeg
|
||||
mpeg = video/mpeg
|
||||
mpg = video/mpeg
|
||||
mpga = audio/mpeg
|
||||
ms = application/x-troff-ms
|
||||
msh = model/mesh
|
||||
msi = application/octet-stream
|
||||
nc = application/x-netcdf
|
||||
oda = application/oda
|
||||
odb = application/vnd.oasis.opendocument.database
|
||||
odc = application/vnd.oasis.opendocument.chart
|
||||
odf = application/vnd.oasis.opendocument.formula
|
||||
odg = application/vnd.oasis.opendocument.graphics
|
||||
odi = application/vnd.oasis.opendocument.image
|
||||
odm = application/vnd.oasis.opendocument.text-master
|
||||
odp = application/vnd.oasis.opendocument.presentation
|
||||
ods = application/vnd.oasis.opendocument.spreadsheet
|
||||
odt = application/vnd.oasis.opendocument.text
|
||||
ogg = application/ogg
|
||||
otc = application/vnd.oasis.opendocument.chart-template
|
||||
otf = application/vnd.oasis.opendocument.formula-template
|
||||
otg = application/vnd.oasis.opendocument.graphics-template
|
||||
oth = application/vnd.oasis.opendocument.text-web
|
||||
oti = application/vnd.oasis.opendocument.image-template
|
||||
otp = application/vnd.oasis.opendocument.presentation-template
|
||||
ots = application/vnd.oasis.opendocument.spreadsheet-template
|
||||
ott = application/vnd.oasis.opendocument.text-template
|
||||
pbm = image/x-portable-bitmap
|
||||
pdb = chemical/x-pdb
|
||||
pdf = application/pdf
|
||||
pgm = image/x-portable-graymap
|
||||
pgn = application/x-chess-pgn
|
||||
png = image/png
|
||||
pnm = image/x-portable-anymap
|
||||
ppm = image/x-portable-pixmap
|
||||
pps = application/vnd.ms-powerpoint
|
||||
ppt = application/vnd.ms-powerpoint
|
||||
ps = application/postscript
|
||||
qt = video/quicktime
|
||||
ra = audio/x-pn-realaudio
|
||||
ram = audio/x-pn-realaudio
|
||||
ras = image/x-cmu-raster
|
||||
rdf = application/rdf+xml
|
||||
rgb = image/x-rgb
|
||||
rm = audio/x-pn-realaudio
|
||||
roff = application/x-troff
|
||||
rpm = application/x-rpm
|
||||
rtf = application/rtf
|
||||
rtx = text/richtext
|
||||
rv = video/vnd.rn-realvideo
|
||||
ser = application/java-serialized-object
|
||||
sgm = text/sgml
|
||||
sgml = text/sgml
|
||||
sh = application/x-sh
|
||||
shar = application/x-shar
|
||||
silo = model/mesh
|
||||
sit = application/x-stuffit
|
||||
skd = application/x-koan
|
||||
skm = application/x-koan
|
||||
skp = application/x-koan
|
||||
skt = application/x-koan
|
||||
smi = application/smil
|
||||
smil = application/smil
|
||||
snd = audio/basic
|
||||
spl = application/x-futuresplash
|
||||
src = application/x-wais-source
|
||||
sv4cpio = application/x-sv4cpio
|
||||
sv4crc = application/x-sv4crc
|
||||
svg = image/svg+xml
|
||||
swf = application/x-shockwave-flash
|
||||
t = application/x-troff
|
||||
tar = application/x-tar
|
||||
tar.gz = application/x-gtar
|
||||
tcl = application/x-tcl
|
||||
tex = application/x-tex
|
||||
texi = application/x-texinfo
|
||||
texinfo = application/x-texinfo
|
||||
tgz = application/x-gtar
|
||||
tif = image/tiff
|
||||
tiff = image/tiff
|
||||
tr = application/x-troff
|
||||
tsv = text/tab-separated-values
|
||||
txt = text/plain
|
||||
ustar = application/x-ustar
|
||||
vcd = application/x-cdlink
|
||||
vrml = model/vrml
|
||||
vxml = application/voicexml+xml
|
||||
wav = audio/x-wav
|
||||
wbmp = image/vnd.wap.wbmp
|
||||
wml = text/vnd.wap.wml
|
||||
wmlc = application/vnd.wap.wmlc
|
||||
wmls = text/vnd.wap.wmlscript
|
||||
wmlsc = application/vnd.wap.wmlscriptc
|
||||
wrl = model/vrml
|
||||
wtls-ca-certificate = application/vnd.wap.wtls-ca-certificate
|
||||
xbm = image/x-xbitmap
|
||||
xht = application/xhtml+xml
|
||||
xhtml = application/xhtml+xml
|
||||
xls = application/vnd.ms-excel
|
||||
xml = application/xml
|
||||
xpm = image/x-xpixmap
|
||||
xsd = application/xml
|
||||
xsl = application/xml
|
||||
xslt = application/xslt+xml
|
||||
xul = application/vnd.mozilla.xul+xml
|
||||
xwd = image/x-xwindowdump
|
||||
xyz = chemical/x-xyz
|
||||
z = application/compress
|
||||
zip = application/zip
|
||||
@@ -1 +0,0 @@
|
||||
AbstractHandler: Jetty Handler.
|
||||
@@ -1,24 +0,0 @@
|
||||
ContextHandler: URI Context
|
||||
aliases: True if alias checking is performed on resource
|
||||
allowNullPathInfo: Checks if the /context is not redirected to /context/
|
||||
classPath: RO: The file classpath
|
||||
compactPath: True if URLs are compacted to replace the multiple '/'s with a single '/'
|
||||
connectorNames: Names and ports of accepted connectors
|
||||
contextAttributes: RO:MBean: Map of context attributes
|
||||
contextPath: URI prefix of context
|
||||
displayName: RO: Display name of the Context
|
||||
errorHandler: MObject: The error handler to use for the context
|
||||
initParams: Initial Parameter map for the context
|
||||
maxFormContentSize: The maximum content size
|
||||
removeContextAttribute(java.lang.String): MBean:ACTION: remove context attribute
|
||||
removeContextAttribute(java.lang.String)[0]: name: The attribute name
|
||||
resourceBase: Document root for the context
|
||||
setContextAttribute(java.lang.String,java.lang.Object): MBean:ACTION: Set context attribute
|
||||
setContextAttribute(java.lang.String,java.lang.Object)[0]: name: The attribute name
|
||||
setContextAttribute(java.lang.String,java.lang.Object)[1]: value: The attribute value
|
||||
setContextAttribute(java.lang.String,java.lang.String): MBean:ACTION: Set context attribute
|
||||
setContextAttribute(java.lang.String,java.lang.String)[0]: name: The attribute name
|
||||
setContextAttribute(java.lang.String,java.lang.String)[1]: value: The attribute value
|
||||
shutdown: False if this context is accepting new requests. True for graceful shutdown, which allows existing requests to complete
|
||||
virtualHosts: Virtual hosts accepted by the context
|
||||
welcomeFiles: Partial URIs of directory welcome files
|
||||
@@ -1,2 +0,0 @@
|
||||
ContextHandlerCollection: Context Handler Collection
|
||||
mapContexts(): Update the mapping of context path to context
|
||||
@@ -1,2 +0,0 @@
|
||||
HandlerCollection: Handler of multiple Handlers
|
||||
handlers: MObject:Wrapped handlers
|
||||
@@ -1,2 +0,0 @@
|
||||
HandlerWrapper: Handler wrapping another Handler
|
||||
handler: MObject:Wrapped handler
|
||||
@@ -1,28 +0,0 @@
|
||||
StatisticsHandler: Request Statistics gathering
|
||||
statsOnMs: Time in milliseconds stats have been collected for.
|
||||
statsReset(): Resets statistics.
|
||||
requests: Number of requests since statsReset() called.
|
||||
requestsActive: Number of requests currently active since statsReset() called.
|
||||
requestsActiveMax: Maximum number of active requests since statsReset() called.
|
||||
requestTimeMax: Maximum time in milliseconds of request handling since statsReset() called.
|
||||
requestTimeTotal: Total time in milliseconds of all request handling since statsReset() called.
|
||||
requestTimeMean: Mean of time in milliseconds of request handling since statsReset() called.
|
||||
requestTimeStdDev: Standard deviation of time in milliseconds of request handling since statsReset() called.
|
||||
dispatched: Number of dispatches since statsReset() called.
|
||||
dispatchedActive: Number of dispatches currently active since statsReset() called.
|
||||
dispatchedActiveMax: Maximum number of active dispatches since statsReset() called.
|
||||
dispatchedTimeMax: Maximum time in milliseconds of dispatched handling since statsReset() called.
|
||||
dispatchedTimeTotal: Total time in milliseconds of all dispatched handling since statsReset() called.
|
||||
dispatchedTimeMean: Mean of time in milliseconds of dispatch handling since statsReset() called.
|
||||
dispatchedTimeStdDev: Standard deviation of time in milliseconds of dispatch handling since statsReset() called.
|
||||
suspends: Number of requests suspended since statsReset() called.
|
||||
suspendsActive: Number of dispatches currently active since statsReset() called.
|
||||
suspendsActiveMax: Maximum number of active dispatches since statsReset() called.
|
||||
resumes: Number of requests resumed since statsReset() called.
|
||||
expires: Number of requests expired since statsReset() called.
|
||||
responses1xx: Number of responses with a 1xx status since statsReset() called.
|
||||
responses2xx: Number of responses with a 2xx status since statsReset() called.
|
||||
responses3xx: Number of responses with a 3xx status since statsReset() called.
|
||||
responses4xx: Number of responses with a 4xx status since statsReset() called.
|
||||
responses5xx: Number of responses with a 5xx status since statsReset() called.
|
||||
responsesBytesTotal: Total number of bytes of all responses since statsReset() called.
|
||||
@@ -1,19 +0,0 @@
|
||||
AbstractConnector: Abstract implementation of the Connector interface.
|
||||
acceptors: The number of acceptor threads.
|
||||
acceptQueueSize: The size of the accept queue.
|
||||
acceptorPriorityOffset: Priority offset of the acceptor threads. The priority is adjusted by this amount to either favor the acceptance of new threads and newly active connections or to favor the handling of already dispatched connections.
|
||||
forwardedForHeader: The header name for forwarded for (default x-forwarded-for).
|
||||
forwardedHostHeader: The header name for forwarded hosts (default x-forwarded-host)
|
||||
forwardedServerHeader: The header name for forwarded server (default x-forwarded-server)
|
||||
forwarded: Whether reverse proxy handling is on. True if this connector is checking the forwarded for/host/server headers.
|
||||
host: Host name of the server.
|
||||
hostHeader: Forced value for the host header. Only used if forwarded is true.
|
||||
soLingerTime: Enable or disable SO_LINGER with the specified linger time in seconds.
|
||||
reuseAddress: Whether the server socket will be opened in SO_REUSEADDR mode.
|
||||
name: Name of the connector.
|
||||
resolveNames: Whether or not to use DNS when handling forwards.
|
||||
confidentialPort: Port to use for confidential redirections.
|
||||
confidentialScheme: Scheme to use for confidential redirections.
|
||||
integralPort: Port to use for integral redirections.
|
||||
integralScheme: Scheme to use for integral redirections.
|
||||
lowResourcesMaxIdleTime: The period in ms that a connection may be idle when the connector has low resources, before it is closed.
|
||||
@@ -1,29 +0,0 @@
|
||||
Connector: HTTP Connector.
|
||||
server: MObject:RO:The server for this connector
|
||||
requestHeaderSize: The size of a request header buffer
|
||||
requestBufferSize: The size of a request content buffer
|
||||
responseHeaderSize: The size of a response header buffer
|
||||
responseBufferSize: The size of a response content buffer
|
||||
integralPort: Port to use for integral redirections
|
||||
integralScheme: Scheme to use for integral redirections
|
||||
confidentialPort: Port to use for confidential redirections
|
||||
confidentialScheme: Scheme to use for confidential redirections
|
||||
host: Host name to accept connections on
|
||||
port: TCP/IP port to accept connections on
|
||||
maxIdleTime: Maximum time in ms that a connection can be idle before being closed
|
||||
statsOn: True if statistics collection is turned on.
|
||||
statsOnMs: Time in milliseconds stats have been collected for.
|
||||
statsReset(): Reset statistics.
|
||||
connections: Number of connections accepted by the server since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsOpen: Number of connections currently open that were opened since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsOpenMax: Maximum number of connections opened simultaneously since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationMean: Mean duration in milliseconds of open connections since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationStdDev: Standard deviation of duration in milliseconds of an open connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationMax: Maximum duration in milliseconds of an open connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsDurationTotal: Total duration in milliseconds of all open connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsRequestsMean: Mean number of requests per connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsRequestsStdDev: Standard deviation of number of requests per connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
connectionsRequestsMax: Maximum number of requests per connection since statsReset() called. Undefined if setStatsOn(false).
|
||||
requests: Number of requests since statsReset() called. Undefined if setStatsOn(false).
|
||||
open(): Open the listening port
|
||||
close(): Close the listening port (but allow existing connections to continue for graceful shutdown)
|
||||
@@ -1,3 +0,0 @@
|
||||
Handler: Jetty Handler.
|
||||
server: MObject:RO:The Jetty server for this handler
|
||||
destroy(): destroy associated resources (eg MBean)
|
||||
@@ -1,3 +0,0 @@
|
||||
HandlerContainer: Handler of multiple Handlers
|
||||
handlers: MObject:RO:Handlers in this container
|
||||
childHandlers: MObject:RO:All contained handlers
|
||||
@@ -1,6 +0,0 @@
|
||||
NCSARequestLog : NCSA standard format request log
|
||||
filename : Filename of log
|
||||
retainDays : Number of days that the log files are kept
|
||||
append : Existing log files are appended to the new one
|
||||
extended : Use the extended NCSA format
|
||||
LogTimeZone : The timezone
|
||||
@@ -1,9 +0,0 @@
|
||||
Server: Jetty HTTP Servlet server
|
||||
connectors: MObject:HTTP Connectors for this server
|
||||
version: RO: The version of this server
|
||||
sendServerVersion: If true include the server version in HTTP headers
|
||||
threadPool: MObject:The server Thread Pool
|
||||
contexts: MMBean:RO:The contexts of this server
|
||||
startupTime: MBean:RO:The startup time, in milliseconds, since January 1st 1970
|
||||
dumpAfterStart: RW:Dump state to stderr after start
|
||||
dumpBeforeStop: RW:Dump state to stderr before stop
|
||||
@@ -1,2 +0,0 @@
|
||||
SelectChannelConnector: HTTP connector using NIO ByteChannels and Selectors
|
||||
lowResourcesConnections: The number of connections, which if exceeded represents low resources
|
||||
@@ -1,19 +0,0 @@
|
||||
AbstractSessionManager: Abstract Session Manager
|
||||
httpOnly: True if cookies use the http only flag
|
||||
idManager: MObject:RO:The ID Manager instance
|
||||
maxCookieAge: if greater than zero, the time in seconds a session cookie will last for
|
||||
maxInactiveInterval: default maximum time in seconds a session may be idle
|
||||
refreshCookieAge: The time in seconds after which a session cookie is re-set
|
||||
secureCookies: If true, the secure cookie flag is set on session cookies
|
||||
sessionCookie: The set session cookie
|
||||
sessionDomain: The domain of the session cookie or null for the default
|
||||
sessionPath: The path of the session cookie or null for the default
|
||||
sessionsTotal: The total number of sessions
|
||||
sessionIdPathParameterName: The name to use for URL session tracking
|
||||
statsReset(): Reset statistics
|
||||
sessions: Current instantaneous number of sessions
|
||||
sessionsMax: Maximum number of simultaneous sessions since statsReset() was called
|
||||
sessionTimeMax: Maximum amount of time in seconds session remained valid since statsReset() was called
|
||||
sessionTimeTotal: Total amount of time in seconds sessions remained valid since statsReset() was called
|
||||
sessionTimeMean: Mean amount of time in seconds a session remained valid since statsReset() was called
|
||||
sessionTimeStdDev: Standard deviation of amount of time in seconds a session remained valid since statsReset() was called
|
||||
@@ -1,4 +0,0 @@
|
||||
FilterMapping: Filter Mapping
|
||||
filterName: RO:Filter Name
|
||||
pathSpecs: RO:URL patterns
|
||||
servletNames: RO:Servlet Names
|
||||
@@ -1,5 +0,0 @@
|
||||
Holder: Holder
|
||||
name: RO:Name
|
||||
displayName: RO:Display Name
|
||||
className: RO:Class Name
|
||||
initParameters: RO:Initial parameters
|
||||
@@ -1,4 +0,0 @@
|
||||
ServletContextHandler: Servlet Context Handler
|
||||
securityHandler: MObject: The context's security handler
|
||||
servletHandler: MObject: The context's servlet handler
|
||||
sessionHandler: MObject: The context's session handler
|
||||
@@ -1,5 +0,0 @@
|
||||
ServletHandler: Servlet Handler
|
||||
servlets: MObject:RO:Servlets
|
||||
servletMappings: MObject:RO:Mappings of servlets
|
||||
filters: MObject:RO:Filters
|
||||
filterMappings: MObject:RO:Mappings of filters
|
||||
@@ -1,4 +0,0 @@
|
||||
ServletHolder: Servlet Holder
|
||||
initOrder: Initialization order
|
||||
runAsRole: Role to run servlet as
|
||||
forcedPath: Forced servlet path
|
||||
@@ -1,3 +0,0 @@
|
||||
ServletMapping: Servlet Mapping
|
||||
servletName: RO:Servlet Name
|
||||
pathSpecs: RO:URL patterns
|
||||
@@ -1,354 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:avt="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
|
||||
<!--
|
||||
TODO: This schema was copied from AVTransport1.0.pdf.
|
||||
Apparently the UPnP clowns couldn't agree if it is *Metadata or *MetaData.
|
||||
So I've made changes and now all elements are called *MetaData, like the
|
||||
state variables in the spec. That _will_ break if someone really uses
|
||||
the original schema.
|
||||
-->
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Schema for UPnP A/V AVTransport Service events, version 0.1(sic!)
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'Event' is the root element of AVTransport event document fragments.
|
||||
'InstanceID' is the only valid child of 'Event'.
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Event">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>Event is the root
|
||||
element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="avt:InstanceID"/>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'InstanceID' elements identify an individual event instance.
|
||||
|
||||
============================================================-->
|
||||
<xsd:group name="allowed-under-InstanceID">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
This group defines the elements allowed under the InstanceID element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice>
|
||||
<xsd:element ref="avt:TransportState"/>
|
||||
<xsd:element ref="avt:TransportStatus"/>
|
||||
<xsd:element ref="avt:PlaybackStorageMedium"/>
|
||||
<xsd:element ref="avt:RecordStorageMedium"/>
|
||||
<xsd:element ref="avt:PossiblePlaybackStorageMedia"/>
|
||||
<xsd:element ref="avt:PossibleRecordStorageMedia"/>
|
||||
<xsd:element ref="avt:CurrentPlayMode"/>
|
||||
<xsd:element ref="avt:TransportPlaySpeed"/>
|
||||
<xsd:element ref="avt:RecordMediumWriteStatus"/>
|
||||
<xsd:element ref="avt:CurrentRecordQualityMode"/>
|
||||
<xsd:element ref="avt:PossibleRecordQualityModes"/>
|
||||
<xsd:element ref="avt:NumberOfTracks"/>
|
||||
<xsd:element ref="avt:CurrentTransportActions"/>
|
||||
<xsd:element ref="avt:CurrentTrack"/>
|
||||
<xsd:element ref="avt:CurrentTrackDuration"/>
|
||||
<xsd:element ref="avt:CurrentMediaDuration"/>
|
||||
<xsd:element ref="avt:CurrentTrackURI"/>
|
||||
<xsd:element ref="avt:CurrentTrackMetaData"/>
|
||||
<xsd:element ref="avt:AVTransportURI"/>
|
||||
<xsd:element ref="avt:AVTransportURIMetaData"/>
|
||||
<xsd:element ref="avt:NextAVTransportURI"/>
|
||||
<xsd:element ref="avt:NextAVTransportURIMetaData"/>
|
||||
</xsd:choice>
|
||||
</xsd:group>
|
||||
<xsd:element name="InstanceID">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
InstanceID elements identify an individual event instance.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:group ref="avt:allowed-under-InstanceID"/>
|
||||
</xsd:choice>
|
||||
<!-- TODO: That attribute was missing in the spec! -->
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportState
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportState">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="STOPPED"/>
|
||||
<xsd:enumeration value="PLAYING"/>
|
||||
<xsd:enumeration value="TRANSITIONING"/>
|
||||
<xsd:enumeration value="PAUSED_PLAYBACK"/>
|
||||
<xsd:enumeration value="PAUSED_RECORDING"/>
|
||||
<xsd:enumeration value="RECORDING"/>
|
||||
<xsd:enumeration value="NO_MEDIA_PRESENT"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="OK"/>
|
||||
<xsd:enumeration value="ERROR_OCCURRED"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PlaybackStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PlaybackStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossiblePlaybackStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossiblePlaybackStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentPlayMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentPlayMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportPlaySpeed
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportPlaySpeed">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordMediumWriteStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordMediumWriteStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentRecordQualityMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentRecordQualityMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordQualityModes (!!! TYPO IN SPEC !!!)
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordQualityModes">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NumberOfTracks
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NumberOfTracks">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrack
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrack">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentMediaDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentMediaDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTransportActions
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTransportActions">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,403 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:avt="urn:schemas-upnp-org:metadata-1-0/AVT/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
|
||||
<!--
|
||||
TODO: This schema was copied from AVTransport1.0.pdf.
|
||||
Apparently the UPnP clowns couldn't agree if it is *Metadata or *MetaData.
|
||||
So I've made changes and now all elements are called *MetaData, like the
|
||||
state variables in the spec. That _will_ break if someone really uses
|
||||
the original schema.
|
||||
-->
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Schema for UPnP A/V AVTransport Service events, version 0.1(sic!)
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'Event' is the root element of AVTransport event document fragments.
|
||||
'InstanceID' is the only valid child of 'Event'.
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Event">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>Event is the root
|
||||
element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="avt:InstanceID"/>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'InstanceID' elements identify an individual event instance.
|
||||
|
||||
============================================================-->
|
||||
<xsd:group name="allowed-under-InstanceID">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
This group defines the elements allowed under the InstanceID element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice>
|
||||
<xsd:element ref="avt:TransportState"/>
|
||||
<xsd:element ref="avt:TransportStatus"/>
|
||||
<xsd:element ref="avt:PlaybackStorageMedium"/>
|
||||
<xsd:element ref="avt:RecordStorageMedium"/>
|
||||
<xsd:element ref="avt:PossiblePlaybackStorageMedia"/>
|
||||
<xsd:element ref="avt:PossibleRecordStorageMedia"/>
|
||||
<xsd:element ref="avt:CurrentPlayMode"/>
|
||||
<xsd:element ref="avt:TransportPlaySpeed"/>
|
||||
<xsd:element ref="avt:RecordMediumWriteStatus"/>
|
||||
<xsd:element ref="avt:CurrentRecordQualityMode"/>
|
||||
<xsd:element ref="avt:PossibleRecordQualityModes"/>
|
||||
<xsd:element ref="avt:NumberOfTracks"/>
|
||||
<xsd:element ref="avt:CurrentTransportActions"/>
|
||||
<xsd:element ref="avt:CurrentTrack"/>
|
||||
<xsd:element ref="avt:CurrentTrackDuration"/>
|
||||
<xsd:element ref="avt:CurrentMediaDuration"/>
|
||||
<xsd:element ref="avt:CurrentTrackURI"/>
|
||||
<xsd:element ref="avt:CurrentTrackMetaData"/>
|
||||
<xsd:element ref="avt:AVTransportURI"/>
|
||||
<xsd:element ref="avt:AVTransportURIMetaData"/>
|
||||
<xsd:element ref="avt:NextAVTransportURI"/>
|
||||
<xsd:element ref="avt:NextAVTransportURIMetaData"/>
|
||||
<xsd:element ref="avt:RelativeTimePosition"/>
|
||||
<xsd:element ref="avt:AbsoluteTimePosition"/>
|
||||
<xsd:element ref="avt:RelativeCounterPosition"/>
|
||||
<xsd:element ref="avt:AbsoluteCounterPosition"/>
|
||||
</xsd:choice>
|
||||
</xsd:group>
|
||||
<xsd:element name="InstanceID">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
InstanceID elements identify an individual event instance.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:group ref="avt:allowed-under-InstanceID"/>
|
||||
</xsd:choice>
|
||||
<!-- TODO: That attribute was missing in the spec! -->
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportState
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportState">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="STOPPED"/>
|
||||
<xsd:enumeration value="PLAYING"/>
|
||||
<xsd:enumeration value="TRANSITIONING"/>
|
||||
<xsd:enumeration value="PAUSED_PLAYBACK"/>
|
||||
<xsd:enumeration value="PAUSED_RECORDING"/>
|
||||
<xsd:enumeration value="RECORDING"/>
|
||||
<xsd:enumeration value="NO_MEDIA_PRESENT"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" use="required">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="OK"/>
|
||||
<xsd:enumeration value="ERROR_OCCURRED"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PlaybackStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PlaybackStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordStorageMedium
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordStorageMedium">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossiblePlaybackStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossiblePlaybackStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordStorageMedia
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordStorageMedia">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentPlayMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentPlayMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
TransportPlaySpeed
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="TransportPlaySpeed">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RecordMediumWriteStatus
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RecordMediumWriteStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentRecordQualityMode
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentRecordQualityMode">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PossibleRecordQualityModes (!!! TYPO IN SPEC !!!)
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PossibleRecordQualityModes">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NumberOfTracks
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NumberOfTracks">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrack
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrack">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentMediaDuration
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentMediaDuration">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTrackURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTrackURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURI
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURI">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
NextAVTransportURIMetaData
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="NextAVTransportURIMetaData">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
CurrentTransportActions
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="CurrentTransportActions">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RelativeTimePosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RelativeTimePosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AbsoluteTimePosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AbsoluteTimePosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
RelativeCounterPosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RelativeCounterPosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
AbsoluteTimePosition
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="AbsoluteCounterPosition">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,60 +0,0 @@
|
||||
<xsd:schema
|
||||
targetNamespace="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0"
|
||||
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
|
||||
jaxb:version="2.1">
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:schemaBindings>
|
||||
<jaxb:package name="org.fourthline.cling.support.contentdirectory.descriptor.dc"/>
|
||||
</jaxb:schemaBindings>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Simple DC XML Schema, 2002-10-09
|
||||
by Pete Johnston (p.johnston@ukoln.ac.uk),
|
||||
Carl Lagoze (lagoze@cs.cornell.edu), Andy Powell (a.powell@ukoln.ac.uk),
|
||||
Herbert Van de Sompel (hvdsomp@yahoo.com).
|
||||
|
||||
This schema defines terms for Simple Dublin Core, i.e. the 15
|
||||
elements from the http://purl.org/dc/elements/1.1/ namespace, with
|
||||
no use of encoding schemes or element refinements.
|
||||
|
||||
Default content type for all elements is xsd:string with xml:lang attribute available.
|
||||
|
||||
Supercedes version of 2002-03-12.
|
||||
Amended to remove namespace declaration for http://www.w3.org/XML/1998/namespace namespace,
|
||||
and to reference lang attribute via built-in xml: namespace prefix.
|
||||
xsd:appinfo also removed.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:element name="title" type="xsd:string"/>
|
||||
<xsd:element name="creator" type="xsd:string"/>
|
||||
<xsd:element name="description" type="xsd:string"/>
|
||||
<xsd:element name="publisher" type="xsd:string"/>
|
||||
<xsd:element name="contributor" type="xsd:string"/>
|
||||
<xsd:element name="date" type="xsd:string"/>
|
||||
<xsd:element name="language" type="xsd:string"/>
|
||||
<xsd:element name="relation" type="xsd:string"/>
|
||||
<xsd:element name="rights" type="xsd:string"/>
|
||||
|
||||
<!-- TODO
|
||||
<xsd:complexType name="elementType">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute ref="xml:lang" use="optional"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
-->
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
@@ -1,298 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
|
||||
xmlns:didl-lite="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
|
||||
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified" version="1.0"
|
||||
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
|
||||
jaxb:version="2.1">
|
||||
<!--
|
||||
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
|
||||
jaxb:extensionBindingPrefixes="xjc"
|
||||
-->
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:schemaBindings>
|
||||
<jaxb:package name="org.fourthline.cling.support.contentdirectory.descriptor.didl"/>
|
||||
</jaxb:schemaBindings>
|
||||
<jaxb:globalBindings generateElementClass="true" typesafeEnumMaxMembers="100">
|
||||
<!--
|
||||
<xjc:superClass name="org.fourthline.cling.support.didl.DidlObject"/>
|
||||
-->
|
||||
</jaxb:globalBindings>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
DIDL-Lite schema for UPnP A/V Content Directory Services, version 1.0.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:import namespace="urn:schemas-upnp-org:metadata-1-0/upnp/" schemaLocation="upnp-cds-1.0.xsd"/>
|
||||
<xsd:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="dc-elements-1.1.xsd"/>
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
|
||||
<xsd:element name="DIDL-Lite">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
'DIDL-Lite' is the root element of DIDL-Lite documents.
|
||||
<p>
|
||||
Attributes:
|
||||
<p>
|
||||
xml:lang use: optional
|
||||
<p>
|
||||
The 'xml:lang' attribute may optionally be used to specify the language of text
|
||||
in the DIDL-Lite document.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:property name="children"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
<xsd:element ref="didl-lite:item"/>
|
||||
<xsd:element ref="didl-lite:container"/>
|
||||
<xsd:element ref="didl-lite:desc"/>
|
||||
</xsd:choice>
|
||||
<!-- TODO
|
||||
<xsd:attribute ref="xml:lang" use="optional"/>
|
||||
-->
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="container">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A 'container' element may contain any number of
|
||||
<p>
|
||||
1. Dublin Core,<br/>
|
||||
2. upnp,<br/>
|
||||
3. res,<br/>
|
||||
4. ref,<br/>
|
||||
5 item,<br/>
|
||||
6. container<br/>
|
||||
and 7. desc elements.<br/>
|
||||
<p>
|
||||
In all cases, the first element in each container child element sequence is
|
||||
required to be "dc:title". The 'upnp:class' element must also appear under
|
||||
container. Each container is required to specify a value for the 'id'
|
||||
and 'parentID' attributes. Each container is also required to specify a value for
|
||||
the 'restricted' attribute (true, false, 1, 0). When restricted="true", the ability to
|
||||
change or delete the container is restricted.
|
||||
<p>
|
||||
Other optional container element attributes are 'parentID', 'childCount',
|
||||
and 'searchable'.
|
||||
<p>
|
||||
Other optional attributes are 'parentID' and 'childCount'.
|
||||
<p>
|
||||
Attributes:
|
||||
<p>
|
||||
id type: string use: required<br/>
|
||||
parentID type: string use: required<br/>
|
||||
childCount type: int use: optional<br/>
|
||||
restricted type: boolean use: required<br/>
|
||||
<p>
|
||||
The equivalent MPEG21 DIDL element is 'CONTAINER'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="dc:title"/>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:property name="children"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
<xsd:any namespace="urn:schemas-upnp-org:metadata-1-0/upnp/" processContents="strict"/>
|
||||
<xsd:any namespace="http://purl.org/dc/elements/1.1/" processContents="strict"/>
|
||||
<xsd:element ref="didl-lite:desc"/>
|
||||
<xsd:element ref="didl-lite:item"/>
|
||||
<xsd:element ref="didl-lite:res"/>
|
||||
|
||||
<!--
|
||||
Section 2.8.3: Incremental navigation i.e. the full hierarchy is never returned
|
||||
in one call since this is likely to flood the resources available to the control
|
||||
point (memory, network bandwidth, etc.).
|
||||
|
||||
So... why is this recursive then?
|
||||
-->
|
||||
<xsd:element ref="didl-lite:container"/>
|
||||
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="parentID" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="childCount" type="xsd:int"/>
|
||||
<xsd:attribute name="restricted" type="xsd:boolean" use="required"/>
|
||||
<xsd:attribute name="searchable" type="xsd:boolean"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="item">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
An 'item' element contains any number of
|
||||
<p/>
|
||||
1. Dublin Core,<br/>
|
||||
2. upnp,<br/>
|
||||
3. res, and<br/>
|
||||
4. desc elements.<br/>
|
||||
<p/>
|
||||
In all cases, the first element in each item child element sequence is required
|
||||
to be "dc:title". The 'upnp:class' element must also appear under item. Each item
|
||||
is additionally required to specify a value for the 'id' attribute. If the item
|
||||
is actually a reference to another item, a value for 'refID' is specified.
|
||||
Each item is also required to specify a value for the 'parentID attribute, as well
|
||||
as the 'restricted' attribute (true, false, 1, 0). When restricted="true", the
|
||||
ability to change or delete the item is restricted.
|
||||
<p/>
|
||||
Attributes:
|
||||
<p/>
|
||||
id type: string use: required<br/>
|
||||
parentID type: string use: required<br/>
|
||||
refID type: string use: optional<br/>
|
||||
restricted type: boolean use: required<br/>
|
||||
<p/>
|
||||
The equivalent MPEG21 DIDL element is 'ITEM'.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="dc:title"/>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:property name="children"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
<xsd:any namespace="urn:schemas-upnp-org:metadata-1-0/upnp/" processContents="strict"/>
|
||||
<xsd:any namespace="http://purl.org/dc/elements/1.1/" processContents="strict"/>
|
||||
<xsd:element ref="didl-lite:desc"/>
|
||||
<xsd:element ref="didl-lite:res"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="refID" type="xsd:string"/>
|
||||
<xsd:attribute name="parentID" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="restricted" type="xsd:boolean" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="res">
|
||||
<xsd:complexType mixed="true">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A 'res' element indentifies a resource. A resource is typically some type of a
|
||||
binary asset, such as photo, song, video, etc. A 'res' element contains a uri
|
||||
that identifies the resource.
|
||||
<p/>
|
||||
Attributes:
|
||||
<p/>
|
||||
'importUri' type: anyURI use: optional<br/>
|
||||
The 'importUri' attribute is the optional uri locator for resource update.
|
||||
<p/>
|
||||
'protocolInfo' type: string use: required<br/>
|
||||
The 'protocolInfo' attribute is a string that identifies the streaming or
|
||||
transport protocol for transmitting the resource. If not present then the
|
||||
content has not yet been fully imported by the ContentDirectory and is not yet
|
||||
accesible for playback purposes.
|
||||
<p/>
|
||||
'size' type: unsignedLong use: optional<br/>
|
||||
The size, in bytes, of the resource.
|
||||
<p/>
|
||||
'duration' type: string use: optional<br/>
|
||||
The 'duration' attribute identifies the duration of the playback of the resource, at normal speed.
|
||||
The form of the duration string is: H*:MM:SS.F*, or H*:MM:SS.F0/F1 where :
|
||||
H* means any number of digits (including no digits) to indicate elapsed hours
|
||||
MM means exactly 2 digits to indicate minutes (00 to 59)
|
||||
SS means exactly 2 digits to indicate seconds (00 to 59)
|
||||
F* means any number of digits (including no digits) to indicate fractions of seconds
|
||||
F0/F1 means a fraction, with F0 and F1 at least one digit long, and F0 < F1
|
||||
The string may be preceded by an optional + or - sign, and the decimal point itself may
|
||||
be omitted if there are no fractional second digits.
|
||||
<p/>
|
||||
'bitrate' type: unsignedInt use: optional<br/>
|
||||
The bitrate in bytes/second of the resource.
|
||||
<p/>
|
||||
'sampleFrequency' type: unsignedInt use: optional<br/>
|
||||
The sample frequency of the resource in Hz
|
||||
<p/>
|
||||
'bitsPerSample' type: unsignedInt use: optional<br/>
|
||||
The bits per sample of the resource.
|
||||
<p/>
|
||||
'nrAudioChannels' type: unsignedInt use: optional<br/>
|
||||
Number of audio channels of the resource, e.g. 1 for mono, 2 for stereo, 6 for Dolby surround, etc.
|
||||
<p/>
|
||||
'resolution' type: pattern-string use: optional<br/>
|
||||
X*Y resolution of the resource (image or video). The string pattern is restricted to strings of the
|
||||
form: [0-9]+x[0-9]+ (one or more digits,'x', followed by one or more digits).
|
||||
<p/>
|
||||
'colorDepth' type: unsignedInt use: optional<br/>
|
||||
The color depth in bits of the resource (image or video).
|
||||
<p/>
|
||||
'protection' type: string use: optional<br/>
|
||||
Some statement of the protection type of the resource (not standardized).
|
||||
<p/>
|
||||
The equivalent MPEG21 DIDL element is 'RESOURCE'.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="importUri" type="xsd:anyURI"/>
|
||||
<xsd:attribute name="protocolInfo" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="size" type="xsd:unsignedLong"/>
|
||||
<xsd:attribute name="duration" type="xsd:string"/>
|
||||
<xsd:attribute name="bitrate" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="sampleFrequency" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="bitsPerSample" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="nrAudioChannels" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="colorDepth" type="xsd:unsignedInt"/>
|
||||
<xsd:attribute name="protection" type="xsd:string"/>
|
||||
<xsd:attribute name="resolution">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[0-9]+x[0-9]+"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="desc">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A 'desc' element identifies a descriptor. A descriptor is intended to contain a block of metadata. A
|
||||
bio
|
||||
of a music artist is an example use of 'desc'. A 'desc' element may possess child elements from any
|
||||
namespace except the DIDL-Lite namespace. Values for 'id' and 'nameSpace' is required. An optional
|
||||
'type' attribute allows designation of the metadata type, e.g. 'ratings', 'rights', etc.
|
||||
|
||||
Attributes:
|
||||
'id' type: string use: optional
|
||||
'name' type: string use: optional
|
||||
'nameSpace' type: uri use: optional
|
||||
|
||||
The equivalent MPEG21 DIDL element is 'DESCRIPTOR'.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:sequence>
|
||||
<xsd:any namespace="##other"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="type" type="xsd:string"/>
|
||||
<xsd:attribute name="nameSpace" type="xsd:anyURI" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
@@ -1,225 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema
|
||||
targetNamespace="urn:schemas-upnp-org:metadata-1-0/upnp/"
|
||||
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0"
|
||||
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
|
||||
jaxb:version="2.1">
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:schemaBindings>
|
||||
<jaxb:package name="org.fourthline.cling.support.contentdirectory.descriptor.upnp"/>
|
||||
</jaxb:schemaBindings>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
UPnP Content Directory Service 1.0 schema, derived from the crude examples in the PDF document.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:element name="class">
|
||||
<xsd:complexType mixed="true">
|
||||
<!-- TODO: That causes weird namespace errors in marshalled XML output...
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:class name="Clazz"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
-->
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="name" type="xsd:string" use="optional"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="searchClass">
|
||||
<xsd:complexType mixed="true">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="name" type="xsd:string" use="optional"/>
|
||||
<xsd:attribute name="includeDerived" type="xsd:boolean" use="required"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="createClass">
|
||||
<xsd:complexType mixed="true">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string">
|
||||
<xsd:attribute name="name" type="xsd:string" use="optional"/>
|
||||
<xsd:attribute name="includeDerived" type="xsd:boolean" use="required"/>
|
||||
</xsd:extension>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="writeStatus" type="upnp:writeStatusValue"/>
|
||||
<xsd:simpleType name="writeStatusValue">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="WRITABLE"/>
|
||||
<xsd:enumeration value="PROTECTED"/>
|
||||
<xsd:enumeration value="NOT_WRITABLE"/>
|
||||
<xsd:enumeration value="UNKNOWN"/>
|
||||
<xsd:enumeration value="MIXED"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="genre" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Name of the genre to which an object belongs.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="album" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Title of the album to which the item belongs.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="playlist" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Name of a playlist to which the item belongs.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageUsed" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Combined space, in bytes, used by all the objects held in the storage
|
||||
represented by the container.
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageTotal" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Total capacity, in bytes, of the storage represented by the
|
||||
container.
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageFree" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Total free capacity, in bytes, of the storage represented by the container
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageMaxPartition" type="xsd:long" default="-1">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Largest amount of space, in bytes, available for storing a single resource
|
||||
in the container.
|
||||
Value –1 is reserved to indicate that the capacity is 'unknown'
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="storageMedium" type="upnp:storageMediumValue">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Indicates the type of storage medium used for the content. Potentially useful
|
||||
for user-interface purposes.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:simpleType name="storageMediumValue">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="UNKNOWN"/>
|
||||
<xsd:enumeration value="DV"/>
|
||||
<xsd:enumeration value="MINI-DV"/>
|
||||
<xsd:enumeration value="VHS"/>
|
||||
<xsd:enumeration value="W-VHS"/>
|
||||
<xsd:enumeration value="S-VHS"/>
|
||||
<xsd:enumeration value="D-VHS"/>
|
||||
<xsd:enumeration value="VHSC"/>
|
||||
<xsd:enumeration value="VIDEO8"/>
|
||||
<xsd:enumeration value="HI8"/>
|
||||
<xsd:enumeration value="CD-ROM"/>
|
||||
<xsd:enumeration value="CD-DA"/>
|
||||
<xsd:enumeration value="CD-R"/>
|
||||
<xsd:enumeration value="CD-RW"/>
|
||||
<xsd:enumeration value="VIDEO-CD"/>
|
||||
<xsd:enumeration value="SACD"/>
|
||||
<xsd:enumeration value="MD-AUDIO"/>
|
||||
<xsd:enumeration value="MD-PICTURE"/>
|
||||
<xsd:enumeration value="DVD-ROM"/>
|
||||
<xsd:enumeration value="DVD-VIDEO"/>
|
||||
<xsd:enumeration value="DVD-R"/>
|
||||
<xsd:enumeration value="DVD+RW">
|
||||
<xsd:annotation>
|
||||
<xsd:appinfo>
|
||||
<jaxb:typesafeEnumMember name="DVD_PLUS_RW"/>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
</xsd:enumeration>
|
||||
<xsd:enumeration value="DVD-RW"/>
|
||||
<xsd:enumeration value="DVD-RAM"/>
|
||||
<xsd:enumeration value="DVD-AUDIO"/>
|
||||
<xsd:enumeration value="DAT"/>
|
||||
<xsd:enumeration value="LD"/>
|
||||
<xsd:enumeration value="HDD"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="longDescription" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
A few lines of description of the content item (longer than
|
||||
DublinCore's description element).
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="icon" type="xsd:anyURI">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Some icon that a control point can use in its UI to display the
|
||||
content, e.g. a CNN logo for a Tuner channel. Recommend same format
|
||||
as the icon element in the UPnP device description document schema.
|
||||
(PNG). Values must be properly escaped URIs as described in [RFC 2396].
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="region" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Some identification of the region, associated with the
|
||||
"source" of the object, e.g. "US", "Latin America",
|
||||
"Seattlle".
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="rating" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Rating of the object's resource, for 'parental control' filtering purposes,
|
||||
such as "R", "PG-13", "X", etc.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,284 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
TODO: UPNP VIOLATION: RenderingControl 1.0 specification schema says "/RCS/" but examples
|
||||
in the spec say "/AVT_RCS". We had "/AVT_RCS", then "/RCS", now we have "/RCS/", let's
|
||||
see who complains.
|
||||
-->
|
||||
<xsd:schema targetNamespace="urn:schemas-upnp-org:metadata-1-0/RCS/"
|
||||
xmlns:rcs="urn:schemas-upnp-org:metadata-1-0/RCS/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Schema for UPnP A/V Rendering Control Service events, version 0.1 (sic!)
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'Event' is the root element of Rendering Control event document fragments.
|
||||
'InstanceID' is the only valid child of 'Event'.
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Event">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Event is the root element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="rcs:InstanceID"/>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
'InstanceID' elements identify an individual event instance.
|
||||
|
||||
============================================================-->
|
||||
<xsd:group name="allowed-under-InstanceID">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
This group defines the elements allowed under the InstanceID element
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice>
|
||||
<xsd:element ref="rcs:PresetNameList"/>
|
||||
<xsd:element ref="rcs:Brightness"/>
|
||||
<xsd:element ref="rcs:Contrast"/>
|
||||
<xsd:element ref="rcs:Sharpness"/>
|
||||
<xsd:element ref="rcs:RedVideoGain"/>
|
||||
<xsd:element ref="rcs:GreenVideoGain"/>
|
||||
<xsd:element ref="rcs:BlueVideoGain"/>
|
||||
<xsd:element ref="rcs:RedVideoBlackLevel"/>
|
||||
<xsd:element ref="rcs:GreenVideoBlackLevel"/>
|
||||
<xsd:element ref="rcs:BlueVideoBlackLevel"/>
|
||||
<xsd:element ref="rcs:ColorTemperature"/>
|
||||
<xsd:element ref="rcs:HorizontalKeystone"/>
|
||||
<xsd:element ref="rcs:VerticalKeystone"/>
|
||||
<xsd:element ref="rcs:Mute"/>
|
||||
<xsd:element ref="rcs:Volume"/>
|
||||
<xsd:element ref="rcs:VolumeDB"/>
|
||||
<xsd:element ref="rcs:Loudness"/>
|
||||
</xsd:choice>
|
||||
</xsd:group>
|
||||
|
||||
<xsd:element name="InstanceID">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
InstanceID elements identify an individual event instance.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:group ref="rcs:allowed-under-InstanceID"/>
|
||||
</xsd:choice>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
PresetNameList
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="PresetNameList">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
Brightness
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Brightness">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<!--============================================================
|
||||
|
||||
Contrast
|
||||
|
||||
============================================================-->
|
||||
|
||||
<xsd:element name="Contrast">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Sharpness
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Sharpness">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
RedVideoGain
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RedVideoGain">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
GreenVideoGain
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="GreenVideoGain">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
BlueVideoGain
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="BlueVideoGain">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
RedVideoBlackLevel
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="RedVideoBlackLevel">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
GreenVideoBlackLevel
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="GreenVideoBlackLevel">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
BlueVideoBlackLevel
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="BlueVideoBlackLevel">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
ColorTemperature
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="ColorTemperature">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
HorizontalKeystone
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="HorizontalKeystone">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:integer"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
VerticalKeystone
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="VerticalKeystone">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:integer"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Mute
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Mute">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:boolean"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Volume
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Volume">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:unsignedInt"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
VolumeDB
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="VolumeDB">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:integer"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--============================================================
|
||||
|
||||
Loudness
|
||||
|
||||
============================================================-->
|
||||
<xsd:element name="Loudness">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="val" type="xsd:boolean"
|
||||
use="required"/>
|
||||
<xsd:attribute name="channel" type="xsd:string"
|
||||
use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
@@ -1,1030 +0,0 @@
|
||||
#
|
||||
# Default JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# This is replaced during jar assembly from property string
|
||||
# and should not be translated
|
||||
implementation.version = @IMPLEMENTATION.VERSION@
|
||||
|
||||
#
|
||||
# To add JavaScript error messages for a particular locale, create a
|
||||
# new Messages_[locale].properties file, where [locale] is the Java
|
||||
# string abbreviation for that locale. For example, JavaScript
|
||||
# messages for the Polish locale should be located in
|
||||
# Messages_pl.properties, and messages for the Italian Swiss locale
|
||||
# should be located in Messages_it_CH.properties. Message properties
|
||||
# files should be accessible through the classpath under
|
||||
# org.mozilla.javascript.resources
|
||||
#
|
||||
# See:
|
||||
# java.util.ResourceBundle
|
||||
# java.text.MessageFormat
|
||||
#
|
||||
|
||||
# SomeJavaClassWhereUsed
|
||||
|
||||
params.omit.non.js.object.warning = true
|
||||
|
||||
msg.non.js.object.warning =\
|
||||
RHINO USAGE WARNING: Missed Context.javaToJS() conversion: Rhino runtime detected object "{0}" of class "{1}" where it expected String, Number, Boolean or Scriptable instance. Please check your code for missing Context.javaToJS() call.
|
||||
|
||||
# Codegen
|
||||
msg.dup.parms =\
|
||||
Duplicate parameter name "{0}".
|
||||
|
||||
msg.too.big.jump =\
|
||||
Program too complex: too big jump offset.
|
||||
|
||||
msg.too.big.index =\
|
||||
Program too complex: internal index exceeds 64K limit.
|
||||
|
||||
msg.while.compiling.fn =\
|
||||
Encountered code generation error while compiling function "{0}": {1}
|
||||
|
||||
msg.while.compiling.script =\
|
||||
Encountered code generation error while compiling script: {0}
|
||||
|
||||
# Context
|
||||
msg.ctor.not.found =\
|
||||
Constructor for "{0}" not found.
|
||||
|
||||
msg.not.ctor =\
|
||||
"{0}" is not a constructor.
|
||||
|
||||
# FunctionObject
|
||||
msg.varargs.ctor =\
|
||||
Method or constructor "{0}" must be static with the signature \
|
||||
"(Context cx, Object[] args, Function ctorObj, boolean inNewExpr)" \
|
||||
to define a variable arguments constructor.
|
||||
|
||||
msg.varargs.fun =\
|
||||
Method "{0}" must be static with the signature \
|
||||
"(Context cx, Scriptable thisObj, Object[] args, Function funObj)" \
|
||||
to define a variable arguments function.
|
||||
|
||||
msg.incompat.call =\
|
||||
Method "{0}" called on incompatible object.
|
||||
|
||||
msg.incompat.call.details =\
|
||||
Method "{0}" called on incompatible object ({1} is not an instance of {2}).
|
||||
|
||||
msg.bad.parms =\
|
||||
Unsupported parameter type "{0}" in method "{1}".
|
||||
|
||||
msg.bad.method.return =\
|
||||
Unsupported return type "{0}" in method "{1}".
|
||||
|
||||
msg.bad.ctor.return =\
|
||||
Construction of objects of type "{0}" is not supported.
|
||||
|
||||
msg.no.overload =\
|
||||
Method "{0}" occurs multiple times in class "{1}".
|
||||
|
||||
msg.method.not.found =\
|
||||
Method "{0}" not found in "{1}".
|
||||
|
||||
msg.method.missing.parameter =\
|
||||
{0}: At least {1} arguments required, but only {2} passed
|
||||
|
||||
# IRFactory
|
||||
|
||||
msg.bad.for.in.lhs =\
|
||||
Invalid left-hand side of for..in loop.
|
||||
|
||||
msg.mult.index =\
|
||||
Only one variable allowed in for..in loop.
|
||||
|
||||
msg.bad.for.in.destruct =\
|
||||
Left hand side of for..in loop must be an array of length 2 to accept \
|
||||
key/value pair.
|
||||
|
||||
msg.bad.computed.property.in.destruct =\
|
||||
Unsupported computed property in destructuring.
|
||||
|
||||
msg.cant.convert =\
|
||||
Can''t convert to type "{0}".
|
||||
|
||||
msg.bad.assign.left =\
|
||||
Invalid assignment left-hand side.
|
||||
|
||||
msg.bad.decr =\
|
||||
Invalid decrement operand.
|
||||
|
||||
msg.bad.incr =\
|
||||
Invalid increment operand.
|
||||
|
||||
msg.bad.yield =\
|
||||
yield must be in a function.
|
||||
|
||||
msg.yield.parenthesized =\
|
||||
yield expression must be parenthesized.
|
||||
|
||||
msg.nullish.bad.token =\
|
||||
Syntax Error: Unexpected token.
|
||||
|
||||
# NativeGlobal
|
||||
msg.cant.call.indirect =\
|
||||
Function "{0}" must be called directly, and not by way of a \
|
||||
function of another name.
|
||||
|
||||
msg.eval.nonstring =\
|
||||
Calling eval() with anything other than a primitive string value will \
|
||||
simply return the value. Is this what you intended?
|
||||
|
||||
msg.eval.nonstring.strict =\
|
||||
Calling eval() with anything other than a primitive string value is not \
|
||||
allowed in strict mode.
|
||||
|
||||
msg.bad.destruct.op =\
|
||||
Invalid destructuring assignment operator
|
||||
|
||||
# NativeCall
|
||||
msg.only.from.new =\
|
||||
"Constructor {0}" may only be invoked from a "new" expression.
|
||||
|
||||
msg.deprec.ctor =\
|
||||
The "{0}" constructor is deprecated.
|
||||
|
||||
# NativeFunction
|
||||
msg.no.function.ref.found =\
|
||||
no source found to decompile function reference {0}
|
||||
|
||||
msg.arg.isnt.array =\
|
||||
second argument to Function.prototype.apply must be an array
|
||||
|
||||
# NativeGlobal
|
||||
msg.bad.esc.mask =\
|
||||
invalid string escape mask
|
||||
|
||||
# NativeJavaClass
|
||||
msg.cant.instantiate =\
|
||||
error instantiating ({0}): class {1} is interface or abstract
|
||||
|
||||
msg.bad.ctor.sig =\
|
||||
Found constructor with wrong signature: \
|
||||
{0} calling {1} with signature {2}
|
||||
|
||||
msg.not.java.obj =\
|
||||
Expected argument to getClass() to be a Java object.
|
||||
|
||||
msg.no.java.ctor =\
|
||||
Java constructor for "{0}" with arguments "{1}" not found.
|
||||
|
||||
# NativeJavaMethod
|
||||
msg.method.ambiguous =\
|
||||
The choice of Java method {0}.{1} matching JavaScript argument types ({2}) is ambiguous; \
|
||||
candidate methods are: {3}
|
||||
|
||||
msg.constructor.ambiguous =\
|
||||
The choice of Java constructor {0} matching JavaScript argument types ({1}) is ambiguous; \
|
||||
candidate constructors are: {2}
|
||||
|
||||
# NativeJavaObject
|
||||
msg.conversion.not.allowed =\
|
||||
Cannot convert {0} to {1}
|
||||
|
||||
msg.no.empty.interface.conversion =\
|
||||
Cannot convert function to interface {0} with no methods
|
||||
|
||||
msg.no.function.interface.conversion =\
|
||||
Cannot convert function to interface {0} since it contains methods with \
|
||||
different names
|
||||
|
||||
msg.undefined.function.interface =\
|
||||
Property "{0}" is not defined in interface adapter
|
||||
|
||||
msg.not.function.interface =\
|
||||
Property "{0}" is not a function in interface adapter
|
||||
|
||||
# NativeJavaPackage
|
||||
msg.not.classloader =\
|
||||
Constructor for "Packages" expects argument of type java.lang.Classloader
|
||||
|
||||
# NativeRegExp
|
||||
msg.bad.quant =\
|
||||
Invalid quantifier {0}
|
||||
|
||||
msg.overlarge.backref =\
|
||||
Overly large back reference {0}
|
||||
|
||||
msg.overlarge.min =\
|
||||
Overly large minimum {0}
|
||||
|
||||
msg.overlarge.max =\
|
||||
Overly large maximum {0}
|
||||
|
||||
msg.zero.quant =\
|
||||
Zero quantifier {0}
|
||||
|
||||
msg.max.lt.min =\
|
||||
Invalid regular expression: The quantifier maximum ''{0}'' is less than the minimum ''{1}''.
|
||||
|
||||
msg.unterm.quant =\
|
||||
Unterminated quantifier {0}
|
||||
|
||||
msg.unterm.paren =\
|
||||
Unterminated parenthetical {0}
|
||||
|
||||
msg.unterm.class =\
|
||||
Unterminated character class {0}
|
||||
|
||||
msg.bad.range =\
|
||||
Invalid range in character class.
|
||||
|
||||
msg.trail.backslash =\
|
||||
Trailing \\ in regular expression.
|
||||
|
||||
msg.re.unmatched.right.paren =\
|
||||
unmatched ) in regular expression.
|
||||
|
||||
msg.no.regexp =\
|
||||
Regular expressions are not available.
|
||||
|
||||
msg.bad.backref =\
|
||||
back-reference exceeds number of capturing parentheses.
|
||||
|
||||
msg.bad.regexp.compile =\
|
||||
Only one argument may be specified if the first argument to \
|
||||
RegExp.prototype.compile is a RegExp object.
|
||||
|
||||
msg.arg.not.object =\
|
||||
Expected argument of type object, but instead had type {0}
|
||||
|
||||
msg.str.match.all.no.global.flag =\
|
||||
String.prototype.matchAll called with a non-global RegExp argument
|
||||
|
||||
# NativeDate
|
||||
msg.invalid.date =\
|
||||
Date is invalid.
|
||||
|
||||
msg.toisostring.must.return.primitive =\
|
||||
toISOString must return a primitive value, but instead returned "{0}"
|
||||
|
||||
msg.invalid.toprimitive.hint =\
|
||||
[Symbol.toPrimitive]: expected "string", "number", or "default", but got "{0}"
|
||||
|
||||
# NativeJSON
|
||||
msg.json.cant.serialize =\
|
||||
Do not know how to serialize a {0}
|
||||
|
||||
# Parser
|
||||
msg.got.syntax.errors = \
|
||||
Compilation produced {0} syntax errors.
|
||||
|
||||
msg.var.redecl =\
|
||||
redeclaration of var {0}.
|
||||
|
||||
msg.const.redecl =\
|
||||
redeclaration of const {0}.
|
||||
|
||||
msg.let.redecl =\
|
||||
redeclaration of variable {0}.
|
||||
|
||||
msg.parm.redecl =\
|
||||
redeclaration of formal parameter {0}.
|
||||
|
||||
msg.fn.redecl =\
|
||||
redeclaration of function {0}.
|
||||
|
||||
msg.let.decl.not.in.block =\
|
||||
let declaration not directly within block
|
||||
|
||||
msg.bad.object.init =\
|
||||
invalid object initializer
|
||||
|
||||
# NodeTransformer
|
||||
msg.dup.label =\
|
||||
duplicated label
|
||||
|
||||
msg.undef.label =\
|
||||
undefined label
|
||||
|
||||
msg.bad.break =\
|
||||
unlabelled break must be inside loop or switch
|
||||
|
||||
msg.continue.outside =\
|
||||
continue must be inside loop
|
||||
|
||||
msg.continue.nonloop =\
|
||||
continue can only use labeles of iteration statements
|
||||
|
||||
msg.bad.throw.eol =\
|
||||
Line terminator is not allowed between the throw keyword and throw \
|
||||
expression.
|
||||
|
||||
msg.no.paren.parms =\
|
||||
missing ( before function parameters.
|
||||
|
||||
msg.no.parm =\
|
||||
missing formal parameter
|
||||
|
||||
msg.no.paren.after.parms =\
|
||||
missing ) after formal parameters
|
||||
|
||||
msg.parm.after.rest =\
|
||||
parameter after rest parameter
|
||||
|
||||
msg.no.brace.body =\
|
||||
missing '{' before function body
|
||||
|
||||
msg.no.brace.after.body =\
|
||||
missing } after function body
|
||||
|
||||
msg.no.paren.cond =\
|
||||
missing ( before condition
|
||||
|
||||
msg.no.paren.after.cond =\
|
||||
missing ) after condition
|
||||
|
||||
msg.no.semi.stmt =\
|
||||
missing ; before statement
|
||||
|
||||
msg.missing.semi =\
|
||||
missing ; after statement
|
||||
|
||||
msg.no.name.after.dot =\
|
||||
missing name after . operator
|
||||
|
||||
msg.no.name.after.coloncolon =\
|
||||
missing name after :: operator
|
||||
|
||||
msg.no.name.after.dotdot =\
|
||||
missing name after .. operator
|
||||
|
||||
msg.no.name.after.xmlAttr =\
|
||||
missing name after .@
|
||||
|
||||
msg.no.bracket.index =\
|
||||
missing ] in index expression
|
||||
|
||||
msg.no.paren.switch =\
|
||||
missing ( before switch expression
|
||||
|
||||
msg.no.paren.after.switch =\
|
||||
missing ) after switch expression
|
||||
|
||||
msg.no.brace.switch =\
|
||||
missing '{' before switch body
|
||||
|
||||
msg.bad.switch =\
|
||||
invalid switch statement
|
||||
|
||||
msg.no.colon.case =\
|
||||
missing : after case expression
|
||||
|
||||
msg.double.switch.default =\
|
||||
double default label in the switch statement
|
||||
|
||||
msg.no.while.do =\
|
||||
missing while after do-loop body
|
||||
|
||||
msg.no.paren.for =\
|
||||
missing ( after for
|
||||
|
||||
msg.no.semi.for =\
|
||||
missing ; after for-loop initializer
|
||||
|
||||
msg.no.semi.for.cond =\
|
||||
missing ; after for-loop condition
|
||||
|
||||
msg.in.after.for.name =\
|
||||
missing in after for
|
||||
|
||||
msg.no.paren.for.ctrl =\
|
||||
missing ) after for-loop control
|
||||
|
||||
msg.no.paren.with =\
|
||||
missing ( before with-statement object
|
||||
|
||||
msg.no.paren.after.with =\
|
||||
missing ) after with-statement object
|
||||
|
||||
msg.no.with.strict =\
|
||||
with statements not allowed in strict mode
|
||||
|
||||
msg.no.paren.after.let =\
|
||||
missing ( after let
|
||||
|
||||
msg.no.paren.let =\
|
||||
missing ) after variable list
|
||||
|
||||
msg.no.curly.let =\
|
||||
missing } after let statement
|
||||
|
||||
msg.bad.return =\
|
||||
invalid return
|
||||
|
||||
msg.no.brace.block =\
|
||||
missing } in compound statement
|
||||
|
||||
msg.bad.label =\
|
||||
invalid label
|
||||
|
||||
msg.bad.var =\
|
||||
missing variable name
|
||||
|
||||
msg.bad.var.init =\
|
||||
invalid variable initialization
|
||||
|
||||
msg.no.colon.cond =\
|
||||
missing : in conditional expression
|
||||
|
||||
msg.no.paren.arg =\
|
||||
missing ) after argument list
|
||||
|
||||
msg.no.bracket.arg =\
|
||||
missing ] after element list
|
||||
|
||||
msg.bad.prop =\
|
||||
invalid property id
|
||||
|
||||
msg.no.colon.prop =\
|
||||
missing : after property id
|
||||
|
||||
msg.no.brace.prop =\
|
||||
missing } after property list
|
||||
|
||||
msg.no.paren =\
|
||||
missing ) in parenthetical
|
||||
|
||||
msg.reserved.id =\
|
||||
identifier is a reserved word: {0}
|
||||
|
||||
msg.super.shorthand.function =\
|
||||
super should be inside a shorthand function
|
||||
|
||||
msg.optional.super =\
|
||||
super is not allowed in an optional chaining expression
|
||||
|
||||
msg.super.delete =\
|
||||
cannot delete a super property
|
||||
|
||||
msg.no.paren.catch =\
|
||||
missing ( before catch-block condition
|
||||
|
||||
msg.bad.catchcond =\
|
||||
invalid catch block condition
|
||||
|
||||
msg.catch.unreachable =\
|
||||
any catch clauses following an unqualified catch are unreachable
|
||||
|
||||
msg.no.brace.try =\
|
||||
missing '{' before try block
|
||||
|
||||
msg.no.brace.catchblock =\
|
||||
missing '{' before catch-block body
|
||||
|
||||
msg.try.no.catchfinally =\
|
||||
''try'' without ''catch'' or ''finally''
|
||||
|
||||
msg.no.return.value =\
|
||||
function {0} does not always return a value
|
||||
|
||||
msg.anon.no.return.value =\
|
||||
anonymous function does not always return a value
|
||||
|
||||
msg.return.inconsistent =\
|
||||
return statement is inconsistent with previous usage
|
||||
|
||||
msg.generator.returns =\
|
||||
generator function {0} returns a value
|
||||
|
||||
msg.anon.generator.returns =\
|
||||
anonymous generator function returns a value
|
||||
|
||||
msg.syntax.invalid.assignment.lhs =\
|
||||
syntax error: Invalid left-hand side in assignment
|
||||
|
||||
msg.syntax =\
|
||||
syntax error
|
||||
|
||||
msg.unexpected.eof =\
|
||||
Unexpected end of file
|
||||
|
||||
msg.XML.bad.form =\
|
||||
illegally formed XML syntax
|
||||
|
||||
msg.XML.not.available =\
|
||||
XML runtime not available
|
||||
|
||||
msg.too.deep.parser.recursion =\
|
||||
Too deep recursion while parsing
|
||||
|
||||
msg.too.many.constructor.args =\
|
||||
Too many constructor arguments
|
||||
|
||||
msg.too.many.function.args =\
|
||||
Too many function arguments
|
||||
|
||||
msg.no.side.effects =\
|
||||
Code has no side effects
|
||||
|
||||
msg.extra.trailing.semi =\
|
||||
Extraneous trailing semicolon
|
||||
|
||||
msg.extra.trailing.comma =\
|
||||
Trailing comma is not legal in an ECMA-262 object initializer
|
||||
|
||||
msg.trailing.array.comma =\
|
||||
Trailing comma in array literal has different cross-browser behavior
|
||||
|
||||
msg.equal.as.assign =\
|
||||
Test for equality (==) mistyped as assignment (=)?
|
||||
|
||||
msg.var.hides.arg =\
|
||||
Variable {0} hides argument
|
||||
|
||||
msg.destruct.assign.no.init =\
|
||||
Missing = in destructuring declaration
|
||||
|
||||
msg.default.args =\
|
||||
Default values are only supported in version >= 200
|
||||
|
||||
msg.no.old.octal.strict =\
|
||||
Old octal numbers prohibited in strict mode.
|
||||
|
||||
msg.no.old.octal.bigint =\
|
||||
Old octal numbers prohibited in BigInt.
|
||||
|
||||
msg.dup.obj.lit.prop.strict =\
|
||||
Property "{0}" already defined in this object literal.
|
||||
|
||||
msg.dup.param.strict =\
|
||||
Parameter "{0}" already declared in this function.
|
||||
|
||||
msg.bad.id.strict =\
|
||||
"{0}" is not a valid identifier for this use in strict mode.
|
||||
|
||||
msg.no.unary.expr.on.left.exp =\
|
||||
"{0}" is not allowed on the left-hand side of "**".
|
||||
|
||||
# ScriptRuntime
|
||||
|
||||
# is there a better message for this?
|
||||
# it's currently only used as a poison pill for caller, caller and arguments properties
|
||||
msg.op.not.allowed =\
|
||||
This operation is not allowed.
|
||||
|
||||
msg.no.properties =\
|
||||
{0} has no properties.
|
||||
|
||||
msg.invalid.iterator =\
|
||||
Invalid iterator value
|
||||
|
||||
msg.iterator.primitive =\
|
||||
__iterator__ returned a primitive value
|
||||
|
||||
msg.not.iterable = \
|
||||
{0} is not iterable
|
||||
|
||||
msg.invalid.for.each = \
|
||||
invalid for each loop
|
||||
|
||||
msg.assn.create.strict =\
|
||||
Assignment to undeclared variable {0}
|
||||
|
||||
msg.ref.undefined.prop =\
|
||||
Reference to undefined property "{0}"
|
||||
|
||||
msg.prop.not.found =\
|
||||
Property {0} not found.
|
||||
|
||||
msg.set.prop.no.setter =\
|
||||
Cannot set property {0} that has only a getter to value ''{1}''.
|
||||
|
||||
msg.invalid.type =\
|
||||
Invalid JavaScript value of type {0}
|
||||
|
||||
msg.primitive.expected =\
|
||||
Primitive type expected (had {0} instead)
|
||||
|
||||
msg.namespace.expected =\
|
||||
Namespace object expected to left of :: (found {0} instead)
|
||||
|
||||
msg.null.to.object =\
|
||||
Cannot convert null to an object.
|
||||
|
||||
msg.undef.to.object =\
|
||||
Cannot convert undefined to an object.
|
||||
|
||||
msg.cant.convert.to.bigint =\
|
||||
Cannot convert {0} to an BigInt.
|
||||
|
||||
msg.cant.convert.to.bigint.isnt.integer =\
|
||||
Cannot convert {0} to an BigInt. It isn\'t an integer.
|
||||
|
||||
msg.bigint.bad.form =\
|
||||
illegally formed BigInt syntax
|
||||
|
||||
msg.cyclic.value =\
|
||||
Cyclic {0} value not allowed.
|
||||
|
||||
msg.is.not.defined =\
|
||||
"{0}" is not defined.
|
||||
|
||||
msg.undef.prop.read =\
|
||||
Cannot read property "{1}" from {0}
|
||||
|
||||
msg.undef.prop.write =\
|
||||
Cannot set property "{1}" of {0} to "{2}"
|
||||
|
||||
msg.undef.prop.delete =\
|
||||
Cannot delete property "{1}" of {0}
|
||||
|
||||
msg.undef.method.call =\
|
||||
Cannot call method "{1}" of {0}
|
||||
|
||||
msg.undef.with =\
|
||||
Cannot apply "with" to {0}
|
||||
|
||||
msg.isnt.function =\
|
||||
{0} is not a function, it is {1}.
|
||||
|
||||
msg.isnt.function.in =\
|
||||
Cannot call property {0} in object {1}. It is not a function, it is "{2}".
|
||||
|
||||
msg.function.not.found =\
|
||||
Cannot find function {0}.
|
||||
|
||||
msg.function.not.found.in =\
|
||||
Cannot find function {0} in object {1}.
|
||||
|
||||
msg.isnt.xml.object =\
|
||||
{0} is not an xml object.
|
||||
|
||||
msg.no.ref.to.get =\
|
||||
{0} is not a reference to read reference value.
|
||||
|
||||
msg.no.ref.to.set =\
|
||||
{0} is not a reference to set reference value to {1}.
|
||||
|
||||
msg.no.ref.from.function =\
|
||||
Function {0} can not be used as the left-hand side of assignment \
|
||||
or as an operand of ++ or -- operator.
|
||||
|
||||
msg.bad.default.value =\
|
||||
Object''s getDefaultValue() method returned an object.
|
||||
|
||||
msg.instanceof.not.object = \
|
||||
Can''t use ''instanceof'' on a non-object.
|
||||
|
||||
msg.instanceof.bad.prototype = \
|
||||
''prototype'' property of {0} is not an object.
|
||||
|
||||
msg.in.not.object = \
|
||||
Can''t use ''in'' on a non-object.
|
||||
|
||||
msg.bad.radix = \
|
||||
illegal radix {0}.
|
||||
|
||||
msg.division.zero = \
|
||||
Division by zero.
|
||||
|
||||
msg.bigint.negative.exponent = \
|
||||
BigInt negative exponent.
|
||||
|
||||
msg.bigint.out.of.range.arithmetic = \
|
||||
BigInt is too large.
|
||||
|
||||
msg.cant.convert.to.primitive = \
|
||||
Cannot convert object to primitive value.
|
||||
|
||||
# ScriptableObject
|
||||
msg.default.value =\
|
||||
Cannot find default value for object.
|
||||
|
||||
msg.zero.arg.ctor =\
|
||||
Cannot load class "{0}" which has no zero-parameter constructor.
|
||||
|
||||
duplicate.defineClass.name =\
|
||||
Invalid method "{0}": name "{1}" is already in use.
|
||||
|
||||
msg.ctor.multiple.parms =\
|
||||
Can''t define constructor or class {0} since more than one \
|
||||
constructor has multiple parameters.
|
||||
|
||||
msg.extend.scriptable =\
|
||||
{0} must extend ScriptableObject in order to define property {1}.
|
||||
|
||||
msg.bad.getter.parms =\
|
||||
In order to define a property, getter {0} must have zero parameters \
|
||||
or a single ScriptableObject parameter.
|
||||
|
||||
msg.obj.getter.parms =\
|
||||
Expected static or delegated getter {0} to take a ScriptableObject parameter.
|
||||
|
||||
msg.getter.static =\
|
||||
Getter and setter must both be static or neither be static.
|
||||
|
||||
msg.setter.return =\
|
||||
Setter must have void return type: {0}
|
||||
|
||||
msg.setter2.parms =\
|
||||
Two-parameter setter must take a ScriptableObject as its first parameter.
|
||||
|
||||
msg.setter1.parms =\
|
||||
Expected single parameter setter for {0}
|
||||
|
||||
msg.setter2.expected =\
|
||||
Expected static or delegated setter {0} to take two parameters.
|
||||
|
||||
msg.setter.parms =\
|
||||
Expected either one or two parameters for setter.
|
||||
|
||||
msg.setter.bad.type =\
|
||||
Unsupported parameter type "{0}" in setter "{1}".
|
||||
|
||||
msg.add.sealed =\
|
||||
Cannot add a property to a sealed object: {0}.
|
||||
|
||||
msg.remove.sealed =\
|
||||
Cannot remove a property from a sealed object: {0}.
|
||||
|
||||
msg.modify.sealed =\
|
||||
Cannot modify a property of a sealed object: {0}.
|
||||
|
||||
msg.modify.readonly =\
|
||||
Cannot modify readonly property: {0}.
|
||||
|
||||
msg.both.data.and.accessor.desc =\
|
||||
Cannot be both a data and an accessor descriptor.
|
||||
|
||||
msg.change.configurable.false.to.true =\
|
||||
Cannot change the configurable attribute of "{0}" from false to true.
|
||||
|
||||
msg.change.enumerable.with.configurable.false =\
|
||||
Cannot change the enumerable attribute of "{0}" because configurable is false.
|
||||
|
||||
msg.change.writable.false.to.true.with.configurable.false =\
|
||||
Cannot change the writable attribute of "{0}" from false to true because configurable is false.
|
||||
|
||||
msg.change.value.with.writable.false =\
|
||||
Cannot change the value of attribute "{0}" because writable is false.
|
||||
|
||||
msg.change.getter.with.configurable.false =\
|
||||
Cannot change the get attribute of "{0}" because configurable is false.
|
||||
|
||||
msg.change.setter.with.configurable.false =\
|
||||
Cannot change the set attribute of "{0}" because configurable is false.
|
||||
|
||||
msg.change.property.data.to.accessor.with.configurable.false =\
|
||||
Cannot change "{0}" from a data property to an accessor property because configurable is false.
|
||||
|
||||
msg.change.property.accessor.to.data.with.configurable.false =\
|
||||
Cannot change "{0}" from an accessor property to a data property because configurable is false.
|
||||
|
||||
msg.not.extensible =\
|
||||
Cannot add properties to this object because extensible is false.
|
||||
|
||||
msg.delete.property.with.configurable.false =\
|
||||
Cannot delete "{0}" property because configurable is false.
|
||||
|
||||
# TokenStream
|
||||
msg.missing.exponent =\
|
||||
missing exponent
|
||||
|
||||
msg.caught.nfe =\
|
||||
number format error
|
||||
|
||||
msg.unterminated.string.lit =\
|
||||
unterminated string literal
|
||||
|
||||
msg.unterminated.comment =\
|
||||
unterminated comment
|
||||
|
||||
msg.unterminated.re.lit =\
|
||||
unterminated regular expression literal
|
||||
|
||||
msg.invalid.re.flag =\
|
||||
invalid flag ''{0}'' after regular expression
|
||||
|
||||
msg.no.re.input.for =\
|
||||
no input for {0}
|
||||
|
||||
msg.illegal.character =\
|
||||
illegal character: {0}
|
||||
|
||||
msg.invalid.escape =\
|
||||
invalid Unicode escape sequence
|
||||
|
||||
msg.bad.namespace =\
|
||||
not a valid default namespace statement. \
|
||||
Syntax is: default xml namespace = EXPRESSION;
|
||||
|
||||
# TokensStream warnings
|
||||
msg.bad.octal.literal =\
|
||||
illegal octal literal digit {0}; interpreting it as a decimal digit
|
||||
|
||||
msg.reserved.keyword =\
|
||||
illegal usage of future reserved keyword {0}; interpreting it as ordinary identifier
|
||||
|
||||
# LiveConnect errors
|
||||
msg.java.internal.field.type =\
|
||||
Internal error: type conversion of {0} to assign to {1} on {2} failed.
|
||||
|
||||
msg.java.conversion.implicit_method =\
|
||||
Can''t find converter method "{0}" on class {1}.
|
||||
|
||||
msg.java.method.assign =\
|
||||
Java method "{0}" cannot be assigned to.
|
||||
|
||||
msg.java.internal.private =\
|
||||
Internal error: attempt to access private/protected field "{0}".
|
||||
|
||||
msg.java.no_such_method =\
|
||||
Can''t find method {0}.
|
||||
|
||||
msg.script.is.not.constructor =\
|
||||
Script objects are not constructors.
|
||||
|
||||
msg.nonjava.method =\
|
||||
Java method "{0}" was invoked with {1} as "this" value that can not be converted to Java type {2}.
|
||||
|
||||
msg.java.member.not.found =\
|
||||
Java class "{0}" has no public instance field or method named "{1}".
|
||||
|
||||
msg.java.array.index.out.of.bounds =\
|
||||
Array index {0} is out of bounds [0..{1}].
|
||||
|
||||
msg.java.array.member.not.found =\
|
||||
Java arrays have no public instance fields or methods named "{0}".
|
||||
|
||||
msg.pkg.int =\
|
||||
Java package names may not be numbers.
|
||||
|
||||
msg.access.prohibited =\
|
||||
Access to Java class "{0}" is prohibited.
|
||||
|
||||
# ImporterTopLevel
|
||||
msg.ambig.import =\
|
||||
Ambiguous import: "{0}" and and "{1}".
|
||||
|
||||
msg.not.pkg =\
|
||||
Function importPackage must be called with a package; had "{0}" instead.
|
||||
|
||||
msg.not.class =\
|
||||
Function importClass must be called with a class; had "{0}" instead.
|
||||
|
||||
msg.not.class.not.pkg =\
|
||||
"{0}" is neither a class nor a package.
|
||||
|
||||
msg.prop.defined =\
|
||||
Cannot import "{0}" since a property by that name is already defined.
|
||||
|
||||
#JavaAdapter
|
||||
msg.adapter.zero.args =\
|
||||
JavaAdapter requires at least one argument.
|
||||
|
||||
msg.not.java.class.arg = \
|
||||
Argument {0} is not Java class: {1}.
|
||||
|
||||
#JavaAdapter
|
||||
msg.only.one.super = \
|
||||
Only one class may be extended by a JavaAdapter. Had {0} and {1}.
|
||||
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.bad =\
|
||||
Inappropriate array length.
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.too.big =\
|
||||
Array length {0} exceeds supported capacity limit.
|
||||
|
||||
msg.empty.array.reduce =\
|
||||
Reduce of empty array with no initial value
|
||||
|
||||
# URI
|
||||
msg.bad.uri =\
|
||||
Malformed URI sequence.
|
||||
|
||||
# Number
|
||||
msg.bad.precision =\
|
||||
Precision {0} out of range.
|
||||
|
||||
# NativeGenerator
|
||||
msg.send.newborn =\
|
||||
Attempt to send value to newborn generator
|
||||
|
||||
msg.already.exec.gen =\
|
||||
Already executing generator
|
||||
|
||||
msg.StopIteration.invalid =\
|
||||
StopIteration may not be changed to an arbitrary object.
|
||||
|
||||
msg.generator.executing =\
|
||||
The generator is still executing from a previous invocation.
|
||||
|
||||
# Interpreter
|
||||
msg.yield.closing =\
|
||||
Yield from closing generator
|
||||
|
||||
msg.called.null.or.undefined=\
|
||||
{0}.prototype.{1} method called on null or undefined
|
||||
|
||||
msg.first.arg.not.regexp=\
|
||||
First argument to {0}.prototype.{1} must not be a regular expression
|
||||
|
||||
msg.arrowfunction.generator =\
|
||||
arrow function can not become generator
|
||||
|
||||
# Arguments
|
||||
msg.arguments.not.access.strict =\
|
||||
Cannot access "{0}" property of the arguments object in strict mode.
|
||||
|
||||
msg.object.cyclic.prototype =\
|
||||
Cyclic prototype "{0}" value not allowed.
|
||||
|
||||
msg.default.args.use.strict =\
|
||||
A function cannot have "use strict" directive with default arguments
|
||||
|
||||
# Symbol support
|
||||
msg.object.not.symbolscriptable =\
|
||||
Object {0} does not support Symbol keys
|
||||
|
||||
msg.no.assign.symbol.strict =\
|
||||
Symbol objects may not be assigned properties in strict mode
|
||||
|
||||
msg.not.a.string =\
|
||||
The object is not a string
|
||||
|
||||
msg.not.a.number =\
|
||||
The object is not a number
|
||||
|
||||
msg.cant.convert.to.number =\
|
||||
Cannot convert {0} to a number
|
||||
|
||||
msg.no.symbol.new =\
|
||||
Symbol objects may not be constructed using \"new\"
|
||||
|
||||
msg.compare.symbol =\
|
||||
Symbol objects may not be compared
|
||||
|
||||
msg.no.new =\
|
||||
{0} objects may not be constructed using \"new\"
|
||||
|
||||
msg.map.function.not =\
|
||||
Map function is not actually a function
|
||||
|
||||
msg.constructor.no.function =\
|
||||
The constructor for {0} may not be invoked as a function
|
||||
|
||||
msg.this.not.instance =\
|
||||
\"this\" is not an instance of the class
|
||||
|
||||
# Promises
|
||||
msg.function.expected =\
|
||||
Expecting the first argument to be a function
|
||||
|
||||
msg.constructor.expected =\
|
||||
Expecting the first argument to be a constructor
|
||||
|
||||
msg.promise.self.resolution =\
|
||||
Promise is being self-resolved
|
||||
|
||||
msg.promise.capability.state =\
|
||||
Invalid promise capability state
|
||||
|
||||
msg.promise.all.toobig =\
|
||||
Too many inputs to Promise.all
|
||||
|
||||
msg.promise.any.toobig =\
|
||||
Too many inputs to Promise.any
|
||||
|
||||
msg.typed.array.ctor.incompatible = \
|
||||
Method %TypedArray%.prototype.{0} called on incompatible receiver
|
||||
|
||||
msg.typed.array.bad.offset = \
|
||||
offset {0} out of range
|
||||
|
||||
msg.typed.array.bad.length = \
|
||||
length {0} out of range
|
||||
|
||||
msg.typed.array.bad.offset.byte.size = \
|
||||
offset {0} must be a multiple of the byte size {1}
|
||||
|
||||
msg.typed.array.bad.buffer.length.byte.size = \
|
||||
used buffer length {0} must be a multiple of the byte size {1}
|
||||
|
||||
msg.typed.array.bad.source.array = \
|
||||
source array is too long
|
||||
|
||||
msg.typed.array.index.out.of.bounds =\
|
||||
index {0} is out of bounds [{1}..{2}]
|
||||
|
||||
# Error
|
||||
msg.iterable.expected =\
|
||||
Expected the first argument to be iterable
|
||||
|
||||
# ArrayBuffer
|
||||
msg.species.invalid.ctor =\
|
||||
The [Symbol.species] property of object's constructor is not a constructor
|
||||
|
||||
msg.arraybuf.smaller.len =\
|
||||
Expected ArrayBuffer with at least {0} bytes, but got {1} bytes instead
|
||||
|
||||
msg.arraybuf.same =\
|
||||
Expected different ArrayBuffer
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# English JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# The base messages file is used for all messages, but this file is
|
||||
# here so that English is selectable as a language when the default
|
||||
# Locale also has a translation.
|
||||
@@ -1,821 +0,0 @@
|
||||
#
|
||||
# French JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# Codegen
|
||||
msg.dup.parms =\
|
||||
Le nom de param\u00E8tre "{0}" existe d\u00E9j\u00E0.
|
||||
|
||||
msg.too.big.jump =\
|
||||
Programme trop complexe: d\u00E9calage de saut trop important
|
||||
|
||||
msg.too.big.index =\
|
||||
Programme trop complexe: l''indice interne d\u00E9passe la limite de 64\u00a0ko
|
||||
|
||||
msg.while.compiling.fn =\
|
||||
Une erreur de g\u00e9n\u00e9ration de code a \u00e9t\u00e9 rencontr\u00e9e \u00e0 la compilation de la fonction "{0}": {1}
|
||||
|
||||
msg.while.compiling.script =\
|
||||
Une erreur de g\u00e9n\u00e9ration de code a \u00e9t\u00e9 rencontr\u00e9e \u00e0 la compilation du script: {0}
|
||||
|
||||
# Context
|
||||
msg.ctor.not.found =\
|
||||
Le constructeur de "{0}" est introuvable
|
||||
|
||||
msg.not.ctor =\
|
||||
{0} n''est pas un constructeur
|
||||
|
||||
# FunctionObject
|
||||
msg.varargs.ctor =\
|
||||
La m\u00E9thode ou le constructeur "{0}" doit \u00EAtre statique avec la signature \
|
||||
"(Context cx, Object[] args, Function ctorObj, boolean inNewExpr)" \
|
||||
pour d\u00E9finir un constructeur d''arguments de variable.
|
||||
|
||||
msg.varargs.fun =\
|
||||
La m\u00E9thode "{0}" doit \u00EAtre statique avec la signature \
|
||||
"(Context cx, Scriptable thisObj, Object[] args, Function funObj)" \
|
||||
pour d\u00E9finir une fonction d''arguments de variable
|
||||
|
||||
msg.incompat.call =\
|
||||
La m\u00E9thode "{0}" a \u00E9t\u00E9 appel\u00E9e dans un objet non compatible
|
||||
|
||||
msg.bad.parms =\
|
||||
Les param\u00E8tres de la m\u00E9thode sont incorrects pour "{0}"
|
||||
|
||||
msg.bad.method.return =\
|
||||
Le type de retour "{0}" de la m\u00e9thode "{1}" est incorrect.
|
||||
|
||||
msg.bad.ctor.return =\
|
||||
La construction d''objets du type "{0}" n''est pas possible.
|
||||
|
||||
msg.no.overload =\
|
||||
La m\u00E9thode "{0}" appara\u00EEt plusieurs fois dans la classe "{1}"
|
||||
|
||||
msg.method.not.found =\
|
||||
La m\u00E9thode "{0}" est introuvable dans "{1}"
|
||||
|
||||
# IRFactory
|
||||
|
||||
msg.bad.for.in.lhs =\
|
||||
La partie gauche de la boucle for..in est incorrecte
|
||||
|
||||
msg.mult.index =\
|
||||
Une seule variable est autoris\u00E9e dans la boucle for..in
|
||||
|
||||
msg.bad.for.in.destruct =\
|
||||
La partie gauche de la boucle for..in doit \u00eatre un tableau de longueur 2 pour accepter \
|
||||
une paire clef/valeur.
|
||||
|
||||
msg.cant.convert =\
|
||||
La conversion en type "{0}" est impossible
|
||||
|
||||
msg.bad.assign.left =\
|
||||
La partie gauche de l''affectation est incorrecte
|
||||
|
||||
msg.bad.decr =\
|
||||
L''op\u00e9rande d\u00e9cr\u00e9ment\u00e9e est incorrecte.
|
||||
|
||||
msg.bad.incr =\
|
||||
L''op\u00e9rande incr\u00e9ment\u00e9e est incorrecte.
|
||||
|
||||
msg.bad.yield =\
|
||||
''yield'' doit \u00eatre dans une fonction.
|
||||
|
||||
msg.yield.parenthesized =\
|
||||
L''expression suivant ''yield'' doit \u00eatre entre parenth\u00e8ses.
|
||||
|
||||
msg.nullish.bad.token =\
|
||||
Erreur de syntaxe: Jeton inattendu.
|
||||
|
||||
# NativeGlobal
|
||||
msg.cant.call.indirect =\
|
||||
La fonction "{0}" doit \u00EAtre appel\u00E9e directement et non par l''interm\u00E9diaire \
|
||||
d''une fonction portant un autre nom
|
||||
|
||||
msg.eval.nonstring =\
|
||||
Si vous appelez la fonction eval() avec une valeur qui n''est pas \u00E0 une cha\u00EEne primitive, \
|
||||
c''est la valeur en question qui est renvoy\u00E9e. \u00E9tait-ce votre intention?
|
||||
|
||||
msg.eval.nonstring.strict =\
|
||||
La fonction eval() ne peut \u00eatre appel\u00e9e avec une valeur autre qu''une cha\u00EEne primitive \
|
||||
en mode strict
|
||||
|
||||
msg.bad.destruct.op =\
|
||||
L''op\u00e9rateur de l''assignation d\u00e9structurante est incorrect
|
||||
|
||||
# NativeCall
|
||||
msg.only.from.new =\
|
||||
{0} ne peut \u00EAtre appel\u00E9e qu''\u00E0 partir d''une "nouvelle" expression.
|
||||
|
||||
msg.deprec.ctor =\
|
||||
Le constructeur "{0}" est d\u00E9conseill\u00E9
|
||||
|
||||
# NativeFunction
|
||||
msg.no.function.ref.found =\
|
||||
aucune source n''a \u00E9t\u00E9 trouv\u00E9e pour d\u00E9compiler la r\u00E9f\u00E9rence de fonction {0}
|
||||
|
||||
msg.arg.isnt.array =\
|
||||
le second argument de la m\u00E9thode Function.prototype.apply doit \u00EAtre un tableau
|
||||
|
||||
# NativeGlobal
|
||||
msg.bad.esc.mask =\
|
||||
le masque d''\u00E9chappement de cha\u00EEne est incorrect
|
||||
|
||||
# NativeJavaClass
|
||||
msg.cant.instantiate =\
|
||||
erreur lors de l''instanciation ({0}): la classe {1} est une classe interface ou abstract
|
||||
|
||||
msg.bad.ctor.sig =\
|
||||
Un constructeur avec une signature incorrecte a \u00E9t\u00E9 d\u00E9tect\u00E9: \
|
||||
{0} qui appelle {1} avec la signature {2}
|
||||
|
||||
msg.not.java.obj =\
|
||||
L''argument attendu pour la fonction getClass() doit \u00EAtre un objet Java
|
||||
|
||||
msg.no.java.ctor =\
|
||||
Le constructeur Java de "{0}" avec les arguments "{1}" est introuvable
|
||||
|
||||
# NativeJavaMethod
|
||||
msg.method.ambiguous =\
|
||||
Le choix de la m\u00E9thode Java {0}.{1} correspondant aux types d''argument JavaScript ({2}) est ambigu. \
|
||||
Les m\u00E9thodes propos\u00E9es sont les suivantes: {3}
|
||||
|
||||
msg.constructor.ambiguous =\
|
||||
Le choix du constructeur Java {0} correspondant aux types d''argument JavaScript ({1}) est ambigu. \
|
||||
Les constructeurs propos\u00E9s sont les suivants: {2}
|
||||
|
||||
# NativeJavaObject
|
||||
msg.conversion.not.allowed =\
|
||||
Impossible de convertir {0} en {1}
|
||||
|
||||
msg.no.empty.interface.conversion =\
|
||||
Impossible de convertir la fonction en interface {0} sans aucune m\u00e9thode
|
||||
|
||||
msg.no.function.interface.conversion =\
|
||||
Impossible de convertir la fonction {0} en interface puisqu''elle contient des m\u00e9thodes avec \
|
||||
des noms diff\u00e9rents
|
||||
|
||||
msg.undefined.function.interface =\
|
||||
La propri\u00E9t\u00E9 "{0}" n''est pas d\u00E9finie dans l''adaptateur d''interface
|
||||
|
||||
msg.not.function.interface =\
|
||||
La propri\u00E9t\u00E9 "{0}" n''est pas une fonction dans l''adaptateur d''interface
|
||||
|
||||
# NativeJavaPackage
|
||||
msg.not.classloader =\
|
||||
Le constructeur de "Packages" attend un argument de type java.lang.Classloader
|
||||
|
||||
# NativeRegExp
|
||||
msg.bad.quant =\
|
||||
Le quantificateur {0} est incorrect
|
||||
|
||||
msg.overlarge.backref =\
|
||||
La r\u00e9f\u00e9rence ant\u00e9rieure est trop importante {0}
|
||||
|
||||
msg.overlarge.min =\
|
||||
Le minimum {0} est trop important
|
||||
|
||||
msg.overlarge.max =\
|
||||
Le maximum {0} est trop important
|
||||
|
||||
msg.zero.quant =\
|
||||
Le quantificateur {0} est nul
|
||||
|
||||
msg.max.lt.min =\
|
||||
Expression r\u00e9guli\u00e8re invalide : Le quantificateur maximum ''{0}'' est inf\u00e9rieur au minimum ''{1}''.
|
||||
|
||||
msg.unterm.quant =\
|
||||
Le quantificateur {0} n''a pas de limite
|
||||
|
||||
msg.unterm.paren =\
|
||||
Les parenth\u00E8ses {0} n''ont pas de limite
|
||||
|
||||
msg.unterm.class =\
|
||||
La classe de caract\u00E8res {0} n''a pas de limite
|
||||
|
||||
msg.bad.range =\
|
||||
La classe de caract\u00E8res contient une plage de valeurs incorrecte
|
||||
|
||||
msg.trail.backslash =\
|
||||
\\ \u00e0 la fin d''une expression rationnelle
|
||||
|
||||
msg.re.unmatched.right.paren =\
|
||||
Parenth\u00e8se fermante orpheline dans l''expression rationnelle
|
||||
|
||||
msg.no.regexp =\
|
||||
Les expressions rationnelles ne sont pas disponibles
|
||||
|
||||
msg.bad.backref =\
|
||||
la r\u00E9f\u00E9rence ant\u00E9rieure d\u00E9passe le nombre de parenth\u00E8ses de capture
|
||||
|
||||
msg.bad.regexp.compile =\
|
||||
Un seul argument peut \u00eatre sp\u00e9cifi\u00e9 si le premier argument de \
|
||||
RegExp.prototype.compile est un objet de type RegExp.
|
||||
|
||||
msg.arg.not.object =\
|
||||
L''argument attendu est de type ''object'' au lieu de ''{0}''
|
||||
|
||||
# NativeDate
|
||||
msg.invalid.date =\
|
||||
Date incorrecte.
|
||||
|
||||
msg.toisostring.must.return.primitive =\
|
||||
toISOString doit renvoyer une valeur primitive, mais a retourn\u00e9 \u00e0 la place "{0}"
|
||||
|
||||
# Parser
|
||||
msg.got.syntax.errors = \
|
||||
La compilation a produit {0} erreur(s) de syntaxe.
|
||||
|
||||
msg.var.redecl =\
|
||||
Erreur de type: la variable "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9e.
|
||||
|
||||
msg.const.redecl =\
|
||||
Erreur de type: la constante "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9e.
|
||||
|
||||
msg.let.redecl =\
|
||||
Erreur de type: la variable "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9e.
|
||||
|
||||
msg.parm.redecl =\
|
||||
Erreur de type: le param\u00e8tre formel "{0}" a \u00e9t\u00e9 de nouveau d\u00e9clar\u00e9.
|
||||
|
||||
msg.fn.redecl =\
|
||||
Erreur de type: la fonction "{0}" a \u00E9t\u00E9 de nouveau d\u00E9clar\u00E9e.
|
||||
|
||||
msg.let.decl.not.in.block =\
|
||||
Erreur de syntaxe: la d\u00e9claration ''let'' n''est pas directement dans un block
|
||||
|
||||
msg.bad.object.init =\
|
||||
Erreur de syntaxe: initialiseur d''objet incorrect
|
||||
|
||||
# NodeTransformer
|
||||
msg.dup.label =\
|
||||
Le libell\u00E9 {0} existe d\u00E9j\u00E0
|
||||
|
||||
msg.undef.label =\
|
||||
Le libell\u00E9 {0} n''est pas d\u00E9fini
|
||||
|
||||
msg.bad.break =\
|
||||
Le saut non libell\u00E9 doit se trouver dans une boucle ou un switch
|
||||
|
||||
msg.continue.outside =\
|
||||
continue doit se trouver dans la boucle
|
||||
|
||||
msg.continue.nonloop =\
|
||||
Il n''est possible de continuer que dans l''instruction d''it\u00E9ration libell\u00E9e
|
||||
|
||||
msg.bad.throw.eol =\
|
||||
Un retour \u00e0 la ligne n''est pas autoris\u00e9 entre un mot-clef throw et son \
|
||||
expression.
|
||||
|
||||
msg.no.paren.parms =\
|
||||
il manque ''('' avant les param\u00E8tres de la fonction
|
||||
|
||||
msg.no.parm =\
|
||||
il manque un param\u00E8tre formel
|
||||
|
||||
msg.no.paren.after.parms =\
|
||||
il manque '')'' apr\u00E8s les param\u00E8tres formels
|
||||
|
||||
msg.no.brace.body =\
|
||||
il manque ''{'' avant le corps d''une fonction
|
||||
|
||||
msg.no.brace.after.body =\
|
||||
il manque ''}'' apr\u00E8s le corps d''une fonction
|
||||
|
||||
msg.no.paren.cond =\
|
||||
il manque ''('' avant une condition
|
||||
|
||||
msg.no.paren.after.cond =\
|
||||
il manque '')'' apr\u00E8s une condition
|
||||
|
||||
msg.no.semi.stmt =\
|
||||
il manque '';'' avant une instruction
|
||||
|
||||
msg.missing.semi =\
|
||||
il manque '';'' apr\u00e8s une instruction
|
||||
|
||||
msg.no.name.after.dot =\
|
||||
il manque un nom apr\u00E8s un op\u00E9rateur ''.''
|
||||
|
||||
msg.no.name.after.coloncolon =\
|
||||
il manque un nom apr\u00e8s un op\u00e9rateur ''::''
|
||||
|
||||
msg.no.name.after.dotdot =\
|
||||
il manque un nom apr\u00e8s un op\u00e9rateur ''..''
|
||||
|
||||
msg.no.name.after.xmlAttr =\
|
||||
il manque un nom apr\u00e8s ''.@''
|
||||
|
||||
msg.no.bracket.index =\
|
||||
il manque '']'' dans l''expression de l''indice
|
||||
|
||||
msg.no.paren.switch =\
|
||||
il manque ''('' avant l''expression du switch
|
||||
|
||||
msg.no.paren.after.switch =\
|
||||
il manque '')'' apr\u00E8s l''expression du switch
|
||||
|
||||
msg.no.brace.switch =\
|
||||
il manque ''{'' avant le corps du switch
|
||||
|
||||
msg.bad.switch =\
|
||||
l''instruction switch est incorrecte
|
||||
|
||||
msg.no.colon.case =\
|
||||
il manque '':'' apr\u00E8s l''expression d''un cas
|
||||
|
||||
msg.double.switch.default =\
|
||||
le libell\u00e9 ''default'' appara\u00eet plusieurs fois dans le bloc switch
|
||||
|
||||
msg.no.while.do =\
|
||||
il manque ''while'' apr\u00E8s le corps d''une boucle do-loop
|
||||
|
||||
msg.no.paren.for =\
|
||||
il manque ''('' apr\u00E8s for
|
||||
|
||||
msg.no.semi.for =\
|
||||
Il manque '';'' apr\u00E8s l''initialiseur for-loop
|
||||
|
||||
msg.no.semi.for.cond =\
|
||||
il manque '';'' apr\u00E8s la condition for-loop
|
||||
|
||||
msg.in.after.for.name =\
|
||||
il manque le mot-clef ''in'' apr\u00e8s ''for''
|
||||
|
||||
msg.no.paren.for.ctrl =\
|
||||
il manque '')'' apr\u00E8s le contr\u00f4le for-loop
|
||||
|
||||
msg.no.paren.with =\
|
||||
il manque ''('' avant un objet with-statement
|
||||
|
||||
msg.no.paren.after.with =\
|
||||
il manque '')'' apr\u00E8s un objet with-statement
|
||||
|
||||
msg.no.with.strict =\
|
||||
L''instruction with n''est pas autoris\u00e9e en mode strict
|
||||
|
||||
msg.no.paren.after.let =\
|
||||
il manque ''('' apr\u00e8s let
|
||||
|
||||
msg.no.paren.let =\
|
||||
il manque '')'' apr\u00e8s la liste de variables
|
||||
|
||||
msg.no.curly.let =\
|
||||
il manque ''}'' apr\u00e8s l''instruction let
|
||||
|
||||
msg.bad.return =\
|
||||
la valeur renvoy\u00E9e est incorrecte
|
||||
|
||||
msg.no.brace.block =\
|
||||
il manque ''}'' dans une instruction compos\u00E9e
|
||||
|
||||
msg.bad.label =\
|
||||
le libell\u00E9 est incorrect
|
||||
|
||||
msg.bad.var =\
|
||||
il manque un nom de variable
|
||||
|
||||
msg.bad.var.init =\
|
||||
l''initialisation de la variable est incorrecte
|
||||
|
||||
msg.no.colon.cond =\
|
||||
il manque '':'' dans une expression conditionnelle
|
||||
|
||||
msg.no.paren.arg =\
|
||||
il manque '')'' apr\u00E8s une liste d''arguments
|
||||
|
||||
msg.no.bracket.arg =\
|
||||
il manque '']'' apr\u00E8s une liste d''\u00E9l\u00E9ments
|
||||
|
||||
msg.bad.prop =\
|
||||
l''identifiant de propri\u00E9t\u00E9 est incorrect
|
||||
|
||||
msg.no.colon.prop =\
|
||||
il manque '':'' apr\u00E8s un identifiant de propri\u00E9t\u00E9
|
||||
|
||||
msg.no.brace.prop =\
|
||||
il manque ''}'' apr\u00E8s une liste de propri\u00E9t\u00E9s
|
||||
|
||||
msg.no.paren =\
|
||||
il manque '')'' dans des parenth\u00E8ses
|
||||
|
||||
msg.reserved.id =\
|
||||
l''identifiant est un mot r\u00E9serv\u00E9
|
||||
|
||||
msg.no.paren.catch =\
|
||||
il manque ''('' avant une condition catch-block
|
||||
|
||||
msg.bad.catchcond =\
|
||||
la condition catch-block est incorrecte
|
||||
|
||||
msg.catch.unreachable =\
|
||||
aucune clause catch suivant une interception non qualifi\u00E9e ne peut \u00EAtre atteinte
|
||||
|
||||
msg.no.brace.try =\
|
||||
il manque ''{'' avant le bloc try
|
||||
|
||||
msg.no.brace.catchblock =\
|
||||
il manque ''{'' avant le corps catch-block
|
||||
|
||||
msg.try.no.catchfinally =\
|
||||
''try'' a \u00E9t\u00E9 d\u00E9tect\u00E9 sans ''catch'' ni ''finally''
|
||||
|
||||
msg.no.return.value =\
|
||||
la fonction {0} ne renvoie pas toujours de valeur
|
||||
|
||||
msg.anon.no.return.value =\
|
||||
la fonction anonyme ne renvoie pas toujours de valeur
|
||||
|
||||
msg.return.inconsistent =\
|
||||
l''instruction return est incoh\u00e9rente avec les usages pr\u00e9c\u00e9dents
|
||||
|
||||
msg.generator.returns =\
|
||||
Erreur de type: la fonction g\u00e9n\u00e9ratrice {0} renvoie une valeur
|
||||
|
||||
msg.anon.generator.returns =\
|
||||
Erreur de type: la fonction g\u00e9n\u00e9ratrice anonyme renvoie une valeur
|
||||
|
||||
msg.syntax =\
|
||||
erreur de syntaxe
|
||||
|
||||
msg.unexpected.eof =\
|
||||
Fin de fichier inattendue
|
||||
|
||||
msg.XML.bad.form =\
|
||||
la syntaxe XML est mal form\u00e9e
|
||||
|
||||
msg.XML.not.available =\
|
||||
L''interpr\u00e9tation du XML n''est pas disponible
|
||||
|
||||
msg.too.deep.parser.recursion =\
|
||||
R\u00e9cursion trop profonde pendant l''analyse
|
||||
|
||||
msg.too.many.constructor.args =\
|
||||
Le constructeur a trop d''arguments
|
||||
|
||||
msg.too.many.function.args =\
|
||||
La fonction a trop d''arguments
|
||||
|
||||
msg.no.side.effects =\
|
||||
Le code n''a pas de valeur de retour
|
||||
|
||||
msg.extra.trailing.semi =\
|
||||
Point virgule superflux \u00e0 la fin
|
||||
|
||||
msg.extra.trailing.comma =\
|
||||
Une virgule \u00e0 la fin d''un initialiseur d''objet n''est pas autoris\u00e9 par le standard ECMA-262
|
||||
|
||||
msg.trailing.array.comma =\
|
||||
Une virgule \u00e0 la fin d''un tableau lit\u00e9ral a un comportement diff\u00e9rent suivant le navigateur utilis\u00e9
|
||||
|
||||
msg.equal.as.assign =\
|
||||
Le test d''\u00e9galit\u00e9 (==) a t''il \u00e9t\u00e9 saisi par erreur comme une assignation (=) ?
|
||||
|
||||
msg.var.hides.arg =\
|
||||
La variable {0} masque un argument
|
||||
|
||||
msg.destruct.assign.no.init =\
|
||||
Il manque ''='' dans l''assignation d\u00e9structurante
|
||||
|
||||
msg.no.octal.strict =\
|
||||
Les nombres octaux ne sont pas autoris\u00e9s en mode strict.
|
||||
|
||||
msg.dup.obj.lit.prop.strict =\
|
||||
La propri\u00e9t\u00e9 "{0}" est d\u00e9j\u00e0 d\u00e9finie dans cet objet lit\u00e9ral.
|
||||
|
||||
msg.dup.param.strict =\
|
||||
Le param\u00e8tre "{0}" est d\u00e9j\u00e0 d\u00e9clar\u00e9 dans cette fonction.
|
||||
|
||||
msg.bad.id.strict =\
|
||||
"{0}" n''est pas un identifiant valide pour cet usage en mode strict.
|
||||
|
||||
# ScriptRuntime
|
||||
|
||||
# is there a better message for this?
|
||||
# it's currently only used as a poison pill for caller, caller and arguments properties
|
||||
msg.op.not.allowed =\
|
||||
Cette op\u00e9ration n''est pas autoris\u00e9e.
|
||||
|
||||
msg.no.properties =\
|
||||
{0} n''a pas de propri\u00e9t\u00e9s.
|
||||
|
||||
msg.invalid.iterator =\
|
||||
La valeur n''est pas un it\u00e9rateur valide
|
||||
|
||||
msg.iterator.primitive =\
|
||||
__iterator__ a renvoy\u00e9 une valeur primitive
|
||||
|
||||
msg.assn.create.strict =\
|
||||
Assignation d''une variable non d\u00e9clar\u00e9e: {0}
|
||||
|
||||
msg.ref.undefined.prop =\
|
||||
R\u00e9f\u00e9rence \u00e0 une propri\u00e9t\u00e9 non d\u00e9finie "{0}"
|
||||
|
||||
msg.prop.not.found =\
|
||||
La propri\u00E9t\u00E9 est introuvable
|
||||
|
||||
msg.set.prop.no.setter =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 ''{0}'' en l''absence de m\u00e9thode de d\u00e9finition.
|
||||
|
||||
msg.invalid.type =\
|
||||
Valeur JavaScript de type {0} incorrecte
|
||||
|
||||
msg.primitive.expected =\
|
||||
Un type primitif \u00E9tait attendu (et non {0})
|
||||
|
||||
msg.namespace.expected =\
|
||||
Un espace de nom est attendu \u00e0 gauche de :: ({0} trouv\u00e9 \u00e0 la place)
|
||||
|
||||
msg.null.to.object =\
|
||||
Il est impossible de convertir la valeur null en objet
|
||||
|
||||
msg.undef.to.object =\
|
||||
Il est impossible de convertir une valeur non d\u00E9finie en objet
|
||||
|
||||
msg.cyclic.value =\
|
||||
La valeur cyclique {0} n''est pas autoris\u00E9e
|
||||
|
||||
msg.is.not.defined =\
|
||||
"{0}" n''est pas d\u00E9fini
|
||||
|
||||
msg.undef.prop.read =\
|
||||
Impossible de lire la propri\u00e9t\u00e9 "{1}" de {0}
|
||||
|
||||
msg.undef.prop.write =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 "{1}" de {0} en "{2}"
|
||||
|
||||
msg.undef.prop.delete =\
|
||||
Impossible de supprimer la propri\u00e9t\u00e9 "{1}" de {0}
|
||||
|
||||
msg.undef.method.call =\
|
||||
Impossible d''appeler la m\u00e9thode "{1}" de {0}
|
||||
|
||||
msg.undef.with =\
|
||||
Impossible d''appliquer "with" \u00e0 {0}
|
||||
|
||||
msg.isnt.function =\
|
||||
{0} n''est pas une fonction, c''est un {1}
|
||||
|
||||
msg.isnt.function.in =\
|
||||
Impossible d''appeler la propri\u00e9t\u00e9 {0} de l''objet {1}. Ce n''est pas une fonction, c''est un "{2}".
|
||||
|
||||
msg.function.not.found =\
|
||||
Impossible de trouver la fonction {0}.
|
||||
|
||||
msg.function.not.found.in =\
|
||||
Impossible de trouver la fonction {0} dans l''objet {1}.
|
||||
|
||||
msg.isnt.xml.object =\
|
||||
{0} n''est pas un objet xml.
|
||||
|
||||
msg.no.ref.to.get =\
|
||||
{0} n''est pas une r\u00e9f\u00e9rence vers une m\u00e9thode d''obtention.
|
||||
|
||||
msg.no.ref.to.set =\
|
||||
{0} n''est pas une r\u00e9f\u00e9rence vers une m\u00e9thode de d\u00e9finition.
|
||||
|
||||
msg.no.ref.from.function =\
|
||||
La fonction {0} ne peut pas \u00eatre utilis\u00e9e comme la partie gauche de l''assignation \
|
||||
ou comme l''op\u00e9rande de l''op\u00e9rateur ++ ou --.
|
||||
|
||||
msg.bad.default.value =\
|
||||
La m\u00E9thode getDefaultValue() de l''objet a renvoy\u00E9 un objet
|
||||
|
||||
msg.instanceof.not.object =\
|
||||
Il est impossible d''utiliser une instance d''un \u00E9l\u00E9ment autre qu''un objet
|
||||
|
||||
msg.instanceof.bad.prototype =\
|
||||
La propri\u00E9t\u00E9 ''prototype'' de {0} n''est pas un objet
|
||||
|
||||
msg.in.not.object = \
|
||||
Il est impossible d''utiliser une instance d''un \u00E9l\u00E9ment autre qu''un objet
|
||||
|
||||
msg.bad.radix =\
|
||||
la base {0} n''est pas autoris\u00E9e
|
||||
|
||||
# ScriptableObject
|
||||
msg.default.value =\
|
||||
La valeur par d\u00E9faut de l''objet est introuvable
|
||||
|
||||
msg.zero.arg.ctor =\
|
||||
Il est impossible de charger la classe "{0}", qui ne poss\u00E8de pas de constructeur de param\u00E8tre z\u00E9ro
|
||||
|
||||
duplicate.defineClass.name =\
|
||||
M\u00e9thode "{0}" incorrecte: le nom "{1}" est d\u00e9j\u00e0 utilis\u00e9.
|
||||
|
||||
msg.ctor.multiple.parms =\
|
||||
Il est impossible de d\u00E9finir le constructeur ou la classe {0} car plus d''un \
|
||||
constructeur poss\u00E8de plusieurs param\u00E8tres
|
||||
|
||||
msg.extend.scriptable =\
|
||||
{0} doit \u00E9tendre ScriptableObject afin de d\u00E9finir la propri\u00E9t\u00E9 {1}
|
||||
|
||||
msg.bad.getter.parms =\
|
||||
Pour d\u00E9finir une propri\u00E9t\u00E9, la m\u00E9thode d''obtention {0} doit avoir des param\u00E8tres z\u00E9ro \
|
||||
ou un seul param\u00E8tre ScriptableObject
|
||||
|
||||
msg.obj.getter.parms =\
|
||||
La m\u00E9thode d''obtention statique ou d\u00E9l\u00E9gu\u00E9e {0} doit utiliser un param\u00E8tre ScriptableObject
|
||||
|
||||
msg.getter.static =\
|
||||
La m\u00E9thode d''obtention et la m\u00E9thode de d\u00E9finition doivent toutes deux avoir le m\u00EAme \u00E9tat (statique ou non)
|
||||
|
||||
msg.setter.return =\
|
||||
La m\u00e9thode de d\u00e9finition doit avoir un type de retour vide: {0}
|
||||
|
||||
msg.setter2.parms =\
|
||||
La m\u00E9thode de d\u00E9finition \u00E0 deux param\u00E8tres doit utiliser un param\u00E8tre ScriptableObject comme premier param\u00E8tre
|
||||
|
||||
msg.setter1.parms =\
|
||||
Une m\u00E9thode d''obtention \u00E0 param\u00E8tre unique est attendue pour {0}
|
||||
|
||||
msg.setter2.expected =\
|
||||
La m\u00E9thode de d\u00E9finition statique ou d\u00E9l\u00E9gu\u00E9e {0} doit utiliser deux param\u00E8tres
|
||||
|
||||
msg.setter.parms =\
|
||||
Un ou deux param\u00E8tres sont attendus pour la m\u00E9thode de d\u00E9finition
|
||||
|
||||
msg.setter.bad.type =\
|
||||
Le type de param\u00e8tre "{0}" est incorrect dans la m\u00e9thode de d\u00e9finition "{1}".
|
||||
|
||||
msg.add.sealed =\
|
||||
Il est impossible d''ajouter une propri\u00E9t\u00E9 \u00E0 un objet scell\u00E9: {0}.
|
||||
|
||||
msg.remove.sealed =\
|
||||
Il est impossible de supprimer une propri\u00E9t\u00E9 d''un objet scell\u00E9: {0}.
|
||||
|
||||
msg.modify.sealed =\
|
||||
Il est impossible de modifier une propri\u00e9t\u00e9 d''un objet scell\u00E9: {0}.
|
||||
|
||||
msg.modify.readonly =\
|
||||
Il est impossible de modifier une propri\u00e9t\u00e9 en lecture seule: {0}.
|
||||
|
||||
msg.both.data.and.accessor.desc =\
|
||||
Le descripteur ne peut pas d\u00e9finir \u00e0 la fois un accesseur et une donn\u00e9e.
|
||||
|
||||
msg.change.configurable.false.to.true =\
|
||||
Impossible de changer de false \u00e0 true l''attribut ''configurable'' de "{0}".
|
||||
|
||||
msg.change.enumerable.with.configurable.false =\
|
||||
Impossible de changer l''attribut ''enumerable'' de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.writable.false.to.true.with.configurable.false =\
|
||||
Impossible de changer de false \u00e0 true l''attribut ''writable'' de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.value.with.writable.false =\
|
||||
Impossible de changer la valeur de l''attribut "{0}" car ''writable'' est ''false''.
|
||||
|
||||
msg.change.getter.with.configurable.false =\
|
||||
Impossible de changer l''attribut get de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.setter.with.configurable.false =\
|
||||
Impossible de changer l''attribut set de "{0}" car ''configurable'' est ''false''.
|
||||
|
||||
msg.change.property.data.to.accessor.with.configurable.false =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 par donn\u00e9e "{0}" en propri\u00e9t\u00e9 par accesseur car ''configurable'' est ''false''
|
||||
|
||||
msg.change.property.accessor.to.data.with.configurable.false =\
|
||||
Impossible de changer la propri\u00e9t\u00e9 par accesseur "{0}" en propri\u00e9t\u00e9 par donn\u00e9e car ''configurable'' est ''false''
|
||||
|
||||
msg.not.extensible =\
|
||||
Impossible d''ajouter des propri\u00e9t\u00e9s \u00e0 cet objet car ''extensible'' est ''false''.
|
||||
|
||||
# TokenStream
|
||||
msg.missing.exponent =\
|
||||
il manque un exposant
|
||||
|
||||
msg.caught.nfe =\
|
||||
erreur de format de nombre: {0}
|
||||
|
||||
msg.unterminated.string.lit =\
|
||||
le litt\u00E9ral de la cha\u00EEne n''a pas de limite
|
||||
|
||||
msg.unterminated.comment =\
|
||||
le commentaire n''a pas de limite
|
||||
|
||||
msg.unterminated.re.lit =\
|
||||
le litt\u00E9ral de l''expression rationnelle n''a pas de limite
|
||||
|
||||
msg.invalid.re.flag =\
|
||||
une expression rationnelle est suivie d''un indicateur incorrect ''{0}''
|
||||
|
||||
msg.no.re.input.for =\
|
||||
il n''y a pas d''entr\u00E9e pour {0}
|
||||
|
||||
msg.illegal.character =\
|
||||
caract\u00E8re non autoris\u00E9
|
||||
|
||||
msg.invalid.escape =\
|
||||
la s\u00E9quence d''\u00E9chappement Unicode est incorrecte
|
||||
|
||||
msg.bad.namespace =\
|
||||
L''instruction ''default xml namespace'' est incorrecte. \
|
||||
La syntaxe est: default xml namespace = EXPRESSION;
|
||||
|
||||
# TokensStream warnings
|
||||
msg.bad.octal.literal =\
|
||||
le chiffre octal du litt\u00E9ral, {0}, n''est pas autoris\u00E9 et sera interpr\u00E9t\u00E9 comme un chiffre d\u00E9cimal
|
||||
|
||||
msg.reserved.keyword =\
|
||||
l''utilisation du futur mot-cl\u00E9 r\u00E9serv\u00E9 {0} n''est pas autoris\u00E9e et celui-ci sera interpr\u00E9t\u00E9 comme un identifiant ordinaire
|
||||
|
||||
# LiveConnect errors
|
||||
msg.java.internal.field.type =\
|
||||
Erreur interne: la conversion de type de {0} afin d''affecter {1} \u00E0 {2} a \u00E9chou\u00E9
|
||||
|
||||
msg.java.conversion.implicit_method =\
|
||||
La m\u00E9thode de conversion "{0}" est introuvable dans la classe {1}
|
||||
|
||||
msg.java.method.assign =\
|
||||
La m\u00E9thode Java "{0}" ne peut pas \u00EAtre affect\u00E9e \u00E0
|
||||
|
||||
msg.java.internal.private =\
|
||||
Erreur interne: une tentative d''acc\u00E9der \u00E0 un champ "{0}" priv\u00E9/prot\u00E9g\u00E9 a \u00E9t\u00E9 d\u00E9tect\u00E9e
|
||||
|
||||
msg.java.no_such_method =\
|
||||
La m\u00E9thode ''{0}'' est introuvable
|
||||
|
||||
msg.script.is.not.constructor =\
|
||||
Les objets Script ne sont pas des constructeurs
|
||||
|
||||
msg.nonjava.method =\
|
||||
La m\u00E9thode Java "{0}" a \u00E9t\u00E9 appel\u00E9e avec une valeur ''this'' qui n''est pas un objet Java
|
||||
|
||||
msg.java.member.not.found =\
|
||||
La classe Java "{0}" ne poss\u00E8de aucun champ ou aucune m\u00E9thode d''instance publique appel\u00E9 "{1}"
|
||||
|
||||
msg.java.array.index.out.of.bounds =\
|
||||
L''indice {0} du tableau est en dehors de l''intervalle [0..{1}].
|
||||
|
||||
msg.java.array.member.not.found =\
|
||||
Les tableaux Java n''ont pas de champs ou de m\u00e9thodes publiques "{0}".
|
||||
|
||||
msg.pkg.int =\
|
||||
Les noms de package Java ne peuvent pas \u00EAtre des nombres
|
||||
|
||||
msg.access.prohibited =\
|
||||
L''acc\u00e8s \u00e0 la classe Java "{0}" est prohib\u00e9.
|
||||
|
||||
# ImporterTopLevel
|
||||
msg.ambig.import =\
|
||||
Importation ambigu\u00EB: "{0}" et "{1}"
|
||||
|
||||
msg.not.pkg =\
|
||||
La fonction importPackage doit \u00EAtre appel\u00E9e avec un package et non avec "{0}"
|
||||
|
||||
msg.not.class =\
|
||||
La fonction importClass doit \u00EAtre appel\u00E9e avec une classe et non avec "{0}"
|
||||
|
||||
msg.not.class.not.pkg =\
|
||||
"{0}" n''est ni une classe ni un package.
|
||||
|
||||
msg.prop.defined =\
|
||||
Il est impossible d''importer "{0}" car une propri\u00E9t\u00E9 portant le m\u00EAme nom a d\u00E9j\u00E0 \u00E9t\u00E9 d\u00E9finie
|
||||
|
||||
#JavaAdapter
|
||||
msg.adapter.zero.args =\
|
||||
JavaAdapter n\u00e9cessite au moins un argument.
|
||||
|
||||
msg.not.java.class.arg = \
|
||||
L''argument {0} n''est pas une classe Java: {1}.
|
||||
|
||||
#JavaAdapter
|
||||
msg.only.one.super = \
|
||||
Un JavaAdapter ne peut \u00e9tendre qu''une seule classe. Les classes {0} et {1} ont \u00e9t\u00e9 donn\u00e9es.
|
||||
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.bad =\
|
||||
La longueur du tableau n''est pas appropri\u00E9e
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.too.big =\
|
||||
La longueur du tableau {0} d\u00e9passe la capacit\u00e9 limite.
|
||||
|
||||
msg.empty.array.reduce =\
|
||||
La m\u00e9thode ''reduce'' ne fonctionne pas sans valeur initiale sur un tableau vide
|
||||
|
||||
# URI
|
||||
msg.bad.uri =\
|
||||
La s\u00E9quence URI n''est pas form\u00E9e correctement
|
||||
|
||||
# Number
|
||||
msg.bad.precision =\
|
||||
La pr\u00E9cision {0} ne se trouve pas dans la plage de valeurs
|
||||
|
||||
# NativeGenerator
|
||||
msg.send.newborn =\
|
||||
La m\u00e9thode send() d''un g\u00e9n\u00e9rateur ne peut \u00eatre appel\u00e9e avant un premier appel \u00e0 next()
|
||||
|
||||
msg.already.exec.gen =\
|
||||
Le g\u00e9n\u00e9rateur est d\u00e9j\u00e0 en cours d''ex\u00e9cution
|
||||
|
||||
msg.StopIteration.invalid =\
|
||||
L''exception StopIteration ne peut pas \u00eatre chang\u00e9e en un objet arbitraire.
|
||||
|
||||
# Interpreter
|
||||
msg.yield.closing =\
|
||||
yield impossible quand le g\u00e9n\u00e9rateur est en train de se fermer
|
||||
@@ -1,879 +0,0 @@
|
||||
#
|
||||
# Default JavaScript messages file.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# This is replaced during jar assembly from property string
|
||||
# and should not be translated
|
||||
implementation.version = @IMPLEMENTATION.VERSION@
|
||||
|
||||
#
|
||||
# To add JavaScript error messages for a particular locale, create a
|
||||
# new Messages_[locale].properties file, where [locale] is the Java
|
||||
# string abbreviation for that locale. For example, JavaScript
|
||||
# messages for the Polish locale should be located in
|
||||
# Messages_pl.properties, and messages for the Italian Swiss locale
|
||||
# should be located in Messages_it_CH.properties. Message properties
|
||||
# files should be accessible through the classpath under
|
||||
# org.mozilla.javascript.resources
|
||||
#
|
||||
# See:
|
||||
# java.util.ResourceBundle
|
||||
# java.text.MessageFormat
|
||||
#
|
||||
|
||||
# SomeJavaClassWhereUsed
|
||||
|
||||
params.omit.non.js.object.warning = true
|
||||
|
||||
msg.non.js.object.warning =\
|
||||
Rhino用法警告:缺少 Context.javaToJS() 转换:Rhino 运行时检测到类 “{1}” 的对象 “{0}”,它需要字符串、数字、布尔值或可编写脚本的实例。请检查您的代码是否缺少 Context.javaToJS() 调用。
|
||||
|
||||
# Codegen
|
||||
msg.dup.parms =\
|
||||
参数名称 “{0}” 已存在。
|
||||
|
||||
msg.too.big.jump =\
|
||||
程序太复杂:跳转偏移量太大。
|
||||
|
||||
msg.too.big.index =\
|
||||
程序太复杂:内部索引超过 64KB 限制。
|
||||
|
||||
msg.while.compiling.fn =\
|
||||
编译函数 “{0}” 时遇到代码生成错误:{1}
|
||||
|
||||
msg.while.compiling.script =\
|
||||
编译脚本时遇到代码生成错误:{0}
|
||||
|
||||
# Context
|
||||
msg.ctor.not.found =\
|
||||
未找到 “{0}” 的构造函数。
|
||||
|
||||
msg.not.ctor =\
|
||||
“{0}” 不是构造函数。
|
||||
|
||||
# FunctionObject
|
||||
msg.varargs.ctor =\
|
||||
方法或构造函数 “{0}” 必须是带有签名的静态 \
|
||||
“(Context cx, Object[] args, Function ctorObj, boolean inNewExpr)” \
|
||||
以定义可变参数的构造函数。
|
||||
|
||||
msg.varargs.fun =\
|
||||
方法 “{0}” 必须是带有签名的静态 \
|
||||
“(Context cx, Scriptable thisObj, Object[] args, Function funObj)” \
|
||||
以定义可变参数的函数。
|
||||
|
||||
msg.incompat.call =\
|
||||
在不兼容的对象中调用了方法 “{0}”。
|
||||
|
||||
msg.incompat.call.details =\
|
||||
对不兼容对象调用的方法 “{0}”({1} 不是 {2} 的实例)。
|
||||
|
||||
msg.bad.parms =\
|
||||
方法 “{1}” 中不支持参数类型 “{0}”。
|
||||
|
||||
msg.bad.method.return =\
|
||||
方法 “{1}” 中不支持返回类型 “{0}”。
|
||||
|
||||
msg.bad.ctor.return =\
|
||||
无法构造 “{0}” 类型的对象。
|
||||
|
||||
msg.no.overload =\
|
||||
方法 “{0}” 在类 “{1}” 中出现多次。
|
||||
|
||||
msg.method.not.found =\
|
||||
在 “{1}” 中找不到方法 “{0}” 。
|
||||
|
||||
msg.method.missing.parameter =\
|
||||
{0}:至少需要 {1} 个参数,但仅通过了 {2} 个
|
||||
|
||||
# IRFactory
|
||||
|
||||
msg.bad.for.in.lhs =\
|
||||
for..in 循环的左边部分不正确。
|
||||
|
||||
msg.mult.index =\
|
||||
for..in 循环中只允许有一个变量
|
||||
|
||||
msg.bad.for.in.destruct =\
|
||||
for..in 循环的左侧必须是一个长度为 2 的数组才能接受一个键值对。
|
||||
|
||||
msg.cant.convert =\
|
||||
无法转换为类型 “{0}”。
|
||||
|
||||
msg.bad.assign.left =\
|
||||
左侧分配无效。
|
||||
|
||||
msg.bad.decr =\
|
||||
递减的操作数无效。
|
||||
|
||||
msg.bad.incr =\
|
||||
递增的操作数无效。
|
||||
|
||||
msg.bad.yield =\
|
||||
yield 必须在函数内部。
|
||||
|
||||
msg.yield.parenthesized =\
|
||||
yield 后面的表达式必须放在括号中。
|
||||
|
||||
# NativeGlobal
|
||||
msg.cant.call.indirect =\
|
||||
必须直接调用函数 “{0}”,而不是通过具有其他名称的函数。
|
||||
|
||||
msg.eval.nonstring =\
|
||||
如果您使用不是原始字符串的值调用 eval() 函数,\
|
||||
则返回有问题的值。那是你的意图吗?
|
||||
|
||||
msg.eval.nonstring.strict =\
|
||||
在严格模式下,不能使用原始字符串以外的值调用 eval() 函数。
|
||||
|
||||
msg.bad.destruct.op =\
|
||||
无效的解构赋值运算符
|
||||
|
||||
# NativeCall
|
||||
msg.only.from.new =\
|
||||
“构造函数 {0}”只能从 “new” 表达式调用。
|
||||
|
||||
msg.deprec.ctor =\
|
||||
“{0}” 构造函数已弃用。
|
||||
|
||||
# NativeFunction
|
||||
msg.no.function.ref.found =\
|
||||
未找到反编译函数引用 {0} 的源
|
||||
|
||||
msg.arg.isnt.array =\
|
||||
Function.prototype.apply 方法的第二个参数必须是一个数组
|
||||
|
||||
# NativeGlobal
|
||||
msg.bad.esc.mask =\
|
||||
字符串转义掩码不正确
|
||||
|
||||
# NativeJavaClass
|
||||
msg.cant.instantiate =\
|
||||
实例化错误 ({0}):类 {1} 是接口或抽象类
|
||||
|
||||
msg.bad.ctor.sig =\
|
||||
检测到具有不正确签名的构造函数:\
|
||||
{0} 调用带有签名 {2} 的 {1}
|
||||
|
||||
msg.not.java.obj =\
|
||||
getClass() 函数的预期参数必须是 Java 对象。
|
||||
|
||||
msg.no.java.ctor =\
|
||||
未找到带有参数 “{1}” 的 “{0}” 的 Java 构造函数。
|
||||
|
||||
# NativeJavaMethod
|
||||
msg.method.ambiguous =\
|
||||
对应于 JavaScript 参数类型 ({2}) 的 Java 方法 {0}.{1} 的选择不明确。 \
|
||||
建议的方法是:{3}
|
||||
|
||||
msg.constructor.ambiguous =\
|
||||
对应于 JavaScript 参数类型 ({1}) 的 Java 构造函数 {0} 的选择不明确。 \
|
||||
建议的构造函数是:{2}
|
||||
|
||||
# NativeJavaObject
|
||||
msg.conversion.not.allowed =\
|
||||
无法将 {0} 转换为 {1}
|
||||
|
||||
msg.no.empty.interface.conversion =\
|
||||
无法在没有任何方法的情况下将函数转换为接口 {0}
|
||||
|
||||
msg.no.function.interface.conversion =\
|
||||
无法将函数 {0} 转换为接口,因为它包含具有不同名称的方法
|
||||
|
||||
msg.undefined.function.interface =\
|
||||
接口适配器中未设置属性“{0}”
|
||||
|
||||
msg.not.function.interface =\
|
||||
属性 “{0}” 不是接口适配器中的函数
|
||||
|
||||
# NativeJavaPackage
|
||||
msg.not.classloader =\
|
||||
“Packages” 的构造函数需要 java.lang.Classloader 类型的参数
|
||||
|
||||
# NativeRegExp
|
||||
msg.bad.quant =\
|
||||
量词 {0} 不正确
|
||||
|
||||
msg.overlarge.backref =\
|
||||
过大的反向引用 {0}
|
||||
|
||||
msg.overlarge.min =\
|
||||
最小值 {0} 太大
|
||||
|
||||
msg.overlarge.max =\
|
||||
最大值 {0} 太大
|
||||
|
||||
msg.zero.quant =\
|
||||
量词 {0} 为空
|
||||
|
||||
msg.max.lt.min =\
|
||||
最大值 {0} 小于最小值
|
||||
|
||||
msg.unterm.quant =\
|
||||
量词 {0} 没有限制
|
||||
|
||||
msg.unterm.paren =\
|
||||
{0} 括号没有限制
|
||||
|
||||
msg.unterm.class =\
|
||||
字符类 {0} 没有限制
|
||||
|
||||
msg.bad.range =\
|
||||
字符类包含不正确的值范围。
|
||||
|
||||
msg.trail.backslash =\
|
||||
“\\” 在正则表达式的末尾。
|
||||
|
||||
msg.re.unmatched.right.paren =\
|
||||
只有一个 “)” 在正则表达式中。
|
||||
|
||||
msg.no.regexp =\
|
||||
正则表达式不可用。
|
||||
|
||||
msg.bad.backref =\
|
||||
反向引用超过了捕获括号的数量。
|
||||
|
||||
msg.bad.regexp.compile =\
|
||||
如果 RegExp.prototype.compile 的第一个参数是 RegExp 类型的对象,则只能指定一个参数。
|
||||
|
||||
msg.arg.not.object =\
|
||||
预期参数的类型是 “object” 而不是 “{0}”
|
||||
|
||||
# NativeDate
|
||||
msg.invalid.date =\
|
||||
日期不正确。
|
||||
|
||||
msg.toisostring.must.return.primitive =\
|
||||
toISOString 应该返回一个原始值,而不是返回 “{0}”
|
||||
|
||||
# NativeJSON
|
||||
msg.json.cant.serialize =\
|
||||
不知道如何序列化 {0}
|
||||
|
||||
# Parser
|
||||
msg.got.syntax.errors = \
|
||||
编译产生 {0} 个语法错误。
|
||||
|
||||
msg.var.redecl =\
|
||||
类型错误:变量 {0} 被重新声明。
|
||||
|
||||
msg.const.redecl =\
|
||||
类型错误:重新声明了常量 {0}。
|
||||
|
||||
msg.let.redecl =\
|
||||
类型错误:变量 {0} 被重新声明。
|
||||
|
||||
msg.parm.redecl =\
|
||||
类型错误:重新声明了形式参数 {0} 。
|
||||
|
||||
msg.fn.redecl =\
|
||||
类型错误:重新声明了函数 {0}。
|
||||
|
||||
msg.let.decl.not.in.block =\
|
||||
语法错误:let 语句不能直接在块中
|
||||
|
||||
msg.bad.object.init =\
|
||||
语法错误:无效的对象初始化程序
|
||||
|
||||
# NodeTransformer
|
||||
msg.dup.label =\
|
||||
标签 {0} 已存在
|
||||
|
||||
msg.undef.label =\
|
||||
标签 {0} 未定义
|
||||
|
||||
msg.bad.break =\
|
||||
未标记的 break 必须在 loop 或 switch 内
|
||||
|
||||
msg.continue.outside =\
|
||||
只能在循环语句中使用 continue
|
||||
|
||||
msg.continue.nonloop =\
|
||||
只能在迭代语句中使用 continue
|
||||
|
||||
msg.bad.throw.eol =\
|
||||
在关键字 throw 与 throw 表达式之间不允许使用换行符表示。
|
||||
|
||||
msg.no.paren.parms =\
|
||||
在函数参数前面缺少 “(”。
|
||||
|
||||
msg.no.parm =\
|
||||
缺少形式参数
|
||||
|
||||
msg.no.paren.after.parms =\
|
||||
在形式参数后面缺少 “)”
|
||||
|
||||
msg.no.brace.body =\
|
||||
在函数体前面缺少 “{”
|
||||
|
||||
msg.no.brace.after.body =\
|
||||
在函数体后面缺少 “}”
|
||||
|
||||
msg.no.paren.cond =\
|
||||
在条件前面缺少 “(”
|
||||
|
||||
msg.no.paren.after.cond =\
|
||||
在字符 “)” 后面缺少条件
|
||||
|
||||
msg.no.semi.stmt =\
|
||||
在语句前面缺少 “;”
|
||||
|
||||
msg.missing.semi =\
|
||||
在语句后面缺少 “;”
|
||||
|
||||
msg.no.name.after.dot =\
|
||||
在运算符 “.” 后面缺少名称
|
||||
|
||||
msg.no.name.after.coloncolon =\
|
||||
在运算符 “::” 后面缺少名称
|
||||
|
||||
msg.no.name.after.dotdot =\
|
||||
在运算符 “..” 后面缺少名称
|
||||
|
||||
msg.no.name.after.xmlAttr =\
|
||||
在 “.@” 后面缺少名称
|
||||
|
||||
msg.no.bracket.index =\
|
||||
在索引表达式中缺少 “]”
|
||||
|
||||
msg.no.paren.switch =\
|
||||
在 switch 表达式的前面缺少 “(”
|
||||
|
||||
msg.no.paren.after.switch =\
|
||||
在 switch 表达式的后面缺少 “)”
|
||||
|
||||
msg.no.brace.switch =\
|
||||
在 switch 正文的前面缺少 “{”
|
||||
|
||||
msg.bad.switch =\
|
||||
switch 语句不正确
|
||||
|
||||
msg.no.colon.case =\
|
||||
在 case 表达式的后面缺少 “:”
|
||||
|
||||
msg.double.switch.default =\
|
||||
default 标签在 switch 语句中重复出现
|
||||
|
||||
msg.no.while.do =\
|
||||
在 do-loop 的后面缺少 while
|
||||
|
||||
msg.no.paren.for =\
|
||||
在 for 之后缺少 “(”
|
||||
|
||||
msg.no.semi.for =\
|
||||
在 for-loop 初始化程序的后面缺少 “;”
|
||||
|
||||
msg.no.semi.for.cond =\
|
||||
在 for-loop 条件的后面缺少 “;”
|
||||
|
||||
msg.in.after.for.name =\
|
||||
在 for 的后面缺少 “in”
|
||||
|
||||
msg.no.paren.for.ctrl =\
|
||||
在 for-loop 控件的后面缺少 “)”
|
||||
|
||||
msg.no.paren.with =\
|
||||
在 With-Statement 对象的前面缺少 “(”
|
||||
|
||||
msg.no.paren.after.with =\
|
||||
在 With-Statement 对象的后面面缺少 “(”
|
||||
|
||||
msg.no.with.strict =\
|
||||
严格模式下不允许使用 with 语句
|
||||
|
||||
msg.no.paren.after.let =\
|
||||
在 let 的后面缺少 “(”
|
||||
|
||||
msg.no.paren.let =\
|
||||
在变量列表后面缺少 “)”
|
||||
|
||||
msg.no.curly.let =\
|
||||
在 let 语句的后面缺少 “}”
|
||||
|
||||
msg.bad.return =\
|
||||
返回的值无效
|
||||
|
||||
msg.no.brace.block =\
|
||||
复合语句中缺少 “}”
|
||||
|
||||
msg.bad.label =\
|
||||
无效标签
|
||||
|
||||
msg.bad.var =\
|
||||
缺少变量名
|
||||
|
||||
msg.bad.var.init =\
|
||||
变量初始化不正确
|
||||
|
||||
msg.no.colon.cond =\
|
||||
在条件表达式中缺少 “:”
|
||||
|
||||
msg.no.paren.arg =\
|
||||
在参数列表的后面缺少 “)”
|
||||
|
||||
msg.no.bracket.arg =\
|
||||
在元素列表的后面缺少 “]”
|
||||
|
||||
msg.bad.prop =\
|
||||
属性 ID 不正确
|
||||
|
||||
msg.no.colon.prop =\
|
||||
在属性 ID 的后面缺少 “:”
|
||||
|
||||
msg.no.brace.prop =\
|
||||
在属性列表的后面缺少 “}”
|
||||
|
||||
msg.no.paren =\
|
||||
在括号中缺少 “)”
|
||||
|
||||
msg.reserved.id =\
|
||||
标识符是保留字: {0}
|
||||
|
||||
msg.no.paren.catch =\
|
||||
在 catch-block 条件的前面缺少 “(”
|
||||
|
||||
msg.bad.catchcond =\
|
||||
无效的 catch-block 条件
|
||||
|
||||
msg.catch.unreachable =\
|
||||
不合格的 catch 后面的任何 catch 子句都是到达不了的
|
||||
|
||||
msg.no.brace.try =\
|
||||
在 try 的前面缺少 “{”
|
||||
|
||||
msg.no.brace.catchblock =\
|
||||
在 catch-block 主体的前面缺少 “{”
|
||||
|
||||
msg.try.no.catchfinally =\
|
||||
try 被检测到没有 catch 或 finally
|
||||
|
||||
msg.no.return.value =\
|
||||
函数 {0} 并不总是返回值
|
||||
|
||||
msg.anon.no.return.value =\
|
||||
匿名函数并不总是返回值
|
||||
|
||||
msg.return.inconsistent =\
|
||||
return 语句与之前的用法不一致
|
||||
|
||||
msg.generator.returns =\
|
||||
类型错误:生成器函数 {0} 返回一个值
|
||||
|
||||
msg.anon.generator.returns =\
|
||||
类型错误:匿名生成器函数返回一个值
|
||||
|
||||
msg.syntax =\
|
||||
语法错误
|
||||
|
||||
msg.unexpected.eof =\
|
||||
文件意外结束
|
||||
|
||||
msg.XML.bad.form =\
|
||||
XML 语法格式错误
|
||||
|
||||
msg.XML.not.available =\
|
||||
XML 解析不可用
|
||||
|
||||
msg.too.deep.parser.recursion =\
|
||||
解析期间递归太深
|
||||
|
||||
msg.too.many.constructor.args =\
|
||||
构造函数的参数太多
|
||||
|
||||
msg.too.many.function.args =\
|
||||
函数的参数太多
|
||||
|
||||
msg.no.side.effects =\
|
||||
代码没有返回值
|
||||
|
||||
msg.extra.trailing.semi =\
|
||||
末尾有多余的分号
|
||||
|
||||
msg.extra.trailing.comma =\
|
||||
按照 ECMA-262 的标准不允许对象初始值设定项末尾的逗号
|
||||
|
||||
msg.trailing.array.comma =\
|
||||
数组文字末尾的逗号根据所使用的浏览器表现不同
|
||||
|
||||
msg.equal.as.assign =\
|
||||
判断相等性 “==” 错误地输入成为赋值 “=” ?
|
||||
|
||||
msg.var.hides.arg =\
|
||||
变量 {0} 隐藏了一个参数
|
||||
|
||||
msg.destruct.assign.no.init =\
|
||||
解构赋值中缺少 “=”
|
||||
|
||||
msg.destruct.default.vals =\
|
||||
解构声明中的默认值不支持
|
||||
|
||||
msg.no.old.octal.strict =\
|
||||
严格模式下不允许使用旧的八进制数。
|
||||
|
||||
msg.no.old.octal.bigint =\
|
||||
BigInt 中不允许使用旧的八进制数。
|
||||
|
||||
msg.dup.obj.lit.prop.strict =\
|
||||
此对象文字中已定义属性 “{0}”。
|
||||
|
||||
msg.dup.param.strict =\
|
||||
此函数中已声明参数 “{0}”。
|
||||
|
||||
msg.bad.id.strict =\
|
||||
“{0}” 不是严格模式下此用途的有效标识符。
|
||||
|
||||
msg.no.unary.expr.on.left.exp =\
|
||||
“{0}” 不允许出现在 “**” 的左侧。
|
||||
|
||||
# 脚本运行时(ScriptRuntime)
|
||||
|
||||
# is there a better message for this?
|
||||
# it's currently only used as a poison pill for caller, caller and arguments properties
|
||||
msg.op.not.allowed =\
|
||||
不允许此操作。
|
||||
|
||||
msg.no.properties =\
|
||||
{0} 没有属性。
|
||||
|
||||
msg.invalid.iterator =\
|
||||
值不是有效的迭代器
|
||||
|
||||
msg.iterator.primitive =\
|
||||
__iterator__ 返回一个原始值
|
||||
|
||||
msg.not.iterable = \
|
||||
{0} 不可迭代
|
||||
|
||||
msg.invalid.for.each = \
|
||||
对每个循环无效
|
||||
|
||||
msg.assn.create.strict =\
|
||||
未声明变量的赋值 {0}
|
||||
|
||||
msg.ref.undefined.prop =\
|
||||
对未定义属性 “{0}” 的引用
|
||||
|
||||
msg.prop.not.found =\
|
||||
未找到属性 {0}。
|
||||
|
||||
msg.set.prop.no.setter =\
|
||||
无法将只有 getter 的属性 {0} 的值设置为 “{1}”。
|
||||
|
||||
msg.invalid.type =\
|
||||
{0} 类型的 JavaScript 值无效
|
||||
|
||||
msg.primitive.expected =\
|
||||
需要使用原始类型,而不是使用 {0}
|
||||
|
||||
msg.namespace.expected =\
|
||||
命名空间对象应该位于 “::” 左侧(找到 {0} 代替)
|
||||
|
||||
msg.null.to.object =\
|
||||
无法将 null 转换为对象。
|
||||
|
||||
msg.undef.to.object =\
|
||||
无法将未定义的值转换为对象。
|
||||
|
||||
msg.cant.convert.to.bigint =\
|
||||
无法将 {0} 转换为 BigInt。
|
||||
|
||||
msg.cant.convert.to.bigint.isnt.integer =\
|
||||
无法将 {0} 转换为 BigInt,它不是整数。
|
||||
|
||||
msg.bigint.bad.form =\
|
||||
不允许形成的 BigInt 语法
|
||||
|
||||
msg.cyclic.value =\
|
||||
不允许使用循环 “{0}” 值。
|
||||
|
||||
msg.is.not.defined =\
|
||||
“{0}” 未定义。
|
||||
|
||||
msg.undef.prop.read =\
|
||||
无法读取 {0} 的属性 “{1}”
|
||||
|
||||
msg.undef.prop.write =\
|
||||
无法将 {0} 的属性 “{1}” 设置为 “{2}”
|
||||
|
||||
msg.undef.prop.delete =\
|
||||
无法删除 {0} 的属性 “{1}”
|
||||
|
||||
msg.undef.method.call =\
|
||||
无法调用 {0} 的方法 “{1}”
|
||||
|
||||
msg.undef.with =\
|
||||
无法将 “with” 应用于 {0}
|
||||
|
||||
msg.isnt.function =\
|
||||
{0} 不是函数,它是 {1}。
|
||||
|
||||
msg.isnt.function.in =\
|
||||
无法调用对象 {1} 中的属性 {0}。它不是一个函数,而是 “{2}”。
|
||||
|
||||
msg.function.not.found =\
|
||||
找不到函数 {0}。
|
||||
|
||||
msg.function.not.found.in =\
|
||||
在对象 {1} 中找不到函数 {0} 。
|
||||
|
||||
msg.isnt.xml.object =\
|
||||
{0} 不是 XML 对象。
|
||||
|
||||
msg.no.ref.to.get =\
|
||||
{0} 不是对读取参考值的引用。
|
||||
|
||||
msg.no.ref.to.set =\
|
||||
{0} 不是将引用值设置为 {1} 的引用。
|
||||
|
||||
msg.no.ref.from.function =\
|
||||
函数 {0} 不能用作赋值的左侧部分,也不能用作 “++” 或 “--” 运算符的操作数。
|
||||
|
||||
msg.bad.default.value =\
|
||||
Object 的 getDefaultValue() 方法返回了一个对象。
|
||||
|
||||
msg.instanceof.not.object = \
|
||||
不能在非对象上使用 “instanceof”。
|
||||
|
||||
msg.instanceof.bad.prototype = \
|
||||
{0} 的 “prototype” 属性不是对象。
|
||||
|
||||
msg.in.not.object = \
|
||||
不能在非对象上使用 “in”。
|
||||
|
||||
msg.bad.radix = \
|
||||
不允许的基数 {0}。
|
||||
|
||||
msg.division.zero = \
|
||||
除以零。
|
||||
|
||||
msg.bigint.negative.exponent = \
|
||||
BigInt 负指数。
|
||||
|
||||
msg.bigint.out.of.range.arithmetic = \
|
||||
BigInt 的数过大。
|
||||
|
||||
# ScriptableObject
|
||||
msg.default.value =\
|
||||
未找到对象默认值。
|
||||
|
||||
msg.zero.arg.ctor =\
|
||||
无法加载没有零参数构造函数的类 “{0}”。
|
||||
|
||||
duplicate.defineClass.name =\
|
||||
方法 “{0}” 无效:名称 “{1}” 已在使用中。
|
||||
|
||||
msg.ctor.multiple.parms =\
|
||||
无法定义构造函数或类 {0},因为多个构造函数具有多个参数。
|
||||
|
||||
msg.extend.scriptable =\
|
||||
{0} 必须扩展 ScriptableObject 才能定义属性 {1}。
|
||||
|
||||
msg.bad.getter.parms =\
|
||||
为了定义一个属性,getter {0} 必须有零个参数或一个 ScriptableObject 参数。
|
||||
|
||||
msg.obj.getter.parms =\
|
||||
静态或委托 getter 方法 {0} 必须使用 ScriptableObject 参数。
|
||||
|
||||
msg.getter.static =\
|
||||
getter 方法和 setter 方法必须具有相同的状态(静态或非静态)。
|
||||
|
||||
msg.setter.return =\
|
||||
setter 方法的返回类型必须为空:{0}
|
||||
|
||||
msg.setter2.parms =\
|
||||
双参数 setter 方法必须使用 ScriptableObject 参数作为第一个参数。
|
||||
|
||||
msg.setter1.parms =\
|
||||
{0} 需要一个参数 getter 方法
|
||||
|
||||
msg.setter2.expected =\
|
||||
静态或委托设置方法 {0} 必须采用两个参数。
|
||||
|
||||
msg.setter.parms =\
|
||||
setter 方法需要一个或两个参数。
|
||||
|
||||
msg.setter.bad.type =\
|
||||
setter 方法 “{1}” 中的参数类型 “{0}” 不正确。
|
||||
|
||||
msg.add.sealed =\
|
||||
无法将属性添加到密封对象: {0}。
|
||||
|
||||
msg.remove.sealed =\
|
||||
无法从密封对象中删除属性: {0}。
|
||||
|
||||
msg.modify.sealed =\
|
||||
无法修改密封对象的属性: {0}。
|
||||
|
||||
msg.modify.readonly =\
|
||||
无法修改只读属性: {0}。
|
||||
|
||||
msg.both.data.and.accessor.desc =\
|
||||
描述符不能同时定义访问器和数据。
|
||||
|
||||
msg.change.configurable.false.to.true =\
|
||||
无法将 “{0}” 的可配置属性从 false 更改为 true。
|
||||
|
||||
msg.change.enumerable.with.configurable.false =\
|
||||
无法更改 “{0}” 的可枚举属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.writable.false.to.true.with.configurable.false =\
|
||||
无法将 “{0}” 的可写属性从 false 更改为 true,因为 configurable 为 false。
|
||||
|
||||
msg.change.value.with.writable.false =\
|
||||
无法更改属性 “{0}” 的值,因为 writable 为 false。
|
||||
|
||||
msg.change.getter.with.configurable.false =\
|
||||
无法更改 “{0}” 的获取属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.setter.with.configurable.false =\
|
||||
无法更改 “{0}” 的设置属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.property.data.to.accessor.with.configurable.false =\
|
||||
无法将数据 “{0}” 的属性更改为访问者的属性,因为 configurable 为 false。
|
||||
|
||||
msg.change.property.accessor.to.data.with.configurable.false =\
|
||||
无法将访问器 “{0}” 的属性更改为数据的属性,因为 configurable 为 false。
|
||||
|
||||
msg.not.extensible =\
|
||||
无法向此对象添加属性,因为 extensible 为 false。
|
||||
|
||||
msg.delete.property.with.configurable.false =\
|
||||
无法删除 “{0}” 属性,因为可配置为 false。
|
||||
|
||||
# TokenStream
|
||||
msg.missing.exponent =\
|
||||
缺少一个指数
|
||||
|
||||
msg.caught.nfe =\
|
||||
数字格式错误 {0}
|
||||
|
||||
msg.unterminated.string.lit =\
|
||||
字符串文字没有限制
|
||||
|
||||
msg.unterminated.comment =\
|
||||
注释没有限制
|
||||
|
||||
msg.unterminated.re.lit =\
|
||||
正则表达式文字没有限制
|
||||
|
||||
msg.invalid.re.flag =\
|
||||
正则表达式后的标志 “{0}” 无效
|
||||
|
||||
msg.no.re.input.for =\
|
||||
{0} 没有输入
|
||||
|
||||
msg.illegal.character =\
|
||||
不允许的字符:“{0}”
|
||||
|
||||
msg.invalid.escape =\
|
||||
Unicode 转义序列不正确
|
||||
|
||||
msg.bad.namespace =\
|
||||
不是有效的默认命名空间语句。 \
|
||||
语法是:默认 xml 命名空间 = EXPRESSION;
|
||||
|
||||
# TokensStream warnings
|
||||
msg.bad.octal.literal =\
|
||||
字面量 {0} 的八进制数字是不允许的,将被解释为十进制数字
|
||||
|
||||
msg.reserved.keyword =\
|
||||
不允许使用将来的保留关键字 {0},这将被解释为普通标识符
|
||||
|
||||
# LiveConnect errors
|
||||
msg.java.internal.field.type =\
|
||||
内部错误:将 {1} 分配给 {2} 的 {0} 类型转换失败。
|
||||
|
||||
msg.java.conversion.implicit_method =\
|
||||
在类 {1} 中找不到转换方法 “{0}”。
|
||||
|
||||
msg.java.method.assign =\
|
||||
无法分配 Java 方法 “{0}”。
|
||||
|
||||
msg.java.internal.private =\
|
||||
内部错误:检测到尝试访问受保护的私有字段 “{0}”。
|
||||
|
||||
msg.java.no_such_method =\
|
||||
找不到方法 “{0}”。
|
||||
|
||||
msg.script.is.not.constructor =\
|
||||
脚本对象不是构造函数。
|
||||
|
||||
msg.nonjava.method =\
|
||||
Java 方法 “{0}” 被调用,{1} 作为“this”值,无法转换为 Java 类型 {2}。
|
||||
|
||||
msg.java.member.not.found =\
|
||||
Java 类 “{0}” 没有名为 “{1}” 的公共实例字段或方法。
|
||||
|
||||
msg.java.array.index.out.of.bounds =\
|
||||
数组索引 {0} 超出范围 [0..{1}]。
|
||||
|
||||
msg.java.array.member.not.found =\
|
||||
Java 数组没有名为 “{0}” 的公共实例字段或方法。
|
||||
|
||||
msg.pkg.int =\
|
||||
Java 中的包名不能以数字开头。
|
||||
|
||||
msg.access.prohibited =\
|
||||
禁止访问 Java 类 “{0}”。
|
||||
|
||||
# ImporterTopLevel
|
||||
msg.ambig.import =\
|
||||
不明确的导入:“{0}” 和 “{1}”。
|
||||
|
||||
msg.not.pkg =\
|
||||
调用 importPackage 函数必须使用包而不是 “{0}”。
|
||||
|
||||
msg.not.class =\
|
||||
调用 importClass 函数必须使用类而不是 “{0}”。
|
||||
|
||||
msg.not.class.not.pkg =\
|
||||
“{0}” 既不是类也不是包。
|
||||
|
||||
msg.prop.defined =\
|
||||
无法导入 “{0}”,因为该名称的属性已定义。
|
||||
|
||||
#JavaAdapter
|
||||
msg.adapter.zero.args =\
|
||||
JavaAdapter 至少需要一个参数。
|
||||
|
||||
msg.not.java.class.arg = \
|
||||
参数 {0} 不是 Java 类:{1}。
|
||||
|
||||
#JavaAdapter
|
||||
msg.only.one.super = \
|
||||
JavaAdapter 只能扩展一个类。已给出类 {0} 和 {1}。
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.bad =\
|
||||
数组长度不合适。
|
||||
|
||||
# Arrays
|
||||
msg.arraylength.too.big =\
|
||||
数组 {0} 的长度超出了支持的容量限制。
|
||||
|
||||
msg.empty.array.reduce =\
|
||||
“reduce” 方法在空数组上没有初始值时不起作用
|
||||
|
||||
# URI
|
||||
msg.bad.uri =\
|
||||
URI 序列的格式不正确。
|
||||
|
||||
# Number
|
||||
msg.bad.precision =\
|
||||
精度 {0} 超出范围。
|
||||
|
||||
# NativeGenerator
|
||||
msg.send.newborn =\
|
||||
在第一次调用 next() 之前不能调用生成器的 send() 方法
|
||||
|
||||
msg.already.exec.gen =\
|
||||
生成器已经在运行
|
||||
|
||||
msg.StopIteration.invalid =\
|
||||
StopIteration 异常不能更改为任意对象。
|
||||
|
||||
msg.generator.executing =\
|
||||
生成器仍在执行先前的调用。
|
||||
@@ -1,2244 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema version="1.0" xml:lang="en"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:xml="http://www.w3.org/XML/1998/namespace"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<!--
|
||||
THIS IS A MODIFIED VERSION THAT DROPS ALL DEFAULT ATTRIBUTES! THEY ARE EVIL! (cb)
|
||||
See: http://www.xmlplease.com/shaperect
|
||||
-->
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
XHTML 1.0 (Second Edition) Strict in XML Schema
|
||||
|
||||
This is the same as HTML 4 Strict except for
|
||||
changes due to the differences between XML and SGML.
|
||||
|
||||
Namespace = http://www.w3.org/1999/xhtml
|
||||
|
||||
For further information, see: http://www.w3.org/TR/xhtml1
|
||||
|
||||
Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
|
||||
All Rights Reserved.
|
||||
|
||||
The DTD version is identified by the PUBLIC and SYSTEM identifiers:
|
||||
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||
|
||||
$Id: xhtml1-strict.xsd,v 1.2 2002/08/28 08:05:44 mimasa Exp $
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Character mnemonic entities =========================
|
||||
|
||||
XHTML entity sets are identified by the PUBLIC and SYSTEM identifiers:
|
||||
|
||||
PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"
|
||||
|
||||
PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"
|
||||
|
||||
PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Imported Names ====================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:simpleType name="ContentType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
media type, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ContentTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
comma-separated list of media types, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Charset">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a character encoding, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Charsets">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a space separated list of character encodings, as per [RFC2045]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="LanguageCode">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a language code, as per [RFC3066]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:language"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Character">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a single character, as per section 2.2 of [XML]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:length value="1" fixed="true"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
one or more digits
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:nonNegativeInteger">
|
||||
<xs:pattern value="[0-9]+"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="tabindexNumber">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
tabindex attribute specifies the position of the current element
|
||||
in the tabbing order for the current document. This value must be
|
||||
a number between 0 and 32767. User agents should ignore leading zeros.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Number">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="32767"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="LinkTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
space-separated list of link types
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:NMTOKENS"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="MediaDesc">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
single or comma-separated list of media descriptors
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[^,]+(,\s*[^,]+)*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="URI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a Uniform Resource Identifier, see [RFC2396]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="UriList">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a space separated list of Uniform Resource Identifiers
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Datetime">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
date and time information. ISO date format
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Script">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
script expression
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="StyleSheet">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
style sheet data
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Text">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
used for titles etc.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Length">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
nn for pixels or nn% for percentage length
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="MultiLength">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
pixel, percentage, or relative
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Pixels">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
integer representing length in pixels
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:nonNegativeInteger"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
these are used for image maps
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:simpleType name="Shape">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="rect"/>
|
||||
<xs:enumeration value="circle"/>
|
||||
<xs:enumeration value="poly"/>
|
||||
<xs:enumeration value="default"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Coords">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
comma separated list of lengths
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern
|
||||
value="[-+]?(\d+|\d+(\.\d+)?%)(,\s*[-+]?(\d+|\d+(\.\d+)?%))*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Generic Attributes ===============================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attributeGroup name="coreattrs">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
core attributes common to most elements
|
||||
id document-wide unique id
|
||||
class space separated list of classes
|
||||
style associated style info
|
||||
title advisory title/amplification
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="class" type="xs:NMTOKENS"/>
|
||||
<xs:attribute name="style" type="StyleSheet"/>
|
||||
<xs:attribute name="title" type="Text"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="i18n">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
internationalization attributes
|
||||
lang language code (backwards compatible)
|
||||
xml:lang language code (as per XML 1.0 spec)
|
||||
dir direction for weak/neutral text
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="lang" type="LanguageCode"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute name="dir">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="ltr"/>
|
||||
<xs:enumeration value="rtl"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="events">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
attributes for common UI events
|
||||
onclick a pointer button was clicked
|
||||
ondblclick a pointer button was double clicked
|
||||
onmousedown a pointer button was pressed down
|
||||
onmouseup a pointer button was released
|
||||
onmousemove a pointer was moved onto the element
|
||||
onmouseout a pointer was moved away from the element
|
||||
onkeypress a key was pressed and released
|
||||
onkeydown a key was pressed down
|
||||
onkeyup a key was released
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="onclick" type="Script"/>
|
||||
<xs:attribute name="ondblclick" type="Script"/>
|
||||
<xs:attribute name="onmousedown" type="Script"/>
|
||||
<xs:attribute name="onmouseup" type="Script"/>
|
||||
<xs:attribute name="onmouseover" type="Script"/>
|
||||
<xs:attribute name="onmousemove" type="Script"/>
|
||||
<xs:attribute name="onmouseout" type="Script"/>
|
||||
<xs:attribute name="onkeypress" type="Script"/>
|
||||
<xs:attribute name="onkeydown" type="Script"/>
|
||||
<xs:attribute name="onkeyup" type="Script"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="focus">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
attributes for elements that can get the focus
|
||||
accesskey accessibility key character
|
||||
tabindex position in tabbing order
|
||||
onfocus the element got the focus
|
||||
onblur the element lost the focus
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="accesskey" type="Character"/>
|
||||
<xs:attribute name="tabindex" type="tabindexNumber"/>
|
||||
<xs:attribute name="onfocus" type="Script"/>
|
||||
<xs:attribute name="onblur" type="Script"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="attrs">
|
||||
<xs:attributeGroup ref="coreattrs"/>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attributeGroup ref="events"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Text Elements ====================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:group name="special.pre">
|
||||
<xs:choice>
|
||||
<xs:element ref="br"/>
|
||||
<xs:element ref="span"/>
|
||||
<xs:element ref="bdo"/>
|
||||
<xs:element ref="map"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="special">
|
||||
<xs:choice>
|
||||
<xs:group ref="special.pre"/>
|
||||
<xs:element ref="object"/>
|
||||
<xs:element ref="img"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="fontstyle">
|
||||
<xs:choice>
|
||||
<xs:element ref="tt"/>
|
||||
<xs:element ref="i"/>
|
||||
<xs:element ref="b"/>
|
||||
<xs:element ref="big"/>
|
||||
<xs:element ref="small"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="phrase">
|
||||
<xs:choice>
|
||||
<xs:element ref="em"/>
|
||||
<xs:element ref="strong"/>
|
||||
<xs:element ref="dfn"/>
|
||||
<xs:element ref="code"/>
|
||||
<xs:element ref="q"/>
|
||||
<xs:element ref="samp"/>
|
||||
<xs:element ref="kbd"/>
|
||||
<xs:element ref="var"/>
|
||||
<xs:element ref="cite"/>
|
||||
<xs:element ref="abbr"/>
|
||||
<xs:element ref="acronym"/>
|
||||
<xs:element ref="sub"/>
|
||||
<xs:element ref="sup"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="inline.forms">
|
||||
<xs:choice>
|
||||
<xs:element ref="input"/>
|
||||
<xs:element ref="select"/>
|
||||
<xs:element ref="textarea"/>
|
||||
<xs:element ref="label"/>
|
||||
<xs:element ref="button"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="misc.inline">
|
||||
<xs:choice>
|
||||
<xs:element ref="ins"/>
|
||||
<xs:element ref="del"/>
|
||||
<xs:element ref="script"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="misc">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
these can only occur at block level
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice>
|
||||
<xs:element ref="noscript"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="inline">
|
||||
<xs:choice>
|
||||
<xs:element ref="a"/>
|
||||
<xs:group ref="special"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="inline.forms"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:complexType name="Inline" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
"Inline" covers inline or "text-level" elements
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Block level elements ==============================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:group name="heading">
|
||||
<xs:choice>
|
||||
<xs:element ref="h1"/>
|
||||
<xs:element ref="h2"/>
|
||||
<xs:element ref="h3"/>
|
||||
<xs:element ref="h4"/>
|
||||
<xs:element ref="h5"/>
|
||||
<xs:element ref="h6"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="lists">
|
||||
<xs:choice>
|
||||
<xs:element ref="ul"/>
|
||||
<xs:element ref="ol"/>
|
||||
<xs:element ref="dl"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="blocktext">
|
||||
<xs:choice>
|
||||
<xs:element ref="pre"/>
|
||||
<xs:element ref="hr"/>
|
||||
<xs:element ref="blockquote"/>
|
||||
<xs:element ref="address"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:group name="block">
|
||||
<xs:choice>
|
||||
<xs:element ref="p"/>
|
||||
<xs:group ref="heading"/>
|
||||
<xs:element ref="div"/>
|
||||
<xs:group ref="lists"/>
|
||||
<xs:group ref="blocktext"/>
|
||||
<xs:element ref="fieldset"/>
|
||||
<xs:element ref="table"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
|
||||
<xs:complexType name="Block">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="Flow" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
"Flow" mixes block and inline and is used for list items etc.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Content models for exclusions =====================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:complexType name="a.content" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
a elements use "Inline" excluding a
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="special"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="inline.forms"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="pre.content" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
pre uses "Inline" excluding big, small, sup or sup
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="a"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="special.pre"/>
|
||||
<xs:group ref="misc.inline"/>
|
||||
<xs:group ref="inline.forms"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="form.content">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
form uses "Block" excluding form
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="button.content" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
button uses "Flow" but excludes a, form and form controls
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="p"/>
|
||||
<xs:group ref="heading"/>
|
||||
<xs:element ref="div"/>
|
||||
<xs:group ref="lists"/>
|
||||
<xs:group ref="blocktext"/>
|
||||
<xs:element ref="table"/>
|
||||
<xs:group ref="special"/>
|
||||
<xs:group ref="fontstyle"/>
|
||||
<xs:group ref="phrase"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Document Structure ==================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="html">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="head"/>
|
||||
<xs:element ref="body"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Document Head =======================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:group name="head.misc">
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="script"/>
|
||||
<xs:element ref="style"/>
|
||||
<xs:element ref="meta"/>
|
||||
<xs:element ref="link"/>
|
||||
<xs:element ref="object"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:group>
|
||||
|
||||
<xs:element name="head">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
content model is "head.misc" combined with a single
|
||||
title and an optional base element in any order
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:group ref="head.misc"/>
|
||||
<xs:choice>
|
||||
<xs:sequence>
|
||||
<xs:element ref="title"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:element ref="base"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
</xs:sequence>
|
||||
</xs:sequence>
|
||||
<xs:sequence>
|
||||
<xs:element ref="base"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
<xs:element ref="title"/>
|
||||
<xs:group ref="head.misc"/>
|
||||
</xs:sequence>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="profile" type="URI"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="title">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The title element is not considered part of the flow of text.
|
||||
It should be displayed, for example as the page header or
|
||||
window title. Exactly one title is required per document.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="base">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
document base URI
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attribute name="href" use="required" type="URI"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="meta">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
generic metainformation
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="http-equiv"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="content" use="required"/>
|
||||
<xs:attribute name="scheme"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="link">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Relationship values can be used in principle:
|
||||
|
||||
a) for document specific toolbars/menus when used
|
||||
with the link element in document head e.g.
|
||||
start, contents, previous, next, index, end, help
|
||||
b) to link to a separate style sheet (rel="stylesheet")
|
||||
c) to make a link to a script (rel="script")
|
||||
d) by stylesheets to control how collections of
|
||||
html nodes are rendered into printed documents
|
||||
e) to make a link to a printable version of this document
|
||||
e.g. a PostScript or PDF version (rel="alternate" media="print")
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="charset" type="Charset"/>
|
||||
<xs:attribute name="href" type="URI"/>
|
||||
<xs:attribute name="hreflang" type="LanguageCode"/>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
<xs:attribute name="rel" type="LinkTypes"/>
|
||||
<xs:attribute name="rev" type="LinkTypes"/>
|
||||
<xs:attribute name="media" type="MediaDesc"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="style">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
style info, which may include CDATA sections
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="type" use="required" type="ContentType"/>
|
||||
<xs:attribute name="media" type="MediaDesc"/>
|
||||
<xs:attribute name="title" type="Text"/>
|
||||
<xs:attribute ref="xml:space" fixed="preserve"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="script">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
script statements, which may include CDATA sections
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="charset" type="Charset"/>
|
||||
<xs:attribute name="type" use="required" type="ContentType"/>
|
||||
<xs:attribute name="src" type="URI"/>
|
||||
<xs:attribute name="defer">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="defer"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute ref="xml:space" fixed="preserve"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="noscript">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
alternate content container for non script-based rendering
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Block">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Document Body ====================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="body">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Block">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="onload" type="Script"/>
|
||||
<xs:attribute name="onunload" type="Script"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="div">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
generic language/style container
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Paragraphs =======================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="p">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Headings =========================================
|
||||
|
||||
There are six levels of headings from h1 (the most important)
|
||||
to h6 (the least important).
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="h1">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h2">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h3">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h4">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h5">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="h6">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Lists ============================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="ul">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Unordered list
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="li"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="ol">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Ordered (numbered) list
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="li"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="li">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
list item
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
definition lists - dt for term, dd for its definition
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="dl">
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="dt"/>
|
||||
<xs:element ref="dd"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="dt">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="dd">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Address ==========================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
information on author
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Horizontal Rule ==================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="hr">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Preformatted Text ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="pre">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
content is "Inline" excluding "img|object|big|small|sub|sup"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="pre.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute ref="xml:space" fixed="preserve"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Block-like Quotes ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="blockquote">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Block">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Inserted/Deleted Text ============================
|
||||
|
||||
ins/del are allowed in block and inline content, but its
|
||||
inappropriate to include block content within an ins element
|
||||
occurring in inline content.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="ins">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
<xs:attribute name="datetime" type="Datetime"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="del">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
<xs:attribute name="datetime" type="Datetime"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== The Anchor Element ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="a">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
content is "Inline" except that anchors shouldn't be nested
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="a.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="charset" type="Charset"/>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN"/>
|
||||
<xs:attribute name="href" type="URI"/>
|
||||
<xs:attribute name="hreflang" type="LanguageCode"/>
|
||||
<xs:attribute name="rel" type="LinkTypes"/>
|
||||
<xs:attribute name="rev" type="LinkTypes"/>
|
||||
<!--
|
||||
<xs:attribute name="shape" default="rect" type="Shape"/>
|
||||
-->
|
||||
<xs:attribute name="coords" type="Coords"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
===================== Inline Elements ================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="span">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
generic language/style container
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="bdo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
I18N BiDi over-ride
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="coreattrs"/>
|
||||
<xs:attributeGroup ref="events"/>
|
||||
<xs:attribute name="lang" type="LanguageCode"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute name="dir" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="ltr"/>
|
||||
<xs:enumeration value="rtl"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="br">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
forced line break
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="coreattrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="em">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
emphasis
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="strong">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
strong emphasis
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="dfn">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
definitional
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="code">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
program code
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="samp">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
sample
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="kbd">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
something user would type
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="var">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
variable
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="cite">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
citation
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="abbr">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
abbreviation
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="acronym">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
acronym
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="q">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
inlined quote
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="cite" type="URI"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="sub">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
subscript
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="sup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
superscript
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tt">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
fixed pitch font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="i">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
italic font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="b">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
bold font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="big">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
bigger font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="small">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
smaller font
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
==================== Object ======================================
|
||||
|
||||
object is used to embed objects as part of HTML pages.
|
||||
param elements should precede other content. Parameters
|
||||
can also be expressed as attribute/value pairs on the
|
||||
object element itself when brevity is desired.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="object">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="param"/>
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="declare">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="declare"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="classid" type="URI"/>
|
||||
<xs:attribute name="codebase" type="URI"/>
|
||||
<xs:attribute name="data" type="URI"/>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
<xs:attribute name="codetype" type="ContentType"/>
|
||||
<xs:attribute name="archive" type="UriList"/>
|
||||
<xs:attribute name="standby" type="Text"/>
|
||||
<xs:attribute name="height" type="Length"/>
|
||||
<xs:attribute name="width" type="Length"/>
|
||||
<xs:attribute name="usemap" type="URI"/>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN"/>
|
||||
<xs:attribute name="tabindex" type="tabindexNumber"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="param">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
param is used to supply a named property value.
|
||||
In XML it would seem natural to follow RDF and support an
|
||||
abbreviated syntax where the param elements are replaced
|
||||
by attribute value pairs on the object start tag.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attribute name="id" type="xs:ID"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="value"/>
|
||||
<xs:attribute name="valuetype" default="data">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="data"/>
|
||||
<xs:enumeration value="ref"/>
|
||||
<xs:enumeration value="object"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="type" type="ContentType"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
=================== Images ===========================================
|
||||
|
||||
To avoid accessibility problems for people who aren't
|
||||
able to see the image, you should provide a text
|
||||
description using the alt and longdesc attributes.
|
||||
In addition, avoid the use of server-side image maps.
|
||||
Note that in this DTD there is no name attribute. That
|
||||
is only available in the transitional and frameset DTD.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="img">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="src" use="required" type="URI"/>
|
||||
<xs:attribute name="alt" use="required" type="Text"/>
|
||||
<xs:attribute name="longdesc" type="URI"/>
|
||||
<xs:attribute name="height" type="Length"/>
|
||||
<xs:attribute name="width" type="Length"/>
|
||||
<xs:attribute name="usemap" type="URI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
usemap points to a map element which may be in this document
|
||||
or an external document, although the latter is not widely supported
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ismap">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="ismap"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================== Client-side image maps ============================
|
||||
|
||||
These can be placed in the same document or grouped in a
|
||||
separate document although this isn't yet widely supported
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="map">
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
<xs:element maxOccurs="unbounded" ref="area"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="i18n"/>
|
||||
<xs:attributeGroup ref="events"/>
|
||||
<xs:attribute name="id" use="required" type="xs:ID"/>
|
||||
<xs:attribute name="class"/>
|
||||
<xs:attribute name="style" type="StyleSheet"/>
|
||||
<xs:attribute name="title" type="Text"/>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="area">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="shape" type="Shape"/>
|
||||
<!--
|
||||
<xs:attribute name="shape" default="rect" type="Shape"/>
|
||||
-->
|
||||
<xs:attribute name="coords" type="Coords"/>
|
||||
<xs:attribute name="href" type="URI"/>
|
||||
<xs:attribute name="nohref">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="nohref"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="alt" use="required" type="Text"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
================ Forms ===============================================
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="form">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="form.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="action" use="required" type="URI"/>
|
||||
<!--
|
||||
<xs:attribute name="method" default="get">
|
||||
-->
|
||||
<xs:attribute name="method">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="get"/>
|
||||
<xs:enumeration value="post"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<!--
|
||||
<xs:attribute name="enctype" type="ContentType"
|
||||
default="application/x-www-form-urlencoded"/>
|
||||
-->
|
||||
<xs:attribute name="enctype" type="ContentType"/>
|
||||
<xs:attribute name="onsubmit" type="Script"/>
|
||||
<xs:attribute name="onreset" type="Script"/>
|
||||
<xs:attribute name="accept" type="ContentTypes"/>
|
||||
<xs:attribute name="accept-charset" type="Charsets"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="label">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Each label must not contain more than ONE field
|
||||
Label elements shouldn't be nested.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="for" type="xs:IDREF"/>
|
||||
<xs:attribute name="accesskey" type="Character"/>
|
||||
<xs:attribute name="onfocus" type="Script"/>
|
||||
<xs:attribute name="onblur" type="Script"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:simpleType name="InputType">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="text"/>
|
||||
<xs:enumeration value="password"/>
|
||||
<xs:enumeration value="checkbox"/>
|
||||
<xs:enumeration value="radio"/>
|
||||
<xs:enumeration value="submit"/>
|
||||
<xs:enumeration value="reset"/>
|
||||
<xs:enumeration value="file"/>
|
||||
<xs:enumeration value="hidden"/>
|
||||
<xs:enumeration value="image"/>
|
||||
<xs:enumeration value="button"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="input">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
form control
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="type" default="text" type="InputType"/>
|
||||
<xs:attribute name="name">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
the name attribute is required for all but submit & reset
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="value"/>
|
||||
<xs:attribute name="checked">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="checked"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="readonly">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="readonly"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="size"/>
|
||||
<xs:attribute name="maxlength" type="Number"/>
|
||||
<xs:attribute name="src" type="URI"/>
|
||||
<xs:attribute name="alt"/>
|
||||
<xs:attribute name="usemap" type="URI"/>
|
||||
<xs:attribute name="onselect" type="Script"/>
|
||||
<xs:attribute name="onchange" type="Script"/>
|
||||
<xs:attribute name="accept" type="ContentTypes"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="select">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
option selector
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="optgroup"/>
|
||||
<xs:element ref="option"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="size" type="Number"/>
|
||||
<xs:attribute name="multiple">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="multiple"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="tabindex" type="tabindexNumber"/>
|
||||
<xs:attribute name="onfocus" type="Script"/>
|
||||
<xs:attribute name="onblur" type="Script"/>
|
||||
<xs:attribute name="onchange" type="Script"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="optgroup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
option group
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="option"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="label" use="required" type="Text"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="option">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
selectable choice
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="selected">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="selected"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="label" type="Text"/>
|
||||
<xs:attribute name="value"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="textarea">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
multi-line text field
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="rows" use="required" type="Number"/>
|
||||
<xs:attribute name="cols" use="required" type="Number"/>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="readonly">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="readonly"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="onselect" type="Script"/>
|
||||
<xs:attribute name="onchange" type="Script"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="fieldset">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The fieldset element is used to group form fields.
|
||||
Only one legend element should occur in the content
|
||||
and if present should only be preceded by whitespace.
|
||||
|
||||
NOTE: this content model is different from the XHTML 1.0 DTD,
|
||||
closer to the intended content model in HTML4 DTD
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:sequence>
|
||||
<xs:element ref="legend"/>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="block"/>
|
||||
<xs:element ref="form"/>
|
||||
<xs:group ref="inline"/>
|
||||
<xs:group ref="misc"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="legend">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
fieldset label
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="accesskey" type="Character"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="button">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Content is "Flow" excluding a, form and form controls
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="button.content">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="focus"/>
|
||||
<xs:attribute name="name"/>
|
||||
<xs:attribute name="value"/>
|
||||
<!--
|
||||
<xs:attribute name="type" default="submit">
|
||||
-->
|
||||
<xs:attribute name="type">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="button"/>
|
||||
<xs:enumeration value="submit"/>
|
||||
<xs:enumeration value="reset"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="disabled">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
======================= Tables =======================================
|
||||
|
||||
Derived from IETF HTML table standard, see [RFC1942]
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:simpleType name="TFrame">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The border attribute sets the thickness of the frame around the
|
||||
table. The default units are screen pixels.
|
||||
|
||||
The frame attribute specifies which parts of the frame around
|
||||
the table should be rendered. The values are not the same as
|
||||
CALS to avoid a name clash with the valign attribute.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="void"/>
|
||||
<xs:enumeration value="above"/>
|
||||
<xs:enumeration value="below"/>
|
||||
<xs:enumeration value="hsides"/>
|
||||
<xs:enumeration value="lhs"/>
|
||||
<xs:enumeration value="rhs"/>
|
||||
<xs:enumeration value="vsides"/>
|
||||
<xs:enumeration value="box"/>
|
||||
<xs:enumeration value="border"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="TRules">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The rules attribute defines which rules to draw between cells:
|
||||
|
||||
If rules is absent then assume:
|
||||
"none" if border is absent or border="0" otherwise "all"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="none"/>
|
||||
<xs:enumeration value="groups"/>
|
||||
<xs:enumeration value="rows"/>
|
||||
<xs:enumeration value="cols"/>
|
||||
<xs:enumeration value="all"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:attributeGroup name="cellhalign">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
horizontal alignment attributes for cell contents
|
||||
|
||||
char alignment char, e.g. char=':'
|
||||
charoff offset for alignment char
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="align">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="left"/>
|
||||
<xs:enumeration value="center"/>
|
||||
<xs:enumeration value="right"/>
|
||||
<xs:enumeration value="justify"/>
|
||||
<xs:enumeration value="char"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="char" type="Character"/>
|
||||
<xs:attribute name="charoff" type="Length"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:attributeGroup name="cellvalign">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
vertical alignment attributes for cell contents
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="valign">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="top"/>
|
||||
<xs:enumeration value="middle"/>
|
||||
<xs:enumeration value="bottom"/>
|
||||
<xs:enumeration value="baseline"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:element name="table">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" ref="caption"/>
|
||||
<xs:choice>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
|
||||
</xs:choice>
|
||||
<xs:element minOccurs="0" ref="thead"/>
|
||||
<xs:element minOccurs="0" ref="tfoot"/>
|
||||
<xs:choice>
|
||||
<xs:element maxOccurs="unbounded" ref="tbody"/>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="summary" type="Text"/>
|
||||
<xs:attribute name="width" type="Length"/>
|
||||
<xs:attribute name="border" type="Pixels"/>
|
||||
<xs:attribute name="frame" type="TFrame"/>
|
||||
<xs:attribute name="rules" type="TRules"/>
|
||||
<xs:attribute name="cellspacing" type="Length"/>
|
||||
<xs:attribute name="cellpadding" type="Length"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="caption">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Inline">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Use thead to duplicate headers when breaking table
|
||||
across page boundaries, or for static headers when
|
||||
tbody sections are rendered in scrolling panel.
|
||||
|
||||
Use tfoot to duplicate footers when breaking table
|
||||
across page boundaries, or for static footers when
|
||||
tbody sections are rendered in scrolling panel.
|
||||
|
||||
Use multiple tbody sections when rules are needed
|
||||
between groups of table rows.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="thead">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tfoot">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tbody">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="tr"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="colgroup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
colgroup groups a set of col elements. It allows you to group
|
||||
several semantically related columns together.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
|
||||
</xs:sequence>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<!--
|
||||
<xs:attribute name="span" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="span" type="Number"/>
|
||||
<xs:attribute name="width" type="MultiLength"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="col">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
col elements define the alignment properties for cells in
|
||||
one or more columns.
|
||||
|
||||
The width attribute specifies the width of the columns, e.g.
|
||||
|
||||
width=64 width in screen pixels
|
||||
width=0.5* relative width of 0.5
|
||||
|
||||
The span attribute causes the attributes of one
|
||||
col element to apply to more than one column.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<!--
|
||||
<xs:attribute name="span" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="span" type="Number"/>
|
||||
<xs:attribute name="width" type="MultiLength"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="tr">
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="th"/>
|
||||
<xs:element ref="td"/>
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:simpleType name="Scope">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Scope is simpler than headers attribute for common tables
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="row"/>
|
||||
<xs:enumeration value="col"/>
|
||||
<xs:enumeration value="rowgroup"/>
|
||||
<xs:enumeration value="colgroup"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
th is for headers, td for data and for cells acting as both
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="th">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="abbr" type="Text"/>
|
||||
<xs:attribute name="axis"/>
|
||||
<xs:attribute name="headers" type="xs:IDREFS"/>
|
||||
<xs:attribute name="scope" type="Scope"/>
|
||||
<!--
|
||||
<xs:attribute name="rowspan" default="1" type="Number"/>
|
||||
<xs:attribute name="colspan" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="rowspan" type="Number"/>
|
||||
<xs:attribute name="colspan" type="Number"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="td">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="Flow">
|
||||
<xs:attributeGroup ref="attrs"/>
|
||||
<xs:attribute name="abbr" type="Text"/>
|
||||
<xs:attribute name="axis"/>
|
||||
<xs:attribute name="headers" type="xs:IDREFS"/>
|
||||
<xs:attribute name="scope" type="Scope"/>
|
||||
<!--
|
||||
<xs:attribute name="rowspan" default="1" type="Number"/>
|
||||
<xs:attribute name="colspan" default="1" type="Number"/>
|
||||
-->
|
||||
<xs:attribute name="rowspan" type="Number"/>
|
||||
<xs:attribute name="colspan" type="Number"/>
|
||||
<xs:attributeGroup ref="cellhalign"/>
|
||||
<xs:attributeGroup ref="cellvalign"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
</xs:schema>
|
||||
@@ -1,287 +0,0 @@
|
||||
<?xml version='1.0'?>
|
||||
<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
|
||||
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns ="http://www.w3.org/1999/xhtml"
|
||||
xml:lang="en">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
<h1>About the XML namespace</h1>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema document describes the XML namespace, in a form
|
||||
suitable for import by other schema documents.
|
||||
</p>
|
||||
<p>
|
||||
See <a href="http://www.w3.org/XML/1998/namespace.html">
|
||||
http://www.w3.org/XML/1998/namespace.html</a> and
|
||||
<a href="http://www.w3.org/TR/REC-xml">
|
||||
http://www.w3.org/TR/REC-xml</a> for information
|
||||
about this namespace.
|
||||
</p>
|
||||
<p>
|
||||
Note that local names in this namespace are intended to be
|
||||
defined only by the World Wide Web Consortium or its subgroups.
|
||||
The names currently defined in this namespace are listed below.
|
||||
They should not be used with conflicting semantics by any Working
|
||||
Group, specification, or document instance.
|
||||
</p>
|
||||
<p>
|
||||
See further below in this document for more information about <a
|
||||
href="#usage">how to refer to this schema document from your own
|
||||
XSD schema documents</a> and about <a href="#nsversioning">the
|
||||
namespace-versioning policy governing this schema document</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attribute name="lang">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>lang (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
is a language code for the natural language of the content of
|
||||
any element; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Notes</h4>
|
||||
<p>
|
||||
Attempting to install the relevant ISO 2- and 3-letter
|
||||
codes as the enumerated possible values is probably never
|
||||
going to be a realistic possibility.
|
||||
</p>
|
||||
<p>
|
||||
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
|
||||
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
|
||||
and the IANA language subtag registry at
|
||||
<a href="http://www.iana.org/assignments/language-subtag-registry">
|
||||
http://www.iana.org/assignments/language-subtag-registry</a>
|
||||
for further information.
|
||||
</p>
|
||||
<p>
|
||||
The union allows for the 'un-declaration' of xml:lang with
|
||||
the empty string.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:union memberTypes="xs:language">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value=""/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="space">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>space (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose
|
||||
value is a keyword indicating what whitespace processing
|
||||
discipline is intended for the content of the element; its
|
||||
value is inherited. This name is reserved by virtue of its
|
||||
definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:NCName">
|
||||
<xs:enumeration value="default"/>
|
||||
<xs:enumeration value="preserve"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>base (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
provides a URI to be used as the base for interpreting any
|
||||
relative URIs in the scope of the element on which it
|
||||
appears; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML Base specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="id" type="xs:ID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>id (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
should be interpreted as if declared to be of type ID.
|
||||
This name is reserved by virtue of its definition in the
|
||||
xml:id specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attributeGroup name="specialAttrs">
|
||||
<xs:attribute ref="xml:base"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute ref="xml:space"/>
|
||||
<xs:attribute ref="xml:id"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>Father (in any context at all)</h3>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
denotes Jon Bosak, the chair of
|
||||
the original XML Working Group. This name is reserved by
|
||||
the following decision of the W3C XML Plenary and
|
||||
XML Coordination groups:
|
||||
</p>
|
||||
<blockquote>
|
||||
<p>
|
||||
In appreciation for his vision, leadership and
|
||||
dedication the W3C XML Plenary on this 10th day of
|
||||
February, 2000, reserves for Jon Bosak in perpetuity
|
||||
the XML name "xml:Father".
|
||||
</p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div xml:id="usage" id="usage">
|
||||
<h2><a name="usage">About this schema document</a></h2>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema defines attributes and an attribute group suitable
|
||||
for use by schemas wishing to allow <code>xml:base</code>,
|
||||
<code>xml:lang</code>, <code>xml:space</code> or
|
||||
<code>xml:id</code> attributes on elements they define.
|
||||
</p>
|
||||
<p>
|
||||
To enable this, such a schema must import this schema for
|
||||
the XML namespace, e.g. as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<schema . . .>
|
||||
. . .
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
or
|
||||
</p>
|
||||
<pre>
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
Subsequently, qualified reference to any of the attributes or the
|
||||
group defined below will have the desired effect, e.g.
|
||||
</p>
|
||||
<pre>
|
||||
<type . . .>
|
||||
. . .
|
||||
<attributeGroup ref="xml:specialAttrs"/>
|
||||
</pre>
|
||||
<p>
|
||||
will define a type which will schema-validate an instance element
|
||||
with any of those attributes.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div id="nsversioning" xml:id="nsversioning">
|
||||
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
In keeping with the XML Schema WG's standard versioning
|
||||
policy, this schema document will persist at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
At the date of issue it can also be found at
|
||||
<a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
The schema document at that URI may however change in the future,
|
||||
in order to remain compatible with the latest version of XML
|
||||
Schema itself, or with the XML namespace itself. In other words,
|
||||
if the XML Schema or XML namespaces change, the version of this
|
||||
document at <a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd
|
||||
</a>
|
||||
will change accordingly; the version at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd
|
||||
</a>
|
||||
will not change.
|
||||
</p>
|
||||
<p>
|
||||
Previous dated (and unchanging) versions of this schema
|
||||
document are at:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2007/08/xml.xsd">
|
||||
http://www.w3.org/2007/08/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2004/10/xml.xsd">
|
||||
http://www.w3.org/2004/10/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2001/03/xml.xsd">
|
||||
http://www.w3.org/2001/03/xml.xsd</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
</xs:schema>
|
||||
|
||||
|
Before Width: | Height: | Size: 825 B |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 827 B |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 484 B |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 95 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 670 B |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 627 B |
|
Before Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 110 B |
@@ -27,8 +27,8 @@ android {
|
||||
minSdk 24
|
||||
//noinspection ExpiredTargetSdkVersion
|
||||
targetSdk 28
|
||||
versionCode 308
|
||||
versionName "3.0.8"
|
||||
versionCode 310
|
||||
versionName "3.1.0"
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = ["room.schemaLocation": "$projectDir/schemas".toString(), "eventBusIndex": "com.fongmi.android.tv.event.EventIndex"]
|
||||
@@ -113,7 +113,7 @@ dependencies {
|
||||
implementation project(':catvod')
|
||||
// implementation project(':chaquo') // 移除Python支持减少8-10MB体积
|
||||
implementation project(':quickjs')
|
||||
implementation 'androidx.appcompat:appcompat:1.7.1'
|
||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||
implementation 'androidx.media:media:1.7.0'
|
||||
implementation 'androidx.media3:media3-common:' + media3Version
|
||||
implementation 'androidx.media3:media3-container:' + media3Version
|
||||
@@ -130,7 +130,7 @@ dependencies {
|
||||
implementation 'androidx.media3:media3-exoplayer-smoothstreaming:' + media3Version
|
||||
implementation 'androidx.media3:media3-extractor:' + media3Version
|
||||
implementation 'androidx.media3:media3-ui:' + media3Version
|
||||
implementation 'androidx.room:room-runtime:2.7.2'
|
||||
implementation 'androidx.room:room-runtime:2.6.1'
|
||||
implementation 'cat.ereza:customactivityoncrash:2.4.0'
|
||||
implementation 'io.github.anilbeesetti:nextlib-media3ext:1.8.0-0.9.0'
|
||||
implementation 'com.github.bassaer:materialdesigncolors:1.0.0'
|
||||
@@ -143,9 +143,9 @@ dependencies {
|
||||
implementation 'com.github.teamnewpipe:NewPipeExtractor:v0.24.8'
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
implementation 'com.google.zxing:core:3.5.3'
|
||||
implementation 'com.guolindev.permissionx:permissionx:1.8.1'
|
||||
implementation 'com.hierynomus:smbj:0.14.0'
|
||||
implementation 'io.antmedia:rtmp-client:3.2.0'
|
||||
implementation 'com.guolindev.permissionx:permissionx:1.7.1'
|
||||
implementation 'com.hierynomus:smbj:0.13.0'
|
||||
implementation 'io.antmedia:rtmp-client:3.1.0'
|
||||
implementation 'javax.servlet:javax.servlet-api:3.1.0'
|
||||
implementation 'org.aomedia.avif.android:avif:1.1.1.14d8e3c4'
|
||||
implementation 'org.eclipse.jetty:jetty-client:8.1.21.v20160908'
|
||||
@@ -162,7 +162,7 @@ dependencies {
|
||||
mobileImplementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||
mobileImplementation 'com.google.android.flexbox:flexbox:3.0.0'
|
||||
mobileImplementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false }
|
||||
annotationProcessor 'androidx.room:room-compiler:2.7.2'
|
||||
annotationProcessor 'androidx.room:room-compiler:2.6.1'
|
||||
// annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
|
||||
annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.3.1'
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5'
|
||||
|
||||
@@ -92,5 +92,12 @@
|
||||
-keep class com.sun.jna.** { *; }
|
||||
-keep class com.east.android.zlive.** { *; }
|
||||
|
||||
# Media3 DefaultTimeBar - 保护反射访问的字段
|
||||
-keep class androidx.media3.ui.DefaultTimeBar {
|
||||
int barHeight;
|
||||
int scrubberEnabledSize;
|
||||
int scrubberDisabledSize;
|
||||
}
|
||||
|
||||
# Zxing
|
||||
-keep class com.google.zxing.** { *; }
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.fongmi.android.tv;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
@@ -30,9 +32,10 @@ public class Updater implements Download.Callback {
|
||||
private AlertDialog dialog;
|
||||
private boolean dev;
|
||||
private boolean forceCheck; // 是否为手动检查
|
||||
private String latestVersion; // 存储检测到的最新版本
|
||||
|
||||
private File getFile() {
|
||||
return Path.cache("update.apk");
|
||||
return Path.root("Download", "XMBOX-update.apk");
|
||||
}
|
||||
|
||||
private String getJson() {
|
||||
@@ -40,6 +43,26 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private String getApk() {
|
||||
// 使用JSON中指定的具体下载路径
|
||||
try {
|
||||
String response = OkHttp.string(getJson());
|
||||
JSONObject object = new JSONObject(response);
|
||||
JSONObject downloads = object.optJSONObject("downloads");
|
||||
if (downloads != null) {
|
||||
String abi = BuildConfig.FLAVOR_abi;
|
||||
String downloadPath = downloads.optString(abi);
|
||||
if (!downloadPath.isEmpty()) {
|
||||
// 直接构建完整URL,不通过Github.getApk()避免重复添加路径
|
||||
String baseUrl = Github.useCnMirror() ?
|
||||
"https://gitee.com/ochenoktochen/XMBOX-Release/raw/main" :
|
||||
"https://raw.githubusercontent.com/Tosencen/XMBOX-Release/main";
|
||||
return baseUrl + "/apk/" + (dev ? "dev" : "release") + "/" + downloadPath;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Failed to get download path from JSON: " + e.getMessage());
|
||||
}
|
||||
// 回退到原来的方式
|
||||
return Github.getApk(dev, BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_abi);
|
||||
}
|
||||
|
||||
@@ -84,9 +107,11 @@ public class Updater implements Download.Callback {
|
||||
|
||||
private void doInBackground(Activity activity) {
|
||||
try {
|
||||
String response = OkHttp.string(getJson());
|
||||
// 直接使用GitHub Releases API检测最新版本
|
||||
String releasesUrl = "https://api.github.com/repos/Tosencen/XMBOX/releases/latest";
|
||||
String response = OkHttp.string(releasesUrl);
|
||||
|
||||
// 检查响应是否包含错误信息,只在手动检查时提示
|
||||
// 检查响应是否包含错误信息
|
||||
if (response.contains("rate limit exceeded")) {
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:API请求过于频繁,请稍后重试"));
|
||||
@@ -94,29 +119,30 @@ public class Updater implements Download.Callback {
|
||||
return;
|
||||
}
|
||||
|
||||
if (response.contains("Not Found Project") || response.contains("Not Found")) {
|
||||
if (response.contains("Not Found") || response.contains("404")) {
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:更新服务暂时不可用"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
JSONObject object = new JSONObject(response);
|
||||
String name = object.optString("name");
|
||||
String desc = object.optString("desc");
|
||||
int code = object.optInt("code");
|
||||
if (need(code, name)) {
|
||||
App.post(() -> show(activity, name, desc));
|
||||
JSONObject release = new JSONObject(response);
|
||||
String tagName = release.optString("tag_name");
|
||||
String body = release.optString("body");
|
||||
|
||||
// 提取版本号(去掉v前缀)
|
||||
String version = tagName.startsWith("v") ? tagName.substring(1) : tagName;
|
||||
|
||||
if (needUpdate(version)) {
|
||||
this.latestVersion = version; // 保存最新版本号
|
||||
App.post(() -> show(activity, version, body));
|
||||
} else {
|
||||
// 只在手动检查时提示已是最新版
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("已是最新版本 " + name));
|
||||
App.post(() -> Notify.show("已是最新版本 " + version));
|
||||
}
|
||||
Logger.d("Already latest version: " + name);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// 只在手动检查时提示网络错误
|
||||
if (forceCheck) {
|
||||
App.post(() -> {
|
||||
String errorMsg = "检查更新失败";
|
||||
@@ -132,6 +158,34 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean needUpdate(String remoteVersion) {
|
||||
if (!Setting.getUpdate()) return false;
|
||||
|
||||
try {
|
||||
// 简单的版本号比较,假设版本格式为 x.y.z
|
||||
String[] remoteParts = remoteVersion.split("\\.");
|
||||
String[] localParts = BuildConfig.VERSION_NAME.split("\\.");
|
||||
|
||||
// 确保两个版本号都有足够的段
|
||||
int maxLength = Math.max(remoteParts.length, localParts.length);
|
||||
|
||||
for (int i = 0; i < maxLength; i++) {
|
||||
int remotePart = i < remoteParts.length ? Integer.parseInt(remoteParts[i]) : 0;
|
||||
int localPart = i < localParts.length ? Integer.parseInt(localParts[i]) : 0;
|
||||
|
||||
if (remotePart > localPart) {
|
||||
return true;
|
||||
} else if (remotePart < localPart) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false; // 版本相同
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Version comparison error: " + e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void show(Activity activity, String version, String desc) {
|
||||
binding = DialogUpdateBinding.inflate(LayoutInflater.from(activity));
|
||||
@@ -153,8 +207,31 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private void confirm(View view) {
|
||||
binding.confirm.setEnabled(false);
|
||||
download.start();
|
||||
// 跳转到具体版本的GitHub Releases页面
|
||||
try {
|
||||
String url = "https://github.com/Tosencen/XMBOX/releases/tag/v" + latestVersion;
|
||||
Logger.d("Updater: Attempting to open URL: " + url);
|
||||
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(url));
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
// 检查是否有应用可以处理这个Intent
|
||||
if (intent.resolveActivity(App.get().getPackageManager()) != null) {
|
||||
App.get().startActivity(intent);
|
||||
Logger.d("Updater: Successfully started browser intent");
|
||||
dismiss();
|
||||
} else {
|
||||
Logger.e("Updater: No app can handle the URL");
|
||||
Notify.show("没有找到可以打开链接的应用,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Failed to open GitHub releases page: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
Notify.show("无法打开更新页面,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
private void dismiss() {
|
||||
|
||||
@@ -99,8 +99,17 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
|
||||
mBinding.dohText.setText(getDohList()[getDohIndex()]);
|
||||
mBinding.proxyText.setText(getProxy(Setting.getProxy()));
|
||||
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
|
||||
mBinding.liveTabVisibleText.setText(getSwitch(Setting.isLiveTabVisible()));
|
||||
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
|
||||
mBinding.qualityText.setText((quality = ResUtil.getStringArray(R.array.select_quality))[Setting.getQuality()]);
|
||||
setLiveSettingsVisibility();
|
||||
}
|
||||
|
||||
private void setLiveSettingsVisibility() {
|
||||
boolean isLiveTabVisible = !Setting.isLiveTabVisible(); // 注意:这里取反,因为开关是"隐藏直播"
|
||||
mBinding.live.setVisibility(isLiveTabVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.liveHome.setVisibility(isLiveTabVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.liveHistory.setVisibility(isLiveTabVisible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private void setCacheText() {
|
||||
@@ -134,6 +143,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
|
||||
mBinding.wallDefault.setOnClickListener(this::setWallDefault);
|
||||
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
|
||||
mBinding.incognito.setOnClickListener(this::setIncognito);
|
||||
mBinding.liveTabVisible.setOnClickListener(this::setLiveTabVisible);
|
||||
mBinding.quality.setOnClickListener(this::setQuality);
|
||||
mBinding.size.setOnClickListener(this::setSize);
|
||||
mBinding.doh.setOnClickListener(this::setDoh);
|
||||
@@ -304,6 +314,15 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
|
||||
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
|
||||
}
|
||||
|
||||
private void setLiveTabVisible(View view) {
|
||||
Setting.putLiveTabVisible(!Setting.isLiveTabVisible());
|
||||
mBinding.liveTabVisibleText.setText(getSwitch(Setting.isLiveTabVisible()));
|
||||
// 发送刷新事件,通知主界面更新导航栏
|
||||
RefreshEvent.config();
|
||||
// 更新直播设置项的可见性
|
||||
setLiveSettingsVisibility();
|
||||
}
|
||||
|
||||
private void setQuality(View view) {
|
||||
int index = Setting.getQuality();
|
||||
Setting.putQuality(index = index == quality.length - 1 ? 0 : ++index);
|
||||
|
||||
@@ -265,6 +265,36 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/liveTabVisible"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:background="@drawable/selector_item"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:nextFocusDown="@id/quality"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/setting_live_tab_visible"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/liveTabVisibleText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18sp"
|
||||
tools:text="On" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
android:valueFrom="1"
|
||||
android:valueTo="10"
|
||||
app:thumbColor="@color/primary"
|
||||
app:thumbRadius="9dp"
|
||||
app:tickVisible="false"
|
||||
app:trackColorActive="@color/primary"
|
||||
app:trackColorInactive="@color/white_30" />
|
||||
|
||||
@@ -14,8 +14,11 @@
|
||||
android:valueFrom="2"
|
||||
android:valueTo="5"
|
||||
app:thumbColor="@color/primary"
|
||||
app:tickVisible="false"
|
||||
app:thumbRadius="10dp"
|
||||
app:tickVisible="true"
|
||||
app:tickColor="@color/black_50"
|
||||
app:trackColorActive="@color/primary"
|
||||
app:trackColorInactive="@color/white_30" />
|
||||
app:trackColorInactive="@color/white_20"
|
||||
app:trackHeight="4dp" />
|
||||
|
||||
</FrameLayout>
|
||||
@@ -29,6 +29,8 @@
|
||||
android:nextFocusUp="@id/next"
|
||||
android:nextFocusDown="@id/timeBar"
|
||||
app:bar_height="2dp"
|
||||
app:scrubber_enabled_size="14dp"
|
||||
app:scrubber_disabled_size="14dp"
|
||||
app:played_color="#FFEB3B"
|
||||
app:scrubber_color="#FFEB3B"
|
||||
app:buffered_color="#80FFEB3B"
|
||||
|
||||
@@ -324,4 +324,12 @@ public class Setting {
|
||||
public static void setPrivacyAgreed(boolean agreed) {
|
||||
Prefers.put("privacy_agreed_v1", agreed);
|
||||
}
|
||||
|
||||
public static boolean isLiveTabVisible() {
|
||||
return Prefers.getBoolean("live_tab_visible", true);
|
||||
}
|
||||
|
||||
public static void putLiveTabVisible(boolean visible) {
|
||||
Prefers.put("live_tab_visible", visible);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,270 @@
|
||||
package com.fongmi.android.tv.api;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 广告拦截器 - 内置常用广告域名库
|
||||
*/
|
||||
public class AdBlocker {
|
||||
|
||||
/**
|
||||
* 赌博类广告域名(澳门新葡京等)
|
||||
*/
|
||||
private static final List<String> GAMBLING_ADS = Arrays.asList(
|
||||
// 澳门博彩广告
|
||||
".*\\..*葡京.*",
|
||||
".*\\..*皇冠.*",
|
||||
".*\\..*金沙.*",
|
||||
".*\\..*威尼斯人.*",
|
||||
".*\\..*永利.*",
|
||||
".*aomen.*",
|
||||
".*macau.*casino.*",
|
||||
".*xpj.*\\..*",
|
||||
".*xinpujing.*",
|
||||
".*amdc.*\\.com",
|
||||
".*\\.amdc\\.alipay\\.com",
|
||||
|
||||
// 常见博彩推广域名
|
||||
".*\\.bz.*bet.*",
|
||||
".*\\.casino.*",
|
||||
".*\\.poker.*",
|
||||
".*\\.betting.*",
|
||||
".*\\.gamble.*",
|
||||
".*wnsr.*\\..*",
|
||||
".*js[0-9]+\\..*",
|
||||
".*vn[0-9]+\\..*",
|
||||
".*ag[0-9]+\\..*",
|
||||
|
||||
// 具体的博彩广告域名
|
||||
"wan.51img1.com",
|
||||
"iqiyi.hbuioo.com",
|
||||
"vip.ffzyad.com",
|
||||
"https.wshdsm.com",
|
||||
"v.%E7%88%B1%E4%B8%8A%E5%A5%B9%E5%BD%B1%E9%99%A2.com"
|
||||
);
|
||||
|
||||
/**
|
||||
* 通用广告联盟域名
|
||||
*/
|
||||
private static final List<String> GENERAL_ADS = Arrays.asList(
|
||||
// Google广告
|
||||
"googleads.g.doubleclick.net",
|
||||
"adservice.google.com",
|
||||
"pagead2.googlesyndication.com",
|
||||
"www.googletagmanager.com",
|
||||
"static.doubleclick.net",
|
||||
".*\\.doubleclick\\.net",
|
||||
".*\\.googlesyndication\\.com",
|
||||
|
||||
// 百度广告
|
||||
"cpro.baidu.com",
|
||||
"pos.baidu.com",
|
||||
"cbjs.baidu.com",
|
||||
"hm.baidu.com",
|
||||
".*\\.union\\.baidu\\.com",
|
||||
|
||||
// 淘宝/阿里广告
|
||||
"mclick.simba.taobao.com",
|
||||
"simba.m.taobao.com",
|
||||
".*\\.tanx\\.com",
|
||||
".*\\.mmstat\\.com",
|
||||
".*\\.atm\\.youku\\.com",
|
||||
|
||||
// 腾讯广告
|
||||
"mi.gdt.qq.com",
|
||||
"adsmind.gdtimg.com",
|
||||
".*\\.l\\.qq\\.com",
|
||||
"pgdt.gtimg.cn",
|
||||
|
||||
// 其他主流广告联盟
|
||||
"union.meituan.com",
|
||||
"analytics.163.com",
|
||||
"g.163.com",
|
||||
"analytics.126.net",
|
||||
".*\\.irs01\\.com",
|
||||
".*\\.irs01\\.net"
|
||||
);
|
||||
|
||||
/**
|
||||
* 视频平台广告域名
|
||||
*/
|
||||
private static final List<String> VIDEO_ADS = Arrays.asList(
|
||||
// 优酷广告
|
||||
"atm.youku.com",
|
||||
"stat.youku.com",
|
||||
"ad.api.3g.youku.com",
|
||||
"pl.youku.com",
|
||||
"lstat.youku.com",
|
||||
".*\\.atm\\.youku\\.com",
|
||||
|
||||
// 爱奇艺广告
|
||||
"cupid.iqiyi.com",
|
||||
"data.video.iqiyi.com",
|
||||
"msg.71.am",
|
||||
".*\\.cupid\\.iqiyi\\.com",
|
||||
".*\\.data\\.video\\.iqiyi\\.com",
|
||||
|
||||
// 腾讯视频广告
|
||||
"btrace.video.qq.com",
|
||||
"mtrace.video.qq.com",
|
||||
"vv.video.qq.com",
|
||||
"ad.video.qq.com",
|
||||
|
||||
// 芒果TV广告
|
||||
"da.mgtv.com",
|
||||
"ad.hunantv.com",
|
||||
"v2.hunantv.com",
|
||||
|
||||
// 其他视频平台
|
||||
"ark.letv.com",
|
||||
"stat.letv.com",
|
||||
".*\\.beacon\\.qq\\.com"
|
||||
);
|
||||
|
||||
/**
|
||||
* 弹窗广告域名
|
||||
*/
|
||||
private static final List<String> POPUP_ADS = Arrays.asList(
|
||||
// 常见弹窗广告
|
||||
"mimg.0c1q0l.cn",
|
||||
"www.92424.cn",
|
||||
"k.jinxiuzhilv.com",
|
||||
"cdn.bootcss.com",
|
||||
"ppl.xunzhuo.com",
|
||||
"xc.hubeijieshikj.cn",
|
||||
"ssl.kdd.cc",
|
||||
"push.zhanzhang.baidu.com",
|
||||
"cpc.cmbchina.com",
|
||||
"adshow.58.com",
|
||||
|
||||
// 移动端弹窗
|
||||
"afp.csbew.com",
|
||||
"aoodoo.feng.com",
|
||||
"*.popin.cc",
|
||||
"*.supersonicads.com"
|
||||
);
|
||||
|
||||
/**
|
||||
* 恶意网站和钓鱼网站
|
||||
*/
|
||||
private static final List<String> MALICIOUS_ADS = Arrays.asList(
|
||||
".*\\.17un\\.com",
|
||||
".*\\.baidustatic\\.com",
|
||||
".*\\.cnzz\\.com",
|
||||
".*\\.duomeng\\.cn",
|
||||
".*\\.shuzilm\\.cn",
|
||||
".*\\.haoyuemh\\.com",
|
||||
".*\\.571xz\\.com",
|
||||
".*\\.madthumbs\\.com"
|
||||
);
|
||||
|
||||
/**
|
||||
* 跟踪统计域名
|
||||
*/
|
||||
private static final List<String> TRACKING_ADS = Arrays.asList(
|
||||
// 统计跟踪
|
||||
"hm.baidu.com",
|
||||
"tongji.baidu.com",
|
||||
"s95.cnzz.com",
|
||||
"cnzz.com",
|
||||
".*\\.umeng\\.com",
|
||||
".*\\.umtrack\\.com",
|
||||
|
||||
// Google Analytics
|
||||
"www.google-analytics.com",
|
||||
"ssl.google-analytics.com",
|
||||
".*\\.googletagmanager\\.com"
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取所有内置广告域名
|
||||
* @return 完整的广告域名列表
|
||||
*/
|
||||
public static List<String> getAllAdHosts() {
|
||||
return Arrays.asList(
|
||||
// 合并所有列表
|
||||
String.join(",", GAMBLING_ADS),
|
||||
String.join(",", GENERAL_ADS),
|
||||
String.join(",", VIDEO_ADS),
|
||||
String.join(",", POPUP_ADS),
|
||||
String.join(",", MALICIOUS_ADS),
|
||||
String.join(",", TRACKING_ADS)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取赌博类广告域名(澳门新葡京等)
|
||||
*/
|
||||
public static List<String> getGamblingAdHosts() {
|
||||
return GAMBLING_ADS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取通用广告联盟域名
|
||||
*/
|
||||
public static List<String> getGeneralAdHosts() {
|
||||
return GENERAL_ADS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取视频平台广告域名
|
||||
*/
|
||||
public static List<String> getVideoAdHosts() {
|
||||
return VIDEO_ADS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取弹窗广告域名
|
||||
*/
|
||||
public static List<String> getPopupAdHosts() {
|
||||
return POPUP_ADS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取恶意网站域名
|
||||
*/
|
||||
public static List<String> getMaliciousAdHosts() {
|
||||
return MALICIOUS_ADS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取跟踪统计域名
|
||||
*/
|
||||
public static List<String> getTrackingAdHosts() {
|
||||
return TRACKING_ADS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否应该拦截该域名
|
||||
* @param host 要检查的域名
|
||||
* @return true=应该拦截, false=不拦截
|
||||
*/
|
||||
public static boolean shouldBlock(String host) {
|
||||
if (host == null || host.isEmpty()) return false;
|
||||
|
||||
// 检查所有分类
|
||||
return checkInList(host, GAMBLING_ADS) ||
|
||||
checkInList(host, GENERAL_ADS) ||
|
||||
checkInList(host, VIDEO_ADS) ||
|
||||
checkInList(host, POPUP_ADS) ||
|
||||
checkInList(host, MALICIOUS_ADS) ||
|
||||
checkInList(host, TRACKING_ADS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查域名是否在列表中(支持正则)
|
||||
*/
|
||||
private static boolean checkInList(String host, List<String> list) {
|
||||
for (String pattern : list) {
|
||||
if (host.matches(pattern.replace("*", ".*"))) {
|
||||
return true;
|
||||
}
|
||||
if (host.contains(pattern.replace(".*", ""))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,32 +78,41 @@ public class VodConfig {
|
||||
}
|
||||
|
||||
public static void load(Config config, Callback callback) {
|
||||
android.util.Log.d("VodConfig", "load called with config: " + (config != null ? config.toString() : "null"));
|
||||
|
||||
// 参数检查
|
||||
if (config == null || callback == null) {
|
||||
android.util.Log.e("VodConfig", "Invalid parameters: config=" + config + ", callback=" + callback);
|
||||
if (callback != null) {
|
||||
App.post(() -> callback.error("配置参数无效"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
android.util.Log.d("VodConfig", "Parameters valid, proceeding with load");
|
||||
|
||||
// 添加加载状态检查,防止并发加载
|
||||
VodConfig instance = get();
|
||||
synchronized (instance) {
|
||||
if (instance.isLoading) {
|
||||
android.util.Log.d("VodConfig", "Already loading, cancelling previous load");
|
||||
// 如果正在加载,取消之前的加载
|
||||
try {
|
||||
OkHttp.cancel("vod");
|
||||
} catch (Exception e) {
|
||||
android.util.Log.e("VodConfig", "Error cancelling previous load", e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
instance.isLoading = true;
|
||||
}
|
||||
|
||||
android.util.Log.d("VodConfig", "Calling instance.clear().config(config).load(callback)");
|
||||
try {
|
||||
instance.clear().config(config).load(callback);
|
||||
} catch (Exception e) {
|
||||
instance.isLoading = false;
|
||||
android.util.Log.e("VodConfig", "Exception during load", e);
|
||||
e.printStackTrace();
|
||||
App.post(() -> callback.error("配置加载失败: " + e.getMessage()));
|
||||
}
|
||||
@@ -224,14 +233,26 @@ public class VodConfig {
|
||||
return;
|
||||
}
|
||||
String spider = Json.safeString(object, "spider");
|
||||
BaseLoader.get().parseJar(spider, true);
|
||||
try {
|
||||
BaseLoader.get().parseJar(spider, true);
|
||||
} catch (Throwable e) {
|
||||
android.util.Log.e("VodConfig", "Failed to parse spider jar: " + spider, e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for (JsonElement element : Json.safeListElement(object, "sites")) {
|
||||
Site site = Site.objectFrom(element);
|
||||
if (sites.contains(site)) continue;
|
||||
site.setApi(UrlUtil.convert(site.getApi()));
|
||||
site.setExt(UrlUtil.convert(site.getExt()));
|
||||
site.setJar(parseJar(site, spider));
|
||||
sites.add(site.trans().sync());
|
||||
try {
|
||||
Site site = Site.objectFrom(element);
|
||||
if (sites.contains(site)) continue;
|
||||
site.setApi(UrlUtil.convert(site.getApi()));
|
||||
site.setExt(UrlUtil.convert(site.getExt()));
|
||||
site.setJar(parseJar(site, spider));
|
||||
sites.add(site.trans().sync());
|
||||
} catch (Throwable e) {
|
||||
android.util.Log.e("VodConfig", "Failed to add site: " + element, e);
|
||||
e.printStackTrace();
|
||||
// 继续处理下一个站点
|
||||
}
|
||||
}
|
||||
for (Site site : sites) {
|
||||
if (site.getKey().equals(config.getHome())) {
|
||||
|
||||
@@ -46,10 +46,15 @@ public class JarLoader {
|
||||
}
|
||||
|
||||
private void load(String key, File file) {
|
||||
if (!file.setReadOnly()) return;
|
||||
loaders.put(key, dex(file));
|
||||
invokeInit(key);
|
||||
putProxy(key);
|
||||
try {
|
||||
if (!file.setReadOnly()) return;
|
||||
loaders.put(key, dex(file));
|
||||
invokeInit(key);
|
||||
putProxy(key);
|
||||
} catch (Throwable e) {
|
||||
android.util.Log.e("JarLoader", "Failed to load jar for key: " + key, e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private DexClassLoader dex(File file) {
|
||||
@@ -85,19 +90,24 @@ public class JarLoader {
|
||||
}
|
||||
|
||||
public synchronized void parseJar(String key, String jar) {
|
||||
if (loaders.containsKey(key)) return;
|
||||
String[] texts = jar.split(";md5;");
|
||||
String md5 = texts.length > 1 ? texts[1].trim() : "";
|
||||
if (md5.startsWith("http")) md5 = OkHttp.string(md5).trim();
|
||||
jar = texts[0];
|
||||
if (!md5.isEmpty() && Util.equals(jar, md5)) {
|
||||
load(key, Path.jar(jar));
|
||||
} else if (jar.startsWith("http")) {
|
||||
load(key, download(jar));
|
||||
} else if (jar.startsWith("file")) {
|
||||
load(key, Path.local(jar));
|
||||
} else if (jar.startsWith("assets")) {
|
||||
parseJar(key, UrlUtil.convert(jar));
|
||||
try {
|
||||
if (loaders.containsKey(key)) return;
|
||||
String[] texts = jar.split(";md5;");
|
||||
String md5 = texts.length > 1 ? texts[1].trim() : "";
|
||||
if (md5.startsWith("http")) md5 = OkHttp.string(md5).trim();
|
||||
jar = texts[0];
|
||||
if (!md5.isEmpty() && Util.equals(jar, md5)) {
|
||||
load(key, Path.jar(jar));
|
||||
} else if (jar.startsWith("http")) {
|
||||
load(key, download(jar));
|
||||
} else if (jar.startsWith("file")) {
|
||||
load(key, Path.local(jar));
|
||||
} else if (jar.startsWith("assets")) {
|
||||
parseJar(key, UrlUtil.convert(jar));
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
android.util.Log.e("JarLoader", "Failed to parse jar for key: " + key + ", jar: " + jar, e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ public abstract class ConfigDao extends BaseDao<Config> {
|
||||
@Query("SELECT * FROM Config WHERE type = :type ORDER BY time DESC")
|
||||
public abstract List<Config> findByType(int type);
|
||||
|
||||
@SuppressWarnings(RoomWarnings.QUERY_MISMATCH)
|
||||
@SuppressWarnings(RoomWarnings.CURSOR_MISMATCH)
|
||||
@Query("SELECT id, name, url, type, time FROM Config WHERE type = :type ORDER BY time DESC")
|
||||
public abstract List<Config> findUrlByType(int type);
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@ package com.fongmi.android.tv.ui.custom;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -33,6 +35,7 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
private long currentPosition;
|
||||
private long currentBuffered;
|
||||
private boolean scrubbing;
|
||||
private boolean isPressed;
|
||||
|
||||
public CustomSeekView(Context context) {
|
||||
this(context, null);
|
||||
@@ -55,6 +58,28 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
timeBar = findViewById(R.id.timeBar);
|
||||
timeBar.addListener(this);
|
||||
refresh = this::refresh;
|
||||
|
||||
// 添加触摸事件处理,实现按住时圆球变大的效果
|
||||
timeBar.setOnTouchListener((v, event) -> {
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
if (!isPressed) {
|
||||
isPressed = true;
|
||||
// 按住时:轨道变高到4dp
|
||||
setTimeBarHeight(4);
|
||||
}
|
||||
break;
|
||||
case MotionEvent.ACTION_UP:
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
if (isPressed) {
|
||||
isPressed = false;
|
||||
// 松开时:轨道恢复到2dp
|
||||
setTimeBarHeight(2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false; // 不拦截事件,让DefaultTimeBar正常处理
|
||||
});
|
||||
}
|
||||
|
||||
public void setListener(Players player) {
|
||||
@@ -68,6 +93,36 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
public void setDuration(long duration) {
|
||||
timeBar.setDuration(duration);
|
||||
}
|
||||
|
||||
/**
|
||||
* 动态调整进度条高度
|
||||
* @param barHeightDp 轨道高度(dp)
|
||||
*/
|
||||
private void setTimeBarHeight(int barHeightDp) {
|
||||
int barHeightPx = (int) TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP,
|
||||
barHeightDp,
|
||||
getContext().getResources().getDisplayMetrics()
|
||||
);
|
||||
|
||||
// 尝试通过反射设置DefaultTimeBar的内部barHeight字段
|
||||
try {
|
||||
java.lang.reflect.Field barHeightField = timeBar.getClass().getDeclaredField("barHeight");
|
||||
barHeightField.setAccessible(true);
|
||||
barHeightField.setInt(timeBar, barHeightPx);
|
||||
|
||||
// 强制刷新
|
||||
timeBar.invalidate();
|
||||
timeBar.requestLayout();
|
||||
} catch (Exception e) {
|
||||
// 如果反射失败,尝试调整布局参数
|
||||
android.util.Log.w("CustomSeekView", "Failed to set bar height via reflection: " + e.getMessage());
|
||||
if (timeBar.getLayoutParams() != null) {
|
||||
timeBar.getLayoutParams().height = barHeightPx;
|
||||
timeBar.requestLayout();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void start() {
|
||||
removeCallbacks(refresh);
|
||||
@@ -137,14 +192,17 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
// 延迟刷新进度条,确保播放器已经处理了跳转操作
|
||||
removeCallbacks(refresh);
|
||||
postDelayed(() -> {
|
||||
refresh();
|
||||
// 确保进度条位置与实际播放位置一致
|
||||
long actualPosition = player.getPosition();
|
||||
if (Math.abs(actualPosition - positionMs) > 100) { // 如果差异超过100ms,再次调整
|
||||
timeBar.setPosition(actualPosition);
|
||||
positionView.setText(player.stringToTime(actualPosition));
|
||||
// 只有在非拖动状态下才刷新进度条位置
|
||||
if (!scrubbing) {
|
||||
refresh();
|
||||
// 确保进度条位置与实际播放位置一致
|
||||
long actualPosition = player.getPosition();
|
||||
if (Math.abs(actualPosition - positionMs) > 100) { // 如果差异超过100ms,再次调整
|
||||
timeBar.setPosition(actualPosition);
|
||||
positionView.setText(player.stringToTime(actualPosition));
|
||||
}
|
||||
}
|
||||
}, 50); // 延迟50ms刷新
|
||||
}, 100); // 增加延迟时间,确保拖拽状态完全结束
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -167,10 +225,12 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
@Override
|
||||
public void onScrubStop(@NonNull TimeBar timeBar, long position, boolean canceled) {
|
||||
scrubbing = false;
|
||||
|
||||
if (!canceled) {
|
||||
// 先隐藏进度条提示,避免用户看到不一致的状态
|
||||
// 注意:这里不能直接访问mBinding.widget.seek,因为CustomSeekView不包含这个引用
|
||||
// 这个优化将在VideoActivity的onSeekEnd方法中实现
|
||||
// 立即设置进度条位置到目标位置,避免圆球跳回原始位置
|
||||
timeBar.setPosition(position);
|
||||
positionView.setText(player.stringToTime(position));
|
||||
|
||||
// 调整播放位置
|
||||
seekToTimeBarPosition(position);
|
||||
// 确保播放状态正确
|
||||
@@ -178,5 +238,7 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
|
||||
player.play();
|
||||
}
|
||||
}
|
||||
|
||||
// 不干预DefaultTimeBar的圆球绘制,让它自己处理
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import androidx.annotation.NonNull;
|
||||
import com.fongmi.android.tv.App;
|
||||
import com.fongmi.android.tv.Constant;
|
||||
import com.fongmi.android.tv.Setting;
|
||||
import com.fongmi.android.tv.api.AdBlocker;
|
||||
import com.fongmi.android.tv.api.config.LiveConfig;
|
||||
import com.fongmi.android.tv.api.config.VodConfig;
|
||||
import com.fongmi.android.tv.impl.ParseCallback;
|
||||
@@ -177,8 +178,13 @@ public class CustomWebView extends WebView implements DialogInterface.OnDismissL
|
||||
}
|
||||
|
||||
private boolean isAd(String host) {
|
||||
// 1. 首先检查内置广告域名库(包含常见的澳门新葡京等赌博广告)
|
||||
if (AdBlocker.shouldBlock(host)) return true;
|
||||
|
||||
// 2. 然后检查用户自定义的广告域名
|
||||
for (String ad : VodConfig.get().getAds()) if (Util.containOrMatch(host, ad)) return true;
|
||||
for (String ad : LiveConfig.get().getAds()) if (Util.containOrMatch(host, ad)) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,11 +2,13 @@ package com.fongmi.android.tv.utils;
|
||||
|
||||
import com.fongmi.android.tv.App;
|
||||
import com.github.catvod.net.OkHttp;
|
||||
import com.github.catvod.utils.Logger;
|
||||
import com.github.catvod.utils.Path;
|
||||
import com.google.common.net.HttpHeaders;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
@@ -47,14 +49,22 @@ public class Download {
|
||||
private void doInBackground() {
|
||||
try (Response res = OkHttp.newCall(url, url).execute()) {
|
||||
Path.create(file);
|
||||
download(res.body().byteStream(), Double.parseDouble(res.header(HttpHeaders.CONTENT_LENGTH, "1")));
|
||||
long expectedLength = Long.parseLong(res.header(HttpHeaders.CONTENT_LENGTH, "0"));
|
||||
download(res.body().byteStream(), expectedLength);
|
||||
|
||||
// 验证下载的文件
|
||||
if (!verifyDownloadedFile(file, expectedLength)) {
|
||||
App.post(() -> {if (callback != null) callback.error("下载的文件可能已损坏,请重试");});
|
||||
return;
|
||||
}
|
||||
|
||||
App.post(() -> {if (callback != null) callback.success(file);});
|
||||
} catch (Exception e) {
|
||||
App.post(() -> {if (callback != null) callback.error(e.getMessage());});
|
||||
}
|
||||
}
|
||||
|
||||
private void download(InputStream is, double length) throws Exception {
|
||||
private void download(InputStream is, long length) throws Exception {
|
||||
try (BufferedInputStream input = new BufferedInputStream(is); FileOutputStream os = new FileOutputStream(file)) {
|
||||
byte[] buffer = new byte[4096];
|
||||
int readBytes;
|
||||
@@ -68,6 +78,45 @@ public class Download {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean verifyDownloadedFile(File file, long expectedLength) {
|
||||
try {
|
||||
// 检查文件大小
|
||||
if (file.length() != expectedLength) {
|
||||
Logger.e("File size mismatch: expected " + expectedLength + ", actual " + file.length());
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查APK文件头 (ZIP文件头)
|
||||
if (file.length() < 4) return false;
|
||||
|
||||
try (FileInputStream fis = new FileInputStream(file)) {
|
||||
byte[] header = new byte[4];
|
||||
fis.read(header);
|
||||
// ZIP文件头应该是 0x504B0304 (PK..)
|
||||
if (header[0] != 0x50 || header[1] != 0x4B || header[2] != 0x03 || header[3] != 0x04) {
|
||||
Logger.e("Invalid APK file header");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 额外验证:检查APK文件是否完整
|
||||
// 尝试读取ZIP文件结构
|
||||
fis.getChannel().position(0);
|
||||
byte[] buffer = new byte[1024];
|
||||
int bytesRead = fis.read(buffer);
|
||||
if (bytesRead < 4) {
|
||||
Logger.e("APK file too small or corrupted");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Logger.d("APK file verification passed: " + file.getName() + " (" + file.length() + " bytes)");
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
Logger.e("File verification failed: " + e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public interface Callback {
|
||||
|
||||
void progress(int progress);
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.core.content.FileProvider;
|
||||
import com.fongmi.android.tv.App;
|
||||
import com.fongmi.android.tv.R;
|
||||
import com.fongmi.android.tv.impl.Callback;
|
||||
import com.github.catvod.utils.Logger;
|
||||
import com.github.catvod.utils.Path;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
@@ -34,11 +35,35 @@ public class FileUtil {
|
||||
}
|
||||
|
||||
public static void openFile(File file) {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
intent.setDataAndType(getShareUri(file), FileUtil.getMimeType(file.getName()));
|
||||
App.get().startActivity(intent);
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
|
||||
// 对于APK文件,使用特定的MIME类型
|
||||
String mimeType = file.getName().toLowerCase().endsWith(".apk") ?
|
||||
"application/vnd.android.package-archive" : getMimeType(file.getName());
|
||||
|
||||
intent.setDataAndType(getShareUri(file), mimeType);
|
||||
|
||||
// 添加额外的安装权限检查
|
||||
if (file.getName().toLowerCase().endsWith(".apk")) {
|
||||
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||
}
|
||||
|
||||
App.get().startActivity(intent);
|
||||
} catch (Exception e) {
|
||||
Logger.e("Failed to open file: " + e.getMessage());
|
||||
// 如果失败,尝试使用通用方式
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.setDataAndType(getShareUri(file), "*/*");
|
||||
App.get().startActivity(intent);
|
||||
} catch (Exception ex) {
|
||||
Logger.e("Fallback open file also failed: " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void gzipCompress(File target) {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
android:topLeftRadius="8dp"
|
||||
android:topRightRadius="8dp" />
|
||||
|
||||
<solid android:color="#B32196F3" />
|
||||
<solid android:color="#B3000000" />
|
||||
|
||||
<padding
|
||||
android:bottom="4dp"
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/white" />
|
||||
<!-- 使用纯色背景,自动适配深浅色模式 -->
|
||||
<background android:drawable="@color/launcher_background" />
|
||||
<!-- 前景图标:使用 inset 缩小显示(因为图标铺满了画布)-->
|
||||
<foreground>
|
||||
<inset
|
||||
android:drawable="@mipmap/ic_launcher_foreground"
|
||||
android:inset="20%" />
|
||||
</foreground>
|
||||
<!-- 主题图标:也需要使用 inset 保持大小一致 -->
|
||||
<monochrome>
|
||||
<inset
|
||||
android:drawable="@mipmap/ic_launcher_foreground"
|
||||
android:inset="20%" />
|
||||
</monochrome>
|
||||
</adaptive-icon>
|
||||
@@ -1,9 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/white" />
|
||||
<!-- 使用纯色背景,自动适配深浅色模式 -->
|
||||
<background android:drawable="@color/launcher_background" />
|
||||
<!-- 前景图标:使用 inset 缩小显示(因为图标铺满了画布)-->
|
||||
<foreground>
|
||||
<inset
|
||||
android:drawable="@mipmap/ic_launcher_foreground"
|
||||
android:inset="20%" />
|
||||
</foreground>
|
||||
</adaptive-icon>
|
||||
<!-- 主题图标:也需要使用 inset 保持大小一致 -->
|
||||
<monochrome>
|
||||
<inset
|
||||
android:drawable="@mipmap/ic_launcher_foreground"
|
||||
android:inset="20%" />
|
||||
</monochrome>
|
||||
</adaptive-icon>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 998 B |
|
Before Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 998 B |
|
Before Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 830 B |
|
Before Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 830 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 830 B |
|
Before Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 830 B |
|
Before Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,7 @@
|
||||
<resources>
|
||||
|
||||
<!-- Launcher icon background (Dark mode) -->
|
||||
<color name="launcher_background">#222222</color>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
<string name="setting_subscription">订阅管理</string>
|
||||
<string name="setting_player">播放设置</string>
|
||||
<string name="setting_incognito">无痕模式</string>
|
||||
<string name="setting_live_tab_visible">隐藏直播</string>
|
||||
<string name="setting_quality">图片品质</string>
|
||||
<string name="setting_size">图片尺寸</string>
|
||||
<string name="setting_doh">DoH</string>
|
||||
@@ -90,7 +91,7 @@
|
||||
<string name="setting_app">应用设置</string>
|
||||
<string name="setting_network">网络设置</string>
|
||||
<string name="setting_data">数据管理</string>
|
||||
<string name="app_version">v3.0.3</string>
|
||||
<string name="app_version">v3.0.9</string>
|
||||
<string name="about_github">在GitHub上查看</string>
|
||||
|
||||
<!-- Backup & Restore -->
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<string name="setting_app">應用設置</string>
|
||||
<string name="setting_network">網絡設置</string>
|
||||
<string name="setting_data">數據管理</string>
|
||||
<string name="app_version">v3.0.3</string>
|
||||
<string name="app_version">v3.0.9</string>
|
||||
<string name="about_github">在GitHub上查看</string>
|
||||
|
||||
<!-- Backup & Restore -->
|
||||
|
||||
@@ -27,5 +27,8 @@
|
||||
<color name="white_90">#E6FFFFFF</color>
|
||||
<color name="text_toast">#FFEB3B</color>
|
||||
<color name="yellow_500">#FFEB3B</color>
|
||||
|
||||
<!-- Launcher icon background (Light mode) -->
|
||||
<color name="launcher_background">#FFFFFF</color>
|
||||
|
||||
</resources>
|
||||
@@ -78,6 +78,7 @@
|
||||
<string name="setting_data">Data Management</string>
|
||||
<string name="setting_player">Player setting</string>
|
||||
<string name="setting_incognito">Incognito mode</string>
|
||||
<string name="setting_live_tab_visible">Hide Live Tab</string>
|
||||
<string name="setting_quality">Image quality</string>
|
||||
<string name="setting_size">Image size</string>
|
||||
<string name="setting_doh">DoH</string>
|
||||
@@ -91,7 +92,7 @@
|
||||
<string name="setting_choose">Choose</string>
|
||||
<string name="setting_off">Off</string>
|
||||
<string name="setting_on">On</string>
|
||||
<string name="app_version">v3.0.6</string>
|
||||
<string name="app_version">v3.0.9</string>
|
||||
<string name="about_github">View on GitHub</string>
|
||||
|
||||
<!-- Backup & Restore -->
|
||||
@@ -151,7 +152,7 @@
|
||||
<string name="error_device_limit">Device authorization limit reached</string>
|
||||
<string name="error_live_empty">This subscription has no live content</string>
|
||||
<string name="error_no_live">Current source has no live content</string>
|
||||
<string name="error_empty">这里撒子内容都没得~</string>
|
||||
<string name="error_empty">空谷待音~</string>
|
||||
<string name="error_keep_empty">老表~没得收藏哈</string>
|
||||
<string name="error_search_empty">搜索无结果,换个关键词试试</string>
|
||||
<string name="error_detail">No play data</string>
|
||||
@@ -237,8 +238,8 @@
|
||||
<string name="target_size">Target size</string>
|
||||
<string name="scan_result">Scan result</string>
|
||||
|
||||
<string name="source_hint">No video sources added yet\nClick the button below to add</string>
|
||||
<string name="add_source">Add Source</string>
|
||||
<string name="source_hint">空谷无音,待君添源</string>
|
||||
<string name="add_source">添加源</string>
|
||||
|
||||
<!-- 隐私协议相关 -->
|
||||
<string name="privacy_agreement_title">XMBOX软件许可协议</string>
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.fongmi.android.tv;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
@@ -30,9 +32,10 @@ public class Updater implements Download.Callback {
|
||||
private AlertDialog dialog;
|
||||
private boolean dev;
|
||||
private boolean forceCheck; // 是否为手动检查
|
||||
private String latestVersion; // 存储检测到的最新版本
|
||||
|
||||
private File getFile() {
|
||||
return Path.cache("update.apk");
|
||||
return Path.root("Download", "XMBOX-update.apk");
|
||||
}
|
||||
|
||||
private String getJson() {
|
||||
@@ -40,7 +43,31 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private String getApk() {
|
||||
return Github.getApk(dev, BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_abi);
|
||||
// 使用JSON中指定的具体下载路径
|
||||
try {
|
||||
String response = OkHttp.string(getJson());
|
||||
JSONObject object = new JSONObject(response);
|
||||
JSONObject downloads = object.optJSONObject("downloads");
|
||||
if (downloads != null) {
|
||||
String abi = BuildConfig.FLAVOR_abi;
|
||||
String downloadPath = downloads.optString(abi);
|
||||
if (!downloadPath.isEmpty()) {
|
||||
// 直接构建完整URL,不通过Github.getApk()避免重复添加路径
|
||||
String baseUrl = Github.useCnMirror() ?
|
||||
"https://gitee.com/ochenoktochen/XMBOX-Release/raw/main" :
|
||||
"https://raw.githubusercontent.com/Tosencen/XMBOX-Release/main";
|
||||
String fullUrl = baseUrl + "/apk/" + (dev ? "dev" : "release") + "/" + downloadPath;
|
||||
Logger.d("APK download URL: " + fullUrl);
|
||||
return fullUrl;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Failed to get download path from JSON: " + e.getMessage());
|
||||
}
|
||||
// 回退到原来的方式
|
||||
String fallbackUrl = Github.getApk(dev, BuildConfig.FLAVOR_mode + "-" + BuildConfig.FLAVOR_abi);
|
||||
Logger.d("APK fallback URL: " + fallbackUrl);
|
||||
return fallbackUrl;
|
||||
}
|
||||
|
||||
public static Updater create() {
|
||||
@@ -83,45 +110,89 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private void doInBackground(Activity activity) {
|
||||
Logger.d("Updater: Starting update check...");
|
||||
try {
|
||||
String response = OkHttp.string(getJson());
|
||||
// 直接使用GitHub Releases API检测最新版本
|
||||
String releasesUrl = "https://api.github.com/repos/Tosencen/XMBOX/releases/latest";
|
||||
Logger.d("Updater: GitHub Releases API URL: " + releasesUrl);
|
||||
|
||||
// 检查响应是否包含错误信息,只在手动检查时提示
|
||||
String response = OkHttp.string(releasesUrl);
|
||||
Logger.d("Updater: API response length: " + response.length());
|
||||
|
||||
// 检查响应是否包含错误信息
|
||||
if (response.contains("rate limit exceeded")) {
|
||||
Logger.e("Updater: Rate limit exceeded");
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:API请求过于频繁,请稍后重试"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (response.contains("Not Found Project") || response.contains("Not Found")) {
|
||||
if (response.contains("Not Found") || response.contains("404")) {
|
||||
Logger.e("Updater: Release not found");
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:更新服务暂时不可用"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
JSONObject object = new JSONObject(response);
|
||||
String name = object.optString("name");
|
||||
String desc = object.optString("desc");
|
||||
int code = object.optInt("code");
|
||||
if (need(code, name)) {
|
||||
App.post(() -> show(activity, name, desc));
|
||||
JSONObject release = new JSONObject(response);
|
||||
String tagName = release.optString("tag_name");
|
||||
String body = release.optString("body");
|
||||
|
||||
// 提取版本号(去掉v前缀)
|
||||
String version = tagName.startsWith("v") ? tagName.substring(1) : tagName;
|
||||
|
||||
Logger.d("Updater: Remote version: " + version);
|
||||
Logger.d("Updater: Local version: " + BuildConfig.VERSION_NAME);
|
||||
|
||||
// 比较版本号
|
||||
if (needUpdate(version)) {
|
||||
Logger.d("Updater: Update needed, showing dialog");
|
||||
this.latestVersion = version; // 保存最新版本号
|
||||
App.post(() -> show(activity, version, body));
|
||||
} else {
|
||||
// 只在手动检查时提示已是最新版
|
||||
Logger.d("Updater: No update needed");
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("已是最新版本 " + name));
|
||||
App.post(() -> Notify.show("已是最新版本 " + version));
|
||||
}
|
||||
Logger.d("Already latest version: " + name);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Exception during update check: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
// 只在手动检查时提示网络错误
|
||||
if (forceCheck) {
|
||||
App.post(() -> Notify.show("检查更新失败:网络连接异常"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean needUpdate(String remoteVersion) {
|
||||
if (!Setting.getUpdate()) return false;
|
||||
|
||||
try {
|
||||
// 简单的版本号比较,假设版本格式为 x.y.z
|
||||
String[] remoteParts = remoteVersion.split("\\.");
|
||||
String[] localParts = BuildConfig.VERSION_NAME.split("\\.");
|
||||
|
||||
// 确保两个版本号都有足够的段
|
||||
int maxLength = Math.max(remoteParts.length, localParts.length);
|
||||
|
||||
for (int i = 0; i < maxLength; i++) {
|
||||
int remotePart = i < remoteParts.length ? Integer.parseInt(remoteParts[i]) : 0;
|
||||
int localPart = i < localParts.length ? Integer.parseInt(localParts[i]) : 0;
|
||||
|
||||
if (remotePart > localPart) {
|
||||
return true;
|
||||
} else if (remotePart < localPart) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false; // 版本相同
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Version comparison error: " + e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void show(Activity activity, String version, String desc) {
|
||||
binding = DialogUpdateBinding.inflate(LayoutInflater.from(activity));
|
||||
@@ -142,8 +213,31 @@ public class Updater implements Download.Callback {
|
||||
}
|
||||
|
||||
private void confirm(View view) {
|
||||
view.setEnabled(false);
|
||||
download.start();
|
||||
// 跳转到具体版本的GitHub Releases页面
|
||||
try {
|
||||
String url = "https://github.com/Tosencen/XMBOX/releases/tag/v" + latestVersion;
|
||||
Logger.d("Updater: Attempting to open URL: " + url);
|
||||
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(url));
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
// 检查是否有应用可以处理这个Intent
|
||||
if (intent.resolveActivity(App.get().getPackageManager()) != null) {
|
||||
App.get().startActivity(intent);
|
||||
Logger.d("Updater: Successfully started browser intent");
|
||||
dismiss();
|
||||
} else {
|
||||
Logger.e("Updater: No app can handle the URL");
|
||||
Notify.show("没有找到可以打开链接的应用,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.e("Updater: Failed to open GitHub releases page: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
Notify.show("无法打开更新页面,请手动访问GitHub下载");
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
private void dismiss() {
|
||||
|
||||
@@ -154,7 +154,7 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt
|
||||
private void setNavigation() {
|
||||
mBinding.navigation.getMenu().findItem(R.id.vod).setVisible(true);
|
||||
mBinding.navigation.getMenu().findItem(R.id.setting).setVisible(true);
|
||||
mBinding.navigation.getMenu().findItem(R.id.live).setVisible(LiveConfig.hasUrl());
|
||||
mBinding.navigation.getMenu().findItem(R.id.live).setVisible(LiveConfig.hasUrl() && !Setting.isLiveTabVisible());
|
||||
}
|
||||
|
||||
private boolean openLive() {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.fongmi.android.tv.ui.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.drawable.Drawable;
|
||||
@@ -98,6 +100,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
|
||||
private String tag;
|
||||
private int count;
|
||||
private PiP mPiP;
|
||||
private BroadcastReceiver mScreenReceiver;
|
||||
private boolean mPausedByScreen = false;
|
||||
|
||||
public static void start(Context context) {
|
||||
if (!LiveConfig.isEmpty()) context.startActivity(new Intent(context, LiveActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).putExtra("empty", false));
|
||||
@@ -148,6 +152,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
|
||||
mR2 = this::setTraffic;
|
||||
mR3 = this::hideInfo;
|
||||
mPiP = new PiP();
|
||||
initScreenReceiver();
|
||||
Server.get().start();
|
||||
setRecyclerView();
|
||||
setVideoView();
|
||||
@@ -155,6 +160,33 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
|
||||
checkLive();
|
||||
}
|
||||
|
||||
private void initScreenReceiver() {
|
||||
// 屏幕开关监听 - 仅用于画中画模式下控制播放
|
||||
mScreenReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent == null || intent.getAction() == null) return;
|
||||
|
||||
// 只在画中画模式下处理屏幕开关
|
||||
if (isInPictureInPictureMode()) {
|
||||
if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) {
|
||||
// 画中画模式下关屏,暂停播放
|
||||
if (mPlayers.isPlaying()) {
|
||||
onPaused();
|
||||
mPausedByScreen = true;
|
||||
}
|
||||
} else if (Intent.ACTION_SCREEN_ON.equals(intent.getAction())) {
|
||||
// 画中画模式下开屏,恢复播放
|
||||
if (mPausedByScreen) {
|
||||
onPlay();
|
||||
mPausedByScreen = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
protected void initEvent() {
|
||||
@@ -1048,6 +1080,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
|
||||
hideInfo();
|
||||
hideUI();
|
||||
} else {
|
||||
// 退出画中画模式时,重置屏幕暂停标志
|
||||
mPausedByScreen = false;
|
||||
hideInfo();
|
||||
if (isStop()) finish();
|
||||
}
|
||||
@@ -1075,6 +1109,13 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
// 注册屏幕开关监听
|
||||
if (mScreenReceiver != null) {
|
||||
IntentFilter screenFilter = new IntentFilter();
|
||||
screenFilter.addAction(Intent.ACTION_SCREEN_ON);
|
||||
screenFilter.addAction(Intent.ACTION_SCREEN_OFF);
|
||||
registerReceiver(mScreenReceiver, screenFilter);
|
||||
}
|
||||
if (isRedirect()) onPlay();
|
||||
setRedirect(false);
|
||||
}
|
||||
@@ -1082,6 +1123,14 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
// 注销屏幕开关监听
|
||||
try {
|
||||
if (mScreenReceiver != null) {
|
||||
unregisterReceiver(mScreenReceiver);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Ignore
|
||||
}
|
||||
if (isRedirect()) onPaused();
|
||||
}
|
||||
|
||||
|
||||
@@ -65,17 +65,19 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
protected void initEvent() {
|
||||
mBinding.back.setOnClickListener(v -> finish());
|
||||
mBinding.ua.setOnClickListener(this::onUa);
|
||||
mBinding.aac.setOnClickListener(this::setAAC);
|
||||
mBinding.scale.setOnClickListener(this::onScale);
|
||||
mBinding.speed.setOnClickListener(this::onSpeed);
|
||||
mBinding.buffer.setOnClickListener(this::onBuffer);
|
||||
mBinding.render.setOnClickListener(this::setRender);
|
||||
mBinding.tunnel.setOnClickListener(this::setTunnel);
|
||||
mBinding.caption.setOnClickListener(this::setCaption);
|
||||
mBinding.caption.setOnLongClickListener(this::onCaption);
|
||||
mBinding.background.setOnClickListener(this::onBackground);
|
||||
mBinding.audioDecode.setOnClickListener(this::setAudioDecode);
|
||||
mBinding.danmakuLoad.setOnClickListener(this::setDanmakuLoad);
|
||||
|
||||
// 直接给开关按钮设置点击监听器,避免双重点击冲突
|
||||
mBinding.tunnelSwitch.setOnClickListener(this::setTunnel);
|
||||
mBinding.audioDecodeSwitch.setOnClickListener(this::setAudioDecode);
|
||||
mBinding.aacSwitch.setOnClickListener(this::setAAC);
|
||||
mBinding.danmakuLoadSwitch.setOnClickListener(this::setDanmakuLoad);
|
||||
}
|
||||
|
||||
private void onUa(View view) {
|
||||
@@ -91,7 +93,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
private void setAAC(View view) {
|
||||
boolean isChecked = !Setting.isPreferAAC();
|
||||
Setting.putPreferAAC(isChecked);
|
||||
mBinding.aacSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void onScale(View view) {
|
||||
@@ -132,7 +134,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
private void setTunnel(View view) {
|
||||
boolean isChecked = !Setting.isTunnel();
|
||||
Setting.putTunnel(isChecked);
|
||||
mBinding.tunnelSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
if (isChecked && Setting.getRender() == 1) setRender(view);
|
||||
}
|
||||
|
||||
@@ -157,12 +159,12 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
|
||||
private void setAudioDecode(View view) {
|
||||
boolean isChecked = !Setting.isAudioPrefer();
|
||||
Setting.putAudioPrefer(isChecked);
|
||||
mBinding.audioDecodeSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void setDanmakuLoad(View view) {
|
||||
boolean isChecked = !Setting.isDanmakuLoad();
|
||||
Setting.putDanmakuLoad(isChecked);
|
||||
mBinding.danmakuLoadSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
}
|
||||
@@ -162,8 +162,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
private Handler mHandler;
|
||||
private Runnable mTimeUpdateRunnable;
|
||||
private BroadcastReceiver mBatteryReceiver;
|
||||
private BroadcastReceiver mScreenReceiver;
|
||||
private int mBatteryLevel = -1;
|
||||
private boolean mIsCharging = false;
|
||||
private boolean mPausedByScreen = false;
|
||||
|
||||
public static void push(FragmentActivity activity, String text) {
|
||||
if (FileChooser.isValid(activity, Uri.parse(text))) file(activity, FileChooser.getPathFromUri(activity, Uri.parse(text)));
|
||||
@@ -341,6 +343,31 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
}
|
||||
};
|
||||
|
||||
// 屏幕开关监听 - 仅用于画中画模式下控制播放
|
||||
mScreenReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent == null || intent.getAction() == null) return;
|
||||
|
||||
// 只在画中画模式下处理屏幕开关
|
||||
if (isInPictureInPictureMode()) {
|
||||
if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) {
|
||||
// 画中画模式下关屏,暂停播放
|
||||
if (mPlayers.isPlaying()) {
|
||||
onPaused();
|
||||
mPausedByScreen = true;
|
||||
}
|
||||
} else if (Intent.ACTION_SCREEN_ON.equals(intent.getAction())) {
|
||||
// 画中画模式下开屏,恢复播放
|
||||
if (mPausedByScreen) {
|
||||
onPlay();
|
||||
mPausedByScreen = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
mTimeUpdateRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -391,6 +418,13 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
|
||||
private void startTimeBatteryUpdates() {
|
||||
registerReceiver(mBatteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
|
||||
// 注册屏幕开关监听
|
||||
IntentFilter screenFilter = new IntentFilter();
|
||||
screenFilter.addAction(Intent.ACTION_SCREEN_ON);
|
||||
screenFilter.addAction(Intent.ACTION_SCREEN_OFF);
|
||||
registerReceiver(mScreenReceiver, screenFilter);
|
||||
|
||||
updateTimeBattery();
|
||||
mHandler.post(mTimeUpdateRunnable);
|
||||
}
|
||||
@@ -402,6 +436,14 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
try {
|
||||
if (mScreenReceiver != null) {
|
||||
unregisterReceiver(mScreenReceiver);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
mHandler.removeCallbacks(mTimeUpdateRunnable);
|
||||
}
|
||||
|
||||
@@ -1728,6 +1770,8 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
|
||||
hideDanmaku();
|
||||
hideSheet();
|
||||
} else {
|
||||
// 退出画中画模式时,重置屏幕暂停标志
|
||||
mPausedByScreen = false;
|
||||
showDanmaku();
|
||||
if (isStop()) finish();
|
||||
}
|
||||
|
||||
@@ -53,6 +53,10 @@ public class ConfigDialog {
|
||||
|
||||
public ConfigDialog(Fragment fragment) {
|
||||
this.fragment = fragment;
|
||||
// 确保fragment实现了ConfigCallback接口
|
||||
if (!(fragment instanceof ConfigCallback)) {
|
||||
throw new IllegalArgumentException("Fragment must implement ConfigCallback");
|
||||
}
|
||||
this.callback = (ConfigCallback) fragment;
|
||||
this.binding = DialogConfigBinding.inflate(LayoutInflater.from(fragment.getContext()));
|
||||
this.append = true;
|
||||
@@ -146,11 +150,14 @@ public class ConfigDialog {
|
||||
String url = binding.url.getText().toString().trim();
|
||||
String name = binding.name.getText().toString().trim();
|
||||
|
||||
android.util.Log.d("ConfigDialog", "onPositive: type=" + type + ", url=" + url + ", name=" + name);
|
||||
|
||||
// 如果是编辑模式,更新现有配置
|
||||
if (edit) Config.find(ori, type).url(url).name(name).update();
|
||||
|
||||
// 如果URL为空,删除配置
|
||||
if (url.isEmpty()) {
|
||||
android.util.Log.d("ConfigDialog", "URL is empty, deleting config");
|
||||
Config.delete(ori, type);
|
||||
dialog.dismiss();
|
||||
return;
|
||||
@@ -159,7 +166,18 @@ public class ConfigDialog {
|
||||
// 只有URL不为空时,才设置配置
|
||||
// 保存原始URL,以便在添加失败时恢复
|
||||
String originalUrl = ori;
|
||||
callback.setConfig(Config.find(url, type));
|
||||
android.util.Log.d("ConfigDialog", "Calling Config.find with url=" + url + ", type=" + type);
|
||||
|
||||
Config config = Config.find(url, type);
|
||||
android.util.Log.d("ConfigDialog", "Config.find returned: " + (config != null ? config.toString() : "null"));
|
||||
|
||||
android.util.Log.d("ConfigDialog", "Checking callback: " + (callback != null ? callback.getClass().getName() : "null"));
|
||||
android.util.Log.d("ConfigDialog", "Checking fragment: " + (fragment != null ? fragment.getClass().getName() : "null"));
|
||||
|
||||
android.util.Log.d("ConfigDialog", "Calling callback.setConfig");
|
||||
callback.setConfig(config);
|
||||
|
||||
android.util.Log.d("ConfigDialog", "setConfig completed");
|
||||
|
||||
// 添加一个延迟检查,如果配置没有成功加载,则恢复原始URL
|
||||
new android.os.Handler().postDelayed(() -> {
|
||||
|
||||
@@ -23,13 +23,16 @@ import com.fongmi.android.tv.ui.base.ViewType;
|
||||
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
|
||||
import com.fongmi.android.tv.utils.ResUtil;
|
||||
import com.fongmi.android.tv.utils.Timer;
|
||||
import com.fongmi.android.tv.utils.Util;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
import com.google.android.material.slider.Slider;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Formatter;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickListener {
|
||||
public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickListener, Timer.Callback {
|
||||
|
||||
private DialogControlBinding binding;
|
||||
private ActivityVideoBinding parent;
|
||||
@@ -40,6 +43,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
private History history;
|
||||
private Players player;
|
||||
private boolean parse;
|
||||
private StringBuilder builder;
|
||||
private Formatter formatter;
|
||||
|
||||
public static ControlDialog create() {
|
||||
return new ControlDialog();
|
||||
@@ -47,6 +52,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
|
||||
public ControlDialog() {
|
||||
this.scale = ResUtil.getStringArray(R.array.select_scale);
|
||||
this.builder = new StringBuilder();
|
||||
this.formatter = new Formatter(builder, Locale.getDefault());
|
||||
}
|
||||
|
||||
public ControlDialog parent(ActivityVideoBinding parent) {
|
||||
@@ -93,6 +100,15 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
binding.opening.setText(parent.control.action.opening.getText());
|
||||
binding.loop.setActivated(parent.control.action.loop.isActivated());
|
||||
binding.timer.setActivated(Timer.get().isRunning());
|
||||
|
||||
// 设置定时器回调并更新按钮文字
|
||||
if (Timer.get().isRunning()) {
|
||||
Timer.get().setCallback(this);
|
||||
updateTimerText(Timer.get().getTick());
|
||||
} else {
|
||||
binding.timer.setText(R.string.play_timer);
|
||||
}
|
||||
|
||||
setTrackVisible();
|
||||
setScaleText();
|
||||
setPlayer();
|
||||
@@ -126,6 +142,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
private void setSpeed(@NonNull Slider slider, float value, boolean fromUser) {
|
||||
parent.control.action.speed.setText(player.setSpeed(value));
|
||||
if (history != null) history.setSpeed(player.getSpeed());
|
||||
// 实时更新倍速数值显示
|
||||
binding.speedValue.setText(String.format("%.1fx", value));
|
||||
}
|
||||
|
||||
private void setScaleText() {
|
||||
@@ -179,6 +197,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
binding.player.setText(parent.control.action.player.getText());
|
||||
binding.decode.setVisibility(parent.control.action.decode.getVisibility());
|
||||
binding.danmaku.setVisibility(parent.control.action.danmaku.getVisibility());
|
||||
// 初始化倍速数值显示
|
||||
binding.speedValue.setText(String.format("%.1fx", Math.max(player.getSpeed(), 0.5f)));
|
||||
}
|
||||
|
||||
public void setParseVisible(boolean visible) {
|
||||
@@ -199,6 +219,42 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
|
||||
binding.parse.getAdapter().notifyItemRangeChanged(0, binding.parse.getAdapter().getItemCount());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新定时按钮文字为倒计时
|
||||
*/
|
||||
private void updateTimerText(long tick) {
|
||||
if (tick > 0) {
|
||||
binding.timer.setText(Util.format(builder, formatter, tick));
|
||||
} else {
|
||||
binding.timer.setText(R.string.play_timer);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Timer.Callback 接口实现 - 定时器每秒回调
|
||||
*/
|
||||
@Override
|
||||
public void onTick(long tick) {
|
||||
updateTimerText(tick);
|
||||
}
|
||||
|
||||
/**
|
||||
* Timer.Callback 接口实现 - 定时完成回调
|
||||
*/
|
||||
@Override
|
||||
public void onFinish() {
|
||||
// 定时结束,恢复按钮文字
|
||||
binding.timer.setText(R.string.play_timer);
|
||||
binding.timer.setActivated(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismiss() {
|
||||
// 关闭对话框时取消定时器回调
|
||||
Timer.get().setCallback(null);
|
||||
super.dismiss();
|
||||
}
|
||||
|
||||
public interface Listener {
|
||||
|
||||
void onScale(int tag);
|
||||
|
||||
@@ -60,6 +60,8 @@ public class TimerDialog extends BaseDialog implements Timer.Callback {
|
||||
binding.time2.setOnClickListener(this::setTimer);
|
||||
binding.time3.setOnClickListener(this::setTimer);
|
||||
binding.time4.setOnClickListener(this::setTimer);
|
||||
binding.time5.setOnClickListener(this::setTimer);
|
||||
binding.time6.setOnClickListener(this::setTimer);
|
||||
}
|
||||
|
||||
private void setTimer(View view) {
|
||||
|
||||
@@ -8,9 +8,11 @@ import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.RelativeSizeSpan;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -101,7 +103,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
protected void initView() {
|
||||
setSourceHintText(mBinding.vodUrl, VodConfig.getDesc(), R.string.source_hint_setting);
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
mBinding.versionText.setText(getString(R.string.setting_version) + " " + BuildConfig.VERSION_NAME);
|
||||
|
||||
setOtherText();
|
||||
@@ -115,7 +117,30 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
mBinding.dohText.setText(getDohList()[getDohIndex()]);
|
||||
mBinding.proxyText.setText(getProxy(Setting.getProxy()));
|
||||
mBinding.incognitoSwitch.setChecked(Setting.isIncognito());
|
||||
mBinding.liveTabVisibleSwitch.setChecked(Setting.isLiveTabVisible());
|
||||
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
|
||||
setLiveSettingsVisibility();
|
||||
}
|
||||
|
||||
private void setLiveSettingsVisibility() {
|
||||
boolean isLiveTabVisible = !Setting.isLiveTabVisible(); // 注意:这里取反,因为开关是"隐藏直播"
|
||||
|
||||
// 获取直播容器的布局参数
|
||||
LinearLayout.LayoutParams liveContainerParams = (LinearLayout.LayoutParams) mBinding.liveContainer.getLayoutParams();
|
||||
|
||||
if (isLiveTabVisible) {
|
||||
// 直播开关打开:显示直播模块,间距为12dp
|
||||
mBinding.liveContainer.setVisibility(View.VISIBLE);
|
||||
liveContainerParams.topMargin = (int) TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP, 12, getResources().getDisplayMetrics());
|
||||
} else {
|
||||
// 直播开关关闭:隐藏直播模块,间距为0dp(这样视频模块和下一个模块之间会有正常间距)
|
||||
mBinding.liveContainer.setVisibility(View.GONE);
|
||||
liveContainerParams.topMargin = 0;
|
||||
}
|
||||
|
||||
// 应用布局参数
|
||||
mBinding.liveContainer.setLayoutParams(liveContainerParams);
|
||||
}
|
||||
|
||||
private void setCacheText() {
|
||||
@@ -131,7 +156,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
protected void initEvent() {
|
||||
mBinding.vod.setOnClickListener(this::onVod);
|
||||
mBinding.live.setOnClickListener(this::onLive);
|
||||
mBinding.wall.setOnClickListener(this::onWall);
|
||||
// mBinding.wall.setOnClickListener(this::onWall); // 壁纸功能已移除
|
||||
mBinding.proxy.setOnClickListener(this::onProxy);
|
||||
mBinding.cache.setOnClickListener(this::onCache);
|
||||
mBinding.backup.setOnClickListener(this::onBackup);
|
||||
@@ -143,13 +168,14 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
mBinding.vodHome.setOnClickListener(this::onVodHome);
|
||||
mBinding.live.setOnLongClickListener(this::onLiveEdit);
|
||||
mBinding.liveHome.setOnClickListener(this::onLiveHome);
|
||||
mBinding.wall.setOnLongClickListener(this::onWallEdit);
|
||||
// mBinding.wall.setOnLongClickListener(this::onWallEdit); // 壁纸功能已移除
|
||||
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
|
||||
mBinding.version.setOnLongClickListener(this::onVersionDev);
|
||||
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
|
||||
mBinding.wallDefault.setOnClickListener(this::setWallDefault);
|
||||
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
|
||||
mBinding.incognito.setOnClickListener(this::setIncognito);
|
||||
// mBinding.wallDefault.setOnClickListener(this::setWallDefault); // 壁纸功能已移除
|
||||
// mBinding.wallRefresh.setOnClickListener(this::setWallRefresh); // 壁纸功能已移除
|
||||
mBinding.incognitoSwitch.setOnClickListener(this::setIncognito);
|
||||
mBinding.liveTabVisibleSwitch.setOnClickListener(this::setLiveTabVisible);
|
||||
mBinding.size.setOnClickListener(this::setSize);
|
||||
mBinding.doh.setOnClickListener(this::setDoh);
|
||||
}
|
||||
@@ -200,9 +226,9 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
case 2:
|
||||
Notify.progress(getActivity());
|
||||
WallConfig.load(config, getCallback(2));
|
||||
if (mBinding != null && mBinding.wallUrl != null) {
|
||||
mBinding.wallUrl.setText(config.getDesc());
|
||||
}
|
||||
// if (mBinding != null && mBinding.wallUrl != null) { // 壁纸功能已移除
|
||||
// mBinding.wallUrl.setText(config.getDesc());
|
||||
// }
|
||||
break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -241,7 +267,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
break;
|
||||
case 2:
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -257,7 +283,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
RefreshEvent.config();
|
||||
setSourceHintText(mBinding.vodUrl, VodConfig.getDesc(), R.string.source_hint_setting);
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
break;
|
||||
case 1:
|
||||
setCacheText();
|
||||
@@ -268,7 +294,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
case 2:
|
||||
setCacheText();
|
||||
Notify.dismiss();
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -379,7 +405,17 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
private void setIncognito(View view) {
|
||||
boolean isChecked = !Setting.isIncognito();
|
||||
Setting.putIncognito(isChecked);
|
||||
mBinding.incognitoSwitch.setChecked(isChecked);
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void setLiveTabVisible(View view) {
|
||||
boolean isChecked = !Setting.isLiveTabVisible();
|
||||
Setting.putLiveTabVisible(isChecked);
|
||||
// 发送刷新事件,通知主界面更新导航栏
|
||||
RefreshEvent.config();
|
||||
// 更新直播设置项的可见性
|
||||
setLiveSettingsVisibility();
|
||||
// 不需要再次调用 setChecked,因为点击已经触发了状态变化
|
||||
}
|
||||
|
||||
private void setSize(View view) {
|
||||
@@ -473,7 +509,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
|
||||
if (hidden) return;
|
||||
setSourceHintText(mBinding.vodUrl, VodConfig.getDesc(), R.string.source_hint_setting);
|
||||
setSourceHintText(mBinding.liveUrl, LiveConfig.getDesc(), R.string.source_hint_live);
|
||||
setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall);
|
||||
// setSourceHintText(mBinding.wallUrl, WallConfig.getDesc(), R.string.source_hint_wall); // 壁纸功能已移除
|
||||
setCacheText();
|
||||
}
|
||||
|
||||
|
||||
@@ -287,10 +287,20 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
|
||||
// 实现ConfigCallback接口
|
||||
@Override
|
||||
public void setConfig(Config config) {
|
||||
if (config == null || config.isEmpty()) return;
|
||||
android.util.Log.d("VodFragment", "setConfig called with: " + (config != null ? config.toString() : "null"));
|
||||
|
||||
if (config == null || config.isEmpty()) {
|
||||
android.util.Log.d("VodFragment", "Config is null or empty, returning");
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查Fragment是否还在活动状态,增强检查
|
||||
if (!isValidFragmentState()) return;
|
||||
if (!isValidFragmentState()) {
|
||||
android.util.Log.d("VodFragment", "Fragment state invalid, returning");
|
||||
return;
|
||||
}
|
||||
|
||||
android.util.Log.d("VodFragment", "Fragment state valid, proceeding with config load");
|
||||
|
||||
// 安全地隐藏空源提示
|
||||
try {
|
||||
@@ -302,26 +312,37 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
|
||||
}
|
||||
|
||||
Notify.progress(getActivity());
|
||||
android.util.Log.d("VodFragment", "Calling VodConfig.load");
|
||||
VodConfig.load(config, new Callback() {
|
||||
@Override
|
||||
public void success() {
|
||||
android.util.Log.d("VodFragment", "VodConfig.load success callback");
|
||||
// 双重检查Fragment是否还在活动状态
|
||||
if (!isValidFragmentState()) return;
|
||||
if (!isValidFragmentState()) {
|
||||
android.util.Log.d("VodFragment", "Fragment state invalid in success callback");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
android.util.Log.d("VodFragment", "Success: dismissing notify and refreshing");
|
||||
Notify.dismiss();
|
||||
RefreshEvent.config();
|
||||
RefreshEvent.video();
|
||||
homeContent();
|
||||
} catch (Exception e) {
|
||||
android.util.Log.e("VodFragment", "Error in success callback", e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String msg) {
|
||||
android.util.Log.e("VodFragment", "VodConfig.load error: " + msg);
|
||||
// 双重检查Fragment是否还在活动状态
|
||||
if (!isValidFragmentState()) return;
|
||||
if (!isValidFragmentState()) {
|
||||
android.util.Log.d("VodFragment", "Fragment state invalid in error callback");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
Notify.dismiss();
|
||||
@@ -329,6 +350,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
|
||||
// 加载失败时重新显示空源提示
|
||||
checkEmptySource();
|
||||
} catch (Exception e) {
|
||||
android.util.Log.e("VodFragment", "Error in error callback", e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class Timer {
|
||||
|
||||
public void delay() {
|
||||
cancel();
|
||||
set(TimeUnit.MINUTES.toMillis(5) + tick);
|
||||
set(TimeUnit.MINUTES.toMillis(15) + tick);
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
|
||||
|
Before Width: | Height: | Size: 703 KiB |
|
Before Width: | Height: | Size: 890 KiB |
|
Before Width: | Height: | Size: 869 KiB |
|
Before Width: | Height: | Size: 64 B After Width: | Height: | Size: 1.4 KiB |
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="14dp"
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="8dp" />
|
||||
<solid android:color="#f5f5f5" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/black_20" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="8dp"
|
||||
android:left="12dp"
|
||||
android:right="12dp"
|
||||
android:top="8dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="10dp"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="18dp"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_500" />
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="18dp"
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/primary" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="12dp"
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="12dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/black_20" />
|
||||
<corners android:radius="8dp" />
|
||||
<padding
|
||||
android:bottom="12dp"
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="12dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -54,7 +54,7 @@
|
||||
android:layout_marginTop="24dp"
|
||||
android:background="@drawable/shape_about_button"
|
||||
android:text="我的GitHub"
|
||||
android:textColor="#212121"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="14sp"
|
||||
android:padding="12dp"/>
|
||||
|
||||
|
||||
@@ -15,9 +15,10 @@
|
||||
android:stepSize="1"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="10"
|
||||
app:thumbColor="@color/yellow_500"
|
||||
app:thumbColor="@color/accent"
|
||||
app:thumbRadius="9dp"
|
||||
app:tickVisible="false"
|
||||
app:trackColorActive="@color/yellow_500"
|
||||
app:trackColorInactive="@color/yellow_50" />
|
||||
app:trackColorActive="@color/accent"
|
||||
app:trackColorInactive="@color/white_30" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -8,12 +8,30 @@
|
||||
android:padding="16dp"
|
||||
tools:background="@color/white">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/control_speed"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="16sp" />
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/control_speed"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/speedValue"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="1.0x"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.slider.Slider
|
||||
android:id="@+id/speed"
|
||||
@@ -24,10 +42,11 @@
|
||||
android:stepSize="0.25"
|
||||
android:valueFrom="0.5"
|
||||
android:valueTo="5"
|
||||
app:thumbColor="@color/yellow_500"
|
||||
app:thumbColor="@color/accent"
|
||||
app:thumbRadius="9dp"
|
||||
app:tickVisible="false"
|
||||
app:trackColorActive="@color/yellow_500"
|
||||
app:trackColorInactive="@color/yellow_50" />
|
||||
app:trackColorActive="@color/accent"
|
||||
app:trackColorInactive="@color/white_30" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/parseText"
|
||||
|
||||
@@ -15,8 +15,10 @@
|
||||
android:stepSize="0.5"
|
||||
android:valueFrom="2"
|
||||
android:valueTo="5"
|
||||
app:thumbColor="@color/accent"
|
||||
app:thumbRadius="9dp"
|
||||
app:tickVisible="false"
|
||||
app:trackColorActive="@color/accent"
|
||||
app:trackColorInactive="@color/yellow_50" />
|
||||
app:trackColorInactive="@color/white_30" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -29,50 +29,80 @@
|
||||
<TextView
|
||||
android:id="@+id/time1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="5"
|
||||
android:text="@string/timer_5"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="15"
|
||||
android:text="@string/timer_15"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="30"
|
||||
android:text="@string/timer_30"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="60"
|
||||
android:text="@string/timer_60"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="120"
|
||||
android:text="@string/timer_120"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_accent_no_border"
|
||||
android:tag="180"
|
||||
android:text="@string/timer_180"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp"
|
||||
android:gravity="center" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -96,25 +126,41 @@
|
||||
android:textStyle="bold"
|
||||
tools:text="5:00" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
<TextView
|
||||
android:id="@+id/delay"
|
||||
style="?attr/materialButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/shape_timer_delay_button"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:paddingStart="60dp"
|
||||
android:paddingEnd="60dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/timer_delay"
|
||||
android:textColor="@color/white" />
|
||||
android:textColor="@color/black"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
<TextView
|
||||
android:id="@+id/reset"
|
||||
style="?attr/materialButtonOutlinedStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:background="@drawable/shape_timer_reset_button"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:paddingStart="60dp"
|
||||
android:paddingEnd="60dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/timer_cancel"
|
||||
android:textColor="?android:attr/textColorPrimary" />
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -44,6 +44,7 @@
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
android:fillViewport="true"
|
||||
android:overScrollMode="never"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
@@ -145,6 +146,7 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/liveContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
@@ -205,66 +207,6 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 壁纸功能已隐藏 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/wall"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/shape_item"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/setting_wall"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/wallUrl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="middle"
|
||||
android:gravity="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
tools:text="https://" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wallDefault"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_switch" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wallRefresh"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:background="@drawable/shape_item"
|
||||
android:padding="16dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_setting_refresh" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 应用设置分组 -->
|
||||
<TextView
|
||||
@@ -342,6 +284,38 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 显示直播 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/liveTabVisible"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_nav_live"
|
||||
android:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/setting_live_tab_visible"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<com.fongmi.android.tv.ui.custom.CustomSwitch
|
||||
android:id="@+id/liveTabVisibleSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 图片尺寸 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/size"
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_weight="1"
|
||||
app:bar_height="2dp"
|
||||
app:scrubber_enabled_size="14dp"
|
||||
app:scrubber_disabled_size="14dp"
|
||||
app:played_color="#FFEB3B"
|
||||
app:scrubber_color="#FFEB3B"
|
||||
app:buffered_color="#80FFEB3B" />
|
||||
|
||||
@@ -43,7 +43,9 @@
|
||||
<string name="timer_15">15 分钟</string>
|
||||
<string name="timer_30">30 分钟</string>
|
||||
<string name="timer_60">1 小时</string>
|
||||
<string name="timer_delay">延长 5 分钟</string>
|
||||
<string name="timer_120">2 小时</string>
|
||||
<string name="timer_180">3 小时</string>
|
||||
<string name="timer_delay">延长 15 分钟</string>
|
||||
<string name="timer_cancel">取消定时器</string>
|
||||
|
||||
<!-- Hint -->
|
||||
|
||||
@@ -41,7 +41,9 @@
|
||||
<string name="timer_15">15 分鐘</string>
|
||||
<string name="timer_30">30 分鐘</string>
|
||||
<string name="timer_60">1 小時</string>
|
||||
<string name="timer_delay">延長 5 分鐘</string>
|
||||
<string name="timer_120">2 小時</string>
|
||||
<string name="timer_180">3 小時</string>
|
||||
<string name="timer_delay">延長 15 分鐘</string>
|
||||
<string name="timer_cancel">取消定時器</string>
|
||||
|
||||
<!-- Hint -->
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
<color name="accent">#FFEB3B</color>
|
||||
<color name="indicator">@color/white_80</color>
|
||||
<color name="yellow_50">#4DFFEB3B</color>
|
||||
<color name="white_50">#80FFFFFF</color>
|
||||
<color name="black_50">#80000000</color>
|
||||
<color name="white_30">#4DFFFFFF</color>
|
||||
|
||||
</resources>
|
||||
@@ -43,7 +43,9 @@
|
||||
<string name="timer_15">15 minutes</string>
|
||||
<string name="timer_30">30 minutes</string>
|
||||
<string name="timer_60">1 hour</string>
|
||||
<string name="timer_delay">Add 5 minutes</string>
|
||||
<string name="timer_120">2 hours</string>
|
||||
<string name="timer_180">3 hours</string>
|
||||
<string name="timer_delay">Add 15 minutes</string>
|
||||
<string name="timer_cancel">Cancel timer</string>
|
||||
|
||||
<!-- Hint -->
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<item name="colorPrimary">@color/primary</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark</item>
|
||||
<item name="colorAccent">@color/accent</item>
|
||||
<item name="colorControlHighlight">@color/primary</item>
|
||||
<item name="colorControlHighlight">@color/white_20</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
<item name="android:navigationBarColor">@color/transparent</item>
|
||||
|
||||
@@ -9,7 +9,7 @@ tasks.register('clean', Delete) {
|
||||
}
|
||||
|
||||
project.ext {
|
||||
gsonVersion = '2.13.1'
|
||||
media3Version = '1.8.0'
|
||||
okhttpVersion = '5.1.0'
|
||||
gsonVersion = '2.11.0'
|
||||
media3Version = '1.4.1'
|
||||
okhttpVersion = '4.12.0'
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== 构建v8a手机测试版 ==="
|
||||
|
||||
# 清理之前的构建
|
||||
echo "清理之前的构建..."
|
||||
./gradlew clean
|
||||
|
||||
# 构建mobile arm64-v8a debug版本
|
||||
echo "构建mobile arm64-v8a debug版本..."
|
||||
./gradlew assembleMobileArm64_v8aDebug
|
||||
|
||||
# 检查构建结果
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "=== 构建成功 ==="
|
||||
|
||||
# 查找生成的APK文件
|
||||
APK_PATH=$(find app/build/outputs/apk/mobile/arm64-v8a/debug -name "*.apk" 2>/dev/null | head -1)
|
||||
|
||||
if [ -n "$APK_PATH" ]; then
|
||||
echo "APK文件位置: $APK_PATH"
|
||||
echo "文件大小: $(ls -lh "$APK_PATH" | awk '{print $5}')"
|
||||
echo "文件信息:"
|
||||
ls -la "$APK_PATH"
|
||||
|
||||
# 显示APK详细信息
|
||||
echo ""
|
||||
echo "=== APK详细信息 ==="
|
||||
aapt dump badging "$APK_PATH" | grep -E "(package|application-label|native-code|sdkVersion|targetSdkVersion)"
|
||||
|
||||
else
|
||||
echo "未找到生成的APK文件"
|
||||
find app/build/outputs -name "*.apk" 2>/dev/null
|
||||
fi
|
||||
else
|
||||
echo "=== 构建失败 ==="
|
||||
echo "请检查错误信息"
|
||||
fi
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "========================================="
|
||||
echo " 构建 XMBOX Mobile ARM64-V8A Release "
|
||||
echo "========================================="
|
||||
echo ""
|
||||
|
||||
cd /Users/chen/Desktop/XMBOX
|
||||
|
||||
echo "=== 1. 清理旧的构建文件 ==="
|
||||
./gradlew clean
|
||||
|
||||
echo ""
|
||||
echo "=== 2. 构建 Release APK ==="
|
||||
./gradlew assembleMobileArm64_v8aRelease
|
||||
|
||||
echo ""
|
||||
echo "=== 3. 验证构建结果 ==="
|
||||
if [ -f "app/build/outputs/apk/mobileArm64_v8a/release/mobile-arm64_v8a.apk" ]; then
|
||||
echo "✅ Release APK 构建成功!"
|
||||
echo ""
|
||||
echo "文件信息:"
|
||||
ls -lh app/build/outputs/apk/mobileArm64_v8a/release/mobile-arm64_v8a.apk
|
||||
echo ""
|
||||
echo "APK详细信息:"
|
||||
echo "---"
|
||||
unzip -l app/build/outputs/apk/mobileArm64_v8a/release/mobile-arm64_v8a.apk | grep "assets/jar"
|
||||
echo ""
|
||||
echo "签名信息:"
|
||||
jarsigner -verify -verbose -certs app/build/outputs/apk/mobileArm64_v8a/release/mobile-arm64_v8a.apk | grep -A 3 "Signed by"
|
||||
echo ""
|
||||
echo "=== 构建完成! ==="
|
||||
echo "APK路径: app/build/outputs/apk/mobileArm64_v8a/release/mobile-arm64_v8a.apk"
|
||||
else
|
||||
echo "❌ 构建失败!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
cd /Users/chen/Desktop/XMBOX
|
||||
./gradlew clean assembleMobileArm64_v8aDebug
|
||||
@@ -67,33 +67,44 @@ public class Github {
|
||||
private static boolean testMirrorSpeed() {
|
||||
try {
|
||||
OkHttpClient client = new OkHttpClient.Builder()
|
||||
.connectTimeout(3, TimeUnit.SECONDS)
|
||||
.readTimeout(3, TimeUnit.SECONDS)
|
||||
.connectTimeout(5, TimeUnit.SECONDS) // 增加超时时间
|
||||
.readTimeout(5, TimeUnit.SECONDS)
|
||||
.build();
|
||||
|
||||
// 测试国际源
|
||||
long startTime = System.currentTimeMillis();
|
||||
boolean intlSuccess = testUrl(client, URL + "/README.md");
|
||||
long intlTime = System.currentTimeMillis() - startTime;
|
||||
Logger.d("Github: International mirror test - success: " + intlSuccess + ", time: " + intlTime + "ms");
|
||||
|
||||
// 测试国内源
|
||||
startTime = System.currentTimeMillis();
|
||||
boolean cnSuccess = testUrl(client, CN_URL + "/README.md");
|
||||
long cnTime = System.currentTimeMillis() - startTime;
|
||||
Logger.d("Github: Chinese mirror test - success: " + cnSuccess + ", time: " + cnTime + "ms");
|
||||
|
||||
// 如果两个都成功,选择更快的
|
||||
if (intlSuccess && cnSuccess) {
|
||||
return cnTime < intlTime;
|
||||
boolean useCn = cnTime < intlTime;
|
||||
Logger.d("Github: Both mirrors work, choosing " + (useCn ? "Chinese" : "International") + " mirror");
|
||||
return useCn;
|
||||
}
|
||||
|
||||
// 如果只有一个成功,选择成功的那个
|
||||
if (intlSuccess) return false;
|
||||
if (cnSuccess) return true;
|
||||
if (intlSuccess) {
|
||||
Logger.d("Github: Only international mirror works, using it");
|
||||
return false;
|
||||
}
|
||||
if (cnSuccess) {
|
||||
Logger.d("Github: Only Chinese mirror works, using it");
|
||||
return true;
|
||||
}
|
||||
|
||||
// 如果都失败,默认国际源
|
||||
Logger.e("Github: Both mirrors failed, defaulting to international");
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Logger.e("Github: Mirror test exception: " + e.getMessage());
|
||||
return false; // 出错时默认使用国际源
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
|
||||
# WebP颜色修改脚本
|
||||
# 需要先安装 ImageMagick: brew install imagemagick
|
||||
|
||||
echo "=== WebP 颜色修改工具 ==="
|
||||
echo ""
|
||||
|
||||
# 检查ImageMagick是否安装
|
||||
if ! command -v convert &> /dev/null; then
|
||||
echo "❌ 未检测到 ImageMagick"
|
||||
echo "请先安装: brew install imagemagick"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 示例:修改颜色(色相旋转)
|
||||
# 参数说明:
|
||||
# -modulate brightness,saturation,hue
|
||||
# 例如:-modulate 100,100,150 (色相旋转150度)
|
||||
|
||||
SOURCE_DIR="/Users/chen/Desktop/XMBOX/app/src/main/res/mipmap-hdpi"
|
||||
OUTPUT_DIR="/Users/chen/Desktop/XMBOX/app/src/main/res/mipmap-hdpi/modified"
|
||||
|
||||
# 创建输出目录
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
echo "处理目录: $SOURCE_DIR"
|
||||
echo "输出目录: $OUTPUT_DIR"
|
||||
echo ""
|
||||
|
||||
# 示例1: 色相旋转(改变整体颜色)
|
||||
echo "方式1: 色相旋转"
|
||||
echo " convert input.webp -modulate 100,100,180 output.webp # 色相旋转180度"
|
||||
echo ""
|
||||
|
||||
# 示例2: 颜色替换
|
||||
echo "方式2: 颜色替换"
|
||||
echo " convert input.webp -fuzz 20% -fill '#新颜色' -opaque '#旧颜色' output.webp"
|
||||
echo ""
|
||||
|
||||
# 示例3: 调整色调/饱和度/亮度
|
||||
echo "方式3: HSL调整"
|
||||
echo " convert input.webp -modulate brightness,saturation,hue output.webp"
|
||||
echo " brightness: 亮度 (100=不变)"
|
||||
echo " saturation: 饱和度 (100=不变, 0=灰度)"
|
||||
echo " hue: 色相 (100=不变)"
|
||||
echo ""
|
||||
|
||||
# 交互式处理
|
||||
read -p "请选择处理方式 (1/2/3): " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
read -p "输入色相旋转角度 (0-200, 100=不变): " hue
|
||||
for file in "$SOURCE_DIR"/*.webp; do
|
||||
filename=$(basename "$file")
|
||||
echo "处理: $filename (色相旋转 ${hue}度)"
|
||||
convert "$file" -modulate 100,100,$hue "$OUTPUT_DIR/$filename"
|
||||
done
|
||||
;;
|
||||
2)
|
||||
read -p "输入要替换的颜色 (HEX, 例如 #FF0000): " old_color
|
||||
read -p "输入新颜色 (HEX, 例如 #00FF00): " new_color
|
||||
for file in "$SOURCE_DIR"/*.webp; do
|
||||
filename=$(basename "$file")
|
||||
echo "处理: $filename ($old_color -> $new_color)"
|
||||
convert "$file" -fuzz 20% -fill "$new_color" -opaque "$old_color" "$OUTPUT_DIR/$filename"
|
||||
done
|
||||
;;
|
||||
3)
|
||||
read -p "亮度 (100=不变): " brightness
|
||||
read -p "饱和度 (100=不变, 0=灰度): " saturation
|
||||
read -p "色相 (100=不变): " hue
|
||||
for file in "$SOURCE_DIR"/*.webp; do
|
||||
filename=$(basename "$file")
|
||||
echo "处理: $filename (亮度:$brightness 饱和度:$saturation 色相:$hue)"
|
||||
convert "$file" -modulate $brightness,$saturation,$hue "$OUTPUT_DIR/$filename"
|
||||
done
|
||||
;;
|
||||
*)
|
||||
echo "无效选择"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "✅ 处理完成!"
|
||||
echo "处理后的文件保存在: $OUTPUT_DIR"
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== 检查应用日志 ==="
|
||||
echo ""
|
||||
|
||||
echo "1. 检查custom_spider.jar是否被加载:"
|
||||
echo "---"
|
||||
adb logcat -d | grep -i "custom_spider" | tail -20
|
||||
echo ""
|
||||
|
||||
echo "2. 检查JarLoader相关日志:"
|
||||
echo "---"
|
||||
adb logcat -d | grep "JarLoader" | tail -20
|
||||
echo ""
|
||||
|
||||
echo "3. 检查Spider初始化日志:"
|
||||
echo "---"
|
||||
adb logcat -d | grep -E "Spider|Init\.init" | tail -30
|
||||
echo ""
|
||||
|
||||
echo "4. 检查是否有错误:"
|
||||
echo "---"
|
||||
adb logcat -d | grep -E "Error|Exception|Failed" | grep -i "fongmi\|spider\|jar" | tail -30
|
||||
echo ""
|
||||
|
||||
echo "5. 检查DexNative相关问题:"
|
||||
echo "---"
|
||||
adb logcat -d | grep -i "DexNative" | tail -20
|
||||
echo ""
|
||||
|
||||
echo "6. 检查APK中的jar文件:"
|
||||
echo "---"
|
||||
echo "检查已安装APK的assets目录..."
|
||||
adb shell run-as com.fongmi.android.tv ls -la /data/data/com.fongmi.android.tv/cache/jar/ 2>/dev/null || echo "无权限访问,使用pull检查..."
|
||||
echo ""
|
||||
|
||||
echo "=== 实时监控日志(按Ctrl+C停止)==="
|
||||
adb logcat -c
|
||||
adb logcat | grep -E "custom_spider|Spider|JarLoader|Init|fongmi" --color=always
|
||||
|
||||
@@ -0,0 +1,265 @@
|
||||
# 广告拦截功能说明
|
||||
|
||||
## 📌 功能概述
|
||||
|
||||
XMBOX内置了强大的广告拦截系统,可以有效过滤视频播放过程中弹出的各类广告,特别是常见的赌博广告(如澳门新葡京、皇冠、金沙等)。
|
||||
|
||||
## 🎯 拦截类型
|
||||
|
||||
### 1. 赌博类广告 ⭐⭐⭐⭐⭐
|
||||
**最常见的视频中途弹窗广告**
|
||||
|
||||
包括但不限于:
|
||||
- 澳门新葡京、皇冠、金沙、威尼斯人、永利等博彩品牌
|
||||
- 各类赌场、扑克、投注网站
|
||||
- 使用 `xpj`、`wnsr`、`js[数字]`、`vn[数字]` 等域名的赌博网站
|
||||
|
||||
**特征**:通常在视频播放到一半时突然弹出,覆盖整个播放器
|
||||
|
||||
### 2. 广告联盟
|
||||
- Google广告联盟(DoubleClick、AdSense等)
|
||||
- 百度广告联盟
|
||||
- 淘宝/阿里广告联盟
|
||||
- 腾讯广告联盟
|
||||
|
||||
### 3. 视频平台广告
|
||||
- 优酷、爱奇艺、腾讯视频等平台的贴片广告
|
||||
- 芒果TV、乐视等平台广告
|
||||
|
||||
### 4. 弹窗广告
|
||||
- 页面加载时的弹窗
|
||||
- 点击播放时的诱导弹窗
|
||||
|
||||
### 5. 跟踪统计
|
||||
- 百度统计、Google Analytics
|
||||
- CNZZ、友盟等统计代码
|
||||
|
||||
## 🔧 使用方法
|
||||
|
||||
### 方式一:内置拦截(推荐)✅
|
||||
|
||||
**无需任何配置**,应用已内置200+常见广告域名,包括:
|
||||
|
||||
```java
|
||||
// 已内置的赌博广告域名示例
|
||||
".*\\..*葡京.*" // 拦截所有包含"葡京"的域名
|
||||
".*\\..*皇冠.*" // 拦截所有包含"皇冠"的域名
|
||||
".*xpj.*\\..*" // 拦截新葡京相关域名
|
||||
"wan.51img1.com" // 常见广告CDN
|
||||
"vip.ffzyad.com" // 视频广告域名
|
||||
```
|
||||
|
||||
### 方式二:自定义拦截
|
||||
|
||||
在配置文件中添加 `ads` 字段:
|
||||
|
||||
```json
|
||||
{
|
||||
"spider": "your_spider_url",
|
||||
"sites": [...],
|
||||
|
||||
"ads": [
|
||||
"精确域名匹配",
|
||||
"example-ad.com",
|
||||
"another-ad-domain.net",
|
||||
|
||||
"通配符匹配",
|
||||
".*\\.advertisement\\..*",
|
||||
".*\\.ad-server\\..*",
|
||||
|
||||
"关键词匹配",
|
||||
".*赌博.*",
|
||||
".*博彩.*"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 方式三:片头片尾跳过 🎬
|
||||
|
||||
对于**嵌入视频流中的广告**(无法通过域名拦截),使用片头片尾跳过功能:
|
||||
|
||||
#### 设置片头跳过
|
||||
1. 播放视频
|
||||
2. 在片头广告结束后(前5分钟内),点击 **【片头】** 按钮
|
||||
3. 当前时间点会被记录
|
||||
4. 下次播放时自动从这个时间点开始
|
||||
|
||||
#### 设置片尾跳过
|
||||
1. 播放到片尾广告开始前(后5分钟内),点击 **【片尾】** 按钮
|
||||
2. 当前时间点会被记录
|
||||
3. 下次播放时会在这个时间点停止
|
||||
|
||||
#### 重置设置
|
||||
长按 **【片头】** 或 **【片尾】** 按钮即可重置
|
||||
|
||||
## 📝 工作原理
|
||||
|
||||
### WebView层拦截
|
||||
```java
|
||||
// 在WebView加载资源时拦截
|
||||
@Override
|
||||
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
|
||||
String host = request.getUrl().getHost();
|
||||
|
||||
// 检查是否为广告域名
|
||||
if (isAd(host)) {
|
||||
// 返回空响应,阻止广告加载
|
||||
return emptyResponse;
|
||||
}
|
||||
|
||||
return super.shouldInterceptRequest(view, request);
|
||||
}
|
||||
```
|
||||
|
||||
### 拦截流程
|
||||
```
|
||||
视频请求 → 检查域名 → 内置黑名单? → 是 → 拦截 ❌
|
||||
↓
|
||||
否
|
||||
↓
|
||||
用户自定义黑名单? → 是 → 拦截 ❌
|
||||
↓
|
||||
否
|
||||
↓
|
||||
允许加载 ✅
|
||||
```
|
||||
|
||||
## 🛠️ 高级配置
|
||||
|
||||
### 1. 正则表达式匹配
|
||||
|
||||
```json
|
||||
{
|
||||
"ads": [
|
||||
".*\\.ad.*\\.com", // 匹配 sub.adserver.com
|
||||
".*gambling.*", // 匹配任何包含gambling的域名
|
||||
"^https?://[^/]*ad[^/]*/" // 匹配URL中包含ad的路径
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 分类管理
|
||||
|
||||
建议按类型组织广告域名:
|
||||
|
||||
```json
|
||||
{
|
||||
"ads": [
|
||||
"// === 赌博广告 ===",
|
||||
".*葡京.*",
|
||||
".*casino.*",
|
||||
|
||||
"// === 视频平台广告 ===",
|
||||
"atm.youku.com",
|
||||
"cupid.iqiyi.com",
|
||||
|
||||
"// === 弹窗广告 ===",
|
||||
"mimg.0c1q0l.cn",
|
||||
"www.92424.cn"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 📊 效果统计
|
||||
|
||||
启用广告拦截后,您可以看到:
|
||||
|
||||
- ✅ 视频播放更流畅
|
||||
- ✅ 无中途弹窗干扰
|
||||
- ✅ 隐私数据不被跟踪
|
||||
- ✅ 节省流量消耗
|
||||
|
||||
## ❓ 常见问题
|
||||
|
||||
### Q1: 为什么有些广告还是会出现?
|
||||
|
||||
**A:** 可能的原因:
|
||||
1. 广告直接嵌入视频流(使用片头片尾跳过)
|
||||
2. 广告使用了新的域名(可添加到自定义黑名单)
|
||||
3. 广告通过JavaScript动态生成(内容层广告,较难拦截)
|
||||
|
||||
### Q2: 会不会误拦截正常内容?
|
||||
|
||||
**A:** 内置域名库经过精心筛选,主要针对已知广告域名。误拦截概率极低。如遇到问题,可以:
|
||||
- 关闭内置拦截(需修改代码)
|
||||
- 反馈给开发者更新黑名单
|
||||
|
||||
### Q3: 如何找到广告的域名?
|
||||
|
||||
**A:** 方法:
|
||||
1. 使用Chrome浏览器开发者工具(F12)查看Network请求
|
||||
2. 查看应用日志输出的URL
|
||||
3. 参考其他用户分享的广告域名列表
|
||||
|
||||
### Q4: 拦截会影响性能吗?
|
||||
|
||||
**A:** 影响极小:
|
||||
- 仅在WebView解析阶段生效
|
||||
- 字符串匹配操作非常快速
|
||||
- 反而会因为减少网络请求而提升性能
|
||||
|
||||
### Q5: 数据会被上传吗?
|
||||
|
||||
**A:** 完全不会:
|
||||
- 所有拦截在本地进行
|
||||
- 不联网、不上传
|
||||
- 完全保护您的隐私
|
||||
|
||||
## 🔍 调试方法
|
||||
|
||||
### 查看拦截日志
|
||||
|
||||
启用调试模式可以看到被拦截的域名:
|
||||
|
||||
```bash
|
||||
# 连接设备
|
||||
adb logcat | grep "WebView\|AdBlocker"
|
||||
|
||||
# 查看拦截记录
|
||||
adb logcat | grep "blocked"
|
||||
```
|
||||
|
||||
### 测试广告拦截
|
||||
|
||||
1. 访问包含广告的视频网站
|
||||
2. 观察是否弹出广告
|
||||
3. 检查日志中的拦截记录
|
||||
|
||||
## 📚 域名库维护
|
||||
|
||||
### 添加新的广告域名
|
||||
|
||||
编辑 `AdBlocker.java`:
|
||||
|
||||
```java
|
||||
private static final List<String> GAMBLING_ADS = Arrays.asList(
|
||||
// 添加新发现的广告域名
|
||||
"new-casino-ad.com",
|
||||
".*new-gambling.*"
|
||||
);
|
||||
```
|
||||
|
||||
### 提交贡献
|
||||
|
||||
如果您发现新的广告域名,欢迎:
|
||||
1. 提交Issue报告
|
||||
2. 提交Pull Request更新域名库
|
||||
3. 在社区分享
|
||||
|
||||
## 💡 最佳实践
|
||||
|
||||
1. **优先使用内置拦截** - 已覆盖大部分常见广告
|
||||
2. **补充自定义规则** - 针对特定视频源的广告
|
||||
3. **善用片头片尾跳过** - 处理嵌入式广告
|
||||
4. **定期更新** - 保持应用最新版本以获取最新域名库
|
||||
|
||||
## 🎉 总结
|
||||
|
||||
XMBOX的广告拦截系统通过**三层防护**:
|
||||
|
||||
1. 🛡️ **内置域名库** - 200+常见广告(含澳门新葡京等赌博广告)
|
||||
2. 🛡️ **自定义黑名单** - 用户针对性添加
|
||||
3. 🛡️ **片头片尾跳过** - 处理嵌入式广告
|
||||
|
||||
让您享受**纯净、流畅、安全**的视频观看体验!
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- 主题颜色 -->
|
||||
<color name="primary">#FFEB3B</color>
|
||||
<color name="primaryDark">#FDD835</color>
|
||||
<color name="accent">#FFEB3B</color>
|
||||
|
||||
<!-- 基本颜色 -->
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
<color name="black">#FF000000</color>
|
||||
<color name="transparent">#00000000</color>
|
||||
|
||||
<!-- 带透明度的颜色 -->
|
||||
<color name="white_10">#1AFFFFFF</color>
|
||||
<color name="white_80">#CCFFFFFF</color>
|
||||
<color name="white_90">#E6FFFFFF</color>
|
||||
<color name="black_10">#1A000000</color>
|
||||
<color name="black_20">#33000000</color>
|
||||
<color name="black_50">#80000000</color>
|
||||
<color name="black_60">#99000000</color>
|
||||
<color name="black_80">#CC000000</color>
|
||||
<color name="black_90">#E6000000</color>
|
||||
|
||||
<!-- 文本颜色 -->
|
||||
<color name="text_primary">#FFFFFFFF</color>
|
||||
<color name="text_secondary">#B3FFFFFF</color>
|
||||
<color name="text_dark">#FF212121</color>
|
||||
|
||||
<!-- 背景颜色 -->
|
||||
<color name="bg_dark">#FF121212</color>
|
||||
<color name="bg_light">#FFFAFAFA</color>
|
||||
|
||||
<!-- 控件颜色 -->
|
||||
<color name="ripple">#33FFFFFF</color>
|
||||
<color name="divider">#1FFFFFFF</color>
|
||||
<color name="scrim">#52000000</color>
|
||||
|
||||
<!-- 状态颜色 -->
|
||||
<color name="success">#FF4CAF50</color>
|
||||
<color name="warning">#FFFFEB3B</color>
|
||||
<color name="error">#FFF44336</color>
|
||||
</resources>
|
||||
@@ -1,175 +0,0 @@
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
}
|
||||
|
||||
android {
|
||||
namespace 'com.fongmi.android.tv'
|
||||
|
||||
compileSdk 35
|
||||
flavorDimensions = ["mode", "abi"]
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
storeFile file("../keystore/release.jks")
|
||||
storePassword "xmbox123"
|
||||
keyAlias "xmbox"
|
||||
keyPassword "xmbox123"
|
||||
}
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.fongmi.android.tv"
|
||||
minSdk 21
|
||||
//noinspection ExpiredTargetSdkVersion
|
||||
targetSdk 28
|
||||
versionCode 303
|
||||
versionName "3.0.3"
|
||||
|
||||
// 禁用注解处理器,避免EventBus索引生成问题
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
leanback {
|
||||
dimension "mode"
|
||||
}
|
||||
mobile {
|
||||
dimension "mode"
|
||||
}
|
||||
arm64_v8a {
|
||||
dimension "abi"
|
||||
ndk { abiFilters "arm64-v8a" }
|
||||
}
|
||||
armeabi_v7a {
|
||||
dimension "abi"
|
||||
ndk { abiFilters "armeabi-v7a" }
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
viewBinding true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
// 开启调试
|
||||
debuggable true
|
||||
minifyEnabled false
|
||||
shrinkResources false
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
signingConfig signingConfigs.release
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
resources {
|
||||
exclude 'META-INF/beans.xml'
|
||||
exclude 'META-INF/versions/9/OSGI-INF/MANIFEST.MF'
|
||||
}
|
||||
}
|
||||
|
||||
android.applicationVariants.configureEach { variant ->
|
||||
variant.outputs.configureEach { output ->
|
||||
outputFileName = "${variant.productFlavors[0].name}-${variant.productFlavors[1].name}.apk"
|
||||
}
|
||||
}
|
||||
|
||||
configurations.configureEach {
|
||||
resolutionStrategy {
|
||||
force 'com.squareup.okhttp3:okhttp:' + okhttpVersion
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
disable 'UnsafeOptInUsageError'
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
coreLibraryDesugaringEnabled true
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
}
|
||||
|
||||
// 添加额外的源文件目录,包含我们提取的EventIndex类
|
||||
sourceSets {
|
||||
main {
|
||||
java.srcDirs += ['../extracted_files/java']
|
||||
jniLibs.srcDirs += ['../extracted_files/libs']
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// 禁用EventBus注解处理器,避免生成EventIndex类的问题
|
||||
implementation 'org.greenrobot:eventbus:3.3.1'
|
||||
|
||||
implementation fileTree(dir: "libs", include: ["*.aar"])
|
||||
implementation project(':catvod')
|
||||
//implementation project(':chaquo')
|
||||
implementation project(':quickjs')
|
||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||
implementation 'androidx.media:media:1.7.0'
|
||||
implementation 'androidx.media3:media3-common:' + media3Version
|
||||
implementation 'androidx.media3:media3-container:' + media3Version
|
||||
implementation 'androidx.media3:media3-database:' + media3Version
|
||||
implementation 'androidx.media3:media3-datasource:' + media3Version
|
||||
implementation 'androidx.media3:media3-datasource-okhttp:' + media3Version
|
||||
implementation 'androidx.media3:media3-datasource-rtmp:' + media3Version
|
||||
implementation 'androidx.media3:media3-decoder:' + media3Version
|
||||
implementation 'androidx.media3:media3-effect:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-dash:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-hls:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-rtsp:' + media3Version
|
||||
implementation 'androidx.media3:media3-exoplayer-smoothstreaming:' + media3Version
|
||||
implementation 'androidx.media3:media3-extractor:' + media3Version
|
||||
implementation 'androidx.media3:media3-ui:' + media3Version
|
||||
implementation 'androidx.room:room-runtime:2.7.1'
|
||||
implementation 'cat.ereza:customactivityoncrash:2.4.0'
|
||||
implementation('com.github.anilbeesetti.nextlib:nextlib-media3ext:0.8.4') { exclude group: 'androidx.media3' }
|
||||
implementation 'com.github.bassaer:materialdesigncolors:1.0.0'
|
||||
implementation 'com.github.bumptech.glide:glide:4.16.0'
|
||||
implementation 'com.github.bumptech.glide:annotations:4.16.0'
|
||||
implementation('com.github.bumptech.glide:avif-integration:4.16.0') { exclude group: 'org.aomedia.avif.android', module: 'avif' }
|
||||
implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0'
|
||||
implementation 'com.github.jahirfiquitiva:TextDrawable:1.0.3'
|
||||
implementation 'com.github.thegrizzlylabs:sardine-android:0.9'
|
||||
implementation 'com.github.teamnewpipe:NewPipeExtractor:v0.24.6'
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
implementation 'com.google.zxing:core:3.5.3'
|
||||
implementation 'com.guolindev.permissionx:permissionx:1.8.0'
|
||||
implementation 'com.hierynomus:smbj:0.14.0'
|
||||
implementation 'io.antmedia:rtmp-client:3.2.0'
|
||||
implementation 'javax.servlet:javax.servlet-api:3.1.0'
|
||||
implementation 'org.aomedia.avif.android:avif:1.1.1.14d8e3c4'
|
||||
implementation 'org.eclipse.jetty:jetty-client:8.1.21.v20160908'
|
||||
implementation('org.eclipse.jetty:jetty-server:8.1.21.v20160908') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' }
|
||||
implementation('org.eclipse.jetty:jetty-servlet:8.1.21.v20160908') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' }
|
||||
implementation 'org.fourthline.cling:cling-core:2.1.1'
|
||||
implementation 'org.fourthline.cling:cling-support:2.1.1'
|
||||
implementation 'org.nanohttpd:nanohttpd:2.3.1'
|
||||
implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' }
|
||||
leanbackImplementation 'androidx.leanback:leanback:1.2.0'
|
||||
leanbackImplementation 'com.github.JessYanCoding:AndroidAutoSize:1.2.1'
|
||||
mobileImplementation 'androidx.biometric:biometric:1.1.0'
|
||||
mobileImplementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||
mobileImplementation 'com.google.android.flexbox:flexbox:3.0.0'
|
||||
mobileImplementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false }
|
||||
|
||||
// 注解处理器,去掉了EventBus的
|
||||
annotationProcessor 'androidx.room:room-compiler:2.7.1'
|
||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
|
||||
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.4'
|
||||
implementation 'io.noties.markwon:core:4.6.2'
|
||||
}
|
||||
|
Before Width: | Height: | Size: 95 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 670 B |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 627 B |
|
Before Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 110 B |
@@ -1,82 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# XMBOX项目设置脚本
|
||||
# 这个脚本会自动复制提取的文件到正确的位置
|
||||
|
||||
echo "开始设置XMBOX项目..."
|
||||
|
||||
# 确保我们在正确的目录
|
||||
cd "$(dirname "$0")"
|
||||
EXTRACT_DIR=$(pwd)
|
||||
PROJECT_DIR=$(dirname "$EXTRACT_DIR")
|
||||
|
||||
echo "提取目录: $EXTRACT_DIR"
|
||||
echo "项目目录: $PROJECT_DIR"
|
||||
|
||||
# 创建必要的目录
|
||||
echo "创建必要的目录..."
|
||||
mkdir -p "$PROJECT_DIR/app/libs/arm64-v8a"
|
||||
mkdir -p "$PROJECT_DIR/app/src/main/java/com/fongmi/android/tv/event"
|
||||
mkdir -p "$PROJECT_DIR/app/src/main/res/values"
|
||||
|
||||
# 复制native库文件
|
||||
echo "复制native库文件..."
|
||||
if [ -d "$EXTRACT_DIR/libs/arm64-v8a" ]; then
|
||||
cp -R "$EXTRACT_DIR/libs/arm64-v8a/"* "$PROJECT_DIR/app/libs/arm64-v8a/" || echo "复制native库失败"
|
||||
echo "Native库复制完成"
|
||||
else
|
||||
echo "libs/arm64-v8a 目录不存在"
|
||||
fi
|
||||
|
||||
# 复制EventIndex类
|
||||
echo "复制EventIndex类..."
|
||||
if [ -f "$EXTRACT_DIR/java/com/fongmi/android/tv/event/EventIndex.java" ]; then
|
||||
cp "$EXTRACT_DIR/java/com/fongmi/android/tv/event/EventIndex.java" "$PROJECT_DIR/app/src/main/java/com/fongmi/android/tv/event/" || echo "复制EventIndex类失败"
|
||||
echo "EventIndex类复制完成"
|
||||
else
|
||||
echo "EventIndex.java 文件不存在"
|
||||
fi
|
||||
|
||||
# 复制颜色资源文件
|
||||
echo "复制颜色资源文件..."
|
||||
if [ -f "$EXTRACT_DIR/colors.xml" ]; then
|
||||
cp "$EXTRACT_DIR/colors.xml" "$PROJECT_DIR/app/src/main/res/values/" || echo "复制颜色资源文件失败"
|
||||
echo "颜色资源文件复制完成"
|
||||
else
|
||||
echo "colors.xml 文件不存在"
|
||||
fi
|
||||
|
||||
# 备份原有的build.gradle文件
|
||||
echo "备份原有的build.gradle文件..."
|
||||
if [ -f "$PROJECT_DIR/app/build.gradle" ]; then
|
||||
cp "$PROJECT_DIR/app/build.gradle" "$PROJECT_DIR/app/build.gradle.bak" || echo "备份build.gradle失败"
|
||||
echo "build.gradle备份完成"
|
||||
else
|
||||
echo "app/build.gradle 文件不存在"
|
||||
fi
|
||||
|
||||
# 将修改后的build.gradle复制到项目中
|
||||
echo "复制修改后的build.gradle文件..."
|
||||
if [ -f "$EXTRACT_DIR/modified_build.gradle" ]; then
|
||||
cp "$EXTRACT_DIR/modified_build.gradle" "$PROJECT_DIR/app/build.gradle" || echo "复制build.gradle失败"
|
||||
echo "build.gradle复制完成"
|
||||
else
|
||||
echo "modified_build.gradle 文件不存在"
|
||||
fi
|
||||
|
||||
# 修改gradle.properties文件
|
||||
echo "修改gradle.properties文件..."
|
||||
if [ -f "$PROJECT_DIR/gradle.properties" ]; then
|
||||
# 添加Java兼容性配置
|
||||
echo "" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "# 允许访问JDK内部API" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "android.injected.testOnly=false" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "android.enableR8.fullMode=false" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED" >> "$PROJECT_DIR/gradle.properties"
|
||||
echo "gradle.properties修改完成"
|
||||
else
|
||||
echo "gradle.properties 文件不存在"
|
||||
fi
|
||||
|
||||
echo "设置完成!您现在可以尝试构建项目了。"
|
||||
echo "请运行: ./gradlew assembleMobileArm64_v8aDebug --info"
|
||||
@@ -499,6 +499,6 @@ public class Hook extends PackageManager {
|
||||
|
||||
@Override
|
||||
public boolean canRequestPackageInstalls() {
|
||||
return false;
|
||||
return true; // 允许请求安装包权限
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== 检查模拟器状态 ==="
|
||||
adb devices
|
||||
|
||||
echo ""
|
||||
echo "=== 安装APK到模拟器 ==="
|
||||
adb install -r /Users/chen/Desktop/XMBOX/app/build/outputs/apk/mobileArm64_v8a/debug/mobile-arm64_v8a.apk
|
||||
|
||||
echo ""
|
||||
echo "=== 启动应用 ==="
|
||||
adb shell am start -n com.fongmi.android.tv/.ui.activity.HomeActivity
|
||||
|
||||
echo ""
|
||||
echo "=== 等待应用启动... ==="
|
||||
sleep 3
|
||||
|
||||
echo ""
|
||||
echo "=== 查看应用日志 ==="
|
||||
echo "按 Ctrl+C 停止日志监控"
|
||||
adb logcat -c
|
||||
adb logcat | grep -E "custom_spider|Spider|JarLoader|fongmi" --color=always
|
||||
|
||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"name": "广告过滤配置示例",
|
||||
"description": "演示如何配置广告域名黑名单,阻止视频中途弹出的广告(如澳门新葡京等博彩广告)",
|
||||
|
||||
"说明": {
|
||||
"内置拦截": "应用已内置常见广告域名库,包括:澳门新葡京、皇冠、金沙等博彩广告;Google、百度、淘宝等广告联盟;优酷、爱奇艺等视频平台广告",
|
||||
"自定义拦截": "可以在配置文件中添加ads字段,补充需要拦截的广告域名",
|
||||
"支持正则": "域名支持正则表达式匹配,使用 .* 作为通配符"
|
||||
},
|
||||
|
||||
"配置示例": {
|
||||
"spider": "your_spider_url",
|
||||
"sites": [],
|
||||
|
||||
"ads": [
|
||||
"注释: 以下是自定义广告域名列表,会与内置域名库合并使用",
|
||||
|
||||
"注释: 精确匹配 - 直接写完整域名",
|
||||
"mimg.0c1q0l.cn",
|
||||
"www.92424.cn",
|
||||
"vip.ffzyad.com",
|
||||
|
||||
"注释: 模糊匹配 - 使用通配符",
|
||||
".*\\.doubleclick\\.net",
|
||||
".*\\.googlesyndication\\.com",
|
||||
|
||||
"注释: 关键词匹配 - 拦截包含特定关键词的域名",
|
||||
".*葡京.*",
|
||||
".*皇冠.*",
|
||||
".*金沙.*",
|
||||
".*casino.*",
|
||||
".*bet.*",
|
||||
|
||||
"注释: 特定平台的广告",
|
||||
"wan.51img1.com",
|
||||
"k.jinxiuzhilv.com",
|
||||
"ssl.kdd.cc"
|
||||
]
|
||||
},
|
||||
|
||||
"常见问题": {
|
||||
"Q1": "为什么配置了还是有广告?",
|
||||
"A1": "1. 检查广告域名是否正确;2. 某些广告可能直接嵌入视频流,无法通过域名拦截;3. 尝试使用片头片尾跳过功能",
|
||||
|
||||
"Q2": "如何找到广告的域名?",
|
||||
"A2": "1. 使用浏览器开发者工具查看网络请求;2. 查看应用日志中的URL;3. 参考其他用户分享的广告域名列表",
|
||||
|
||||
"Q3": "会不会误拦截正常内容?",
|
||||
"A3": "内置域名库经过筛选,主要针对已知广告。如有误拦截,可以反馈给开发者"
|
||||
},
|
||||
|
||||
"片头片尾跳过": {
|
||||
"说明": "对于嵌入视频流中的广告,可以使用片头片尾跳过功能",
|
||||
"使用方法": [
|
||||
"1. 播放视频时,在片头(前5分钟内)按【片头】按钮,记录当前时间点",
|
||||
"2. 在片尾(后5分钟内)按【片尾】按钮,记录结束前的时间点",
|
||||
"3. 下次播放相同视频时,会自动跳过片头,并在片尾前停止",
|
||||
"4. 如需重置,长按对应按钮即可"
|
||||
]
|
||||
},
|
||||
|
||||
"技术说明": {
|
||||
"拦截层级": "WebView网络请求层拦截",
|
||||
"拦截方式": "返回空响应,阻止广告内容加载",
|
||||
"性能影响": "极小,仅在WebView解析时生效",
|
||||
"隐私保护": "所有拦截在本地进行,不上传任何数据"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== 替换Spider Jar文件 ==="
|
||||
|
||||
# 删除旧的fm.jar
|
||||
echo "删除旧的fm.jar..."
|
||||
rm -f /Users/chen/Desktop/XMBOX/app/src/main/assets/jar/fm.jar
|
||||
|
||||
# 复制新的custom_spider.jar
|
||||
echo "复制custom_spider.jar..."
|
||||
cp /Users/chen/Desktop/custom_spider.jar /Users/chen/Desktop/XMBOX/app/src/main/assets/jar/custom_spider.jar
|
||||
|
||||
# 验证
|
||||
echo ""
|
||||
echo "=== 验证结果 ==="
|
||||
ls -lh /Users/chen/Desktop/XMBOX/app/src/main/assets/jar/
|
||||
echo ""
|
||||
md5 /Users/chen/Desktop/XMBOX/app/src/main/assets/jar/custom_spider.jar
|
||||
|
||||
echo ""
|
||||
echo "=== 清理并重新构建 ==="
|
||||
cd /Users/chen/Desktop/XMBOX
|
||||
./gradlew clean assembleMobileArm64_v8aDebug
|
||||
|
||||
echo ""
|
||||
echo "=== 完成! ==="
|
||||
|
||||