Categoria Dicas Rápida

[RESOLVIDO] MySql com 100% de CPU

MySQL chegando a 100% de CPU geralmente indica que há queries pesadas, travamentos por locks, falta de índices, buffers mal configurados ou consumo anormal por threads.

Vamos por partes 👇


🧩 1. Diagnóstico inicial

Primeiro, identifique o que está consumindo CPU:

🔍 a) Ver processos ativos

mysqladmin processlist -uroot -p

ou dentro do MySQL:

SHOW FULL PROCESSLIST;

Procure por queries com:

  • State = “Sending data”, “Copying to tmp table”, “Locked”

  • Time muito alto (execução longa)

👉 Essas queries geralmente são as culpadas.


🔍 b) Top ou htop

No servidor Linux:

top -c

ou

htop

Procure o(s) processo(s) mysqld com alto uso. Pressione Shift + P para ordenar por CPU.

Veja também quantas threads estão ativas.


🧠 2. Analisar queries lentas

Habilite o slow query log se ainda não estiver:

SET GLOBAL slow_query_log = 1; SET GLOBAL long_query_time = 1; -- Loga queries acima de 1s SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';

Depois veja:

mysqldumpslow -s t /var/log/mysql/slow.log | head

 


🧾 3. Ver status e métricas internas

Verifique o status geral:

SHOW GLOBAL STATUS LIKE 'Threads%'; SHOW GLOBAL STATUS LIKE 'Queries%'; SHOW GLOBAL STATUS LIKE 'Handler%'; SHOW ENGINE INNODB STATUS\G

Isso ajuda a identificar:

  • alto número de threads simultâneos

  • filas de I/O

  • bloqueios InnoDB (LATEST DETECTED DEADLOCK)


🧩 4. Checar configuração do MySQL (tuning)

Execute o MySQLTuner:

wget http://mysqltuner.pl -O mysqltuner.pl perl mysqltuner.pl

Ele mostra gargalos típicos, como:

  • query_cache_size pequeno

  • innodb_buffer_pool_size muito baixo (deve ser ~70% da RAM total)

  • tmp_table_size pequeno (causando escrita em disco)

  • max_connections muito alto (causando saturação por threads)


📊 5. Monitoramento em tempo real

Ferramentas úteis:

  • mysqltop → mostra queries em tempo real.

  • Percona PMM → monitora métricas de CPU, queries e locks graficamente.

  • Grafana + Prometheus + mysqld_exporter → ideal para histórico.


✅ Solução

Defina para cerca de 70–80% da RAM total se o servidor for dedicado ao MySQL.
Exemplo (para um servidor com 8 GB de RAM):

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# Buffers de join (usados por thread)
join_buffer_size = 4M
# Tabelas temporárias em memória (usadas por thread)
tmp_table_size = 64M max_heap_table_size = 64M
# Pool principal do InnoDB (~65% da RAM total)
innodb_buffer_pool_size = 5G innodb_buffer_pool_instances = 5
# Log buffer (melhora desempenho de escrita)
innodb_log_buffer_size = 256M

Reinicie o serviço:

sudo systemctl restart mysql

 


🧾 Resumo do impacto esperado

Área Ganho esperado
Consultas repetidas ⚡ 20–40% mais rápidas
JOINs grandes ⚡ Menos CPU
Writes InnoDB ⚡ Menos fsync / I/O
Tabelas temporárias ⚡ Evita gravações no disco
Concorrência ⚡ Menos contenção entre threads

Verifique:

mysql -uroot -p

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'innodb_buffer_pool_instances';
SHOW VARIABLES LIKE 'join_buffer_size';

 

Como posso compartilhar uma imagem em um link do Google Drive?

Como posso compartilhar uma imagem em um link do Google Drive?

Outras formas de pesquisa para essa dica seria:

  • Como incorporar imagens do Google Drive em seu site?
  • Como obter URLs de imagens do Google Drive
  • Como posso compartilhar uma imagem em um link do Google Drive?
  • Como acessar um link de imagem compartilhado no google drive?
  • Como faço para copiar o URL da imagem do google drive?
  • Como exibir uma imagem de um link de URL compartilhado google drive?

