Tema Layout


SUBMITTED BY: Clodo9102

DATE: Sept. 11, 2023, 12:07 a.m.

UPDATED: Jan. 24, 2024, 7:14 p.m.

FORMAT: Text only

SIZE: 19.0 kB

HITS: 1405

  1. [
  2. {
  3. "id": 22166,
  4. "label": "Nome do aplicativo",
  5. "nome": "APP_NAME",
  6. "valor": nulo,
  7. "tipo": "STRING",
  8. "status": "ATIVO",
  9. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  10. },
  11. {
  12. "id": 22167,
  13. "label": "Logotipo do aplicativo",
  14. "nome": "APP_LOGO",
  15. "valor": "https://i.ibb.co/j4Q48sG/DT040a9i8j.png",
  16. "tipo": "IMAGEM",
  17. "status": "ATIVO",
  18. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  19. },
  20. {
  21. "id": 22168,
  22. "label": "Imagem de fundo",
  23. "nome": "APP_BACKGROUND_IMAGE",
  24. "valor": nulo,
  25. "tipo": "IMAGEM",
  26. "status": "ATIVO",
  27. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  28. },
  29. {
  30. "id": 22169,
  31. "label": "Tipo de fundo do app",
  32. "nome": "APP_BACKGROUND_TYPE",
  33. "valor": {
  34. "opções": [
  35. {
  36. "label": "Imagem",
  37. "valor": "IMAGEM"
  38. },
  39. {
  40. "rótulo": "Cor",
  41. "valor": "COR"
  42. }
  43. ],
  44. "selecionado": "COR"
  45. },
  46. "tipo": "SELECIONAR",
  47. "status": "ATIVO",
  48. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  49. },
  50. {
  51. "id": 22170,
  52. "label": "Cor de fundo",
  53. "nome": "APP_BACKGROUND_COLOR",
  54. "valor": "#080e16c7",
  55. "tipo": "COR",
  56. "status": "ATIVO",
  57. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  58. },
  59. {
  60. "id": 22171,
  61. "label": "Cor do cartão inicial",
  62. "nome": "APP_CARD_COLOR",
  63. "valor": "#1d242e73",
  64. "tipo": "COR",
  65. "status": "ATIVO",
  66. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  67. },
  68. {
  69. "id": 22172,
  70. "label": "Raio do cartão inicial",
  71. "nome": "APP_CARD_RADIUS",
  72. "valor": 20,
  73. "tipo": "INTEIRO",
  74. "status": "ATIVO",
  75. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  76. },
  77. {
  78. "id": 22173,
  79. "label": "Cor do cartão de status",
  80. "nome": "APP_CARD_STATUS_COLOR",
  81. "valor": "#1d242e73",
  82. "tipo": "COR",
  83. "status": "ATIVO",
  84. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  85. },
  86. {
  87. "id": 22174,
  88. "label": "Raio do cartão de status",
  89. "nome": "APP_CARD_STATUS_RADIUS",
  90. "valor": 25,
  91. "tipo": "INTEIRO",
  92. "status": "ATIVO",
  93. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  94. },
  95. {
  96. "id": 22175,
  97. "label": "Cor do cartão de configurações",
  98. "nome": "APP_CARD_CONFIG_COLOR",
  99. "valor": "#4298e182",
  100. "tipo": "COR",
  101. "status": "ATIVO",
  102. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  103. },
  104. {
  105. "id": 22176,
  106. "label": "Cor do fundo dos diálogos",
  107. "nome": "APP_DIALOG_BACKGROUND_COLOR",
  108. "valor": "#4298e182",
  109. "tipo": "COR",
  110. "status": "ATIVO",
  111. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  112. },
  113. {
  114. "id": 22177,
  115. "label": "Cor do fundo do diálogo de log",
  116. "nome": "APP_DIALOG_LOGGER_COLOR",
  117. "valor": "#4298e182",
  118. "tipo": "COR",
  119. "status": "ATIVO",
  120. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  121. },
  122. {
  123. "id": 22178,
  124. "label": "Cor das bordas",
  125. "nome": "APP_BORDER_COLOR",
  126. "valor": "#1d242e73",
  127. "tipo": "COR",
  128. "status": "ATIVO",
  129. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  130. },
  131. {
  132. "id": 22179,
  133. "label": "Cor dos inputs",
  134. "nome": "APP_INPUT_COLOR",
  135. "valor": "#1d242e73",
  136. "tipo": "COR",
  137. "status": "ATIVO",
  138. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  139. },
  140. {
  141. "id": 22180,
  142. "label": "Raio dos inputs",
  143. "nome": "APP_INPUT_RADIUS",
  144. "valor": 25,
  145. "tipo": "INTEIRO",
  146. "status": "ATIVO",
  147. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  148. },
  149. {
  150. "id": 22181,
  151. "label": "Cor dos textos",
  152. "nome": "APP_TEXT_COLOR",
  153. "valor": "#FFFFFFFF",
  154. "tipo": "COR",
  155. "status": "ATIVO",
  156. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  157. },
  158. {
  159. "id": 22182,
  160. "label": "Cor dos botões",
  161. "nome": "APP_BUTTON_COLOR",
  162. "valor": "#1d242e73",
  163. "tipo": "COR",
  164. "status": "ATIVO",
  165. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  166. },
  167. {
  168. "id": 22183,
  169. "label": "Raio dos botões",
  170. "nome": "APP_BUTTON_RADIUS",
  171. "valor": 25,
  172. "tipo": "INTEIRO",
  173. "status": "ATIVO",
  174. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  175. },
  176. {
  177. "id": 22184,
  178. "label": "Cor dos ícones",
  179. "nome": "APP_ICON_COLOR",
  180. "valor": "#FFFFFFFF",
  181. "tipo": "COR",
  182. "status": "ATIVO",
  183. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  184. },
  185. {
  186. "id": 22185,
  187. "label": "Exibir modo de conexão",
  188. "nome": "APP_SHOW_CONNECTION_MODE",
  189. "valor": verdadeiro,
  190. "tipo": "BOOLEAN",
  191. "status": "ATIVO",
  192. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  193. },
  194. {
  195. "id": 22871,
  196. "label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
  197. "nome": "APP_CONFIG_AUTO_UPDATE",
  198. "valor": verdadeiro,
  199. "tipo": "BOOLEAN",
  200. "status": "ATIVO",
  201. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  202. },
  203. {
  204. "id": 22186,
  205. "label": "Iniciar o aplicativo automaticamente ao reiniciar o dispositivo",
  206. "nome": "APP_AUTO_START",
  207. "valor": falso,
  208. "tipo": "BOOLEAN",
  209. "status": "ATIVO",
  210. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  211. },
  212. {
  213. "id": 22187,
  214. "label": "Usar limitador de conexão",
  215. "nome": "APP_CONNECTION_LIMITER",
  216. "valor": falso,
  217. "tipo": "BOOLEAN",
  218. "status": "ATIVO",
  219. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  220. },
  221. {
  222. "id": 22188,
  223. "label": "Usar botão de atualizações",
  224. "nome": "APP_BTN_UPDATE_ENABLED",
  225. "valor": falso,
  226. "tipo": "BOOLEAN",
  227. "status": "ATIVO",
  228. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  229. },
  230. {
  231. "id": 22189,
  232. "label": "Usar botão de registros",
  233. "nome": "APP_BTN_LOGGER_ENABLED",
  234. "valor": falso,
  235. "tipo": "BOOLEAN",
  236. "status": "ATIVO",
  237. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  238. },
  239. {
  240. "id": 22190,
  241. "label": "Usar botão de página webview",
  242. "nome": "APP_BTN_PAGE_ENABLED",
  243. "valor": falso,
  244. "tipo": "BOOLEAN",
  245. "status": "ATIVO",
  246. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  247. },
  248. {
  249. "id": 22191,
  250. "label": "Ativar caixa de diálogo de erros",
  251. "nome": "APP_DIALOG_ERROR_ENABLED",
  252. "valor": falso,
  253. "tipo": "BOOLEAN",
  254. "status": "ATIVO",
  255. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  256. },
  257. {
  258. "id": 22192,
  259. "label": "Ativar diálogo de checkuser",
  260. "nome": "APP_CHECKUSER_DIALOG_ENABLED",
  261. "valor": falso,
  262. "tipo": "BOOLEAN",
  263. "status": "ATIVO",
  264. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  265. },
  266. {
  267. "id": 22193,
  268. "label": "Ativar brinde de sucesso",
  269. "nome": "APP_SUCCESS_TOAST_ENABLED",
  270. "valor": verdadeiro,
  271. "tipo": "BOOLEAN",
  272. "status": "ATIVO",
  273. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  274. },
  275. {
  276. "id": 22194,
  277. "label": "Ativar brinde de erro",
  278. "nome": "APP_ERROR_TOAST_ENABLED",
  279. "valor": falso,
  280. "tipo": "BOOLEAN",
  281. "status": "ATIVO",
  282. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  283. },
  284. {
  285. "id": 22195,
  286. "label": "Usar layout webview",
  287. "nome": "APP_LAYOUT_WEBVIEW_ENABLED",
  288. "valor": verdadeiro,
  289. "tipo": "BOOLEAN",
  290. "status": "ATIVO",
  291. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  292. },
  293. {
  294. "id": 22196,
  295. "label": "Mensagem",
  296. "nome": "APP_MESSAGE",
  297. "valor": nulo,
  298. "tipo": "TEXTO",
  299. "status": "ATIVO",
  300. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  301. },
  302. {
  303. "id": 22197,
  304. "label": "URL de atualização do aplicativo",
  305. "nome": "APP_UPDATE_URL",
  306. "valor": nulo,
  307. "tipo": "URL",
  308. "status": "ATIVO",
  309. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  310. },
  311. {
  312. "id": 22198,
  313. "label": "Tipo de mensagem",
  314. "nome": "APP_MESSAGE_TYPE",
  315. "valor": {
  316. "opções": [
  317. {
  318. "rótulo": "Alerta",
  319. "valor": "ALERTA"
  320. },
  321. {
  322. "rótulo": "Informação",
  323. "valor": "INFORMAÇÕES"
  324. },
  325. {
  326. "label": "Boas boas-vindas",
  327. "valor": "BEM-VINDO"
  328. },
  329. {
  330. "label": "Sem mensagem",
  331. "valor": "NENHUMA"
  332. }
  333. ],
  334. "selecionado": "NENHUMA"
  335. },
  336. "tipo": "SELECIONAR",
  337. "status": "ATIVO",
  338. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  339. },
  340. {
  341. "id": 22199,
  342. "label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
  343. "nome": "APP_LAYOUT_WEBVIEW",
  344. 732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732L9.1 2.137a.145.145 0 0 1 0-.274l.774-. 258c.346-.115.617-.386.732-.732L10.863.1z\"\n />\n </svg>\n <span>Limpar Registro</span>\n </button>\n </section> \n </section>\n\n <section class=\"modal-alert-clear-data\">\n <header>\n <svg\n xmlns=\"http://www.w3.org /2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-x-lg\"\n viewBox =\"0 0 16 16\"\n >\n <caminho\nd=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708 L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z\"\n />\n </ svg>\n </header>\n\n <section>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\ n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation-triangle\"\n viewBox=\"0 0 16 16\"\n >\n <caminho \nd=\"M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.16 3.163 0 0 1-. 054.06.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017.163.163 0 0 1-.054-.06.176.176 0 0 1 .002-.183L7.884 2.073a.14 7.147 0 0 1 0,054-0,057zm1,044-0,45a1,13 1,13 0 0 0-1,96 0L.165 13,233c-.457,778,091 1,767,98 1,767h13,713c.889 0 1,438-0,99,98-1,767 L8.982 1.566z\"\n />\n <caminho\nd=\"M7.002 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1,8 0l-.35 3.507 a.552.552 0 0 1-1.1 0L7.1 5.995z\"\n />\n </svg>\n\n <h1>ATENÇÃO</h1>\n\n <p>\n Ao limpar os dados do aplicativo, o aplicativo será redefinido como\n se foi instalado pela primeira vez! Essa ação é irreversível. Será necessário inserir o usuário e senha novamente e\n atualizar o aplicativo para carregar as configurações atuais de\n conexão VPN.\n </p>\n\n <div>\n <button type=\"button\" id =\"back-clear-data-button\">\n <svg\n xmlns=\"http://www.w3. const dtGetUUID = () => DtUuid.get()\n const dtSetUUID = (uuid) => DtUuid.set(uuid)\n\n const dtUpdate = () => DtStartAppUpdate.execute()\n\n const dtStartVpn = () => DtExecuteVpnStart.execute()\n const dtStopVpn = () => DtExecuteVpnStop.execute()\n\n const dtBatteryOptimization = () => DtIgnoreBatteryOptimizations.execute()\n const dtApnConfiguration = () => DtStartApnActivity .execute()\n const dtStartCheckUser = () => DtStartCheckUser.execute()\n const dtCleanDataApp = () => DtCleanApp.execute()\n const dtStartWebView = (url) => DtStartWebViewActivity.execute(url)\n const dtOpenBrowser = (url) => DtOpenExternalUrl.execute(url)\n </script>\n\n <!-- FUNÇÕES PARA O APP -->\n <script>\n const dtOnNewLogListener = () => writeModalContent ()\n const dtConfigClickListener = () => writeInputCarrierList()\n const dtCheckUserStartedListener = () => showModalLoading()\n const dtVpnStateListener = (estado) => vpnState(estado)\n const dtCheckUserModelListener = (modelo) => writeModalCheckUser(model)\n\n const dtMessageErrorListener = (model) => writeModalError(model)\n </script>\n\n <!-- FUNÇÕES DE AJUDA -->\n <script>\n const createSvgIcon = (iconPath, Class = \"\") => {\n const svg = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"svg\"\ n )\n svg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\")\n svg.setAttribute(\"largura\", \"16\") \n svg.setAttribute(\"altura\", \"16\")\n svg.setAttribute(\"fill\", \"currentColor\")\n svg.setAttribute(\"viewBox\", \" 0 0 16 16\")\n svg.setAttribute(\"class\", Classe)\n\n const path = document.createElementNS(\n \"http://www.w3.org/2000/svg\ ",\n \"path\"\n )\n path.setAttribute(\"d\", iconPath)\n\n svg.appendChild(caminho)\n return svg\n }\n\n const createListItem = (iconPath, Class = \"\", texto) => {\n const li = document.createElement(\"li\")\n const svg = createSvgIcon(iconPath, Class)\n const span = document.createElement( \"span\")\n span.setAttribute(\"class\", Classe)\n span.innerHTML = text\n li.appendChild(svg)\n li.appendChild(span)\n return li\n } \n </script>\n\n <!-- FUNÇÕES DO LAYOUT -->\n <script>\n const vpnState = (state) => {\n const stateLabel = state || dtVpnState()\n\n switch (stateLabel) {\n case \"DISCONNECTED\":\n StartStopVPNButton. \"https://fast.com/pt/\" })\n }\n const hiddenModalSpeedtest = () => {\n IframeSpeedtest.attr({ src: \"\" })\n\n ModalSpeedtest. removeClass(\"show\")\n }\n\n const writeCarrierList = () => {\n const writeCarrierList = document.querySelector(\n \"section.modal-configs section\"\n )\n\ n writeCarrierList.innerHTML = \"\"\n\n const data = JSON.parse(dtAllConfigs())\n data.sort((a, b) => a.sorter - b.sorter)\n data.forEach ((item, índice) =>\n item.items.sort((a, b) => a.sorter - b.sorter)\n )\n data.forEach((category) => {\n const div = document.createElement(\"div\")\n const h1 = document.createElement(\"h1\")\n\n h1.classList.add(\"title\")\n h1.innerHTML = categoria. nome\n\n const ul = document.createElement(\"ul\")\n\n categoria.items.forEach((item) => {\n const li = document.createElement(\"li\")\ n li.innerHTML = `<img src=\"${item.icon}\" alt=\"icon\" /><div><h1>${\n item.name\n }</h1>< p>${item.description ?? \"\"}</p></div>`\n\n li.addEventListener(\"click\", () => {\n dtSetConfig(item.id) \n\n ModalCarrierList.removeClass(\"show\")\n })\n\n ul.appendChild(li)\n })\n\n div.appendChild(h1)\n div.appendChild(ul) \n\n writeCarrierList.appendChild(div)\n })\n }\n const writeInputCarrierList = () => {\n const data = JSON.parse(dtGetDefaultConfig())\n\n const isV2ray = dados?. mode?.toLowerCase()?.startsWith(\"v2ray\")\n\n InputCarrierValue.attr({\n espaço reservado: data.name ?? \"Escolha sua operadora\",\n })\n\n if (!data?.auth?.v2ray_uuid && isV2ray) {\n ContainerInputUser.style({ display: \"none\" })\n ContainerInputPassword. style({ display: \"none\" })\n ContainerInputUUID.style({ display: \"flex\" })\n InputUUIDValue.attr({ valor: dtGetUUID() ?? \"\" })\n } else {\n ContainerInputPassword.style({ display: \"flex\" })\n ContainerInputUUID.style({ display: \"none\" })\n InputUserValue.attr({ valor: dtGetUsername() ?? \ "\" })\n InputPasswordValue.attr({ valor: dtGetPassword() ?? \"\" })\n }\n }\n const showModalCarrierList = () => {\n writeCarrierList()\n\n ModalCarrierList.addClass(\"show\")\n }\n const hiddenModalCarrierList = () => {\n ModalCarrierList. removeClass(\"show\")\n }\n\n const writeModalContent = () => {\n const data = JSON.parse(dtGetLogs())\n\n let content = \"\"\n\ n data.forEach((item) => {\n content += `${Object.keys(item)} ${item[Object.keys(item)]} <br>`\n })\n\n ModalLoggerContent.html(content)\n }\n const showModalLogger = () => {\n dtOnNewLogListener()\n\n const modal = document.querySelector(\"section.modal-logs\")\n\n if (!modal.className.includes(\"show\")) {\n ModalLogger.addClass(\"show\")\n }\n }\n const hiddenModalLogger = () => {\n ModalLogger.removeClass( \"show\")\n }\n\n const startStopVpn = () => {\n const state = dtVpnState()\n\n if (state !== \"CONNECTED\") {\n dtStartVpn( )\n showModalVpnState()\n } else {\n dtStopVpn()\n }\n }\n\n const writeStatusVpn = (estado) => {\n const icon = state.icon\n const text = `< h1 style=\"color: ${state.color}\">${state.text}</h1>`\n\n ContentContainerSVpnState.html(ícone + texto)\n\n retornar ícone + texto\n } \n\n const writeModalVpnState = (state) => {\n const divIcon = `<div class=\"loading-status\">${state.icon}</div>`\n const titleStatus = `<h1 >${state.text}</h1>`\n\n ContentModalVpnState.html(divIcon + titleStatus)\n\n return divIcon + titleStatus\n }\n const showModalVpnState = () => {\n const data = JSON.parse(dtGetDefaultConfig())\n\n if (!data || !dtGetUsername() || !dtGetPassword()) {\n return\n } else {\n ModalVpnState.addClass(\"show\")\n }\n }\n const hiddenModalVpnState = () => {\n ModalVpnState.removeClass(\" show\")\n }\n\n const showModalLoading = () => {\n if (!JSON.parse(dtGetDefaultConfig())?.urlCheckUser) {\n hiddenModalVpnState()\n } else {\n hiddenModalVpnState ()\n ModalLoading.addClass(\"show\")\n }\n }\n const hiddenModalLoading = () => {\n ModalLoading.removeClass(\"show\")\n }\n\n const writeModalCheckUser = (model) => {\n const data = JSON.parse(model)\n\n ContentModalCheckUser.html(`\n <h1>DETALHES DO USUÁRIO</h1>\n\n <div>\n < i class=\"bi bi-person\"></i>\n <span>Nome do usuário: ${data.username}</span>\n </div>\n\n <div>\n <i class=\"bi bi-calendar-week\"></i>\n <span>Expiração: ${data.
  345. "tipo": "HTML",
  346. "status": "ATIVO",
  347. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  348. },
  349. {
  350. "id": 22200,
  351. "label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
  352. "nome": "APP_SUPPORT_BUTTON",
  353. "valor": nulo,
  354. "tipo": "HTML",
  355. "status": "ATIVO",
  356. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  357. },
  358. {
  359. "id": 22201,
  360. "label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
  361. "nome": "APP_WEB_VIEW",
  362. "valor": nulo,
  363. "tipo": "HTML",
  364. "status": "ATIVO",
  365. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  366. }
  367. ]

comments powered by Disqus