Layout DT


SUBMITTED BY: terrorxdroid

DATE: March 27, 2024, 5:31 p.m.

UPDATED: Oct. 2, 2024, 8:18 p.m.

FORMAT: Text only

SIZE: 124.5 kB

HITS: 720

  1. [
  2. {
  3. "id": 34632,
  4. "label": "Nome do app",
  5. "name": "APP_NAME",
  6. "value": "XCLOUD_SSH",
  7. "type": "STRING",
  8. "status": "ACTIVE",
  9. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  10. },
  11. {
  12. "id": 34633,
  13. "label": "Logo do app",
  14. "name": "APP_LOGO",
  15. "value": "https://i.ibb.co/FwnZz4R/DT1nqj5b2m.png",
  16. "type": "IMAGE",
  17. "status": "ACTIVE",
  18. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  19. },
  20. {
  21. "id": 34634,
  22. "label": "Imagem de fundo",
  23. "name": "APP_BACKGROUND_IMAGE",
  24. "value": "https://i.ibb.co/d7ZYSrm/DTfl14h28.jpg",
  25. "type": "IMAGE",
  26. "status": "ACTIVE",
  27. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  28. },
  29. {
  30. "id": 34635,
  31. "label": "Tipo do fundo do app",
  32. "name": "APP_BACKGROUND_TYPE",
  33. "value": {
  34. "options": [
  35. {
  36. "label": "Imagem",
  37. "value": "IMAGE"
  38. },
  39. {
  40. "label": "Cor",
  41. "value": "COLOR"
  42. }
  43. ],
  44. "selected": "IMAGE"
  45. },
  46. "type": "SELECT",
  47. "status": "ACTIVE",
  48. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  49. },
  50. {
  51. "id": 34636,
  52. "label": "Cor de fundo",
  53. "name": "APP_BACKGROUND_COLOR",
  54. "value": "#160b00c7",
  55. "type": "COLOR",
  56. "status": "ACTIVE",
  57. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  58. },
  59. {
  60. "id": 34637,
  61. "label": "Cor do card inicial",
  62. "name": "APP_CARD_COLOR",
  63. "value": "#a81f0000",
  64. "type": "COLOR",
  65. "status": "ACTIVE",
  66. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  67. },
  68. {
  69. "id": 34638,
  70. "label": "Raio do card inicial",
  71. "name": "APP_CARD_RADIUS",
  72. "value": 20,
  73. "type": "INTEGER",
  74. "status": "ACTIVE",
  75. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  76. },
  77. {
  78. "id": 34639,
  79. "label": "Cor do card de status",
  80. "name": "APP_CARD_STATUS_COLOR",
  81. "value": "#1d242e73",
  82. "type": "COLOR",
  83. "status": "ACTIVE",
  84. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  85. },
  86. {
  87. "id": 34640,
  88. "label": "Raio do card de status",
  89. "name": "APP_CARD_STATUS_RADIUS",
  90. "value": 25,
  91. "type": "INTEGER",
  92. "status": "ACTIVE",
  93. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  94. },
  95. {
  96. "id": 34641,
  97. "label": "Cor do card de configurações",
  98. "name": "APP_CARD_CONFIG_COLOR",
  99. "value": "#0E171EC9",
  100. "type": "COLOR",
  101. "status": "ACTIVE",
  102. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  103. },
  104. {
  105. "id": 34642,
  106. "label": "Cor do fundo dos dialogs",
  107. "name": "APP_DIALOG_BACKGROUND_COLOR",
  108. "value": "#050C5AE4",
  109. "type": "COLOR",
  110. "status": "ACTIVE",
  111. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  112. },
  113. {
  114. "id": 34643,
  115. "label": "Cor do fundo do dialog de log",
  116. "name": "APP_DIALOG_LOGGER_COLOR",
  117. "value": "#080e16c7",
  118. "type": "COLOR",
  119. "status": "ACTIVE",
  120. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  121. },
  122. {
  123. "id": 34644,
  124. "label": "Cor das bordas",
  125. "name": "APP_BORDER_COLOR",
  126. "value": "#1d242e73",
  127. "type": "COLOR",
  128. "status": "ACTIVE",
  129. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  130. },
  131. {
  132. "id": 34645,
  133. "label": "Cor dos inputs",
  134. "name": "APP_INPUT_COLOR",
  135. "value": "#2c2d2e73",
  136. "type": "COLOR",
  137. "status": "ACTIVE",
  138. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  139. },
  140. {
  141. "id": 34646,
  142. "label": "Raio dos inputs",
  143. "name": "APP_INPUT_RADIUS",
  144. "value": 25,
  145. "type": "INTEGER",
  146. "status": "ACTIVE",
  147. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  148. },
  149. {
  150. "id": 34647,
  151. "label": "Cor dos textos",
  152. "name": "APP_TEXT_COLOR",
  153. "value": "#FFFFFFFF",
  154. "type": "COLOR",
  155. "status": "ACTIVE",
  156. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  157. },
  158. {
  159. "id": 34648,
  160. "label": "Cor dos botões",
  161. "name": "APP_BUTTON_COLOR",
  162. "value": "#1d242eff",
  163. "type": "COLOR",
  164. "status": "ACTIVE",
  165. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  166. },
  167. {
  168. "id": 34649,
  169. "label": "Raio dos botões",
  170. "name": "APP_BUTTON_RADIUS",
  171. "value": 25,
  172. "type": "INTEGER",
  173. "status": "ACTIVE",
  174. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  175. },
  176. {
  177. "id": 34650,
  178. "label": "Cor dos icones",
  179. "name": "APP_ICON_COLOR",
  180. "value": "#ffffffff",
  181. "type": "COLOR",
  182. "status": "ACTIVE",
  183. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  184. },
  185. {
  186. "id": 34651,
  187. "label": "Exibir modo de conexão",
  188. "name": "APP_SHOW_CONNECTION_MODE",
  189. "value": false,
  190. "type": "BOOLEAN",
  191. "status": "ACTIVE",
  192. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  193. },
  194. {
  195. "id": 34652,
  196. "label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
  197. "name": "APP_CONFIG_AUTO_UPDATE",
  198. "value": true,
  199. "type": "BOOLEAN",
  200. "status": "ACTIVE",
  201. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  202. },
  203. {
  204. "id": 34653,
  205. "label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
  206. "name": "APP_AUTO_START",
  207. "value": false,
  208. "type": "BOOLEAN",
  209. "status": "ACTIVE",
  210. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  211. },
  212. {
  213. "id": 34654,
  214. "label": "Usar limiter de conexão",
  215. "name": "APP_CONNECTION_LIMITER",
  216. "value": true,
  217. "type": "BOOLEAN",
  218. "status": "ACTIVE",
  219. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  220. },
  221. {
  222. "id": 34655,
  223. "label": "Usar botão de atualizações",
  224. "name": "APP_BTN_UPDATE_ENABLED",
  225. "value": true,
  226. "type": "BOOLEAN",
  227. "status": "ACTIVE",
  228. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  229. },
  230. {
  231. "id": 34656,
  232. "label": "Usar botão de registros",
  233. "name": "APP_BTN_LOGGER_ENABLED",
  234. "value": false,
  235. "type": "BOOLEAN",
  236. "status": "ACTIVE",
  237. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  238. },
  239. {
  240. "id": 34657,
  241. "label": "Usar botão de pagina webview",
  242. "name": "APP_BTN_PAGE_ENABLED",
  243. "value": false,
  244. "type": "BOOLEAN",
  245. "status": "ACTIVE",
  246. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  247. },
  248. {
  249. "id": 34658,
  250. "label": "Ativar dialog de erros",
  251. "name": "APP_DIALOG_ERROR_ENABLED",
  252. "value": false,
  253. "type": "BOOLEAN",
  254. "status": "ACTIVE",
  255. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  256. },
  257. {
  258. "id": 34659,
  259. "label": "Ativar dialog de checkuser",
  260. "name": "APP_CHECKUSER_DIALOG_ENABLED",
  261. "value": false,
  262. "type": "BOOLEAN",
  263. "status": "ACTIVE",
  264. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  265. },
  266. {
  267. "id": 34660,
  268. "label": "Ativar toast de sucesso",
  269. "name": "APP_SUCCESS_TOAST_ENABLED",
  270. "value": false,
  271. "type": "BOOLEAN",
  272. "status": "ACTIVE",
  273. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  274. },
  275. {
  276. "id": 34661,
  277. "label": "Ativar toast de erro",
  278. "name": "APP_ERROR_TOAST_ENABLED",
  279. "value": false,
  280. "type": "BOOLEAN",
  281. "status": "ACTIVE",
  282. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  283. },
  284. {
  285. "id": 34662,
  286. "label": "Usar layout webview",
  287. "name": "APP_LAYOUT_WEBVIEW_ENABLED",
  288. "value": true,
  289. "type": "BOOLEAN",
  290. "status": "ACTIVE",
  291. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  292. },
  293. {
  294. "id": 34663,
  295. "label": "Mensagem",
  296. "name": "APP_MESSAGE",
  297. "value": null,
  298. "type": "TEXT",
  299. "status": "ACTIVE",
  300. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  301. },
  302. {
  303. "id": 34664,
  304. "label": "URL de atualização do aplicativo",
  305. "name": "APP_UPDATE_URL",
  306. "value": null,
  307. "type": "URL",
  308. "status": "ACTIVE",
  309. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  310. },
  311. {
  312. "id": 34665,
  313. "label": "Tipo de mensagem",
  314. "name": "APP_MESSAGE_TYPE",
  315. "value": {
  316. "options": [
  317. {
  318. "label": "Alerta",
  319. "value": "ALERT"
  320. },
  321. {
  322. "label": "Informação",
  323. "value": "INFO"
  324. },
  325. {
  326. "label": "Boas vindas",
  327. "value": "WELCOME"
  328. },
  329. {
  330. "label": "Sem mensagem",
  331. "value": "NONE"
  332. }
  333. ],
  334. "selected": "INFO"
  335. },
  336. "type": "SELECT",
  337. "status": "ACTIVE",
  338. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  339. },
  340. {
  341. "id": 34666,
  342. "label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
  343. "name": "APP_LAYOUT_WEBVIEW",
  344. "value": "<!DOCTYPE html>\n<html lang=\"pt-br\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\n <title>5777879193 - @PoggVpn</title>\n\n <style>\n :root {\n font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;\n line-height: 1.5;\n font-weight: 400;\n\n font-synthesis: none;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n\n /*-------->MENU<--------*/\n\n /*IMAGEM DE FUNDO PRINCIPAL*/\n --imagem-de-fundo: url(\"https://i.ibb.co/d7ZYSrm/DTfl14h28.jpg\");\n\n /*CONTAINER DE STATUS VPN*/\n --cor-de-fundo-do-container-de-status-da-vpn: rgba(161, 42, 246, 0.1);\n --cor-do-icone-do-container-de-status-da-vpn: rgba(255, 255, 255, 1);\n --cor-do-texto-do-container-de-status-da-vpn: rgba(255, 255, 255, 1);\n\n /*CONTAINER DE SELECIONAR OPERADORA*/\n --cor-de-fundo-do-campo-de-selecionar-operadora: rgba(\n 161,\n 42,\n 246,\n 0.5\n );\n --borda-do-container-de-selecionar-operadora: rgba(68, 60, 119, 1);\n --cor-do-icone-de-chip-do-campo-de-selecionar-operadora: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-do-texto-do-campo-de-selecionar-operadora: rgba(255, 255, 255, 1);\n\n /*CONTAINER PRINCIPAL*/\n --cor-de-fundo-do-container-principal: rgba(161, 42, 246, 0.5);\n --borda-do-container-principal: rgba(68, 60, 119, 1);\n\n --borda-do-header-do-container-principal: rgba(68, 60, 119, 1);\n\n --cor-de-fundo-dos-input-do-container-principal: rgba(\n 187,\n 127,\n 243,\n 0.2\n );\n --cor-da-borda-dos-input-do-container-principal: rgba(68, 60, 119, 1);\n --cor-dos-icones-dos-input-do-container-principal: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-do-texto-dos-input-do-container-principal: rgba(255, 255, 255, 1);\n --cor-do-texto-dos-input-do-container-principal-quando-nao-ta-selecionado: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n --cor-de-fundo-do-botao-do-container-principal: rgba(\n 187,\n 127,\n 243,\n 0.2\n );\n --cor-da-borda-do-botao-do-container-principal: rgba(68, 60, 119, 1);\n --cor-do-icone-do-botao-do-container-principal: rgba(255, 255, 255, 1);\n --cor-do-texto-do-botao-do-container-principal: rgba(255, 255, 255, 1);\n\n /*CONTAINER DOS CONTROLES*/\n --cor-de-fundo-do-container-de-controles: rgba(161, 42, 246, 0.5);\n --cor-da-borda-do-container-de-controles: rgba(68, 60, 119, 1);\n\n --cor-de-fundo-do-botao-do-container-de-controles: rgba(104, 3, 202, 1);\n --cor-da-borda-do-botao-do-container-de-controles: rgba(68, 60, 119, 1);\n --cor-do-icone-do-botao-do-container-de-controles: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n --cor-de-fundo-do-botao-do-meio-do-container-de-controles: rgba(\n 68,\n 60,\n 119,\n 1\n );\n --cor-da-borda-do-botao-do-meio-do-container-de-controles: rgba(\n 161,\n 42,\n 246,\n 0.5\n );\n\n /* CONTAINER DAS CONFIGURAÇÕES */\n --cor-de-fundo-do-container-da-lista-de-configuracoes: rgba(\n 161,\n 42,\n 246,\n 0.4\n );\n --cor-da-borda-do-container-da-lista-de-configuracoes: rgba(\n 68,\n 60,\n 119,\n 0.5\n );\n\n --cor-de-fundo-do-header-do-container-da-lista-de-configuracoes: rgba(\n 187,\n 127,\n 243,\n 1\n );\n --cor-do-icone-de-fechar-do-header-do-container-da-lista-de-configuracoes: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n --cor-de-fundo-do-container-da-lista-de-categorias-de-configuracoes: transparent;\n\n --cor-de-fundo-da-categoria: transparent;\n --cor-de-fundo-do-header-da-categoria: rgba(187, 127, 243, 1);\n --cor-da-borda-do-header-da-categoria: rgba(127, 71, 203, 1);\n --cor-do-text-do-header-da-categoria: rgba(255, 255, 255, 1);\n --cor-do-icone-do-header-da-categoria: rgba(255, 255, 255, 1);\n\n --cor-de-fundo-da-lista-de-configuracoes: transparent;\n --cor-de-fundo-do-item-da-configuracao: rgba(187, 127, 243, 1);\n --cor-do-texto-do-titulo-do-item-da-configuracao: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-do-texto-da-descricao-do-item-da-configuracao: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-do-modo-da-conexao-do-item-da-configuracao: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n /* CHECKUSER PRINCIPAL */\n --cor-de-fundo-do-container-do-checkuser-principal: rgba(\n 161,\n 42,\n 246,\n 0.8\n );\n --cor-de-fundo-do-header-do-container-do-checkuser-principal: rgba(\n 187,\n 127,\n 243,\n 1\n );\n --cor-do-icone-do-header-do-container-do-checkuser-principal: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n --cor-da-borda-do-icone-de-sucesso: rgba(255, 255, 255, 1);\n --cor-do-icone-de-sucesso: rgba(255, 255, 255, 1);\n\n --cor-de-fundo-da-lista-de-dados-de-login: transparent;\n --cor-de-fundo-dos-dados-de-login: rgba(187, 127, 243, 1);\n --cor-dos-icones-dos-dados-de-login: rgba(255, 255, 255, 1);\n --cor-dos-textos-dos-dados-de-login: rgba(255, 255, 255, 1);\n\n /* CONTAINER DE CARREGAMENTO */\n --cor-de-fundo-do-container-de-carregamento: rgba(161, 42, 246, 0.8);\n --cor-de-fundo-do-header-do-container-de-carregamento: rgba(\n 187,\n 127,\n 243,\n 1\n );\n --cor-do-icone-do-header-do-container-de-carregamento: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n /* CONTAINER DE PERFIL DO USUÁRIO */\n --cor-de-fundo-do-container-do-perfil-do-usuario: rgba(\n 161,\n 42,\n 246,\n 0.8\n );\n --cor-de-fundo-do-header-do-container-do-perfil-do-usuario: transparent;\n --cor-da-borda-do-header-do-container-do-perfil-do-usuario: rgba(\n 187,\n 127,\n 243,\n 1\n );\n\n --cor-de-fundo-da-lista-do-container-do-perfil-do-usuario: transparent;\n --cor-de-fundo-dos-items-do-container-do-perfil-do-usuario: rgba(\n 187,\n 127,\n 243,\n 1\n );\n --cor-de-fundo-dos-icones-do-container-do-perfil-do-usuario: rgba(\n 187,\n 127,\n 243,\n 1\n );\n\n --cor-da-borda-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-do-icone-de-dentro-do-close-do-container-do-perfil-do-usuario: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-do-titulo-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-da-descricao-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n --cor-de-fundo-dos-termos-do-container-do-perfil-do-usuario: rgba(\n 11,\n 26,\n 59,\n 0.5\n );\n\n /* CONTAINER DE FERRAMENTAS */\n --cor-da-borda-do-titulo-do-container-de-ferramentas: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-do-texto-do-titulo-do-container-de-ferramentas: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n --cor-da-borda-dos-botoes-do-container-de-ferramentas: #cc60ff;\n --cor-de-fundo-dos-botoes-do-container-de-ferramentas: rgba(\n 161,\n 42,\n 246,\n 0.5\n );\n --cor-da-sombra-dos-botoes-do-container-de-ferramentas: rgba(\n 0,\n 0,\n 0,\n 0.25\n );\n --cor-dos-icones-dos-botoes-do-container-de-ferramentas: rgba(\n 255,\n 255,\n 255,\n 1\n );\n --cor-dos-textos-dos-botoes-do-container-de-ferramentas: rgba(\n 255,\n 255,\n 255,\n 1\n );\n\n /* MODAL SPEEDTEST */\n --cor-do-header-do-modal-do-speedtest: rgba(187, 127, 243, 1);\n --cor-de-fundo-do-modal-do-speedtest: rgba(187, 127, 243, 1);\n --cor-do-icone-do-header-do-modal-do-speedtest: rgba(255, 255, 255, 1);\n\n /* MODAL ERROR */\n --cor-do-header-do-modal-de-error: rgba(158, 36, 36, 0.8);\n --cor-de-fundo-do-modal-de-error: rgba(53, 46, 57, 0.9);\n --cor-do-icone-do-header-do-modal-de-error: rgba(255, 255, 255, 1);\n\n /* MODAL LOGS */\n --cor-do-header-do-modal-de-logs: rgba(187, 127, 243, 1);\n --cor-de-fundo-do-modal-de-logs: rgba(53, 46, 57, 0.9);\n --cor-do-texto-do-registro-do-modal-de-logs: rgba(255, 255, 255, 1);\n }\n\n * {\n margin: 0;\n padding: 0;\n\n box-sizing: border-box;\n }\n\n html,\n body,\n main {\n width: 100%;\n height: 100%;\n }\n\n body {\n background: var(--imagem-de-fundo);\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n }\n\n main {\n max-width: 500px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n\n margin: auto;\n\n position: relative;\n\n overflow: hidden;\n }\n\n main section.vpnStatus {\n width: auto;\n height: 40px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n\n margin-top: 5%;\n padding: 0px 10px;\n\n border-radius: 20px;\n\n background: var(--cor-de-fundo-do-container-de-status-da-vpn);\n }\n\n main section.vpnStatus svg {\n color: var(--cor-do-icone-do-container-de-status-da-vpn);\n }\n\n main section.vpnStatus span {\n color: var(--cor-do-texto-do-container-de-status-da-vpn);\n }\n\n section.local-ip {\n width: auto;\n height: 40px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n\n margin-top: 5%;\n padding: 0px 10px;\n\n border-radius: 20px;\n\n background: var(--cor-de-fundo-do-container-de-status-da-vpn);\n }\n\n section.local-ip svg {\n color: var(--cor-do-icone-do-container-de-status-da-vpn);\n }\n\n section.local-ip span {\n text-align: center;\n color: var(--cor-do-texto-do-container-de-status-da-vpn);\n }\n\n main section.home {\n width: 100%;\n max-width: 500px;\n height: auto;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n\n position: relative;\n\n padding: 0px 10px;\n }\n\n main section.home header {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n main section.home header img.logo {\n width: 60%;\n max-width: 100px;\n height: auto;\n }\n\n main section.home div.carrierSelector {\n width: 100%;\n height: 50px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 20px;\n\n padding: 0px 10px;\n\n border: 1px solid var(--borda-do-container-de-selecionar-operadora);\n border-radius: 10px;\n\n overflow: hidden;\n\n background: var(--cor-de-fundo-do-campo-de-selecionar-operadora);\n }\n\n main section.home div.carrierSelector svg {\n width: 20px;\n height: 20px;\n\n color: var(--cor-do-icone-de-chip-do-campo-de-selecionar-operadora);\n }\n\n main section.home div.carrierSelector span {\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n color: var(--cor-do-texto-do-campo-de-selecionar-operadora);\n\n overflow: none;\n }\n\n main section.home div.container {\n width: 100%;\n height: auto;\n min-height: 200px;\n max-height: 240px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n border: 1px solid var(--borda-do-container-principal);\n border-radius: 10px;\n\n background: var(--cor-de-fundo-do-container-principal);\n }\n\n main section.home div.container header {\n width: 100%;\n height: 50px;\n\n display: flex;\n align-items: center;\n\n padding: 0px 5px;\n\n border-bottom: 1px solid var(--borda-do-header-do-container-principal);\n\n overflow: hidden;\n }\n\n main section.home div.container form {\n width: 100%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n\n padding: 10px;\n }\n\n main section.home div.container form div {\n width: 90%;\n height: 40px;\n\n display: flex;\n align-items: center;\n\n position: relative;\n\n padding: 0px 0px 0px 5px;\n\n border-radius: 20px;\n border: 1px solid var(--cor-da-borda-dos-input-do-container-principal);\n\n overflow: hidden;\n\n background: var(--cor-de-fundo-dos-input-do-container-principal);\n }\n\n main section.home div.container form div#container-uuid-input {\n display: none;\n }\n\n main section.home div.container form div svg {\n width: 40px;\n height: 40px;\n\n padding: 10px;\n\n color: var(--cor-dos-icones-dos-input-do-container-principal);\n }\n\n main section.home div.container form div input {\n width: calc(100% - 40px);\n height: 100%;\n\n border: 0;\n outline: none;\n\n color: var(--cor-do-texto-dos-input-do-container-principal);\n\n background: transparent;\n }\n\n main section.home div.container form div svg.eye {\n position: absolute;\n right: 0;\n }\n\n .eye-none {\n display: none;\n }\n .eye-block {\n display: block;\n }\n\n main section.home div.container form div input::placeholder {\n color: var(\n --cor-do-texto-dos-input-do-container-principal-quando-nao-ta-selecionado\n );\n }\n\n main section.home div.container form div.buttons {\n height: 40px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n\n border: 0;\n padding-left: 3px;\n\n background: transparent;\n }\n\n main section.home div.container form div button#startStopVpn {\n flex: 1;\n height: 40px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n\n padding: 10px;\n\n border: 1px solid var(--cor-da-borda-do-botao-do-container-principal);\n border-radius: 20px;\n\n background: var(--cor-de-fundo-do-botao-do-container-principal);\n }\n\n main section.home div.container form div button#buttonLogs {\n width: 40px;\n height: 40px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: 1px solid var(--cor-da-borda-do-botao-do-container-principal);\n border-radius: 50%;\n\n background: var(--cor-de-fundo-do-botao-do-container-principal);\n }\n\n main section.home div.container form button svg {\n color: var(--cor-do-icone-do-botao-do-container-principal);\n }\n\n main section.home div.container form button span {\n color: var(--cor-do-texto-do-botao-do-container-principal);\n }\n\n main section.controls {\n width: 90%;\n height: 50px;\n\n display: flex;\n align-items: center;\n gap: 15px;\n\n position: absolute;\n bottom: 10px;\n z-index: 999;\n\n padding: 0px 10px;\n\n border: 1px solid var(--cor-da-borda-do-container-de-controles);\n border-radius: 25px;\n\n background: var(--cor-de-fundo-do-container-de-controles);\n }\n\n main section.controls button {\n width: 40px;\n height: 40px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n border: 0px solid var(--cor-da-borda-do-botao-do-container-de-controles);\n border-radius: 50%;\n\n background: var(--cor-de-fundo-do-botao-do-container-de-controles);\n }\n\n main section.controls button:nth-child(2) {\n margin-right: auto;\n }\n\n main section.controls button svg {\n color: var(--cor-do-icone-do-botao-do-container-de-controles);\n }\n\n main section.controls button#backToHome {\n width: 60px;\n height: 60px;\n\n margin-left: auto;\n margin-right: auto;\n\n position: absolute;\n top: -50%;\n left: 0;\n right: 0;\n\n border: 1px solid\n var(--cor-da-borda-do-botao-do-meio-do-container-de-controles);\n\n background: var(\n --cor-de-fundo-do-botao-do-meio-do-container-de-controles\n );\n }\n\n main section.controls button#backToHome::before {\n width: 60px;\n height: 60px;\n\n content: \"\";\n\n position: absolute;\n top: -6px;\n left: -6px;\n right: 0;\n bottom: 0px;\n z-index: 2;\n\n margin-left: auto;\n margin-right: auto;\n\n border: 5px solid\n var(--cor-da-borda-do-botao-do-meio-do-container-de-controles);\n border-radius: 50%;\n }\n\n main section.listOfCarriers {\n width: calc(100% - 10px);\n height: 70%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n position: absolute;\n top: 13%;\n\n border: 1px solid\n var(--cor-da-borda-do-container-da-lista-de-configuracoes);\n border-radius: 10px;\n\n overflow-y: auto;\n\n opacity: 0;\n transform: scale(0);\n transform-origin: center;\n transition: all 0.3s ease 0.1s;\n\n background: var(--cor-de-fundo-do-container-da-lista-de-configuracoes);\n backdrop-filter: blur(10px);\n }\n\n main section.listOfCarriers.active {\n opacity: 1;\n transform: scale(1);\n }\n\n main section.listOfCarriers .header-list {\n width: 100%;\n height: 50px;\n\n display: flex;\n align-items: center;\n\n padding: 10px;\n\n border: 1px solid var();\n\n background: var(\n --cor-de-fundo-do-header-do-container-da-lista-de-configuracoes\n );\n }\n\n main section.listOfCarriers header svg.bi-x-lg {\n margin: 0px 0px 0px auto;\n\n color: var(\n --cor-do-icone-de-fechar-do-header-do-container-da-lista-de-configuracoes\n );\n }\n\n main section.listOfCarriers section.list-container {\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n gap: 20px;\n\n margin: 10px 0px;\n padding: 0px 10px;\n\n overflow-y: auto;\n\n background: var(\n --cor-de-fundo-do-container-da-lista-de-categorias-de-configuracoes\n );\n }\n\n main section.listOfCarriers section.list-container div.category {\n width: 100%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n border-radius: 5px;\n\n background: var(--cor-de-fundo-da-categoria);\n }\n\n main section.listOfCarriers section.list-container div.category header {\n width: 100%;\n height: 50px;\n min-height: 50px;\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n padding: 0px 5px;\n\n border-bottom: 1px solid var(--cor-da-borda-do-header-da-categoria);\n border-radius: 5px;\n\n background: var(--cor-de-fundo-do-header-da-categoria);\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n header\n h1 {\n color: var(--cor-do-text-do-header-da-categoria);\n font-weight: 400;\n font-size: 1rem;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n header\n svg {\n color: var(--cor-do-icone-do-header-da-categoria);\n transition: all 0.3s ease 0.3s;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs {\n width: 100%;\n max-height: 0px;\n\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n overflow-y: auto;\n overflow-x: hidden;\n\n background: var(--cor-de-fundo-da-lista-de-configuracoes);\n\n transition: all 0.3s ease 0.3s;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li {\n width: 100%;\n height: 60px;\n\n display: flex;\n align-items: center;\n gap: 3px;\n\n padding: 5px;\n\n border-radius: 5px;\n\n background: var(--cor-de-fundo-do-item-da-configuracao);\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li\n div.logo {\n width: auto;\n height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li\n div.logo\n img {\n width: 40px;\n height: auto;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li\n div.description {\n width: 150px;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n justify-items: center;\n align-content: center;\n\n overflow: hidden;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li\n div.description\n h1 {\n width: 100%;\n height: 30px;\n\n display: flex;\n justify-content: center;\n\n color: var(--cor-do-texto-do-titulo-do-item-da-configuracao);\n font-size: 0.6rem;\n font-weight: 400;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li\n div.description\n p {\n width: 100%;\n height: 30px;\n\n display: flex;\n justify-content: flex-end;\n align-items: end;\n\n color: var(--cor-do-texto-da-descricao-do-item-da-configuracao);\n font-size: 0.6rem;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li\n div.mode {\n width: 50px;\n height: 100%;\n\n margin-left: auto;\n\n display: flex;\n justify-content: flex-end;\n align-items: end;\n }\n\n main\n section.listOfCarriers\n section.list-container\n div.category\n ul.configs\n li\n div.mode\n p {\n color: var(--cor-do-modo-da-conexao-do-item-da-configuracao);\n font-size: 0.6rem;\n }\n\n section.main-checkuser {\n width: 95%;\n height: 70%;\n\n position: absolute;\n top: 8%;\n\n margin: auto;\n\n border-radius: 5px;\n\n overflow: hidden;\n\n background: var(--cor-de-fundo-do-container-do-checkuser-principal);\n\n opacity: 0;\n transform: scale(0);\n transform-origin: center;\n transition: all 0.3s ease 0.1s;\n }\n\n section.main-checkuser.show {\n opacity: 1;\n transform: scale(1);\n }\n\n @media (min-width: 320px) {\n section.main-checkuser {\n height: 55%;\n\n top: 50%;\n bottom: 50%;\n }\n }\n\n section.main-checkuser header {\n width: 100%;\n height: 10%;\n max-height: 50px;\n\n display: flex;\n align-items: center;\n justify-content: flex-end;\n\n padding: 10px;\n\n background: var(\n --cor-de-fundo-do-header-do-container-do-checkuser-principal\n );\n }\n\n section.main-checkuser header svg {\n color: var(\n --cor-do-icone-do-header-do-container-do-checkuser-principal\n );\n }\n\n section.main-checkuser section.container-content-checkuser {\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n section.main-checkuser\n section.container-content-checkuser\n div.connected-success {\n width: 50%;\n max-width: 100px;\n height: 50%;\n max-height: 100px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-top: 20px;\n margin-bottom: 20px;\n\n border: 1px solid var(--cor-da-borda-do-icone-de-sucesso);\n border-radius: 50%;\n\n animation: pulse 1s infinite;\n }\n\n section.main-checkuser\n section.container-content-checkuser\n div.connected-success\n svg {\n width: 50%;\n height: 50%;\n\n color: var(--cor-do-icone-de-sucesso);\n }\n\n @keyframes pulse {\n 0% {\n box-shadow: 0 0 0 0 rgba(0, 255, 0, 0.7);\n }\n 70% {\n box-shadow: 0 0 0 20px rgba(0, 255, 0, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(0, 255, 0, 0);\n }\n }\n\n section.main-checkuser section.container-content-checkuser ul {\n width: 100%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n gap: 10px;\n\n padding: 0px 10px;\n\n list-style: none;\n }\n\n section.main-checkuser section.container-content-checkuser ul li {\n width: 100%;\n height: 50px;\n\n display: flex;\n align-items: center;\n\n padding: 0px 10px;\n\n border-radius: 5px;\n\n background: var(--cor-de-fundo-dos-dados-de-login);\n }\n\n section.main-checkuser section.container-content-checkuser ul li svg {\n margin-right: 10px;\n\n color: var(--cor-dos-icones-dos-dados-de-login);\n }\n\n section.main-checkuser section.container-content-checkuser ul li span {\n color: var(--cor-dos-textos-dos-dados-de-login);\n }\n\n section.loading {\n width: 95%;\n height: auto;\n\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n transform: translateY(-50%);\n\n margin: auto;\n\n border-radius: 5px;\n\n overflow-x: hidden;\n\n opacity: 0;\n transform: scale(0);\n transform-origin: center;\n transition: all 0.3s ease 0.1s;\n\n background: var(--cor-de-fundo-do-container-de-carregamento);\n }\n\n section.loading.show {\n opacity: 1;\n transform: scale(1);\n }\n\n section.loading header {\n width: 100%;\n height: 10%;\n max-height: 50px;\n\n display: flex;\n align-items: center;\n justify-content: flex-end;\n\n padding: 10px;\n\n background: var(--cor-de-fundo-do-header-do-container-de-carregamento);\n }\n\n section.loading header svg {\n color: var(--cor-do-icone-do-header-do-container-de-carregamento);\n }\n\n section.loading div.loading-container {\n width: 100px;\n height: 100px;\n\n margin: 30px auto;\n\n border: 4px solid #ffffff;\n border-top: 4px solid transparent;\n border-radius: 50%;\n\n animation: spin 0.5s linear infinite;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n section.profile-checkuser {\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n position: absolute;\n top: 0;\n left: 100%;\n right: 0;\n bottom: 0;\n\n background: var(--imagem-de-fundo);\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n\n transition: transform 0.5s ease-in-out;\n }\n\n section.profile-checkuser.show {\n transform: translateX(-100%);\n }\n\n section.profile-checkuser header,\n section.profile-checkuser section.terms header {\n width: 95%;\n height: 40px;\n\n display: flex;\n align-items: center;\n\n margin: 0 auto;\n\n background: var(\n --cor-de-fundo-do-header-do-container-do-perfil-do-usuario\n );\n }\n\n section.profile-checkuser header h1,\n section.profile-checkuser section.terms header h1 {\n width: 95%;\n\n color: #ffffff;\n font-weight: 400;\n font-size: 1rem;\n text-align: center;\n\n margin: 0 auto;\n\n border-bottom: 4px solid\n var(--cor-da-borda-do-header-do-container-do-perfil-do-usuario);\n }\n\n section.profile-checkuser div.not-view-user {\n display: none;\n flex-direction: column;\n align-items: center;\n gap: 15px;\n\n padding: 15px 10px;\n }\n\n section.profile-checkuser div.not-view-user.show {\n display: flex;\n }\n\n section.profile-checkuser div.not-view-user div.circle {\n width: 100px;\n height: 100px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: 2px solid\n var(\n --cor-da-borda-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario\n );\n border-radius: 50%;\n }\n\n section.profile-checkuser div.not-view-user div.circle svg {\n width: 50%;\n height: 50%;\n\n color: var(\n --cor-do-icone-de-dentro-do-close-do-container-do-perfil-do-usuario\n );\n }\n\n section.profile-checkuser div.not-view-user h2 {\n width: 100%;\n\n color: var(\n --cor-do-titulo-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario\n );\n text-align: center;\n font-size: 1rem;\n }\n\n section.profile-checkuser div.not-view-user p {\n color: var(\n --cor-da-descricao-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario\n );\n text-align: center;\n font-size: 0.8rem;\n }\n\n section.profile-checkuser ul {\n width: 100%;\n height: auto;\n\n display: none;\n flex-direction: column;\n gap: 20px;\n\n list-style: none;\n\n padding: 10px;\n\n background: var(\n --cor-de-fundo-da-lista-do-container-do-perfil-do-usuario\n );\n }\n\n section.profile-checkuser ul.show {\n display: grid;\n }\n\n section.profile-checkuser ul li {\n width: 95%;\n height: 40px;\n\n display: grid;\n align-items: center;\n\n margin: 0px auto;\n\n position: relative;\n\n border-radius: 20px;\n\n background: var(\n --cor-de-fundo-dos-items-do-container-do-perfil-do-usuario\n );\n }\n\n section.profile-checkuser ul li svg {\n width: 50px;\n height: 50px;\n\n position: absolute;\n left: -10px;\n\n padding: 10px;\n\n border-radius: 50%;\n box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);\n\n color: #ffffff;\n\n background: var(\n --cor-de-fundo-dos-icones-do-container-do-perfil-do-usuario\n );\n }\n\n section.profile-checkuser ul li svg.even {\n box-shadow: -1px 1px 2px rgba(0, 0, 0, 0.2);\n position: absolute;\n left: initial;\n right: -10px;\n }\n\n section.profile-checkuser ul li svg path {\n transform: scale(0.6);\n transform-origin: center;\n }\n\n section.profile-checkuser ul li span {\n margin-left: 45px;\n\n color: #ffffff;\n font-size: 0.8rem;\n }\n\n section.profile-checkuser ul li span.even {\n margin-left: auto;\n margin-right: 45px;\n }\n\n section.profile-checkuser section.terms {\n display: flex;\n flex-direction: column;\n\n width: 100%;\n height: auto;\n margin-top: 5%;\n }\n\n section.profile-checkuser section.terms p {\n width: 95%;\n height: auto;\n max-height: 210px;\n\n margin: 0 auto;\n padding: 10px;\n\n border-radius: 5px;\n\n overflow-y: auto;\n\n color: #ffffff;\n text-align: center;\n\n background: var(\n --cor-de-fundo-dos-termos-do-container-do-perfil-do-usuario\n );\n }\n\n @media (min-height: 700px) {\n section.profile-checkuser section.terms p {\n max-height: 350px;\n }\n }\n\n section.tools {\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n position: absolute;\n top: 0;\n left: 100%;\n right: 0;\n\n background: var(--imagem-de-fundo);\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n\n transition: transform 0.5s ease-in-out;\n }\n\n section.tools.show {\n transform: translateX(-100%);\n }\n\n section.tools header {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n }\n\n section.tools header h1 {\n width: 90%;\n height: auto;\n\n padding: 10px;\n\n border-bottom: 3px solid\n var(--cor-da-borda-do-titulo-do-container-de-ferramentas);\n text-shadow: 0px 4px 4px\n var(--cor-da-sombra-dos-botoes-do-container-de-ferramentas);\n\n color: var(--cor-do-texto-do-titulo-do-container-de-ferramentas);\n font-weight: bold;\n font-size: 1rem;\n text-align: center;\n }\n\n section.tools section.container-tools {\n width: 100%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n gap: 20px;\n\n margin: 40px 0px 0px 0px;\n padding: 0px 10px;\n }\n\n section.tools section.container-tools button {\n width: 100%;\n height: 50px;\n\n display: flex;\n align-items: center;\n gap: 9.5px;\n\n padding: 0px 16px;\n\n border: 1px solid\n var(--cor-da-borda-dos-botoes-do-container-de-ferramentas);\n border-radius: 25px;\n box-shadow: 0px 4px 4px\n var(--cor-da-sombra-dos-botoes-do-container-de-ferramentas);\n\n background: var(--cor-de-fundo-dos-botoes-do-container-de-ferramentas);\n }\n\n section.tools section.container-tools button svg {\n width: 20px;\n height: 20px;\n\n color: var(--cor-dos-icones-dos-botoes-do-container-de-ferramentas);\n }\n\n section.tools section.container-tools button span {\n color: var(--cor-dos-textos-dos-botoes-do-container-de-ferramentas);\n }\n\n section.modal-speedtest,\n section.modal-error-alert {\n width: 95%;\n max-width: 450px;\n height: 50%;\n\n position: absolute;\n top: 25%;\n transform: translate(-50%, -50%);\n\n z-index: 2;\n\n display: flex;\n flex-direction: column;\n\n border-radius: 5px;\n\n overflow-x: hidden;\n\n opacity: 0;\n transform: scale(0);\n transform-origin: center;\n transition: all 0.3s ease 0.1s;\n }\n\n section.modal-speedtest.show,\n section.modal-error-alert.show,\n section.modal-logs.show {\n opacity: 1;\n transform: scale(1);\n }\n\n section.modal-speedtest header,\n section.modal-error-alert header {\n width: 100%;\n height: 40px;\n\n display: flex;\n align-items: center;\n\n padding: 0px 10px;\n }\n\n section.modal-speedtest header {\n background: var(--cor-do-header-do-modal-do-speedtest);\n }\n\n section.modal-speedtest header h1,\n section.modal-error-alert header h1 {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n\n color: #ffffff;\n font-family: \"Roboto\", sans-serif;\n font-weight: bolder;\n }\n\n section.modal-speedtest header svg,\n section.modal-error-alert header svg {\n margin-left: auto;\n\n color: var(--cor-do-icone-do-header-do-modal-do-speedtest);\n }\n\n section.modal-speedtest section,\n section.modal-error-alert section {\n width: 100%;\n height: calc(100% - 40px);\n\n position: relative;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n\n section.modal-speedtest section {\n background: var(--cor-de-fundo-do-modal-do-speedtest);\n }\n\n section.modal-speedtest section iframe {\n width: 100%;\n height: 100%;\n\n border: 0;\n\n overflow: hidden;\n }\n\n section.modal-error-alert header {\n background: var(--cor-do-header-do-modal-de-error);\n }\n\n section.modal-error-alert section {\n background: var(--cor-de-fundo-do-modal-de-error);\n }\n\n section.modal-error-alert section h1 {\n padding: 0px 10px;\n color: #ffffff;\n }\n\n section.modal-error-alert section p {\n margin-top: 10px;\n padding: 0px 10px;\n\n color: #ffffff;\n text-align: center;\n }\n\n section.modal-logs {\n width: 95%;\n max-width: 450px;\n height: auto;\n\n position: absolute;\n top: 15%;\n transform: translate(-50%, -50%);\n\n z-index: 2;\n\n display: flex;\n flex-direction: column;\n\n border-radius: 5px;\n\n overflow-x: hidden;\n\n opacity: 0;\n transform: scale(0);\n transform-origin: center;\n transition: all 0.3s ease 0.1s;\n }\n\n section.modal-logs header {\n width: 100%;\n height: 40px;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n padding: 0px 10px;\n\n background: var(--cor-de-fundo-do-modal-de-logs);\n }\n\n section.modal-logs header h1 {\n font-size: 14px;\n color: #ffffff;\n }\n\n section.modal-logs p {\n height: 100%;\n /* min-height: 200px;\n max-height: 400px; */\n\n padding: 10px;\n\n font-size: 12px;\n text-align: left;\n color: var(--cor-do-texto-do-registro-do-modal-de-logs);\n\n overflow-y: auto;\n\n background: var(--cor-de-fundo-do-modal-de-logs);\n }\n\n section.modal-logs section {\n width: 100%;\n height: auto;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n padding: 10px 10px;\n\n border-top: 3px solid rgba(161, 161, 161, 1);\n\n background: var(--cor-de-fundo-do-modal-de-logs);\n }\n\n section.modal-logs section button {\n width: 45%;\n min-width: 115px;\n height: 40px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n border: 1px solid rgba(97, 97, 97, 1);\n border-radius: 3px;\n\n color: #ffffff;\n\n background: rgba(46, 46, 46, 1);\n }\n\n section.renew-window {\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n position: absolute;\n top: 0;\n left: -100%;\n right: 100%;\n\n background: var(--imagem-de-fundo);\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n\n transition: transform 0.5s ease-in-out;\n }\n\n section.renew-window.show {\n transform: translateX(100%);\n }\n\n section.renew-window header {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n }\n\n section.renew-window header h1 {\n width: 90%;\n height: auto;\n\n padding: 10px;\n\n border-bottom: 3px solid\n var(--cor-da-borda-do-titulo-do-container-de-ferramentas);\n text-shadow: 0px 4px 4px\n var(--cor-da-sombra-dos-botoes-do-container-de-ferramentas);\n\n color: var(--cor-do-texto-do-titulo-do-container-de-ferramentas);\n font-weight: bold;\n font-size: 1rem;\n text-align: center;\n }\n\n section.renew-window section {\n width: 100%;\n height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n section.renew-window section div {\n width: 90%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n padding: 10px;\n margin: 0px 0px 40px 0px;\n\n border: 1px solid rgba(219, 142, 255, 1);\n border-radius: 37px;\n\n background: rgba(161, 42, 246, 0.5);\n }\n\n section.renew-window section div h1 {\n color: #ffffff;\n }\n\n section.renew-window section div p {\n width: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-top: 15%;\n\n color: #ffffff;\n text-align: center;\n }\n </style>\n </head>\n <body>\n <main>\n <section class=\"home\">\n <header>\n <img\n class=\"logo\"\n src=\"https://i.ibb.co/bm6DDpZ/DTkk2-ebo6.png\"\n alt=\"logo\"\n />\n </header>\n\n <div class=\"carrierSelector\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sd-card\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M6.25 3.5a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2z\"\n />\n <path\n fill-rule=\"evenodd\"\n d=\"M5.914 0H12.5A1.5 1.5 0 0 1 14 1.5v13a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 14.5V3.914c0-.398.158-.78.44-1.06L4.853.439A1.5 1.5 0 0 1 5.914 0zM13 1.5a.5.5 0 0 0-.5-.5H5.914a.5.5 0 0 0-.353.146L3.146 3.561A.5.5 0 0 0 3 3.914V14.5a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-13z\"\n />\n </svg>\n\n <span>Selecione uma operadora</span>\n </div>\n\n <div class=\"container\">\n <form>\n <div id=\"container-user-input\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-person\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z\"\n />\n </svg>\n\n <input id=\"inputUser\" type=\"text\" placeholder=\"Usuário\" />\n </div>\n\n <div id=\"container-password-input\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-key\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M0 8a4 4 0 0 1 7.465-2H14a.5.5 0 0 1 .354.146l1.5 1.5a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0L13 9.207l-.646.647a.5.5 0 0 1-.708 0L11 9.207l-.646.647a.5.5 0 0 1-.708 0L9 9.207l-.646.647A.5.5 0 0 1 8 10h-.535A4 4 0 0 1 0 8zm4-3a3 3 0 1 0 2.712 4.285A.5.5 0 0 1 7.163 9h.63l.853-.854a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.793-.793-1-1h-6.63a.5.5 0 0 1-.451-.285A3 3 0 0 0 4 5z\"\n />\n <path d=\"M4 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\" />\n </svg>\n\n <input id=\"inputPassword\" type=\"password\" placeholder=\"Senha\" />\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-eye-slash eye-hidden\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z\"\n />\n <path\n d=\"M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z\"\n />\n <path\n d=\"M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708z\"\n />\n </svg>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-eye eye-show eye-none\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z\"\n />\n <path\n d=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z\"\n />\n </svg>\n </div>\n\n <div id=\"container-uuid-input\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-fingerprint\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8.06 6.5a.5.5 0 0 1 .5.5v.776a11.5 11.5 0 0 1-.552 3.519l-1.331 4.14a.5.5 0 0 1-.952-.305l1.33-4.141a10.5 10.5 0 0 0 .504-3.213V7a.5.5 0 0 1 .5-.5Z\"\n />\n <path\n d=\"M6.06 7a2 2 0 1 1 4 0 .5.5 0 1 1-1 0 1 1 0 1 0-2 0v.332c0 .409-.022.816-.066 1.221A.5.5 0 0 1 6 8.447c.04-.37.06-.742.06-1.115V7Zm3.509 1a.5.5 0 0 1 .487.513 11.5 11.5 0 0 1-.587 3.339l-1.266 3.8a.5.5 0 0 1-.949-.317l1.267-3.8a10.5 10.5 0 0 0 .535-3.048A.5.5 0 0 1 9.569 8Zm-3.356 2.115a.5.5 0 0 1 .33.626L5.24 14.939a.5.5 0 1 1-.955-.296l1.303-4.199a.5.5 0 0 1 .625-.329Z\"\n />\n <path\n d=\"M4.759 5.833A3.501 3.501 0 0 1 11.559 7a.5.5 0 0 1-1 0 2.5 2.5 0 0 0-4.857-.833.5.5 0 1 1-.943-.334Zm.3 1.67a.5.5 0 0 1 .449.546 10.72 10.72 0 0 1-.4 2.031l-1.222 4.072a.5.5 0 1 1-.958-.287L4.15 9.793a9.72 9.72 0 0 0 .363-1.842.5.5 0 0 1 .546-.449Zm6 .647a.5.5 0 0 1 .5.5c0 1.28-.213 2.552-.632 3.762l-1.09 3.145a.5.5 0 0 1-.944-.327l1.089-3.145c.382-1.105.578-2.266.578-3.435a.5.5 0 0 1 .5-.5Z\"\n />\n <path\n d=\"M3.902 4.222a4.996 4.996 0 0 1 5.202-2.113.5.5 0 0 1-.208.979 3.996 3.996 0 0 0-4.163 1.69.5.5 0 0 1-.831-.556Zm6.72-.955a.5.5 0 0 1 .705-.052A4.99 4.99 0 0 1 13.059 7v1.5a.5.5 0 1 1-1 0V7a3.99 3.99 0 0 0-1.386-3.028.5.5 0 0 1-.051-.705ZM3.68 5.842a.5.5 0 0 1 .422.568c-.029.192-.044.39-.044.59 0 .71-.1 1.417-.298 2.1l-1.14 3.923a.5.5 0 1 1-.96-.279L2.8 8.821A6.531 6.531 0 0 0 3.058 7c0-.25.019-.496.054-.736a.5.5 0 0 1 .568-.422Zm8.882 3.66a.5.5 0 0 1 .456.54c-.084 1-.298 1.986-.64 2.934l-.744 2.068a.5.5 0 0 1-.941-.338l.745-2.07a10.51 10.51 0 0 0 .584-2.678.5.5 0 0 1 .54-.456Z\"\n />\n <path\n d=\"M4.81 1.37A6.5 6.5 0 0 1 14.56 7a.5.5 0 1 1-1 0 5.5 5.5 0 0 0-8.25-4.765.5.5 0 0 1-.5-.865Zm-.89 1.257a.5.5 0 0 1 .04.706A5.478 5.478 0 0 0 2.56 7a.5.5 0 0 1-1 0c0-1.664.626-3.184 1.655-4.333a.5.5 0 0 1 .706-.04ZM1.915 8.02a.5.5 0 0 1 .346.616l-.779 2.767a.5.5 0 1 1-.962-.27l.778-2.767a.5.5 0 0 1 .617-.346Zm12.15.481a.5.5 0 0 1 .49.51c-.03 1.499-.161 3.025-.727 4.533l-.07.187a.5.5 0 0 1-.936-.351l.07-.187c.506-1.35.634-2.74.663-4.202a.5.5 0 0 1 .51-.49Z\"\n />\n </svg>\n\n <input type=\"password\" placeholder=\"UUID\" id=\"uuid-input\" />\n </div>\n\n <div class=\"buttons\">\n <button id=\"startStopVpn\" type=\"button\">\n <span id=\"startStopVpnButtonValue\">Conectar</span>\n </button>\n\n <button id=\"buttonLogs\" type=\"button\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-file-earmark-text\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5z\"\n />\n <path\n d=\"M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5L9.5 0zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z\"\n />\n </svg>\n </button>\n </div>\n </form>\n </div>\n </section>\n\n <section class=\"vpnStatus\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-plug\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M6 0a.5.5 0 0 1 .5.5V3h3V.5a.5.5 0 0 1 1 0V3h1a.5.5 0 0 1 .5.5v3A3.5 3.5 0 0 1 8.5 10c-.002.434-.01.845-.04 1.22-.041.514-.126 1.003-.317 1.424a2.083 2.083 0 0 1-.97 1.028C6.725 13.9 6.169 14 5.5 14c-.998 0-1.61.33-1.974.718A1.922 1.922 0 0 0 3 16H2c0-.616.232-1.367.797-1.968C3.374 13.42 4.261 13 5.5 13c.581 0 .962-.088 1.218-.219.241-.123.4-.3.514-.55.121-.266.193-.621.23-1.09.027-.34.035-.718.037-1.141A3.5 3.5 0 0 1 4 6.5v-3a.5.5 0 0 1 .5-.5h1V.5A.5.5 0 0 1 6 0zM5 4v2.5A2.5 2.5 0 0 0 7.5 9h1A2.5 2.5 0 0 0 11 6.5V4H5z\"\n />\n </svg>\n\n <span>Desconectado</span>\n </section>\n\n <section class=\"local-ip\">\n <span>TIM: 192.168.0.1</span>\n </section>\n\n <section class=\"listOfCarriers\">\n <header class=\"header-list\">\n <svg\n id=\"close-modal-configs\"\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 <path\n d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.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 class=\"list-container\"></section>\n </section>\n\n <section class=\"loading\">\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 <path\n d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.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 <div class=\"loading-container\"></div>\n </section>\n\n <section class=\"main-checkuser\">\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 <path\n d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.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 class=\"container-content-checkuser\">\n <div class=\"connected-success\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-check2\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z\"\n />\n </svg>\n </div>\n\n <ul></ul>\n </section>\n </section>\n\n <section class=\"profile-checkuser\">\n <header>\n <h1>INFORMAÇÕES DO PERFIL</h1>\n </header>\n\n <div id=\"not-profile-user\" class=\"not-view-user\">\n <div class=\"circle\">\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 <path\n d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.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 </div>\n\n <h2>NÃO FOI POSSÍVEL CARREGAR AS INFORMAÇÕES DO PERFIL</h2>\n <p>\n Tente conectar o seu usuário antes de verificar as informações do\n seu perfil\n </p>\n </div>\n\n <ul id=\"list-profile\">\n <li>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-person\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z\"\n />\n </svg>\n\n <span>NOME DE USUÁRIO: fulano</span>\n </li>\n\n <li>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-calendar3-week even\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zM1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857V3.857z\"\n />\n <path\n d=\"M12 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm2-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"\n />\n </svg>\n\n <span class=\"even\">EXPIRAÇÃO: dd/mm/aaaa</span>\n </li>\n\n <li>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-hourglass-split\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1h-11zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2h-7zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48V8.35zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z\"\n />\n </svg>\n\n <span>DIAS RESTANTES: 99</span>\n </li>\n\n <li>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-phone-flip even\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M11 1H5a1 1 0 0 0-1 1v6a.5.5 0 0 1-1 0V2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a.5.5 0 0 1-1 0V2a1 1 0 0 0-1-1Zm1 13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-2a.5.5 0 0 0-1 0v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-2a.5.5 0 0 0-1 0v2ZM1.713 7.954a.5.5 0 1 0-.419-.908c-.347.16-.654.348-.882.57C.184 7.842 0 8.139 0 8.5c0 .546.408.94.823 1.201.44.278 1.043.51 1.745.696C3.978 10.773 5.898 11 8 11c.099 0 .197 0 .294-.002l-1.148 1.148a.5.5 0 0 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2a.5.5 0 1 0-.708.708l1.145 1.144L8 10c-2.04 0-3.87-.221-5.174-.569-.656-.175-1.151-.374-1.47-.575C1.012 8.639 1 8.506 1 8.5c0-.003 0-.059.112-.17.115-.112.31-.242.6-.376Zm12.993-.908a.5.5 0 0 0-.419.908c.292.134.486.264.6.377.113.11.113.166.113.169 0 .003 0 .065-.13.187-.132.122-.352.26-.677.4-.645.28-1.596.523-2.763.687a.5.5 0 0 0 .14.99c1.212-.17 2.26-.43 3.02-.758.38-.164.713-.357.96-.587.246-.229.45-.537.45-.919 0-.362-.184-.66-.412-.883-.228-.223-.535-.411-.882-.571ZM7.5 2a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1Z\"\n />\n </svg>\n\n <span class=\"even\">CONECTADOS: 01/03</span>\n </li>\n </ul>\n\n <section class=\"terms\">\n <header>\n <h1>TERMOS DE USO</h1>\n </header>\n\n <p>\n Ao comprar o acesso você aceita todos os nossos termos!\n <br />\n --------------------------------------------------------------\n <br />\n <br />\n 1- Todo e qualquer conteúdo acessado através do aplicativo é de\n responsabilidade do usuário! caso o usuário aproveitar-se de nosso\n vpn para cometer qualquer ato ilegal, será de total responsabilidade\n do usuário!\n <br />\n <br />\n 2- Em casos de falha na conexão entre em contato com ovendedor que\n lhe forneceu o acesso ao aplicativo!\n <br />\n <br />\n 3- NÃO realizamos a prática de REEMBOLSO, então realize o teste\n grátis antes de comprar!\n <br />\n <br />\n 4- Caso ocorra queda no sinal da operadora os dias offline serão\n adicionados de bônus. Peça esses dias ao seu vendedor! (Somente\n quedas geral, quedas de forma especifica, não nos\n responsabilizamos!)\n <br />\n <br />\n 5- Caso houver alguma falhas de conexão por negligencia do usuário\n em não saber configurar o aplicativo ou falha na rede móvel do\n usuário não disponibilizamos dias bônus para estes casos. Porém\n disponibilizamos suporte especializado para ajudar a solucionar\n esses problemas. Então em caso de falha de conexão entre em contato\n com seu vendedor!\n <br />\n <br />\n 6- Método de pagamento é pré-pago, ou seja você paga para usar. Caso\n desejar cancelar basta não renovar no próximo mês, que seu login\n será deletado automaticamente. Não temos termo de fidelidade em\n nossos serviços!\n <br />\n <br />\n 7- Não temos vínculos algum com a operadora do seu chip. Vendemos\n apenas a conexão SSH, que pode te liberar internet ilimitada através\n da conexão realizada no aplicativo!\n <br />\n <br />\n 8- Nosso produto é a conexão SSH, não vendemos internet, caso a\n operadora que você está utilizando não estiver conectando, você pode\n utilizar outra opção de operadora para realizar a conexão!\n <br />\n <br />\n 9- Ao utilizar nossa vpn você navegara de forma anônima na internet,\n dito isso você concorda em não acessar qualquer conteúdo ilegal ou\n não permitidos em seu estado! Atenciosamente XCLOUD_SSH\n <br />\n --------------------------------------------------------------\n </p>\n </section>\n </section>\n\n <section class=\"tools\">\n <header>\n <h1>FERRAMENTAS</h1>\n </header>\n\n <section class=\"container-tools\">\n <button id=\"config-apn\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-tools\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M1 0 0 1l2.2 3.081a1 1 0 0 0 .815.419h.07a1 1 0 0 1 .708.293l2.675 2.675-2.617 2.654A3.003 3.003 0 0 0 0 13a3 3 0 1 0 5.878-.851l2.654-2.617.968.968-.305.914a1 1 0 0 0 .242 1.023l3.27 3.27a.997.997 0 0 0 1.414 0l1.586-1.586a.997.997 0 0 0 0-1.414l-3.27-3.27a1 1 0 0 0-1.023-.242L10.5 9.5l-.96-.96 2.68-2.643A3.005 3.005 0 0 0 16 3c0-.269-.035-.53-.102-.777l-2.14 2.141L12 4l-.364-1.757L13.777.102a3 3 0 0 0-3.675 3.68L7.462 6.46 4.793 3.793a1 1 0 0 1-.293-.707v-.071a1 1 0 0 0-.419-.814L1 0Zm9.646 10.646a.5.5 0 0 1 .708 0l2.914 2.915a.5.5 0 0 1-.707.707l-2.915-2.914a.5.5 0 0 1 0-.708ZM3 11l.471.242.529.026.287.445.445.287.026.529L5 13l-.242.471-.026.529-.445.287-.287.445-.529.026L3 15l-.471-.242L2 14.732l-.287-.445L1.268 14l-.026-.529L1 13l.242-.471.026-.529.445-.287.287-.445.529-.026L3 11Z\"\n />\n </svg>\n <span>CONFIGURAR APN</span>\n </button>\n\n <button id=\"battery-optimization\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-youtube\" viewBox=\"0 0 16 16\">\n <path d=\"M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408L6.4 5.209z\"/>\n</svg>\n <span> ASSISTIR YOUTUBE</span>\n </button>\n\n <button id=\"speedtest\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-speedometer2\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8 4a.5.5 0 0 1 .5.5V6a.5.5 0 0 1-1 0V4.5A.5.5 0 0 1 8 4zM3.732 5.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 10a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 10zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 9.31a.91.91 0 1 0 1.302 1.258l3.434-4.297a.389.389 0 0 0-.029-.518z\"\n />\n <path\n fill-rule=\"evenodd\"\n d=\"M0 10a8 8 0 1 1 15.547 2.661c-.442 1.253-1.845 1.602-2.932 1.25C11.309 13.488 9.475 13 8 13c-1.474 0-3.31.488-4.615.911-1.087.352-2.49.003-2.932-1.25A7.988 7.988 0 0 1 0 10zm8-7a7 7 0 0 0-6.603 9.329c.203.575.923.876 1.68.63C4.397 12.533 6.358 12 8 12s3.604.532 4.923.96c.757.245 1.477-.056 1.68-.631A7 7 0 0 0 8 3z\"\n />\n </svg>\n <span> SPEED TESTE </span>\n </button>\n\n <button id=\"clean-data-app\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-trash\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6Z\"\n />\n <path\n d=\"M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1ZM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118ZM2.5 3h11V2h-11v1Z\"\n />\n </svg>\n <span>RESETAR/LIMPAR APP</span>\n </button>\n\n <button id=\"renew_acess\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-arrows-fullscreen\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M5.828 10.172a.5.5 0 0 0-.707 0l-4.096 4.096V11.5a.5.5 0 0 0-1 0v3.975a.5.5 0 0 0 .5.5H4.5a.5.5 0 0 0 0-1H1.732l4.096-4.096a.5.5 0 0 0 0-.707zm4.344 0a.5.5 0 0 1 .707 0l4.096 4.096V11.5a.5.5 0 1 1 1 0v3.975a.5.5 0 0 1-.5.5H11.5a.5.5 0 0 1 0-1h2.768l-4.096-4.096a.5.5 0 0 1 0-.707zm0-4.344a.5.5 0 0 0 .707 0l4.096-4.096V4.5a.5.5 0 1 0 1 0V.525a.5.5 0 0 0-.5-.5H11.5a.5.5 0 0 0 0 1h2.768l-4.096 4.096a.5.5 0 0 0 0 .707zm-4.344 0a.5.5 0 0 1-.707 0L1.025 1.732V4.5a.5.5 0 0 1-1 0V.525a.5.5 0 0 1 .5-.5H4.5a.5.5 0 0 1 0 1H1.732l4.096 4.096a.5.5 0 0 1 0 .707z\"/>\n</svg>\n <span>ACESSAR PAINEL WEB</span>\n </button>\n </section>\n </section>\n\n <section class=\"renew-window\">\n <header>\n <h1>⚠️INFORMAÇÕES IMPORTANTES⚠️</h1>\n </header>\n\n <section>\n <div>\n <h1>⚠️⚠️⚠️⚠️⚠️⚠️⚠️</h1>\n\n <p>\n ✅ MANTENHA SEU APLICATIVO SEMPRE ATUALIZADO PARA NÃO FICAR SEM INTERNET, DUVIDAS CHAMAR SEU VENDENDOR! ✅<br><br>⛔ PROIBIDO USAR TORRENT ⛔<br><br>⛔ PROIBIDO COMPARTILHAR OU ROTEAR A INTERNET 🌏<br><br>⏳ AGUARDE DE 5 A 15 SEGUNDOS EM CADA UMA CONEXÃO ATÉ CONECTAR ⏳<br><br>📲 USE ILIMITADO PARA NAVEGAR NO FACEBOOK, INSTAGRAM, YOUTUBE, TIK TOK, JOGOS ONLINE E ENTRE OUTRAS COISAS 🌏<br><br>📝 MANTENHA SUA INTERNET EM DIA PARA NÃO FICAR SEM ACESSO ✅<br><br>🥳 XCLOUD_SSH CONECTANDO VOCÊ AO MUNDO A 11 ANOS 🔥<br>\n </p>\n </div>\n </section>\n </section>\n\n <section class=\"modal-speedtest\">\n <header>\n <h1>SPEED TESTE</h1>\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 <path\n d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.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 <iframe src=\"\"></iframe>\n </section>\n </section>\n\n <section class=\"modal-error-alert\">\n <header>\n <h1>ERROR</h1>\n\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 <path\n d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.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 <h1>TITULO DO ERRO</h1>\n <p></p>\n </section>\n </section>\n\n <section class=\"modal-logs\">\n <header>\n <h1>REGISTRO - É NECESSÁRIO AGUARDAR ALGUNS SEGUNDOS PARA CONECTAR</h1><br>\n </header><br>\n\n <p></p>\n\n <section>\n <button id=\"clean-data-logs\">LIMPAR</button>\n <button id=\"hidden-modal-logs\">FECHAR</button>\n </section>\n </section>\n\n <section class=\"controls\">\n <button\n id=\"refresh-button\"\n type=\"button\"\n title=\"Atualizar as configurações do app\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-cloud-arrow-down\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M7.646 10.854a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 9.293V5.5a.5.5 0 0 0-1 0v3.793L6.354 8.146a.5.5 0 1 0-.708.708l2 2z\"/>\n <path d=\"M4.406 3.342A5.53 5.53 0 0 1 8 2c2.69 0 4.923 2 5.166 4.579C14.758 6.804 16 8.137 16 9.773 16 11.569 14.502 13 12.687 13H3.781C1.708 13 0 11.366 0 9.318c0-1.763 1.266-3.223 2.942-3.593.143-.863.698-1.723 1.464-2.383zm.653.757c-.757.653-1.153 1.44-1.153 2.056v.448l-.445.049C2.064 6.805 1 7.952 1 9.318 1 10.785 2.23 12 3.781 12h8.906C13.98 12 15 10.988 15 9.773c0-1.216-1.02-2.228-2.313-2.228h-.5v-.5C12.188 4.825 10.328 3 8 3a4.53 4.53 0 0 0-2.941 1.1z\"/>\n</svg>\n </button>\n\n <button id=\"renew\" type=\"button\" title=\"Renovar pagamento\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-envelope\" viewBox=\"0 0 16 16\">\n <path d=\"M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2Zm13 2.383-4.708 2.825L15 11.105V5.383Zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741ZM1 11.105l4.708-2.897L1 5.383v5.722Z\"/>\n</svg>\n </button>\n\n <button\n id=\"backToHome\"\n type=\"button\"\n title=\"Voltar para a página inicial\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-house\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8.707 1.5a1 1 0 0 0-1.414 0L.646 8.146a.5.5 0 0 0 .708.708L2 8.207V13.5A1.5 1.5 0 0 0 3.5 15h9a1.5 1.5 0 0 0 1.5-1.5V8.207l.646.647a.5.5 0 0 0 .708-.708L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.707 1.5ZM13 7.207V13.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V7.207l5-5 5 5Z\"\n />\n </svg>\n </button>\n\n <button id=\"utilitys\" type=\"button\" title=\"utilidades\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-gear\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492zM5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0z\"\n />\n <path\n d=\"M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52l-.094-.319zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115l.094-.319z\"\n />\n </svg>\n </button>\n\n <button id=\"profile-button\" type=\"button\" title=\"Detalhes do usuário\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-person\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z\"\n />\n </svg>\n </button>\n </section>\n </main>\n\n <!-- VARIAVEIS DE CONSULTA -->\n <script>\n let dataCheckuser\n let zIndexContainers\n </script>\n\n <!-- FUNÇÕES DO APP -->\n <script>\n const dtStatusBarHeight = () => DtGetStatusBarHeight.execute()\n const dtNavHeight = () => DtGetNavigationBarHeight.execute()\n\n const dtGetLogs = () => DtGetLogs.execute()\n const dtClearLogs = () => DtClearLogs.execute()\n\n const dtVpnState = () => DtGetVpnState.execute()\n\n const dtTranslateText = (label) => DtTranslateText.execute(label)\n\n const dtStartVpn = () => DtExecuteVpnStart.execute()\n const dtStopVpn = () => DtExecuteVpnStop.execute()\n\n const dtUpdate = () => DtStartAppUpdate.execute()\n\n const dtAllConfigs = () => DtGetConfigs.execute()\n const dtSetConfig = (id) => DtSetConfig.execute(id)\n const dtGetDefaultConfig = () => DtGetDefaultConfig.execute()\n\n const dtGetUsername = () => DtUsername.get()\n const dtSetUsername = (username) => DtUsername.set(username)\n const dtGetPassword = () => DtPassword.get()\n const dtSetPassword = (password) => DtPassword.set(password)\n const dtGetUUID = () => DtUuid.get()\n const dtSetUUID = (uuid) => DtUuid.set(uuid)\n\n const dtApnConfig = () => DtStartApnActivity.execute()\n const dtBatteryOptimization = () => DtIgnoreBatteryOptimizations.execute()\n const dtCleanApp = () => DtCleanApp.execute()\n\n const dtGetNetworkName = () => Android.getNetworkName()\n const dtGetNetworkLocalIp = () => Android.getLocalIP()\n </script>\n\n <!-- FUNÇÕES PARA O APP -->\n <script>\n const dtVpnStateListener = (state) => {\n const stateVpn = vpnState(state)\n\n vpnStatus.html(stateVpn)\n }\n\n const dtOnNewLogListener = () => writeModalLogger()\n\n const dtConfigClickListener = () => {\n const user = dtGetUsername()\n const pass = dtGetPassword()\n const value = areaCarrierSelector()\n\n CarrierTextValue.html(value)\n\n inputUser.attr({\n placeholder: inputUserPlaceholder(),\n value: inputUserValue(),\n })\n inputPassword.attr({\n placeholder: inputPasswordPlaceholder(),\n value: inputPasswordValue(),\n })\n inputUUID.attr({\n value: inputUUIDValue(),\n placeholder: inputUUIDPlaceholder(),\n })\n\n toggleInput()\n }\n\n const dtCheckUserModelListener = (model) => {\n dataCheckuser = model\n\n writeMainCheckuser(dataCheckuser)\n writeProfileCheckuser(dataCheckuser)\n\n loadingContainer.toggleClass(\"show\")\n\n mainCheckuser.addClass(\"show\")\n }\n\n const dtCheckUserStartedListener = () => {\n loadingContainer.addClass(\"show\")\n }\n\n const dtMessageErrorListener = (model) => writeModalError(model)\n </script>\n\n <!-- HELPERS -->\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(\"width\", \"16\")\n svg.setAttribute(\"height\", \"16\")\n svg.setAttribute(\"fill\", \"currentColor\")\n svg.setAttribute(\"viewBox\", \"0 0 16 16\")\n svg.setAttribute(\"class\", Class)\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(path)\n return svg\n }\n\n const createListItem = (iconPath, Class = \"\", text) => {\n const li = document.createElement(\"li\")\n const svg = createSvgIcon(iconPath, Class)\n const span = document.createElement(\"span\")\n span.setAttribute(\"class\", Class)\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 writeStartStopVpnButton(dtTranslateText(\"LBL_BTN_START\"))\n return disconnected()\n case \"CONNECTING\":\n writeStartStopVpnButton(dtTranslateText(\"LBL_BTN_STOP\"))\n return connecting()\n case \"CONNECTED\":\n writeStartStopVpnButton(dtTranslateText(\"LBL_BTN_STOP\"))\n return connected()\n case \"STOPPING\":\n writeStartStopVpnButton(dtTranslateText(\"LBL_BTN_STOPPING\"))\n return stopping()\n case \"NO_NETWORK\":\n writeStartStopVpnButton(dtTranslateText(\"LBL_BTN_STOP\"))\n return noNetwork()\n case \"AUTH\":\n writeStartStopVpnButton(dtTranslateText(\"LBL_BTN_STOP\"))\n return auth()\n case \"AUTH_FAILED\":\n writeStartStopVpnButton(dtTranslateText(\"LBL_BTN_STOP\"))\n return authFailed()\n default:\n return \"Não foi possível obter o status da conexão\"\n }\n }\n\n const writeNetworkStatus = () => {\n let span = \"<span>Localizando rede...</span>\"\n\n setInterval(() => {\n if (dtGetNetworkName() && dtGetNetworkLocalIp()) {\n const carrierName = `${dtGetNetworkName()}`\n const localIP = `${dtGetNetworkLocalIp()}`\n\n span = `<span>${carrierName}: ${localIP}</span>`\n\n networkStatus.html(span)\n } else {\n span = `<span>Não foi possível carregar informações da rede</span>`\n }\n }, 500)\n\n return span\n }\n\n const allConfigs = () => {\n const ListContainer = document.querySelector(\"section.list-container\")\n ListContainer.innerHTML = \"\"\n\n const configs = JSON.parse(dtAllConfigs())\n configs.sort((a, b) => a.sorter - b.sorter)\n configs.forEach((item) =>\n item.items.sort((a, b) => a.sorter - b.sorter)\n )\n\n configs.forEach((category) => {\n const defaultColor = category.color\n const categoryColor = `#${defaultColor.substr(\n 3\n )}${defaultColor.substr(1, 2)}`\n\n document.documentElement.style.setProperty(\n \"--cor-de-fundo-do-header-da-categoria\",\n categoryColor\n )\n document.documentElement.style.setProperty(\n \"--cor-de-fundo-do-item-da-configuracao\",\n categoryColor\n )\n\n const div = document.createElement(\"div\")\n const header = document.createElement(\"header\")\n const h1 = document.createElement(\"h1\")\n const svg = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"svg\"\n )\n const path = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"path\"\n )\n const ul = document.createElement(\"ul\")\n\n div.classList.add(\"category\")\n ul.classList.add(\"configs\")\n\n h1.textContent = category.name\n\n svg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\")\n svg.setAttribute(\"width\", \"16\")\n svg.setAttribute(\"height\", \"16\")\n svg.setAttribute(\"fill\", \"currentColor\")\n svg.setAttribute(\"class\", \"bi bi-caret-right\")\n svg.setAttribute(\"viewBox\", \"0 0 16 16\")\n\n path.setAttribute(\n \"d\",\n \"M6 12.796V3.204L11.481 8 6 12.796zm.659.753 5.48-4.796a1 1 0 0 0 0-1.506L6.66 2.451C6.011 1.885 5 2.345 5 3.204v9.592a1 1 0 0 0 1.659.753\"\n )\n\n svg.appendChild(path)\n header.appendChild(h1)\n header.appendChild(svg)\n div.appendChild(header)\n\n category.items.forEach((item) => {\n const li = document.createElement(\"li\")\n const img = document.createElement(\"img\")\n const h1Item = document.createElement(\"h1\")\n const pItem = document.createElement(\"p\")\n const pMode = document.createElement(\"p\")\n const divLogo = document.createElement(\"div\")\n const divDescription = document.createElement(\"div\")\n const divMode = document.createElement(\"div\")\n\n divLogo.classList.add(\"logo\")\n divDescription.classList.add(\"description\")\n divMode.classList.add(\"mode\")\n\n h1Item.textContent = item.name\n pItem.textContent = item.description\n pMode.textContent = item.mode\n\n img.setAttribute(\"src\", item.icon)\n\n divLogo.appendChild(img)\n divDescription.appendChild(h1Item)\n divDescription.appendChild(pItem)\n divMode.appendChild(pMode)\n\n li.appendChild(divLogo)\n li.appendChild(divDescription)\n li.appendChild(divMode)\n\n ul.appendChild(li)\n div.appendChild(ul)\n\n li.addEventListener(\"click\", () => {\n dtSetConfig(item.id)\n listOfCarriers.toggleClass(\"active\")\n })\n })\n\n header.addEventListener(\"click\", () => {\n if (ul.offsetHeight <= 0) {\n ul.style.maxHeight = `${ul.scrollHeight}px`\n svg.style.transform = \"rotate(90deg)\"\n } else {\n ul.style.maxHeight = \"0px\"\n svg.style.transform = \"rotate(0deg)\"\n }\n })\n\n ListContainer.appendChild(div)\n })\n }\n\n const showPassword = () => {\n const inputPassword = document.querySelector(\"#inputPassword\")\n\n if (inputPassword.type === \"password\") {\n inputPassword.type = \"text\"\n eyeHidden.toggleClass(\".eye-none\").style({ display: \"none\" })\n eyeShow.style({ display: \"block\" })\n } else {\n inputPassword.type = \"password\"\n eyeShow.toggleClass(\".eye-none\").style({ display: \"none\" })\n eyeHidden.toggleClass(\".eye-none\").style({ display: \"block\" })\n }\n }\n\n const startStopVpn = () => {\n const state = dtVpnState()\n\n state === \"CONNECTED\" ? dtStopVpn() : dtStartVpn()\n }\n\n const writeStartStopVpnButton = (status) => {\n buttonStartStopVpnValue.html(status)\n }\n\n const writeMainCheckuser = (model) => {\n const data = JSON.parse(model)\n\n const ul = document.querySelector(\n \"section.main-checkuser section.container-content-checkuser ul\"\n )\n\n const username = createListItem(\n \"M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z\",\n \"\",\n `NOME DE USUÁRIO: ${data.username}`\n )\n\n const expiration = createListItem(\n 'M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zM1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857V3.857z\"/><path d=\"M12 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm2-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',\n \"\",\n `EXPIRAÇÃO: ${data.expiration_date}`\n )\n\n const remainingDays = createListItem(\n \"M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1h-11zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2h-7zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48V8.35zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z\",\n \"\",\n `DIAS RESTANTES: ${data.expiration_days}`\n )\n\n const connecteds = createListItem(\n \"M11 1H5a1 1 0 0 0-1 1v6a.5.5 0 0 1-1 0V2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a.5.5 0 0 1-1 0V2a1 1 0 0 0-1-1Zm1 13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-2a.5.5 0 0 0-1 0v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-2a.5.5 0 0 0-1 0v2ZM1.713 7.954a.5.5 0 1 0-.419-.908c-.347.16-.654.348-.882.57C.184 7.842 0 8.139 0 8.5c0 .546.408.94.823 1.201.44.278 1.043.51 1.745.696C3.978 10.773 5.898 11 8 11c.099 0 .197 0 .294-.002l-1.148 1.148a.5.5 0 0 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2a.5.5 0 1 0-.708.708l1.145 1.144L8 10c-2.04 0-3.87-.221-5.174-.569-.656-.175-1.151-.374-1.47-.575C1.012 8.639 1 8.506 1 8.5c0-.003 0-.059.112-.17.115-.112.31-.242.6-.376Zm12.993-.908a.5.5 0 0 0-.419.908c.292.134.486.264.6.377.113.11.113.166.113.169 0 .003 0 .065-.13.187-.132.122-.352.26-.677.4-.645.28-1.596.523-2.763.687a.5.5 0 0 0 .14.99c1.212-.17 2.26-.43 3.02-.758.38-.164.713-.357.96-.587.246-.229.45-.537.45-.919 0-.362-.184-.66-.412-.883-.228-.223-.535-.411-.882-.571ZM7.5 2a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1Z\",\n \"\",\n `CONECTADOS: ${data.count_connections}/${data.limit_connections}`\n )\n\n ul.innerHTML =\n username.outerHTML +\n expiration.outerHTML +\n remainingDays.outerHTML +\n connecteds.outerHTML\n }\n\n const showProfile = (model) => {\n hiddenAll()\n const data = model\n\n const main = document.querySelector(\"section.profile-checkuser\")\n const zIndexMain = window\n .getComputedStyle(main)\n .getPropertyValue(\"z-index\")\n\n if (data !== undefined) {\n notViewUser.removeClass(\"show\")\n viewUser.addClass(\"show\")\n mainProfile.addClass(\"show\")\n } else {\n viewUser.removeClass(\"show\")\n notViewUser.addClass(\"show\")\n mainProfile.addClass(\"show\")\n }\n }\n const hiddenProfile = () => {\n mainProfile.removeClass(\"show\")\n mainProfile.style({ \"z-index\": 0 })\n }\n\n const writeProfileCheckuser = (model) => {\n const data = JSON.parse(model)\n\n const username = createListItem(\n \"M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z\",\n \"\",\n `NOME DE USUÁRIO: ${data.username}`\n )\n\n const expiration = createListItem(\n 'M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zM1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857V3.857z\"/><path d=\"M12 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm2-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',\n \"even\",\n `EXPIRAÇÃO: ${data.expiration_date}`\n )\n\n const remainingDays = createListItem(\n \"M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1h-11zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2h-7zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48V8.35zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z\",\n \"\",\n `DIAS RESTANTES: ${data.expiration_days}`\n )\n\n const connecteds = createListItem(\n \"M11 1H5a1 1 0 0 0-1 1v6a.5.5 0 0 1-1 0V2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a.5.5 0 0 1-1 0V2a1 1 0 0 0-1-1Zm1 13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-2a.5.5 0 0 0-1 0v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-2a.5.5 0 0 0-1 0v2ZM1.713 7.954a.5.5 0 1 0-.419-.908c-.347.16-.654.348-.882.57C.184 7.842 0 8.139 0 8.5c0 .546.408.94.823 1.201.44.278 1.043.51 1.745.696C3.978 10.773 5.898 11 8 11c.099 0 .197 0 .294-.002l-1.148 1.148a.5.5 0 0 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2a.5.5 0 1 0-.708.708l1.145 1.144L8 10c-2.04 0-3.87-.221-5.174-.569-.656-.175-1.151-.374-1.47-.575C1.012 8.639 1 8.506 1 8.5c0-.003 0-.059.112-.17.115-.112.31-.242.6-.376Zm12.993-.908a.5.5 0 0 0-.419.908c.292.134.486.264.6.377.113.11.113.166.113.169 0 .003 0 .065-.13.187-.132.122-.352.26-.677.4-.645.28-1.596.523-2.763.687a.5.5 0 0 0 .14.99c1.212-.17 2.26-.43 3.02-.758.38-.164.713-.357.96-.587.246-.229.45-.537.45-.919 0-.362-.184-.66-.412-.883-.228-.223-.535-.411-.882-.571ZM7.5 2a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1Z\",\n \"even\",\n `CONECTADOS: ${data.count_connections}/${data.limit_connections}`\n )\n\n viewUser.html(\n username.outerHTML +\n expiration.outerHTML +\n remainingDays.outerHTML +\n connecteds.outerHTML\n )\n }\n\n const hiddenLoadContainer = () => {\n loadingContainer.removeClass(\"show\")\n }\n\n const showMainTools = () => {\n hiddenAll()\n MainTools.style({ \"z-index\": 1 })\n MainTools.addClass(\"show\")\n }\n const hiddenMainTools = () => {\n MainTools.style({ \"z-index\": 0 })\n MainTools.removeClass(\"show\")\n }\n\n const showModalSpeedtest = () => {\n ModalSpeedtest.addClass(\"show\")\n IframeModalSpeedtest.attr({ src: \"https://fast.com/pt/\" })\n }\n const hiddenModalSpeedtest = () => {\n ModalSpeedtest.removeClass(\"show\")\n IframeModalSpeedtest.attr({ src: \"\" })\n }\n\n const writeModalError = (model) => {\n const data = JSON.parse(model)\n\n const h1 = `<h1>${data.title}</h1>`\n const p = `<p>${data.content}</p>`\n\n ContentModalError.html(h1 + p)\n\n hiddenAll()\n showModalError()\n }\n const showModalError = () => {\n ModalError.addClass(\"show\")\n }\n const hiddenModalError = () => {\n ModalError.removeClass(\"show\")\n }\n\n const writeModalLogger = () => {\n const data = JSON.parse(dtGetLogs())\n const p = document.querySelector(\"section.modal-logs p\")\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 p.scrollTop = p.scrollHeight\n\n return content\n }\n const showModalLogger = () => {\n ModalLogger.addClass(\"show\")\n }\n const hiddenModalRegister = () => {\n ModalLogger.removeClass(\"show\")\n }\n\n const showRenew = () => {\n hiddenAll()\n MainRenew.addClass(\"show\")\n }\n const hiddenRenew = () => {\n MainRenew.removeClass(\"show\")\n }\n\n const hiddenAll = () => {\n hiddenProfile()\n hiddenMainTools()\n hiddenModalSpeedtest()\n hiddenModalError()\n hiddenModalRegister()\n hiddenRenew()\n }\n </script>\n\n <!-- ESTADOS DE CONEXÃO -->\n <script>\n const disconnected = () => {\n const icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-outlet\" viewBox=\"0 0 16 16\"><path d=\"M3.34 2.994c.275-.338.68-.494 1.074-.494h7.172c.393 0 .798.156 1.074.494.578.708 1.84 2.534 1.84 5.006 0 2.472-1.262 4.297-1.84 5.006-.276.338-.68.494-1.074.494H4.414c-.394 0-.799-.156-1.074-.494C2.762 12.297 1.5 10.472 1.5 8c0-2.472 1.262-4.297 1.84-5.006zm1.074.506a.376.376 0 0 0-.299.126C3.599 4.259 2.5 5.863 2.5 8c0 2.137 1.099 3.74 1.615 4.374.06.073.163.126.3.126h7.17c.137 0 .24-.053.3-.126.516-.633 1.615-2.237 1.615-4.374 0-2.137-1.099-3.74-1.615-4.374a.376.376 0 0 0-.3-.126h-7.17z\"/><path d=\"M6 5.5a.5.5 0 0 1 .5.5v1.5a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm4 0a.5.5 0 0 1 .5.5v1.5a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zM7 10v1h2v-1a1 1 0 0 0-2 0z\"/></svg>`\n const text = `<span>${dtTranslateText(\"LBL_STATE_DISCONNECTED\")}</span>`\n\n return icon + text\n }\n\n const connecting = () => {\n const icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-plug\" viewBox=\"0 0 16 16\"><path d=\"M6 0a.5.5 0 0 1 .5.5V3h3V.5a.5.5 0 0 1 1 0V3h1a.5.5 0 0 1 .5.5v3A3.5 3.5 0 0 1 8.5 10c-.002.434-.01.845-.04 1.22-.041.514-.126 1.003-.317 1.424a2.083 2.083 0 0 1-.97 1.028C6.725 13.9 6.169 14 5.5 14c-.998 0-1.61.33-1.974.718A1.922 1.922 0 0 0 3 16H2c0-.616.232-1.367.797-1.968C3.374 13.42 4.261 13 5.5 13c.581 0 .962-.088 1.218-.219.241-.123.4-.3.514-.55.121-.266.193-.621.23-1.09.027-.34.035-.718.037-1.141A3.5 3.5 0 0 1 4 6.5v-3a.5.5 0 0 1 .5-.5h1V.5A.5.5 0 0 1 6 0zM5 4v2.5A2.5 2.5 0 0 0 7.5 9h1A2.5 2.5 0 0 0 11 6.5V4H5z\"/></svg>`\n const text = `<span>${dtTranslateText(\"LBL_STATE_CONNECTING\")}</span>`\n\n return icon + text\n }\n\n const connected = () => {\n const icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-plugin\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M1 8a7 7 0 1 1 2.898 5.673c-.167-.121-.216-.406-.002-.62l1.8-1.8a3.5 3.5 0 0 0 4.572-.328l1.414-1.415a.5.5 0 0 0 0-.707l-.707-.707 1.559-1.563a.5.5 0 1 0-.708-.706l-1.559 1.562-1.414-1.414 1.56-1.562a.5.5 0 1 0-.707-.706l-1.56 1.56-.707-.706a.5.5 0 0 0-.707 0L5.318 5.975a3.5 3.5 0 0 0-.328 4.571l-1.8 1.8c-.58.58-.62 1.6.121 2.137A8 8 0 1 0 0 8a.5.5 0 0 0 1 0Z\"/></svg>`\n const text = `<span>${dtTranslateText(\"LBL_STATE_CONNECTED\")}</span>`\n\n return icon + text\n }\n\n const stopping = () => {\n const icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-stop\" viewBox=\"0 0 16 16\"><path d=\"M3.5 5A1.5 1.5 0 0 1 5 3.5h6A1.5 1.5 0 0 1 12.5 5v6a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 11V5zM5 4.5a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5h6a.5.5 0 0 0 .5-.5V5a.5.5 0 0 0-.5-.5H5z\"/></svg>`\n const text = `<span>${dtTranslateText(\"LBL_STATE_STOPPING\")}</span>`\n\n return icon + text\n }\n\n const noNetwork = () => {\n const icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-wifi-off\" viewBox=\"0 0 16 16\"><path d=\"M10.706 3.294A12.545 12.545 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c.63 0 1.249.05 1.852.148l.854-.854zM8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065 8.448 8.448 0 0 1 3.51-1.27L8 6zm2.596 1.404.785-.785c.63.24 1.227.545 1.785.907a.482.482 0 0 1 .063.745.525.525 0 0 1-.652.065 8.462 8.462 0 0 0-1.98-.932zM8 10l.933-.933a6.455 6.455 0 0 1 2.013.637c.285.145.326.524.1.75l-.015.015a.532.532 0 0 1-.611.09A5.478 5.478 0 0 0 8 10zm4.905-4.905.747-.747c.59.3 1.153.645 1.685 1.03a.485.485 0 0 1 .047.737.518.518 0 0 1-.668.05 11.493 11.493 0 0 0-1.811-1.07zM9.02 11.78c.238.14.236.464.04.66l-.707.706a.5.5 0 0 1-.707 0l-.707-.707c-.195-.195-.197-.518.04-.66A1.99 1.99 0 0 1 8 11.5c.374 0 .723.102 1.021.28zm4.355-9.905a.53.53 0 0 1 .75.75l-10.75 10.75a.53.53 0 0 1-.75-.75l10.75-10.75z\"/></svg>`\n const text = `<span>${dtTranslateText(\"LBL_STATE_NO_NETWORK\")}</span>`\n\n return icon + text\n }\n\n const auth = () => {\n const icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-person-lock\" viewBox=\"0 0 16 16\"><path d=\"M11 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM8 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 5.996V14H3s-1 0-1-1 1-4 6-4c.564 0 1.077.038 1.544.107a4.524 4.524 0 0 0-.803.918A10.46 10.46 0 0 0 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h5ZM9 13a1 1 0 0 1 1-1v-1a2 2 0 1 1 4 0v1a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2Zm3-3a1 1 0 0 0-1 1v1h2v-1a1 1 0 0 0-1-1Z\"/></svg>`\n const text = `<span>${dtTranslateText(\"LBL_STATE_AUTH\")}</span>`\n\n return icon + text\n }\n\n const authFailed = () => {\n const icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-person-slash\" viewBox=\"0 0 16 16\"><path d=\"M13.879 10.414a2.501 2.501 0 0 0-3.465 3.465l3.465-3.465Zm.707.707-3.465 3.465a2.501 2.501 0 0 0 3.465-3.465Zm-4.56-1.096a3.5 3.5 0 1 1 4.949 4.95 3.5 3.5 0 0 1-4.95-4.95ZM11 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM8 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm.256 7a4.474 4.474 0 0 1-.229-1.004H3c.001-.246.154-.986.832-1.664C4.484 10.68 5.711 10 8 10c.26 0 .507.009.74.025.226-.341.496-.65.804-.918C9.077 9.038 8.564 9 8 9c-5 0-6 3-6 4s1 1 1 1h5.256Z\"/></svg>`\n const text = `<span>${dtTranslateText(\"LBL_STATE_AUTH_FAILED\")}</span>`\n\n return icon + text\n }\n </script>\n\n <!-- VALOR DE EXIBIÇÃO DO CAMPO DE SELECIONAR OPERADORA -->\n <script>\n const areaCarrierSelector = () => {\n const data = dtGetDefaultConfig()\n\n if (data !== undefined) {\n return JSON.parse(data).name\n } else {\n return dtTranslateText(\"LBL_CHOOSE_CONFIG\")\n }\n }\n </script>\n\n <!-- VALOR DE EXIBIÇÃO DO INPUT USUÁRIO DO USUÁRIO -->\n <script>\n const inputUserPlaceholder = () => dtTranslateText(\"LBL_USERNAME\")\n const inputUserValue = () => {\n if (dtGetUsername()) {\n return dtGetUsername()\n } else {\n return \"\"\n }\n }\n </script>\n\n <!-- VALOR DE EXIBIÇÃO DO INPUT DA SENHA DO USUÁRIO -->\n <script>\n const inputPasswordPlaceholder = () => dtTranslateText(\"LBL_PASSWORD\")\n const inputPasswordValue = () => {\n if (dtGetPassword()) {\n return dtGetPassword()\n } else {\n return \"\"\n }\n }\n </script>\n\n <!-- VALOR DE EXIBIÇÃO DO INPUT DA SENHA DO USUÁRIO -->\n <script>\n const inputUUIDPlaceholder = () => dtTranslateText(\"LBL_UUID\")\n const inputUUIDValue = () => {\n if (dtGetUUID()) {\n return dtGetUUID()\n } else {\n return \"\"\n }\n }\n </script>\n\n <!-- DOM WRAPPER -->\n <script>\n const Dom = (selector) => {\n const _elements = document.querySelectorAll(selector)\n\n const wrapper = {\n on(listeners) {\n for (const [event, listener] of Object.entries(listeners)) {\n _elements.forEach((element) => {\n element.addEventListener(event, listener)\n })\n }\n\n return wrapper\n },\n addClass: (...tokens) => {\n _elements.forEach((element) => {\n element.classList.add(...tokens)\n })\n\n return wrapper\n },\n removeClass: (...tokens) => {\n _elements.forEach((element) => {\n element.classList.remove(...tokens)\n })\n\n return wrapper\n },\n toggleClass: (token, force) => {\n _elements.forEach((element) => {\n element.classList.toggle(token, force)\n })\n\n return wrapper\n },\n style(styles) {\n for (const [property, value] of Object.entries(styles)) {\n console.log(value)\n _elements.forEach((element) => {\n element.style[property] = value\n })\n }\n\n return wrapper\n },\n attr(attrs) {\n for (const [name, value] of Object.entries(attrs)) {\n _elements.forEach((element) => element.setAttribute(name, value))\n }\n\n return wrapper\n },\n html(value) {\n _elements.forEach((element) => (element.innerHTML = value))\n return wrapper\n },\n }\n\n return wrapper\n }\n </script>\n\n <!-- VÁRIAVIES -->\n <script>\n const main = Dom(\"main\")\n\n const vpnStatus = Dom(\"section.vpnStatus\")\n\n const networkStatus = Dom(\"section.local-ip\")\n\n const carrierSelector = Dom(\"div.carrierSelector\")\n const listOfCarriers = Dom(\"section.listOfCarriers\")\n const closeModalCarriers = Dom(\"#close-modal-configs\")\n const CarrierCategoryContainer = Dom(\"section.list-container\")\n const CarrierTextValue = Dom(\"div.carrierSelector span\")\n\n const buttonControl = Dom(\"section.controls\")\n const refreshButton = Dom(\"#refresh-button\")\n const renewButton = Dom(\"#renew\")\n const backToHome = Dom(\"#backToHome\")\n const ToolsButton = Dom(\"#utilitys\")\n const profileButton = Dom(\"#profile-button\")\n\n const ContainerInputUser = Dom(\"#container-user-input\")\n const ContainerInputPassword = Dom(\"#container-password-input\")\n const ContainerInputUUID = Dom(\"#container-uuid-input\")\n\n const inputUser = Dom(\"#inputUser\")\n const inputPassword = Dom(\"#inputPassword\")\n const inputUUID = Dom(\"#uuid-input\")\n\n const buttonStartStopVpn = Dom(\"#startStopVpn\")\n const buttonLogs = Dom(\"#buttonLogs\")\n const buttonStartStopVpnValue = Dom(\"#startStopVpnButtonValue\")\n\n const mainCheckuser = Dom(\"section.main-checkuser\")\n const mainCheckuserClose = Dom(\"section.main-checkuser header svg\")\n const mainCheckuserContent = Dom(\n \"section.main-checkuser section.container-content-checkuser\"\n )\n\n const loadingContainer = Dom(\"section.loading\")\n const loadingContainerClose = Dom(\"section.loading header svg\")\n\n const mainProfile = Dom(\"section.profile-checkuser\")\n const notViewUser = Dom(\"#not-profile-user\")\n const viewUser = Dom(\"#list-profile\")\n\n const MainTools = Dom(\"section.tools\")\n const ConfigApnButton = Dom(\"#config-apn\")\n const BatteryOptimizeButton = Dom(\"#battery-optimization\")\n const SpeedtestButton = Dom(\"#speedtest\")\n const ClearDataAppButton = Dom(\"#clean-data-app\")\n\n const MainRenew = Dom(\"section.renew-window\")\n\n const ModalSpeedtest = Dom(\"section.modal-speedtest\")\n const CloseModalSpeedtest = Dom(\"section.modal-speedtest header svg\")\n const IframeModalSpeedtest = Dom(\"section.modal-speedtest section iframe\")\n\n const ModalError = Dom(\"section.modal-error-alert\")\n const CloseModalError = Dom(\"section.modal-error-alert header svg\")\n const ContentModalError = Dom(\"section.modal-error-alert section\")\n\n const ModalLogger = Dom(\"section.modal-logs\")\n const CloseModalLogger = Dom(\"#hidden-modal-logs\")\n const ModalLoggerContent = Dom(\"section.modal-logs p\")\n const CleanLoggerContent = Dom(\"#clean-data-logs\")\n\n const eyeHidden = Dom(\"svg.eye-hidden\")\n const eyeShow = Dom(\"svg.eye-show\")\n\n const ButtonRenew = Dom(\"#renew_acess\")\n </script>\n\n <!-- AÇÕES -->\n <script>\n main.style({ padding: `${dtStatusBarHeight() + 100}px 0px 0px 0px` })\n mainProfile.style({\n padding: `${dtStatusBarHeight() + 10}px 0px ${\n dtNavHeight() + 90\n }px 0px`,\n })\n\n MainTools.style({\n padding: `${dtStatusBarHeight() + 10}px 0px ${\n dtNavHeight() + 90\n }px 0px`,\n })\n\n MainRenew.style({\n padding: `${dtStatusBarHeight() + 10}px 0px ${\n dtNavHeight() + 90\n }px 0px`,\n })\n\n ModalLogger.style({\n top: `${dtStatusBarHeight() + 95}px`,\n bottom: `${dtNavHeight() + 95}px`,\n })\n\n vpnStatus.html(vpnState())\n networkStatus.html(writeNetworkStatus())\n\n carrierSelector.on({\n click: () => {\n allConfigs()\n listOfCarriers.toggleClass(\"active\")\n },\n })\n closeModalCarriers.on({\n click: () => listOfCarriers.toggleClass(\"active\"),\n })\n CarrierTextValue.html(areaCarrierSelector())\n\n inputUser.on({ input: (e) => dtSetUsername(e.target.value) })\n inputPassword.on({ input: (e) => dtSetPassword(e.target.value) })\n inputUUID.on({ input: (e) => dtSetUUID(e.target.value) })\n eyeHidden.on({ click: () => showPassword() })\n eyeShow.on({ click: () => showPassword() })\n\n inputUser.attr({\n placeholder: inputUserPlaceholder(),\n value: inputUserValue(),\n })\n inputPassword.attr({\n placeholder: inputPasswordPlaceholder(),\n value: inputPasswordValue(),\n })\n inputUUID.attr({\n value: inputUUIDValue(),\n placeholder: inputUUIDPlaceholder(),\n })\n\n buttonControl.style({ bottom: `${dtNavHeight() + 10}px` })\n refreshButton.on({ click: () => dtUpdate() })\n renewButton.on({ click: () => showRenew() })\n backToHome.on({\n click: () => {\n hiddenAll()\n },\n })\n ToolsButton.on({ click: () => showMainTools() })\n profileButton.on({ click: () => showProfile(dataCheckuser) })\n\n buttonStartStopVpn.on({ click: () => startStopVpn() })\n buttonLogs.on({ click: () => showModalLogger() })\n\n loadingContainerClose.on({ click: () => hiddenLoadContainer() })\n\n mainCheckuserClose.on({ click: () => mainCheckuser.toggleClass(\"show\") })\n\n ConfigApnButton.on({ click: () => dtApnConfig() })\n BatteryOptimizeButton.on({ click: () => DtStartWebViewActivity.execute('http://youtube.com')})\n SpeedtestButton.on({ click: () => showModalSpeedtest() })\n CloseModalSpeedtest.on({ click: () => hiddenModalSpeedtest() })\n ClearDataAppButton.on({ click: () => dtCleanApp() })\n\n ButtonRenew.on({click: () => DtStartWebViewActivity.execute('https://xcloudssh.painelatlas.store')})\n\n CloseModalError.on({ click: () => hiddenModalError() })\n\n ModalLoggerContent.html(writeModalLogger())\n CleanLoggerContent.on({ click: () => dtClearLogs() })\n CloseModalLogger.on({ click: () => hiddenModalRegister() })\n\n const checkV2ray = () => {\n const data = JSON.parse(dtGetDefaultConfig())\n\n const isV2ray = data?.mode?.toLowerCase()?.startsWith(\"v2ray\")\n\n if (!dtGetDefaultConfig()) {\n return false\n } else if (isV2ray && data?.auth?.v2ray_uuid) {\n return \"have_uuid\"\n } else if (isV2ray && !data?.auth?.v2ray_uuid) {\n return \"not_have_uuid\"\n } else {\n return false\n }\n }\n\n const toggleInput = () => {\n if (checkV2ray() === \"not_have_uuid\") {\n ContainerInputUser.style({ display: \"none\" })\n\n ContainerInputPassword.style({ display: \"none\" })\n\n ContainerInputUUID.style({ display: \"flex\" })\n } else if (checkV2ray() === \"have_uuid\") {\n ContainerInputUser.style({ display: \"none\" })\n\n ContainerInputPassword.style({ display: \"none\" })\n\n ContainerInputUUID.style({ display: \"none\" })\n } else {\n ContainerInputUser.style({ display: \"flex\" })\n\n ContainerInputPassword.style({ display: \"flex\" })\n\n ContainerInputUUID.style({ display: \"none\" })\n }\n }\n\n toggleInput()\n </script>\n </body>\n</html>\n",
  345. "type": "HTML",
  346. "status": "ACTIVE",
  347. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  348. },
  349. {
  350. "id": 34667,
  351. "label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
  352. "name": "APP_SUPPORT_BUTTON",
  353. "value": null,
  354. "type": "HTML",
  355. "status": "ACTIVE",
  356. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  357. },
  358. {
  359. "id": 34668,
  360. "label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
  361. "name": "APP_WEB_VIEW",
  362. "value": null,
  363. "type": "HTML",
  364. "status": "ACTIVE",
  365. "user_id": "c9d38071-682e-42ed-9a1a-1be9894bf3ea"
  366. }
  367. ]

comments powered by Disqus