Acesse o Google Drive e Compartilhe a Imagem Publicamente

Você receberá um link parecido como esse

https://drive.google.com/file/d/1OAIJMGndsdfasdfashTsNO0QUSSUHD/view?usp=sharing

Reserver o UUDI da Mensagem : 1OAIJMGndsdfasdfashTsNO0QUSSUHD

Com o link abaixo preencha o UUID corretamente

https://lh3.googleusercontent.com/d/COLE_AQUI_UUID_DA_IMAGEM

Seu link de compartilhamento deverá fica dessa maneira.

https://lh3.googleusercontent.com/d/1OAIJMGndsdfasdfashTsNO0QUSSUHD

Para incorporar a imagem em um código HTML use a tag IMG

<img src="https://lh3.googleusercontent.com/d/1OAIJMGndsdfasdfashTsNO0QUSSUHD"/>

 

Script Backup Power Shell e 7z

Segue um script funcional e eficiente para backup local usando o power shell e 7z

 

# Caminho do executável 7-Zip
$SevenZip = "C:\Program Files\7-Zip\7z.exe"

# Diretórios de origem (adicione quantos quiser)
$SourceDirs = @(
"C:\sistema",
"D:\DFS\storage"
)

# Diretório de destino do backup
$BackupDir = "D:\Backup_Local"

# Número de backups a manter
$KeepBackups = 4

# Nome do arquivo de backup com data
$Date = Get-Date -Format "yyyy-MM-dd"
$BackupFile = Join-Path $BackupDir "Backup_$Date.7z"

# -------------------------------------------------
# Verifica e encerra qualquer processo 7z.exe ativo
# -------------------------------------------------
$SevenZipProcesses = Get-Process -Name "7z" -ErrorAction SilentlyContinue
if ($SevenZipProcesses) {
Write-Host "Finalizando processos 7z.exe em execução..."
$SevenZipProcesses | ForEach-Object { Stop-Process -Id $_.Id -Force }
}

# Cria o diretório de destino se não existir
if (!(Test-Path $BackupDir)) {
New-Item -ItemType Directory -Path $BackupDir | Out-Null
}

# Cria o backup (agora passando os diretórios como array)
& "$SevenZip" a -t7z -mx9 "$BackupFile" @SourceDirs

# Limpeza: mantém apenas os últimos $KeepBackups arquivos
$Backups = Get-ChildItem -Path $BackupDir -Filter "Backup_*.7z" | Sort-Object LastWriteTime -Descending

if ($Backups.Count -gt $KeepBackups) {
$OldBackups = $Backups | Select-Object -Skip $KeepBackups
foreach ($Old in $OldBackups) {
Remove-Item $Old.FullName -Force
}
}

 

Pacote de Drivers e Scanner da Samsung scx 4623f

Pacote de Drivers e Scanner da Samsung scx 4623f

  1. Samsung Easy Documentor Creator
  2. Smart Panel
  3. Smat Thru 4

 

https://fs.cuidadodigital.net.br/share/Zoj1Y7QO

 

Bypass NRO Windows 11

Versão do windows 11 superior a 24h2 não possui mais a função OOBE\BYPASSNRO, para fazer o bypass nas versões mais novas do windows proceda com as seguintes opções.

Metodo 1

Assim que iniciar a finalização da instalação do Windows aperte as Teclas Shift + F10

No prompt de comando digite:

start ms-cxh:localonly

Metodo 2

Assim que iniciar a finalização da instalação do Windows aperte as Teclas Shift + F10

No prompt de comando digite:

regedit

Navegue a até:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE

Crie um novo valor DWORD chamado BypassNRO clicando com o botão direito do mouse na área vazia e escolhendo Novo > Valor DWORD (32 bits).

Clique duas vezes nele para definir os dados do valor como 1.

 

 

 

[Resolvido] Certificado Inválido e2guardian linux

Essa dica auxilia todos que estão tendo problemas com certificaodo inválido no e2guardian no linux.

Gere um EPOCH date com o seguinte comando

date +%s

Com o resultado atualize a linha generatedcertstart

Abra o arquivo e2guardian.conf  e localize a linha

generatedcertstart

Ajueste para

generatedcertstart = 1733871979

 

