图片名单管理接口
通过该接口服务可以对自定义图片名单库进行操作管理,包括名单信息查询、名单内图片查询、批量入库或者删除图片等。
名词解释:
- 图片名单 ID:图片名单库的中各名单的 ID,可在登录控制台后,在“图片名单库” > “进入名单”页面查看
1. 根据指定应用/图片获取名单信息
1.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image-library/search/<secretId> |
1.2 请求方法
POST
1.3 请求头
Content-Type: application/json
1.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
name |
String | 否 | 图片名称, 支持模糊搜索 |
isFuzzySearch |
Boolean | 否 | 是否模糊搜索, 默认为 false |
1.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
1.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
imageLibraries |
Array<ImageLibrary> | 否 | 名单信息 |
ImageLibrary
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
id |
String | 否 | 图片名单 ID |
name |
String | 否 | 图片名单名称,长度 <= 512 个字符 |
type |
Number | 否 | 图片名单类型(黑白名单) |
threshold |
float | 否 | 图片名单阈值 |
status |
Number | 否 | 图片名单状态 |
images |
Number | 否 | 图片名单图片数量 |
1.6 请求示例
{
"name": "<name>",
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>"
}
1.7 响应示例
{
"json": "{\"code\":0,\"imageLibraries\":[{\"id\":\"xxxxx\",\"name\":\"xxxxxx\",\"type\":0,\"threshold\":0.95,\"status\":0,\"images\":0}],\"message\":\"success\",\"nonce\":0.06782758396322386,\"timestamp\":1669603717}",
"signature": "Ib83QDNUBz8fvUc2xhELAm7gGqjpIkUkxqw1LaS88ssOSuv52gD3Z3ynu8QL+pLF0S5f6EXmJYH6enOHjymuIYxbg+ToLq6+BGQQWKRyoOEpNzdtmjSqCcv+rO24sH+S76ts0PHyoz0rFUXcxjZl+aRtc0c9bOC/NgpgY+WCBkk="
}
2. 列出指定图片名单内图片
2.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image/search/<secretId> |
2.2 请求方法
POST
2.3 请求头
Content-Type: application/json
2.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
imageLibraryId |
String | 是 | 图片名单 ID |
name |
String | 否 | 图片名称,允许模糊搜索 |
isFuzzySearch |
Boolean | 否 | 是否模糊搜索, 默认为 false |
page |
Number | 否 | 第几页, 从 1 开始, 默认为 1 |
limit |
Number | 否 | 返回条目数限制, 默认为 10, 最大为 999 |
2.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
2.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
hasNext |
Boolean | 否 | 是否存在下一页 |
total |
Number | 否 | 图片总数 |
images |
Array<image> | 否 | 图片信息 |
Image
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
name |
String | 否 | 图片名称 |
url |
String | 否 | 图片链接 |
updatedAt |
time | 否 | 更新时间 |
2.6 请求示例
{
"imageLibraryId": "<imageLibraryId>",
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>"
}
2.7 响应示例
{
"json": "{\"code\":0,\"hasNext\":true,\"images\":[{\"name\":\"xxxxxx\",\"url\":\"https://static.tuputech.com/xxxxx\",\"updatedAt\":\"2022-11-24 08:27:20.922 +0000 UTC\"}],\"message\":\"success\",\"nonce\":0.39926257471964194,\"timestamp\":1669603816,\"total\":531}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
3. 通过图片 url 批量增加图片
3.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image/create/url/<secretId> |
3.2 请求方法
POST
3.3 请求头
Content-Type: application/json
3.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
imageLibraryId |
String | 是 | 图片名单 ID |
images |
Array<image> | 是 | 待增加的图片数组,数量应小于 1000 |
Image
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
name |
String | 是 | 图片名称 |
url |
String | 是 | 图片链接 |
3.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
3.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
images |
Array<image> | 否 | 图片信息 |
Image
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片是否成功入库,详见服务公共状态码解析 |
error |
String | 否 | 错误原因 |
name |
String | 否 | 图片名称 |
url |
String | 否 | 图片链接 |
3.6 请求示例
{
"imageLibraryId": "<imageLibraryId>",
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"images": [
{
"name": "name1",
"url": "https://www.tuputech.com/fake.jpg"
}
]
}
3.7 响应示例
{
"json": "{\"code\":0,\"images\":[{\"code\":0,\"error\":\"\",\"name\":\"test.jpg\",\"url\":\"https://static.tuputech.com/lts/image/original/xxx/test.jpg\"}],\"message\":\"success\",\"nonce\":0.7289184339313061,\"timestamp\":1669602214}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
4. 通过图片 base64 批量增加图片
4.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image/create/base64/<secretId> |
4.2 请求方法
POST
4.3 请求头
Content-Type: application/json
4.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
imageLibraryId |
String | 是 | 图片名单 id |
images |
Array<image> | 是 | 待增加的图片数组,数量应小于 1000, 建议控制一次入库图片的总大小不超过100M,过大将导致 413 Request Entity Too Large |
Image
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
name |
String | 是 | 图片名称 |
content |
String | 是 | 图片 base64 |
4.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
4.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
images |
Array<image> | 否 | 图片信息 |
Image
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片是否成功入库,详见服务公共状态码解析 |
error |
String | 否 | 错误原因 |
name |
String | 否 | 图片名称 |
url |
String | 否 | 图片链接 |
4.6 请求示例
{
"imageLibraryId": "<imageLibraryId>",
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"images": [
{
"name": "name1",
"content": "<base64>"
}
]
}
4.7 响应示例
{
"json": "{\"code\":0,\"images\":[{\"code\":0,\"error\":\"\",\"name\":\"test.jpg\",\"url\":\"https://static.tuputech.com/lts/image/original/xxx/test.jpg\"}],\"message\":\"success\",\"nonce\":0.7289184339313061,\"timestamp\":1669602214}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
5. 根据图片名称批量删除图片
5.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image/delete/<secretId> |
5.2 请求方法
POST
5.3 请求头
Content-Type: application/json
5.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
imageLibraryId |
String | 是 | 图片名单 ID |
images |
Array<Image> | 是 | 待删除的图片数组,数量应小于 100 |
Image
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
name |
String | 是 | 图片名称, 支持模糊搜索 |
isFuzzySearch |
Boolean | 否 | 是否模糊搜索, 默认为 false |
5.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
5.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
images |
Array<image> | 否 | 图片信息 |
Image
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片是否成功删除,详见服务公共状态码解析 |
error |
String | 否 | 错误原因 |
name |
String | 否 | 图片名称 |
5.6 请求示例
{
"imageLibraryId": "<imageLibraryId>",
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"images": [
{
"name": "name1"
}
]
}
5.7 响应示例
{
"json": "{\"code\":0,\"images\":[{\"code\":0,\"error\":\"\",\"name\":\"test.jpg\"}],\"message\":\"success\",\"nonce\":0.7289184339313061,\"timestamp\":1669602214}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
6. 根据名称增加图片名单库
6.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image-library/create/<secretId> |
6.2 请求方法
POST
6.3 请求头
Content-Type: application/json
6.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
name |
String | 否 | 图片名单库名称 |
type |
Number | 否 | 图片名单类型(黑、白名单) , 其中黑名单为 0 , 白名单为 1 , 默认为黑名单 |
status |
Number | 否 | 状态, 其中开启为 0 , 关闭为 1 , 默认为开启 |
6.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
6.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
imageLibrary |
Object<ImageLibrary> | 否 | 图片名单库信息 |
ImageLibrary
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
id |
String | 否 | 图片名单库 id |
name |
String | 否 | 图片名单名称 |
type |
String | 否 | 图片名单类型 |
threshold |
String | 否 | 阈值 |
status |
String | 否 | 状态 |
images |
String | 否 | 图片数量 |
6.6 请求示例
{
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"name": "<name>"
}
6.7 响应示例
{
"json": "{\"code\":0,\"imageLibrary\":{\"id\":\"xxxxxxx\",\"name\":\"xxxxxx\",\"type\":1,\"threshold\":0.95,\"status\":0,\"images\":0},\"message\":\"success\",\"nonce\":0.7289184339313061,\"timestamp\":1669602214}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
7. 根据 id 删除图片名单库
7.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image-library/delete/<secretId> |
7.2 请求方法
POST
7.3 请求头
Content-Type: application/json
7.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
imageLibraryId |
String | 是 | 图片名单 ID |
7.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
7.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
imageLibrary |
Object<ImageLibrary> | 否 | 图片信息 |
ImageLibrary
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片名单库是否成功删除,详见服务公共状态码解析 |
error |
String | 否 | 错误原因 |
name |
String | 否 | 图片名单库名称 |
7.6 请求示例
{
"imageLibraryId": "<imageLibraryId>",
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>"
}
7.7 响应示例
{
"json": "{\"code\":0,\"imageLibrary\":{\"code\":0,\"error\":\"\",\"name\":\"xxxxxxx\"},\"message\":\"success\",\"nonce\":0.12674173826848636,\"timestamp\":1669602352}"
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
8. 修改图片名单库
8.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/management/image-library/update/<secretId> |
8.2 请求方法
POST
8.3 请求头
Content-Type: application/json
8.4 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
String | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
String | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
imageLibraryId |
String | 是 | 图片名单 ID |
name |
String | 否 | 图片名单库名称, 当请求中没有该字段时,不修改图片名单库状态 |
type |
Number | 否 | 图片名单类型(黑、白名单) , 其中黑名单为 0 , 白名单为 1 , 当请求中没有该字段时,不修改图片名单库状态 |
status |
Number | 否 | 状态, 其中开启为 0 , 关闭为 1 , 当请求中没有该字段时,不修改图片名单库状态 |
secretIds |
Array<String> | 否 | 当请求中没有该字段时,不修改图片名单库绑定的应用(SID); 不支持解绑当前 secretId,即传入一个空的数组时,不修改图片名单库绑定的应用(SID); 当传入一个不包含当前 secretId 的数组时,自动填充当前应用(SID); 不支持绑定文本/语音类型的应用(SID);不支持绑定未开启的应用(SID) |
8.5 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
8.5.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码 |
nonce |
Number | 否 | 随机数 |
message |
String | 否 | 相关信息 |
timestamp |
Number | 否 | 时间戳 |
imageLibrary |
Object<ImageLibrary> | 否 | 图片名单库信息 |
ImageLibrary
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片名单库是否更新成功,详见服务公共状态码解析 |
error |
String | 否 | 错误原因 |
name |
String | 否 | 图片名单库名称 |
threshold |
Number | 否 | 阈值 |
secretIds |
Array<String> | 否 | 关联的应用(SID) |
8.6 请求示例
{
"imageLibraryId": "<imageLibraryId>",
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"name": "<name>"
}
8.7 响应示例
{
"json": "{\"code\":0,\"imageLibrary\":{\"code\":0,\"error\":\"\",\"name\":\"xxx\",\"status\":0,\"threshold\":0.95,\"secretIds\":[\"xxx\"]},\"message\":\"success\",\"nonce\":0.65333554465516,\"timestamp\":1669602627}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}