METODO LAYOT


SUBMITTED BY: terrorxdroid

DATE: Oct. 2, 2024, 9:52 p.m.

UPDATED: Oct. 4, 2024, 9:54 a.m.

FORMAT: Text only

SIZE: 116.9 kB

HITS: 467

  1. [
  2. {
  3. "id": 22166,
  4. "label": "Nome do app",
  5. "name": "APP_NAME",
  6. "value": "OrionPlus",
  7. "type": "STRING",
  8. "status": "ACTIVE",
  9. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  10. },
  11. {
  12. "id": 22167,
  13. "label": "Logo do app",
  14. "name": "APP_LOGO",
  15. "value": "https://i.ibb.co/KjtLm3G/IMG-20241002-201235-539.png",
  16. "type": "IMAGE",
  17. "status": "ACTIVE",
  18. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  19. },
  20. {
  21. "id": 22168,
  22. "label": "Imagem de fundo",
  23. "name": "APP_BACKGROUND_IMAGE",
  24. "value": null,
  25. "type": "IMAGE",
  26. "status": "ACTIVE",
  27. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  28. },
  29. {
  30. "id": 22169,
  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": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  49. },
  50. {
  51. "id": 22170,
  52. "label": "Cor de fundo",
  53. "name": "APP_BACKGROUND_COLOR",
  54. "value": "#080e16c7",
  55. "type": "COLOR",
  56. "status": "ACTIVE",
  57. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  58. },
  59. {
  60. "id": 22171,
  61. "label": "Cor do card inicial",
  62. "name": "APP_CARD_COLOR",
  63. "value": "#1d242e73",
  64. "type": "COLOR",
  65. "status": "ACTIVE",
  66. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  67. },
  68. {
  69. "id": 22172,
  70. "label": "Raio do card inicial",
  71. "name": "APP_CARD_RADIUS",
  72. "value": 20,
  73. "type": "INTEGER",
  74. "status": "ACTIVE",
  75. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  76. },
  77. {
  78. "id": 22173,
  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": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  85. },
  86. {
  87. "id": 22174,
  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": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  94. },
  95. {
  96. "id": 22175,
  97. "label": "Cor do card de configurações",
  98. "name": "APP_CARD_CONFIG_COLOR",
  99. "value": "#000000ff",
  100. "type": "COLOR",
  101. "status": "ACTIVE",
  102. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  103. },
  104. {
  105. "id": 22176,
  106. "label": "Cor do fundo dos dialogs",
  107. "name": "APP_DIALOG_BACKGROUND_COLOR",
  108. "value": "#000000ff",
  109. "type": "COLOR",
  110. "status": "ACTIVE",
  111. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  112. },
  113. {
  114. "id": 22177,
  115. "label": "Cor do fundo do dialog de log",
  116. "name": "APP_DIALOG_LOGGER_COLOR",
  117. "value": "#000000ff",
  118. "type": "COLOR",
  119. "status": "ACTIVE",
  120. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  121. },
  122. {
  123. "id": 22178,
  124. "label": "Cor das bordas",
  125. "name": "APP_BORDER_COLOR",
  126. "value": "#1d242e73",
  127. "type": "COLOR",
  128. "status": "ACTIVE",
  129. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  130. },
  131. {
  132. "id": 22179,
  133. "label": "Cor dos inputs",
  134. "name": "APP_INPUT_COLOR",
  135. "value": "#1d242e73",
  136. "type": "COLOR",
  137. "status": "ACTIVE",
  138. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  139. },
  140. {
  141. "id": 22180,
  142. "label": "Raio dos inputs",
  143. "name": "APP_INPUT_RADIUS",
  144. "value": 25,
  145. "type": "INTEGER",
  146. "status": "ACTIVE",
  147. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  148. },
  149. {
  150. "id": 22181,
  151. "label": "Cor dos textos",
  152. "name": "APP_TEXT_COLOR",
  153. "value": "#FFFFFFFF",
  154. "type": "COLOR",
  155. "status": "ACTIVE",
  156. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  157. },
  158. {
  159. "id": 22182,
  160. "label": "Cor dos botões",
  161. "name": "APP_BUTTON_COLOR",
  162. "value": "#1d242e73",
  163. "type": "COLOR",
  164. "status": "ACTIVE",
  165. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  166. },
  167. {
  168. "id": 22183,
  169. "label": "Raio dos botões",
  170. "name": "APP_BUTTON_RADIUS",
  171. "value": 25,
  172. "type": "INTEGER",
  173. "status": "ACTIVE",
  174. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  175. },
  176. {
  177. "id": 22184,
  178. "label": "Cor dos icones",
  179. "name": "APP_ICON_COLOR",
  180. "value": "#FFFFFFFF",
  181. "type": "COLOR",
  182. "status": "ACTIVE",
  183. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  184. },
  185. {
  186. "id": 22185,
  187. "label": "Exibir modo de conexão",
  188. "name": "APP_SHOW_CONNECTION_MODE",
  189. "value": true,
  190. "type": "BOOLEAN",
  191. "status": "ACTIVE",
  192. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  193. },
  194. {
  195. "id": 22871,
  196. "label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
  197. "name": "APP_CONFIG_AUTO_UPDATE",
  198. "value": true,
  199. "type": "BOOLEAN",
  200. "status": "ACTIVE",
  201. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  202. },
  203. {
  204. "id": 22186,
  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": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  211. },
  212. {
  213. "id": 22187,
  214. "label": "Usar limiter de conexão",
  215. "name": "APP_CONNECTION_LIMITER",
  216. "value": false,
  217. "type": "BOOLEAN",
  218. "status": "ACTIVE",
  219. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  220. },
  221. {
  222. "id": 22188,
  223. "label": "Usar botão de atualizações",
  224. "name": "APP_BTN_UPDATE_ENABLED",
  225. "value": false,
  226. "type": "BOOLEAN",
  227. "status": "ACTIVE",
  228. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  229. },
  230. {
  231. "id": 22189,
  232. "label": "Usar botão de registros",
  233. "name": "APP_BTN_LOGGER_ENABLED",
  234. "value": true,
  235. "type": "BOOLEAN",
  236. "status": "ACTIVE",
  237. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  238. },
  239. {
  240. "id": 22190,
  241. "label": "Usar botão de pagina webview",
  242. "name": "APP_BTN_PAGE_ENABLED",
  243. "value": true,
  244. "type": "BOOLEAN",
  245. "status": "ACTIVE",
  246. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  247. },
  248. {
  249. "id": 22191,
  250. "label": "Ativar dialog de erros",
  251. "name": "APP_DIALOG_ERROR_ENABLED",
  252. "value": false,
  253. "type": "BOOLEAN",
  254. "status": "ACTIVE",
  255. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  256. },
  257. {
  258. "id": 22192,
  259. "label": "Ativar dialog de checkuser",
  260. "name": "APP_CHECKUSER_DIALOG_ENABLED",
  261. "value": false,
  262. "type": "BOOLEAN",
  263. "status": "ACTIVE",
  264. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  265. },
  266. {
  267. "id": 22193,
  268. "label": "Ativar toast de sucesso",
  269. "name": "APP_SUCCESS_TOAST_ENABLED",
  270. "value": false,
  271. "type": "BOOLEAN",
  272. "status": "ACTIVE",
  273. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  274. },
  275. {
  276. "id": 22194,
  277. "label": "Ativar toast de erro",
  278. "name": "APP_ERROR_TOAST_ENABLED",
  279. "value": false,
  280. "type": "BOOLEAN",
  281. "status": "ACTIVE",
  282. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  283. },
  284. {
  285. "id": 22195,
  286. "label": "Usar layout webview",
  287. "name": "APP_LAYOUT_WEBVIEW_ENABLED",
  288. "value": true,
  289. "type": "BOOLEAN",
  290. "status": "ACTIVE",
  291. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  292. },
  293. {
  294. "id": 22196,
  295. "label": "Mensagem",
  296. "name": "APP_MESSAGE",
  297. "value": "Olá, tudo bem? Espero que sim!\nFico muito feliz que você tenha baixado nosso App e também usando ele pela primeira vez :)\n\n•Orion você sempre conectado•",
  298. "type": "TEXT",
  299. "status": "ACTIVE",
  300. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  301. },
  302. {
  303. "id": 22197,
  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": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  310. },
  311. {
  312. "id": 22198,
  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": "WELCOME"
  335. },
  336. "type": "SELECT",
  337. "status": "ACTIVE",
  338. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  339. },
  340. {
  341. "id": 22199,
  342. "label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
  343. "name": "APP_LAYOUT_WEBVIEW",
  344. "value": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\n <title>2057426255 - @contecbr | @alexdsgmoura</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 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 --space-status-bar: 10px;\n --space-nav-bar: 33px;\n\n --default-background-color: linear-gradient(\n 135deg,\n #FA83DF,\n #AD6CD7,\n #ffffff,\n #231d34\n ); \n --connected-background-color: linear-gradient(\n 135deg,\n #FA83DF,\n #8e3671,\n #6431ab,\n #423068,\n #7514ff,\n #814fc9,\n #533aed,\n #663d9f,\n #432541,\n #AD6CD7,\n #7d37db,\n #6f57ff,\n #8a2be2,\n #9370db\n );\n --connecting-background-color: linear-gradient(\n 135deg,\n #ffc823,\n #f4b007,\n #fff14a,\n #eaa700,\n #fc9200,\n #ffcb05,\n #feb308,\n #ecc218,\n #ffc823,\n #f4b007,\n #fff14a,\n #eaa700,\n #fc9200,\n #ffcb05,\n #feb308,\n #ecc218\n );\n --error-background-color: linear-gradient(\n 135deg,\n #e20807,\n #d40000,\n #9a001a,\n #65100d,\n #e20807,\n #d40000,\n #9a001a,\n #65100d,\n #e20807,\n #d40000,\n #9a001a,\n #65100d,\n #FFFFFF,\n #ff0000,\n #9a001a,\n #e20807,\n #65100d\n );\n }\n\n @keyframes ButtonStartVpnAnimation {\n 0% {\n background-position: 0;\n }\n\n 100% {\n background-position: 300%;\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n *,\n *::after,\n *::before {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n html,\n body {\n width: 100%;\n height: 100%;\n }\n\n body {\n background: #000000;\n padding-bottom: var(--space-nav-bar);\n }\n\n main {\n width: auto;\n height: 89%;\n\n display: flex;\n\n position: relative;\n\n padding: 0 0 0 0;\n\n overflow: hidden;\n }\n\n section.home {\n width: 100vw;\n min-width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n position: absolute;\n top: 0;\n left: 0;\n\n opacity: 0;\n transform: translateX(100%);\n\n transition: opacity 0.3s ease, transform 0.3s ease;\n\n overflow: hidden;\n }\n\n section.home header {\n width: 100%;\n height: 20%;\n max-height: 135px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n padding: var(--space-status-bar) 10px 0 10px;\n\n background-image: url();\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n\n section.home header img {\n width: 80%;\n }\n\n section.home span#version {\n position: absolute;\n bottom: 3%;\n left: 3%;\n\n color: #FFFFFF;\n }\n\n section.container-carrier-selector-button,\n section.status-connection {\n width: 100%;\n height: 10%;\n max-height: 60px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin: 10% 0 0 0;\n }\n\n section.container-carrier-selector-button button,\n section.status-connection span {\n width: 90%;\n height: 65%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n\n position: relative;\n\n border: 0px;\n border-radius: 20px;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC 85%);\n background-size: 300%;\n\n animation: 8s infinite ButtonStartVpnAnimation;\n }\n\n section.container-carrier-selector-button button svg {\n color: #ffffff;\n }\n\n section.container-carrier-selector-button button span {\n color: #ffffff;\n font-size: 12px;\n }\n\n section.container-button-start-stop-vpn {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin: 20% 0 0 0;\n }\n\n section.container-button-start-stop-vpn button {\n width: 150px;\n height: 150px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n position: relative;\n\n border: 0;\n border-radius: 50%;\n\n background: linear-gradient(to top left, #41C8FF, #E81EFC 85%);\n }\n\n section.container-button-start-stop-vpn button svg {\n width: 50%;\n height: 50%;\n\n color: #ffffff;\n }\n\n section.container-button-start-stop-vpn button::before,\n section.container-button-start-stop-vpn button::after {\n width: calc(100% + 10px);\n height: calc(100% + 10px);\n\n content: \"\";\n\n position: absolute;\n z-index: -1;\n\n border-radius: 50%;\n\n background: var(--default-background-color);\n background-size: 300%;\n\n animation: 8s infinite ButtonStartVpnAnimation;\n }\n\n section.container-button-start-stop-vpn button::after {\n filter: blur(30px);\n }\n\n section.status-connection span {\n width: 75%;\n color: #ffffff;\n }\n\n section.renew-alert {\n width: 100%;\n height: auto;\n\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n margin: auto 0 auto 0;\n }\n\n section.renew-alert.active {\n display: flex;\n }\n\n section.renew-alert button {\n padding: 2.5% 10%;\n\n border: 0;\n border-radius: 60px;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC 85%);\n background-size: 300%;\n\n animation: 8s infinite ButtonStartVpnAnimation;\n }\n\n section.renew-alert button span {\n color: #ffffff;\n }\n\n section.profile,\n section.carrier-list,\n section.container-tools,\n section.container-logs,\n section.container-error {\n width: 100%;\n min-width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n position: absolute;\n top: 0;\n left: 0;\n\n padding: var(--space-status-bar) 0 0 0;\n\n opacity: 0;\n\n transform: translateX(100%);\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n\n section.carrier-list {\n height: 97%;\n }\n\n section.container-tools {\n gap: 1px;\n }\n\n section.loading,\n section.checkuser,\n section.clean-data-app,\n section.hotspot-container,\n section.terms-container {\n width: 100%;\n min-width: 100%;\n height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n position: absolute;\n top: 0;\n left: 0;\n z-index: 999999999;\n\n padding-top: 15%;\n\n background: rgba(0, 0, 0, 0.3);\n\n opacity: 0;\n transform: scale(0);\n transform-origin: center;\n\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n\n section.hotspot-container {\n padding-top: 0;\n }\n\n section.loading.active,\n section.checkuser.active,\n section.clean-data-app.active,\n section.hotspot-container.active,\n section.terms-container.active {\n opacity: 1;\n transform: scale(1);\n }\n\n section.loading section,\n section.checkuser section,\n section.clean-data-app section,\n section.hotspot-container section,\n section.terms-container section {\n width: 80%;\n height: auto;\n min-height: 50%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n border-radius: 10px;\n\n background: #000000;\n\n overflow: hidden;\n }\n\n section.loading section header,\n section.checkuser section header,\n section.clean-data-app section header,\n section.hotspot-container section header,\n section.terms-container section header {\n width: 100%;\n height: auto;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n position: relative;\n\n padding: 4% 2% 4% 2%;\n\n border-bottom: 2px solid #03142d;\n }\n\n section.loading section header h1,\n section.checkuser section header h1,\n section.clean-data-app section header h1,\n section.hotspot-container section header h1,\n section.terms-container section header h1 {\n margin-left: auto;\n\n color: #FFFFFF;\n font-size: 0.8rem;\n }\n\n @media (max-width: 280px) {\n section.clean-data-app section header h1 {\n font-size: 0.7rem;\n }\n }\n\n section.loading section header svg,\n section.checkuser section header svg,\n section.clean-data-app section header svg,\n section.hotspot-container section header svg,\n section.terms-container section header svg {\n margin-left: auto;\n\n color: #FFFFFF;\n }\n\n section.terms-container section p {\n width: 95%;\n height: auto;\n max-height: 350px;\n\n padding: 5% 0;\n\n color: #FFFFFF;\n text-align: center;\n\n overflow: auto;\n }\n\n section.loading section div.loading {\n width: 150px;\n height: 150px;\n\n margin-top: auto;\n margin-bottom: auto;\n\n border-top: 4px solid #FFFFFF;\n border-right: 4px solid #FFFFFF;\n border-bottom: 4px solid #FFFFFF;\n border-left: 4px solid transparent;\n border-radius: 50%;\n\n background-color: transparent;\n\n animation: spin 1s linear infinite;\n }\n\n section.checkuser section section {\n width: 100%;\n height: auto;\n min-height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n margin: auto 0 auto 0;\n padding: 3% 0;\n\n border-radius: 0;\n }\n\n section.checkuser section section div:first-child {\n margin: 0;\n }\n\n section.checkuser section section div {\n width: 90%;\n height: auto;\n\n display: flex;\n align-items: center;\n gap: 10px;\n\n margin: 5% 0 0 0;\n padding: 3% 3%;\n\n border-radius: 10px;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC 85%);\n background-size: 300%;\n\n animation: 8s infinite ButtonStartVpnAnimation;\n }\n\n section.checkuser section section div svg,\n section.checkuser section section div span {\n color: #ffffff;\n }\n\n section.checkuser section section div span {\n font-size: 0.8rem;\n }\n\n section.clean-data-app section section,\n section.hotspot-container section section {\n width: 100%;\n height: auto;\n min-height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n margin: auto 0 auto 0;\n padding: 8% 0;\n\n border-radius: 0;\n }\n\n section.clean-data-app section section svg,\n section.hotspot-container section section svg {\n width: 30%;\n height: auto;\n\n color: #ffff00;\n font-size: 8rem;\n }\n\n section.hotspot-container section section svg {\n width: 20%;\n height: auto;\n\n color: #FFFFFF;\n }\n\n section.clean-data-app section section h1,\n section.hotspot-container section section h1 {\n color: #FFFFFF;\n font-size: 1rem;\n }\n\n section.clean-data-app section section p,\n section.hotspot-container section section p {\n margin: 5% 0 8% 0;\n padding: 0 3%;\n\n color: #FFFFFF;\n text-align: center;\n font-family: Arial, sans-serif;\n }\n\n section.hotspot-container section section p {\n width: 100%;\n height: 10%;\n max-height: 300px;\n\n overflow: auto;\n }\n\n section.clean-data-app section section button,\n section.hotspot-container section section button {\n display: flex;\n align-items: center;\n justify-content: center;\n\n padding: 4% 10%;\n\n border: 0;\n border-radius: 60px;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC 85%);\n background-size: 300%;\n\n animation: 8s infinite ButtonStartVpnAnimation;\n }\n\n section.clean-data-app section section button span,\n section.hotspot-container section section button span {\n color: #ffffff;\n }\n\n section.profile header,\n section.carrier-list header,\n section.container-tools header,\n section.container-logs header,\n section.container-error header {\n width: 100%;\n height: 10%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n position: relative;\n\n padding: 0 20px 0 20px;\n\n background: #000000;\n }\n\n section.profile header::before,\n section.profile header::after,\n section.carrier-list header::before,\n section.carrier-list header::after,\n section.container-tools header::before,\n section.container-tools header::after,\n section.container-logs header::before,\n section.container-logs header::after,\n section.container-error header::before,\n section.container-error header::after {\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n\n content: \"\";\n\n position: absolute;\n z-index: -1;\n\n background: var(--default-background-color);\n background-size: 300%;\n\n animation: 15s infinite ButtonStartVpnAnimation;\n }\n\n section.profile header::after,\n section.carrier-list header::after,\n section.container-tools header::after,\n section.container-logs header::after,\n section.container-error header::after {\n filter: blur(5px);\n }\n\n section.profile header svg,\n section.carrier-list header svg,\n section.container-tools header svg,\n section.container-logs header svg,\n section.container-error header svg {\n width: 20px;\n height: 20px;\n\n margin: 0 auto 0 0;\n\n fill: url(#grad);\n }\n\n section.profile header h1,\n section.carrier-list header h1,\n section.container-tools header h1,\n section.container-logs header h1,\n section.container-error header h1 {\n margin: 0 auto 0 0;\n\n color: #FFFFFF;\n font-size: 0.9rem;\n }\n\n section.profile form {\n width: 100%;\n height: auto;\n\n padding: 0px 10px;\n\n display: flex;\n flex-direction: column;\n }\n\n section.profile form fieldset {\n width: 100%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n position: relative;\n\n margin: 0% 0px;\n padding: 5px 10px;\n\n border: 0px solid #00ff00;\n border-radius: 5px;\n\n background: #000000;\n }\n\n section.profile form fieldset::before,\n section.profile form fieldset::after {\n width: calc(100% + 2px);\n height: calc(100% + 17px);\n\n content: \"\";\n\n position: absolute;\n top: -16px;\n right: 0;\n bottom: 0;\n left: -1px;\n z-index: -1;\n\n border-radius: 5px;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC);\n background-size: 300%;\n\n animation: 20s infinite ButtonStartVpnAnimation;\n }\n\n section.profile form fieldset::after {\n filter: blur(3px);\n }\n\n section.profile form fieldset legend {\n padding: 0px 7px 0px 5px;\n background: #000000;\n }\n\n section.profile form fieldset legend svg {\n width: auto;\n height: 1.563rem;\n\n fill: url(#grad);\n }\n\n section.profile form fieldset p {\n color: #FFFFFF;\n font-size: 0.9rem;\n font-style: italic;\n }\n\n section.profile form fieldset:nth-child(2) {\n margin-top: 5%;\n\n padding: 0px 10px 20px 10px;\n }\n\n section.profile form fieldset:nth-child(2)::after,\n section.profile form fieldset:nth-child(2)::before {\n height: calc(100% + 15px);\n top: -14px;\n }\n\n section.profile form fieldset:nth-child(2) legend {\n color: #FFFFFF;\n }\n\n section.profile form fieldset:nth-child(2) label {\n margin-right: auto;\n color: #FFFFFF;\n }\n\n section.profile form fieldset:nth-child(2) label.hidden {\n display: none;\n }\n\n section.profile form fieldset:nth-child(2) div {\n width: 100%;\n height: 40px;\n\n display: flex;\n align-items: center;\n\n margin: 0 0 0 auto;\n\n border: 1px solid #dddddd;\n border-radius: 5px;\n\n overflow: hidden;\n }\n\n section.profile form fieldset:nth-child(2) div.hidden {\n display: none;\n }\n\n section.profile form fieldset:nth-child(2) div svg {\n width: 15%;\n max-width: 40px;\n height: 100%;\n max-height: 40px;\n\n padding: 3%;\n\n color: #FFFFFF;\n }\n\n section.profile form fieldset:nth-child(2) div svg.hidden {\n display: none;\n }\n\n section.profile form fieldset:nth-child(2) div input {\n width: 100%;\n height: 100%;\n\n padding: 0px 5px;\n\n border: 0px;\n border-left: 1px solid #dddddd;\n outline: none;\n\n color: #FFFFFF;\n\n background: transparent;\n }\n\n section.profile form fieldset:nth-child(2) label[for=\"passworddiv\"] {\n margin-top: 4%;\n }\n\n section.profile form fieldset:nth-child(2) label[for=\"uuiddiv\"] {\n margin-top: 4%;\n }\n\n section.profile form fieldset:nth-child(2) button {\n width: 80%;\n min-width: 200px;\n height: 20%;\n min-height: 30px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n\n margin: 6% auto 0px auto;\n\n border: 0px;\n border-radius: 20px;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC 85%);\n background-size: 300%;\n\n animation: 5s infinite ButtonStartVpnAnimation;\n }\n\n section.profile form fieldset:nth-child(2) button svg {\n color: #ffffff;\n\n filter: drop-shadow(1px 1px 2px rgba(72, 79, 87, 0.5));\n }\n\n section.profile form fieldset:nth-child(2) button span {\n color: #ffffff;\n font-family: Arial, sans-serif;\n font-weight: 500;\n\n text-shadow: 1px 1px 2px rgba(72, 79, 87, 0.5);\n }\n\n section.carrier-list section {\n width: 100%;\n height: 90%;\n\n overflow-y: auto;\n }\n\n section.carrier-list section div:first-child {\n margin: 0;\n }\n\n section.carrier-list section div {\n width: 100%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n }\n\n section.carrier-list section div h1 {\n width: 100%;\n height: 50px;\n\n display: flex;\n align-items: center;\n\n padding: 0px 3%;\n\n color: #FFFFFF;\n font-size: 0.9rem;\n\n background: #000000;\n }\n\n section.carrier-list section div ul {\n width: 100%;\n height: auto;\n list-style: none;\n }\n\n section.carrier-list section div ul li {\n width: 100%;\n height: 60px;\n\n display: flex;\n align-items: center;\n gap: 5px;\n\n position: relative;\n\n margin: 1% 0;\n padding: 0 2%;\n\n background: #000000;\n\n color: #FFFFFF;\n\n /* overflow: hidden; */ /* REMOVER CASO QUEIRA A BORDA ANIMADA E COLORIDA */\n }\n\n section.carrier-list section div ul li::before,\n section.carrier-list section div ul li::after {\n width: 100%;\n height: calc(100% + 2px);\n\n content: \"\";\n\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC, #E871C3);\n background-size: 300%;\n\n animation: 15s infinite ButtonStartVpnAnimation;\n }\n\n section.carrier-list section div ul li img {\n width: 30px;\n }\n\n section.carrier-list section div ul li span {\n width: calc(100% - 30px);\n\n white-space: nowrap;\n overflow: auto;\n }\n\n section.carrier-list section div ul li svg {\n width: 30px;\n\n display: none;\n }\n\n section.carrier-list section div ul li.active svg {\n display: block;\n }\n\n section.container-tools section {\n width: 100%;\n height: 89%;\n\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n margin: 0 auto 0 auto;\n padding: 2% 0 0 0;\n\n background: transparent;\n\n overflow: auto;\n }\n\n section.container-tools section button {\n width: 100%;\n height: auto;\n\n display: flex;\n align-items: center;\n gap: 5px;\n\n padding: 10px;\n\n border: 0px solid transparent;\n border-bottom: 1px solid #ddd;\n\n background: transparent;\n }\n\n section.container-tools section button svg:first-child {\n width: 20px;\n height: 100%;\n\n margin: 0 10px 0 0;\n\n color: #FFFFFF;\n }\n\n section.container-tools section button div {\n max-width: 83%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n }\n\n section.container-tools section button div h3 {\n color: #FFFFFF;\n }\n\n section.container-tools section button div p {\n color: #FFFFFF;\n text-align: left;\n }\n\n section.container-tools section button svg:last-child {\n width: 16px;\n height: 100%;\n\n margin: 0 0 0 auto;\n\n color: #FFFFFF;\n }\n\n section.container-logs section {\n width: 100%;\n height: 85%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n }\n\n section.container-logs section p {\n width: 100%;\n height: 90%;\n\n padding: 3% 2% 0 2%;\n outline: none;\n\n border: 0;\n\n color: #FFFFFF;\n font-family: Arial, sans-serif;\n font-size: 0.7rem;\n\n overflow: auto;\n }\n\n section.container-logs section button {\n width: auto;\n height: auto;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n\n padding: 3% 7%;\n\n position: relative;\n\n border: 0px;\n border-radius: 20px;\n\n background: radial-gradient(circle, #41C8FF, #E81EFC 85%);\n background-size: 300%;\n\n animation: 8s infinite ButtonStartVpnAnimation;\n }\n\n section.container-logs section button svg {\n color: #ffffff;\n }\n\n section.container-logs section button span {\n color: #ffffff;\n }\n\n section.container-error section {\n width: 100%;\n height: 85%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n section.container-error section h1 {\n margin: 1% 0 0 0;\n color: #FFFFFF;\n font-size: 0.9rem;\n }\n\n section.container-error section p {\n margin: 3% 0 0 0;\n padding: 0 3%;\n\n color: #FFFFFF;\n text-align: center;\n font-size: 0.8rem;\n font-family: Arial, sans-serif;\n overflow: auto;\n }\n\n section.active {\n opacity: 1;\n transform: translateX(0%);\n }\n\n section.container-menu {\n width: 100%;\n height: 10%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n\n position: relative;\n\n margin: auto 0px 0px 0px;\n padding: 0px 10px;\n\n background-color: #000000;\n }\n\n section.container-menu::before,\n section.container-menu::after {\n width: calc(100%);\n height: calc(100% + 4px);\n\n content: \"\";\n\n position: absolute;\n left: 0;\n right: 0;\n bottom: -2px;\n z-index: -1;\n\n background: linear-gradient(135deg, #41C8FF, #E81EFC);\n background-size: 300%;\n\n animation: 4s infinite alternate-reverse ButtonStartVpnAnimation;\n }\n\n section.container-menu::after {\n filter: blur(10px);\n }\n\n section.container-menu button {\n flex: 1;\n width: 60px;\n height: 50%;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 8px;\n\n position: relative;\n z-index: 5;\n\n border: 0px;\n\n background: transparent;\n }\n\n section.container-menu button:nth-child(2) {\n margin-right: 10px;\n }\n\n section.container-menu button:nth-child(3) {\n margin-right: 10px;\n }\n\n section.container-menu button:last-child {\n margin-right: 5px;\n }\n\n section.container-menu button svg {\n color: #FFFFFF;\n }\n\n section.container-menu button span {\n color: #FFFFFF;\n text-transform: uppercase;\n font-size: 0.7rem;\n }\n\n section.container-toast {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n position: absolute;\n left: 0;\n bottom: 2.5%;\n right: 0;\n z-index: 99999999;\n\n padding: 10px 10px;\n\n transform: scale(0);\n }\n\n section.container-toast div.toast {\n width: auto;\n height: auto;\n\n display: flex;\n align-items: center;\n\n position: relative;\n\n padding: 0px 5px 0px 0px;\n\n border: 1px solid #cccccc;\n border-radius: 10px;\n\n overflow: hidden;\n\n background: #000000;\n }\n\n section.container-toast div.toast.error {\n border: 1px solid #ff0000;\n }\n\n section.container-toast div.toast div.icon {\n width: auto;\n height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n padding: 5px 4px 5px 7px;\n\n overflow: hidden;\n\n background: #000000;\n }\n\n section.container-toast div.toast.error div.icon {\n border-right: 1px solid #ff0000;\n }\n\n section.container-toast div.toast div.icon img {\n width: auto;\n height: 100%;\n min-height: 30px;\n }\n\n section.container-toast div.toast span {\n margin-left: 5px;\n\n color: #FFFFFF;\n font-family: Arial, sans-serif;\n font-size: 0.8rem;\n font-weight: 300;\n }\n\n @media (max-width: 280px) {\n section.container-menu button {\n flex: 1;\n width: 60px;\n max-width: 60px;\n height: 50%;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 8px;\n\n position: relative;\n z-index: 5;\n\n border: 0px;\n\n background: transparent;\n }\n\n section.container-menu button:last-child {\n margin-right: 10px;\n }\n\n section.container-menu button span {\n font-size: 0.5rem;\n }\n }\n\n @media only screen and (max-width: 576px) {\n section.container-menu button {\n flex: 1;\n width: 60px;\n max-width: 60px;\n height: 50%;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 8px;\n\n position: relative;\n z-index: 5;\n\n border: 0px;\n\n background: transparent;\n }\n\n section.container-menu button:last-child {\n margin-right: 10px;\n }\n\n section.container-menu button span {\n font-size: 0.5rem;\n }\n }\n\n .spaceInDown {\n -webkit-animation-name: spaceInDown;\n animation-name: spaceInDown;\n }\n\n @-webkit-keyframes spaceInDown {\n 0% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0.2) translate(0%, 200%);\n }\n 100% {\n opacity: 1;\n transform-origin: 50% 100%;\n transform: scale(1) translate(0%, 0%);\n }\n }\n @keyframes spaceInDown {\n 0% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0.2) translate(0%, 200%);\n }\n 100% {\n opacity: 1;\n transform-origin: 50% 100%;\n transform: scale(1) translate(0%, 0%);\n }\n }\n\n .spaceOutDown {\n -webkit-animation-name: spaceOutDown;\n animation-name: spaceOutDown;\n }\n\n @-webkit-keyframes spaceOutDown {\n 0% {\n opacity: 1;\n transform-origin: 50% 100%;\n transform: scale(1) translate(0%, 0%);\n }\n 100% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0.2) translate(0%, 200%);\n }\n }\n @keyframes spaceOutDown {\n 0% {\n opacity: 1;\n transform-origin: 50% 100%;\n transform: scale(1) translate(0%, 0%);\n }\n 100% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0.2) translate(0%, 200%);\n }\n }\n\n .masterSshAnimatedTime {\n -webkit-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n }\n\n @media (print), (prefers-reduced-motion) {\n .masterSshAnimatedTime {\n -webkit-animation: unset !important;\n animation: unset !important;\n transition: none !important;\n }\n }\n </style>\n </head>\n <body>\n <main>\n <section class=\"home active\">\n <header>\n <img src=\"./logo.png\" alt=\"LOGO DO APP\" id=\"app_logo\" />\n </header>\n\n <section class=\"container-carrier-selector-button\">\n <button type=\"button\" id=\"carrier-list-button\">\n <span id=\"value-of-carrier-list-button\"\n >SELECIONE UMA CONFIGURAÇÃO</span\n >\n </button>\n </section>\n\n <section class=\"container-button-start-stop-vpn\">\n <button\n type=\"button\"\n title=\"Iniciar ou Parar conexão VPN\"\n id=\"start-stop-vpn-button\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-power\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M7.5 1v7h1V1h-1z\" />\n <path\n d=\"M3 8.812a4.999 4.999 0 0 1 2.578-4.375l-.485-.874A6 6 0 1 0 11 3.616l-.501.865A5 5 0 1 1 3 8.812z\"\n />\n </svg>\n </button>\n </section>\n\n <section class=\"status-connection\">\n <span id=\"status-connection\">LBL_DISCONNECTED</span>\n </section>\n\n <section class=\"renew-alert\">\n <button type=\"button\" id=\"renew-button\">\n <span>RENOVAR</span>\n </button>\n </section>\n\n <span id=\"version\">Carregando versão...</span>\n </section>\n\n <section class=\"carrier-list\">\n <header>\n <svg\n id=\"back-carrier-container\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-return-left\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M14.5 1.5a.5.5 0 0 1 .5.5v4.8a2.5 2.5 0 0 1-2.5 2.5H2.707l3.347 3.346a.5.5 0 0 1-.708.708l-4.2-4.2a.5.5 0 0 1 0-.708l4-4a.5.5 0 1 1 .708.708L2.707 8.3H12.5A1.5 1.5 0 0 0 14 6.8V2a.5.5 0 0 1 .5-.5z\"\n />\n </svg>\n\n <h1>SELECIONE UMA OPÇÃO</h1>\n </header>\n\n <section></section>\n </section>\n\n <section class=\"profile\">\n <header>\n <svg\n id=\"back-profile-container\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-return-left\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M14.5 1.5a.5.5 0 0 1 .5.5v4.8a2.5 2.5 0 0 1-2.5 2.5H2.707l3.347 3.346a.5.5 0 0 1-.708.708l-4.2-4.2a.5.5 0 0 1 0-.708l4-4a.5.5 0 1 1 .708.708L2.707 8.3H12.5A1.5 1.5 0 0 0 14 6.8V2a.5.5 0 0 1 .5-.5z\"\n />\n </svg>\n\n <h1>PERFIL</h1>\n </header>\n\n <form>\n <fieldset>\n <legend>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-person-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n 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 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\"\n />\n <path\n d=\"M16 12.5a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Zm-3.5-2a.5.5 0 0 0-.5.5v1.5a.5.5 0 0 0 1 0V11a.5.5 0 0 0-.5-.5Zm0 4a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z\"\n />\n </svg>\n </legend>\n\n <p>\n Insira suas credenciais nos campos abaixo e clique no botão\n \"Salvar credenciais\". Isso o levará de volta à página inicial do\n aplicativo, onde você poderá se conectar e desfrutar da conexão.\n </p>\n </fieldset>\n\n <fieldset>\n <legend>Informe suas credenciais</legend>\n\n <label for=\"usernamediv\">Nome de usuário</label>\n\n <div id=\"usernamediv\">\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\n id=\"username\"\n type=\"text\"\n name=\"username\"\n placeholder=\"Usuário\"\n />\n </div>\n\n <label for=\"passworddiv\">Senha</label>\n\n <div id=\"passworddiv\">\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\n id=\"password\"\n type=\"password\"\n name=\"password\"\n placeholder=\"Senha\"\n />\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 hidden\"\n id=\"eye-not-view\"\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\"\n id=\"eye-view\"\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 <label for=\"uuiddiv\" class=\"hidden\">UUID</label>\n\n <div id=\"uuiddiv\" class=\"hidden\">\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 id=\"uuid\" type=\"text\" placeholder=\"UUID\" />\n </div>\n\n <button\n id=\"save-creds\"\n type=\"button\"\n title=\"Salvar informações de usuario e 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-save\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M2 1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H9.5a1 1 0 0 0-1 1v7.293l2.646-2.647a.5.5 0 0 1 .708.708l-3.5 3.5a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L7.5 9.293V2a2 2 0 0 1 2-2H14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h2.5a.5.5 0 0 1 0 1H2z\"\n />\n </svg>\n\n <span>Salvar credenciais</span>\n </button>\n </fieldset>\n </form>\n </section>\n\n <section class=\"container-tools\">\n <header>\n <svg\n id=\"back-tools-container\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-return-left\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M14.5 1.5a.5.5 0 0 1 .5.5v4.8a2.5 2.5 0 0 1-2.5 2.5H2.707l3.347 3.346a.5.5 0 0 1-.708.708l-4.2-4.2a.5.5 0 0 1 0-.708l4-4a.5.5 0 1 1 .708.708L2.707 8.3H12.5A1.5 1.5 0 0 0 14 6.8V2a.5.5 0 0 1 .5-.5z\"\n />\n </svg>\n\n <h1>FERRAMENTAS</h1>\n </header>\n\n <section>\n <button type=\"button\" id=\"register-button\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-list-columns\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M0 .5A.5.5 0 0 1 .5 0h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 0 .5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-13 2A.5.5 0 0 1 .5 2h8a.5.5 0 0 1 0 1h-8a.5.5 0 0 1-.5-.5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-13 2A.5.5 0 0 1 .5 4h10a.5.5 0 0 1 0 1H.5a.5.5 0 0 1-.5-.5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-13 2A.5.5 0 0 1 .5 6h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-13 2A.5.5 0 0 1 .5 8h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-13 2a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-13 2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-13 2a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H.5a.5.5 0 0 1-.5-.5Zm13 0a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Z\"\n />\n </svg>\n\n <div>\n <h3>REGISTRO</h3>\n <p>\n Verifica todos os detalhes do que acontece ao abrir e conectar\n no app.\n </p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"speedtest-tool\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-activity\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M6 2a.5.5 0 0 1 .47.33L10 12.036l1.53-4.208A.5.5 0 0 1 12 7.5h3.5a.5.5 0 0 1 0 1h-3.15l-1.88 5.17a.5.5 0 0 1-.94 0L6 3.964 4.47 8.171A.5.5 0 0 1 4 8.5H.5a.5.5 0 0 1 0-1h3.15l1.88-5.17A.5.5 0 0 1 6 2Z\"\n />\n </svg>\n\n <div>\n <h3>SPEEDTEST</h3>\n <p>Teste a velocidade da sua conexão</p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"hotspot-button-tools\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-broadcast\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707zm2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708zm5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708zm2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM10 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0z\"\n />\n </svg>\n\n <div>\n <h3>HOTSPOT</h3>\n <p>\n Aqui você pode compartilar sua conexão VPN usando o roteador do\n seu celular.\n </p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"apn-tool\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-broadcast-pin\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707zm2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708zm5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708zm2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM6 8a2 2 0 1 1 2.5 1.937V15.5a.5.5 0 0 1-1 0V9.937A2 2 0 0 1 6 8z\"\n />\n </svg>\n\n <div>\n <h3>CONFIGURAR APN</h3>\n <p>Aqui você pode fazer ajustes no APN</p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"battery-tool\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-battery-charging\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M9.585 2.568a.5.5 0 0 1 .226.58L8.677 6.832h1.99a.5.5 0 0 1 .364.843l-5.334 5.667a.5.5 0 0 1-.842-.49L5.99 9.167H4a.5.5 0 0 1-.364-.843l5.333-5.667a.5.5 0 0 1 .616-.09z\"\n />\n <path\n d=\"M2 4h4.332l-.94 1H2a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h2.38l-.308 1H2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z\"\n />\n <path\n d=\"M2 6h2.45L2.908 7.639A1.5 1.5 0 0 0 3.313 10H2V6zm8.595-2-.308 1H12a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H9.276l-.942 1H12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-1.405z\"\n />\n <path\n d=\"M12 10h-1.783l1.542-1.639c.097-.103.178-.218.241-.34V10zm0-3.354V6h-.646a1.5 1.5 0 0 1 .646.646zM16 8a1.5 1.5 0 0 1-1.5 1.5v-3A1.5 1.5 0 0 1 16 8z\"\n />\n </svg>\n\n <div>\n <h3>OTIMIZAÇÃO DE BATERIA</h3>\n <p>\n Aqui você consegue desativar a otimização de bateria que acaba\n encerrando o aplicativo sem a sua permissão!\n </p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"checkuser-tool\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-person-lines-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-5 6s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H1zM11 3.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5zm.5 2.5a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4zm2 3a.5.5 0 0 0 0 1h2a.5.5 0 0 0 0-1h-2zm0 3a.5.5 0 0 0 0 1h2a.5.5 0 0 0 0-1h-2z\"\n />\n </svg>\n\n <div>\n <h3>DETALHES DO LOGIN</h3>\n <p>\n Aqui você consegue visualizar alguns detalhes do seu perfil.\n </p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"button-open-clear-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\n <div>\n <h3>LIMPAR DADOS</h3>\n <p>\n Aqui você pode fazer a limpeza do cache e dados do aplicativo.\n </p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n\n <button type=\"button\" id=\"button-open-terms-app\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-journal-medical\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 4a.5.5 0 0 1 .5.5v.634l.549-.317a.5.5 0 1 1 .5.866L9 6l.549.317a.5.5 0 1 1-.5.866L8.5 6.866V7.5a.5.5 0 0 1-1 0v-.634l-.549.317a.5.5 0 1 1-.5-.866L7 6l-.549-.317a.5.5 0 0 1 .5-.866l.549.317V4.5A.5.5 0 0 1 8 4zM5 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-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z\"\n />\n <path\n d=\"M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2z\"\n />\n <path\n d=\"M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1z\"\n />\n </svg>\n\n <div>\n <h3>TERMOS DE USO</h3>\n <p>\n Aqui você consegue ler os termos de uso e licença do aplicativo.\n </p>\n </div>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-chevron-right\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n />\n </svg>\n </button>\n </section>\n </section>\n\n <section class=\"container-logs\">\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-arrow-return-left\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M14.5 1.5a.5.5 0 0 1 .5.5v4.8a2.5 2.5 0 0 1-2.5 2.5H2.707l3.347 3.346a.5.5 0 0 1-.708.708l-4.2-4.2a.5.5 0 0 1 0-.708l4-4a.5.5 0 1 1 .708.708L2.707 8.3H12.5A1.5 1.5 0 0 0 14 6.8V2a.5.5 0 0 1 .5-.5z\"\n />\n </svg>\n\n <h1>REGISTRO</h1>\n </header>\n\n <section>\n <p></p>\n\n <button type=\"button\" id=\"clear-logs\">\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\n <span>LIMPAR REGISTRO</span>\n </button>\n </section>\n </section>\n\n <section class=\"loading\">\n <section>\n <header>\n <h1>CARREGANDO INFORMAÇÕES</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 id=\"loading-container-close\"\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\"></div>\n </section>\n </section>\n\n <section class=\"checkuser\">\n <section>\n <header>\n <h1>DETALHES DO USUÁRIO</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 id=\"checkuser-close\"\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 <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-person-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"\n />\n </svg>\n\n <span id=\"checkuser-name\">USUÁRIO: ALEX</span>\n </div>\n\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-calendar-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V5h16V4H0V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5z\"\n />\n </svg>\n\n <span id=\"checkuser-expires\">EXPIRA EM: 25/09/2023</span>\n </div>\n\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-clock-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71V3.5z\"\n />\n </svg>\n\n <span id=\"checkuser-remaing-days\">RESTA: 30 DIAS</span>\n </div>\n\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-phone-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3 2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V2zm6 11a1 1 0 1 0-2 0 1 1 0 0 0 2 0z\"\n />\n </svg>\n\n <span id=\"checkuser-total-conection\">CONEXÕES: 1/10</span>\n </div>\n </section>\n </section>\n </section>\n\n <section class=\"clean-data-app\">\n <section>\n <header>\n <h1>DESEJA CONFIRMAR ESSA AÇÃO ?</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 id=\"hidden-clear-data-app\"\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 <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation-lg\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.005 3.1a1 1 0 1 1 1.99 0l-.388 6.35a.61.61 0 0 1-1.214 0L7.005 3.1ZM7 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0Z\"\n />\n </svg>\n\n <h1>TEM CERTEZA DA AÇÃO ?</h1>\n\n <p>\n Ao efetuar a ação de limpar os dados do aplicativo, será possível\n carregar somente as configurações mais recentes mediante uma\n conexão ativa com a internet.\n </p>\n\n <button type=\"button\" id=\"confirm-clean-data-app\">\n <span>CONFIRMAR</span>\n </button>\n </section>\n </section>\n </section>\n\n <section class=\"hotspot-container\">\n <section>\n <header>\n <h1>ROTEADOR WIFI - HOTSPOT</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 id=\"hidden-hotspot-container\"\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 <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-router-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M5.525 3.025a3.5 3.5 0 0 1 4.95 0 .5.5 0 1 0 .707-.707 4.5 4.5 0 0 0-6.364 0 .5.5 0 0 0 .707.707Z\"\n />\n <path\n d=\"M6.94 4.44a1.5 1.5 0 0 1 2.12 0 .5.5 0 0 0 .708-.708 2.5 2.5 0 0 0-3.536 0 .5.5 0 0 0 .707.707Z\"\n />\n <path\n d=\"M2.974 2.342a.5.5 0 1 0-.948.316L3.806 8H1.5A1.5 1.5 0 0 0 0 9.5v2A1.5 1.5 0 0 0 1.5 13H2a.5.5 0 0 0 .5.5h2A.5.5 0 0 0 5 13h6a.5.5 0 0 0 .5.5h2a.5.5 0 0 0 .5-.5h.5a1.5 1.5 0 0 0 1.5-1.5v-2A1.5 1.5 0 0 0 14.5 8h-2.306l1.78-5.342a.5.5 0 1 0-.948-.316L11.14 8H4.86L2.974 2.342ZM2.5 11a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1Zm4.5-.5a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm2.5.5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1Zm1.5-.5a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Zm2 0a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Z\"\n />\n <path d=\"M8.5 5.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0Z\" />\n </svg>\n\n <h1 id=\"title-hotspot\">ROTEAMENTO DESLIGADO</h1>\n\n <p>\n Ao ativar o hotspot com compartilhamento de VPN do seu celular, um\n IP local é gerado no seu dispositivo. Este IP é usado como proxy\n no dispositivo conectado à sua rede Wi-Fi.\n <br />\n <br />\n\n <b>SIGA ESTES PASSOS IMPORTANTES</b>\n\n <br />\n <br />\n 1 - Ligue o roteador do celular primeiro.\n <br /><br />\n 2 - Ative o compartilhamento de VPN.\n <br /><br />\n 3 - Use o botão para controlar o roteador.\n <br /><br />\n 4 - Encontre o segundo IP na barra de notificações.\n <br /><br />\n 5 - Copie o segundo IP e use como proxy no dispositivo conectado à\n rede.\n <br />\n <br />\n\n Lembre-se: O segundo IP é seu proxy. Isso garantirá o correto\n funcionamento do compartilhamento de VPN via hotspot do celular.\n </p>\n\n <button type=\"button\" id=\"enable-hotspot\">\n <span id=\"value-button-hotspot\">LIGAR HOTSPOT</span>\n </button>\n </section>\n </section>\n </section>\n\n <section class=\"terms-container\">\n <section>\n <header>\n <h1>TERMOS DE USO</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 id=\"hidden-terms-container\"\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 <p>\n Importante: Ao utilizar o nosso aplicativo, é fundamental que você\n esteja ciente e concorde com os seguintes pontos:\n\n <br /><br /><br />\n\n 1° - Nosso suporte está disponível para ajudar clientes que\n enfrentam problemas como dificuldades de conexão, informações\n incorretas, ou se o aplicativo não está instalado corretamente.\n\n <br /><br />\n\n 2° - Não somos responsáveis por questões relacionadas à manutenção\n da sua operadora, quedas na conexão causadas por fatores externos ou\n problemas climáticos que possam afetar a velocidade da sua internet\n através da VPN.\n\n <br /><br />\n\n 3° - Caso haja uma interrupção no serviço devido à operadora, não\n efetuamos reembolsos. No entanto, os dias em que o serviço ficar\n indisponível serão compensados quando a situação se normalizar,\n visto que há custos associados à manutenção dos servidores.\n\n <br /><br />\n\n 4° - Não nos responsabilizamos por sites e jogos que impeçam o uso\n da nossa VPN.\n\n <br /><br />\n\n 5° - É permitido usar apenas o número de dispositivos estipulado no\n seu contrato com o revendedor autorizado.\n\n <br /><br />\n\n 6° - É estritamente proibido o uso de aplicativos torrent ou P2P,\n pois eles podem prejudicar o desempenho dos nossos servidores.\n\n <br /><br />\n\n 7° - É importante que, independentemente da sua operadora, você faça\n uma recarga a cada 2 meses para garantir um serviço contínuo.\n\n <br /><br />\n\n 8° - Mantenha o aplicativo sempre atualizado, pois as atualizações\n são necessárias para garantir o bom funcionamento do serviço.\n\n <br /><br /><br /><br />\n\n Agradecemos por escolher o nosso aplicativo e desejamos a você uma\n ótima experiência de navegação!\n </p>\n </section>\n </section>\n\n <section class=\"container-error\">\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-arrow-return-left\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M14.5 1.5a.5.5 0 0 1 .5.5v4.8a2.5 2.5 0 0 1-2.5 2.5H2.707l3.347 3.346a.5.5 0 0 1-.708.708l-4.2-4.2a.5.5 0 0 1 0-.708l4-4a.5.5 0 1 1 .708.708L2.707 8.3H12.5A1.5 1.5 0 0 0 14 6.8V2a.5.5 0 0 1 .5-.5z\"\n />\n </svg>\n\n <h1>ERROR</h1>\n </header>\n\n <section>\n <h1 id=\"error-title\"></h1>\n\n <p id=\"error-log\"></p>\n </section>\n </section>\n\n <section class=\"container-toast masterSshAnimatedTime\">\n <div class=\"toast\">\n <div class=\"icon\">\n <img\n src=\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg id='Camada_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 135.77 164.67'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:url(%23Gradiente_sem_nome_11);%7D%3C/style%3E%3ClinearGradient id='Gradiente_sem_nome_11' x1='24.19' y1='15.77' x2='118.09' y2='127.68' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%23FA83DF'/%3E%3Cstop offset='1' stop-color='%23AD6CD7'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath class='cls-1' d='m67.53.02c14.32-.32,27.61,3.97,39.58,12.31,7.85,5.47,14.13,12.5,19.04,20.75,4.29,7.21,7.23,14.9,8.65,23.17,2.16,12.59.71,24.74-4.1,36.58-2.13,5.24-4.66,10.23-7.96,14.78-5.44,7.5-12.09,13.7-20.18,18.33-5.52,3.16-11.24,5.8-17.47,7.21-1.43.32-1.83,1.05-1.81,2.43.07,4.86.12,9.72.03,14.58-.12,6.79-4.78,12.64-11.12,14.04-3.59.79-7.23.65-10.61-.71-4.94-1.99-7.53-6.02-8.67-11.12-1.2-5.38-.23-10.79-.29-16.18-.02-2.37.02-2.41-2.17-3.02-6.27-1.76-12.26-4.16-17.85-7.53-6.56-3.96-12.21-8.95-17.08-14.87-7.12-8.65-11.79-18.46-14.03-29.42-1.14-5.57-1.71-11.21-1.39-16.89.26-4.6.97-9.15,2.15-13.61,2.16-8.15,5.69-15.68,10.58-22.52C23.34,13.62,37.48,4.46,55.25.99,59.19.22,63.17-.04,67.53.02Zm-14.33,123.77c-.1,2.03.1,4.56-.13,7.09-.17,1.82.29,2.24,2.12,2.24,7.39,0,14.78,0,22.17,0,1.16,0,2.33-.02,3.49.09,2.05.2,2.09.21,2.11-1.79.06-5.06-.41-10.11-.27-15.17.17-6.12,2.19-11.11,7.85-14.25,4.37-2.42,7.77-6.05,10.71-9.98,6.23-8.33,8.68-17.83,7.78-28.17-.26-3.02-.71-6.02-1.75-8.91-1.87-5.18-4.37-9.95-7.95-14.21-4.1-4.87-9.01-8.57-14.76-11.14-6.35-2.83-13.07-3.88-20.01-3.43-4.69.3-9.21,1.4-13.48,3.36-6.06,2.79-11.22,6.76-15.5,11.92-5.04,6.06-8,13.11-8.95,20.76-.94,7.53,0,15.02,3.26,22.1,3.43,7.4,8.25,13.64,15.3,17.76,5.8,3.38,8.18,8.23,8.02,14.69-.06,2.18,0,4.35,0,7.03Z'/%3E%3C/svg%3E\"\n alt=\"Icone do toast\"\n />\n </div>\n\n <span class=\"text\">Procurando atualizações</span>\n </div>\n </section>\n </main>\n\n <section class=\"container-menu\">\n <button id=\"home\" type=\"button\" title=\"Inicio\">\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 <defs>\n <linearGradient id=\"grad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" stop-color=\"#FA83DF\" />\n <stop offset=\"100%\" stop-color=\"#AD6CD7\" />\n </linearGradient>\n </defs>\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\n <span>Inicio</span>\n </button>\n\n <button id=\"login\" type=\"button\" title=\"Login\">\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>Perfil</span>\n </button>\n\n <button id=\"tools\" type=\"button\" title=\"Ferramentas\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-nut\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"m11.42 2 3.428 6-3.428 6H4.58L1.152 8 4.58 2h6.84zM4.58 1a1 1 0 0 0-.868.504l-3.428 6a1 1 0 0 0 0 .992l3.428 6A1 1 0 0 0 4.58 15h6.84a1 1 0 0 0 .868-.504l3.429-6a1 1 0 0 0 0-.992l-3.429-6A1 1 0 0 0 11.42 1H4.58z\"\n />\n <path\n d=\"M6.848 5.933a2.5 2.5 0 1 0 2.5 4.33 2.5 2.5 0 0 0-2.5-4.33zm-1.78 3.915a3.5 3.5 0 1 1 6.061-3.5 3.5 3.5 0 0 1-6.062 3.5z\"\n />\n </svg>\n\n <span>Ferramentas</span>\n </button>\n\n <button id=\"update\" type=\"button\" title=\"Atualizar\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-clockwise\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z\"\n />\n <path\n d=\"M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466z\"\n />\n </svg>\n\n <span>Atualizar</span>\n </button>\n </section>\n\n <!-- FUNÇÕES DO APP -->\n <script>\n const appGetStatusbarHeightSize = () => DtGetStatusBarHeight.execute()\n const appGetNavbarHeightSize = () => DtGetNavigationBarHeight.execute()\n\n const appTranslateText = (label) => DtTranslateText.execute(label)\n const appGetConfigLabel = (label) => DtGetAppConfig.execute(label)\n\n const AppUpdate = () => DtStartAppUpdate.execute()\n\n const appAllConfigs = () => DtGetConfigs.execute()\n const appSetConfig = (id) => DtSetConfig.execute(id)\n const appGetDefaultConfig = () => DtGetDefaultConfig.execute()\n const appGetConfigVersion = () =>\n `${DtGetLocalConfigVersion.execute() ?? \"1.0\"}`\n\n const appGetUsername = () => DtUsername.get()\n const appSetUsername = (username) => DtUsername.set(username)\n const appGetPassword = () => DtPassword.get()\n const appSetPassword = (password) => DtPassword.set(password)\n const appGetUUID = () => DtUuid.get()\n const appSetUUID = (uuid) => DtUuid.set(uuid)\n\n const appGetConnectionState = () => DtGetVpnState.execute()\n const appStartConnection = () => DtExecuteVpnStart.execute()\n const appStopConnection = () => DtExecuteVpnStop.execute()\n\n const appGetStatusHotspot = () => DtGetStatusHotSpotService.execute()\n const appStartHotspot = () => DtStartHotSpotService.execute()\n const appStopHotspot = () => DtStopHotSpotService.execute()\n\n const appGetLogs = () => DtGetLogs.execute()\n const appCleanLogs = () => DtClearLogs.execute()\n\n const appBatteryOptimize = () => DtIgnoreBatteryOptimizations.execute()\n const appApnConfiguration = () => DtStartApnActivity.execute()\n const appStartCheckUser = () => DtStartCheckUser.execute()\n const appIntoBrowser = (url) => DtStartWebViewActivity.execute(url)\n const appClearData = () => DtCleanApp.execute()\n </script>\n\n <!-- VARIAVEIS LET -->\n <script>\n let timeoutId\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 <!-- AÇÕES EM VARIAVEIS ROOT -->\n <script>\n document.documentElement.style.setProperty(\n \"--space-status-bar\",\n `${appGetStatusbarHeightSize() + 10}px`\n )\n document.documentElement.style.setProperty(\n \"--space-nav-bar\",\n `${appGetNavbarHeightSize() + 10}px`\n )\n </script>\n\n <!-- VARIAVEIS -->\n <script>\n const Body = Dom(\"body\")\n\n const HomeHeader = Dom(\"section.home header\")\n const LogoHeader = Dom(\"#app_logo\")\n\n const HomeContainer = Dom(\"section.home\")\n const CarrierContainer = Dom(\"section.carrier-list\")\n const ProfileContainer = Dom(\"section.profile\")\n const ToolsContainer = Dom(\"section.container-tools\")\n const RegisterContainer = Dom(\"section.container-logs\")\n const ErrorContainer = Dom(\"section.container-error\")\n const LoadingContainer = Dom(\"section.loading\")\n const CheckuserContainer = Dom(\"section.checkuser\")\n const ClearDataContainer = Dom(\"section.clean-data-app\")\n const HotspotContainer = Dom(\"section.hotspot-container\")\n const TermsContainer = Dom(\"section.terms-container\")\n\n const BackButtonCarrierContainer = Dom(\"#back-carrier-container\")\n const BackProfileContainer = Dom(\"#back-profile-container\")\n const BackToolsContainer = Dom(\"#back-tools-container\")\n const BackRegisterContainer = Dom(\"section.container-logs header svg\")\n const BackErrorContainer = Dom(\"section.container-error header svg\")\n const BackLoadingContainer = Dom(\"#loading-container-close\")\n const BackCheckuserContainer = Dom(\"#checkuser-close\")\n const BackClearDataContainer = Dom(\"#hidden-clear-data-app\")\n const BackHotspotContainer = Dom(\"#hidden-hotspot-container\")\n const BackTermsContainer = Dom(\"#hidden-terms-container\")\n\n const StatusConnectionValue = Dom(\"#status-connection\")\n\n const RenewContainer = Dom(\"section.renew-alert\")\n const ButtonRenew = Dom(\"#renew-button\")\n\n const ConfigVersion = Dom(\"#version\")\n\n const ButtonOfCarrierList = Dom(\"#carrier-list-button\")\n const ValueOfCarrierListButton = Dom(\"#value-of-carrier-list-button\")\n\n const ButtonVpnStartOrStop = Dom(\"#start-stop-vpn-button\")\n\n const LabelDivUser = Dom(\"label[for='usernamediv']\")\n const LabelDivPassword = Dom(\"label[for='passworddiv']\")\n const LabelUUID = Dom(\"label[for='uuiddiv']\")\n const DivUsername = Dom(\"#usernamediv\")\n const DivPassword = Dom(\"#passworddiv\")\n const DivUUID = Dom(\"#uuiddiv\")\n const InputUsername = Dom(\"#username\")\n const InputPassword = Dom(\"#password\")\n const InputUUID = Dom(\"#uuid\")\n const EyeViewPasswordInput = Dom(\"#eye-view\")\n const EyeNotViewPasswordInput = Dom(\"#eye-not-view\")\n const ButtonSaveCreds = Dom(\"#save-creds\")\n\n const CheckuserName = Dom(\"#checkuser-name\")\n const CheckuserExpires = Dom(\"#checkuser-expires\")\n const CheckuserRemainingDays = Dom(\"#checkuser-remaing-days\")\n const CheckuserTotalConnection = Dom(\"#checkuser-total-conection\")\n\n const LogsTextarea = Dom(\"section.container-logs section p\")\n\n const ToastContainer = Dom(\"section.container-toast\")\n const Toast = Dom(\"section.container-toast div.toast\")\n const ToastIcon = Dom(\"section.container-toast div.toast div.icon\")\n const ToastText = Dom(\"section.container-toast div.toast span.text\")\n\n const HomeButton = Dom(\"#home\")\n const LoginButton = Dom(\"#login\")\n const ToolsButton = Dom(\"#tools\")\n const UpdateButton = Dom(\"#update\")\n\n const ButtonRegister = Dom(\"#register-button\")\n const ButtonCleanRegisterLogs = Dom(\"#clear-logs\")\n\n const ButtonStartStopHotspot = Dom(\"#enable-hotspot\")\n const ButtonOpenHotspotContainer = Dom(\"#hotspot-button-tools\")\n const TitleHotspotContainer = Dom(\"#title-hotspot\")\n const ValueOfButtonHotspotContainer = Dom(\"#value-button-hotspot\")\n\n const ButtonOpenClearDataContainer = Dom(\"#button-open-clear-data-app\")\n const ButtonConfirmClearData = Dom(\"#confirm-clean-data-app\")\n\n const ButtonOpenSpeedtest = Dom(\"#speedtest-tool\")\n const ButtonOpenApnConfig = Dom(\"#apn-tool\")\n const ButtonOpenBatteryOptimization = Dom(\"#battery-tool\")\n const ButtonOpenCheckuser = Dom(\"#checkuser-tool\")\n const ButtonOpenTerms = Dom(\"#button-open-terms-app\")\n\n const ErrorTitle = Dom(\"#error-title\")\n const ErrorDescription = Dom(\"#error-log\")\n </script>\n\n <!-- FUNÇÕES PARA O APP -->\n <script>\n const dtShowSuccessToastListener = (value) => showToastContainer(value)\n const dtShowErrorToastListener = (value) =>\n showToastContainerWithError(value)\n const dtConfigClickListener = () => {\n toggleInput()\n writeInputValue()\n }\n const dtVpnStateListener = (state) => connectionState(state)\n const dtOnNewLogListener = () => writeLogsRegister()\n const dtMessageErrorListener = (model) => writeErrorContainer(model)\n const dtCheckUserStartedListener = () => showLoadingContainer()\n const dtCheckUserModelListener = (model) => writeCheckuserContainer(model)\n </script>\n\n <!-- FUNÇÕES DO LAYOUT -->\n <script>\n const appLogo = () => {\n const logo = appGetConfigLabel(\"APP_LOGO\")\n\n if (!logo) {\n return \"\"\n } else {\n return `${JSON.parse(logo).value}`\n }\n }\n const appBackground = () => {\n const background_type = appGetConfigLabel(\"APP_BACKGROUND_TYPE\")\n const background_color = appGetConfigLabel(\"APP_BACKGROUND_COLOR\")\n const background_image = appGetConfigLabel(\"APP_BACKGROUND_IMAGE\")\n\n if (!background_type) {\n return \"\"\n } else if (JSON.parse(background_type)?.value === \"COLOR\") {\n return `${JSON.parse(background_color).value}`\n } else {\n return `url(${JSON.parse(background_image).value})`\n }\n }\n\n const getConfigName = () => {\n if (!appGetDefaultConfig()) {\n return `${appTranslateText(\"LBL_CHOOSE_CONFIG\")}`\n } else {\n return `${JSON.parse(appGetDefaultConfig())?.name}`\n }\n }\n\n const getUsernameValue = () => `${appGetUsername() ?? \"\"}`\n const getPasswordValue = () => `${appGetPassword() ?? \"\"}`\n const getUUIDValue = () => `${appGetUUID() ?? \"\"}`\n\n const getUsernamePlaceholder = () => `${appTranslateText(\"LBL_USERNAME\")}`\n const getPassowrdPlaceholder = () => `${appTranslateText(\"LBL_PASSWORD\")}`\n const getUUIDPlaceholder = () => `${appTranslateText(\"LBL_UUID\")}`\n\n const toggleInput = () => {\n if (checkV2ray()) {\n LabelDivUser.style({ display: \"none\" })\n DivUsername.style({ display: \"none\" })\n\n LabelDivPassword.style({ display: \"none\" })\n DivPassword.style({ display: \"none\" })\n\n LabelUUID.removeClass(\"hidden\")\n DivUUID.removeClass(\"hidden\")\n } else {\n LabelDivUser.style({ display: \"block\" })\n DivUsername.style({ display: \"flex\" })\n\n LabelDivPassword.style({ display: \"block\" })\n DivPassword.style({ display: \"flex\" })\n\n LabelUUID.addClass(\"hidden\")\n DivUUID.addClass(\"hidden\")\n }\n }\n const writeInputValue = () => {\n InputUsername.attr({ value: getUsernameValue() })\n InputPassword.attr({ value: getPasswordValue() })\n InputUUID.attr({ value: getUUIDValue() })\n }\n const writeInputPlaceholder = () => {\n InputUsername.attr({ placeholder: getUsernamePlaceholder() })\n InputPassword.attr({ placeholder: getPassowrdPlaceholder() })\n InputUUID.attr({ placeholder: getUUIDPlaceholder() })\n }\n const showInputPasswordValue = () => {\n EyeViewPasswordInput.addClass(\"hidden\")\n EyeNotViewPasswordInput.removeClass(\"hidden\")\n InputPassword.attr({ type: \"text\" })\n }\n const hiddenInputPasswordValue = () => {\n EyeViewPasswordInput.removeClass(\"hidden\")\n EyeNotViewPasswordInput.addClass(\"hidden\")\n InputPassword.attr({ type: \"password\" })\n }\n\n const checkV2ray = () => {\n const data = JSON.parse(appGetDefaultConfig())\n\n if (!appGetDefaultConfig()) {\n return false\n } else if (data?.mode?.toLowerCase()?.startsWith(\"v2ray\")) {\n return true\n } else {\n return false\n }\n }\n\n const getConnectionState = () => {\n const rootStyles = getComputedStyle(document.documentElement)\n\n const defaultColor = \"--default-background-color\"\n const connectedColor = \"--connected-background-color\"\n const connectingColor = \"--connecting-background-color\"\n const errorColor = \"--error-background-color\"\n\n const states = {\n disconnected: () => {\n const gradientColor = rootStyles.getPropertyValue(defaultColor)\n\n document.documentElement.style.setProperty(\n defaultColor,\n \"linear-gradient(135deg,#FA83DF,#40D8EF,#00C3D6,#E979C6)\"\n )\n\n return states\n },\n connecting: () => {\n const gradientColor = rootStyles.getPropertyValue(connectingColor)\n\n document.documentElement.style.setProperty(\n defaultColor,\n gradientColor\n )\n\n return states\n },\n connected: () => {\n const gradientColor = rootStyles.getPropertyValue(connectedColor)\n\n document.documentElement.style.setProperty(\n defaultColor,\n gradientColor\n )\n\n return states\n },\n error: () => {\n const gradientColor = rootStyles.getPropertyValue(errorColor)\n\n document.documentElement.style.setProperty(\n defaultColor,\n gradientColor\n )\n\n return states\n },\n }\n\n return states\n }\n\n const connectionState = (state) => {\n const connectionValue = `${state ?? appGetConnectionState()}`\n\n switch (connectionValue) {\n case \"DISCONNECTED\":\n getConnectionState().disconnected()\n StatusConnectionValue.html(\n `${appTranslateText(\"LBL_STATE_DISCONNECTED\")}`\n )\n break\n case \"CONNECTING\":\n getConnectionState().connecting()\n StatusConnectionValue.html(\n `${appTranslateText(\"LBL_STATE_CONNECTING\")}`\n )\n break\n case \"CONNECTED\":\n getConnectionState().connected()\n StatusConnectionValue.html(\n `${appTranslateText(\"LBL_STATE_CONNECTED\")}`\n )\n break\n case \"STOPPING\":\n getConnectionState().connecting()\n StatusConnectionValue.html(\n `${appTranslateText(\"LBL_STATE_STOPPING\")}`\n )\n break\n case \"NO_NETWORK\":\n getConnectionState().error()\n StatusConnectionValue.html(\n `${appTranslateText(\"LBL_STATE_NO_NETWORK\")}`\n )\n break\n case \"AUTH\":\n getConnectionState().connecting()\n StatusConnectionValue.html(`${appTranslateText(\"LBL_STATE_AUTH\")}`)\n break\n case \"AUTH_FAILED\":\n getConnectionState().connecting()\n StatusConnectionValue.html(\n `${appTranslateText(\"LBL_STATE_AUTH_FAILED\")}`\n )\n break\n }\n }\n\n const startStopConnection = () => {\n const state = appGetConnectionState()\n\n state !== \"CONNECTED\" ? appStartConnection() : appStopConnection()\n }\n\n const writeLogsRegister = () => {\n const data = JSON.parse(appGetLogs())\n\n let logs = \"\"\n\n data.forEach((item) => {\n logs += `${Object.keys(item)} ${item[Object.keys(item)]} <br>`\n })\n\n LogsTextarea.html(logs)\n document.querySelector(\"section.container-logs section p\").scrollTop =\n document.querySelector(\n \"section.container-logs section p\"\n ).scrollHeight\n }\n\n const writeCarrierList = () => {\n const container = document.querySelector(\"section.carrier-list section\")\n const existingCategories = container.querySelectorAll(\"div\").length\n\n container.innerHTML = \"\"\n\n const data = JSON.parse(appAllConfigs())\n data.sort((a, b) => a.sorter - b.sorter)\n data.forEach((item, index) =>\n item.items.sort((a, b) => a.sorter - b.sorter)\n )\n data.forEach((category) => {\n const div = document.createElement(\"div\")\n const h1 = document.createElement(\"h1\")\n\n h1.innerHTML = category.name\n\n const ul = document.createElement(\"ul\")\n\n category.items.forEach((item) => {\n const li = document.createElement(\"li\")\n\n li.innerHTML = `<img src=\"${item.icon}\" alt=\"icon\" /> <span>${item.name}</span> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-check2\" viewBox=\"0 0 16 16\"><path 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\" /></svg>`\n\n li.addEventListener(\"click\", (e) => {\n appSetConfig(item.id)\n hiddenCarrierListContainer()\n document\n .querySelectorAll(\"li\")\n .forEach((item, index) => item.classList.remove(\"active\"))\n li.classList.add(\"active\")\n writeValueOnButtonOfCarrierList(item.name)\n })\n\n ul.appendChild(li)\n })\n\n div.appendChild(h1)\n div.appendChild(ul)\n\n container.appendChild(div)\n })\n }\n const writeValueOnButtonOfCarrierList = (value) =>\n ValueOfCarrierListButton.html(value ?? getConfigName())\n\n const showToastContainer = (value) => {\n Toast.style({ borderColor: \"#000000\" })\n ToastIcon.style({ borderRight: \"1px solid #000000\" })\n\n writeToastText(value)\n\n ToastContainer.removeClass(\"masterSshAnimatedTime\", \"spaceOutDown\")\n ToastContainer.removeClass(\"masterSshAnimatedTime\", \"spaceInDown\")\n\n setTimeout(() => {\n ToastContainer.addClass(\"masterSshAnimatedTime\", \"spaceInDown\")\n }, 100)\n\n clearTimeout(timeoutId)\n\n timeoutId = setTimeout(() => hiddenToastContainer(), 5000)\n }\n const showToastContainerWithError = (value) => {\n Toast.style({ borderColor: \"#FF0000\" })\n ToastIcon.style({ borderRight: \"1px solid #FF0000\" })\n\n writeToastText(value)\n\n ToastContainer.removeClass(\"masterSshAnimatedTime\", \"spaceOutDown\")\n ToastContainer.removeClass(\"masterSshAnimatedTime\", \"spaceInDown\")\n\n setTimeout(() => {\n ToastContainer.addClass(\"masterSshAnimatedTime\", \"spaceInDown\")\n }, 100)\n\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => hiddenToastContainer(), 5000)\n }\n const writeToastText = (text) => {\n ToastText.html(text)\n }\n const hiddenToastContainer = () => {\n ToastContainer.removeClass(\"masterSshAnimatedTime\", \"spaceInDown\")\n ToastContainer.removeClass(\"masterSshAnimatedTime\", \"spaceOutDown\")\n ToastContainer.addClass(\"masterSshAnimatedTime\", \"spaceOutDown\")\n }\n\n const showHomeContainer = () => {\n hiddenAllContainers()\n HomeContainer.addClass(\"active\")\n }\n\n const showCarrierListContainer = () => {\n writeCarrierList()\n hiddenAllContainers()\n CarrierContainer.addClass(\"active\")\n }\n const hiddenCarrierListContainer = () => {\n showHomeContainer()\n }\n\n const showProfileContainer = () => {\n hiddenAllContainers()\n ProfileContainer.addClass(\"active\")\n }\n const hiddenProfileContainer = () => {\n showHomeContainer()\n }\n\n const showToolsContainer = () => {\n hiddenAllContainers()\n ToolsContainer.addClass(\"active\")\n }\n const hiddenToolsContainer = () => {\n showHomeContainer()\n }\n\n const showRegisterContainer = () => {\n hiddenAllContainers()\n RegisterContainer.addClass(\"active\")\n }\n const hiddenRegisterContainer = () => {\n showHomeContainer()\n }\n\n const writeErrorContainer = (model) => {\n const data = JSON.parse(model)\n\n ErrorTitle.html(data.title)\n ErrorDescription.html(data.content)\n\n showErrorContainer()\n }\n const showErrorContainer = () => {\n hiddenAllContainers()\n ErrorContainer.addClass(\"active\")\n }\n const hiddenErrorContainer = () => {\n showHomeContainer()\n }\n\n const showLoadingContainer = () => {\n const data = JSON.parse(appGetDefaultConfig())\n\n if (data?.url_check_user) {\n LoadingContainer.addClass(\"active\")\n }\n }\n const hiddenLoadingContainer = () => {\n LoadingContainer.removeClass(\"active\")\n }\n\n const writeCheckuserContainer = (model) => {\n const data = JSON.parse(model)\n\n CheckuserName.html(`USUÁRIO: ${data.username}`)\n CheckuserExpires.html(`EXPIRA EM: ${data.expiration_date}`)\n CheckuserRemainingDays.html(`RESTA: ${data.expiration_days} DIAS`)\n CheckuserTotalConnection.html(\n `CONEXÕES: ${data.count_connections}/${data.limit_connections}`\n )\n\n showCheckuserContainer()\n }\n const showCheckuserContainer = () => {\n hiddenLoadingContainer()\n CheckuserContainer.addClass(\"active\")\n }\n const hiddenCheckuserContainer = () => {\n CheckuserContainer.removeClass(\"active\")\n }\n\n const showClearDataAppContainer = () => {\n ClearDataContainer.addClass(\"active\")\n }\n const hiddenClearDataAppContainer = () => {\n ClearDataContainer.removeClass(\"active\")\n }\n\n const startHotspot = () => {\n appStartHotspot()\n\n TitleHotspotContainer.html(\"ROTEAMENTO LIGADO\")\n ValueOfButtonHotspotContainer.html(\"DESLIGAR HOTSPOT\")\n }\n const stopHotspot = () => {\n appStopHotspot()\n\n TitleHotspotContainer.html(\"ROTEAMENTO DESLIGADO\")\n ValueOfButtonHotspotContainer.html(\"LIGAR HOTSPOT\")\n }\n const toggleHotspot = () => {\n appGetStatusHotspot() === \"STOPPED\" ? startHotspot() : stopHotspot()\n }\n const setStatusHotspot = () => {\n if (appGetStatusHotspot() === \"STOPPED\") {\n TitleHotspotContainer.html(\"ROTEAMENTO DESLIGADO\")\n ValueOfButtonHotspotContainer.html(\"LIGAR HOTSPOT\")\n } else {\n TitleHotspotContainer.html(\"ROTEAMENTO LIGADO\")\n ValueOfButtonHotspotContainer.html(\"DESLIGAR HOTSPOT\")\n }\n }\n const showHotspotContainer = () => {\n HotspotContainer.addClass(\"active\")\n }\n const hiddenHotspotContainer = () => {\n HotspotContainer.removeClass(\"active\")\n }\n\n const showTermsContainer = () => {\n TermsContainer.addClass(\"active\")\n }\n const hiddenTermsContainer = () => {\n TermsContainer.removeClass(\"active\")\n }\n\n const openRenew = () => {\n appIntoBrowser(\"https://luxnext.paineisonline.xyz/renovar.php\")\n }\n const openSpeedtest = () => {\n appIntoBrowser(\"https://fast.com\")\n }\n\n const hiddenAllContainers = () => {\n HomeContainer.removeClass(\"active\")\n CarrierContainer.removeClass(\"active\")\n ProfileContainer.removeClass(\"active\")\n ToolsContainer.removeClass(\"active\")\n RegisterContainer.removeClass(\"active\")\n ErrorContainer.removeClass(\"active\")\n }\n\n const allFunctionsExecute = () => {\n writeLogsRegister()\n toggleInput()\n writeInputValue()\n writeInputPlaceholder()\n connectionState()\n setStatusHotspot()\n }\n </script>\n\n <!-- AÇÕES -->\n <script>\n HomeHeader.style({\n background: appBackground(),\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n })\n LogoHeader.attr({ src: appLogo() })\n\n ConfigVersion.html(`VERSÃO: ${appGetConfigVersion()}`)\n\n HomeButton.on({ click: () => showHomeContainer() })\n LoginButton.on({ click: () => showProfileContainer() })\n ToolsButton.on({ click: () => showToolsContainer() })\n UpdateButton.on({ click: () => AppUpdate() })\n\n BackButtonCarrierContainer.on({\n click: () => hiddenCarrierListContainer(),\n })\n BackProfileContainer.on({ click: () => hiddenProfileContainer() })\n BackToolsContainer.on({ click: () => hiddenToolsContainer() })\n BackRegisterContainer.on({ click: () => hiddenRegisterContainer() })\n BackErrorContainer.on({ click: () => hiddenErrorContainer() })\n\n ButtonOfCarrierList.on({ click: () => showCarrierListContainer() })\n\n ValueOfCarrierListButton.html(getConfigName())\n\n ButtonVpnStartOrStop.on({ click: () => startStopConnection() })\n\n InputUsername.on({ input: (e) => appSetUsername(e.target.value) })\n InputPassword.on({ input: (e) => appSetPassword(e.target.value) })\n InputUUID.on({ input: (e) => appSetUUID(e.target.value) })\n\n EyeViewPasswordInput.on({ click: () => showInputPasswordValue() })\n EyeNotViewPasswordInput.on({ click: () => hiddenInputPasswordValue() })\n\n ButtonSaveCreds.on({ click: () => hiddenProfileContainer() })\n\n ButtonRegister.on({ click: () => showRegisterContainer() })\n ButtonCleanRegisterLogs.on({ click: () => appCleanLogs() })\n\n ButtonOpenHotspotContainer.on({ click: () => showHotspotContainer() })\n BackHotspotContainer.on({ click: () => hiddenHotspotContainer() })\n ButtonStartStopHotspot.on({ click: () => toggleHotspot() })\n\n ButtonOpenClearDataContainer.on({\n click: () => showClearDataAppContainer(),\n })\n BackClearDataContainer.on({ click: () => hiddenClearDataAppContainer() })\n ButtonConfirmClearData.on({ click: () => appClearData() })\n\n BackLoadingContainer.on({ click: () => hiddenLoadingContainer() })\n BackCheckuserContainer.on({ click: () => hiddenCheckuserContainer() })\n\n BackTermsContainer.on({ click: () => hiddenTermsContainer() })\n\n ButtonRenew.on({ click: () => openRenew() })\n\n ButtonOpenSpeedtest.on({ click: () => openSpeedtest() })\n\n ButtonOpenApnConfig.on({ click: () => appApnConfiguration() })\n\n ButtonOpenBatteryOptimization.on({ click: () => appBatteryOptimize() })\n\n ButtonOpenCheckuser.on({ click: () => appStartCheckUser() })\n\n ButtonOpenTerms.on({ click: () => showTermsContainer() })\n\n allFunctionsExecute()\n </script>\n </body>\n</html>\n",
  345. "type": "HTML",
  346. "status": "ACTIVE",
  347. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  348. },
  349. {
  350. "id": 22200,
  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": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  357. },
  358. {
  359. "id": 22201,
  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": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  366. }
  367. ]

comments powered by Disqus