Como reinstalar Microsoft Store, Windows Store

Encontrei nesse site https://www.minitool.com/news/how-to-reinstall-microsoft-store.html o melhor tutorial para reinstalar o Microsoft Store ou Windows Store.

O procedimento que deu certo comigo foi:

  1. 1. Go to https://store.rg-adguard.net/.

    2. Copy and paste the following URL to the URL text box: https://www.microsoft.com/en-us/p/microsoft-store/9wzdncrfjbmp.

    3. Select Retail.

    4. Click the Generate icon.

Faça o Download

  • WindowsStore_12011.1001.113.0_neutral_~_8wekyb3d8bbwe.appxbundle

Se tiver mais de um WindowStore ….. appxbundle faça o download de todos.

Abra o Power Shell como administrador

Tente instalar todos os appxbundle baixados.

Add-AppxPackage -Path "C:\Path\to\File.appxbundle"

 

Criando um executável de um projeto em Python com PyInstaller

Dica rápida para criar um executável em python com PyInstaller

1 – Instalar o PyInstaller

pip install pyinstaller

2 – Assim que tiver finalizado o projeto, gere o executável, nesse caso os paramentros são:

2.1 -F – Empacotar tudo em um único arquivo executável.

2.2 – –noconsole – Aplicação irá rodar em background.

pyinstaller.exe -F --noconsole .\main.py

 

[RESOLVIDO] Squid não acessa Whatsapp Web erro de WWS Websocket

Resolvi o problema de erro de websocket no whtasapp web usando o Swquid com SSL BUMP

acl serverIsws ssl::server_name_regex ^w[0-9]+\.web\.whatsapp\.com$ ^w[0-9]+\.web\.whatsapp\.net$
acl broken_sites ssl::server_name .whatsapp.com
acl step1 at_step SslBump1

ssl_bump peek step1
ssl_bump splice serverIsws
ssl_bump splice broken_sites
ssl_bump bump all

 

Template tipo Whatsapp para Typebot

Segue template para Typebot com layout parecido com whatsapp, necessário ler o código e fazer as devidas modificações.

 

{
    "version": "6",
    "id": "clzlarpa0000bztu5ay02hwvv",
    "chatwootId": 243,
    "chatwootAccessToken": "V97YZLpojGRB4vF9mdvnYsvK",
    "name": "Tema Whatsapp",
    "events": [
        {
            "id": "yrr8y4zobeuilc4hgi0upv4m",
            "outgoingEdgeId": "hadici5c9y7j268r2dmr13re",
            "graphCoordinates": {
                "x": 0,
                "y": 0
            },
            "type": "start"
        }
    ],
    "groups": [
        {
            "id": "ryb27uv1cjy7zwx62nasim8q",
            "title": "Pack Typebot",
            "graphCoordinates": {
                "x": 398,
                "y": -6.56
            },
            "blocks": [
                {
                    "id": "okkwzkr1qifomzx7cvwrt56z",
                    "type": "text",
                    "content": {
                        "richText": [
                            {
                                "type": "p",
                                "children": [
                                    {
                                        "text": "Informe seu nome"
                                    }
                                ]
                            }
                        ]
                    }
                },
                {
                    "id": "u3iqumupccy94li0p8jvr2t8",
                    "type": "text input",
                    "options": {
                        "labels": {
                            "placeholder": "Informe seu nome aqui!",
                            "button": "Enviar"
                        },
                        "variableId": "vxdnn35rtjib49ifx1aglqf3p",
                        "isLong": false
                    }
                },
                {
                    "id": "t16ejdpe2y5cwlrm6iu1a5oq",
                    "type": "text",
                    "content": {
                        "richText": [
                            {
                                "type": "p",
                                "children": [
                                    {
                                        "bold": true,
                                        "text": "{{nome}} "
                                    }
                                ]
                            },
                            {
                                "type": "p",
                                "children": [
                                    {
                                        "text": "Bem-vindo ao Mundo da Automação! 🤖"
                                    }
                                ]
                            },
                            {
                                "type": "p",
                                "children": [
                                    {
                                        "text": ""
                                    }
                                ]
                            },
                            {
                                "type": "p",
                                "children": [
                                    {
                                        "text": "🛒 Não perca tempo! Seja membro do Pack Typebot agora mesmo!"
                                    }
                                ]
                            },
                            {
                                "type": "p",
                                "children": [
                                    {
                                        "text": ""
                                    }
                                ]
                            },
                            {
                                "type": "p",
                                "children": [
                                    {
                                        "text": "Aproveite o valor promocional para acesso vitalício!"
                                    }
                                ]
                            }
                        ]
                    }
                },
                {
                    "id": "rzbihfketjlxwltnjww6fkhk",
                    "type": "choice input",
                    "items": [
                        {
                            "id": "b979obnqc2y3eta7teyg74jx",
                            "outgoingEdgeId": "sz4uc36p74lsks0o525k2cp1",
                            "content": "Saiba Mais"
                        }
                    ],
                    "options": {
                        "isMultipleChoice": false,
                        "buttonLabel": "Send",
                        "isSearchable": false,
                        "searchInputPlaceholder": "Filter the options..."
                    }
                },
                {
                    "id": "z396idrici2orpcyt3gluw07",
                    "type": "Redirect",
                    "options": {
                        "url": "#",
                        "isNewTab": false
                    }
                }
            ]
        }
    ],
    "edges": [
        {
            "id": "hadici5c9y7j268r2dmr13re",
            "from": {
                "eventId": "yrr8y4zobeuilc4hgi0upv4m"
            },
            "to": {
                "groupId": "ryb27uv1cjy7zwx62nasim8q"
            }
        },
        {
            "id": "sz4uc36p74lsks0o525k2cp1",
            "from": {
                "blockId": "rzbihfketjlxwltnjww6fkhk",
                "itemId": "b979obnqc2y3eta7teyg74jx"
            },
            "to": {
                "groupId": "ryb27uv1cjy7zwx62nasim8q",
                "blockId": "z396idrici2orpcyt3gluw07"
            }
        }
    ],
    "variables": [
        {
            "id": "vxdnn35rtjib49ifx1aglqf3p",
            "name": "nome"
        },
        {
            "id": "ex5nfm5aqh6z7qtsifs01pcr",
            "name": "inbox_id"
        },
        {
            "id": "zsipq68dkr7007y5316wrhm5",
            "name": "inbox_channel_identifier"
        },
        {
            "id": "rr8t2ydnlhu4lgjs3n167j48",
            "name": "inbox_whatsapp_bridge_host"
        },
        {
            "id": "pwhegm84n7sqg8nki868khbc",
            "name": "inbox_whatsapp_bridge_url"
        },
        {
            "id": "s9insldi07g622tikoiriuqq",
            "name": "account_id"
        },
        {
            "id": "borm113pquxemusae1z7ghrs",
            "name": "conversation_id"
        },
        {
            "id": "vbphydm38osficzhmu8u4vg7",
            "name": "display_id"
        },
        {
            "id": "ytg1bfwgqwpmsk1ehhah7gjz",
            "name": "bot_id"
        },
        {
            "id": "qnb32u8ipdnrw1qnhepzftd0",
            "name": "bot_name"
        },
        {
            "id": "zuwbkkeies7ot38sysgto9zg",
            "name": "contact_id"
        },
        {
            "id": "pxr1sgowty7kjm99g7ny0leo",
            "name": "contact_name"
        },
        {
            "id": "dxu320dr7akybxwvdimtie19",
            "name": "contact_email"
        },
        {
            "id": "asd48diu3mfy4ds7spis8lga",
            "name": "contact_phone_number"
        }
    ],
    "theme": {
        "general": {
            "font": "Open Sans",
            "background": {
                "type": "Image",
                "content": "https://s3.typebot.io/public/workspaces/clxgpan6q000rljk8iyy6q66x/typebots/clxgpawpm000p10ew33m2mf3l/blocks/hw249uzjqo07tp4g5q6f9rox?v=1718491741261"
            }
        },
        "chat": {
            "hostAvatar": {
                "isEnabled": true,
                "url": "https://s3.fr-par.scw.cloud/typebot/public/typebots/clk9pyihe003pm90fzfem5k5w/ogImage?v=1689823389465"
            },
            "hostBubbles": {
                "backgroundColor": "#FFFFFF",
                "color": "#303235"
            },
            "guestBubbles": {
                "backgroundColor": "#d9fdd2",
                "color": "#000000"
            },
            "buttons": {
                "backgroundColor": "#128c7e",
                "color": "#FFFFFF"
            },
            "inputs": {
                "backgroundColor": "#FFFFFF",
                "color": "#303235",
                "placeholderColor": "#9095A0"
            }
        },
        "customCss": ".typebot-host-bubble {\n  padding-right: 12px;\n}\n#checkIcon {\n  stroke-dasharray: 40;\n  stroke-dashoffset: 40;\n  z-index: 99;\n}\n#checkIcon path:nth-child(1) {  \n  animation: showIcon 250ms ease forwards;\n  animation-delay: 500ms;\n}\n#checkIcon path:nth-child(2) {  \n  animation: showIcon 250ms ease forwards;\n  animation-delay: 400ms;\n}\n@keyframes showIcon {\n  to { stroke-dashoffset: 0 };\n}\n.typebot-chat-view > .flex:first-child {\n    padding-top: 30px;\n}\n.typebot-input {\n    position: fixed;\n    bottom: 0;\n    align-items: center;\n    z-index: 999;\n    right: 0;\n}\n.typebot-input .typebot-button {\n    background: #008a7c;\n    border-radius: 50%;\n    color: #fff;\n    position: relative;\n    width: 50px;\n    height: 50px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n.typebot-container {\n    background-size: initial!important;\n    background-repeat: repeat-x!important;\n}\n.typebot-host-bubble>.bubble-typing {\n  border-radius: 0 5px 5px 5px;\n}\n.typebot-host-bubble>.bubble-typing:after {\n    position: absolute;\n    content: \"\";\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0px 10px 10px 0;\n    border-color: transparent #fff transparent transparent;\n    top: 0;\n    left: -10px;\n}\n.typebot-guest-bubble {\n  position: relative;\n  border-radius: 5px 0 5px 5px;\n}\n.typebot-guest-bubble:after {\n  position: absolute;\n  content: \"\";\n  width: 0;\n  height: 0;\n  border-style: solid;\n}\n.typebot-guest-bubble:after {\n    border-width: 0px 0 10px 10px;\n    border-color: transparent transparent transparent #D9FDD2;\n    top: 0;\n    right: -10px;\n    border-style: solid;\n}\niframe[src=\"\"] {\n  position: fixed;\n  top: 0;\n  left: 0;\n  display: relative;\n  width: 100%;\n  height: 100% !important;\n  z-index: 999999;\n  border: none;\n  padding: 0;\n  margin: 0;\n}\n.info-container {\nfont-size: 14px;\n}\n.typebot-input .typebot-button {\n  content: \"\";\n  background: rgba(0, 138, 134, 1);\n  border-radius: 50%; \n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 50px; \n  height: 50px; \n  border: none;\n  font-size: 0px;\n  color: transparent;\n}\n.typebot-input .typebot-button::before {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 25px;\n  height: 25px;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-image: url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width=\"19px\"><path d=\"M476.59 227.05l-.16-.07L49.35 49.84A23.56 23.56 0 0027.14 52 24.65 24.65 0 0016 72.59v113.29a24 24 0 0019.52 23.57l232.93 43.07a4 4 0 010 7.86L35.53 303.45A24 24 0 0016 327v113.31A23.57 23.57 0 0026.59 460a23.94 23.94 0 0013.22 4 24.55 24.55 0 009.52-1.93L476.4 285.94l.19-.09a32 32 0 000-58.8z\" fill=\"white\"/></svg>');\n}\n.typebot-input .typebot-button .send-icon {\n  display: none; \n}\n.typebot-input {\n    max-width: 100%!important;\n    width:100%!important;\n    position: fixed;\n    bottom: 50px;\n    align-items: center;\n    z-index: 999;\n    right: 0;\n    margin-bottom: 20px;\n    background-color: white;\n    border-radius: 50px;\n    box-shadow: 1 2px 1px -1px rgba(0,0,0,.2);\n    height: 50px;\n    padding-right: 0px!important;\n}\n.disabled\\:opacity-50:disabled {\n    opacity: 100%;\n}\n@media (max-width: 500px) {\n.info-container {\nmax-width: 400px !important;\n}\n}\na#lite-badge {\n  display: none!important;\n}"
    },
    "selectedThemeTemplateId": null,
    "settings": {
        "general": {
            "isBrandingEnabled": false,
            "isInputPrefillEnabled": true,
            "isHideQueryParamsEnabled": true,
            "rememberUser": {
                "isEnabled": false
            }
        },
        "typingEmulation": {
            "enabled": true,
            "speed": 300,
            "maxDelay": 1.5
        },
        "metadata": {
            "title": "(1) WhatsApp",
            "description": "",
            "imageUrl": "https://s3.typebot.io/public/workspaces/clxgpan6q000rljk8iyy6q66x/typebots/clxgpawpm000p10ew33m2mf3l/blocks/s18qxz52lu4cfedpbuhmbch8?v=1718491503856",
            "favIconUrl": "https://s3.typebot.io/public/workspaces/clxgpan6q000rljk8iyy6q66x/typebots/clxgpawpm000p10ew33m2mf3l/blocks/ppd1nlwo6woy0e8z6frmr62i?v=1718491461881",
            "customHeadCode": "<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/css/material-design-iconic-font.min.css\">\n<style>\n  .hide {\n    display: none!important;\n  }\n  typebot-standard {\n    position: relative;\n    z-index: 9999;\n  }\n  #__next {\n    position: relative;\n    z-index: 9999;\n}\n.user-bar {\n  width: 100%;\n  height: 55px;\n  background: #005e54;\n  color: #fff;\n  padding: 0;\n  font-size: 24px;\n  position: fixed;\n  z-index: 99999;\n  display: block;\n  top: 0;\n}\n.user-bar:after {\n  content: \"\";\n  display: table;\n  clear: both;\n}\n.user-bar div {\n    float: left;\n    transform: translateY(-50%);\n    position: relative;\n    top: 50%;\n    margin-left: 10px;\n}\n.user-bar .actions {\n  float: right;\n  margin: 0 0 0 20px;\n}\n.user-bar .actions.more {\n  margin: 0 12px 0 32px;\n}\n.user-bar .actions.attachment {\n  margin: 0 0 0 30px;\n}\n.user-bar .actions.attachment i {\n  display: block;\n  transform: rotate(-45deg);\n}\n.user-bar .avatar {\n  margin: 0 0 0 5px;\n  width: 36px;\n  height: 36px;\n}\n.user-bar .avatar img {\n  border-radius: 50%;\n  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);\n  display: block;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.user-bar .name {\n  font-size: 17px;\n  font-weight: 600;\n  text-overflow: ellipsis;\n  letter-spacing: 0.3px;\n  margin: 0 0 0 8px;\n  overflow: hidden;\n  white-space: nowrap;\n  width: 150px;\n}\n.user-bar .status {\n  display: block;\n  font-size: 13px;\n  font-weight: 400;\n  letter-spacing: 0;\n}\n.typebot-input .typebot-button {\n  content: \"\";\n  background: rgba(0, 138, 134, 1);\n  border-radius: 50%; \n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 50px; \n  height: 50px; \n  border: none;\n  font-size: 0px;\n  color: transparent;\n}\n.typebot-input .typebot-button::before {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 25px;\n  height: 25px;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-image: url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width=\"19px\"><path d=\"M476.59 227.05l-.16-.07L49.35 49.84A23.56 23.56 0 0027.14 52 24.65 24.65 0 0016 72.59v113.29a24 24 0 0019.52 23.57l232.93 43.07a4 4 0 010 7.86L35.53 303.45A24 24 0 0016 327v113.31A23.57 23.57 0 0026.59 460a23.94 23.94 0 0013.22 4 24.55 24.55 0 009.52-1.93L476.4 285.94l.19-.09a32 32 0 000-58.8z\" fill=\"white\"/></svg>');\n}\n.typebot-input .typebot-button .send-icon {\n  display: none; \n}\n.typebot-input {\n    max-width: 100%!important;\n    width:100%!important;\n    position: fixed;\n    bottom: 0;\n    align-items: center;\n    z-index: 999;\n    right: 0;\n    margin-bottom: 20px;\n    background-color: white;\n    border-radius: 50px;\n    box-shadow: 1 2px 1px -1px rgba(0,0,0,.2);\n    height: 50px;\n    padding-right: 0px!important;\n}\n.disabled\\:opacity-50:disabled {\n    opacity: 100%;\n}\n</style>\n<script>\nfunction criarBarra() {\n  var userBar = document.createElement(\"div\");\n  userBar.className = \"user-bar\";\n  var icone_botao_voltar = document.createElement(\"div\");\n  icone_botao_voltar.className = \"back\";\n  icone_botao_voltar.innerHTML = '<i class=\"zmdi zmdi-arrow-left\"></i>';\n  var avatar = document.createElement(\"div\");\n  avatar.className = \"avatar\";\n  avatar.innerHTML = '<img src=\"https://s3.fr-par.scw.cloud/typebot/public/typebots/clk9pyihe003pm90fzfem5k5w/ogImage?v=1689823389465\" alt=\"Avatar\">';\n  var name = document.createElement(\"div\");\n  name.className = \"name\";\n  name.innerHTML = '<span>Carteira de Couro</span> <span data-testid=\"psa-verified\" data-icon=\"psa-verified\" class=\"\"><svg viewBox=\"0 0 18 18\" height=\"18\" width=\"18\" preserveAspectRatio=\"xMidYMid meet\" class=\"\" version=\"1.1\" x=\"0px\" y=\"0px\" enable-background=\"new 0 0 18 18\" xml:space=\"preserve\"><polygon id=\"Star-2\" fill=\"#00DA60\" points=\"9,16 7.1,16.9 5.8,15.2 3.7,15.1 3.4,13 1.5,12 2.2,9.9 1.1,8.2 2.6,6.7 2.4,4.6 4.5,4 5.3,2 7.4,2.4 9,1.1 10.7,2.4 12.7,2 13.6,4 15.6,4.6 15.5,6.7 17,8.2 15.9,9.9 16.5,12 14.7,13 14.3,15.1 12.2,15.2 10.9,16.9 \"></polygon><polygon id=\"Check-Icon\" fill=\"#FFFFFF\" points=\"13.1,7.3 12.2,6.5 8.1,10.6 5.9,8.5 5,9.4 8,12.4 \"></polygon></svg></span><span class=\"status\">Online</span>';\n  var icone_camera = document.createElement(\"div\");\n  icone_camera.className = \"actions\";\n  icone_camera.style.float = \"right\";\n  icone_camera.innerHTML = '<i class=\"zmdi zmdi-videocam\" style=\"background-color: transparent;\"></i>';\n  var icone_telefone = document.createElement(\"div\");\n  icone_telefone.className = \"actions\";\n  icone_telefone.style.float = \"right\";\n  icone_telefone.innerHTML = '<i class=\"zmdi zmdi-phone\" style=\"background-color: transparent;\"></i>';\n  var icone_mais = document.createElement(\"div\");\n  icone_mais.className = \"actions more\";\n  icone_mais.style.float = \"right\";\n  icone_mais.innerHTML = '<i class=\"zmdi zmdi-more-vert\" style=\"background-color: transparent;\"></i>';\n  userBar.appendChild(icone_botao_voltar);\n  userBar.appendChild(avatar);\n  userBar.appendChild(name);\n  userBar.appendChild(icone_mais);\n  userBar.appendChild(icone_telefone);\n  userBar.appendChild(icone_camera);\n  var elementoPai = document.querySelector(\"#__next\");\n  if (elementoPai) {\n    elementoPai.insertBefore(userBar, elementoPai.firstChild);\n  }\n}\ncriarBarra();\n</script>\n<script>\n  const botBody = document.querySelector('typebot-standard')\n        .shadowRoot.querySelector('.typebot-container');\n  const userAvatar = botBody.querySelector('img[elementtiming=\"Bot avatar\"]');\n  const status = document.querySelector('.status');\n  const audioNot = document.createElement('audio');\n  audioNot.src = 'https://s3.typebot.io/public/workspaces/clxgpan6q000rljk8iyy6q66x/typebots/clxgpawpm000p10ew33m2mf3l/blocks/o6lzakgjf9az8tg6tyfk29lf?v=1718491238886';\n  let mensagesLength = 0;\n  createInfoMessage();\n  function createInfoMessage() {\n    const message= \"Esta é uma conta comercial\";\n    const div = document.createElement('div');\n    const infoHTML = `<div style=\"display: flex; align-items: center; gap: 4px; background-color: #d5f4f0; border-radius: 10px; padding: 10px; width: fit-content; max-width: 450px; margin: 2rem auto .5rem;\" class=\"info-container\">\n      <div>\n        <svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n          <path fill=\"#4b5e63\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM12 17.75C12.4142 17.75 12.75 17.4142 12.75 17V11C12.75 10.5858 12.4142 10.25 12 10.25C11.5858 10.25 11.25 10.5858 11.25 11V17C11.25 17.4142 11.5858 17.75 12 17.75ZM12 7C12.5523 7 13 7.44772 13 8C13 8.55228 12.5523 9 12 9C11.4477 9 11 8.55228 11 8C11 7.44772 11.4477 7 12 7Z\"></path>\n        </svg>\n      </div>\n      <p style=\"color: #53676b;\">${message}</p>\n    </div>`;\n    div.innerHTML = infoHTML;\n    const messagesContainer = botBody.querySelector('.typebot-chat-view');\n    messagesContainer.insertBefore(div, messagesContainer.firstChild);\n  }\n  setInterval(() => {\n      const isTyping = botBody.querySelector('.bubble1');\n      const sibling = isTyping?.parentElement?.parentElement?.nextSibling;\n      if(isTyping && sibling.src) {\n        status.innerText = 'gravando audio...'\n      } else if(isTyping) {      \n        status.innerText = 'digitando...'\n      } else {\n        status.innerText = 'Online'\n      }\n      const allMessages = botBody.querySelector('.typebot-chat-view').querySelectorAll('.items-start.typebot-host-bubble');    \n      if(allMessages.length > mensagesLength) {        \n        if(!isTyping) {\n          for (let i = mensagesLength; i < allMessages.length; i++) {\n            const iconContainer = document.createElement('div');\n            const checkIcon = `<svg id=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 38.626 24.684\" style=\"position: absolute;bottom: 0;right: 5px;\" height=\"20\" width=\"18\">\n              <g id=\"Grupo_1\" data-name=\"Grupo 1\" transform=\"translate(-708.9 -601.383)\">\n                <path id=\"Caminho_6\" data-name=\"Caminho 6\" d=\"M728.035,623.468l1.382,1.482,17.929-20.334\" transform=\"translate(-1.937 -1.117)\" fill=\"none\" stroke=\"#07c654\" stroke-linecap=\"round\" stroke-width=\"3\"></path>\n                <path id=\"Caminho_7\" data-name=\"Caminho 7\" d=\"M712.017,616.07l7.088,8.039,17.757-20.14\" transform=\"translate(-1 -0.469)\" fill=\"none\" stroke=\"#07c654\" stroke-linecap=\"round\" stroke-width=\"3\"></path>\n              </g>\n            </svg>`;\n            iconContainer.innerHTML = checkIcon;\n            const currentMsg = allMessages[i];\n            currentMsg.append(iconContainer);\n          }\n          mensagesLength = allMessages.length;\n          audioNot.play();        \n        }\n      }\n    }, 400)\n</script>"
        }
    },
    "createdAt": "2024-08-08T13:11:46.104Z",
    "updatedAt": "2024-09-09T14:45:00.579Z",
    "icon": "https://s3.typebot.io/public/workspaces/clxgpan6q000rljk8iyy6q66x/typebots/clxgpawpm000p10ew33m2mf3l/blocks/ppd1nlwo6woy0e8z6frmr62i?v=1718491461881",
    "folderId": "clw6tzec4001pj8vkcl6fe2f9",
    "publicId": null,
    "customDomain": null,
    "workspaceId": "1",
    "resultsTablePreferences": null,
    "isArchived": false,
    "isClosed": false,
    "whatsAppCredentialsId": null,
    "riskLevel": null
}