{"id":4582,"date":"2026-09-28T11:49:51","date_gmt":"2026-09-28T14:49:51","guid":{"rendered":"https:\/\/integrity-ux.com.br\/?page_id=4582"},"modified":"2026-09-28T22:57:54","modified_gmt":"2026-09-29T01:57:54","slug":"panorama-de-nuvem","status":"publish","type":"page","link":"https:\/\/integrity-ux.com.br\/en\/panorama-de-nuvem\/","title":{"rendered":"Panorama de nuvem"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4582\" class=\"elementor elementor-4582 elementor-bc-flex-widget\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-pnc0001 e-con-full e-flex e-con e-parent\" data-id=\"pnc0001\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-pnw0001 elementor-widget elementor-widget-html\" data-id=\"pnw0001\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ix-page\">\n<style>\n\/* Sistema de design extraido da Calculadora de Ruptura de integrity-ux.com.br\n   em 28\/09\/2026. Tokens, tipografia, espacamento e composicao sao os mesmos.\n   O que foi acrescentado esta marcado como ADICAO e segue o mesmo idioma. *\/\n#ix-page{--nv:#1C2157;--lar:#FF6633;--bl:#4361EE;--ink:#000;--tx:#666;--ln:#E2E4EC;--ln2:#C3C4C7;--sf:#F0F6FC;--gr:#5FD68A;--on2:#A9B0D4;--ff:\"Montserrat\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;font-family:var(--ff);color:var(--tx);font-size:17px;line-height:26px;box-sizing:border-box}\n#ix-page *,#ix-page *::before,#ix-page *::after{box-sizing:border-box}\n#ix-page img{max-width:100%;height:auto}\n\/* Mesma estrutura de camadas da Calculadora de Ruptura: gradiente de direcao,\n   camada de cor em blend, e foto por baixo. A diferenca e que aqui a foto entra\n   como marca d'agua, porque quem ocupa o lado direito e a roda. Por isso o\n   gradiente fecha ate .82 na ponta direita, em vez dos .28 da ruptura.\n   No preview do artifact a foto e bloqueada por CSP; no site ela carrega. *\/\n#ix-page .ix-hero{position:relative;background-image:linear-gradient(90deg,rgba(11,18,58,.97) 0%,rgba(14,28,88,.94) 40%,rgba(18,38,110,.88) 68%,rgba(22,50,140,.82) 100%),linear-gradient(rgba(26,58,150,.62),rgba(26,58,150,.62)),url(https:\/\/integrity-ux.com.br\/wp-content\/uploads\/2026\/09\/cover-finops.jpg);background-blend-mode:normal,color,normal;background-color:#0b123a;background-position:center;background-size:cover;background-repeat:no-repeat;padding:46px 80px 70px}\n#ix-page .ix-hero-in{max-width:1200px;margin:0 auto}\n#ix-page .ix-logo{width:167px;display:block;margin:0}\n\/* ADICAO: linha do topo com o logotipo e o seletor de idioma *\/\n#ix-page .ix-topo{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:0 0 56px}\n#ix-page .ix-idiomas{display:flex;gap:2px;align-items:center}\n#ix-page .ix-idiomas a{font-family:var(--ff);font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--on2);text-decoration:none;padding:7px 11px;border-radius:3px;line-height:1;display:block}\n#ix-page .ix-idiomas a:hover{color:#fff;background:rgba(255,255,255,.12)}\n#ix-page .ix-idiomas a[aria-current=\"page\"]{color:#fff;background:rgba(255,255,255,.18);cursor:default}\n#ix-page .ix-home{display:block;line-height:0}\n\/* ADICAO: navegacao de volta ao site, acima da linha de copyright *\/\n#ix-page .ix-rodnav{background:#E7E7E7;border-bottom:1px solid #d8d8d8;display:flex;gap:28px;justify-content:center;flex-wrap:wrap;padding:15px 24px}\n#ix-page .ix-rodnav a{font-family:var(--ff);font-size:13px;font-weight:600;color:#444;text-decoration:none;line-height:1.4}\n#ix-page .ix-rodnav a:hover{color:var(--nv);text-decoration:underline}\n#ix-page .ix-hero h1{font-family:var(--ff);font-weight:500;font-size:36px;line-height:1.28;color:#fff;margin:0 0 10px;max-width:520px}\n#ix-page .ix-hero h1 b{font-weight:700;display:block}\n#ix-page .ix-hero p{font-size:16px;line-height:26px;color:#fdfdfd;max-width:520px;margin:24px 0 0}\n#ix-page .ix-btn{display:inline-block;background:var(--lar);color:#fff;font-family:var(--ff);font-weight:700;font-size:15px;line-height:1.2;padding:12px 24px;border-radius:3px;text-decoration:none;border:0;cursor:pointer}\n#ix-page .ix-btn:hover{background:#e8551f;color:#fff}\n#ix-page .ix-hero .ix-btn{margin-top:28px}\n#ix-page .ix-body{background:#fff;padding:56px 24px 72px}\n#ix-page .ix-shell{max-width:1000px;margin:0 auto}\n#ix-page .ix-card{background:#fff;border:1px solid var(--ln);border-radius:3px;overflow:hidden;box-shadow:0 2px 4px rgba(28,33,87,.05),0 14px 40px rgba(28,33,87,.10)}\n#ix-page .ix-grid{display:grid;grid-template-columns:1fr 1fr}\n#ix-page .ix-in{padding:0;display:block}\n#ix-page .ix-grupo{padding:30px}\n#ix-page .ix-prem{background:var(--sf);border-top:1px solid var(--ln)}\n#ix-page .ix-gh{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--nv);margin:0 0 6px}\n#ix-page .ix-prem .ix-gh{color:#5A6480}\n#ix-page .ix-gs{font-size:13.5px;line-height:20px;color:var(--tx);margin:0 0 22px;max-width:46ch}\n#ix-page .ix-grupo .ix-fld + .ix-fld{margin-top:24px}\n#ix-page .ix-tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5A6480;background:#E3E9F3;border-radius:3px;padding:2px 7px;margin-right:7px;vertical-align:1px}\n#ix-page .ix-fld label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin:0 0 8px;line-height:1.4}\n#ix-page .ix-fld label b{color:var(--bl);font-weight:700}\n#ix-page input[type=number]{width:100%;font-family:var(--ff);font-size:17px;font-weight:600;padding:12px 14px;margin:0;border:1px solid var(--ln2);border-radius:3px;background:#fff;color:var(--ink);height:auto;line-height:1.4;box-shadow:none}\n#ix-page input[type=number]:focus{outline:none;border-color:var(--bl);box-shadow:0 0 0 3px rgba(67,97,238,.18)}\n#ix-page .ix-hint{font-size:14px;line-height:21px;color:var(--tx);margin:7px 0 0}\n\/* ADICAO: seletor de moeda ao lado do valor *\/\n#ix-page .ix-moeda{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}\n#ix-page .ix-moeda input[type=number]{flex:1 1 170px;width:auto}\n#ix-page select#pn-moeda{flex:0 0 auto;font-family:var(--ff);font-size:17px;font-weight:600;padding:12px 12px;margin:0;border:1px solid var(--ln2);border-radius:3px;background:#fff;color:var(--ink);height:auto;line-height:1.3}\n#ix-page select#pn-moeda:focus{outline:none;border-color:var(--bl);box-shadow:0 0 0 3px rgba(67,97,238,.18)}\n#ix-page .ix-out{background:var(--nv);color:#fff;padding:30px;display:grid;gap:22px;align-content:center}\n#ix-page .ix-k{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--on2);text-transform:uppercase}\n#ix-page .ix-v{font-weight:700;font-size:40px;color:#fff;letter-spacing:-.02em;line-height:1.1;margin-top:8px}\n#ix-page .ix-v.ix-g{color:var(--gr)}\n#ix-page .ix-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:15px;line-height:22px;color:var(--on2);border-top:1px solid rgba(255,255,255,.16);padding-top:14px}\n#ix-page .ix-row b{color:#fff;font-weight:700;white-space:nowrap}\n#ix-page .ix-foot{padding:18px 30px 22px;font-size:14px;line-height:21px;color:var(--tx);border-top:1px solid var(--ln);background:var(--sf)}\n#ix-page h2.ix-h{font-weight:700;font-size:28px;line-height:1.25;color:var(--ink);margin:64px 0 22px;text-align:center}\n#ix-page .ix-src{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}\n#ix-page .ix-s{border:1px solid var(--ln);border-radius:3px;padding:24px;background:#fff}\n#ix-page .ix-s .n{font-weight:700;font-size:32px;line-height:1.1;color:var(--bl);letter-spacing:-.02em}\n#ix-page .ix-s .d{font-size:15px;line-height:23px;color:var(--tx);margin-top:10px}\n#ix-page .ix-s .f{font-size:12px;line-height:18px;color:#99a0ad;margin-top:14px}\n#ix-page .ix-met{background:var(--sf);border:1px solid var(--ln);border-radius:3px;padding:26px 30px}\n#ix-page .ix-met ol{margin:0;padding-left:20px;display:grid;gap:10px;font-size:16px;line-height:25px;color:var(--tx)}\n#ix-page .ix-met ol b{color:var(--ink)}\n#ix-page .ix-met .p{font-size:14px;line-height:21px;color:#99a0ad;margin:18px 0 0}\n#ix-page .ix-fim{background:var(--sf);border:1px solid var(--ln);border-radius:3px;padding:34px;text-align:center;margin-top:64px}\n#ix-page .ix-fim h2{font-weight:700;font-size:24px;color:var(--ink);margin:0 0 12px}\n#ix-page .ix-fim p{max-width:62ch;margin:0 auto 22px;font-size:16px;line-height:25px}\n\/* ADICAO: bloco final escuro, como faz a Smile IT, com a oferta descrita *\/\n#ix-page .ix-fim.ix-escuro{background:var(--nv);border-color:var(--nv);color:#fff;padding:48px 34px}\n#ix-page .ix-fim.ix-escuro h2{color:#fff;font-size:28px;margin-bottom:16px}\n#ix-page .ix-fim.ix-escuro p{color:var(--on2)}\n#ix-page .ix-fim.ix-escuro .ix-form{background:#fff;border-radius:3px;padding:26px;margin-top:28px}\n#ix-page .ix-tranquiliza{font-size:14px;line-height:21px;color:var(--on2);max-width:62ch;margin:0 auto 4px}\n#ix-page .ix-tranquiliza b{color:#fff;font-weight:700}\n\/* ADICAO: nome do perfil, no painel navy *\/\n#ix-page .ix-perfil{font-weight:700;font-size:26px;line-height:1.15;color:#fff;letter-spacing:-.01em;margin:6px 0 0}\n#ix-page .ix-perfil-reg{font-size:12.5px;line-height:18px;color:var(--on2);margin:8px 0 0}\n\/* quando nao ha valor a mostrar, o espaco do numero recebe a explicacao,\n   em texto normal e sem o verde de ganho, para nao parecer falha *\/\n#ix-page .ix-semvalor{font-size:16px;line-height:24px;color:#fff;font-weight:500;margin:10px 0 0}\n\/* ADICAO: refazer *\/\n#ix-page .ix-refazer{display:inline-block;background:none;border:1px solid var(--ln2);border-radius:3px;padding:11px 20px;font-family:var(--ff);font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;white-space:normal}\n#ix-page .ix-refazer:hover{border-color:var(--bl);color:var(--bl)}\n#ix-page .ix-btn-out{display:block;text-align:center;margin-top:6px}\n#ix-page .ix-nota{font-size:13px;line-height:19px;color:var(--on2);margin:12px 0 0;text-align:center}\n#ix-page .ix-ref{font-size:12.5px;line-height:18px;color:var(--on2);margin:10px 0 0}\n#ix-page .ix-ref.ix-alerta{color:#FFCF8B}\n\/* rodape e copyright, verbatim da Calculadora de Ruptura *\/\n#ix-page .ix-rod{background:var(--nv);color:#fff;padding:48px 24px 34px}\n#ix-page .ix-rod-in{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}\n#ix-page .ix-rod h4{font-size:14px;font-weight:700;color:#fff;margin:0 0 12px;text-transform:uppercase;letter-spacing:.04em}\n#ix-page .ix-rod p,#ix-page .ix-rod a{font-size:14px;line-height:23px;color:var(--on2);margin:0 0 6px;text-decoration:none;display:block}\n#ix-page .ix-rod a:hover{color:#fff}\n#ix-page .ix-rod a.ix-ct{display:flex;align-items:center;gap:9px}\n#ix-page .ix-rod p.ix-ct{display:flex;align-items:flex-start;gap:9px}\n#ix-page .ix-rod p.ix-ct .ix-ic{margin-top:4px}\n#ix-page .ix-rod p.ix-nud{padding-left:24px}\n#ix-page .ix-rod .ix-ic{width:15px;height:15px;flex:0 0 15px;fill:#fff;opacity:.92}\n#ix-page .ix-copy{background:#E7E7E7;color:#444;font-size:13px;text-align:center;padding:16px 24px}\n#ix-page .ix-copy a{color:#444;text-decoration:underline}\n\n\/* ADICAO: botoes de opcao, no mesmo idioma dos campos *\/\n\/* white-space:normal e obrigatorio: o tema aplica nowrap em button, e sem isto\n   o texto da opcao nao quebra linha e fica cortado na coluna. *\/\n#ix-page .ix-op{display:block;width:100%;height:auto;text-align:left;font-family:var(--ff);font-size:14px;line-height:20px;padding:10px 13px;border:1px solid var(--ln2);border-radius:3px;background:#fff;color:var(--ink);cursor:pointer;margin-top:8px;white-space:normal;overflow-wrap:break-word}\n#ix-page .ix-op:hover{border-color:var(--bl)}\n#ix-page .ix-op[aria-pressed=\"true\"]{border-color:var(--bl);background:#EEF2FE;color:var(--bl);font-weight:700;box-shadow:0 0 0 3px rgba(67,97,238,.12)}\n#ix-page .ix-op:focus-visible{outline:2px solid var(--bl);outline-offset:2px}\n#ix-page .ix-ops.ix-lin{display:flex;flex-wrap:wrap;gap:8px}\n#ix-page .ix-ops.ix-lin .ix-op{width:auto;margin-top:0}\n\/* ADICAO: passo a passo, uma pergunta por vez *\/\n#ix-page .ix-prog{height:4px;background:var(--ln);border-radius:2px;margin:0 0 24px;overflow:hidden}\n#ix-page .ix-prog i{display:block;height:100%;background:var(--bl);border-radius:2px;transition:width .25s}\n#ix-page .ix-pq{font-family:var(--ff);font-weight:700;font-size:21px;line-height:1.3;color:var(--ink);margin:12px 0 16px}\n#ix-page .ix-nav{display:flex;align-items:center;gap:18px;margin-top:24px;min-height:42px}\n#ix-page .ix-volta{background:none;border:0;padding:0;color:var(--tx);font-family:var(--ff);font-size:14px;cursor:pointer;text-decoration:underline;white-space:normal}\n#ix-page .ix-volta:hover{color:var(--bl)}\n#ix-page .ix-volta[hidden]{display:none}\n#ix-page .ix-btn[hidden]{display:none}\n#ix-page .ix-btn[disabled]{opacity:.45;cursor:not-allowed}\n#ix-page .ix-btn[disabled]:hover{background:var(--lar)}\n#ix-page .ix-erro{color:#FFD9A0}\n\/* o resumo e o campo que carrega o PDF existem so para o envio *\/\n#ix-page .elementor-field-group-panorama,\n#ix-page .elementor-field-group-documento{display:none}\n#ix-page .ix-aviso{font-size:13.5px;line-height:20px;color:#8A5A00;background:#FDF3E0;border-radius:3px;padding:10px 12px;margin:18px 0 0}\n#ix-page .ix-aviso:empty{display:none}\n\/* ADICAO: barras do panorama, sobre o navy *\/\n#ix-page .ix-dim{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:baseline}\n#ix-page .ix-dim .nm{font-size:14px;font-weight:700;color:#fff}\n#ix-page .ix-dim .nv{font-size:12px;color:var(--on2);text-align:right;white-space:nowrap}\n#ix-page .ix-seg{grid-column:1\/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:5px}\n#ix-page .ix-seg i{height:7px;border-radius:2px;background:rgba(255,255,255,.18)}\n#ix-page .ix-seg i.on{background:#fff}\n#ix-page .ix-seg.na i{background:rgba(255,255,255,.09)}\n#ix-page .ix-dims{display:grid;gap:16px}\n\/* ADICAO: tabela, no idioma do .ix-met *\/\n#ix-page .ix-rol{overflow-x:auto}\n#ix-page table.ix-tab{width:100%;border-collapse:collapse;font-size:15px;margin:0}\n#ix-page table.ix-tab th,#ix-page table.ix-tab td{text-align:left;padding:12px 14px;border-top:1px solid var(--ln);border-bottom:0;background:none;white-space:nowrap;vertical-align:top}\n#ix-page table.ix-tab thead th{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5A6480;white-space:normal;border-top:0}\n#ix-page table.ix-tab .v{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}\n#ix-page table.ix-tab .gh{color:var(--bl)}\n#ix-page table.ix-tab .pr{color:var(--lar)}\n#ix-page table.ix-tab .nd{font-size:12.5px;font-weight:400;color:#99a0ad;white-space:normal;max-width:210px}\n#ix-page .ix-prz{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 18px;font-size:14px;color:var(--tx)}\n#ix-page .ix-prz button{font-family:var(--ff);font-size:13.5px;font-weight:600;padding:8px 15px;border-radius:3px;border:1px solid var(--ln2);background:#fff;color:var(--ink);cursor:pointer;white-space:normal;height:auto}\n#ix-page .ix-prz button[aria-pressed=\"true\"]{border-color:var(--bl);background:#EEF2FE;color:var(--bl);font-weight:700}\n#ix-page .ix-lista{display:grid;gap:16px;margin:0}\n#ix-page .ix-lista dt{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:4px}\n#ix-page .ix-lista dd{margin:0;font-size:15px;line-height:23px;color:var(--tx)}\n#ix-page .ix-met ul{margin:0;padding-left:20px;display:grid;gap:10px;font-size:15px;line-height:23px}\n#ix-page .ix-met ul b{color:var(--ink)}\n#ix-page .ix-espera{border:1px dashed var(--ln2);border-radius:3px;padding:28px;text-align:center;color:var(--tx);font-size:15px;background:#fff}\n#ix-page .ix-prom{display:flex;flex-wrap:wrap;gap:8px 26px;margin:26px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.22);font-size:13px;font-weight:600;color:#fff;max-width:760px}\n#ix-page .ix-prom span::before{content:\"\u2014 \";color:var(--on2)}\n\/* ADICAO: hero em duas colunas, texto a esquerda e a roda a direita,\n   seguindo a composicao do hero da Calculadora de Ruptura *\/\n#ix-page .ix-hero-cols{display:grid;grid-template-columns:1.06fr .94fr;gap:44px;align-items:center}\n#ix-page .ix-roda-wrap{text-align:center}\n#ix-page .ix-roda{max-width:400px;width:100%;margin:0 auto;display:block}\n#ix-page .ix-roda text{font-family:var(--ff)}\n#ix-page .ix-leg{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 20px;margin:14px 0 0;font-size:12.5px;font-weight:700;color:#fff}\n#ix-page .ix-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}\n\n\/* ADICAO: 1fr nao encolhe abaixo do conteudo e estoura a coluna com texto\n   longo. minmax(0,1fr) permite encolher. Vale para todas as grades. *\/\n#ix-page .ix-hero-cols{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)}\n#ix-page .ix-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}\n#ix-page .ix-qs{grid-template-columns:repeat(2,minmax(0,1fr))}\n#ix-page .ix-src{grid-template-columns:repeat(3,minmax(0,1fr))}\n#ix-page .ix-rod-in{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}\n#ix-page .ix-q,#ix-page .ix-s,#ix-page .ix-in,#ix-page .ix-out,#ix-page .ix-grupo{min-width:0}\n#ix-page .ix-q h3,#ix-page .ix-op,#ix-page .ix-gs,#ix-page .ix-hint{overflow-wrap:break-word}\n\n@media(max-width:900px){\n  #ix-page .ix-hero{padding:34px 24px 54px;background-image:linear-gradient(180deg,rgba(11,18,58,.97) 0%,rgba(26,58,150,.88) 100%),linear-gradient(rgba(26,58,150,.62),rgba(26,58,150,.62)),url(https:\/\/integrity-ux.com.br\/wp-content\/uploads\/2026\/09\/cover-finops.jpg);background-blend-mode:normal,color,normal;background-position:center;background-size:cover}\n  #ix-page .ix-hero h1{font-size:27px}\n  #ix-page .ix-hero-cols{grid-template-columns:1fr;gap:30px}\n  #ix-page .ix-roda{max-width:320px}\n  #ix-page .ix-rod-in{grid-template-columns:1fr}\n  #ix-page .ix-grid{grid-template-columns:1fr}\n  #ix-page .ix-v{font-size:32px}\n  #ix-page .ix-src{grid-template-columns:1fr}\n  #ix-page .ix-qs{grid-template-columns:1fr}\n  #ix-page .ix-grupo,#ix-page .ix-out{padding:24px}\n  #ix-page .ix-in{padding:0}\n  #ix-page h2.ix-h{font-size:23px;margin-top:48px}\n}\n<\/style>\n\n<div class=\"ix-hero\">\n  <div class=\"ix-hero-in\">\n    <div class=\"ix-topo\">\n      <a class=\"ix-home\" id=\"pn-home\" href=\"https:\/\/integrity-ux.com.br\/\"><img class=\"ix-logo\" src=\"https:\/\/integrity-ux.com.br\/wp-content\/webp-express\/webp-images\/uploads\/2023\/11\/logo_ingrity_branco.png.webp\" alt=\"Integrity-UX\" fetchpriority=\"high\" decoding=\"sync\"><\/a>\n      <nav class=\"ix-idiomas\" id=\"pn-idiomas\" aria-label=\"Idioma\" data-no-translation>\n        <a href=\"https:\/\/integrity-ux.com.br\/panorama-de-nuvem\/\" hreflang=\"pt-BR\" lang=\"pt-BR\">PT<\/a>\n        <a href=\"https:\/\/integrity-ux.com.br\/en\/panorama-de-nuvem\/\" hreflang=\"en-US\" lang=\"en-US\">EN<\/a>\n        <a href=\"https:\/\/integrity-ux.com.br\/es\/panorama-de-nuvem\/\" hreflang=\"es-ES\" lang=\"es-ES\">ES<\/a>\n      <\/nav>\n    <\/div>\n    <div class=\"ix-hero-cols\">\n      <div>\n        <h1>Avalia\u00e7\u00e3o de nuvem que termina em reais, <b>n\u00e3o em nota, com o prazo que cada desconto custa<\/b><\/h1>\n        <p>Seis frentes decidem o custo da sua nuvem. Em duas o resultado sai em reais; nas outras quatro dizemos por que n\u00e3o sai e qual \u00e9 o pr\u00f3ximo passo concreto. Voc\u00ea v\u00ea tamb\u00e9m o que acontece se precisar sair de um compromisso antes do prazo, com o percentual de cada nuvem tirado da documenta\u00e7\u00e3o do pr\u00f3prio fabricante.<\/p>\n        <a class=\"ix-btn\" href=\"#ix-calc\">Come\u00e7ar a avalia\u00e7\u00e3o<\/a>\n      <\/div>\n      <div class=\"ix-roda-wrap\">\n        <svg class=\"ix-roda\" viewBox=\"0 0 400 400\" role=\"img\" aria-label=\"Roda das seis frentes que decidem o custo da nuvem, agrupadas em Entender, Otimizar e Governar\">\n          <g transform=\"rotate(-90 200 200)\">\n            <!-- anel externo: as tres familias -->\n            <circle cx=\"200\" cy=\"200\" r=\"182.5\" fill=\"none\" pathLength=\"600\" stroke=\"#5FD68A\" stroke-width=\"25\" stroke-dasharray=\"195 405\" stroke-dashoffset=\"0\"\/>\n            <circle cx=\"200\" cy=\"200\" r=\"182.5\" fill=\"none\" pathLength=\"600\" stroke=\"#4361EE\" stroke-width=\"25\" stroke-dasharray=\"195 405\" stroke-dashoffset=\"-200\"\/>\n            <circle cx=\"200\" cy=\"200\" r=\"182.5\" fill=\"none\" pathLength=\"600\" stroke=\"#A9B0D4\" stroke-width=\"25\" stroke-dasharray=\"195 405\" stroke-dashoffset=\"-400\"\/>\n            <!-- anel interno: as seis dimensoes -->\n            <circle cx=\"200\" cy=\"200\" r=\"122.5\" fill=\"none\" pathLength=\"600\" stroke=\"#D9F5E5\" stroke-width=\"85\" stroke-dasharray=\"97 503\" stroke-dashoffset=\"0\"\/>\n            <circle cx=\"200\" cy=\"200\" r=\"122.5\" fill=\"none\" pathLength=\"600\" stroke=\"#D9F5E5\" stroke-width=\"85\" stroke-dasharray=\"97 503\" stroke-dashoffset=\"-100\"\/>\n            <circle cx=\"200\" cy=\"200\" r=\"122.5\" fill=\"none\" pathLength=\"600\" stroke=\"#DCE3FD\" stroke-width=\"85\" stroke-dasharray=\"97 503\" stroke-dashoffset=\"-200\"\/>\n            <circle cx=\"200\" cy=\"200\" r=\"122.5\" fill=\"none\" pathLength=\"600\" stroke=\"#DCE3FD\" stroke-width=\"85\" stroke-dasharray=\"97 503\" stroke-dashoffset=\"-300\"\/>\n            <circle cx=\"200\" cy=\"200\" r=\"122.5\" fill=\"none\" pathLength=\"600\" stroke=\"#E9EBF4\" stroke-width=\"85\" stroke-dasharray=\"97 503\" stroke-dashoffset=\"-400\"\/>\n            <circle cx=\"200\" cy=\"200\" r=\"122.5\" fill=\"none\" pathLength=\"600\" stroke=\"#E9EBF4\" stroke-width=\"85\" stroke-dasharray=\"97 503\" stroke-dashoffset=\"-500\"\/>\n          <\/g>\n          <!-- rotulos -->\n          <g text-anchor=\"middle\" fill=\"#1C2157\">\n            <g><text x=\"260\" y=\"78\" font-size=\"26\" font-weight=\"700\" fill=\"#1C2157\" opacity=\".2\">1<\/text>\n               <text data-rot=\"0\" x=\"260\" y=\"100\" font-size=\"10.5\" font-weight=\"600\">Rateio e<\/text>\n               <text data-rot=\"1\" x=\"260\" y=\"113\" font-size=\"10.5\" font-weight=\"600\">visibilidade<\/text><\/g>\n            <g><text x=\"320\" y=\"182\" font-size=\"26\" font-weight=\"700\" fill=\"#1C2157\" opacity=\".2\">2<\/text>\n               <text data-rot=\"2\" x=\"320\" y=\"204\" font-size=\"10.5\" font-weight=\"600\">Previs\u00e3o e<\/text>\n               <text data-rot=\"3\" x=\"320\" y=\"217\" font-size=\"10.5\" font-weight=\"600\">or\u00e7amento<\/text><\/g>\n            <g><text x=\"260\" y=\"286\" font-size=\"26\" font-weight=\"700\" fill=\"#1C2157\" opacity=\".2\">3<\/text>\n               <text data-rot=\"4\" x=\"260\" y=\"308\" font-size=\"10.5\" font-weight=\"600\">Otimiza\u00e7\u00e3o<\/text>\n               <text data-rot=\"5\" x=\"260\" y=\"321\" font-size=\"10.5\" font-weight=\"600\">de taxa<\/text><\/g>\n            <g><text x=\"140\" y=\"286\" font-size=\"26\" font-weight=\"700\" fill=\"#1C2157\" opacity=\".2\">4<\/text>\n               <text data-rot=\"6\" x=\"140\" y=\"308\" font-size=\"10.5\" font-weight=\"600\">Otimiza\u00e7\u00e3o<\/text>\n               <text data-rot=\"7\" x=\"140\" y=\"321\" font-size=\"10.5\" font-weight=\"600\">de uso<\/text><\/g>\n            <g><text x=\"80\" y=\"182\" font-size=\"26\" font-weight=\"700\" fill=\"#1C2157\" opacity=\".2\">5<\/text>\n               <text data-rot=\"8\" x=\"80\" y=\"204\" font-size=\"10.5\" font-weight=\"600\">Anomalias<\/text><\/g>\n            <g><text x=\"140\" y=\"78\" font-size=\"26\" font-weight=\"700\" fill=\"#1C2157\" opacity=\".2\">6<\/text>\n               <text data-rot=\"9\" x=\"140\" y=\"100\" font-size=\"10.5\" font-weight=\"600\">Responsa-<\/text>\n               <text data-rot=\"10\" x=\"140\" y=\"113\" font-size=\"10.5\" font-weight=\"600\">bilidade<\/text><\/g>\n          <\/g>\n          <!-- centro -->\n          <circle cx=\"200\" cy=\"200\" r=\"78\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-dasharray=\"2 5\" opacity=\".55\"\/>\n          <circle cx=\"200\" cy=\"200\" r=\"70\" fill=\"#1C2157\"\/>\n          <text data-rot=\"11\" x=\"200\" y=\"195\" text-anchor=\"middle\" font-size=\"12\" font-weight=\"700\" fill=\"#fff\" letter-spacing=\"1\">CUSTO<\/text>\n          <text data-rot=\"12\" x=\"200\" y=\"212\" text-anchor=\"middle\" font-size=\"12\" font-weight=\"700\" fill=\"#fff\" letter-spacing=\"1\">DA NUVEM<\/text>\n        <\/svg>\n        <div class=\"ix-leg\">\n          <span><i style=\"background:#5FD68A\"><\/i>Entender<\/span>\n          <span><i style=\"background:#4361EE\"><\/i>Otimizar<\/span>\n          <span><i style=\"background:#A9B0D4\"><\/i>Governar<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"ix-prom\">\n      <span>Sem cadastro para ver o resultado<\/span>\n      <span>Sem liga\u00e7\u00e3o de vendas<\/span>\n      <span>Resultado completo na tela<\/span>\n      <span>Cada n\u00famero com a fonte do fabricante<\/span>\n      <span>PDF por e-mail, se voc\u00ea quiser<\/span>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"ix-body\">\n  <div class=\"ix-shell\">\n\n    <div class=\"ix-card\" id=\"ix-calc\">\n      <div class=\"ix-grupo\">\n        <p class=\"ix-gh\" id=\"pn-rot\">Passo 1 de 8<\/p>\n        <div class=\"ix-prog\"><i id=\"pn-bar\" style=\"width:0%\"><\/i><\/div>\n        <div id=\"pn-passo\"><\/div>\n        <p class=\"ix-aviso\" id=\"pn-aviso\"><\/p>\n        <div class=\"ix-nav\">\n          <button type=\"button\" class=\"ix-volta\" id=\"pn-voltar\" hidden>Voltar<\/button>\n          <button type=\"button\" class=\"ix-btn\" id=\"pn-avancar\" hidden>Avan\u00e7ar<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div id=\"pn-espera\" class=\"ix-espera\" style=\"margin-top:22px\">Responda as perguntas acima para ver o seu panorama.<\/div>\n\n    <div class=\"ix-card\" id=\"pn-cardRes\" hidden style=\"margin-top:22px\">\n      <div class=\"ix-grid\">\n        <div class=\"ix-in\">\n          <div class=\"ix-grupo\">\n            <p class=\"ix-gh\">O que limita o seu panorama hoje<\/p>\n            <div id=\"pn-limita\"><\/div>\n          <\/div>\n        <\/div>\n        <div class=\"ix-out\">\n          <div>\n            <p class=\"ix-k\">O seu perfil<\/p>\n            <p class=\"ix-perfil\" id=\"pn-perfil\"><\/p>\n            <p class=\"ix-perfil-reg\" id=\"pn-perfilReg\"><\/p>\n          <\/div>\n          <div>\n            <p class=\"ix-k\">Seu panorama em seis dimens\u00f5es<\/p>\n            <div class=\"ix-dims\" id=\"pn-barras\" style=\"margin-top:16px\"><\/div>\n          <\/div>\n          <div id=\"pn-resumoValor\"><\/div>\n          <p class=\"ix-ref\" id=\"pn-refPainel\"><\/p>\n          <a class=\"ix-btn ix-btn-out\" href=\"#diagnostico\" id=\"pn-pedirPdf\">Receber este panorama em PDF<\/a>\n          <p class=\"ix-ref\" id=\"pn-pdfAviso\" hidden><\/p>\n          <p class=\"ix-nota\">Sem cadastro para chegar at\u00e9 aqui. O diagn\u00f3stico \u00e9 opcional.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"ix-foot\">Estimativa de ordem de grandeza, n\u00e3o medi\u00e7\u00e3o da sua opera\u00e7\u00e3o. Duas das seis dimens\u00f5es recebem valor em reais porque podem ser estimadas a partir do que voc\u00ea informou. As outras quatro recebem o pr\u00f3ximo passo, porque a lacuna nelas n\u00e3o se converte em reais sem saber que decis\u00f5es foram tomadas.<\/div>\n    <\/div>\n\n    <div id=\"pn-resto\" hidden>\n\n      <h2 class=\"ix-h\">Otimiza\u00e7\u00e3o de taxa: o que voc\u00ea ganha, e o que fica preso<\/h2>\n      <p style=\"text-align:center;max-width:70ch;margin:0 auto 22px;font-size:16px\" id=\"pn-baseTexto\"><\/p>\n      <div class=\"ix-prz\" id=\"pn-termo\">\n        <span>Degrau de pre\u00e7o<\/span>\n        <button type=\"button\" data-v=\"1\" aria-pressed=\"true\">Reserva de 1 ano<\/button>\n        <button type=\"button\" data-v=\"3\" aria-pressed=\"false\">Reserva de 3 anos<\/button>\n      <\/div>\n      <div class=\"ix-met\" style=\"padding:0\">\n        <div class=\"ix-rol\">\n          <table class=\"ix-tab\">\n            <thead><tr>\n              <th>Cobertura que voc\u00ea escolher<\/th>\n              <th id=\"pn-thEconomia\">Economia por m\u00eas<\/th>\n              <th>Preso pelo prazo, por m\u00eas<\/th>\n              <th>Livre para sair sem multa<\/th>\n            <\/tr><\/thead>\n            <tbody id=\"pn-tabela\"><\/tbody>\n          <\/table>\n        <\/div>\n      <\/div>\n      <div class=\"ix-met\" style=\"margin-top:20px\">\n        <ul>\n          <li><b>Preso pelo prazo<\/b> \u00e9 o valor mensal que voc\u00ea se compromete a manter nessa nuvem at\u00e9 o fim do contrato. As tr\u00eas cobram o compromisso usando ou n\u00e3o: o Google fatura os recursos comprometidos independentemente de uso, a Microsoft cobra o valor comprometido a cada hora e o n\u00e3o usado expira sem acumular, a AWS trata No Upfront como obriga\u00e7\u00e3o contratual por todo o prazo.<\/li>\n          <li><b>Livre para sair sem multa<\/b> \u00e9 o restante da fatura. Essa parte voc\u00ea move para onde quiser, quando quiser, sem penalidade.<\/li>\n          <li id=\"pn-legTaxa\"><\/li>\n          <li><b>Seu pr\u00f3ximo passo.<\/b> <span id=\"pn-passoTaxa\"><\/span><\/li>\n        <\/ul>\n      <\/div>\n\n      <h2 class=\"ix-h\" id=\"pn-usoTitulo\"><\/h2>\n      <div class=\"ix-met\">\n        <p style=\"margin:0 0 14px;font-size:16px\" id=\"pn-usoSub\"><\/p>\n        <p id=\"pn-usoValorLinha\" style=\"font-weight:700;font-size:32px;line-height:1.1;color:var(--bl);letter-spacing:-.02em;margin:0 0 14px\"><\/p>\n        <ul>\n          <li id=\"pn-usoLeg\"><\/li>\n          <li id=\"pn-usoExtra\"><\/li>\n          <li id=\"pn-usoDisco\"><\/li>\n          <li><b>Seu pr\u00f3ximo passo.<\/b> <span id=\"pn-passoUso\"><\/span><\/li>\n        <\/ul>\n      <\/div>\n\n      <h2 class=\"ix-h\">As outras quatro dimens\u00f5es<\/h2>\n      <p style=\"text-align:center;max-width:70ch;margin:0 auto 22px;font-size:16px\">Rateio, previs\u00e3o, anomalias e responsabilidade n\u00e3o se convertem em reais a partir do total da fatura. A lacuna nelas aparece como decis\u00e3o tomada sem informa\u00e7\u00e3o, e o custo disso depende de qual decis\u00e3o foi tomada. O que d\u00e1 para entregar aqui \u00e9 o pr\u00f3ximo degrau de cada uma, em a\u00e7\u00e3o concreta.<\/p>\n      <div class=\"ix-src\" id=\"pn-acoes\" style=\"grid-template-columns:repeat(2,1fr)\"><\/div>\n\n      <h2 class=\"ix-h\" id=\"pn-saidaTitulo\">Regras de sa\u00edda<\/h2>\n      <div class=\"ix-met\"><dl class=\"ix-lista\" id=\"pn-saida\"><\/dl><\/div>\n\n      <h2 class=\"ix-h\">Pontos documentados que mudam a decis\u00e3o<\/h2>\n      <div class=\"ix-met\"><ul id=\"pn-alertas\"><\/ul><\/div>\n\n      <h2 class=\"ix-h\" id=\"pn-gratisTitulo\">O que a sua nuvem j\u00e1 entrega de gra\u00e7a<\/h2>\n      <div class=\"ix-met\" id=\"pn-gratis\"><\/div>\n\n      <h2 class=\"ix-h\">De onde v\u00eam os n\u00fameros<\/h2>\n      <div class=\"ix-src\">\n        <div class=\"ix-s\">\n          <div class=\"n\">28% e 46%<\/div>\n          <div class=\"d\">Desconto do compromisso flex\u00edvel do Google para s\u00e9ries de uso geral, em 1 e 3 anos. Valor exato, n\u00e3o teto, e j\u00e1 em regime de pagamento mensal.<\/div>\n          <div class=\"f\">Google Cloud, Committed use discounts for Compute Engine<\/div>\n        <\/div>\n        <div class=\"ix-s\">\n          <div class=\"n\">11% a 65%<\/div>\n          <div class=\"d\">Faixa oficial do savings plan para computa\u00e7\u00e3o do Azure. Os 65% correspondem a uma M64dsv2 Ubuntu em East US por 36 meses. A Microsoft n\u00e3o publica percentual por prazo.<\/div>\n          <div class=\"f\">Microsoft, p\u00e1gina de Savings plans, nota de rodap\u00e9 1<\/div>\n        <\/div>\n        <div class=\"ix-s\">\n          <div class=\"n\">at\u00e9 66%<\/div>\n          <div class=\"d\">Teto do Compute Savings Plans da AWS, o plano mais flex\u00edvel. A AWS n\u00e3o publica o percentual de 1 ano, apenas que 3 anos rende mais.<\/div>\n          <div class=\"f\">AWS, Savings Plans User Guide<\/div>\n        <\/div>\n      <\/div>\n\n      <h2 class=\"ix-h\">Como a conta \u00e9 feita<\/h2>\n      <div class=\"ix-met\">\n        <ol>\n          <li><b>A fatura \u00e9 dividida em duas.<\/b> A parte n\u00e3o produtiva responde a calend\u00e1rio, porque pode ser desligada. A parte produtiva responde a compromisso, porque roda continuamente e \u00e9 justamente por isso que \u00e9 candidata a reserva.<\/li>\n          <li><b>Eixo de taxa.<\/b> A base sem compromisso multiplicada pela cobertura que voc\u00ea escolher e pelo percentual do fabricante. As colunas de valor preso e valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nas tr\u00eas nuvens.<\/li>\n          <li><b>Eixo de calend\u00e1rio.<\/b> As horas fora da janela que voc\u00ea informou, sobre o gasto n\u00e3o produtivo que voc\u00ea informou. Sai como teto, e provavelmente bem acima do valor real, porque desligar m\u00e1quina interrompe s\u00f3 a cobran\u00e7a de computa\u00e7\u00e3o. Armazenamento, disco, tr\u00e1fego, licen\u00e7as e servi\u00e7os gerenciados continuam sendo cobrados, e n\u00e3o sabemos a propor\u00e7\u00e3o deles na sua fatura.<\/li>\n          <li><b>No Google o eixo de calend\u00e1rio sai como faixa<\/b>, porque desligar reduz o Sustained Use Discount. A conta usa a tabela oficial por faixa de uso mensal.<\/li>\n          <li><b>As faixas de resposta usam o ponto m\u00e9dio.<\/b> A faixa de 15 a 30 l\u00ea 22,5. A faixa aberta superior usa o piso, que \u00e9 o tratamento conservador.<\/li>\n        <\/ol>\n        <p class=\"p\">Escada de quatro n\u00edveis adaptada do modelo de maturidade da FinOps Foundation, que usa os est\u00e1gios Crawl, Walk e Run. Licenciado em CC BY 4.0, que permite adapta\u00e7\u00e3o com atribui\u00e7\u00e3o. Consultas \u00e0s p\u00e1ginas oficiais de AWS, Azure e Google em setembro de 2026.<\/p>\n      <\/div>\n\n      <div style=\"text-align:center;margin-top:48px\">\n        <button type=\"button\" class=\"ix-refazer\" id=\"pn-refazer\">Refazer o panorama com outras respostas<\/button>\n      <\/div>\n\n      <div class=\"ix-fim ix-escuro\" id=\"diagnostico\">\n        <h2>Quer o n\u00famero real da sua opera\u00e7\u00e3o?<\/h2>\n        <p id=\"pn-fecho1\"><\/p>\n        <p id=\"pn-fecho2\"><\/p>\n        <p class=\"ix-tranquiliza\"><b>O seu panorama continua na tela de qualquer forma.<\/b> O formul\u00e1rio abaixo \u00e9 opcional e faz duas coisas: entrega este panorama em PDF, com o seu nome na capa, pronto para arquivar ou encaminhar internamente, e abre a conversa sobre o passo seguinte, que \u00e9 a leitura da fatura e do invent\u00e1rio reais. Preencher n\u00e3o muda nada do que voc\u00ea j\u00e1 viu aqui.<\/p>\n        <div class=\"ix-form\">\t\t<div data-elementor-type=\"container\" data-elementor-id=\"4584\" class=\"elementor elementor-4584 elementor-bc-flex-widget\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-30164f23 e-con-full e-flex e-con e-child\" data-id=\"30164f23\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58f24630 elementor-button-align-stretch elementor-widget elementor-widget-form\" data-id=\"58f24630\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<template id=\"cfef_logic_data_58f24630\" class=\"cfef_logic_data_js\" data-form-id=\"58f24630\">{\"field_1003c8d\":{\"display_mode\":\"show\",\"fire_action\":\"Any\",\"file_types\":\"png\",\"logic_data\":[{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"gmail\",\"_id\":\"1908bc1\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"hotmail\",\"_id\":\"b0727fb\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"outlook\",\"_id\":\"34f2b38\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"yahoo\",\"_id\":\"e8d451f\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"teste\",\"_id\":\"70ed480\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"testes\",\"_id\":\"93c7cfc\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"terra\",\"_id\":\"2639e0f\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"live\",\"_id\":\"74ed20c\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"uol\",\"_id\":\"d7fd739\"}]}}<\/template><template class=\"cfef_logic_data_submit_button_js\">{\"btn\":{\"logic_data\":[{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"gmail\",\"_id\":\"85033da\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"hotmail\",\"_id\":\"e26e273\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"outlook\",\"_id\":\"09b21b4\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"yahoo\",\"_id\":\"872a66d\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"teste\",\"_id\":\"83204a2\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"testes\",\"_id\":\"8906945\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"terra\",\"_id\":\"164d319\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"live\",\"_id\":\"34444d0\"},{\"cfef_logic_field_id\":\"email\",\"cfef_logic_field_is\":\"c\",\"cfef_logic_compare_value\":\"uol\",\"_id\":\"2a2889d\"}],\"display_mode\":\"disable\",\"fire_action\":\"Any\"}}<\/template>\t\t<form class=\"elementor-form\" method=\"post\" name=\"Formul\u00e1rio LPs\" aria-label=\"Formul\u00e1rio LPs\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"4584\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"58f24630\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"Integrity-UX &#8211; Consultoria de T.I. Especializada em Infraestrutura\" \/>\n\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-nome elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-nome\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tNome\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[nome]\" id=\"form-field-nome\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Nome\" required=\"required\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-hidden elementor-field-group elementor-column elementor-field-group-primeiro_nome elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[primeiro_nome]\" id=\"form-field-primeiro_nome\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-email\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tEmail\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"email\" name=\"form_fields[email]\" id=\"form-field-email\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"E-mail corporativo: @suaempresa.com.br\" required=\"required\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-html elementor-field-group elementor-column elementor-field-group-field_1003c8d elementor-col-100\">\n\t\t\t\t\tPor favor, utilize um e-mail corporativo (@suaempresa.com.br).\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-maskphone_with_ddd elementor-field-group elementor-column elementor-field-group-fone elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-fone\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tTelefone\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<input size=\"1\" type=\"tel\" name=\"form_fields[fone]\" id=\"form-field-fone\" class=\"elementor-field elementor-size-sm  elementor-field-textual phone_with_ddd\" placeholder=\"Telefone\">\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-empresa elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-empresa\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tEmpresa\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[empresa]\" id=\"form-field-empresa\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Empresa\" required=\"required\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-cargo elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-cargo\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tCargo\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[cargo]\" id=\"form-field-cargo\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Cargo\" required=\"required\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-hidden elementor-field-group elementor-column elementor-field-group-servico elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[servico]\" id=\"form-field-servico\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-textarea elementor-field-group elementor-column elementor-field-group-panorama elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-panorama\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tResumo do panorama\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<textarea class=\"elementor-field-textual elementor-field  elementor-size-sm\" name=\"form_fields[panorama]\" id=\"form-field-panorama\" rows=\"3\"><\/textarea>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-upload elementor-field-group elementor-column elementor-field-group-documento elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-documento\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tPanorama em PDF\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t<input type=\"file\" name=\"form_fields[documento]\" id=\"form-field-documento\" class=\"elementor-field elementor-size-sm  elementor-upload-field\" data-maxsize=\"2\" data-maxsize-message=\"This file exceeds the maximum allowed size.\">\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-recaptcha elementor-field-group elementor-column elementor-field-group-field_b01a807 elementor-col-100\">\n\t\t\t\t\t<div class=\"elementor-field\" id=\"form-field-field_b01a807\"><div class=\"elementor-g-recaptcha\" data-sitekey=\"6LfnNvAUAAAAAE61_TCkI_uHBX3v-vxIjGd-Yw-k\" data-type=\"v2_checkbox\" data-theme=\"light\" data-size=\"normal\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons\">\n\t\t\t\t\t<button class=\"elementor-button elementor-size-sm\" type=\"submit\" id=\"btn\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" width=\"512\" height=\"512\" x=\"0\" y=\"0\" viewBox=\"0 0 24 24\" style=\"enable-background:new 0 0 512 512\" xml:space=\"preserve\" class=\"\"><g><path fill=\"#ffffff\" d=\"M22.101 10.562 2.753 1.123A1.219 1.219 0 0 0 1 2.22v.035a2 2 0 0 0 .06.485l1.856 7.424a.5.5 0 0 0 .43.375l8.157.907a.559.559 0 0 1 0 1.11l-8.157.907a.5.5 0 0 0-.43.375L1.06 21.261a2 2 0 0 0-.06.485v.035a1.219 1.219 0 0 0 1.753 1.096L22.1 13.438a1.6 1.6 0 0 0 0-2.876z\" opacity=\"1\" data-original=\"#000000\" class=\"\"><\/path><\/g><\/svg>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">ENVIAR mensagem<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/form>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n        <p style=\"font-size:13px;line-height:19px;color:var(--on2);margin:20px 0 0\" id=\"pn-fecho3\"><\/p>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"ix-rod\"><div class=\"ix-rod-in\">\n<div><img decoding=\"async\" class=\"ix-logo\" style=\"margin-bottom:18px\" src=\"https:\/\/integrity-ux.com.br\/wp-content\/webp-express\/webp-images\/uploads\/2023\/11\/logo_ingrity_branco.png.webp\" alt=\"Integrity-UX\"><p>Consultoria de T.I. especializada em infraestrutura, dados e intelig\u00eancia artificial.<\/p><p>Microsoft Partner | Mais de 15 anos no mercado<\/p><\/div>\n<div><h4>Contato<\/h4><a class=\"ix-ct\" href=\"tel:+551135399818\"><svg class=\"ix-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\"><\/path><\/svg><span>+55 11 3539-9818<\/span><\/a><a class=\"ix-ct\" href=\"tel:+551126903607\"><svg class=\"ix-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"><\/path><\/svg><span>+55 11 2690-3607<\/span><\/a><a class=\"ix-ct\" href=\"mailto:contato@integrity-ux.com.br\"><svg class=\"ix-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"><\/path><\/svg><span>contato@integrity-ux.com.br<\/span><\/a><\/div>\n<div><h4>Endere\u00e7o<\/h4><p class=\"ix-ct\"><svg class=\"ix-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\"><\/path><\/svg><span>Av. Queiroz Filho, 1560, Conjunto 09, Gaivota<\/span><\/p><p class=\"ix-nud\">Vila Hamburguesa, S\u00e3o Paulo\/SP<\/p><p class=\"ix-nud\">CEP 05319-000<\/p><p class=\"ix-ct\" style=\"margin-top:12px\"><svg class=\"ix-ic\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"><\/path><\/svg><span>Atendimento em todo o Brasil<\/span><\/p><\/div>\n<\/div><\/div>\n<nav class=\"ix-rodnav\" aria-label=\"Navega\u00e7\u00e3o do site\"><a href=\"https:\/\/integrity-ux.com.br\/\">Home<\/a><a href=\"https:\/\/integrity-ux.com.br\/quem-somos\/\">Quem somos<\/a><a href=\"https:\/\/integrity-ux.com.br\/servicos\/\">Servi\u00e7os<\/a><a href=\"https:\/\/integrity-ux.com.br\/contato\/\">Contato<\/a><\/nav>\n<div class=\"ix-copy\">\u00a9 Integrity-UX \u00e9 uma consultoria de T.I. especializada em infraestrutura \u00b7 <a href=\"\/politica-de-privacidade\/\">Pol\u00edtica de Privacidade<\/a><\/div>\n<\/div>\n\n<script>\n(function(){\n\n  \/\/ ======================================================================\n  \/\/ Idioma. Mesmo criterio da calculadora de ruptura: prefixo da URL.\n  \/\/ O TranslatePress traduz o HTML da pagina, mas nao alcanca texto que\n  \/\/ vive dentro do JavaScript, que aqui e a maior parte.\n  \/\/\n  \/\/ O dicionario e indexado pela propria frase em portugues. A funcao trad()\n  \/\/ devolve a frase original quando nao encontra traducao, entao chave\n  \/\/ faltando ou errada mostra portugues em vez de quebrar a pagina.\n  \/\/ ======================================================================\n  var IDI = (function(){\n    var p = location.pathname;\n    if(p.indexOf(\"\/en\/\") === 0) return \"en\";\n    if(p.indexOf(\"\/es\/\") === 0) return \"es\";\n    return \"pt\";\n  })();\n  var LOCALE = {pt:\"pt-BR\", en:\"en-US\", es:\"es-ES\"}[IDI];\n  \/\/ Moedas. NADA e convertido em lugar nenhum do bloco: a pessoa digita o gasto\n  \/\/ na moeda que escolher e a conta devolve proporcoes do proprio numero dela.\n  \/\/ O idioma define so o padrao do seletor, porque a pagina nao tem seletor de\n  \/\/ idioma: quem abre \/en\/ ja chegou em ingles e quase sempre paga em dolar.\n  \/\/\n  \/\/ O agrupamento dos milhares segue o idioma, e nao a moeda, porque e assim que\n  \/\/ quem le espera ver o numero. Isso importa tanto quanto o simbolo: \"193.750\"\n  \/\/ lido por um americano vira cento e noventa e tres virgula setenta e cinco.\n  \/\/\n  \/\/ XXX e o codigo ISO 4217 para \"sem moeda\", usado aqui para quem paga em moeda\n  \/\/ fora da lista: o numero sai sem simbolo nenhum, em vez de sair errado.\n  var MOEDAS = [\"BRL\", \"USD\", \"EUR\", \"GBP\", \"MXN\", \"XXX\"];\n  var SIMBOLO = { BRL: \"R$\", USD: \"US$\", EUR: \"\u20ac\", GBP: \"\u00a3\", MXN: \"MX$\", XXX: \"\" };\n  var MOEDA_NOME = {\n    BRL: \"Real brasileiro\",\n    USD: \"D\u00f3lar americano\",\n    EUR: \"Euro\",\n    GBP: \"Libra esterlina\",\n    MXN: \"Peso mexicano\",\n    XXX: \"Outra moeda\"\n  };\n  var MOEDA_PADRAO = { pt: \"BRL\", en: \"USD\", es: \"USD\" }[IDI];\n\n  var TRAD = {en:{}, es:{}};\n  function trad(s){\n    if(IDI === \"pt\") return s;\n    var d = TRAD[IDI];\n    \/\/ hasOwnProperty, e nao d[s], porque traducao vazia e legitima:\n    \/\/ o artigo \"a \" antes do nome da nuvem nao existe em ingles.\n    return (d && Object.prototype.hasOwnProperty.call(d, s)) ? d[s] : s;\n  }\n\n  \/\/ Rotulos da roda, escritos pelo proprio bloco em vez de pelo TranslatePress.\n  \/\/\n  \/\/ Por que: os segmentos 3 e 4 comecam com a mesma palavra, \"Otimizacao\", e o\n  \/\/ TranslatePress indexa por texto, entao as duas linhas sao UMA string so e\n  \/\/ aceitam uma unica traducao. Com isso a roda dizia \"Optimizing rates\" e o\n  \/\/ corpo da pagina dizia \"Rate optimization\", dois nomes para a mesma coisa.\n  \/\/ Escrevendo daqui, cada linha e independente e a roda casa com o resultado.\n  \/\/\n  \/\/ A ordem e a dos atributos data-rot, numerados na montagem.\n  var RODA = {\n    en: [\"Allocation and\", \"visibility\",\n         \"Forecasting and\", \"budgeting\",\n         \"Rate\", \"optimization\",\n         \"Usage\", \"optimization\",\n         \"Anomalies\",\n         \"Accountability\", \"\",\n         \"CLOUD\", \"COST\"],\n    es: [\"Asignaci\u00f3n y\", \"visibilidad\",\n         \"Previsi\u00f3n y\", \"presupuesto\",\n         \"Optimizaci\u00f3n\", \"de tarifa\",\n         \"Optimizaci\u00f3n\", \"de uso\",\n         \"Anomal\u00edas\",\n         \"Responsa-\", \"bilidad\",\n         \"COSTO\", \"DE LA NUBE\"]\n  };\n  var RODA_ROTULO = {\n    en: \"Wheel of the six areas that decide cloud cost, grouped into Understand, Optimize and Govern\",\n    es: \"Rueda de las seis \u00e1reas que deciden el costo de la nube, agrupadas en Entender, Optimizar y Gobernar\"\n  };\n  if(IDI !== \"pt\" && RODA[IDI]){\n    (function(){\n      var textos = RODA[IDI];\n      for(var i = 0; i < textos.length; i++){\n        var el = document.querySelector('#ix-page .ix-roda [data-rot=\"' + i + '\"]');\n        if(el) el.textContent = textos[i];\n      }\n      \/\/ Rotulo que coube numa linha so deixa a linha de baixo vazia. Nesse caso a\n      \/\/ de cima desce para o meio das duas, senao o texto fica alto no segmento.\n      \/\/\n      \/\/ E o caso de \"Accountability\": em portugues a palavra e quebrada em\n      \/\/ \"Responsa-\" e \"bilidade\", que e silabacao normal. Em ingles a mesma\n      \/\/ quebra vira \"Account-ability\", e \"account\" e termo tecnico de nuvem, entao\n      \/\/ o leitor entende \"a habilidade da conta\". Numa linha so nao ha o que supor.\n      for(var k = 1; k < textos.length; k++){\n        if(textos[k] !== \"\") continue;\n        var vazio = document.querySelector('#ix-page .ix-roda [data-rot=\"' + k + '\"]');\n        var cima  = document.querySelector('#ix-page .ix-roda [data-rot=\"' + (k - 1) + '\"]');\n        if(!vazio || !cima) continue;\n        var ya = parseFloat(cima.getAttribute(\"y\"));\n        var yb = parseFloat(vazio.getAttribute(\"y\"));\n        if(isFinite(ya) && isFinite(yb)) cima.setAttribute(\"y\", (ya + yb) \/ 2);\n      }\n      var svg = document.querySelector(\"#ix-page .ix-roda\");\n      if(svg && RODA_ROTULO[IDI]) svg.setAttribute(\"aria-label\", RODA_ROTULO[IDI]);\n    })();\n  }\n\n  \/\/ Seletor de idioma: marca o atual e refaz os tres enderecos a partir do\n  \/\/ caminho da propria pagina. Os href ja vem escritos no HTML, para quem\n  \/\/ rastreia o conteudo, mas sao reescritos aqui porque o TranslatePress\n  \/\/ reescreve links internos para manter o visitante no idioma corrente, o que\n  \/\/ apontaria os tres para a mesma pagina. Refazer pelo location tambem evita o\n  \/\/ slug ficar escrito em dois lugares.\n  (function(){\n    var nav = document.getElementById(\"pn-idiomas\");\n    if(!nav) return;\n    var base = location.pathname.replace(\/^\\\/(en|es)(\\\/|$)\/, \"\/\");\n    var alvo = { pt: base, en: \"\/en\" + base, es: \"\/es\" + base };\n    var ordem = [\"pt\", \"en\", \"es\"];\n\n    \/\/ O logotipo tambem leva para a home do idioma corrente. Sem isso a pagina\n    \/\/ e um beco sem saida: nao tem o cabecalho do site e nem o logo era link.\n    var home = document.getElementById(\"pn-home\");\n    if(home) home.setAttribute(\"href\", location.origin + (IDI === \"pt\" ? \"\/\" : \"\/\" + IDI + \"\/\"));\n\n    var links = nav.getElementsByTagName(\"a\");\n    for(var i = 0; i < links.length && i < ordem.length; i++){\n      links[i].setAttribute(\"href\", location.origin + alvo[ordem[i]]);\n      if(ordem[i] === IDI){\n        links[i].setAttribute(\"aria-current\", \"page\");\n      } else {\n        links[i].removeAttribute(\"aria-current\");\n      }\n    }\n  })();\n\n  var NIVEIS=[\"Ausente\",\"Inicial\",\"Estabelecido\",\"Maduro\"];\n  var NOME={aws:\"AWS\",azure:\"Azure\",gcp:\"Google Cloud\"};\n  var TAXA={aws:{1:null,3:0.66},azure:{1:null,3:0.65},gcp:{1:0.28,3:0.46}};\n  var COBERTURAS=[25,50,75,100];\n  var SUD={max30:[1,.8,.6,.4],max20:[1,.8678,.733,.6]};\n  var FERRAMENTA={aws:\"AWS Cost Explorer\",azure:\"Azure Advisor\",gcp:\"recommender de compromisso do Cloud Billing\"};\n  var INSTRUMENTO={aws:{g:\"Savings Plans\",r:\"Reserved Instances\"},azure:{g:\"savings plan para computa\u00e7\u00e3o\",r:\"Reservations\"},gcp:{g:\"compute flexible CUD\",r:\"resource-based CUD\"}};\n\n  var DIMS=[\n   {id:\"rateio\",nome:\"Rateio e visibilidade\",cap:\"Allocation, Reporting\",\n    q:\"Voc\u00ea consegue dizer quanto cada aplica\u00e7\u00e3o ou ambiente custou no m\u00eas passado?\",\n    op:[\"Vemos s\u00f3 o total da fatura\",\"Separamos por conta ou assinatura, n\u00e3o por aplica\u00e7\u00e3o\",\"Temos tags ou grupos de recursos, com cobertura parcial\",\"Quase todo o gasto est\u00e1 rateado e reportado por \u00e1rea respons\u00e1vel\"],\n    passo:[\"Ative o rateio por conta ou assinatura no seu portal de faturamento. Nas tr\u00eas nuvens isso j\u00e1 vem pronto, sem integra\u00e7\u00e3o nenhuma. \u00c9 o primeiro degrau e destrava todos os outros.\",\"Defina um padr\u00e3o m\u00ednimo de tags, por exemplo ambiente e aplica\u00e7\u00e3o, e aplique nos dez recursos que concentram mais gasto. N\u00e3o tente cobrir tudo de uma vez.\",\"Me\u00e7a a cobertura de tags e trate o que est\u00e1 sem tag como fila de trabalho. Recurso sem tag \u00e9 recurso que ningu\u00e9m reivindica, e \u00e9 onde o desperd\u00edcio se esconde.\",\"Voc\u00ea j\u00e1 tem base para acompanhar custo por unidade de neg\u00f3cio, e n\u00e3o apenas por \u00e1rea. \u00c9 o degrau seguinte.\"]},\n   {id:\"taxa\",nome:\"Otimiza\u00e7\u00e3o de taxa\",cap:\"Rate Optimization\",dinheiro:true,\n    q:\"Quanto da sua computa\u00e7\u00e3o est\u00e1 sob reserva ou plano de economia?\",\n    op:[\"Nada, pagamos tarifa cheia\",\"Compramos uma vez e n\u00e3o revisamos mais\",\"Parte do ambiente est\u00e1 coberta, revisamos de vez em quando\",\"Cobertura definida por pol\u00edtica e revisada em ciclo\"],\n    passo:[\"Antes de comprar qualquer compromisso, abra a recomenda\u00e7\u00e3o que o seu pr\u00f3prio console j\u00e1 faz. Ela usa o seu hist\u00f3rico, n\u00e3o uma m\u00e9dia de mercado.\",\"Compromisso comprado e nunca revisado perde valor conforme a opera\u00e7\u00e3o muda, e o n\u00e3o utilizado \u00e9 cobrado igual. Verifique a utiliza\u00e7\u00e3o do que voc\u00ea j\u00e1 tem antes de comprar mais.\",\"Troque a revis\u00e3o eventual por uma cad\u00eancia fixa e uma meta de cobertura escrita. Cobertura sem pol\u00edtica vira decis\u00e3o de quem estava na sala naquele dia.\",\"Com pol\u00edtica e ciclo em p\u00e9, o que resta \u00e9 medir a utiliza\u00e7\u00e3o do compromisso, e n\u00e3o s\u00f3 a cobertura. Compromisso coberto e n\u00e3o utilizado ainda \u00e9 desperd\u00edcio.\"]},\n   {id:\"uso\",nome:\"Otimiza\u00e7\u00e3o de uso\",cap:\"Workload Optimization\",dinheiro:true,\n    q:\"Ambientes que n\u00e3o s\u00e3o de produ\u00e7\u00e3o desligam fora do hor\u00e1rio de trabalho?\",\n    op:[\"N\u00e3o temos ambiente fora de produ\u00e7\u00e3o na nuvem\",\"N\u00e3o desligam, ficam ligados o tempo todo\",\"Desligamos parte, manualmente\",\"Temos agenda autom\u00e1tica em parte dos ambientes\",\"Temos agenda autom\u00e1tica em todos os ambientes n\u00e3o produtivos\"],\n    passo:[\"\",\"Comece por um ambiente s\u00f3, o menos cr\u00edtico, com agenda de ligar e desligar. Nenhuma das tr\u00eas nuvens recomenda hor\u00e1rio por conta pr\u00f3pria, porque nenhuma sabe quando a sua empresa trabalha.\",\"Desligamento manual depende de algu\u00e9m lembrar na sexta-feira. Passar para agenda autom\u00e1tica n\u00e3o muda o ganho por hora, muda a taxa de acerto.\",\"Estenda a agenda para os ambientes que ainda ficaram de fora. O ganho por hora \u00e9 o mesmo, o que muda \u00e9 a fatia do parque coberta.\",\"Com agenda autom\u00e1tica em todo o parque n\u00e3o produtivo, o passo seguinte \u00e9 rever o tamanho das m\u00e1quinas que ficam ligadas, e a\u00ed o console da sua nuvem j\u00e1 ajuda.\"]},\n   {id:\"previsao\",nome:\"Previs\u00e3o e or\u00e7amento\",cap:\"Forecasting, Budgeting\",\n    q:\"Voc\u00ea sabe hoje quanto vai gastar na nuvem no m\u00eas que vem?\",\n    op:[\"Descobrimos quando a fatura chega\",\"Temos uma expectativa informal, sem n\u00famero\",\"Temos previs\u00e3o e comparamos com o realizado\",\"Previs\u00e3o por \u00e1rea, com or\u00e7amento acordado e desvio acompanhado\"],\n    passo:[\"Abra o relat\u00f3rio de custo do seu portal e compare os \u00faltimos tr\u00eas meses. S\u00f3 isso j\u00e1 mostra tend\u00eancia, e leva minutos.\",\"Transforme a expectativa em n\u00famero. Registre a previs\u00e3o antes do m\u00eas come\u00e7ar e compare no fim. Duas linhas de planilha resolvem o primeiro ciclo.\",\"Leve a previs\u00e3o para a \u00e1rea que consome, n\u00e3o s\u00f3 para TI. Previs\u00e3o que n\u00e3o tem dono n\u00e3o muda comportamento nenhum.\",\"Com previs\u00e3o por \u00e1rea em p\u00e9, o degrau seguinte \u00e9 ligar or\u00e7amento \u00e0 decis\u00e3o de arquitetura, antes do deploy e n\u00e3o depois da fatura.\"]},\n   {id:\"anomalias\",nome:\"Anomalias\",cap:\"Anomaly Management\",\n    q:\"Se a fatura subir sem explica\u00e7\u00e3o, em quanto tempo voc\u00eas descobrem?\",\n    op:[\"No fechamento do m\u00eas, ou quando algu\u00e9m estranha\",\"Temos alerta de valor total, sem detalhe\",\"Temos alerta por servi\u00e7o ou por conta\",\"Detec\u00e7\u00e3o autom\u00e1tica, com respons\u00e1vel definido e prazo de resposta\"],\n    passo:[\"Crie um alerta de or\u00e7amento no seu portal hoje. Leva poucos minutos nas tr\u00eas nuvens, e um alerta simples de valor total j\u00e1 corta semanas do tempo de descoberta. Confira as condi\u00e7\u00f5es de cobran\u00e7a do recurso no seu provedor antes de criar v\u00e1rios.\",\"Des\u00e7a o alerta de total para servi\u00e7o ou conta. Alerta de total s\u00f3 dispara quando o problema j\u00e1 est\u00e1 grande.\",\"Defina quem recebe o alerta e em quanto tempo precisa responder. Alerta sem respons\u00e1vel definido vira ru\u00eddo e some da caixa de entrada.\",\"Voc\u00ea j\u00e1 detecta automaticamente. O passo seguinte \u00e9 medir o tempo entre detec\u00e7\u00e3o e corre\u00e7\u00e3o, e trabalhar para reduzir esse tempo.\"]},\n   {id:\"resp\",nome:\"Responsabilidade\",cap:\"Education and Enablement\",\n    q:\"Quem responde pelo custo da nuvem na sua empresa?\",\n    op:[\"Ningu\u00e9m especificamente, aparece em TI como despesa\",\"Uma pessoa acompanha, sem mandato formal\",\"TI e finan\u00e7as conversam em ciclo definido\",\"Cada \u00e1rea conhece e responde pelo pr\u00f3prio consumo\"],\n    passo:[\"Nomeie uma pessoa para olhar a fatura uma vez por m\u00eas. N\u00e3o precisa de cargo novo, de ferramenta nem de or\u00e7amento.\",\"Coloque TI e finan\u00e7as na mesma reuni\u00e3o mensal sobre a fatura. A maior parte do desalinhamento morre nessa reuni\u00e3o.\",\"Mostre a cada \u00e1rea o pr\u00f3prio consumo. N\u00famero que chega na \u00e1rea que gasta muda comportamento; n\u00famero que fica em TI n\u00e3o muda.\",\"Com cada \u00e1rea respondendo pelo pr\u00f3prio consumo, o degrau seguinte \u00e9 ligar isso a metas, e n\u00e3o apenas a relat\u00f3rio.\"]}\n  ];\n\n  var SAIDA={\n   aws:[[\"Savings Plans, qualquer tipo\",\"N\u00e3o h\u00e1 cancelamento e os termos n\u00e3o podem ser alterados depois da compra. Se o uso muda, o caminho documentado \u00e9 contratar planos adicionais.\"],[\"Reserved Instance Standard\",\"N\u00e3o h\u00e1 cancelamento. Pode ser modificada e pode ser vendida no Reserved Instance Marketplace. N\u00e3o pode ser trocada.\"],[\"Reserved Instance Convertible\",\"N\u00e3o h\u00e1 cancelamento. Pode ser trocada por outra Convertible com atributos diferentes. Desconto menor que a Standard.\"]],\n   azure:[[\"Reservations, reembolso\",\"Existe. \u00c9 calculado pelos dias restantes, em UTC, e pelo menor valor entre o pre\u00e7o de compra e o pre\u00e7o atual. O total cancelado n\u00e3o pode passar de 50 mil d\u00f3lares em janela m\u00f3vel de 12 meses.\"],[\"Reservations, taxa de rescis\u00e3o\",\"A Microsoft documenta que n\u00e3o est\u00e1 cobrando taxa hoje e que pode passar a cobrar 12 por cento. N\u00e3o h\u00e1 data anunciada.\"],[\"Reservations, troca\",\"Sem penalidade e sem limite anual, com a regra de que a nova reserva precisa valer no m\u00ednimo o compromisso restante. Planos Red Hat, SUSE e de pr\u00e9-compra n\u00e3o s\u00e3o eleg\u00edveis.\"],[\"Savings plan\",\"N\u00e3o pode ser modificado, cancelado nem reembolsado.\"]],\n   gcp:[[\"Compute flexible CUD\",\"N\u00e3o \u00e9 poss\u00edvel cancelar. O valor mensal acordado \u00e9 devido pela dura\u00e7\u00e3o inteira do compromisso.\"],[\"Resource-based CUD\",\"N\u00e3o \u00e9 poss\u00edvel cancelar. A fatura mensal cobre os recursos comprometidos independentemente de uso.\"],[\"Em troca da rigidez\",\"O compromisso e os recursos cobertos por ele n\u00e3o s\u00e3o afetados por aumentos futuros no pre\u00e7o padr\u00e3o.\"]]};\n\n  var ALERTAS={\n   aws:[\"O n\u00famero de <b>72 por cento<\/b> que circula no mercado \u00e9 o EC2 Instance Savings Plans, preso a uma fam\u00edlia de inst\u00e2ncia numa regi\u00e3o. O plano flex\u00edvel tem teto de 66 por cento.\",\"A pr\u00f3pria AWS recomenda Savings Plans em vez de Reserved Instances, na documenta\u00e7\u00e3o do EC2.\",\"Inst\u00e2ncia dedicada custa 2 d\u00f3lares por hora em cada regi\u00e3o onde houver ao menos uma, e essa taxa <b>n\u00e3o recebe desconto<\/b> de Savings Plans.\",\"A AWS <b>n\u00e3o publica o percentual de 1 ano<\/b>. Documenta apenas que 3 anos rende mais.\"],\n   azure:[\"A partir de <b>1 de fevereiro de 2027<\/b>, reservas compradas depois dessa data deixam de ser eleg\u00edveis a troca quando o servi\u00e7o for coberto por savings plans, o que inclui Virtual Machines, App Service e SQL Database.\",\"O percentual do savings plan <b>pode oscilar durante o pr\u00f3prio prazo<\/b>, porque \u00e9 calculado sobre o pre\u00e7o pay-as-you-go. O valor comprometido por hora n\u00e3o muda.\",\"O savings plan para computa\u00e7\u00e3o <b>n\u00e3o cobre software, rede nem armazenamento<\/b>. Savings plan para bancos existe apenas em prazo de 1 ano.\",\"Savings plan <b>n\u00e3o d\u00e1 garantia de capacidade<\/b>. No vencimento os recursos continuam em pay-as-you-go, com aviso 30 dias antes.\"],\n   gcp:[\"Desligar ambiente <b>reduz o seu Sustained Use Discount<\/b>, porque o SUD sobe por faixa de uso mensal. As duas alavancas se canibalizam em parte, e este panorama j\u00e1 considera isso.\",\"O SUD existe <b>somente em contas de faturamento self-serve<\/b>. Conta faturada por invoice n\u00e3o recebe SUD, e nesse caso o eixo de calend\u00e1rio rende mais do que o mostrado aqui.\",\"Para s\u00e9ries otimizadas para mem\u00f3ria, o compromisso flex\u00edvel de <b>1 ano n\u00e3o d\u00e1 desconto nenhum<\/b>. S\u00f3 o de 3 anos, a 63 por cento.\",\"Os tipos de desconto s\u00e3o mutuamente exclusivos. A ordem documentada \u00e9 resource-based, depois flexible, depois on demand com SUD sobre o que sobrou.\"]};\n\n  var GRATIS={\n   aws:\"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>AWS Compute Optimizer.<\/b> Redimensionamento e detec\u00e7\u00e3o de recurso ocioso em 14 categorias, de EC2 a RDS, Lambda, NAT Gateway e DynamoDB. Exige ades\u00e3o, n\u00e3o vem ligado.<\/p><p style='margin:0;font-size:16px'>Analisa <b style='color:var(--ink)'>14 dias<\/b> de CloudWatch por padr\u00e3o. Estender para 93 dias depende do recurso Enhanced infrastructure metrics, que \u00e9 pago. Mem\u00f3ria de EC2 s\u00f3 aparece com integra\u00e7\u00e3o Datadog ou Dynatrace.<\/p>\",\n   azure:\"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Azure Advisor, aba Custo.<\/b> Redimensionar ou desligar VM subutilizada, discos n\u00e3o anexados, gateways ociosos, compra de reserva e de savings plan, recomenda\u00e7\u00f5es para AKS.<\/p><p style='margin:0;font-size:16px'>Crit\u00e9rio oficial: monitora <b style='color:var(--ink)'>sete dias<\/b> e considera baixa utiliza\u00e7\u00e3o CPU de 5 por cento ou menos e rede de 7 MB ou menos por quatro dias ou mais. A regra de CPU \u00e9 configur\u00e1vel.<\/p>\",\n   gcp:\"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Google Recommender.<\/b> S\u00e3o 16 motores na categoria Custo, incluindo VM ociosa, disco persistente ocioso, IP ocioso, cluster GKE ocioso, Cloud SQL ociosa e superprovisionada, reservas ociosas e subutilizadas.<\/p><p style='margin:0;font-size:16px'>O recommender de VM ociosa \u00e9 gratuito, usa janela padr\u00e3o de <b style='color:var(--ink)'>14 dias<\/b> e roda uma vez por dia. N\u00e3o cobre inst\u00e2ncia com SSD local, com GPU, com TPU, App Engine flex, Dataflow nem GKE.<\/p>\"};\n\n  \/\/ Dicionario das tres etapas, indexado pela frase em portugues.\n  TRAD.en = {\n    \"Ausente\": \"Absent\",\n    \"Inicial\": \"Initial\",\n    \"Estabelecido\": \"Established\",\n    \"Maduro\": \"Mature\",\n    \"Ponto de partida\": \"Starting point\",\n    \"Rateio e visibilidade\": \"Allocation and visibility\",\n    \"Otimiza\u00e7\u00e3o de taxa\": \"Rate optimization\",\n    \"Otimiza\u00e7\u00e3o de uso\": \"Usage optimization\",\n    \"Previs\u00e3o e or\u00e7amento\": \"Forecasting and budgeting\",\n    \"Anomalias\": \"Anomalies\",\n    \"Responsabilidade\": \"Accountability\",\n    \"Voc\u00ea consegue dizer quanto cada aplica\u00e7\u00e3o ou ambiente custou no m\u00eas passado?\": \"Can you say how much each application or environment cost last month?\",\n    \"Quanto da sua computa\u00e7\u00e3o est\u00e1 sob reserva ou plano de economia?\": \"How much of your compute is under a reservation or savings plan?\",\n    \"Ambientes que n\u00e3o s\u00e3o de produ\u00e7\u00e3o desligam fora do hor\u00e1rio de trabalho?\": \"Do non-production environments shut down outside working hours?\",\n    \"Voc\u00ea sabe hoje quanto vai gastar na nuvem no m\u00eas que vem?\": \"Do you know today how much you will spend on cloud next month?\",\n    \"Se a fatura subir sem explica\u00e7\u00e3o, em quanto tempo voc\u00eas descobrem?\": \"If the invoice goes up with no explanation, how long until you find out?\",\n    \"Quem responde pelo custo da nuvem na sua empresa?\": \"Who is accountable for cloud cost in your company?\",\n    \"Vemos s\u00f3 o total da fatura\": \"We only see the invoice total\",\n    \"Separamos por conta ou assinatura, n\u00e3o por aplica\u00e7\u00e3o\": \"We break it down by account or subscription, not by application\",\n    \"Temos tags ou grupos de recursos, com cobertura parcial\": \"We have tags or resource groups, with partial coverage\",\n    \"Quase todo o gasto est\u00e1 rateado e reportado por \u00e1rea respons\u00e1vel\": \"Almost all spend is allocated and reported by owning team\",\n    \"Nada, pagamos tarifa cheia\": \"None, we pay full on-demand rates\",\n    \"Compramos uma vez e n\u00e3o revisamos mais\": \"We bought once and never reviewed it again\",\n    \"Parte do ambiente est\u00e1 coberta, revisamos de vez em quando\": \"Part of it is covered, we review it occasionally\",\n    \"Cobertura definida por pol\u00edtica e revisada em ciclo\": \"Coverage set by policy and reviewed on a cycle\",\n    \"N\u00e3o temos ambiente fora de produ\u00e7\u00e3o na nuvem\": \"We have no non-production environment in the cloud\",\n    \"N\u00e3o desligam, ficam ligados o tempo todo\": \"They do not shut down, they run around the clock\",\n    \"Desligamos parte, manualmente\": \"We shut some down, manually\",\n    \"Temos agenda autom\u00e1tica em parte dos ambientes\": \"We have automated schedules on some environments\",\n    \"Temos agenda autom\u00e1tica em todos os ambientes n\u00e3o produtivos\": \"We have automated schedules on every non-production environment\",\n    \"Descobrimos quando a fatura chega\": \"We find out when the invoice arrives\",\n    \"Temos uma expectativa informal, sem n\u00famero\": \"We have an informal expectation, with no number\",\n    \"Temos previs\u00e3o e comparamos com o realizado\": \"We forecast and compare against actuals\",\n    \"Previs\u00e3o por \u00e1rea, com or\u00e7amento acordado e desvio acompanhado\": \"Forecast by team, with an agreed budget and variance tracked\",\n    \"No fechamento do m\u00eas, ou quando algu\u00e9m estranha\": \"At month-end close, or when someone notices\",\n    \"Temos alerta de valor total, sem detalhe\": \"We have a total-spend alert, with no breakdown\",\n    \"Temos alerta por servi\u00e7o ou por conta\": \"We have alerts by service or by account\",\n    \"Detec\u00e7\u00e3o autom\u00e1tica, com respons\u00e1vel definido e prazo de resposta\": \"Automated detection, with a named owner and a response time\",\n    \"Ningu\u00e9m especificamente, aparece em TI como despesa\": \"Nobody in particular, it shows up as an IT expense\",\n    \"Uma pessoa acompanha, sem mandato formal\": \"One person keeps an eye on it, with no formal mandate\",\n    \"TI e finan\u00e7as conversam em ciclo definido\": \"IT and finance meet on a defined cycle\",\n    \"Cada \u00e1rea conhece e responde pelo pr\u00f3prio consumo\": \"Each team knows and owns its own consumption\",\n    \"Ative o rateio por conta ou assinatura no seu portal de faturamento. Nas tr\u00eas nuvens isso j\u00e1 vem pronto, sem integra\u00e7\u00e3o nenhuma. \u00c9 o primeiro degrau e destrava todos os outros.\": \"Turn on allocation by account or subscription in your billing portal. All three clouds ship this out of the box, with no integration at all. It is the first step and it unlocks every other one.\",\n    \"Defina um padr\u00e3o m\u00ednimo de tags, por exemplo ambiente e aplica\u00e7\u00e3o, e aplique nos dez recursos que concentram mais gasto. N\u00e3o tente cobrir tudo de uma vez.\": \"Define a minimum tagging standard, for example environment and application, and apply it to the ten resources that carry the most spend. Do not try to cover everything at once.\",\n    \"Me\u00e7a a cobertura de tags e trate o que est\u00e1 sem tag como fila de trabalho. Recurso sem tag \u00e9 recurso que ningu\u00e9m reivindica, e \u00e9 onde o desperd\u00edcio se esconde.\": \"Measure tag coverage and treat what is untagged as a work queue. An untagged resource is a resource nobody claims, and that is where waste hides.\",\n    \"Voc\u00ea j\u00e1 tem base para acompanhar custo por unidade de neg\u00f3cio, e n\u00e3o apenas por \u00e1rea. \u00c9 o degrau seguinte.\": \"You already have the basis to track cost by business unit, not only by team. That is the next step.\",\n    \"Antes de comprar qualquer compromisso, abra a recomenda\u00e7\u00e3o que o seu pr\u00f3prio console j\u00e1 faz. Ela usa o seu hist\u00f3rico, n\u00e3o uma m\u00e9dia de mercado.\": \"Before buying any commitment, open the recommendation your own console already produces. It uses your history, not a market average.\",\n    \"Compromisso comprado e nunca revisado perde valor conforme a opera\u00e7\u00e3o muda, e o n\u00e3o utilizado \u00e9 cobrado igual. Verifique a utiliza\u00e7\u00e3o do que voc\u00ea j\u00e1 tem antes de comprar mais.\": \"A commitment bought and never reviewed loses value as the operation changes, and unused commitment is billed all the same. Check the utilization of what you already hold before buying more.\",\n    \"Troque a revis\u00e3o eventual por uma cad\u00eancia fixa e uma meta de cobertura escrita. Cobertura sem pol\u00edtica vira decis\u00e3o de quem estava na sala naquele dia.\": \"Replace occasional reviews with a fixed cadence and a written coverage target. Coverage without a policy becomes the decision of whoever was in the room that day.\",\n    \"Com pol\u00edtica e ciclo em p\u00e9, o que resta \u00e9 medir a utiliza\u00e7\u00e3o do compromisso, e n\u00e3o s\u00f3 a cobertura. Compromisso coberto e n\u00e3o utilizado ainda \u00e9 desperd\u00edcio.\": \"With policy and cadence in place, what remains is measuring commitment utilization, not only coverage. Committed capacity that goes unused is still waste.\",\n    \"Comece por um ambiente s\u00f3, o menos cr\u00edtico, com agenda de ligar e desligar. Nenhuma das tr\u00eas nuvens recomenda hor\u00e1rio por conta pr\u00f3pria, porque nenhuma sabe quando a sua empresa trabalha.\": \"Start with a single environment, the least critical one, on a start and stop schedule. None of the three clouds recommends a schedule on its own, because none of them knows when your company works.\",\n    \"Desligamento manual depende de algu\u00e9m lembrar na sexta-feira. Passar para agenda autom\u00e1tica n\u00e3o muda o ganho por hora, muda a taxa de acerto.\": \"Manual shutdown depends on somebody remembering on a Friday. Moving to an automated schedule does not change the gain per hour, it changes how often you actually get it.\",\n    \"Estenda a agenda para os ambientes que ainda ficaram de fora. O ganho por hora \u00e9 o mesmo, o que muda \u00e9 a fatia do parque coberta.\": \"Extend the schedule to the environments still left out. The gain per hour is the same; what changes is how many of them it covers.\",\n    \"Com agenda autom\u00e1tica em todo o parque n\u00e3o produtivo, o passo seguinte \u00e9 rever o tamanho das m\u00e1quinas que ficam ligadas, e a\u00ed o console da sua nuvem j\u00e1 ajuda.\": \"With automated schedules across all non-production environments, the next step is right-sizing the machines that stay on, and there your cloud console already helps.\",\n    \"Abra o relat\u00f3rio de custo do seu portal e compare os \u00faltimos tr\u00eas meses. S\u00f3 isso j\u00e1 mostra tend\u00eancia, e leva minutos.\": \"Open the cost report in your portal and compare the last three months. That alone shows a trend, and it takes minutes.\",\n    \"Transforme a expectativa em n\u00famero. Registre a previs\u00e3o antes do m\u00eas come\u00e7ar e compare no fim. Duas linhas de planilha resolvem o primeiro ciclo.\": \"Turn the expectation into a number. Record the forecast before the month starts and compare at the end. Two spreadsheet rows cover the first cycle.\",\n    \"Leve a previs\u00e3o para a \u00e1rea que consome, n\u00e3o s\u00f3 para TI. Previs\u00e3o que n\u00e3o tem dono n\u00e3o muda comportamento nenhum.\": \"Take the forecast to the team that consumes, not only to IT. A forecast with no owner changes no behaviour at all.\",\n    \"Com previs\u00e3o por \u00e1rea em p\u00e9, o degrau seguinte \u00e9 ligar or\u00e7amento \u00e0 decis\u00e3o de arquitetura, antes do deploy e n\u00e3o depois da fatura.\": \"With forecasting by team in place, the next step is tying budget to architecture decisions, before the deploy rather than after the invoice.\",\n    \"Crie um alerta de or\u00e7amento no seu portal hoje. Leva poucos minutos nas tr\u00eas nuvens, e um alerta simples de valor total j\u00e1 corta semanas do tempo de descoberta. Confira as condi\u00e7\u00f5es de cobran\u00e7a do recurso no seu provedor antes de criar v\u00e1rios.\": \"Create a budget alert in your portal today. It takes a few minutes in all three clouds, and a simple total-spend alert already cuts weeks off the time to detect. Check your provider's billing terms for the feature before creating many of them.\",\n    \"Des\u00e7a o alerta de total para servi\u00e7o ou conta. Alerta de total s\u00f3 dispara quando o problema j\u00e1 est\u00e1 grande.\": \"Take the alert down from total to service or account level. A total-spend alert only fires once the problem is already large.\",\n    \"Defina quem recebe o alerta e em quanto tempo precisa responder. Alerta sem respons\u00e1vel definido vira ru\u00eddo e some da caixa de entrada.\": \"Define who receives the alert and how quickly they must respond. An alert with no named owner becomes noise and disappears from the inbox.\",\n    \"Voc\u00ea j\u00e1 detecta automaticamente. O passo seguinte \u00e9 medir o tempo entre detec\u00e7\u00e3o e corre\u00e7\u00e3o, e trabalhar para reduzir esse tempo.\": \"You already detect automatically. The next step is measuring the time between detection and correction, and working to shorten it.\",\n    \"Nomeie uma pessoa para olhar a fatura uma vez por m\u00eas. N\u00e3o precisa de cargo novo, de ferramenta nem de or\u00e7amento.\": \"Name one person to look at the invoice once a month. It needs no new role, no tool and no budget.\",\n    \"Coloque TI e finan\u00e7as na mesma reuni\u00e3o mensal sobre a fatura. A maior parte do desalinhamento morre nessa reuni\u00e3o.\": \"Put IT and finance in the same monthly meeting about the invoice. Most of the misalignment dies in that meeting.\",\n    \"Mostre a cada \u00e1rea o pr\u00f3prio consumo. N\u00famero que chega na \u00e1rea que gasta muda comportamento; n\u00famero que fica em TI n\u00e3o muda.\": \"Show each team its own consumption. A number that reaches the team doing the spending changes behaviour; a number that stays inside IT does not.\",\n    \"Com cada \u00e1rea respondendo pelo pr\u00f3prio consumo, o degrau seguinte \u00e9 ligar isso a metas, e n\u00e3o apenas a relat\u00f3rio.\": \"With each team answering for its own consumption, the next step is tying that to targets, not only to reporting.\",\n    \"Regras de sa\u00edda na \": \"Exit rules on \",\n    \"O que a \": \"What \",\n    \"Respostas completas: \": \"Answers complete: \",\n    \" de \": \" of \",\n    \"Passo \": \"Step \",\n    \"Sem todas as respostas n\u00e3o d\u00e1 para calcular, e preferimos dizer isso a mostrar um n\u00famero inventado.\": \"Without every answer there is nothing to calculate, and we would rather say so than show an invented number.\",\n    \"At\u00e9 25%\": \"Up to 25%\",\n    \"25% a 50%\": \"25% to 50%\",\n    \"50% a 75%\": \"50% to 75%\",\n    \"Mais de 75%\": \"More than 75%\",\n    \"N\u00e3o sei\": \"I don't know\",\n    \"Compromisso por gasto, \": \"Spend-based commitment, \",\n    \"Compromisso por recurso, \": \"Resource-based commitment, \",\n    \"Os dois\": \"Both\",\n    \"At\u00e9 15%\": \"Up to 15%\",\n    \"15% a 30%\": \"15% to 30%\",\n    \"30% a 50%\": \"30% to 50%\",\n    \"Mais de 50%\": \"More than 50%\",\n    \"Escolha uma nuvem para continuar.\": \"Choose a cloud to continue.\",\n    \"Informe o gasto mensal para continuar.\": \"Enter the monthly spend to continue.\",\n    \"Escolha uma das op\u00e7\u00f5es para continuar.\": \"Choose one of the options to continue.\",\n    \"quanto j\u00e1 est\u00e1 coberto\": \"how much is already covered\",\n    \"qual modelo voc\u00ea usa\": \"which model you use\",\n    \"Falta responder \": \"Still to answer: \",\n    \" e \": \" and \",\n    \"quanto do gasto est\u00e1 nesses ambientes\": \"how much of the spend sits in those environments\",\n    \"a janela de uso, em horas por dia e dias por semana\": \"the usage window, in hours a day and days a week\",\n    \" das 168 horas da semana em uso. \": \" of the 168 hours in a week in use. \",\n    \" horas fora da janela, ou seja \": \" hours outside the window, that is \",\n    \"% do tempo.\": \"% of the time.\",\n    \"Perguntamos em vez de supor. A aritm\u00e9tica das horas fica sendo a sua.\": \"We ask instead of assuming. The arithmetic of the hours stays yours.\",\n    \" por m\u00eas\": \" per month\",\n    \"at\u00e9 \": \"up to \",\n    \"1 ano\": \"1 year\",\n    \"3 anos\": \"3 years\",\n    \"Sobre \": \"About \",\n    \" horas em \": \" hours over \",\n    \" a \": \" to \",\n    \"% e \": \"% and \",\n    \"% do tempo. Na \": \"% of the time. On \",\n    \"a \": \"\",\n    \"Nuvem: \": \"Cloud: \",\n    \"Perfil: \": \"Profile: \",\n    \"Sobre o percentual. \": \"About the percentage. \",\n    \"<b>Sobre o percentual.<\/b> \": \"<b>About the percentage.<\/b> \",\n    \"<\/b>, no n\u00edvel \": \"<\/b>, at level \",\n    \"recommender de compromisso do Cloud Billing\": \"Cloud Billing commitment recommender\",\n    \"savings plan para computa\u00e7\u00e3o\": \"savings plan for compute\",\n    \"<p class=\\\"ix-pq\\\">Pronto. O seu panorama est\u00e1 logo abaixo.<\/p>\": \"<p class=\\\"ix-pq\\\">Done. Your assessment is right below.<\/p>\",\n    \"<p class=\\\"ix-hint\\\">Quer mudar alguma resposta? Use Voltar, que o resultado se refaz na hora.<\/p>\": \"<p class=\\\"ix-hint\\\">Want to change an answer? Use Back and the result is rebuilt at once.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Falta pouco<\/p>\": \"<p class=\\\"ix-pq\\\">Almost there<\/p>\",\n    \"<p class=\\\"ix-hint\\\">Alguma resposta ficou em branco, ent\u00e3o o panorama ainda n\u00e3o pode ser montado. Use Voltar para completar.<\/p>\": \"<p class=\\\"ix-hint\\\">An answer was left blank, so the assessment cannot be built yet. Use Back to complete it.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Qual nuvem concentra a maior parte do seu gasto?<\/p>\": \"<p class=\\\"ix-pq\\\">Which cloud holds most of your spend?<\/p>\",\n    \"<p class=\\\"ix-hint\\\">Quem usa mais de uma responde pela de maior peso. Os mecanismos de desconto n\u00e3o se somam entre provedores, e as regras de sa\u00edda s\u00e3o diferentes em cada um.<\/p>\": \"<p class=\\\"ix-hint\\\">If you use more than one, answer for the heaviest. Discount mechanisms do not add up across providers, and the exit rules differ in each one.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Quanto voc\u00ea gasta por m\u00eas nessa nuvem?<\/p>\": \"<p class=\\\"ix-pq\\\">How much do you spend per month on that cloud?<\/p>\",\n    \"<p class=\\\"ix-hint\\\">M\u00e9dia dos \u00faltimos meses. A conta trabalha com ordem de grandeza.<\/p>\": \"<p class=\\\"ix-hint\\\">Average of the last few months. The calculation works in orders of magnitude.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Sobre o compromisso que voc\u00ea j\u00e1 tem<\/p>\": \"<p class=\\\"ix-pq\\\">About the commitment you already have<\/p>\",\n    \"<p class=\\\"ix-hint\\\" style=\\\"margin:0 0 6px\\\">Os tipos de desconto s\u00e3o mutuamente exclusivos e aplicam em ordem fixa, ent\u00e3o o modelo atual muda quanto ainda resta a ganhar.<\/p>\": \"<p class=\\\"ix-hint\\\" style=\\\"margin:0 0 6px\\\">Discount types are mutually exclusive and apply in a fixed order, so the current model changes how much is left to gain.<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">Quanto j\u00e1 est\u00e1 coberto<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">How much is already covered<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">Qual modelo<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">Which model<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Sobre esses ambientes n\u00e3o produtivos<\/p>\": \"<p class=\\\"ix-pq\\\">About those non-production environments<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">Quanto do gasto est\u00e1 neles<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">How much of the spend sits in them<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">Janela de uso da equipe<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">The team's usage window<\/p>\",\n    \"\\\"><span style=\\\"font-size:14px\\\">horas por dia<\/span><\/span>\": \"\\\"><span style=\\\"font-size:14px\\\">hours a day<\/span><\/span>\",\n    \"\\\"><span style=\\\"font-size:14px\\\">dias por semana<\/span><\/span>\": \"\\\"><span style=\\\"font-size:14px\\\">days a week<\/span><\/span>\",\n    \"<\/div><p class=\\\"ix-hint\\\" id=\\\"pn-janela\\\">Perguntamos em vez de supor. A aritm\u00e9tica das horas fica sendo a sua.<\/p>\": \"<\/div><p class=\\\"ix-hint\\\" id=\\\"pn-janela\\\">We ask instead of assuming. The arithmetic of the hours stays yours.<\/p>\",\n    \"<div class=\\\"ix-fld\\\"><label for=\\\"pn-gasto\\\">Gasto mensal<\/label>\": \"<div class=\\\"ix-fld\\\"><label for=\\\"pn-gasto\\\">Monthly spend<\/label>\",\n    \"<span class=\\\"ix-moeda\\\"><select id=\\\"pn-moeda\\\" aria-label=\\\"Moeda\\\">\": \"<span class=\\\"ix-moeda\\\"><select id=\\\"pn-moeda\\\" aria-label=\\\"Currency\\\">\",\n    \"<p class=\\\"ix-hint\\\">Nada \u00e9 convertido: informe o valor na moeda que voc\u00ea escolher.<\/p>\": \"<p class=\\\"ix-hint\\\">Nothing is converted: enter the amount in the currency you select.<\/p>\",\n    \"Real brasileiro\": \"Brazilian real\",\n    \"D\u00f3lar americano\": \"US dollar\",\n    \"Euro\": \"Euro\",\n    \"Libra esterlina\": \"Pound sterling\",\n    \"Peso mexicano\": \"Mexican peso\",\n    \"Outra moeda\": \"Other currency\",\n    \"n\u00e3o se aplica\": \"not applicable\",\n    \"Definido pela sua dimens\u00e3o mais fraca, e n\u00e3o pela m\u00e9dia das seis. M\u00e9dia entre uma dimens\u00e3o madura e uma ausente esconde a ausente, que \u00e9 justamente a que precisa aparecer.\": \"Set by your weakest area, not by the average of the six. An average between a mature area and an absent one hides the absent one, which is exactly the one that needs to show.\",\n    \" N\u00e3o desempatamos por crit\u00e9rio pr\u00f3prio: est\u00e3o no mesmo degrau, ent\u00e3o aparecem juntas.\": \" We do not break the tie with a criterion of our own: they sit on the same step, so they appear together.\",\n    \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Rateio aparecer aqui pesa mais que as outras, porque n\u00e3o se otimiza o que n\u00e3o se sabe quanto custa. Enquanto o gasto n\u00e3o estiver separado, qualquer ganho nas outras dimens\u00f5es \u00e9 medido no escuro.<\/p>\": \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Allocation showing up here weighs more than the others, because you cannot optimize what you cannot cost. Until spend is broken down, any gain in the other areas is measured in the dark.<\/p>\",\n    \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Nas dimens\u00f5es em que voc\u00ea j\u00e1 est\u00e1 mais avan\u00e7ado o ganho marginal \u00e9 pequeno. O degrau mais baixo \u00e9 onde o mesmo esfor\u00e7o rende mais.<\/p>\": \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">In the areas where you are already further ahead, the marginal gain is small. The lowest step is where the same effort returns the most.<\/p>\",\n    \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Seu ponto mais forte \u00e9 <b style=\\\"color:var(--ink)\\\">\": \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Your strongest point is <b style=\\\"color:var(--ink)\\\">\",\n    \"<p style=\\\"font-size:14px;line-height:21px;margin:0\\\">N\u00e3o existe nota final aqui, e isso \u00e9 deliberado. M\u00e9dia entre uma dimens\u00e3o madura e uma ausente esconde a ausente, que \u00e9 justamente a que precisa aparecer.<\/p>\": \"<p style=\\\"font-size:14px;line-height:21px;margin:0\\\">There is no final score here, and that is deliberate. An average between a mature area and an absent one hides the absent one, which is exactly the one that needs to show.<\/p>\",\n    \"Sobre a parte produtiva da fatura, \": \"On the production share of the invoice, \",\n    \", dos quais \": \", of which \",\n    \" ainda sem compromisso\": \" still without commitment\",\n    \" Como voc\u00ea n\u00e3o sabe quanto j\u00e1 est\u00e1 coberto, a tabela assume que nada est\u00e1, o que superestima a oportunidade.\": \" Since you do not know how much is already covered, the table assumes none of it is, which overstates the opportunity.\",\n    \"Economia por m\u00eas, n\u00e3o publicada\": \"Monthly saving, not published\",\n    \"Economia por m\u00eas\": \"Monthly saving\",\n    \"Economia por m\u00eas, no teto anunciado\": \"Monthly saving, at the announced ceiling\",\n    \"A economia usa \": \"The saving uses \",\n    \" por cento, valor exato da tabela oficial do Google para compute flexible CUD de uso geral em \": \" percent, the exact figure from Google's official table for general-purpose compute flexible CUD at \",\n    \", j\u00e1 em pagamento mensal. N\u00e3o \u00e9 teto, \u00e9 o n\u00famero publicado.\": \", already on monthly payment. It is not a ceiling, it is the published number.\",\n    \"A economia usa 66 por cento, teto anunciado do Compute Savings Plans. \u00c9 teto, n\u00e3o resultado: o seu n\u00famero fica abaixo dele e depende de fam\u00edlia, regi\u00e3o e sistema operacional.\": \"The saving uses 66 percent, the announced ceiling of Compute Savings Plans. It is a ceiling, not a result: your number lands below it and depends on family, region and operating system.\",\n    \"A economia usa 65 por cento, extremo superior da faixa oficial de 11 a 65 por cento da Microsoft. \u00c9 teto, n\u00e3o resultado.\": \"The saving uses 65 percent, the top end of Microsoft's official 11 to 65 percent range. It is a ceiling, not a result.\",\n    \"A AWS n\u00e3o publica o percentual de reserva de 1 ano. A coluna fica em branco em vez de receber uma m\u00e9dia inventada. O n\u00famero da sua conta est\u00e1 no AWS Cost Explorer.\": \"AWS does not publish the 1-year reservation percentage. The column is left blank rather than filled with an invented average. The number for your account is in AWS Cost Explorer.\",\n    \"A Microsoft n\u00e3o publica percentual por prazo. A coluna fica em branco. O n\u00famero da sua conta sai da sua price sheet, e o Azure Advisor j\u00e1 traz recomenda\u00e7\u00e3o baseada nos seus \u00faltimos 30 dias.\": \"Microsoft does not publish a percentage by term. The column is left blank. The number for your account comes from your price sheet, and Azure Advisor already brings a recommendation based on your last 30 days.\",\n    \" As colunas de valor preso e de valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nos dois degraus.\": \" The locked-in and free columns do not depend on any percentage, and they are exact on both terms.\",\n    \"o seu pr\u00f3prio console\": \"your own console\",\n    \"Otimiza\u00e7\u00e3o de uso: n\u00e3o se aplica \u00e0 sua opera\u00e7\u00e3o\": \"Usage optimization: not applicable to your operation\",\n    \"Voc\u00ea respondeu que n\u00e3o tem ambiente fora de produ\u00e7\u00e3o na nuvem. Produ\u00e7\u00e3o n\u00e3o se desliga, ent\u00e3o o ganho de calend\u00e1rio n\u00e3o existe aqui.\": \"You answered that you have no non-production environment in the cloud. Production does not get shut down, so there is no calendar gain here.\",\n    \"Se em algum momento subir desenvolvimento ou homologa\u00e7\u00e3o para a nuvem, esta dimens\u00e3o passa a valer.\": \"If at some point you move development or staging to the cloud, this area starts to count.\",\n    \"O que resta em uso \u00e9 o tamanho das m\u00e1quinas, e a\u00ed o console da sua nuvem j\u00e1 ajuda.\": \"What is left on the usage side is machine sizing, and there your cloud console already helps.\",\n    \"Enquanto n\u00e3o houver ambiente fora de produ\u00e7\u00e3o na nuvem, esta dimens\u00e3o n\u00e3o tem degrau a subir.\": \"While there is no non-production environment in the cloud, this area has no step to climb.\",\n    \"Otimiza\u00e7\u00e3o de uso: voc\u00ea j\u00e1 resolveu o calend\u00e1rio\": \"Usage optimization: you have already solved the calendar\",\n    \"Com desligamento automatizado por agenda, n\u00e3o h\u00e1 ganho de calend\u00e1rio a capturar.\": \"With automated scheduled shutdown, there is no calendar gain left to capture.\",\n    \"Isso coloca voc\u00ea acima da pr\u00e1tica comum neste ponto.\": \"That puts you above common practice on this point.\",\n    \"O que resta em uso \u00e9 o tamanho das m\u00e1quinas que ficam ligadas, e nenhuma calculadora estima isso sem invent\u00e1rio.\": \"What is left on the usage side is the sizing of the machines that stay on, and no calculator estimates that without an inventory.\",\n    \"Otimiza\u00e7\u00e3o de uso: horas pagas sem ningu\u00e9m usar\": \"Usage optimization: hours paid for with nobody using them\",\n    \" por m\u00eas de ambiente n\u00e3o produtivo, com a janela de \": \" per month of non-production environment, with the window of \",\n    \" dias que voc\u00ea informou.\": \" days you reported.\",\n    \"O ambiente fica fora da janela em \": \"The environment sits outside the window for \",\n    \" das 168 horas da semana, ou \": \" of the 168 hours in a week, or \",\n    \"No Google o ganho n\u00e3o \u00e9 os \": \"On Google the gain is not the \",\n    \"% da aritm\u00e9tica, e sim entre \": \"% the arithmetic suggests, but between \",\n    \"%. Desligar reduz o uso mensal, e o Sustained Use Discount sobe por faixa: a m\u00e1quina ligada o m\u00eas inteiro recebe 20% ou 30% de desconto autom\u00e1tico, e com \": \"%. Shutting down lowers monthly usage, and the Sustained Use Discount rises in bands: a machine running the whole month gets 20% or 30% automatic discount, and at \",\n    \"% de uso cai para uma faixa muito menor. O extremo mais baixo \u00e9 a s\u00e9rie de m\u00e1ximo 30%, que s\u00e3o N1, M1 e M2. O mais alto \u00e9 a de m\u00e1ximo 20%, que s\u00e3o N2, N2D e C2.\": \"% usage it drops to a much lower band. The low end is the 30% maximum series, N1, M1 and M2. The high end is the 20% maximum series, N2, N2D and C2.\",\n    \" n\u00e3o existe desconto autom\u00e1tico por uso sustentado, ent\u00e3o a aritm\u00e9tica vale integralmente.\": \" there is no automatic sustained use discount, so the arithmetic holds in full.\",\n    \"Nenhuma das tr\u00eas nuvens recomenda hor\u00e1rio. Elas dizem que o recurso est\u00e1 ocioso e sugerem excluir ou reduzir, nunca ligar e desligar, porque nenhuma sabe quando a sua empresa trabalha.\": \"None of the three clouds recommends a schedule. They say the resource is idle and suggest deleting or downsizing it, never starting and stopping, because none of them knows when your company works.\",\n    \" Como voc\u00ea j\u00e1 desliga parte manualmente, parte deste teto j\u00e1 est\u00e1 capturada.\": \" Since you already shut some down manually, part of this ceiling is already captured.\",\n    \" Como voc\u00ea j\u00e1 tem agenda autom\u00e1tica em parte dos ambientes, parte deste teto j\u00e1 est\u00e1 capturada. O que falta \u00e9 estender a agenda ao resto.\": \" Since you already have automated schedules on some environments, part of this ceiling is already captured. What is missing is extending the schedule to the rest.\",\n    \"<b>Este \u00e9 um teto, e provavelmente bem acima do valor real.<\/b> Desligar m\u00e1quina interrompe a cobran\u00e7a de computa\u00e7\u00e3o, e s\u00f3 dela. O gasto do seu ambiente n\u00e3o produtivo tamb\u00e9m cont\u00e9m armazenamento, disco, tr\u00e1fego de rede, licen\u00e7as e servi\u00e7os gerenciados, e nada disso responde a desligamento. Como n\u00e3o sabemos a propor\u00e7\u00e3o de cada item na sua fatura, aplicamos a fra\u00e7\u00e3o de horas sobre o valor inteiro e chamamos o resultado de teto, em vez de multiplicar por um fator que seria inventado. O n\u00famero real fica abaixo, e quanto abaixo s\u00f3 a leitura da fatura diz.\": \"<b>This is a ceiling, and probably well above the real figure.<\/b> Shutting a machine down stops the compute charge, and only that. Your non-production spend also contains storage, disks, network traffic, licences and managed services, and none of that responds to shutdown. Since we do not know the proportion of each item on your invoice, we apply the fraction of hours to the whole amount and call the result a ceiling, rather than multiplying by a factor we would have invented. The real number lands below it, and only reading the invoice says how far below.\",\n    \"Nada a estimar neste cen\u00e1rio\": \"Nothing to estimate in this scenario\",\n    \"voc\u00ea respondeu que n\u00e3o tem ambiente fora de produ\u00e7\u00e3o na nuvem, e produ\u00e7\u00e3o n\u00e3o se desliga\": \"you answered that you have no non-production environment in the cloud, and production does not get shut down\",\n    \"voc\u00ea j\u00e1 automatizou o desligamento, ent\u00e3o o eixo de calend\u00e1rio j\u00e1 est\u00e1 capturado\": \"you have already automated shutdown, so the calendar axis is already captured\",\n    \" n\u00e3o publica percentual para reserva de 1 ano, e preferimos deixar em branco a inventar uma m\u00e9dia\": \" does not publish a percentage for a 1-year reservation, and we would rather leave it blank than invent an average\",\n    \"Isso n\u00e3o \u00e9 falha da conta, \u00e9 o resultado honesto: \": \"This is not a failure of the calculation, it is the honest result: \",\n    \"Faixa estimada nas duas dimens\u00f5es com valor\": \"Estimated range across both areas that carry value\",\n    \"Estimado s\u00f3 no eixo de calend\u00e1rio\": \"Estimated on the calendar axis only\",\n    \"Faixa estimada no eixo de compromisso\": \"Estimated range on the commitment axis\",\n    \"<div class=\\\"ix-row\\\"><span>Gasto mensal informado<\/span><b>\": \"<div class=\\\"ix-row\\\"><span>Monthly spend reported<\/span><b>\",\n    \"<div class=\\\"ix-row\\\"><span>Preso pelo prazo, se cobrir tudo<\/span><b>\": \"<div class=\\\"ix-row\\\"><span>Locked in by the term, if you cover everything<\/span><b>\",\n    \"<div class=\\\"ix-row\\\"><span>Livre para sair sem multa, nesse caso<\/span><b>\": \"<div class=\\\"ix-row\\\"><span>Free to leave with no penalty, in that case<\/span><b>\",\n    \"No degrau de 1 ano a \": \"On the 1-year term, \",\n    \" n\u00e3o publica percentual, ent\u00e3o a faixa cobre apenas a dimens\u00e3o de uso. Troque o degrau na tabela abaixo.\": \" does not publish a percentage, so the range covers the usage area only. Switch the term in the table below.\",\n    \"A faixa depende da cobertura que voc\u00ea escolher na tabela abaixo. Quanto maior a economia, maior a parcela presa pelo prazo.\": \"The range depends on the coverage you choose in the table below. The larger the saving, the larger the share locked in by the term.\",\n    \"<\/div><div class=\\\"f\\\">N\u00edvel \": \"<\/div><div class=\\\"f\\\">Level \",\n    \"Este panorama foi constru\u00eddo sobre o que voc\u00ea respondeu em menos de dois minutos e sobre documenta\u00e7\u00e3o publicada pelos pr\u00f3prios fabricantes. Ele n\u00e3o leu a sua fatura e n\u00e3o olhou o seu invent\u00e1rio. Todos os valores s\u00e3o ordem de grandeza, e apenas duas das seis dimens\u00f5es puderam receber valor em reais.\": \"This assessment was built on what you answered in under two minutes and on documentation published by the vendors themselves. It did not read your invoice and it did not look at your inventory. Every figure is an order of magnitude, and only two of the six areas could be given a value in currency.\",\n    \"As tr\u00eas coisas que este panorama declara n\u00e3o estimar, que s\u00e3o a parcela de disco, o compromisso por recurso e o superdimensionamento, s\u00e3o justamente as que costumam decidir o tamanho da oportunidade. Nenhuma sai de formul\u00e1rio: todas dependem de ler a fatura linha a linha e o invent\u00e1rio m\u00e1quina a m\u00e1quina. N\u00e3o \u00e9 mais detalhe do mesmo, \u00e9 outra fonte de dados.\": \"The three things this assessment states it cannot estimate, the storage share, resource-based commitment and oversizing, are exactly the ones that usually decide the size of the opportunity. None of them comes out of a form: all depend on reading the invoice line by line and the inventory machine by machine. It is not more detail of the same thing, it is a different data source.\",\n    \"E se voc\u00ea fechar esta p\u00e1gina agora sem falar com ningu\u00e9m, fa\u00e7a uma coisa s\u00f3, em \": \"And if you close this page now without talking to anyone, do just one thing, in \",\n    \" N\u00e3o depende de n\u00f3s.\": \" It does not depend on us.\",\n    \"Gasto informado: \": \"Spend reported: \",\n    \"Dimens\u00e3o mais fraca: \": \"Weakest area: \",\n    \"Panorama por dimens\u00e3o:\": \"Assessment by area:\",\n    \"Parte produtiva da fatura: \": \"Production share of the invoice: \",\n    \"J\u00e1 sob compromisso: \": \"Already under commitment: \",\n    \"Ainda sem compromisso: \": \"Still without commitment: \",\n    \"Economia com 100% de cobertura em \": \"Saving with 100% coverage over \",\n    \"Valor que ficaria preso pelo prazo nesse caso: \": \"Amount that would be locked in by the term in that case: \",\n    \"Economia de compromisso: a \": \"Commitment saving: \",\n    \" n\u00e3o publica percentual para 1 ano\": \" does not publish a percentage for 1 year\",\n    \"Eixo de calend\u00e1rio, teto: \": \"Calendar axis, ceiling: \",\n    \"Janela informada: \": \"Window reported: \",\n    \" horas por dia, \": \" hours a day, \",\n    \" dias por semana\": \" days a week\",\n    \"Estimativa de ordem de grandeza. N\u00e3o substitui a leitura da fatura e do invent\u00e1rio.\": \"Order-of-magnitude estimate. It does not replace reading the invoice and the inventory.\",\n    \"Economia por m\u00eas,\\nn\u00e3o publicada\": \"Monthly saving,\\nnot published\",\n    \"Economia por m\u00eas,\\nno teto anunciado\": \"Monthly saving,\\nat the announced ceiling\",\n    \" j\u00e1 entrega de gra\u00e7a\": \" already gives you for free\",\n    \"Primeiro, saber quanto cada coisa custa\": \"First, know what each thing costs\",\n    \"A FinOps Foundation descreve que a fase de otimiza\u00e7\u00e3o identifica oportunidades a partir da vis\u00e3o obtida na fase de visibilidade e rateio. Enquanto o gasto n\u00e3o estiver separado, qualquer ganho nas outras dimens\u00f5es \u00e9 medido no escuro.\": \"The FinOps Foundation describes the optimization phase as identifying opportunities from the view obtained in the visibility and allocation phase. Until spend is broken down, any gain in the other areas is measured in the dark.\",\n    \"Depois, o eixo que pesa mais na sua resposta\": \"Then, the axis that carries the most weight in your answers\",\n    \"Nas suas respostas o eixo de calend\u00e1rio vale at\u00e9 \": \"In your answers the calendar axis is worth up to \",\n    \" por m\u00eas, contra \": \" per month, against \",\n    \"nada estim\u00e1vel\": \"nothing estimable\",\n    \" no compromisso com cobertura total. O n\u00famero de calend\u00e1rio \u00e9 teto e o real fica abaixo dele, mas n\u00e3o prende prazo nenhum e \u00e9 revers\u00edvel quando voc\u00ea quiser.\": \" on commitment at full coverage. The calendar number is a ceiling and the real one lands below it, but it locks in no term and is reversible whenever you want.\",\n    \"Nas suas respostas o compromisso vale at\u00e9 \": \"In your answers the commitment is worth up to \",\n    \" por m\u00eas com cobertura total, contra \": \" per month at full coverage, against \",\n    \" no eixo de calend\u00e1rio. Em troca, o valor coberto fica preso pelo prazo, e as regras de sa\u00edda est\u00e3o mais adiante neste documento.\": \" on the calendar axis. In exchange, the covered amount is locked in by the term, and the exit rules appear later in this document.\",\n    \"E o que custa menos para come\u00e7ar hoje\": \"And what costs least to start today\",\n    \"N\u00e3o exige ferramenta nova, or\u00e7amento nem projeto. A se\u00e7\u00e3o de ferramentas deste documento lista o que a \": \"It needs no new tool, no budget and no project. The tools section of this document lists what \",\n    \" j\u00e1 entrega sem contratar ningu\u00e9m.\": \" already gives you without hiring anyone.\",\n    \"N\u00e3o h\u00e1 cancelamento e os termos n\u00e3o podem ser alterados depois da compra. Se o uso muda, o caminho documentado \u00e9 contratar planos adicionais.\": \"There is no cancellation and the terms cannot be changed after purchase. If usage changes, the documented path is to buy additional plans.\",\n    \"N\u00e3o h\u00e1 cancelamento. Pode ser modificada e pode ser vendida no Reserved Instance Marketplace. N\u00e3o pode ser trocada.\": \"There is no cancellation. It can be modified and it can be sold on the Reserved Instance Marketplace. It cannot be exchanged.\",\n    \"N\u00e3o h\u00e1 cancelamento. Pode ser trocada por outra Convertible com atributos diferentes. Desconto menor que a Standard.\": \"There is no cancellation. It can be exchanged for another Convertible with different attributes. The discount is smaller than Standard.\",\n    \"Existe. \u00c9 calculado pelos dias restantes, em UTC, e pelo menor valor entre o pre\u00e7o de compra e o pre\u00e7o atual. O total cancelado n\u00e3o pode passar de 50 mil d\u00f3lares em janela m\u00f3vel de 12 meses.\": \"It exists. It is calculated from the remaining days, in UTC, and from the lower of the purchase price and the current price. Total cancellations cannot exceed USD 50,000 in a rolling 12-month window.\",\n    \"Reservations, taxa de rescis\u00e3o\": \"Reservations, termination fee\",\n    \"A Microsoft documenta que n\u00e3o est\u00e1 cobrando taxa hoje e que pode passar a cobrar 12 por cento. N\u00e3o h\u00e1 data anunciada.\": \"Microsoft documents that it is not charging a fee today and that it may start charging 12 percent. No date has been announced.\",\n    \"Sem penalidade e sem limite anual, com a regra de que a nova reserva precisa valer no m\u00ednimo o compromisso restante. Planos Red Hat, SUSE e de pr\u00e9-compra n\u00e3o s\u00e3o eleg\u00edveis.\": \"No penalty and no annual limit, with the rule that the new reservation must be worth at least the remaining commitment. Red Hat, SUSE and pre-purchase plans are not eligible.\",\n    \"N\u00e3o pode ser modificado, cancelado nem reembolsado.\": \"It cannot be modified, cancelled or refunded.\",\n    \"N\u00e3o \u00e9 poss\u00edvel cancelar. O valor mensal acordado \u00e9 devido pela dura\u00e7\u00e3o inteira do compromisso.\": \"Cancellation is not possible. The agreed monthly amount is owed for the entire duration of the commitment.\",\n    \"N\u00e3o \u00e9 poss\u00edvel cancelar. A fatura mensal cobre os recursos comprometidos independentemente de uso.\": \"Cancellation is not possible. The monthly invoice covers the committed resources regardless of usage.\",\n    \"Em troca da rigidez\": \"In exchange for the rigidity\",\n    \"O compromisso e os recursos cobertos por ele n\u00e3o s\u00e3o afetados por aumentos futuros no pre\u00e7o padr\u00e3o.\": \"The commitment and the resources it covers are not affected by future increases in list price.\",\n    \"O n\u00famero de <b>72 por cento<\/b> que circula no mercado \u00e9 o EC2 Instance Savings Plans, preso a uma fam\u00edlia de inst\u00e2ncia numa regi\u00e3o. O plano flex\u00edvel tem teto de 66 por cento.\": \"The <b>72 percent<\/b> figure that circulates in the market is EC2 Instance Savings Plans, locked to one instance family in one region. The flexible plan caps at 66 percent.\",\n    \"A pr\u00f3pria AWS recomenda Savings Plans em vez de Reserved Instances, na documenta\u00e7\u00e3o do EC2.\": \"AWS itself recommends Savings Plans over Reserved Instances, in the EC2 documentation.\",\n    \"Inst\u00e2ncia dedicada custa 2 d\u00f3lares por hora em cada regi\u00e3o onde houver ao menos uma, e essa taxa <b>n\u00e3o recebe desconto<\/b> de Savings Plans.\": \"A dedicated instance costs USD 2 per hour in each region where you run at least one, and that fee <b>gets no discount<\/b> from Savings Plans.\",\n    \"A AWS <b>n\u00e3o publica o percentual de 1 ano<\/b>. Documenta apenas que 3 anos rende mais.\": \"AWS <b>does not publish the 1-year percentage<\/b>. It only documents that 3 years yields more.\",\n    \"A partir de <b>1 de fevereiro de 2027<\/b>, reservas compradas depois dessa data deixam de ser eleg\u00edveis a troca quando o servi\u00e7o for coberto por savings plans, o que inclui Virtual Machines, App Service e SQL Database.\": \"From <b>1 February 2027<\/b>, reservations bought after that date stop being eligible for exchange when the service is covered by savings plans, which includes Virtual Machines, App Service and SQL Database.\",\n    \"O percentual do savings plan <b>pode oscilar durante o pr\u00f3prio prazo<\/b>, porque \u00e9 calculado sobre o pre\u00e7o pay-as-you-go. O valor comprometido por hora n\u00e3o muda.\": \"The savings plan percentage <b>can move during the term itself<\/b>, because it is calculated against the pay-as-you-go price. The hourly committed amount does not change.\",\n    \"O savings plan para computa\u00e7\u00e3o <b>n\u00e3o cobre software, rede nem armazenamento<\/b>. Savings plan para bancos existe apenas em prazo de 1 ano.\": \"The savings plan for compute <b>does not cover software, network or storage<\/b>. The savings plan for databases exists only on a 1-year term.\",\n    \"Savings plan <b>n\u00e3o d\u00e1 garantia de capacidade<\/b>. No vencimento os recursos continuam em pay-as-you-go, com aviso 30 dias antes.\": \"A savings plan <b>gives no capacity guarantee<\/b>. At expiry the resources continue on pay-as-you-go, with 30 days' notice.\",\n    \"Desligar ambiente <b>reduz o seu Sustained Use Discount<\/b>, porque o SUD sobe por faixa de uso mensal. As duas alavancas se canibalizam em parte, e este panorama j\u00e1 considera isso.\": \"Shutting environments down <b>reduces your Sustained Use Discount<\/b>, because SUD rises in monthly usage bands. The two levers partly cannibalize each other, and this assessment already accounts for that.\",\n    \"O SUD existe <b>somente em contas de faturamento self-serve<\/b>. Conta faturada por invoice n\u00e3o recebe SUD, e nesse caso o eixo de calend\u00e1rio rende mais do que o mostrado aqui.\": \"SUD exists <b>only on self-serve billing accounts<\/b>. An invoiced account receives no SUD, and in that case the calendar axis yields more than shown here.\",\n    \"Para s\u00e9ries otimizadas para mem\u00f3ria, o compromisso flex\u00edvel de <b>1 ano n\u00e3o d\u00e1 desconto nenhum<\/b>. S\u00f3 o de 3 anos, a 63 por cento.\": \"For memory-optimized series, the <b>1-year flexible commitment gives no discount at all<\/b>. Only the 3-year one, at 63 percent.\",\n    \"Os tipos de desconto s\u00e3o mutuamente exclusivos. A ordem documentada \u00e9 resource-based, depois flexible, depois on demand com SUD sobre o que sobrou.\": \"The discount types are mutually exclusive. The documented order is resource-based, then flexible, then on demand with SUD applied to what is left.\",\n    \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>AWS Compute Optimizer.<\/b> Redimensionamento e detec\u00e7\u00e3o de recurso ocioso em 14 categorias, de EC2 a RDS, Lambda, NAT Gateway e DynamoDB. Exige ades\u00e3o, n\u00e3o vem ligado.<\/p><p style='margin:0;font-size:16px'>Analisa <b style='color:var(--ink)'>14 dias<\/b> de CloudWatch por padr\u00e3o. Estender para 93 dias depende do recurso Enhanced infrastructure metrics, que \u00e9 pago. Mem\u00f3ria de EC2 s\u00f3 aparece com integra\u00e7\u00e3o Datadog ou Dynatrace.<\/p>\": \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>AWS Compute Optimizer.<\/b> Right-sizing and idle resource detection across 14 categories, from EC2 to RDS, Lambda, NAT Gateway and DynamoDB. It requires opt-in; it is not on by default.<\/p><p style='margin:0;font-size:16px'>It analyses <b style='color:var(--ink)'>14 days<\/b> of CloudWatch by default. Extending to 93 days depends on Enhanced infrastructure metrics, which is paid. EC2 memory only appears with a Datadog or Dynatrace integration.<\/p>\",\n    \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Azure Advisor, aba Custo.<\/b> Redimensionar ou desligar VM subutilizada, discos n\u00e3o anexados, gateways ociosos, compra de reserva e de savings plan, recomenda\u00e7\u00f5es para AKS.<\/p><p style='margin:0;font-size:16px'>Crit\u00e9rio oficial: monitora <b style='color:var(--ink)'>sete dias<\/b> e considera baixa utiliza\u00e7\u00e3o CPU de 5 por cento ou menos e rede de 7 MB ou menos por quatro dias ou mais. A regra de CPU \u00e9 configur\u00e1vel.<\/p>\": \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Azure Advisor, Cost tab.<\/b> Resize or shut down underused VMs, unattached disks, idle gateways, reservation and savings plan purchases, recommendations for AKS.<\/p><p style='margin:0;font-size:16px'>Official criterion: it monitors <b style='color:var(--ink)'>seven days<\/b> and treats as low utilization a CPU of 5 percent or less and network of 7 MB or less for four days or more. The CPU rule is configurable.<\/p>\",\n    \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Google Recommender.<\/b> S\u00e3o 16 motores na categoria Custo, incluindo VM ociosa, disco persistente ocioso, IP ocioso, cluster GKE ocioso, Cloud SQL ociosa e superprovisionada, reservas ociosas e subutilizadas.<\/p><p style='margin:0;font-size:16px'>O recommender de VM ociosa \u00e9 gratuito, usa janela padr\u00e3o de <b style='color:var(--ink)'>14 dias<\/b> e roda uma vez por dia. N\u00e3o cobre inst\u00e2ncia com SSD local, com GPU, com TPU, App Engine flex, Dataflow nem GKE.<\/p>\": \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Google Recommender.<\/b> There are 16 engines in the Cost category, including idle VM, idle persistent disk, idle IP, idle GKE cluster, idle and overprovisioned Cloud SQL, and idle and underused reservations.<\/p><p style='margin:0;font-size:16px'>The idle VM recommender is free, uses a default <b style='color:var(--ink)'>14-day<\/b> window and runs once a day. It does not cover instances with local SSD, GPU or TPU, nor App Engine flex, Dataflow or GKE.<\/p>\",\n    \"Savings Plans, qualquer tipo\": \"Savings Plans, any type\",\n    \"Reservations, reembolso\": \"Reservations, refund\",\n    \"Reservations, troca\": \"Reservations, exchange\",\n    \"Panorama de nuvem\": \"Cloud cost assessment\",\n    \"P\u00e1gina \": \"Page \",\n    \"DIAGN\u00d3STICO FINOPS\": \"FINOPS ASSESSMENT\",\n    \"Em que n\u00edvel est\u00e1 cada frente, quanto d\u00e1 para estimar em reais e o prazo que cada desconto custa\": \"What level each area sits at, how much can be estimated in currency, and the term each discount costs\",\n    \"PREPARADO PARA\": \"PREPARED FOR\",\n    \"Nuvem avaliada\": \"Cloud assessed\",\n    \"Gasto informado\": \"Spend reported\",\n    \" \/ m\u00eas\": \" \/ month\",\n    \"Emitido em\": \"Issued on\",\n    \"Documento gerado a partir das respostas fornecidas em integrity-ux.com.br\/panorama-de-nuvem e da documenta\u00e7\u00e3o publicada por AWS, Microsoft e Google. Os valores s\u00e3o estimativa de ordem de grandeza e n\u00e3o substituem a leitura da fatura e do invent\u00e1rio.\": \"Document generated from the answers provided at integrity-ux.com.br and from documentation published by AWS, Microsoft and Google. The figures are order-of-magnitude estimates and do not replace reading the invoice and the inventory.\",\n    \"Consultoria de T.I. especializada em infraestrutura\": \"IT consultancy specialized in infrastructure\",\n    \"O panorama em seis dimens\u00f5es\": \"The assessment across six areas\",\n    \"Cada dimens\u00e3o corresponde a uma capacidade do framework da FinOps Foundation. A escada de quatro n\u00edveis \u00e9 Ausente, Inicial, Estabelecido e Maduro.\": \"Each area maps to a capability in the FinOps Foundation framework. The four-step ladder is Absent, Initial, Established and Mature.\",\n    \"Leitura do panorama\": \"Reading the assessment\",\n    \"Perfil geral: \": \"Overall profile: \",\n    \"Onde d\u00e1 para estimar valor\": \"Where a value can be estimated\",\n    \"Estimativa de ordem de grandeza\": \"Order-of-magnitude estimate\",\n    \"Duas das seis dimens\u00f5es\": \"Two of the six areas\",\n    \"aceitam valor em reais\": \"accept a value in currency\",\n    \"A fatura \u00e9 dividida em duas. A parte n\u00e3o produtiva responde a calend\u00e1rio, porque pode ser desligada. A parte produtiva responde a compromisso, porque roda continuamente.\": \"The invoice splits in two. The non-production share responds to the calendar, because it can be shut down. The production share responds to commitment, because it runs continuously.\",\n    \"Parte produtiva da fatura\": \"Production share of the invoice\",\n    \"J\u00e1 sob compromisso\": \"Already under commitment\",\n    \"Ainda sem compromisso\": \"Still without commitment\",\n    \"Eixo de compromisso, reserva de \": \"Commitment axis, reservation of \",\n    \"Cobertura\": \"Coverage\",\n    \"Preso pelo prazo,\\npor m\u00eas\": \"Locked in by the term,\\nper month\",\n    \"Livre para sair\\nsem multa\": \"Free to leave\\nwith no penalty\",\n    \"Eixo de calend\u00e1rio\": \"Calendar axis\",\n    \"TETO ESTIMADO\": \"ESTIMATED CEILING\",\n    \"O que este n\u00famero n\u00e3o sabe\": \"What this number does not know\",\n    \"O que fazer a seguir\": \"What to do next\",\n    \"Por onde come\u00e7ar\": \"Where to start\",\n    \"Ordem sugerida a partir do que voc\u00ea respondeu, e n\u00e3o um plano de projeto. A sequ\u00eancia segue o que a FinOps Foundation descreve sobre as fases: a otimiza\u00e7\u00e3o parte da vis\u00e3o obtida na etapa de visibilidade e rateio.\": \"An order suggested by what you answered, not a project plan. The sequence follows what the FinOps Foundation describes about the phases: optimization starts from the view obtained in the visibility and allocation stage.\",\n    \"Nas seis dimens\u00f5es voc\u00ea j\u00e1 est\u00e1 acima do degrau inicial, e nos dois eixos com valor n\u00e3o h\u00e1 nada estim\u00e1vel neste cen\u00e1rio. N\u00e3o temos o que sugerir sem ler a sua fatura.\": \"Across the six areas you are already above the initial step, and on the two areas that carry value there is nothing estimable in this scenario. We have nothing to suggest without reading your invoice.\",\n    \"O degrau seguinte nas outras dimens\u00f5es\": \"The next step in the other areas\",\n    \"Hoje: \": \"Today: \",\n    \"O prazo de cada desconto\": \"The term each discount carries\",\n    \"Fontes mais adiante neste documento\": \"Sources later in this document\",\n    \"Todo desconto de compromisso \u00e9 uma troca: pre\u00e7o menor por prazo assinado. Esta se\u00e7\u00e3o existe porque a decis\u00e3o de reservar \u00e9 mais sobre a sa\u00edda do que sobre o percentual.\": \"Every commitment discount is a trade: a lower price for a signed term. This section exists because the decision to reserve is more about the exit than about the percentage.\",\n    \"Pontos de aten\u00e7\u00e3o espec\u00edficos da \": \"Specific watch-outs for \",\n    \"M\u00e9todo e fontes\": \"Method and sources\",\n    \"Estimativa de ordem de grandeza, n\u00e3o substitui leitura de fatura\": \"Order-of-magnitude estimate, it does not replace reading the invoice\",\n    \"De onde v\u00eam os n\u00fameros\": \"Where the numbers come from\",\n    \"28% e 46%\": \"28% and 46%\",\n    \"Desconto do compromisso flex\u00edvel do Google para s\u00e9ries de uso geral, em 1 e 3 anos. Valor exato, n\u00e3o teto, e j\u00e1 em regime de pagamento mensal.\": \"Google's flexible commitment discount for general-purpose series, at 1 and 3 years. An exact figure, not a ceiling, and already on monthly payment.\",\n    \"Google Cloud, Committed use discounts for Compute Engine\": \"Google Cloud, Committed use discounts for Compute Engine\",\n    \"11% a 65%\": \"11% to 65%\",\n    \"Faixa oficial do savings plan para computa\u00e7\u00e3o do Azure. Os 65% correspondem a uma M64dsv2 Ubuntu em East US por 36 meses. A Microsoft n\u00e3o publica percentual por prazo.\": \"The official range for Azure's savings plan for compute. The 65% corresponds to an M64dsv2 Ubuntu in East US over 36 months. Microsoft does not publish a percentage by term.\",\n    \"Microsoft, p\u00e1gina de Savings plans, nota de rodap\u00e9 1\": \"Microsoft, Savings plans page, footnote 1\",\n    \"at\u00e9 66%\": \"up to 66%\",\n    \"Teto do Compute Savings Plans da AWS, o plano mais flex\u00edvel. A AWS n\u00e3o publica o percentual de 1 ano, apenas que 3 anos rende mais.\": \"The ceiling of AWS Compute Savings Plans, the most flexible plan. AWS does not publish the 1-year percentage, only that 3 years returns more.\",\n    \"AWS, Savings Plans User Guide\": \"AWS, Savings Plans User Guide\",\n    \"Como a conta \u00e9 feita\": \"How the calculation works\",\n    \"Eixo de taxa. \": \"Rate axis. \",\n    \"A base sem compromisso multiplicada pela cobertura escolhida e pelo percentual do fabricante. As colunas de valor preso e valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nas tr\u00eas nuvens.\": \"The uncommitted base multiplied by the coverage chosen and by the vendor's percentage. The locked-in and free columns do not depend on any percentage, and they are exact across all three clouds.\",\n    \"Eixo de calend\u00e1rio. \": \"Calendar axis. \",\n    \"As horas fora da janela informada, sobre o gasto n\u00e3o produtivo informado. Sai como teto. No Google sai como faixa, porque desligar reduz o Sustained Use Discount, e a conta usa a tabela oficial por faixa de uso mensal.\": \"The hours outside the window reported, applied to the non-production spend reported. It is a ceiling. On Google it is a range, because shutting down lowers the Sustained Use Discount, and the calculation uses the official table by monthly usage band.\",\n    \"Faixas de resposta. \": \"Answer ranges. \",\n    \"Usam o ponto m\u00e9dio. A faixa de 15 a 30 l\u00ea 22,5. A faixa aberta superior usa o piso, que \u00e9 o tratamento conservador.\": \"They use the midpoint. The 15 to 30 range reads 22.5. The open top range uses its floor, which is the conservative treatment.\",\n    \"Escada de maturidade. \": \"Maturity ladder. \",\n    \"Quatro n\u00edveis adaptados do modelo da FinOps Foundation, que usa os est\u00e1gios Crawl, Walk e Run. Licenciado em CC BY 4.0, que permite adapta\u00e7\u00e3o com atribui\u00e7\u00e3o. Consultas \u00e0s p\u00e1ginas oficiais de AWS, Azure e Google em setembro de 2026.\": \"Four levels adapted from the FinOps Foundation maturity model, which uses the Crawl, Walk and Run stages. Licensed under CC BY 4.0, which permits adaptation with attribution. Official AWS, Azure and Google pages consulted in September 2026.\",\n    \"O escopo deste documento\": \"The scope of this document\",\n    \"PR\u00d3XIMO PASSO\": \"NEXT STEP\",\n    \"Este documento n\u00e3o leu a sua fatura\": \"This document has not read your invoice\",\n    \"  \u00b7  Consultoria de T.I. especializada em infraestrutura, dados e intelig\u00eancia artificial\": \"  \u00b7  IT consultancy specialized in infrastructure, data and artificial intelligence\",\n    \"Montando o seu documento...\": \"Building your document...\",\n    \"N\u00e3o foi poss\u00edvel montar o PDF agora. O resumo do seu panorama foi enviado por e-mail do mesmo jeito.\": \"The PDF could not be built just now. The summary of your assessment was sent by e-mail all the same.\",\n    \"panorama-de-nuvem-integrity-ux\": \"cloud-cost-assessment-integrity-ux\"\n  };\n  TRAD.es = {\n    \"Ausente\": \"Ausente\",\n    \"Inicial\": \"Inicial\",\n    \"Estabelecido\": \"Establecido\",\n    \"Maduro\": \"Maduro\",\n    \"Ponto de partida\": \"Punto de partida\",\n    \"Rateio e visibilidade\": \"Asignaci\u00f3n y visibilidad\",\n    \"Otimiza\u00e7\u00e3o de taxa\": \"Optimizaci\u00f3n de tarifa\",\n    \"Otimiza\u00e7\u00e3o de uso\": \"Optimizaci\u00f3n de uso\",\n    \"Previs\u00e3o e or\u00e7amento\": \"Previsi\u00f3n y presupuesto\",\n    \"Anomalias\": \"Anomal\u00edas\",\n    \"Responsabilidade\": \"Responsabilidad\",\n    \"Voc\u00ea consegue dizer quanto cada aplica\u00e7\u00e3o ou ambiente custou no m\u00eas passado?\": \"\u00bfPuede decir cu\u00e1nto cost\u00f3 cada aplicaci\u00f3n o entorno el mes pasado?\",\n    \"Quanto da sua computa\u00e7\u00e3o est\u00e1 sob reserva ou plano de economia?\": \"\u00bfQu\u00e9 parte de su c\u00f3mputo est\u00e1 bajo reserva o plan de ahorro?\",\n    \"Ambientes que n\u00e3o s\u00e3o de produ\u00e7\u00e3o desligam fora do hor\u00e1rio de trabalho?\": \"\u00bfLos entornos que no son de producci\u00f3n se apagan fuera del horario laboral?\",\n    \"Voc\u00ea sabe hoje quanto vai gastar na nuvem no m\u00eas que vem?\": \"\u00bfSabe hoy cu\u00e1nto va a gastar en la nube el mes que viene?\",\n    \"Se a fatura subir sem explica\u00e7\u00e3o, em quanto tempo voc\u00eas descobrem?\": \"Si la factura sube sin explicaci\u00f3n, \u00bfen cu\u00e1nto tiempo lo descubren?\",\n    \"Quem responde pelo custo da nuvem na sua empresa?\": \"\u00bfQui\u00e9n responde por el costo de la nube en su empresa?\",\n    \"Vemos s\u00f3 o total da fatura\": \"Solo vemos el total de la factura\",\n    \"Separamos por conta ou assinatura, n\u00e3o por aplica\u00e7\u00e3o\": \"Separamos por cuenta o suscripci\u00f3n, no por aplicaci\u00f3n\",\n    \"Temos tags ou grupos de recursos, com cobertura parcial\": \"Tenemos etiquetas o grupos de recursos, con cobertura parcial\",\n    \"Quase todo o gasto est\u00e1 rateado e reportado por \u00e1rea respons\u00e1vel\": \"Casi todo el gasto est\u00e1 asignado y reportado por \u00e1rea responsable\",\n    \"Nada, pagamos tarifa cheia\": \"Nada, pagamos tarifa completa\",\n    \"Compramos uma vez e n\u00e3o revisamos mais\": \"Compramos una vez y no lo revisamos m\u00e1s\",\n    \"Parte do ambiente est\u00e1 coberta, revisamos de vez em quando\": \"Parte del entorno est\u00e1 cubierta, lo revisamos de vez en cuando\",\n    \"Cobertura definida por pol\u00edtica e revisada em ciclo\": \"Cobertura definida por pol\u00edtica y revisada en ciclo\",\n    \"N\u00e3o temos ambiente fora de produ\u00e7\u00e3o na nuvem\": \"No tenemos entorno fuera de producci\u00f3n en la nube\",\n    \"N\u00e3o desligam, ficam ligados o tempo todo\": \"No se apagan, quedan encendidos todo el tiempo\",\n    \"Desligamos parte, manualmente\": \"Apagamos una parte, manualmente\",\n    \"Temos agenda autom\u00e1tica em parte dos ambientes\": \"Tenemos programaci\u00f3n autom\u00e1tica en parte de los entornos\",\n    \"Temos agenda autom\u00e1tica em todos os ambientes n\u00e3o produtivos\": \"Tenemos programaci\u00f3n autom\u00e1tica en todos los entornos no productivos\",\n    \"Descobrimos quando a fatura chega\": \"Lo descubrimos cuando llega la factura\",\n    \"Temos uma expectativa informal, sem n\u00famero\": \"Tenemos una expectativa informal, sin n\u00famero\",\n    \"Temos previs\u00e3o e comparamos com o realizado\": \"Tenemos previsi\u00f3n y la comparamos con lo real\",\n    \"Previs\u00e3o por \u00e1rea, com or\u00e7amento acordado e desvio acompanhado\": \"Previsi\u00f3n por \u00e1rea, con presupuesto acordado y desv\u00edo monitoreado\",\n    \"No fechamento do m\u00eas, ou quando algu\u00e9m estranha\": \"En el cierre del mes, o cuando alguien lo nota\",\n    \"Temos alerta de valor total, sem detalhe\": \"Tenemos alerta de valor total, sin detalle\",\n    \"Temos alerta por servi\u00e7o ou por conta\": \"Tenemos alerta por servicio o por cuenta\",\n    \"Detec\u00e7\u00e3o autom\u00e1tica, com respons\u00e1vel definido e prazo de resposta\": \"Detecci\u00f3n autom\u00e1tica, con responsable definido y plazo de respuesta\",\n    \"Ningu\u00e9m especificamente, aparece em TI como despesa\": \"Nadie en concreto, aparece en TI como gasto\",\n    \"Uma pessoa acompanha, sem mandato formal\": \"Una persona lo sigue, sin mandato formal\",\n    \"TI e finan\u00e7as conversam em ciclo definido\": \"TI y finanzas se re\u00fanen en un ciclo definido\",\n    \"Cada \u00e1rea conhece e responde pelo pr\u00f3prio consumo\": \"Cada \u00e1rea conoce y responde por su propio consumo\",\n    \"Ative o rateio por conta ou assinatura no seu portal de faturamento. Nas tr\u00eas nuvens isso j\u00e1 vem pronto, sem integra\u00e7\u00e3o nenhuma. \u00c9 o primeiro degrau e destrava todos os outros.\": \"Active la asignaci\u00f3n por cuenta o suscripci\u00f3n en su portal de facturaci\u00f3n. En las tres nubes ya viene listo, sin ninguna integraci\u00f3n. Es el primer escal\u00f3n y destraba todos los dem\u00e1s.\",\n    \"Defina um padr\u00e3o m\u00ednimo de tags, por exemplo ambiente e aplica\u00e7\u00e3o, e aplique nos dez recursos que concentram mais gasto. N\u00e3o tente cobrir tudo de uma vez.\": \"Defina un est\u00e1ndar m\u00ednimo de etiquetas, por ejemplo entorno y aplicaci\u00f3n, y apl\u00edquelo a los diez recursos que concentran m\u00e1s gasto. No intente cubrirlo todo de una vez.\",\n    \"Me\u00e7a a cobertura de tags e trate o que est\u00e1 sem tag como fila de trabalho. Recurso sem tag \u00e9 recurso que ningu\u00e9m reivindica, e \u00e9 onde o desperd\u00edcio se esconde.\": \"Mida la cobertura de etiquetas y trate lo que est\u00e1 sin etiqueta como cola de trabajo. Un recurso sin etiqueta es un recurso que nadie reclama, y ah\u00ed es donde se esconde el desperdicio.\",\n    \"Voc\u00ea j\u00e1 tem base para acompanhar custo por unidade de neg\u00f3cio, e n\u00e3o apenas por \u00e1rea. \u00c9 o degrau seguinte.\": \"Ya tiene base para seguir el costo por unidad de negocio, y no solo por \u00e1rea. Es el siguiente escal\u00f3n.\",\n    \"Antes de comprar qualquer compromisso, abra a recomenda\u00e7\u00e3o que o seu pr\u00f3prio console j\u00e1 faz. Ela usa o seu hist\u00f3rico, n\u00e3o uma m\u00e9dia de mercado.\": \"Antes de comprar cualquier compromiso, abra la recomendaci\u00f3n que su propia consola ya genera. Usa su hist\u00f3rico, no un promedio de mercado.\",\n    \"Compromisso comprado e nunca revisado perde valor conforme a opera\u00e7\u00e3o muda, e o n\u00e3o utilizado \u00e9 cobrado igual. Verifique a utiliza\u00e7\u00e3o do que voc\u00ea j\u00e1 tem antes de comprar mais.\": \"Un compromiso comprado y nunca revisado pierde valor a medida que la operaci\u00f3n cambia, y lo no utilizado se cobra igual. Verifique la utilizaci\u00f3n de lo que ya tiene antes de comprar m\u00e1s.\",\n    \"Troque a revis\u00e3o eventual por uma cad\u00eancia fixa e uma meta de cobertura escrita. Cobertura sem pol\u00edtica vira decis\u00e3o de quem estava na sala naquele dia.\": \"Cambie la revisi\u00f3n ocasional por una cadencia fija y una meta de cobertura escrita. La cobertura sin pol\u00edtica se vuelve decisi\u00f3n de quien estaba en la sala ese d\u00eda.\",\n    \"Com pol\u00edtica e ciclo em p\u00e9, o que resta \u00e9 medir a utiliza\u00e7\u00e3o do compromisso, e n\u00e3o s\u00f3 a cobertura. Compromisso coberto e n\u00e3o utilizado ainda \u00e9 desperd\u00edcio.\": \"Con pol\u00edtica y ciclo en pie, lo que resta es medir la utilizaci\u00f3n del compromiso, y no solo la cobertura. Compromiso cubierto y no utilizado sigue siendo desperdicio.\",\n    \"Comece por um ambiente s\u00f3, o menos cr\u00edtico, com agenda de ligar e desligar. Nenhuma das tr\u00eas nuvens recomenda hor\u00e1rio por conta pr\u00f3pria, porque nenhuma sabe quando a sua empresa trabalha.\": \"Empiece por un solo entorno, el menos cr\u00edtico, con programaci\u00f3n de encendido y apagado. Ninguna de las tres nubes recomienda horario por su cuenta, porque ninguna sabe cu\u00e1ndo trabaja su empresa.\",\n    \"Desligamento manual depende de algu\u00e9m lembrar na sexta-feira. Passar para agenda autom\u00e1tica n\u00e3o muda o ganho por hora, muda a taxa de acerto.\": \"El apagado manual depende de que alguien se acuerde el viernes. Pasar a programaci\u00f3n autom\u00e1tica no cambia la ganancia por hora, cambia con qu\u00e9 frecuencia se obtiene.\",\n    \"Estenda a agenda para os ambientes que ainda ficaram de fora. O ganho por hora \u00e9 o mesmo, o que muda \u00e9 a fatia do parque coberta.\": \"Extienda la programaci\u00f3n a los entornos que a\u00fan quedaron fuera. La ganancia por hora es la misma, lo que cambia es la porci\u00f3n del parque cubierta.\",\n    \"Com agenda autom\u00e1tica em todo o parque n\u00e3o produtivo, o passo seguinte \u00e9 rever o tamanho das m\u00e1quinas que ficam ligadas, e a\u00ed o console da sua nuvem j\u00e1 ajuda.\": \"Con programaci\u00f3n autom\u00e1tica en todo el parque no productivo, el siguiente paso es revisar el tama\u00f1o de las m\u00e1quinas que quedan encendidas, y ah\u00ed la consola de su nube ya ayuda.\",\n    \"Abra o relat\u00f3rio de custo do seu portal e compare os \u00faltimos tr\u00eas meses. S\u00f3 isso j\u00e1 mostra tend\u00eancia, e leva minutos.\": \"Abra el informe de costos de su portal y compare los \u00faltimos tres meses. Solo eso ya muestra la tendencia, y lleva minutos.\",\n    \"Transforme a expectativa em n\u00famero. Registre a previs\u00e3o antes do m\u00eas come\u00e7ar e compare no fim. Duas linhas de planilha resolvem o primeiro ciclo.\": \"Convierta la expectativa en n\u00famero. Registre la previsi\u00f3n antes de que empiece el mes y compare al final. Dos l\u00edneas de planilla resuelven el primer ciclo.\",\n    \"Leve a previs\u00e3o para a \u00e1rea que consome, n\u00e3o s\u00f3 para TI. Previs\u00e3o que n\u00e3o tem dono n\u00e3o muda comportamento nenhum.\": \"Lleve la previsi\u00f3n al \u00e1rea que consume, no solo a TI. Una previsi\u00f3n sin due\u00f1o no cambia ning\u00fan comportamiento.\",\n    \"Com previs\u00e3o por \u00e1rea em p\u00e9, o degrau seguinte \u00e9 ligar or\u00e7amento \u00e0 decis\u00e3o de arquitetura, antes do deploy e n\u00e3o depois da fatura.\": \"Con previsi\u00f3n por \u00e1rea en pie, el siguiente escal\u00f3n es ligar el presupuesto a la decisi\u00f3n de arquitectura, antes del despliegue y no despu\u00e9s de la factura.\",\n    \"Crie um alerta de or\u00e7amento no seu portal hoje. Leva poucos minutos nas tr\u00eas nuvens, e um alerta simples de valor total j\u00e1 corta semanas do tempo de descoberta. Confira as condi\u00e7\u00f5es de cobran\u00e7a do recurso no seu provedor antes de criar v\u00e1rios.\": \"Cree una alerta de presupuesto en su portal hoy. Lleva pocos minutos en las tres nubes, y una alerta simple de valor total ya recorta semanas del tiempo de descubrimiento. Revise las condiciones de cobro del recurso en su proveedor antes de crear varias.\",\n    \"Des\u00e7a o alerta de total para servi\u00e7o ou conta. Alerta de total s\u00f3 dispara quando o problema j\u00e1 est\u00e1 grande.\": \"Baje la alerta de total a servicio o cuenta. La alerta de total solo se dispara cuando el problema ya es grande.\",\n    \"Defina quem recebe o alerta e em quanto tempo precisa responder. Alerta sem respons\u00e1vel definido vira ru\u00eddo e some da caixa de entrada.\": \"Defina qui\u00e9n recibe la alerta y en cu\u00e1nto tiempo debe responder. Una alerta sin responsable definido se vuelve ruido y desaparece de la bandeja de entrada.\",\n    \"Voc\u00ea j\u00e1 detecta automaticamente. O passo seguinte \u00e9 medir o tempo entre detec\u00e7\u00e3o e corre\u00e7\u00e3o, e trabalhar para reduzir esse tempo.\": \"Ya detecta autom\u00e1ticamente. El siguiente paso es medir el tiempo entre detecci\u00f3n y correcci\u00f3n, y trabajar para reducirlo.\",\n    \"Nomeie uma pessoa para olhar a fatura uma vez por m\u00eas. N\u00e3o precisa de cargo novo, de ferramenta nem de or\u00e7amento.\": \"Designe a una persona para mirar la factura una vez al mes. No requiere cargo nuevo, ni herramienta, ni presupuesto.\",\n    \"Coloque TI e finan\u00e7as na mesma reuni\u00e3o mensal sobre a fatura. A maior parte do desalinhamento morre nessa reuni\u00e3o.\": \"Ponga a TI y finanzas en la misma reuni\u00f3n mensual sobre la factura. La mayor parte de la desalineaci\u00f3n muere en esa reuni\u00f3n.\",\n    \"Mostre a cada \u00e1rea o pr\u00f3prio consumo. N\u00famero que chega na \u00e1rea que gasta muda comportamento; n\u00famero que fica em TI n\u00e3o muda.\": \"Muestre a cada \u00e1rea su propio consumo. Un n\u00famero que llega al \u00e1rea que gasta cambia el comportamiento; un n\u00famero que se queda en TI no lo cambia.\",\n    \"Com cada \u00e1rea respondendo pelo pr\u00f3prio consumo, o degrau seguinte \u00e9 ligar isso a metas, e n\u00e3o apenas a relat\u00f3rio.\": \"Con cada \u00e1rea respondiendo por su propio consumo, el siguiente escal\u00f3n es ligar eso a metas, y no solo a informes.\",\n    \"Regras de sa\u00edda na \": \"Reglas de salida en \",\n    \"O que a \": \"Lo que \",\n    \"Respostas completas: \": \"Respuestas completas: \",\n    \" de \": \" de \",\n    \"Passo \": \"Paso \",\n    \"Sem todas as respostas n\u00e3o d\u00e1 para calcular, e preferimos dizer isso a mostrar um n\u00famero inventado.\": \"Sin todas las respuestas no hay nada que calcular, y preferimos decirlo antes que mostrar un n\u00famero inventado.\",\n    \"At\u00e9 25%\": \"Hasta 25%\",\n    \"25% a 50%\": \"25% a 50%\",\n    \"50% a 75%\": \"50% a 75%\",\n    \"Mais de 75%\": \"M\u00e1s del 75%\",\n    \"N\u00e3o sei\": \"No lo s\u00e9\",\n    \"Compromisso por gasto, \": \"Compromiso por gasto, \",\n    \"Compromisso por recurso, \": \"Compromiso por recurso, \",\n    \"Os dois\": \"Los dos\",\n    \"At\u00e9 15%\": \"Hasta 15%\",\n    \"15% a 30%\": \"15% a 30%\",\n    \"30% a 50%\": \"30% a 50%\",\n    \"Mais de 50%\": \"M\u00e1s del 50%\",\n    \"Escolha uma nuvem para continuar.\": \"Elija una nube para continuar.\",\n    \"Informe o gasto mensal para continuar.\": \"Indique el gasto mensual para continuar.\",\n    \"Escolha uma das op\u00e7\u00f5es para continuar.\": \"Elija una de las opciones para continuar.\",\n    \"quanto j\u00e1 est\u00e1 coberto\": \"cu\u00e1nto ya est\u00e1 cubierto\",\n    \"qual modelo voc\u00ea usa\": \"qu\u00e9 modelo usa\",\n    \"Falta responder \": \"Falta responder: \",\n    \" e \": \" y \",\n    \"quanto do gasto est\u00e1 nesses ambientes\": \"cu\u00e1nto del gasto est\u00e1 en esos entornos\",\n    \"a janela de uso, em horas por dia e dias por semana\": \"la ventana de uso, en horas por d\u00eda y d\u00edas por semana\",\n    \" das 168 horas da semana em uso. \": \" de las 168 horas de la semana en uso. \",\n    \" horas fora da janela, ou seja \": \" horas fuera de la ventana, o sea \",\n    \"% do tempo.\": \"% del tiempo.\",\n    \"Perguntamos em vez de supor. A aritm\u00e9tica das horas fica sendo a sua.\": \"Preguntamos en lugar de suponer. La aritm\u00e9tica de las horas es la suya.\",\n    \" por m\u00eas\": \" por mes\",\n    \"at\u00e9 \": \"hasta \",\n    \"1 ano\": \"1 a\u00f1o\",\n    \"3 anos\": \"3 a\u00f1os\",\n    \"Sobre \": \"Sobre \",\n    \" horas em \": \" horas en \",\n    \" a \": \" a \",\n    \"% e \": \"% y \",\n    \"% do tempo. Na \": \"% del tiempo. En \",\n    \"a \": \"\",\n    \"Nuvem: \": \"Nube: \",\n    \"Perfil: \": \"Perfil: \",\n    \"Sobre o percentual. \": \"Sobre el porcentaje. \",\n    \"<b>Sobre o percentual.<\/b> \": \"<b>Sobre el porcentaje.<\/b> \",\n    \"<\/b>, no n\u00edvel \": \"<\/b>, en el nivel \",\n    \"recommender de compromisso do Cloud Billing\": \"recommender de compromiso de Cloud Billing\",\n    \"savings plan para computa\u00e7\u00e3o\": \"savings plan para c\u00f3mputo\",\n    \"<p class=\\\"ix-pq\\\">Pronto. O seu panorama est\u00e1 logo abaixo.<\/p>\": \"<p class=\\\"ix-pq\\\">Listo. Su evaluaci\u00f3n est\u00e1 justo abajo.<\/p>\",\n    \"<p class=\\\"ix-hint\\\">Quer mudar alguma resposta? Use Voltar, que o resultado se refaz na hora.<\/p>\": \"<p class=\\\"ix-hint\\\">\u00bfQuiere cambiar alguna respuesta? Use Volver y el resultado se rehace al instante.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Falta pouco<\/p>\": \"<p class=\\\"ix-pq\\\">Ya casi<\/p>\",\n    \"<p class=\\\"ix-hint\\\">Alguma resposta ficou em branco, ent\u00e3o o panorama ainda n\u00e3o pode ser montado. Use Voltar para completar.<\/p>\": \"<p class=\\\"ix-hint\\\">Alguna respuesta qued\u00f3 en blanco, as\u00ed que la evaluaci\u00f3n todav\u00eda no puede armarse. Use Volver para completarla.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Qual nuvem concentra a maior parte do seu gasto?<\/p>\": \"<p class=\\\"ix-pq\\\">\u00bfQu\u00e9 nube concentra la mayor parte de su gasto?<\/p>\",\n    \"<p class=\\\"ix-hint\\\">Quem usa mais de uma responde pela de maior peso. Os mecanismos de desconto n\u00e3o se somam entre provedores, e as regras de sa\u00edda s\u00e3o diferentes em cada um.<\/p>\": \"<p class=\\\"ix-hint\\\">Quien usa m\u00e1s de una responde por la de mayor peso. Los mecanismos de descuento no se suman entre proveedores, y las reglas de salida son distintas en cada uno.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Quanto voc\u00ea gasta por m\u00eas nessa nuvem?<\/p>\": \"<p class=\\\"ix-pq\\\">\u00bfCu\u00e1nto gasta por mes en esa nube?<\/p>\",\n    \"<p class=\\\"ix-hint\\\">M\u00e9dia dos \u00faltimos meses. A conta trabalha com ordem de grandeza.<\/p>\": \"<p class=\\\"ix-hint\\\">Promedio de los \u00faltimos meses. El c\u00e1lculo trabaja con orden de magnitud.<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Sobre o compromisso que voc\u00ea j\u00e1 tem<\/p>\": \"<p class=\\\"ix-pq\\\">Sobre el compromiso que ya tiene<\/p>\",\n    \"<p class=\\\"ix-hint\\\" style=\\\"margin:0 0 6px\\\">Os tipos de desconto s\u00e3o mutuamente exclusivos e aplicam em ordem fixa, ent\u00e3o o modelo atual muda quanto ainda resta a ganhar.<\/p>\": \"<p class=\\\"ix-hint\\\" style=\\\"margin:0 0 6px\\\">Los tipos de descuento son mutuamente exclusivos y se aplican en orden fijo, as\u00ed que el modelo actual cambia cu\u00e1nto queda por ganar.<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">Quanto j\u00e1 est\u00e1 coberto<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">Cu\u00e1nto ya est\u00e1 cubierto<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">Qual modelo<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">Qu\u00e9 modelo<\/p>\",\n    \"<p class=\\\"ix-pq\\\">Sobre esses ambientes n\u00e3o produtivos<\/p>\": \"<p class=\\\"ix-pq\\\">Sobre esos entornos no productivos<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">Quanto do gasto est\u00e1 neles<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:22px 0 8px\\\">Cu\u00e1nto del gasto est\u00e1 en ellos<\/p>\",\n    \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">Janela de uso da equipe<\/p>\": \"<p class=\\\"ix-gh\\\" style=\\\"margin:24px 0 8px\\\">Ventana de uso del equipo<\/p>\",\n    \"\\\"><span style=\\\"font-size:14px\\\">horas por dia<\/span><\/span>\": \"\\\"><span style=\\\"font-size:14px\\\">horas por d\u00eda<\/span><\/span>\",\n    \"\\\"><span style=\\\"font-size:14px\\\">dias por semana<\/span><\/span>\": \"\\\"><span style=\\\"font-size:14px\\\">d\u00edas por semana<\/span><\/span>\",\n    \"<\/div><p class=\\\"ix-hint\\\" id=\\\"pn-janela\\\">Perguntamos em vez de supor. A aritm\u00e9tica das horas fica sendo a sua.<\/p>\": \"<\/div><p class=\\\"ix-hint\\\" id=\\\"pn-janela\\\">Preguntamos en lugar de suponer. La aritm\u00e9tica de las horas es la suya.<\/p>\",\n    \"<div class=\\\"ix-fld\\\"><label for=\\\"pn-gasto\\\">Gasto mensal<\/label>\": \"<div class=\\\"ix-fld\\\"><label for=\\\"pn-gasto\\\">Gasto mensual<\/label>\",\n    \"<span class=\\\"ix-moeda\\\"><select id=\\\"pn-moeda\\\" aria-label=\\\"Moeda\\\">\": \"<span class=\\\"ix-moeda\\\"><select id=\\\"pn-moeda\\\" aria-label=\\\"Moneda\\\">\",\n    \"<p class=\\\"ix-hint\\\">Nada \u00e9 convertido: informe o valor na moeda que voc\u00ea escolher.<\/p>\": \"<p class=\\\"ix-hint\\\">Nada se convierte: indique el importe en la moneda que elija.<\/p>\",\n    \"Real brasileiro\": \"Real brasile\u00f1o\",\n    \"D\u00f3lar americano\": \"D\u00f3lar estadounidense\",\n    \"Euro\": \"Euro\",\n    \"Libra esterlina\": \"Libra esterlina\",\n    \"Peso mexicano\": \"Peso mexicano\",\n    \"Outra moeda\": \"Otra moneda\",\n    \"n\u00e3o se aplica\": \"no aplica\",\n    \"Definido pela sua dimens\u00e3o mais fraca, e n\u00e3o pela m\u00e9dia das seis. M\u00e9dia entre uma dimens\u00e3o madura e uma ausente esconde a ausente, que \u00e9 justamente a que precisa aparecer.\": \"Definido por su \u00e1rea m\u00e1s d\u00e9bil, y no por el promedio de las seis. Un promedio entre un \u00e1rea madura y una ausente esconde la ausente, que es justamente la que necesita aparecer.\",\n    \" N\u00e3o desempatamos por crit\u00e9rio pr\u00f3prio: est\u00e3o no mesmo degrau, ent\u00e3o aparecem juntas.\": \" No desempatamos con un criterio propio: est\u00e1n en el mismo escal\u00f3n, as\u00ed que aparecen juntas.\",\n    \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Rateio aparecer aqui pesa mais que as outras, porque n\u00e3o se otimiza o que n\u00e3o se sabe quanto custa. Enquanto o gasto n\u00e3o estiver separado, qualquer ganho nas outras dimens\u00f5es \u00e9 medido no escuro.<\/p>\": \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Que la asignaci\u00f3n aparezca aqu\u00ed pesa m\u00e1s que las dem\u00e1s, porque no se optimiza lo que no se sabe cu\u00e1nto cuesta. Mientras el gasto no est\u00e9 separado, cualquier ganancia en las otras \u00e1reas se mide a ciegas.<\/p>\",\n    \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Nas dimens\u00f5es em que voc\u00ea j\u00e1 est\u00e1 mais avan\u00e7ado o ganho marginal \u00e9 pequeno. O degrau mais baixo \u00e9 onde o mesmo esfor\u00e7o rende mais.<\/p>\": \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">En las \u00e1reas donde ya est\u00e1 m\u00e1s avanzado, la ganancia marginal es peque\u00f1a. El escal\u00f3n m\u00e1s bajo es donde el mismo esfuerzo rinde m\u00e1s.<\/p>\",\n    \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Seu ponto mais forte \u00e9 <b style=\\\"color:var(--ink)\\\">\": \"<p style=\\\"font-size:16px;margin:0 0 12px\\\">Su punto m\u00e1s fuerte es <b style=\\\"color:var(--ink)\\\">\",\n    \"<p style=\\\"font-size:14px;line-height:21px;margin:0\\\">N\u00e3o existe nota final aqui, e isso \u00e9 deliberado. M\u00e9dia entre uma dimens\u00e3o madura e uma ausente esconde a ausente, que \u00e9 justamente a que precisa aparecer.<\/p>\": \"<p style=\\\"font-size:14px;line-height:21px;margin:0\\\">No hay una nota final aqu\u00ed, y es deliberado. Un promedio entre un \u00e1rea madura y una ausente esconde la ausente, que es justamente la que necesita aparecer.<\/p>\",\n    \"Sobre a parte produtiva da fatura, \": \"Sobre la parte productiva de la factura, \",\n    \", dos quais \": \", de los cuales \",\n    \" ainda sem compromisso\": \" todav\u00eda sin compromiso\",\n    \" Como voc\u00ea n\u00e3o sabe quanto j\u00e1 est\u00e1 coberto, a tabela assume que nada est\u00e1, o que superestima a oportunidade.\": \" Como no sabe cu\u00e1nto ya est\u00e1 cubierto, la tabla asume que nada lo est\u00e1, lo que sobreestima la oportunidad.\",\n    \"Economia por m\u00eas, n\u00e3o publicada\": \"Ahorro por mes, no publicado\",\n    \"Economia por m\u00eas\": \"Ahorro por mes\",\n    \"Economia por m\u00eas, no teto anunciado\": \"Ahorro por mes, en el techo anunciado\",\n    \"A economia usa \": \"El ahorro usa \",\n    \" por cento, valor exato da tabela oficial do Google para compute flexible CUD de uso geral em \": \" por ciento, valor exacto de la tabla oficial de Google para compute flexible CUD de uso general en \",\n    \", j\u00e1 em pagamento mensal. N\u00e3o \u00e9 teto, \u00e9 o n\u00famero publicado.\": \", ya en pago mensual. No es un techo, es el n\u00famero publicado.\",\n    \"A economia usa 66 por cento, teto anunciado do Compute Savings Plans. \u00c9 teto, n\u00e3o resultado: o seu n\u00famero fica abaixo dele e depende de fam\u00edlia, regi\u00e3o e sistema operacional.\": \"El ahorro usa 66 por ciento, techo anunciado de Compute Savings Plans. Es techo, no resultado: su n\u00famero queda por debajo y depende de familia, regi\u00f3n y sistema operativo.\",\n    \"A economia usa 65 por cento, extremo superior da faixa oficial de 11 a 65 por cento da Microsoft. \u00c9 teto, n\u00e3o resultado.\": \"El ahorro usa 65 por ciento, extremo superior del rango oficial de 11 a 65 por ciento de Microsoft. Es techo, no resultado.\",\n    \"A AWS n\u00e3o publica o percentual de reserva de 1 ano. A coluna fica em branco em vez de receber uma m\u00e9dia inventada. O n\u00famero da sua conta est\u00e1 no AWS Cost Explorer.\": \"AWS no publica el porcentaje de reserva de 1 a\u00f1o. La columna queda en blanco en lugar de recibir un promedio inventado. El n\u00famero de su cuenta est\u00e1 en AWS Cost Explorer.\",\n    \"A Microsoft n\u00e3o publica percentual por prazo. A coluna fica em branco. O n\u00famero da sua conta sai da sua price sheet, e o Azure Advisor j\u00e1 traz recomenda\u00e7\u00e3o baseada nos seus \u00faltimos 30 dias.\": \"Microsoft no publica porcentaje por plazo. La columna queda en blanco. El n\u00famero de su cuenta sale de su price sheet, y Azure Advisor ya trae una recomendaci\u00f3n basada en sus \u00faltimos 30 d\u00edas.\",\n    \" As colunas de valor preso e de valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nos dois degraus.\": \" Las columnas de valor comprometido y de valor libre no dependen de ning\u00fan porcentaje, y son exactas en los dos plazos.\",\n    \"o seu pr\u00f3prio console\": \"su propia consola\",\n    \"Otimiza\u00e7\u00e3o de uso: n\u00e3o se aplica \u00e0 sua opera\u00e7\u00e3o\": \"Optimizaci\u00f3n de uso: no aplica a su operaci\u00f3n\",\n    \"Voc\u00ea respondeu que n\u00e3o tem ambiente fora de produ\u00e7\u00e3o na nuvem. Produ\u00e7\u00e3o n\u00e3o se desliga, ent\u00e3o o ganho de calend\u00e1rio n\u00e3o existe aqui.\": \"Usted respondi\u00f3 que no tiene entorno fuera de producci\u00f3n en la nube. Producci\u00f3n no se apaga, as\u00ed que la ganancia de calendario no existe aqu\u00ed.\",\n    \"Se em algum momento subir desenvolvimento ou homologa\u00e7\u00e3o para a nuvem, esta dimens\u00e3o passa a valer.\": \"Si en alg\u00fan momento sube desarrollo o preproducci\u00f3n a la nube, esta \u00e1rea pasa a contar.\",\n    \"O que resta em uso \u00e9 o tamanho das m\u00e1quinas, e a\u00ed o console da sua nuvem j\u00e1 ajuda.\": \"Lo que queda del lado del uso es el tama\u00f1o de las m\u00e1quinas, y ah\u00ed la consola de su nube ya ayuda.\",\n    \"Enquanto n\u00e3o houver ambiente fora de produ\u00e7\u00e3o na nuvem, esta dimens\u00e3o n\u00e3o tem degrau a subir.\": \"Mientras no haya entorno fuera de producci\u00f3n en la nube, esta \u00e1rea no tiene escal\u00f3n que subir.\",\n    \"Otimiza\u00e7\u00e3o de uso: voc\u00ea j\u00e1 resolveu o calend\u00e1rio\": \"Optimizaci\u00f3n de uso: ya resolvi\u00f3 el calendario\",\n    \"Com desligamento automatizado por agenda, n\u00e3o h\u00e1 ganho de calend\u00e1rio a capturar.\": \"Con apagado automatizado por programaci\u00f3n, no queda ganancia de calendario por capturar.\",\n    \"Isso coloca voc\u00ea acima da pr\u00e1tica comum neste ponto.\": \"Eso lo coloca por encima de la pr\u00e1ctica com\u00fan en este punto.\",\n    \"O que resta em uso \u00e9 o tamanho das m\u00e1quinas que ficam ligadas, e nenhuma calculadora estima isso sem invent\u00e1rio.\": \"Lo que queda del lado del uso es el tama\u00f1o de las m\u00e1quinas que quedan encendidas, y ninguna calculadora estima eso sin inventario.\",\n    \"Otimiza\u00e7\u00e3o de uso: horas pagas sem ningu\u00e9m usar\": \"Optimizaci\u00f3n de uso: horas pagadas sin que nadie las use\",\n    \" por m\u00eas de ambiente n\u00e3o produtivo, com a janela de \": \" por mes de entorno no productivo, con la ventana de \",\n    \" dias que voc\u00ea informou.\": \" d\u00edas que usted inform\u00f3.\",\n    \"O ambiente fica fora da janela em \": \"El entorno queda fuera de la ventana durante \",\n    \" das 168 horas da semana, ou \": \" de las 168 horas de la semana, o sea \",\n    \"No Google o ganho n\u00e3o \u00e9 os \": \"En Google la ganancia no es el \",\n    \"% da aritm\u00e9tica, e sim entre \": \"% que sugiere la aritm\u00e9tica, sino entre \",\n    \"%. Desligar reduz o uso mensal, e o Sustained Use Discount sobe por faixa: a m\u00e1quina ligada o m\u00eas inteiro recebe 20% ou 30% de desconto autom\u00e1tico, e com \": \"%. Apagar reduce el uso mensual, y el Sustained Use Discount sube por franja: una m\u00e1quina encendida todo el mes recibe 20% o 30% de descuento autom\u00e1tico, y con \",\n    \"% de uso cai para uma faixa muito menor. O extremo mais baixo \u00e9 a s\u00e9rie de m\u00e1ximo 30%, que s\u00e3o N1, M1 e M2. O mais alto \u00e9 a de m\u00e1ximo 20%, que s\u00e3o N2, N2D e C2.\": \"% de uso cae a una franja mucho menor. El extremo m\u00e1s bajo es la serie de m\u00e1ximo 30%, que son N1, M1 y M2. El m\u00e1s alto es la de m\u00e1ximo 20%, que son N2, N2D y C2.\",\n    \" n\u00e3o existe desconto autom\u00e1tico por uso sustentado, ent\u00e3o a aritm\u00e9tica vale integralmente.\": \" no existe descuento autom\u00e1tico por uso sostenido, as\u00ed que la aritm\u00e9tica vale \u00edntegramente.\",\n    \"Nenhuma das tr\u00eas nuvens recomenda hor\u00e1rio. Elas dizem que o recurso est\u00e1 ocioso e sugerem excluir ou reduzir, nunca ligar e desligar, porque nenhuma sabe quando a sua empresa trabalha.\": \"Ninguna de las tres nubes recomienda un horario. Dicen que el recurso est\u00e1 ocioso y sugieren eliminarlo o reducirlo, nunca encender y apagar, porque ninguna sabe cu\u00e1ndo trabaja su empresa.\",\n    \" Como voc\u00ea j\u00e1 desliga parte manualmente, parte deste teto j\u00e1 est\u00e1 capturada.\": \" Como ya apaga una parte manualmente, parte de este techo ya est\u00e1 capturada.\",\n    \" Como voc\u00ea j\u00e1 tem agenda autom\u00e1tica em parte dos ambientes, parte deste teto j\u00e1 est\u00e1 capturada. O que falta \u00e9 estender a agenda ao resto.\": \" Como ya tiene programaci\u00f3n autom\u00e1tica en parte de los entornos, parte de este techo ya est\u00e1 capturada. Lo que falta es extender la programaci\u00f3n al resto.\",\n    \"<b>Este \u00e9 um teto, e provavelmente bem acima do valor real.<\/b> Desligar m\u00e1quina interrompe a cobran\u00e7a de computa\u00e7\u00e3o, e s\u00f3 dela. O gasto do seu ambiente n\u00e3o produtivo tamb\u00e9m cont\u00e9m armazenamento, disco, tr\u00e1fego de rede, licen\u00e7as e servi\u00e7os gerenciados, e nada disso responde a desligamento. Como n\u00e3o sabemos a propor\u00e7\u00e3o de cada item na sua fatura, aplicamos a fra\u00e7\u00e3o de horas sobre o valor inteiro e chamamos o resultado de teto, em vez de multiplicar por um fator que seria inventado. O n\u00famero real fica abaixo, e quanto abaixo s\u00f3 a leitura da fatura diz.\": \"<b>Este es un techo, y probablemente muy por encima del valor real.<\/b> Apagar una m\u00e1quina interrumpe el cobro de c\u00f3mputo, y solo de eso. El gasto de su entorno no productivo tambi\u00e9n contiene almacenamiento, discos, tr\u00e1fico de red, licencias y servicios gestionados, y nada de eso responde al apagado. Como no sabemos la proporci\u00f3n de cada \u00edtem en su factura, aplicamos la fracci\u00f3n de horas sobre el valor entero y llamamos al resultado techo, en lugar de multiplicar por un factor que habr\u00edamos inventado. El n\u00famero real queda por debajo, y cu\u00e1nto por debajo solo lo dice la lectura de la factura.\",\n    \"Nada a estimar neste cen\u00e1rio\": \"Nada que estimar en este escenario\",\n    \"voc\u00ea respondeu que n\u00e3o tem ambiente fora de produ\u00e7\u00e3o na nuvem, e produ\u00e7\u00e3o n\u00e3o se desliga\": \"usted respondi\u00f3 que no tiene entorno fuera de producci\u00f3n en la nube, y producci\u00f3n no se apaga\",\n    \"voc\u00ea j\u00e1 automatizou o desligamento, ent\u00e3o o eixo de calend\u00e1rio j\u00e1 est\u00e1 capturado\": \"ya automatiz\u00f3 el apagado, as\u00ed que el eje de calendario ya est\u00e1 capturado\",\n    \" n\u00e3o publica percentual para reserva de 1 ano, e preferimos deixar em branco a inventar uma m\u00e9dia\": \" no publica porcentaje para reserva de 1 a\u00f1o, y preferimos dejarlo en blanco antes que inventar un promedio\",\n    \"Isso n\u00e3o \u00e9 falha da conta, \u00e9 o resultado honesto: \": \"Esto no es una falla del c\u00e1lculo, es el resultado honesto: \",\n    \"Faixa estimada nas duas dimens\u00f5es com valor\": \"Rango estimado en las dos \u00e1reas con valor\",\n    \"Estimado s\u00f3 no eixo de calend\u00e1rio\": \"Estimado solo en el eje de calendario\",\n    \"Faixa estimada no eixo de compromisso\": \"Rango estimado en el eje de compromiso\",\n    \"<div class=\\\"ix-row\\\"><span>Gasto mensal informado<\/span><b>\": \"<div class=\\\"ix-row\\\"><span>Gasto mensual informado<\/span><b>\",\n    \"<div class=\\\"ix-row\\\"><span>Preso pelo prazo, se cobrir tudo<\/span><b>\": \"<div class=\\\"ix-row\\\"><span>Comprometido por el plazo, si cubre todo<\/span><b>\",\n    \"<div class=\\\"ix-row\\\"><span>Livre para sair sem multa, nesse caso<\/span><b>\": \"<div class=\\\"ix-row\\\"><span>Libre para salir sin multa, en ese caso<\/span><b>\",\n    \"No degrau de 1 ano a \": \"En el plazo de 1 a\u00f1o, \",\n    \" n\u00e3o publica percentual, ent\u00e3o a faixa cobre apenas a dimens\u00e3o de uso. Troque o degrau na tabela abaixo.\": \" no publica porcentaje, as\u00ed que el rango cubre solo el \u00e1rea de uso. Cambie el plazo en la tabla de abajo.\",\n    \"A faixa depende da cobertura que voc\u00ea escolher na tabela abaixo. Quanto maior a economia, maior a parcela presa pelo prazo.\": \"El rango depende de la cobertura que elija en la tabla de abajo. Cuanto mayor es el ahorro, mayor es la parte comprometida por el plazo.\",\n    \"<\/div><div class=\\\"f\\\">N\u00edvel \": \"<\/div><div class=\\\"f\\\">Nivel \",\n    \"Este panorama foi constru\u00eddo sobre o que voc\u00ea respondeu em menos de dois minutos e sobre documenta\u00e7\u00e3o publicada pelos pr\u00f3prios fabricantes. Ele n\u00e3o leu a sua fatura e n\u00e3o olhou o seu invent\u00e1rio. Todos os valores s\u00e3o ordem de grandeza, e apenas duas das seis dimens\u00f5es puderam receber valor em reais.\": \"Esta evaluaci\u00f3n se construy\u00f3 sobre lo que usted respondi\u00f3 en menos de dos minutos y sobre documentaci\u00f3n publicada por los propios fabricantes. No ley\u00f3 su factura ni mir\u00f3 su inventario. Todos los valores son de orden de magnitud, y solo dos de las seis \u00e1reas pudieron recibir valor monetario.\",\n    \"As tr\u00eas coisas que este panorama declara n\u00e3o estimar, que s\u00e3o a parcela de disco, o compromisso por recurso e o superdimensionamento, s\u00e3o justamente as que costumam decidir o tamanho da oportunidade. Nenhuma sai de formul\u00e1rio: todas dependem de ler a fatura linha a linha e o invent\u00e1rio m\u00e1quina a m\u00e1quina. N\u00e3o \u00e9 mais detalhe do mesmo, \u00e9 outra fonte de dados.\": \"Las tres cosas que esta evaluaci\u00f3n declara no poder estimar, la parte de almacenamiento, el compromiso por recurso y el sobredimensionamiento, son justamente las que suelen decidir el tama\u00f1o de la oportunidad. Ninguna sale de un formulario: todas dependen de leer la factura l\u00ednea por l\u00ednea y el inventario m\u00e1quina por m\u00e1quina. No es m\u00e1s detalle de lo mismo, es otra fuente de datos.\",\n    \"E se voc\u00ea fechar esta p\u00e1gina agora sem falar com ningu\u00e9m, fa\u00e7a uma coisa s\u00f3, em \": \"Y si cierra esta p\u00e1gina ahora sin hablar con nadie, haga una sola cosa, en \",\n    \" N\u00e3o depende de n\u00f3s.\": \" No depende de nosotros.\",\n    \"Gasto informado: \": \"Gasto informado: \",\n    \"Dimens\u00e3o mais fraca: \": \"\u00c1rea m\u00e1s d\u00e9bil: \",\n    \"Panorama por dimens\u00e3o:\": \"Evaluaci\u00f3n por \u00e1rea:\",\n    \"Parte produtiva da fatura: \": \"Parte productiva de la factura: \",\n    \"J\u00e1 sob compromisso: \": \"Ya bajo compromiso: \",\n    \"Ainda sem compromisso: \": \"Todav\u00eda sin compromiso: \",\n    \"Economia com 100% de cobertura em \": \"Ahorro con 100% de cobertura en \",\n    \"Valor que ficaria preso pelo prazo nesse caso: \": \"Valor que quedar\u00eda comprometido por el plazo en ese caso: \",\n    \"Economia de compromisso: a \": \"Ahorro de compromiso: \",\n    \" n\u00e3o publica percentual para 1 ano\": \" no publica porcentaje para 1 a\u00f1o\",\n    \"Eixo de calend\u00e1rio, teto: \": \"Eje de calendario, techo: \",\n    \"Janela informada: \": \"Ventana informada: \",\n    \" horas por dia, \": \" horas por d\u00eda, \",\n    \" dias por semana\": \" d\u00edas por semana\",\n    \"Estimativa de ordem de grandeza. N\u00e3o substitui a leitura da fatura e do invent\u00e1rio.\": \"Estimaci\u00f3n de orden de magnitud. No sustituye la lectura de la factura y del inventario.\",\n    \"Economia por m\u00eas,\\nn\u00e3o publicada\": \"Ahorro por mes,\\nno publicado\",\n    \"Economia por m\u00eas,\\nno teto anunciado\": \"Ahorro por mes,\\nen el techo anunciado\",\n    \" j\u00e1 entrega de gra\u00e7a\": \" ya entrega gratis\",\n    \"Primeiro, saber quanto cada coisa custa\": \"Primero, saber cu\u00e1nto cuesta cada cosa\",\n    \"A FinOps Foundation descreve que a fase de otimiza\u00e7\u00e3o identifica oportunidades a partir da vis\u00e3o obtida na fase de visibilidade e rateio. Enquanto o gasto n\u00e3o estiver separado, qualquer ganho nas outras dimens\u00f5es \u00e9 medido no escuro.\": \"La FinOps Foundation describe que la fase de optimizaci\u00f3n identifica oportunidades a partir de la visi\u00f3n obtenida en la fase de visibilidad y asignaci\u00f3n. Mientras el gasto no est\u00e9 separado, cualquier ganancia en las otras \u00e1reas se mide a ciegas.\",\n    \"Depois, o eixo que pesa mais na sua resposta\": \"Despu\u00e9s, el eje que m\u00e1s pesa en su respuesta\",\n    \"Nas suas respostas o eixo de calend\u00e1rio vale at\u00e9 \": \"En sus respuestas el eje de calendario vale hasta \",\n    \" por m\u00eas, contra \": \" por mes, frente a \",\n    \"nada estim\u00e1vel\": \"nada estimable\",\n    \" no compromisso com cobertura total. O n\u00famero de calend\u00e1rio \u00e9 teto e o real fica abaixo dele, mas n\u00e3o prende prazo nenhum e \u00e9 revers\u00edvel quando voc\u00ea quiser.\": \" en el compromiso con cobertura total. El n\u00famero de calendario es un techo y el real queda por debajo, pero no compromete ning\u00fan plazo y es reversible cuando usted quiera.\",\n    \"Nas suas respostas o compromisso vale at\u00e9 \": \"En sus respuestas el compromiso vale hasta \",\n    \" por m\u00eas com cobertura total, contra \": \" por mes con cobertura total, frente a \",\n    \" no eixo de calend\u00e1rio. Em troca, o valor coberto fica preso pelo prazo, e as regras de sa\u00edda est\u00e3o mais adiante neste documento.\": \" en el eje de calendario. A cambio, el valor cubierto queda comprometido por el plazo, y las reglas de salida est\u00e1n m\u00e1s adelante en este documento.\",\n    \"E o que custa menos para come\u00e7ar hoje\": \"Y lo que menos cuesta para empezar hoy\",\n    \"N\u00e3o exige ferramenta nova, or\u00e7amento nem projeto. A se\u00e7\u00e3o de ferramentas deste documento lista o que a \": \"No requiere herramienta nueva, presupuesto ni proyecto. La secci\u00f3n de herramientas de este documento lista lo que \",\n    \" j\u00e1 entrega sem contratar ningu\u00e9m.\": \" ya entrega sin contratar a nadie.\",\n    \"N\u00e3o h\u00e1 cancelamento e os termos n\u00e3o podem ser alterados depois da compra. Se o uso muda, o caminho documentado \u00e9 contratar planos adicionais.\": \"No hay cancelaci\u00f3n y los t\u00e9rminos no pueden cambiarse despu\u00e9s de la compra. Si el uso cambia, el camino documentado es contratar planes adicionales.\",\n    \"N\u00e3o h\u00e1 cancelamento. Pode ser modificada e pode ser vendida no Reserved Instance Marketplace. N\u00e3o pode ser trocada.\": \"No hay cancelaci\u00f3n. Puede modificarse y puede venderse en el Reserved Instance Marketplace. No puede intercambiarse.\",\n    \"N\u00e3o h\u00e1 cancelamento. Pode ser trocada por outra Convertible com atributos diferentes. Desconto menor que a Standard.\": \"No hay cancelaci\u00f3n. Puede intercambiarse por otra Convertible con atributos distintos. El descuento es menor que el de la Standard.\",\n    \"Existe. \u00c9 calculado pelos dias restantes, em UTC, e pelo menor valor entre o pre\u00e7o de compra e o pre\u00e7o atual. O total cancelado n\u00e3o pode passar de 50 mil d\u00f3lares em janela m\u00f3vel de 12 meses.\": \"Existe. Se calcula por los d\u00edas restantes, en UTC, y por el menor valor entre el precio de compra y el precio actual. El total cancelado no puede superar los 50 mil d\u00f3lares en una ventana m\u00f3vil de 12 meses.\",\n    \"Reservations, taxa de rescis\u00e3o\": \"Reservations, tasa de rescisi\u00f3n\",\n    \"A Microsoft documenta que n\u00e3o est\u00e1 cobrando taxa hoje e que pode passar a cobrar 12 por cento. N\u00e3o h\u00e1 data anunciada.\": \"Microsoft documenta que hoy no est\u00e1 cobrando tasa y que puede pasar a cobrar un 12 por ciento. No hay fecha anunciada.\",\n    \"Sem penalidade e sem limite anual, com a regra de que a nova reserva precisa valer no m\u00ednimo o compromisso restante. Planos Red Hat, SUSE e de pr\u00e9-compra n\u00e3o s\u00e3o eleg\u00edveis.\": \"Sin penalidad y sin l\u00edmite anual, con la regla de que la nueva reserva debe valer como m\u00ednimo el compromiso restante. Los planes Red Hat, SUSE y de precompra no son elegibles.\",\n    \"N\u00e3o pode ser modificado, cancelado nem reembolsado.\": \"No puede modificarse, cancelarse ni reembolsarse.\",\n    \"N\u00e3o \u00e9 poss\u00edvel cancelar. O valor mensal acordado \u00e9 devido pela dura\u00e7\u00e3o inteira do compromisso.\": \"No es posible cancelar. El monto mensual acordado se debe durante toda la duraci\u00f3n del compromiso.\",\n    \"N\u00e3o \u00e9 poss\u00edvel cancelar. A fatura mensal cobre os recursos comprometidos independentemente de uso.\": \"No es posible cancelar. La factura mensual cubre los recursos comprometidos independientemente del uso.\",\n    \"Em troca da rigidez\": \"A cambio de la rigidez\",\n    \"O compromisso e os recursos cobertos por ele n\u00e3o s\u00e3o afetados por aumentos futuros no pre\u00e7o padr\u00e3o.\": \"El compromiso y los recursos que cubre no se ven afectados por aumentos futuros en el precio de lista.\",\n    \"O n\u00famero de <b>72 por cento<\/b> que circula no mercado \u00e9 o EC2 Instance Savings Plans, preso a uma fam\u00edlia de inst\u00e2ncia numa regi\u00e3o. O plano flex\u00edvel tem teto de 66 por cento.\": \"La cifra del <b>72 por ciento<\/b> que circula en el mercado corresponde a EC2 Instance Savings Plans, atado a una familia de instancia en una regi\u00f3n. El plan flexible tiene un techo del 66 por ciento.\",\n    \"A pr\u00f3pria AWS recomenda Savings Plans em vez de Reserved Instances, na documenta\u00e7\u00e3o do EC2.\": \"La propia AWS recomienda Savings Plans en lugar de Reserved Instances, en la documentaci\u00f3n de EC2.\",\n    \"Inst\u00e2ncia dedicada custa 2 d\u00f3lares por hora em cada regi\u00e3o onde houver ao menos uma, e essa taxa <b>n\u00e3o recebe desconto<\/b> de Savings Plans.\": \"Una instancia dedicada cuesta 2 d\u00f3lares por hora en cada regi\u00f3n donde haya al menos una, y esa tasa <b>no recibe descuento<\/b> de Savings Plans.\",\n    \"A AWS <b>n\u00e3o publica o percentual de 1 ano<\/b>. Documenta apenas que 3 anos rende mais.\": \"AWS <b>no publica el porcentaje de 1 a\u00f1o<\/b>. Solo documenta que 3 a\u00f1os rinde m\u00e1s.\",\n    \"A partir de <b>1 de fevereiro de 2027<\/b>, reservas compradas depois dessa data deixam de ser eleg\u00edveis a troca quando o servi\u00e7o for coberto por savings plans, o que inclui Virtual Machines, App Service e SQL Database.\": \"A partir del <b>1 de febrero de 2027<\/b>, las reservas compradas despu\u00e9s de esa fecha dejan de ser elegibles para intercambio cuando el servicio est\u00e9 cubierto por savings plans, lo que incluye Virtual Machines, App Service y SQL Database.\",\n    \"O percentual do savings plan <b>pode oscilar durante o pr\u00f3prio prazo<\/b>, porque \u00e9 calculado sobre o pre\u00e7o pay-as-you-go. O valor comprometido por hora n\u00e3o muda.\": \"El porcentaje del savings plan <b>puede oscilar durante el propio plazo<\/b>, porque se calcula sobre el precio pay-as-you-go. El monto comprometido por hora no cambia.\",\n    \"O savings plan para computa\u00e7\u00e3o <b>n\u00e3o cobre software, rede nem armazenamento<\/b>. Savings plan para bancos existe apenas em prazo de 1 ano.\": \"El savings plan para c\u00f3mputo <b>no cubre software, red ni almacenamiento<\/b>. El savings plan para bases de datos existe solo con plazo de 1 a\u00f1o.\",\n    \"Savings plan <b>n\u00e3o d\u00e1 garantia de capacidade<\/b>. No vencimento os recursos continuam em pay-as-you-go, com aviso 30 dias antes.\": \"El savings plan <b>no da garant\u00eda de capacidad<\/b>. Al vencimiento los recursos contin\u00faan en pay-as-you-go, con aviso 30 d\u00edas antes.\",\n    \"Desligar ambiente <b>reduz o seu Sustained Use Discount<\/b>, porque o SUD sobe por faixa de uso mensal. As duas alavancas se canibalizam em parte, e este panorama j\u00e1 considera isso.\": \"Apagar entornos <b>reduce su Sustained Use Discount<\/b>, porque el SUD sube por franja de uso mensual. Las dos palancas se canibalizan en parte, y esta evaluaci\u00f3n ya lo considera.\",\n    \"O SUD existe <b>somente em contas de faturamento self-serve<\/b>. Conta faturada por invoice n\u00e3o recebe SUD, e nesse caso o eixo de calend\u00e1rio rende mais do que o mostrado aqui.\": \"El SUD existe <b>solo en cuentas de facturaci\u00f3n self-serve<\/b>. Una cuenta facturada por invoice no recibe SUD, y en ese caso el eje de calendario rinde m\u00e1s de lo que se muestra aqu\u00ed.\",\n    \"Para s\u00e9ries otimizadas para mem\u00f3ria, o compromisso flex\u00edvel de <b>1 ano n\u00e3o d\u00e1 desconto nenhum<\/b>. S\u00f3 o de 3 anos, a 63 por cento.\": \"Para series optimizadas para memoria, el compromiso flexible de <b>1 a\u00f1o no da ning\u00fan descuento<\/b>. Solo el de 3 a\u00f1os, al 63 por ciento.\",\n    \"Os tipos de desconto s\u00e3o mutuamente exclusivos. A ordem documentada \u00e9 resource-based, depois flexible, depois on demand com SUD sobre o que sobrou.\": \"Los tipos de descuento son mutuamente excluyentes. El orden documentado es resource-based, luego flexible, luego on demand con SUD sobre lo que resta.\",\n    \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>AWS Compute Optimizer.<\/b> Redimensionamento e detec\u00e7\u00e3o de recurso ocioso em 14 categorias, de EC2 a RDS, Lambda, NAT Gateway e DynamoDB. Exige ades\u00e3o, n\u00e3o vem ligado.<\/p><p style='margin:0;font-size:16px'>Analisa <b style='color:var(--ink)'>14 dias<\/b> de CloudWatch por padr\u00e3o. Estender para 93 dias depende do recurso Enhanced infrastructure metrics, que \u00e9 pago. Mem\u00f3ria de EC2 s\u00f3 aparece com integra\u00e7\u00e3o Datadog ou Dynatrace.<\/p>\": \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>AWS Compute Optimizer.<\/b> Redimensionamiento y detecci\u00f3n de recursos ociosos en 14 categor\u00edas, de EC2 a RDS, Lambda, NAT Gateway y DynamoDB. Requiere activaci\u00f3n, no viene encendido.<\/p><p style='margin:0;font-size:16px'>Analiza <b style='color:var(--ink)'>14 d\u00edas<\/b> de CloudWatch por defecto. Extender a 93 d\u00edas depende de Enhanced infrastructure metrics, que es de pago. La memoria de EC2 solo aparece con integraci\u00f3n Datadog o Dynatrace.<\/p>\",\n    \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Azure Advisor, aba Custo.<\/b> Redimensionar ou desligar VM subutilizada, discos n\u00e3o anexados, gateways ociosos, compra de reserva e de savings plan, recomenda\u00e7\u00f5es para AKS.<\/p><p style='margin:0;font-size:16px'>Crit\u00e9rio oficial: monitora <b style='color:var(--ink)'>sete dias<\/b> e considera baixa utiliza\u00e7\u00e3o CPU de 5 por cento ou menos e rede de 7 MB ou menos por quatro dias ou mais. A regra de CPU \u00e9 configur\u00e1vel.<\/p>\": \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Azure Advisor, pesta\u00f1a Costo.<\/b> Redimensionar o apagar VM subutilizada, discos no adjuntos, gateways ociosos, compra de reserva y de savings plan, recomendaciones para AKS.<\/p><p style='margin:0;font-size:16px'>Criterio oficial: monitorea <b style='color:var(--ink)'>siete d\u00edas<\/b> y considera baja utilizaci\u00f3n una CPU del 5 por ciento o menos y red de 7 MB o menos durante cuatro d\u00edas o m\u00e1s. La regla de CPU es configurable.<\/p>\",\n    \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Google Recommender.<\/b> S\u00e3o 16 motores na categoria Custo, incluindo VM ociosa, disco persistente ocioso, IP ocioso, cluster GKE ocioso, Cloud SQL ociosa e superprovisionada, reservas ociosas e subutilizadas.<\/p><p style='margin:0;font-size:16px'>O recommender de VM ociosa \u00e9 gratuito, usa janela padr\u00e3o de <b style='color:var(--ink)'>14 dias<\/b> e roda uma vez por dia. N\u00e3o cobre inst\u00e2ncia com SSD local, com GPU, com TPU, App Engine flex, Dataflow nem GKE.<\/p>\": \"<p style='margin:0 0 12px;font-size:16px'><b style='color:var(--ink)'>Google Recommender.<\/b> Son 16 motores en la categor\u00eda Costo, incluyendo VM ociosa, disco persistente ocioso, IP ociosa, cl\u00faster GKE ocioso, Cloud SQL ociosa y sobreaprovisionada, y reservas ociosas y subutilizadas.<\/p><p style='margin:0;font-size:16px'>El recommender de VM ociosa es gratuito, usa una ventana est\u00e1ndar de <b style='color:var(--ink)'>14 d\u00edas<\/b> y se ejecuta una vez al d\u00eda. No cubre instancias con SSD local, con GPU, con TPU, App Engine flex, Dataflow ni GKE.<\/p>\",\n    \"Savings Plans, qualquer tipo\": \"Savings Plans, cualquier tipo\",\n    \"Reservations, reembolso\": \"Reservations, reembolso\",\n    \"Reservations, troca\": \"Reservations, intercambio\",\n    \"Panorama de nuvem\": \"Evaluaci\u00f3n de costo de nube\",\n    \"P\u00e1gina \": \"P\u00e1gina \",\n    \"DIAGN\u00d3STICO FINOPS\": \"DIAGN\u00d3STICO FINOPS\",\n    \"Em que n\u00edvel est\u00e1 cada frente, quanto d\u00e1 para estimar em reais e o prazo que cada desconto custa\": \"En qu\u00e9 nivel est\u00e1 cada \u00e1rea, cu\u00e1nto se puede estimar en valor y el plazo que cuesta cada descuento\",\n    \"PREPARADO PARA\": \"PREPARADO PARA\",\n    \"Nuvem avaliada\": \"Nube evaluada\",\n    \"Gasto informado\": \"Gasto informado\",\n    \" \/ m\u00eas\": \" \/ mes\",\n    \"Emitido em\": \"Emitido el\",\n    \"Documento gerado a partir das respostas fornecidas em integrity-ux.com.br\/panorama-de-nuvem e da documenta\u00e7\u00e3o publicada por AWS, Microsoft e Google. Os valores s\u00e3o estimativa de ordem de grandeza e n\u00e3o substituem a leitura da fatura e do invent\u00e1rio.\": \"Documento generado a partir de las respuestas proporcionadas en integrity-ux.com.br y de la documentaci\u00f3n publicada por AWS, Microsoft y Google. Los valores son estimaciones de orden de magnitud y no sustituyen la lectura de la factura y del inventario.\",\n    \"Consultoria de T.I. especializada em infraestrutura\": \"Consultor\u00eda de TI especializada en infraestructura\",\n    \"O panorama em seis dimens\u00f5es\": \"La evaluaci\u00f3n en seis \u00e1reas\",\n    \"Cada dimens\u00e3o corresponde a uma capacidade do framework da FinOps Foundation. A escada de quatro n\u00edveis \u00e9 Ausente, Inicial, Estabelecido e Maduro.\": \"Cada \u00e1rea corresponde a una capacidad del framework de la FinOps Foundation. La escalera de cuatro niveles es Ausente, Inicial, Establecido y Maduro.\",\n    \"Leitura do panorama\": \"Lectura de la evaluaci\u00f3n\",\n    \"Perfil geral: \": \"Perfil general: \",\n    \"Onde d\u00e1 para estimar valor\": \"D\u00f3nde se puede estimar valor\",\n    \"Estimativa de ordem de grandeza\": \"Estimaci\u00f3n de orden de magnitud\",\n    \"Duas das seis dimens\u00f5es\": \"Dos de las seis \u00e1reas\",\n    \"aceitam valor em reais\": \"aceptan valor monetario\",\n    \"A fatura \u00e9 dividida em duas. A parte n\u00e3o produtiva responde a calend\u00e1rio, porque pode ser desligada. A parte produtiva responde a compromisso, porque roda continuamente.\": \"La factura se divide en dos. La parte no productiva responde al calendario, porque puede apagarse. La parte productiva responde al compromiso, porque corre de forma continua.\",\n    \"Parte produtiva da fatura\": \"Parte productiva de la factura\",\n    \"J\u00e1 sob compromisso\": \"Ya bajo compromiso\",\n    \"Ainda sem compromisso\": \"Todav\u00eda sin compromiso\",\n    \"Eixo de compromisso, reserva de \": \"Eje de compromiso, reserva de \",\n    \"Cobertura\": \"Cobertura\",\n    \"Preso pelo prazo,\\npor m\u00eas\": \"Comprometido por el plazo,\\npor mes\",\n    \"Livre para sair\\nsem multa\": \"Libre para salir\\nsin multa\",\n    \"Eixo de calend\u00e1rio\": \"Eje de calendario\",\n    \"TETO ESTIMADO\": \"TECHO ESTIMADO\",\n    \"O que este n\u00famero n\u00e3o sabe\": \"Lo que este n\u00famero no sabe\",\n    \"O que fazer a seguir\": \"Qu\u00e9 hacer a continuaci\u00f3n\",\n    \"Por onde come\u00e7ar\": \"Por d\u00f3nde empezar\",\n    \"Ordem sugerida a partir do que voc\u00ea respondeu, e n\u00e3o um plano de projeto. A sequ\u00eancia segue o que a FinOps Foundation descreve sobre as fases: a otimiza\u00e7\u00e3o parte da vis\u00e3o obtida na etapa de visibilidade e rateio.\": \"Orden sugerido a partir de lo que usted respondi\u00f3, y no un plan de proyecto. La secuencia sigue lo que la FinOps Foundation describe sobre las fases: la optimizaci\u00f3n parte de la visi\u00f3n obtenida en la etapa de visibilidad y asignaci\u00f3n.\",\n    \"Nas seis dimens\u00f5es voc\u00ea j\u00e1 est\u00e1 acima do degrau inicial, e nos dois eixos com valor n\u00e3o h\u00e1 nada estim\u00e1vel neste cen\u00e1rio. N\u00e3o temos o que sugerir sem ler a sua fatura.\": \"En las seis \u00e1reas usted ya est\u00e1 por encima del escal\u00f3n inicial, y en los dos ejes con valor no hay nada estimable en este escenario. No tenemos qu\u00e9 sugerir sin leer su factura.\",\n    \"O degrau seguinte nas outras dimens\u00f5es\": \"El escal\u00f3n siguiente en las otras \u00e1reas\",\n    \"Hoje: \": \"Hoy: \",\n    \"O prazo de cada desconto\": \"El plazo de cada descuento\",\n    \"Fontes mais adiante neste documento\": \"Fuentes m\u00e1s adelante en este documento\",\n    \"Todo desconto de compromisso \u00e9 uma troca: pre\u00e7o menor por prazo assinado. Esta se\u00e7\u00e3o existe porque a decis\u00e3o de reservar \u00e9 mais sobre a sa\u00edda do que sobre o percentual.\": \"Todo descuento por compromiso es un intercambio: precio menor por plazo firmado. Esta secci\u00f3n existe porque la decisi\u00f3n de reservar es m\u00e1s sobre la salida que sobre el porcentaje.\",\n    \"Pontos de aten\u00e7\u00e3o espec\u00edficos da \": \"Puntos de atenci\u00f3n espec\u00edficos de \",\n    \"M\u00e9todo e fontes\": \"M\u00e9todo y fuentes\",\n    \"Estimativa de ordem de grandeza, n\u00e3o substitui leitura de fatura\": \"Estimaci\u00f3n de orden de magnitud, no sustituye la lectura de la factura\",\n    \"De onde v\u00eam os n\u00fameros\": \"De d\u00f3nde vienen los n\u00fameros\",\n    \"28% e 46%\": \"28% y 46%\",\n    \"Desconto do compromisso flex\u00edvel do Google para s\u00e9ries de uso geral, em 1 e 3 anos. Valor exato, n\u00e3o teto, e j\u00e1 em regime de pagamento mensal.\": \"Descuento del compromiso flexible de Google para series de uso general, a 1 y 3 a\u00f1os. Valor exacto, no techo, y ya en r\u00e9gimen de pago mensual.\",\n    \"Google Cloud, Committed use discounts for Compute Engine\": \"Google Cloud, Committed use discounts for Compute Engine\",\n    \"11% a 65%\": \"11% a 65%\",\n    \"Faixa oficial do savings plan para computa\u00e7\u00e3o do Azure. Os 65% correspondem a uma M64dsv2 Ubuntu em East US por 36 meses. A Microsoft n\u00e3o publica percentual por prazo.\": \"Rango oficial del savings plan para c\u00f3mputo de Azure. El 65% corresponde a una M64dsv2 Ubuntu en East US por 36 meses. Microsoft no publica porcentaje por plazo.\",\n    \"Microsoft, p\u00e1gina de Savings plans, nota de rodap\u00e9 1\": \"Microsoft, p\u00e1gina de Savings plans, nota al pie 1\",\n    \"at\u00e9 66%\": \"hasta 66%\",\n    \"Teto do Compute Savings Plans da AWS, o plano mais flex\u00edvel. A AWS n\u00e3o publica o percentual de 1 ano, apenas que 3 anos rende mais.\": \"Techo del Compute Savings Plans de AWS, el plan m\u00e1s flexible. AWS no publica el porcentaje de 1 a\u00f1o, solo que 3 a\u00f1os rinde m\u00e1s.\",\n    \"AWS, Savings Plans User Guide\": \"AWS, Savings Plans User Guide\",\n    \"Como a conta \u00e9 feita\": \"C\u00f3mo se hace el c\u00e1lculo\",\n    \"Eixo de taxa. \": \"Eje de tarifa. \",\n    \"A base sem compromisso multiplicada pela cobertura escolhida e pelo percentual do fabricante. As colunas de valor preso e valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nas tr\u00eas nuvens.\": \"La base sin compromiso multiplicada por la cobertura elegida y por el porcentaje del fabricante. Las columnas de valor comprometido y valor libre no dependen de ning\u00fan porcentaje, y son exactas en las tres nubes.\",\n    \"Eixo de calend\u00e1rio. \": \"Eje de calendario. \",\n    \"As horas fora da janela informada, sobre o gasto n\u00e3o produtivo informado. Sai como teto. No Google sai como faixa, porque desligar reduz o Sustained Use Discount, e a conta usa a tabela oficial por faixa de uso mensal.\": \"Las horas fuera de la ventana informada, sobre el gasto no productivo informado. Sale como techo. En Google sale como rango, porque apagar reduce el Sustained Use Discount, y el c\u00e1lculo usa la tabla oficial por franja de uso mensual.\",\n    \"Faixas de resposta. \": \"Rangos de respuesta. \",\n    \"Usam o ponto m\u00e9dio. A faixa de 15 a 30 l\u00ea 22,5. A faixa aberta superior usa o piso, que \u00e9 o tratamento conservador.\": \"Usan el punto medio. El rango de 15 a 30 lee 22,5. El rango abierto superior usa su piso, que es el tratamiento conservador.\",\n    \"Escada de maturidade. \": \"Escalera de madurez. \",\n    \"Quatro n\u00edveis adaptados do modelo da FinOps Foundation, que usa os est\u00e1gios Crawl, Walk e Run. Licenciado em CC BY 4.0, que permite adapta\u00e7\u00e3o com atribui\u00e7\u00e3o. Consultas \u00e0s p\u00e1ginas oficiais de AWS, Azure e Google em setembro de 2026.\": \"Cuatro niveles adaptados del modelo de madurez de la FinOps Foundation, que usa las etapas Crawl, Walk y Run. Licenciado en CC BY 4.0, que permite adaptaci\u00f3n con atribuci\u00f3n. Consultas a las p\u00e1ginas oficiales de AWS, Azure y Google en septiembre de 2026.\",\n    \"O escopo deste documento\": \"El alcance de este documento\",\n    \"PR\u00d3XIMO PASSO\": \"PR\u00d3XIMO PASO\",\n    \"Este documento n\u00e3o leu a sua fatura\": \"Este documento no ley\u00f3 su factura\",\n    \"  \u00b7  Consultoria de T.I. especializada em infraestrutura, dados e intelig\u00eancia artificial\": \"  \u00b7  Consultor\u00eda de TI especializada en infraestructura, datos e inteligencia artificial\",\n    \"Montando o seu documento...\": \"Armando su documento...\",\n    \"N\u00e3o foi poss\u00edvel montar o PDF agora. O resumo do seu panorama foi enviado por e-mail do mesmo jeito.\": \"No fue posible armar el PDF ahora. El resumen de su evaluaci\u00f3n se envi\u00f3 por correo de todos modos.\",\n    \"panorama-de-nuvem-integrity-ux\": \"evaluacion-costo-de-nube-integrity-ux\"\n  };\n\n  \/\/ Traduz as constantes uma unica vez, na carga. A logica que as consome\n  \/\/ continua igual, lendo d.q, d.op, NIVEIS, SAIDA e GRATIS como sempre leu.\n  if(IDI !== \"pt\"){\n    NIVEIS = NIVEIS.map(trad);\n    DIMS.forEach(function(d){\n      d.nome = trad(d.nome);\n      d.q    = trad(d.q);\n      d.op   = d.op.map(trad);\n      d.passo= d.passo.map(trad);\n    });\n    [\"aws\",\"azure\",\"gcp\"].forEach(function(n){\n      SAIDA[n]   = SAIDA[n].map(function(p){ return [trad(p[0]), trad(p[1])]; });\n      ALERTAS[n] = ALERTAS[n].map(trad);\n      GRATIS[n]  = trad(GRATIS[n]);\n      FERRAMENTA[n]    = trad(FERRAMENTA[n]);\n      INSTRUMENTO[n].g = trad(INSTRUMENTO[n].g);\n      INSTRUMENTO[n].r = trad(INSTRUMENTO[n].r);\n    });\n  }\n\n  var est={nuvem:null,gasto:null,prazo:1,resp:{},coberto:null,modelo:null,naoprod:null,horas:null,dias:null,moeda:MOEDA_PADRAO};\n\n  \/* Opcoes do seletor de moeda. O rotulo traz simbolo e nome, porque so o\n     codigo ISO nao diz nada para quem nao trabalha com cambio. *\/\n  function opcoesMoeda(){\n    return MOEDAS.map(function(c){\n      var s = SIMBOLO[c];\n      var rotulo = (s ? s + \" \" : \"\") + trad(MOEDA_NOME[c]);\n      return '<option value=\"' + c + '\"' + (c === est.moeda ? ' selected' : '') +\n             '>' + rotulo + '<\/option>';\n    }).join(\"\");\n  }\n  function $(id){return document.getElementById(\"pn-\"+id)}\n    \/* Simbolo da moeda que a pessoa escolheu, e agrupamento pelo idioma da\n     pagina, que e como quem le espera ver o numero. Na opcao de outra moeda sai\n     so o numero, sem simbolo, em vez de sair com um simbolo errado. *\/\n  function brl(v){\n    var sim = SIMBOLO[est.moeda] || \"\";\n    return (sim ? sim + \" \" : \"\") + Math.round(v).toLocaleString(LOCALE);\n  }\n  function nm(v){return IDI===\"en\" ? v.toFixed(1) : v.toFixed(1).replace(\".\",\",\")}   \/\/ ponto em ingles, virgula nos outros\n  function esc(s){return String(s).replace(\/&\/g,\"&amp;\").replace(\/<\/g,\"&lt;\")}\n\n  \/\/ ---- passo a passo: uma pergunta por vez ----\n  var idx = 0;\n\n  function passos(){\n    var p = [{k:'nuvem'},{k:'gasto'}];\n    p.push({k:'dim', d:DIMS[0]});\n    p.push({k:'dim', d:DIMS[1]});\n    if(est.resp.taxa !== undefined && est.resp.taxa !== 0) p.push({k:'taxa2'});\n    p.push({k:'dim', d:DIMS[2]});\n    if(est.resp.uso >= 1 && est.resp.uso <= 3) p.push({k:'uso2'});\n    p.push({k:'dim', d:DIMS[3]});\n    p.push({k:'dim', d:DIMS[4]});\n    p.push({k:'dim', d:DIMS[5]});\n    return p;\n  }\n\n  function ops(id, itens, sel){\n    return '<div class=\"ix-ops\" id=\"pn-'+id+'\">' + itens.map(function(it){\n      var m = (sel !== null && sel !== undefined && String(sel) === String(it[0])) ? 'true' : 'false';\n      return '<button type=\"button\" class=\"ix-op\" data-v=\"'+it[0]+'\" aria-pressed=\"'+m+'\">'+esc(it[1])+'<\/button>';\n    }).join('') + '<\/div>';\n  }\n\n  function aplicarNuvem(){\n    if(!est.nuvem) return;\n    $(\"saidaTitulo\").textContent = trad(\"Regras de sa\u00edda na \") + NOME[est.nuvem];\n    $(\"gratisTitulo\").textContent = trad(\"O que a \") + NOME[est.nuvem] + trad(\" j\u00e1 entrega de gra\u00e7a\");\n    $(\"gratis\").innerHTML = GRATIS[est.nuvem];\n  }\n\n  function render(){\n    var P = passos(), total = P.length;\n    if(idx > total) idx = total;\n    if(idx < 0) idx = 0;\n    var fim = idx >= total;\n    $(\"rot\").textContent = fim ? (trad('Respostas completas: ') + total + trad(' de ') + total) : (trad('Passo ') + (idx+1) + trad(' de ') + total);\n    $(\"bar\").style.width = Math.round((fim ? total : idx) \/ total * 100) + '%';\n    $(\"voltar\").hidden = (idx === 0);\n    var btnAv = $(\"avancar\");\n    btnAv.hidden = true;\n    var box = $(\"passo\");\n\n    if(fim){\n      if(completo()){\n        box.innerHTML = trad('<p class=\"ix-pq\">Pronto. O seu panorama est\u00e1 logo abaixo.<\/p>') +\n          trad('<p class=\"ix-hint\">Quer mudar alguma resposta? Use Voltar, que o resultado se refaz na hora.<\/p>');\n        $(\"aviso\").textContent = '';\n      } else {\n        box.innerHTML = trad('<p class=\"ix-pq\">Falta pouco<\/p>') +\n          trad('<p class=\"ix-hint\">Alguma resposta ficou em branco, ent\u00e3o o panorama ainda n\u00e3o pode ser montado. Use Voltar para completar.<\/p>');\n        $(\"aviso\").textContent = trad('Sem todas as respostas n\u00e3o d\u00e1 para calcular, e preferimos dizer isso a mostrar um n\u00famero inventado.');\n      }\n      calcular();\n      return;\n    }\n\n    var s = P[idx];\n    if(s.k === 'nuvem'){\n      box.innerHTML = trad('<p class=\"ix-pq\">Qual nuvem concentra a maior parte do seu gasto?<\/p>') +\n        ops('nuvem', [['aws','AWS'],['azure','Microsoft Azure'],['gcp','Google Cloud']], est.nuvem) +\n        trad('<p class=\"ix-hint\">Quem usa mais de uma responde pela de maior peso. Os mecanismos de desconto n\u00e3o se somam entre provedores, e as regras de sa\u00edda s\u00e3o diferentes em cada um.<\/p>');\n    } else if(s.k === 'gasto'){\n      box.innerHTML = trad('<p class=\"ix-pq\">Quanto voc\u00ea gasta por m\u00eas nessa nuvem?<\/p>') +\n        trad('<div class=\"ix-fld\"><label for=\"pn-gasto\">Gasto mensal<\/label>') +\n        trad('<span class=\"ix-moeda\"><select id=\"pn-moeda\" aria-label=\"Moeda\">') + opcoesMoeda() + '<\/select>' +\n        '<input id=\"pn-gasto\" type=\"number\" min=\"0\" step=\"1000\" inputmode=\"numeric\" placeholder=\"0\" value=\"'+(est.gasto||'')+'\"><\/span><\/div>' +\n        trad('<p class=\"ix-hint\">M\u00e9dia dos \u00faltimos meses. A conta trabalha com ordem de grandeza.<\/p>') +\n        trad('<p class=\"ix-hint\">Nada \u00e9 convertido: informe o valor na moeda que voc\u00ea escolher.<\/p>');\n      btnAv.hidden = false;\n    } else if(s.k === 'dim'){\n      var d = s.d;\n      box.innerHTML = '<span class=\"ix-tag\">'+d.cap+'<\/span><p class=\"ix-pq\">'+d.q+'<\/p>' +\n        ops('o_'+d.id, d.op.map(function(o,n){ return [n,o]; }), est.resp[d.id]);\n    } else if(s.k === 'taxa2'){\n      box.innerHTML = trad('<p class=\"ix-pq\">Sobre o compromisso que voc\u00ea j\u00e1 tem<\/p>') +\n        trad('<p class=\"ix-hint\" style=\"margin:0 0 6px\">Os tipos de desconto s\u00e3o mutuamente exclusivos e aplicam em ordem fixa, ent\u00e3o o modelo atual muda quanto ainda resta a ganhar.<\/p>') +\n        trad('<p class=\"ix-gh\" style=\"margin:22px 0 8px\">Quanto j\u00e1 est\u00e1 coberto<\/p>') +\n        ops('o_coberto', [['12.5',trad('At\u00e9 25%')],['37.5',trad('25% a 50%')],['62.5',trad('50% a 75%')],['75',trad('Mais de 75%')],['x',trad('N\u00e3o sei')]], est.coberto) +\n        trad('<p class=\"ix-gh\" style=\"margin:24px 0 8px\">Qual modelo<\/p>') +\n        ops('o_modelo', [['gasto',trad('Compromisso por gasto, ')+INSTRUMENTO[est.nuvem].g],['recurso',trad('Compromisso por recurso, ')+INSTRUMENTO[est.nuvem].r],['ambos',trad('Os dois')],['x',trad('N\u00e3o sei')]], est.modelo);\n      btnAv.hidden = false;\n    } else if(s.k === 'uso2'){\n      box.innerHTML = trad('<p class=\"ix-pq\">Sobre esses ambientes n\u00e3o produtivos<\/p>') +\n        trad('<p class=\"ix-gh\" style=\"margin:22px 0 8px\">Quanto do gasto est\u00e1 neles<\/p>') +\n        ops('o_naoprod', [['7.5',trad('At\u00e9 15%')],['22.5',trad('15% a 30%')],['40',trad('30% a 50%')],['50',trad('Mais de 50%')],['x',trad('N\u00e3o sei')]], est.naoprod) +\n        trad('<p class=\"ix-gh\" style=\"margin:24px 0 8px\">Janela de uso da equipe<\/p>') +\n        '<div style=\"display:flex;gap:14px;flex-wrap:wrap\">' +\n        '<span style=\"display:flex;align-items:center;gap:8px\"><input id=\"pn-horas\" type=\"number\" min=\"1\" max=\"24\" step=\"1\" inputmode=\"numeric\" placeholder=\"10\" style=\"width:90px\" value=\"'+(est.horas||'')+trad('\"><span style=\"font-size:14px\">horas por dia<\/span><\/span>') +\n        '<span style=\"display:flex;align-items:center;gap:8px\"><input id=\"pn-dias\" type=\"number\" min=\"1\" max=\"7\" step=\"1\" inputmode=\"numeric\" placeholder=\"5\" style=\"width:90px\" value=\"'+(est.dias||'')+trad('\"><span style=\"font-size:14px\">dias por semana<\/span><\/span>') +\n        trad('<\/div><p class=\"ix-hint\" id=\"pn-janela\">Perguntamos em vez de supor. A aritm\u00e9tica das horas fica sendo a sua.<\/p>');\n      btnAv.hidden = false;\n    }\n    atualizarNav();\n    calcular();\n  }\n\n  \/\/ o que ainda falta responder no passo atual. null = passo completo\n  function faltaNoPasso(s){\n    if(!s) return null;\n    if(s.k === 'nuvem')  return est.nuvem ? null : trad('Escolha uma nuvem para continuar.');\n    if(s.k === 'gasto')  return est.gasto ? null : trad('Informe o gasto mensal para continuar.');\n    if(s.k === 'dim')    return (est.resp[s.d.id] !== undefined) ? null : trad('Escolha uma das op\u00e7\u00f5es para continuar.');\n    if(s.k === 'taxa2'){\n      var f = [];\n      if(!est.coberto) f.push(trad('quanto j\u00e1 est\u00e1 coberto'));\n      if(!est.modelo)  f.push(trad('qual modelo voc\u00ea usa'));\n      return f.length ? (trad('Falta responder ') + f.join(trad(' e ')) + '.') : null;\n    }\n    if(s.k === 'uso2'){\n      var g = [];\n      if(!est.naoprod) g.push(trad('quanto do gasto est\u00e1 nesses ambientes'));\n      if(!est.horas || !est.dias) g.push(trad('a janela de uso, em horas por dia e dias por semana'));\n      return g.length ? (trad('Falta responder ') + g.join(trad(' e ')) + '.') : null;\n    }\n    return null;\n  }\n\n  function atualizarNav(){\n    var P = passos();\n    if(idx >= P.length){ $(\"aviso\").textContent = ''; return; }\n    var falta = faltaNoPasso(P[idx]);\n    var b = $(\"avancar\");\n    if(!b.hidden) b.disabled = !!falta;\n    $(\"aviso\").textContent = falta || '';\n  }\n\n  function proximo(){\n    var P = passos();\n    var falta = faltaNoPasso(P[idx]);\n    if(falta){ $(\"aviso\").textContent = falta; return; }\n    idx++; render();\n  }\n\n  $(\"passo\").addEventListener(\"click\", function(e){\n    var b = e.target.closest('.ix-op'); if(!b) return;\n    var cx = b.parentNode;\n    Array.prototype.forEach.call(cx.querySelectorAll('.ix-op'), function(o){\n      o.setAttribute('aria-pressed', o === b ? 'true' : 'false');\n    });\n    var id = (cx.id||'').replace('pn-',''), v = b.dataset.v;\n    if(id === 'nuvem'){\n      est.nuvem = v;\n      \/\/ AWS e Azure nao publicam percentual para 1 ano, entao o degrau padrao\n      \/\/ nelas e o de 3 anos. No Google os dois prazos tem valor publicado.\n      est.prazo = (v === 'gcp') ? 1 : 3;\n      Array.prototype.forEach.call($(\"termo\").querySelectorAll('button'), function(o){\n        o.setAttribute('aria-pressed', o.dataset.v === String(est.prazo) ? 'true' : 'false');\n      });\n      aplicarNuvem(); proximo(); return;\n    }\n    if(id === 'o_coberto'){ est.coberto = v; atualizarNav(); calcular(); return; }\n    if(id === 'o_modelo'){ est.modelo = v; atualizarNav(); calcular(); return; }\n    if(id === 'o_naoprod'){ est.naoprod = v; atualizarNav(); calcular(); return; }\n    if(id.indexOf('o_') === 0){\n      var dim = id.slice(2);\n      est.resp[dim] = parseInt(v,10);\n      if(dim === 'taxa' && est.resp.taxa === 0){ est.coberto = null; est.modelo = null; }\n      if(dim === 'uso' && !(est.resp.uso >= 1 && est.resp.uso <= 3)){ est.naoprod = null; est.horas = null; est.dias = null; }\n      proximo(); return;\n    }\n  });\n\n  $(\"passo\").addEventListener(\"input\", function(e){\n    var t = e.target;\n    if(t.id === 'pn-moeda'){\n      est.moeda = t.value;\n      calcular(); return;\n    }\n    if(t.id === 'pn-gasto'){\n      var g = parseFloat(t.value);\n      est.gasto = (isFinite(g) && g > 0) ? g : null;\n      atualizarNav(); calcular(); return;\n    }\n    if(t.id === 'pn-horas' || t.id === 'pn-dias'){\n      var hEl = $(\"horas\"), dEl = $(\"dias\");\n      var h = hEl ? parseInt(hEl.value,10) : NaN, d = dEl ? parseInt(dEl.value,10) : NaN;\n      est.horas = (h >= 1 && h <= 24) ? h : null;\n      est.dias  = (d >= 1 && d <= 7)  ? d : null;\n      var j = $(\"janela\");\n      if(j){\n        if(est.horas && est.dias){\n          var u = est.horas * est.dias;\n          j.textContent = u + trad(\" das 168 horas da semana em uso. \") + (168-u) + trad(\" horas fora da janela, ou seja \") + nm((168-u)\/168*100) + trad(\"% do tempo.\");\n        } else {\n          j.textContent = trad(\"Perguntamos em vez de supor. A aritm\u00e9tica das horas fica sendo a sua.\");\n        }\n      }\n      atualizarNav(); calcular(); return;\n    }\n  });\n\n  $(\"avancar\").addEventListener(\"click\", proximo);\n  $(\"voltar\").addEventListener(\"click\", function(){ idx--; render(); });\n\n  var btnRef = $(\"refazer\");\n  if(btnRef) btnRef.addEventListener(\"click\", function(){\n    est.nuvem=null; est.gasto=null; est.prazo=1; est.resp={};\n    est.coberto=null; est.modelo=null; est.naoprod=null; est.horas=null; est.dias=null;\n    idx=0; render();\n    var alvo=document.getElementById('ix-calc');\n    if(alvo) alvo.scrollIntoView({block:'start'});\n  });\n\n  $(\"termo\").addEventListener(\"click\",function(e){\n    var b=e.target.closest(\"button\"); if(!b) return;\n    Array.prototype.forEach.call(this.querySelectorAll(\"button\"),function(o){o.setAttribute(\"aria-pressed\",o===b?\"true\":\"false\")});\n    est.prazo=parseInt(b.dataset.v,10); calcular();\n  });\n\n  function custoSUD(u,f){var t=0;for(var i=0;i<4;i++){var a=i*.25,d=Math.min(u,a+.25)-a;if(d>0)t+=d*f[i]}return t}\n  function usoNA(){return est.resp.uso===0}\n  function usoAberto(){return est.resp.uso>=1&&est.resp.uso<=3}\n  function completo(){\n    if(!est.nuvem||!est.gasto) return false;\n    for(var i=0;i<DIMS.length;i++) if(est.resp[DIMS[i].id]===undefined) return false;\n    if(est.resp.taxa!==0&&(!est.coberto||!est.modelo)) return false;\n    if(usoAberto()&&(!est.naoprod||!est.horas||!est.dias)) return false;\n    return true;\n  }\n  function fCob(){if(est.resp.taxa===0)return 0;return(est.coberto===\"x\"||!est.coberto)?0:parseFloat(est.coberto)\/100}\n  function fNP(){if(!usoAberto()||est.naoprod===\"x\"||!est.naoprod)return 0;return parseFloat(est.naoprod)\/100}\n\n  function calcular(){\n    var ok=completo();\n    $(\"espera\").hidden=ok; $(\"cardRes\").hidden=!ok; $(\"resto\").hidden=!ok;\n    if(!ok) return;\n\n    var hb=\"\",menor=9,nomesMenor=[],maior=-1,nomeMaior=\"\";\n    DIMS.forEach(function(d){\n      var n=est.resp[d.id], na=(d.id===\"uso\"&&n===0);\n      var nivel=na?-1:(d.id===\"uso\"?n-1:n);\n      hb+='<div class=\"ix-dim\"><span class=\"nm\">'+d.nome+'<\/span><span class=\"nv\">'+(na?trad(\"n\u00e3o se aplica\"):NIVEIS[nivel])+'<\/span>'+\n          '<span class=\"ix-seg'+(na?\" na\":\"\")+'\">'+[0,1,2,3].map(function(k){return '<i class=\"'+(!na&&k<=nivel?\"on\":\"\")+'\"><\/i>'}).join(\"\")+'<\/span><\/div>';\n      if(!na){\n        if(nivel<menor){menor=nivel;nomesMenor=[d.nome]} else if(nivel===menor) nomesMenor.push(d.nome);\n        if(nivel>maior){maior=nivel;nomeMaior=d.nome}\n      }\n    });\n    $(\"barras\").innerHTML=hb;\n\n    var PERFIL=[trad(\"Ponto de partida\"),trad(\"Inicial\"),trad(\"Estabelecido\"),trad(\"Maduro\")].map(trad);\n    $(\"perfil\").textContent = PERFIL[menor] || trad(\"Ponto de partida\");\n    $(\"perfilReg\").textContent = trad(\"Definido pela sua dimens\u00e3o mais fraca, e n\u00e3o pela m\u00e9dia das seis. M\u00e9dia entre uma dimens\u00e3o madura e uma ausente esconde a ausente, que \u00e9 justamente a que precisa aparecer.\");\n\n    var lista=nomesMenor.length===1?nomesMenor[0]:nomesMenor.slice(0,-1).join(\", \")+trad(\" e \")+nomesMenor[nomesMenor.length-1];\n    var t='<p style=\"font-size:16px;margin:0 0 12px\"><b style=\"color:var(--ink)\">'+lista+trad('<\/b>, no n\u00edvel ')+NIVEIS[menor]+'.';\n    if(nomesMenor.length>1) t+=trad(' N\u00e3o desempatamos por crit\u00e9rio pr\u00f3prio: est\u00e3o no mesmo degrau, ent\u00e3o aparecem juntas.');\n    t+='<\/p>';\n    t+= nomesMenor.indexOf(trad(\"Rateio e visibilidade\"))!==-1\n      ? trad('<p style=\"font-size:16px;margin:0 0 12px\">Rateio aparecer aqui pesa mais que as outras, porque n\u00e3o se otimiza o que n\u00e3o se sabe quanto custa. Enquanto o gasto n\u00e3o estiver separado, qualquer ganho nas outras dimens\u00f5es \u00e9 medido no escuro.<\/p>')\n      : trad('<p style=\"font-size:16px;margin:0 0 12px\">Nas dimens\u00f5es em que voc\u00ea j\u00e1 est\u00e1 mais avan\u00e7ado o ganho marginal \u00e9 pequeno. O degrau mais baixo \u00e9 onde o mesmo esfor\u00e7o rende mais.<\/p>');\n    if(maior>=0) t+=trad('<p style=\"font-size:16px;margin:0 0 12px\">Seu ponto mais forte \u00e9 <b style=\"color:var(--ink)\">')+nomeMaior+trad('<\/b>, no n\u00edvel ')+NIVEIS[maior]+'.<\/p>';\n    t+=trad('<p style=\"font-size:14px;line-height:21px;margin:0\">N\u00e3o existe nota final aqui, e isso \u00e9 deliberado. M\u00e9dia entre uma dimens\u00e3o madura e uma ausente esconde a ausente, que \u00e9 justamente a que precisa aparecer.<\/p>');\n    $(\"limita\").innerHTML=t;\n\n    var mes=est.gasto,f=fNP(),prod=mes*(1-f),jaPreso=prod*fCob(),desc=prod-jaPreso,taxa=TAXA[est.nuvem][est.prazo];\n\n    var bt=trad(\"Sobre a parte produtiva da fatura, \")+brl(prod)+trad(\" por m\u00eas\");\n    if(fCob()>0) bt+=trad(\", dos quais \")+brl(desc)+trad(\" ainda sem compromisso\");\n    bt+=\".\";\n    if(est.coberto===\"x\") bt+=trad(\" Como voc\u00ea n\u00e3o sabe quanto j\u00e1 est\u00e1 coberto, a tabela assume que nada est\u00e1, o que superestima a oportunidade.\");\n    $(\"baseTexto\").textContent=bt;\n\n    $(\"thEconomia\").textContent = (taxa === null)\n      ? trad('Economia por m\u00eas, n\u00e3o publicada')\n      : ((est.nuvem === 'gcp') ? trad('Economia por m\u00eas') : trad('Economia por m\u00eas, no teto anunciado'));\n\n    $(\"tabela\").innerHTML=COBERTURAS.map(function(c){\n      var novo=desc*(c\/100),preso=jaPreso+novo,livre=Math.max(0,mes-preso);\n      \/\/ AWS e Azure publicam apenas teto, entao o numero vai prefixado com \"ate\".\n      \/\/ O Google publica o valor exato, e ali o numero vai sem prefixo.\n      var ehTeto = (est.nuvem !== 'gcp');\n      var cel = (taxa === null)\n        ? '<td class=\"nd\">&mdash;<\/td>'\n        : '<td class=\"v gh\">' + (ehTeto ? trad('at\u00e9 ') : '') + brl(novo*taxa) + '<\/td>';\n      return '<tr><td class=\"v\">'+c+'%<\/td>'+cel+'<td class=\"v pr\">'+brl(preso)+'<\/td><td class=\"v\">'+brl(livre)+'<\/td><\/tr>';\n    }).join(\"\");\n\n    var lt;\n    if(est.nuvem===\"gcp\") lt=trad(\"A economia usa \")+Math.round(taxa*100)+trad(\" por cento, valor exato da tabela oficial do Google para compute flexible CUD de uso geral em \")+(est.prazo===1?trad(\"1 ano\"):trad(\"3 anos\"))+trad(\", j\u00e1 em pagamento mensal. N\u00e3o \u00e9 teto, \u00e9 o n\u00famero publicado.\");\n    else if(est.prazo===3) lt=(est.nuvem===\"aws\")?trad(\"A economia usa 66 por cento, teto anunciado do Compute Savings Plans. \u00c9 teto, n\u00e3o resultado: o seu n\u00famero fica abaixo dele e depende de fam\u00edlia, regi\u00e3o e sistema operacional.\"):trad(\"A economia usa 65 por cento, extremo superior da faixa oficial de 11 a 65 por cento da Microsoft. \u00c9 teto, n\u00e3o resultado.\");\n    else lt=(est.nuvem===\"aws\")?trad(\"A AWS n\u00e3o publica o percentual de reserva de 1 ano. A coluna fica em branco em vez de receber uma m\u00e9dia inventada. O n\u00famero da sua conta est\u00e1 no AWS Cost Explorer.\"):trad(\"A Microsoft n\u00e3o publica percentual por prazo. A coluna fica em branco. O n\u00famero da sua conta sai da sua price sheet, e o Azure Advisor j\u00e1 traz recomenda\u00e7\u00e3o baseada nos seus \u00faltimos 30 dias.\");\n    $(\"legTaxa\").innerHTML=trad(\"<b>Sobre o percentual.<\/b> \")+lt+trad(\" As colunas de valor preso e de valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nos dois degraus.\");\n    var dT=DIMS[1];\n    $(\"passoTaxa\").textContent=dT.passo[est.resp.taxa].replace(trad(\"o seu pr\u00f3prio console\"),FERRAMENTA[est.nuvem]);\n\n    var npMes=mes*f,usoMin=0,usoMax=0;\n    if(usoNA()){\n      $(\"usoTitulo\").textContent=trad(\"Otimiza\u00e7\u00e3o de uso: n\u00e3o se aplica \u00e0 sua opera\u00e7\u00e3o\");\n      $(\"usoSub\").textContent=trad(\"Voc\u00ea respondeu que n\u00e3o tem ambiente fora de produ\u00e7\u00e3o na nuvem. Produ\u00e7\u00e3o n\u00e3o se desliga, ent\u00e3o o ganho de calend\u00e1rio n\u00e3o existe aqui.\");\n      $(\"usoValorLinha\").style.display=\"none\";\n      $(\"usoLeg\").innerHTML=trad(\"Se em algum momento subir desenvolvimento ou homologa\u00e7\u00e3o para a nuvem, esta dimens\u00e3o passa a valer.\");\n      $(\"usoExtra\").innerHTML=trad(\"O que resta em uso \u00e9 o tamanho das m\u00e1quinas, e a\u00ed o console da sua nuvem j\u00e1 ajuda.\");\n      $(\"usoDisco\").innerHTML=\"\";\n      $(\"passoUso\").textContent=trad(\"Enquanto n\u00e3o houver ambiente fora de produ\u00e7\u00e3o na nuvem, esta dimens\u00e3o n\u00e3o tem degrau a subir.\");\n    } else if(est.resp.uso===4){\n      $(\"usoTitulo\").textContent=trad(\"Otimiza\u00e7\u00e3o de uso: voc\u00ea j\u00e1 resolveu o calend\u00e1rio\");\n      $(\"usoSub\").textContent=trad(\"Com desligamento automatizado por agenda, n\u00e3o h\u00e1 ganho de calend\u00e1rio a capturar.\");\n      $(\"usoValorLinha\").style.display=\"none\";\n      $(\"usoLeg\").innerHTML=trad(\"Isso coloca voc\u00ea acima da pr\u00e1tica comum neste ponto.\");\n      $(\"usoExtra\").innerHTML=trad(\"O que resta em uso \u00e9 o tamanho das m\u00e1quinas que ficam ligadas, e nenhuma calculadora estima isso sem invent\u00e1rio.\");\n      $(\"usoDisco\").innerHTML=\"\";\n      $(\"passoUso\").textContent=DIMS[2].passo[3];\n    } else {\n      var usadas=est.horas*est.dias,u=Math.min(1,usadas\/168),fora=1-u;\n      $(\"usoValorLinha\").style.display=\"\";\n      $(\"usoTitulo\").textContent=trad(\"Otimiza\u00e7\u00e3o de uso: horas pagas sem ningu\u00e9m usar\");\n      $(\"usoSub\").textContent=trad(\"Sobre \")+brl(npMes)+trad(\" por m\u00eas de ambiente n\u00e3o produtivo, com a janela de \")+est.horas+trad(\" horas em \")+est.dias+trad(\" dias que voc\u00ea informou.\");\n      if(est.nuvem===\"gcp\"){\n        var a30=1-custoSUD(u,SUD.max30)\/custoSUD(1,SUD.max30), a20=1-custoSUD(u,SUD.max20)\/custoSUD(1,SUD.max20);\n        var lo=Math.min(a30,a20),hi=Math.max(a30,a20);\n        usoMin=npMes*lo; usoMax=npMes*hi;\n        $(\"usoValorLinha\").textContent=brl(usoMin)+trad(\" a \")+brl(usoMax)+trad(\" por m\u00eas\");\n        $(\"usoLeg\").innerHTML=trad(\"O ambiente fica fora da janela em \")+(168-usadas)+trad(\" das 168 horas da semana, ou \")+nm(fora*100)+trad(\"% do tempo.\");\n        $(\"usoExtra\").innerHTML=trad(\"No Google o ganho n\u00e3o \u00e9 os \")+nm(fora*100)+trad(\"% da aritm\u00e9tica, e sim entre \")+nm(lo*100)+trad(\"% e \")+nm(hi*100)+trad(\"%. Desligar reduz o uso mensal, e o Sustained Use Discount sobe por faixa: a m\u00e1quina ligada o m\u00eas inteiro recebe 20% ou 30% de desconto autom\u00e1tico, e com \")+nm(u*100)+trad(\"% de uso cai para uma faixa muito menor. O extremo mais baixo \u00e9 a s\u00e9rie de m\u00e1ximo 30%, que s\u00e3o N1, M1 e M2. O mais alto \u00e9 a de m\u00e1ximo 20%, que s\u00e3o N2, N2D e C2.\");\n      } else {\n        usoMin=usoMax=npMes*fora;\n        $(\"usoValorLinha\").textContent=brl(usoMin)+trad(\" por m\u00eas\");\n        $(\"usoLeg\").innerHTML=trad(\"O ambiente fica fora da janela em \")+(168-usadas)+trad(\" das 168 horas da semana, ou \")+nm(fora*100)+trad(\"% do tempo. Na \")+NOME[est.nuvem]+trad(\" n\u00e3o existe desconto autom\u00e1tico por uso sustentado, ent\u00e3o a aritm\u00e9tica vale integralmente.\");\n        $(\"usoExtra\").innerHTML=trad(\"Nenhuma das tr\u00eas nuvens recomenda hor\u00e1rio. Elas dizem que o recurso est\u00e1 ocioso e sugerem excluir ou reduzir, nunca ligar e desligar, porque nenhuma sabe quando a sua empresa trabalha.\");\n      }\n      if(est.resp.uso===2) $(\"usoExtra\").innerHTML+=trad(\" Como voc\u00ea j\u00e1 desliga parte manualmente, parte deste teto j\u00e1 est\u00e1 capturada.\");\n      if(est.resp.uso===3) $(\"usoExtra\").innerHTML+=trad(\" Como voc\u00ea j\u00e1 tem agenda autom\u00e1tica em parte dos ambientes, parte deste teto j\u00e1 est\u00e1 capturada. O que falta \u00e9 estender a agenda ao resto.\");\n      $(\"usoDisco\").innerHTML=trad(\"<b>Este \u00e9 um teto, e provavelmente bem acima do valor real.<\/b> Desligar m\u00e1quina interrompe a cobran\u00e7a de computa\u00e7\u00e3o, e s\u00f3 dela. O gasto do seu ambiente n\u00e3o produtivo tamb\u00e9m cont\u00e9m armazenamento, disco, tr\u00e1fego de rede, licen\u00e7as e servi\u00e7os gerenciados, e nada disso responde a desligamento. Como n\u00e3o sabemos a propor\u00e7\u00e3o de cada item na sua fatura, aplicamos a fra\u00e7\u00e3o de horas sobre o valor inteiro e chamamos o resultado de teto, em vez de multiplicar por um fator que seria inventado. O n\u00famero real fica abaixo, e quanto abaixo s\u00f3 a leitura da fatura diz.\");\n      $(\"passoUso\").textContent=DIMS[2].passo[est.resp.uso];\n    }\n\n    var tMin=(taxa===null)?0:desc*.25*taxa, tMax=(taxa===null)?0:desc*taxa;\n    \/\/ faixa so e faixa quando as pontas diferem, e o rotulo diz de onde o valor veio\n    var vMin = usoMin + tMin, vMax = usoMax + tMax;\n    var temTaxa = (taxa !== null), temUso = (usoMax > 0);\n    var rotuloValor, textoValor, semValor = false, motivo = '';\n    if(!temTaxa && !temUso){\n      semValor = true;\n      rotuloValor = trad('Nada a estimar neste cen\u00e1rio');\n      var razoes = [];\n      if(usoNA()) razoes.push(trad('voc\u00ea respondeu que n\u00e3o tem ambiente fora de produ\u00e7\u00e3o na nuvem, e produ\u00e7\u00e3o n\u00e3o se desliga'));\n      else if(est.resp.uso === 4) razoes.push(trad('voc\u00ea j\u00e1 automatizou o desligamento, ent\u00e3o o eixo de calend\u00e1rio j\u00e1 est\u00e1 capturado'));\n      if(!temTaxa) razoes.push(trad('a ') + NOME[est.nuvem] + trad(' n\u00e3o publica percentual para reserva de 1 ano, e preferimos deixar em branco a inventar uma m\u00e9dia'));\n      motivo = trad('Isso n\u00e3o \u00e9 falha da conta, \u00e9 o resultado honesto: ') + razoes.join('; ') + '.';\n    } else {\n      textoValor = (Math.round(vMin) === Math.round(vMax)) ? brl(vMin) : (brl(vMin) + trad(' a ') + brl(vMax));\n      if(temTaxa && temUso) rotuloValor = trad('Faixa estimada nas duas dimens\u00f5es com valor');\n      else if(temUso) rotuloValor = trad('Estimado s\u00f3 no eixo de calend\u00e1rio');\n      else rotuloValor = trad('Faixa estimada no eixo de compromisso');\n    }\n    $(\"resumoValor\").innerHTML =\n      '<div><p class=\"ix-k\">'+rotuloValor+'<\/p>'+\n      (semValor ? '<p class=\"ix-semvalor\">'+motivo+'<\/p>'\n                : '<p class=\"ix-v ix-g\">'+textoValor+'<\/p>')+'<\/div>'+\n      trad('<div class=\"ix-row\"><span>Gasto mensal informado<\/span><b>')+brl(mes)+'<\/b><\/div>'+\n      trad('<div class=\"ix-row\"><span>Preso pelo prazo, se cobrir tudo<\/span><b>')+brl(prod)+'<\/b><\/div>'+\n      trad('<div class=\"ix-row\"><span>Livre para sair sem multa, nesse caso<\/span><b>')+brl(Math.max(0,mes-prod))+'<\/b><\/div>';\n    $(\"refPainel\").textContent = (taxa===null)\n      ? trad(\"No degrau de 1 ano a \")+NOME[est.nuvem]+trad(\" n\u00e3o publica percentual, ent\u00e3o a faixa cobre apenas a dimens\u00e3o de uso. Troque o degrau na tabela abaixo.\")\n      : trad(\"A faixa depende da cobertura que voc\u00ea escolher na tabela abaixo. Quanto maior a economia, maior a parcela presa pelo prazo.\");\n\n    $(\"acoes\").innerHTML=DIMS.filter(function(d){return !d.dinheiro}).map(function(d){\n      var n=est.resp[d.id];\n      return '<div class=\"ix-s\"><span class=\"ix-tag\">'+d.nome+'<\/span><div class=\"d\" style=\"margin-top:12px\"><b style=\"color:var(--ink)\">'+esc(d.op[n])+'<\/b><\/div><div class=\"d\">'+esc(d.passo[n])+trad('<\/div><div class=\"f\">N\u00edvel ')+NIVEIS[n]+'<\/div><\/div>';\n    }).join(\"\");\n\n    $(\"saida\").innerHTML=SAIDA[est.nuvem].map(function(l){return \"<div><dt>\"+l[0]+\"<\/dt><dd>\"+l[1]+\"<\/dd><\/div>\"}).join(\"\");\n    $(\"alertas\").innerHTML=ALERTAS[est.nuvem].map(function(a){return \"<li>\"+a+\"<\/li>\"}).join(\"\");\n\n    var dF=DIMS.filter(function(d){return d.nome===nomesMenor[0]})[0];\n    var aF=dF?dF.passo[est.resp[dF.id]]:\"\";\n    if(dF&&dF.id===\"taxa\") aF=aF.replace(trad(\"o seu pr\u00f3prio console\"),FERRAMENTA[est.nuvem]);\n    $(\"fecho1\").textContent=trad(\"Este panorama foi constru\u00eddo sobre o que voc\u00ea respondeu em menos de dois minutos e sobre documenta\u00e7\u00e3o publicada pelos pr\u00f3prios fabricantes. Ele n\u00e3o leu a sua fatura e n\u00e3o olhou o seu invent\u00e1rio. Todos os valores s\u00e3o ordem de grandeza, e apenas duas das seis dimens\u00f5es puderam receber valor em reais.\");\n    $(\"fecho2\").textContent=trad(\"As tr\u00eas coisas que este panorama declara n\u00e3o estimar, que s\u00e3o a parcela de disco, o compromisso por recurso e o superdimensionamento, s\u00e3o justamente as que costumam decidir o tamanho da oportunidade. Nenhuma sai de formul\u00e1rio: todas dependem de ler a fatura linha a linha e o invent\u00e1rio m\u00e1quina a m\u00e1quina. N\u00e3o \u00e9 mais detalhe do mesmo, \u00e9 outra fonte de dados.\");\n    $(\"fecho3\").textContent = aF ? (trad(\"E se voc\u00ea fechar esta p\u00e1gina agora sem falar com ningu\u00e9m, fa\u00e7a uma coisa s\u00f3, em \")+dF.nome.toLowerCase()+\": \"+aF+trad(\" N\u00e3o depende de n\u00f3s.\")) : \"\";\n\n    \/\/ resumo que vai junto com o lead e no e-mail enviado ao visitante\n    var campo = document.querySelector('#diagnostico [name=\"form_fields[panorama]\"]');\n    if(campo){\n      var L = [];\n      L.push(trad('Nuvem: ') + NOME[est.nuvem]);\n      L.push(trad('Gasto informado: ') + brl(mes) + trad(' por m\u00eas'));\n      L.push(trad('Perfil: ') + (PERFIL[menor] || trad('Ponto de partida')));\n      L.push(trad('Dimens\u00e3o mais fraca: ') + lista);\n      L.push('');\n      L.push(trad('Panorama por dimens\u00e3o:'));\n      DIMS.forEach(function(d){\n        var n = est.resp[d.id];\n        var na = (d.id === 'uso' && n === 0);\n        L.push('  ' + d.nome + ': ' + (na ? trad('n\u00e3o se aplica') : NIVEIS[d.id === 'uso' ? n-1 : n]));\n      });\n      L.push('');\n      L.push(trad('Parte produtiva da fatura: ') + brl(prod) + trad(' por m\u00eas'));\n      if(fCob() > 0) L.push(trad('J\u00e1 sob compromisso: ') + brl(jaPreso) + trad(' por m\u00eas'));\n      L.push(trad('Ainda sem compromisso: ') + brl(desc) + trad(' por m\u00eas'));\n      if(taxa !== null){\n        L.push(trad('Economia com 100% de cobertura em ') + (est.prazo === 1 ? trad('1 ano') : trad('3 anos')) + ': ' + brl(desc*taxa) + trad(' por m\u00eas'));\n        L.push(trad('Valor que ficaria preso pelo prazo nesse caso: ') + brl(prod) + trad(' por m\u00eas'));\n      } else {\n        L.push(trad('Economia de compromisso: a ') + NOME[est.nuvem] + trad(' n\u00e3o publica percentual para 1 ano'));\n      }\n      if(usoMax > 0){\n        L.push(trad('Eixo de calend\u00e1rio, teto: ') + (usoMin === usoMax ? brl(usoMin) : brl(usoMin) + trad(' a ') + brl(usoMax)) + trad(' por m\u00eas'));\n        L.push(trad('Janela informada: ') + est.horas + trad(' horas por dia, ') + est.dias + trad(' dias por semana'));\n      }\n      L.push('');\n      L.push(trad('Estimativa de ordem de grandeza. N\u00e3o substitui a leitura da fatura e do invent\u00e1rio.'));\n      campo.value = L.join('\\n');\n    }\n\n    \/\/ Instantaneo do resultado. O gerador de PDF le daqui e nao recalcula nada,\n    \/\/ para o documento nunca divergir do que esta na tela.\n    PN = {\n      nuvem: est.nuvem, nomeNuvem: NOME[est.nuvem], prazo: est.prazo,\n      mes: mes, prod: prod, jaPreso: jaPreso, desc: desc, taxa: taxa,\n      perfil: PERFIL[menor] || trad(\"Ponto de partida\"),\n      lista: lista, nomeMaior: nomeMaior,\n      rotuloMenor: NIVEIS[menor] || trad(\"Ausente\"),\n      rotuloMaior: (maior >= 0) ? NIVEIS[maior] : \"\",\n      niveis: DIMS.map(function(d){\n        var n = est.resp[d.id], na = (d.id === \"uso\" && n === 0);\n        var nivel = na ? -1 : (d.id === \"uso\" ? n-1 : n);\n        return {id:d.id, nome:d.nome, cap:d.cap, na:na, nivel:nivel,\n                rotulo: na ? trad(\"n\u00e3o se aplica\") : NIVEIS[nivel],\n                resposta: d.op[n], passo: d.passo[n], dinheiro: !!d.dinheiro};\n      }),\n      linhas: COBERTURAS.map(function(c){\n        var novo = desc*(c\/100), preso = jaPreso+novo;\n        return {c:c, economia:(taxa===null)?null:novo*taxa, preso:preso, livre:Math.max(0,mes-preso)};\n      }),\n      cabecalhoEconomia: (taxa === null) ? trad(\"Economia por m\u00eas,\\nn\u00e3o publicada\")\n        : ((est.nuvem === \"gcp\") ? trad(\"Economia por m\u00eas\") : trad(\"Economia por m\u00eas,\\nno teto anunciado\")),\n      notaTaxa: trad(\"Sobre o percentual. \") + lt + trad(\" As colunas de valor preso e de valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nos dois degraus.\"),\n      notaPainel: $(\"refPainel\").textContent,\n      temTaxa: temTaxa, temUso: temUso, semValor: semValor,\n      rotuloValor: rotuloValor, textoValor: textoValor, motivo: motivo,\n      \/\/ Blocos lidos direto da tela, para o documento nao ficar menor que ela.\n      baseTexto: $(\"baseTexto\").textContent,\n      perfilReg: $(\"perfilReg\").textContent,\n      limita: Array.prototype.map.call($(\"limita\").querySelectorAll(\"p\"), function(x){ return x.textContent; }),\n      passoTaxa: $(\"passoTaxa\").textContent,\n      usoTitulo: $(\"usoTitulo\").textContent,\n      usoSub: $(\"usoSub\").textContent,\n      usoValor: (usoMax > 0) ? $(\"usoValorLinha\").textContent : \"\",\n      usoLeg: $(\"usoLeg\").textContent,\n      usoExtra: $(\"usoExtra\").textContent,\n      notaUso: $(\"usoDisco\").textContent,\n      passoUso: $(\"passoUso\").textContent,\n      fecho1: $(\"fecho1\").textContent,\n      fecho2: $(\"fecho2\").textContent,\n      fecho3: $(\"fecho3\").textContent,\n      saida: SAIDA[est.nuvem],\n      alertas: ALERTAS[est.nuvem].map(function(a){ return a.replace(\/<[^>]*>\/g,\"\"); }),\n      gratisTitulo: trad(\"O que a \") + NOME[est.nuvem] + trad(\" j\u00e1 entrega de gra\u00e7a\"),\n      gratis: GRATIS[est.nuvem].split(\"<\/p>\").map(function(t){\n        return t.replace(\/<[^>]*>\/g,\" \").replace(\/[ \\t]+\/g,\" \").trim();\n      }).filter(function(t){ return t; })\n    };\n    \/\/ \"Por onde comecar\": ordem sugerida a partir das respostas.\n    \/\/ O fundamento da ordem e a propria FinOps Foundation, que descreve a fase\n    \/\/ Optimize identificando oportunidades a partir da visao obtida na fase\n    \/\/ Inform, de visibilidade e rateio. Nao e ordem de opiniao nossa.\n    (function(){\n      var dim={}; DIMS.forEach(function(d){ dim[d.id]=d; });\n      function nv(id){ var n=est.resp[id]; return (id===\"uso\") ? ((n===0)?-1:n-1) : n; }\n      var passos=[];\n\n      \/\/ 1. a base, e so aparece se estiver faltando\n      if(nv(\"rateio\") <= 1){\n        passos.push({\n          id:\"rateio\",\n          titulo:trad(\"Primeiro, saber quanto cada coisa custa\"),\n          dim:trad(\"Rateio e visibilidade\"),\n          acao: dim.rateio.passo[est.resp.rateio],\n          porque:trad(\"A FinOps Foundation descreve que a fase de otimiza\u00e7\u00e3o identifica oportunidades a partir da vis\u00e3o obtida na fase de visibilidade e rateio. Enquanto o gasto n\u00e3o estiver separado, qualquer ganho nas outras dimens\u00f5es \u00e9 medido no escuro.\")\n        });\n      }\n\n      \/\/ 2. o eixo que pesa mais nos numeros que ele mesmo gerou\n      var vTaxa=(taxa===null)?0:desc*taxa, vUso=usoMax;\n      if(vTaxa>0 || vUso>0){\n        var porUso = (vUso >= vTaxa);\n        passos.push({\n          id: porUso ? \"uso\" : \"taxa\",\n          titulo:trad(\"Depois, o eixo que pesa mais na sua resposta\"),\n          dim: porUso ? trad(\"Otimiza\u00e7\u00e3o de uso\") : trad(\"Otimiza\u00e7\u00e3o de taxa\"),\n          acao: porUso ? $(\"passoUso\").textContent : $(\"passoTaxa\").textContent,\n          porque: porUso\n            ? (trad(\"Nas suas respostas o eixo de calend\u00e1rio vale at\u00e9 \") + brl(vUso) + trad(\" por m\u00eas, contra \") +\n               (vTaxa>0 ? brl(vTaxa) : trad(\"nada estim\u00e1vel\")) + trad(\" no compromisso com cobertura total. O n\u00famero de calend\u00e1rio \u00e9 teto e o real fica abaixo dele, mas n\u00e3o prende prazo nenhum e \u00e9 revers\u00edvel quando voc\u00ea quiser.\"))\n            : (trad(\"Nas suas respostas o compromisso vale at\u00e9 \") + brl(vTaxa) + trad(\" por m\u00eas com cobertura total, contra \") +\n               (vUso>0 ? brl(vUso) : trad(\"nada estim\u00e1vel\")) + trad(\" no eixo de calend\u00e1rio. Em troca, o valor coberto fica preso pelo prazo, e as regras de sa\u00edda est\u00e3o mais adiante neste documento.\"))\n        });\n      }\n\n      \/\/ 3. o que custa menos para comecar hoje\n      var baratos=[\"anomalias\",\"resp\",\"previsao\"].filter(function(id){ return nv(id) <= 1; });\n      if(baratos.length){\n        baratos.sort(function(a,b){ return nv(a)-nv(b); });\n        var id=baratos[0];\n        passos.push({\n          id: id,\n          titulo:trad(\"E o que custa menos para come\u00e7ar hoje\"),\n          dim: dim[id].nome,\n          acao: dim[id].passo[est.resp[id]],\n          porque:trad(\"N\u00e3o exige ferramenta nova, or\u00e7amento nem projeto. A se\u00e7\u00e3o de ferramentas deste documento lista o que a \") + NOME[est.nuvem] + trad(\" j\u00e1 entrega sem contratar ningu\u00e9m.\")\n        });\n      }\n\n      PN.comecar = passos;\n      PN.comecarVazio = (passos.length === 0);\n    })();\n\n    \/\/ As bibliotecas do PDF comecam a baixar assim que o panorama fica pronto,\n    \/\/ e nao quando a pessoa rola ate o formulario: rolagem nao e garantida, e\n    \/\/ sem elas prontas o documento nao consegue seguir anexado no envio.\n    if(typeof preparar === \"function\") preparar().catch(function(){});\n\n  }\n\n\n  \/\/ ======================================================================\n  \/\/ Gerador do PDF do panorama.\n  \/\/ Roda inteiro no navegador do visitante. Nada de servidor, nada de plugin.\n  \/\/ As bibliotecas e a fonte sao buscadas so quando a pessoa pede o documento,\n  \/\/ para nao pesar no carregamento da pagina.\n  \/\/ ======================================================================\n\n  var PN = null;            \/\/ instantaneo do resultado, preenchido por calcular()\n  var DESTINO = null;       \/\/ nome, empresa e cargo, capturados no envio do formulario\n  var LIBS = null;          \/\/ promessa das bibliotecas, resolvida uma vez so\n  var PRONTO = false;       \/\/ bibliotecas e fonte ja em memoria\n  var ARQUIVO = null;       \/\/ o PDF montado, aguardando o envio do formulario\n  var FONTE = null;         \/\/ base64 das duas variacoes da Montserrat\n  \/\/ Logotipo da capa, em PNG embutido no proprio codigo.\n  \/\/ Derivado de 2026\/09\/logo-integrity-ux-hd.png pintando o canal alfa de branco,\n  \/\/ porque a versao branca da biblioteca so tem 205px e sairia macia na impressao.\n  \/\/ Embutido de proposito: nao depende de rede nem de permissao de origem cruzada.\n  var LOGO_PNG=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjoAAADqCAQAAAAB4CdNAABC10lEQVR42u29e5Ac1Z3v+TmdGfuPIyjahI3c2LgE2g57WAI1IGwhQQtNM6zBGqTFPMTDgYXAkhlmAcFYvoC804gFLkK2L8bSgJAJDJbA1pW4MprwIJCEeNjTQMvB2NfRejWM1RZ2oFYRwcbGRmaf\/eOcysqsymdVVndV9\/llOIy6Mk+ePHnON3\/n9\/j+hMSIkZYXgYWj\/+uLFPkKZzPT9\/s+4F1+yyAlAGxcZFN6ge4HQIFOZnAqReAz+m9\/BYb5gAP8yTtTYDWlP+36Ms1IGGkTwLGZy1dYQnfMuUPs413WUwIE5LjQK7AHReYzi7OYxqlYEeePcpzf8R6vcYBhAz0GdIy0j9g4QJGrE+AmKC+wjt25aTxlwBH8LRfSx3k+qJGMhVxhBeDnj+xkK4NN1MEM6BgxkpN2AZICy3iojqsrwOM03AcosoQ+Zuu\/uvr\/OxAR11XAyNL\/\/g0b2ELJAI8BHSOtreN8N5OGUws8t1CqG3bKGk4Pq1iA5UFJNNREw4+ltZ7neZjhqQ08BnSMtC7kFHmYqxpsZ4hvs7uuJW57gLPQ026suvtRgR4\/8DgGdIwYaR3Imce\/NKDj+GUlD2c0K6uzi3yXZRowsmk3cdCjgOfHPEppauo7BnSMtCbkfLcuO070Nus63NSwozSQJayh04OJ\/KTc4mFuYScgphrsdJgZbmTSQw5cxXNYWoNJt7HbylN04urYnLxDACQu03mZdRSQ2EbTMWJkckFORdshYTujtlVKx3Fz2lJFibIRHeYKBqeWdceAjpHWs+XsalLrL3B17PJWG51+7gPc3DWccOCxcLmFjVPJumP9X2aiG2mduJwxijqIrhlyBv8ve7FDw\/kU5Nhs4du4iHEyPHTgYnE5Fq8gmqpXGU3HiJGIzKbf5+SxipKL2B2q7QgkBf6V2eOk41BlWF7P8pwTNzCGZCNGErRuHFY0GXLgX7BDDMoTBznlnKxlbEWmNHWb7ZURI+RlzXm26fc5if+nZoslYMIgp7LN+hum8Svsya\/rmO2VkVbZXEmebzj+OJ1M533fRkZt616bQMgJbrImvSfLbK+MtIaeI5k3TpADDyM9eBGAw2MTDDmVTVY\/zmSP2zGajpGppucoXWdYO8htHPq5b4Ihx6\/tXMzOya3tGE3HSGtAzrxxhBy4Gn\/y5pktROUBL1DEncwGZQM6RmgBvxV8ZVzvuATbt7C3t9BIuHTyc8CavLBjQMfIxH\/fHWyWjOs9u5mr7Tou8CouVot4jSxcZvPPOC2w3TOgY2QS6zlzmx6fUy1f8ewogvf5d4iIU56INSn5L5N5i2VAx0gryFfG\/Y5LPNJRC8nvWiwZxOIHPg+bAR0jRnKXs8f9jt0UkJ4uMdBiup\/LQvomq\/PcgI6RVrDozJyAO\/f4PFgftODIPBEwdhvQMWIkFkhsffj\/K1o+P+4WHf+WzgU+arHNjIXLdL45ObdYBnSM5A03AomjD\/9\/iVDosYDihPd7lOO0Xob3Umyv2A2TKfzciJE8a2Cq0nhFejjf++VNBhmkpOt0Oi1oRxql9Xx6LrOZNxmjkw3oGMkvqtihwBLOZz6fDvz2DeAYr\/I4r+O0JGvMJxynM3cK9sblVnZOPl3HbK+M5JWwaXMHh1jLN6ogR8mn+Qa7eIM7kDVU5F8xAxgRr7OAos\/HZkDHiJEAF84brA2FG7+cx1p+QdHnDHYRrGfIDGJEvM6Shkr8GdAxMmkh5w52cV7K87\/BO8zzYEdiUeLbE\/wMn2rZ1dCHmGwbLAM6RvKAnLWZrvk0u3yw42Czm5Xj3vN3A\/86kVZMEJGcxxcn2wbLgI6R8YYcJX7YmfgtVicntOT4jmExf7JtsAzoGGnUlrO2zqu3eEmNaou1cZx7\/1tfpNAMrJaN\/l2A8V4ZMQKAwKXAlrqv\/zSPeN9wF8Gj46zrDHspn3BqC4\/zWdg60MCAjhGmOiWFZEOiv4pYk\/LteoslsXDGVdcZ4k++eKFZLUz7UWwZZkMDOkYmXM8p8o0GW7mXgt7WuMDz49j\/fT6LEpzVsuPsIgKpqQZ0jExpPeeRhlv5NEt0UqNEMDyOG6x1gTJ7X2rptVA0mo4RIwKHAvNzaOl8H5kW47bBGmJQ39dCMIvOliaRMNsrI0awgJ6G7Dl4dh1\/oP9vx21zVfJqaUquaPHRPtln8jagY2QKS09O7SzSIOaiPErju7lyKHBJi4\/0NMRkChA0oGOEusyb+KgrGt9gleVP42LVeYHdCBxvczW9JUrtRa\/QE1s0dNGAjhHGk8bCzsWiQ6C+pRgn5ph1Pm+Q5FbzQg3oGGkH+VRuLZ0asFjsGxc9x9aEYi49LGx5UtAT6DSgY8RI3lrO+Ml3fXnbkltonYpXRtMxYmQSykqGdTVPpecsQ5pVYEDHCG1g1fkkt7Y+AO2Zsaj4lZq1tXrYxzksWQWMtbxf6GMDOkbMZggcDpBv3A84iKYy6wxxnVdfwcahj4Ut7LeipYnjDegYYfyDA\/MqUPcmQbqMh3mhSZBzCQ4u0suQf6INRnoMOJ6jXmlAx0gby5s5tTMY0KFcbK5pAuwMcQnDXhSyheShlo7P8ctRHETLVdAwoGOE8c593sqxHFo6xusBl7nEBa7OGXbKkON4W6slLGsTyIEPTZa5ESMSGOYcftlwS6txPP2j0rbg6hxtOy9wXhXk9PBUG3mt3sMYko0wtTxVwqtHLgLxw8NcyZ05bK7cEEizeZiLckmKWMnVlLxoZ4FDkVdoB68VPo5DAzpGpgzcCKRXkVwi9d\/KsGPzg4Zg55fsrtJzyrCjakSc1+A2a4iLeFg\/Bdo1X+RVOttma9VRZfWaDNNKmqVlhEjadYACPTqjfJBh\/dW1Pb3BqrseBBzjND6OiUdWd5nHcq6qC3A28ihOoBa42lq92zaQIxGMMp3SZDIkG9AxEpfUeRvXVPEHD7CZxwLeFBuHX9RFXHonPwhAQlgvrLqAZ4iNrKfkg0f\/Uw21jd\/KxWIbiyYT5BjQMRINOfN4OIKwfIDvekmTChjgw8yUXr\/kygTIKYOaiq0pcjVL6E6Em32s43UvoVOGaE9b2yYo0MXiflalGicDOkbaHHLu4NHYc1bwA12zqlz\/alcdkOOm\/IJXzixyNWcDMwPwMwTs411+q+GGyLaVu\/ypNgEdieBsBg3oGDGQU4Ydvxs6yxbrl3qzJDP1ywpYZz7lET6M8kngF2LATCApcgCrDbj4XCwO050amjHeKyO0pflYMi8F5MCj3OGVcQHB46S35VxZB6GFxAHtvhc4lBjWRwnH59ZXfrY43WGY7bQLocWzOJOrqLDRdIxU6wFwQob0wtN43wvns9iUQtf5JY+z29uYNdbT+hh52meDVd5chZuRRVW6LFURT9JoOkZok2pWSzKc\/4hvarss5k7+PRZwLuJKHZkjG16QwSMbv\/MWRjWrTmunmrwVgJxKmKat46ekL4qqHElVPvznCqPpGGllN\/n\/l+mazpoYknn0cD7zQfuzjgGv8iaD7NbfZ9kCEUjrWj73ysXiJjb6vISy6imUVauTgve3EooGY5SPq84WXsUNaUDHSKs5yl\/NdI3fnOw39dp8ih5g2LcAgqbgiX3OIgfoCNmmtZYRuccLnlSVSE\/jf+MUTqeLz9KFqohlhWhyHwIj\/IURDvIbShyiVGVon0Dwsc1KM+LbXDmZq1mdzw9qTL0WLg4ldtd4lJwWsZXYDLO95aN1VlPyKOQdVnIbXTFbxjL8WECX\/l9ZRhhhH6\/xHz74iffyGU3HyLhpAL\/IWO9ygK+EGjrFhBGvpzVDz+RdrUO0up6jzPt\/oKsqNdZKsFyFnTfCPvbya97zgh3GHXqMIdlIcHKemps2UZ+Zd7x0HYtB1iNa2HG+mpI2dltIltOFixU44t9l8DwXFxfo4lIe5F3e50nmUdDmZ3s8oddoOkaCBtbfRqQ+ZNV02iE44Iu8S2cLBgm6WLzFhdryIgCL9zXo5FGbtaL7jLCD5xik5G2LpdF0jIy3fFA3rTptRkNmMcxdtF6QoFr2t+L49Jy7coIcPN1HaT5dLGUXf+BJepDjpfMY0DFCQ8zHm2lfylWbn\/IWVg2JGBNMxW6x3su3UhTytzVhK10Bny6W8i4vcQP2eACPAR0jQdU7K2FUGPNfu+g6LpJrGaWjhbaHyoS80iuV47fn0BQ7nqWtPZfyDG+xkkKzgcfYdIxUWzp+k8GqM8Cc1gg4o34rViulRChv2tk+PUeOG+mYqzfKIzzGuhAuIqPpGKFZaRCbM22unJZPJ4gTB5uNrG+ZLdYYgpt8VBYWsHrc3r2lN1sP8get8YhmRPIZTcdI\/bpOu+s5lfSA15jdAtqOi8V6lgcIQ1by4Lj3zNUaz0p+FsNMZEDHSK6u5EOpzp3P7klApKkSDAYnnMJUUZP+H57jWm2tBiaoT2os3uZudue90TLbKyNhFa3mp4QcexLQS0kEJeZzeEI3WSo250YvPlhgYfPEhPVJbbXOZRdPUsDJ07BsQMdI2Ld\/N\/MZSKHlOJMEaG2GJxR2FOR8jZK3WbVwWMe5E6h9WXo0lvIHbtAeLQM6Rpq0BCU2u5nDiogzttA5KTZWBAzKEwc7Fcgpj6my5iydcDuTiuTp4pk89R1j0zESbemAAksCRWgG2MxWhpvnTmVi3edFfs5sXDrGLTVCMobFNq70lfUpE923iiNfOdNHuC4XzkcDOkZiTcrSRxdVoT8Xbe6xioOdAk+zUEPBeJlr72eVj6RLQc7OFksuUT39Hg8jG\/3gGNAxkuRQ9jtMxy0pcEL1u37u85ZZs3WcUe5iYwDgHXr4VRNjkBvTd3ZwK8ONwY4BHSNZSNDlFNHv+niC6U3VdxSkvMW1gSXcupBT6bXaZjUAO8aQbCQLN85UMaPvpIf1Wq9zm7B0XSxGuZ85NZAzr4UhRznSu9jFDY0YlY2mY8QIodYd6KOf2b6spDwznLZxB8O+bZXij76BZ8ZhY5ePdeehem17RtMxYoQQF7rAZifncxOHvawk2XBWu4p+eYuLWcSwrxSPjcRhZRtATtmN\/iBP1lsl1Wg6RozE23dsvslSZnt6SnZ3up+tbxuPszPgAVQ6ToE1LRCXk03f2cHlPke\/AR0jRnLcaEEft9Krq6e73j5BJHin\/Gcd5tc8wWBNqR4HmMcjExp9XD\/sXFtT98yAjhEjOYQNKIgoMp8FHvSQQF9WAZDD\/JotDHhMxE6gZZu7eLANtlXhsPM2fVlhx4COESNpK8QpsCgwiwvpYxrFWE3H5QN+x3u8puEmSBJRBh+l47Qj5NQNOwZ0jBipL1SywGmcxKkU+QzTfGcd5a8M8wEH+JNvE0UI4BS5h6VtCzhB204GXiUDOkaM1EP7lc6XZeuFKWtgq8g9fEu3ZNHezNoWO\/h6+lh1AzpGjNTv27JCInD8\/5ZVUKU0nx6+M0kApwI7G7g5LcegAR0jRsYDmsr2oL\/nGi71BdkxSeqIWHyPh9IlRxjQMWIkn8y0YKCcVbWxKtDDdVxK16QDnArsfJOfpYEdAzpGjDSelx4tBU7jEi5gpgc3TDrAqcDo2b5KFgZ0jBhpGqk7fOJjNv4UnXRS4Kuczky6NNhMXrgJZqD\/DR8n+bEM6Bgx0sjG6gR2algZAf1fJ1eBy2SHm6Af67Ikg7IBHSNGGolUfkmbhcPzraYG2GQ0KBvQMWKEurOyyqXw3ND0h6koLhYXxZN8GdAxYqReyBmvKuPtaNn5JHqLZfh0jBipz5pj84QZCMK5BdfgRIOxAR0jRupZWg53tR0ZxfjBzlLm4UQV5zPbKyNG6nGUm61V0hbri1EZakbTMWKkHsJOs7VK2mLdFbXFMpqOESNkNiHfwDNGz0mkaJ3B+4QEChpNx4iRbFsrlwIPmYFIoe88jgwDZgM6RoxkW0qS5S1cmaqVtliXhpuTzfbKiJFsrvIvcsAATmoq0\/NqN1hG0zFiJJuec09VBLKRaF3nXK5HVus6RtMxYiSrnoPRdDLoOrOr+ZONpmPESFY9x0gWXWdxtTnZaDpGjBh7TvN1HemPORCpqjAbMWK+246251gpiggnhxemL0icpi03Q2BjXndObk3pOnODWeftrukIA4y0W2id25bvSxF2\/cHjATSSjdjLR+tqRyVlBcRpU35aI633xhzaV89JF5\/zdorWulKC1wgjKdt6O+Vz9KTSddLcN91zWMCl9Pi5k4U8lNjwUb6WvUj6OIWj93ErcDIb2Jiu\/IWRCWba66ePD4EbW3JOxff+rcS88jKFVZI8ydIU2zRVXyFJVvIg8L2UUdJl2rHGnwEKqTS\/SlUsp7xwT01EvhNbmETpBV3MfqdZ022hK6xjmf5Xp67v3T75VnNTU1mI2EiebFE+6dpyeZBfsy9F22u4LVZfU9uh3d42OO5trkml+Sldp1D5yHTwMRI35oDjLToJirxCp+6jkXZYtv0s07NqtA2f4O7UZ0pARh7Z7Fnp21qdcK5EYuGwMvGe9yISWrJw6UmhrZWBrIu\/r5idOzSWRh2tGccjcCjwKp0mA6atIOc+XDrowOKEtrNEFbikpYMCXS7lhmjiLO8swSbejtSI1FZoECvRVCFZnal\/\/1jxiHW0qceqwL8y3UBOG0HOEg05gvbkz\/n7Nkh+eIgCbuwIK13nv8XC0gOIhCdV5B6Xpl5\/FtBDsVwDtaNNa0M\/zWwDOW0FOU+1LeSoL\/Q1bUGctTycTAK\/J1rwbISu42LxU4axYjeAAhc7I7mHi8U1ZU2xow09IJJfsNBAThtBTh9PIdsWcgSSYotvrsqws5pigq6jkjnujmwhWc+xkNxVB7nHFeWWO9rSA2Igp70g52VgrE0hBywEF7RJZnkkcVZA17HZzY6aJ3KBe1PpOUVWZ4RgtcH6otpgdbSpB8RATvvUhnpBq9ftK7LlN1eJxFk18kgomfq6VHpOPeQevg1WR1uaIw3ktA\/kvNLmPkbluZrZRnQWz2EnbLGidJ3HKCXoOTYO81K7yqvlAqVPdbSlOXK8ppswyNFgJNWWtg9rUBuDrjaJBivXYZCJ0c6Ce2v0nDWJeg6IGh0p\/TjOpIBEdDR92dr6CP53a5ojgz1UwVfC1\/9m3s0\/WmKSQM6rkySs4attBpLJ5mSJxSAbArrOSpwUes71dZcYdOmiB7DszJMpbUqo0AFGTuhZKrhbZrYNjEU+rh3ROydDsLkMnF0GHidwDzeHfKGwu6nYUidmfETEs1fOSz4jqT0n8U0nteoP3oyHHDumVZFiWmeZP9TdmgtcQbvldT\/OZQm5iC6CB\/gWlsd6sykhHTePOhhfZXe615F9CdvekioynyKfYRrl5NEBPmCAEo4Gk2wpD1YTMuH9vZ3BqcxiGifrHh8FPuQ9hhnkPX0PuyHgUWDsAAVmeXdT8iFH+Suv+cbHfyeZIkrUaQD08hpPgUwRvDkae4d0T5I2YbTRZ+lpK4LSsjl5d+z6ktgM81OWal3nbpyE9Zg+2yrOqvMQrp1xec6L+GV34BvtAD0soo\/zajq4DBhlD9vZQinFxBFaUY+HnM\/Ql9izKMBRcLOEPr6k00crMh2AhQAc5nder+sDnjLgFLiCBfTW3K2yIPfU3ElgRYz+AYa1VlZkRugZA3zsZelUQE9BbDFwZj+OfiN9iU8zEJonLgCbf00M3ryCDyKfJs3d4SMGU8FO9KxNfhoLh54UxF2tJ48wO2F1uQju4lJOxuJtdqfQc4p8q4GRKFt1SshjMk7GpJSHZEEihUQWIs9eIpG2\/h+yT271fnFCDiWH5BKJd034IaSQBfmmlN5V2eSY1\/ewtiu9dWJ66++zlIfkOllM7HfYoc4vynXeKMbf65h3J9XTJRHP2C+RtrQlsi\/2DH8f+uWbIe\/ymLS90TqUOLY9IWMgpJBCbq37fUm5TiKR6xp8t5UxF5GjUt2WCGnLlsiVGZ7GkVLOS5gbtkQ+maJNR0p5Q4q2wvrnSClXJs7R8tXJfVa\/vtTAey3LPElW0DkUulSkfFMKvTSK3oRxpCPHIlotL603Q6eufwrbqSBnLGLxHoqcmGXAeTOxt0H4VP+l4EAkTPnq+xVkvx7v+LtVxueY7NdgHj32QdAJO6O8pMrvJxxipTzkA503YyHYCQUddYd0kBPVar9EClmUx2Lvrs5dkmqpbE14EicAy40ttVYBHSmlPCKLCTNUfdId+VKqcZzXMOToJ8rqvToR6KjJRXeZzd8CDn28qukLwMKKsKALfZXLbF6hLyKYqZzykCbLKixTPslOVGAdLzMbFxcZ09uKemhhIXGxWMa7LEHW1vSJ9FM59DHIfXSmuJvw7tTJfbxGDw4rtI0k+Rlr304nK3Sq3xLeZZkeexnb0rTQtuLYB0SmeHEr5o1ZDPM8Vsz91bkLErh81da8N3TOVp7EYpSNEc5iF8Fnac98sS7uSXCdSyxK3MsjCa5ylW31SC79ujDPOJ1+JEt42VsapJp2Lp28zJJQ2GleykMZAhQ8JsNNLRS6dPIUWymkiP4UgEO\/HhuZ+m7lO81mgH6ub+iJ\/4ECDv08lQr06k9RySteXPBEQpKOhWRBJXM50oown85Y9\/EY8HxE8L9AckKbmZH95uSlidHJDoKH2K3DQ+Kzrc7N5c125QU6FnAe63gqc8C78qI8FaLtNC\/lQYUZZoHHKDhYyCA9Ca9VTfd13KcBTtThXLe4j+l1T30F7VdoPhvZBLgJMuZYucyoQbYlfH\/HsFgSOyousDThTh3AExEjYqXmFG5dc7IdKF8Qpu0kRaApV\/ltOUHvTOyOHJF1mVbYsl43BrxQFc7UvJSHcmSzbLBtBQfTeSUWdhQ8\/XeW4dJRN2jIBqODLCRP6NEUTWfMyUseT3HO9TEh\/yo7\/LzYOekieIvBGLf6FzKUd2nNUndOwryTCXPLQmpXeR7Kycl8viPXXaSsa0qrL\/EPfJOjeSkPlZbzwO0OXDo17IjErHjREMA1BhYK\/Ky2YcxxELzCW4n8wNOZF\/kmLWCJ\/qjFyarYuXAK7S3JxF5pAnOX5vb5tyjmuajrXxgWLgu9LZZoWspDOZkir8UhNGBuoRiqxKrF2BpZ8bJpyRXNIemykGxIcd6tkd9pF5EQ7+NicTghQuV02rusbxdrGv7cPJErHdoXWinhs19PFLyUB5FzrpNLkReqivTl8WKn8\/MQ0BU49GjwpIXKErYHSZeLYAuHY3WdDqCXYqieaSOZyezEBbc6YfvR1fbVxJcm2h2TiEnPzfWzeUpHCw3ObHqQWEgWNSU32QJ+nqrlYD0Mmarv\/xwyeW0eb2v6KlJzwuX\/lMqd+2ziZ6ST+ZHbo0XaOxV9h1G2xJirXdAO8\/A6Ke0iT9T5bvLItgrRHTuaHCuQbtmW5ZbIpZ\/+XlHX2Dh8K0XMj1sTDSMSe9CB5L\/UmMIl30zJ5FxbBEi2ZWRIlv7LxDfmIniU0YTMZ1gaAhsCBzshzGAM+HEMg4xAYtMVGS3UTubk6+vSdSxkyqqmWaTLbuIU9Htr0u33L\/ENTHYvGDGFAhVmr0mVoauyrN4D4DOcpTOy4gZe4GLxAxZ5KXPqfvemzgq2InrSXpQKWe1hSbBkU+J5lsVwCygtc6a\/aK1nwJ+XkHLagRsZFFiptr4y0sD8IO1kTv4ffJyxomp9xKTJ8lm7aUZLtXiPAuhlG2\/KtJBM50wGgWHvSnR0bDEBslz+PfTvH\/KJNwlXJGytJGDxFquqkkSLzOfehAmsTOGVis0WDlekYJORekG9xU6G+QA4lSJ9fBVrHKon5KVP\/bXqfak3Hv2+JYJR\/hjyyzSGq3Sdh7mZjoS5cwvLIzZ98VC\/neGEzGonsqxvT9uATtmcfHPGwtsWDo\/nnOyqWqoj4XMsMQ9KJe71yYLO3CjKJSmujM6mKUon5uoxL2soPsfkUGzuyJgc0zk46FwmdajclYJcl5B54kgpt3q9F1KkyBlTT7RV9tT0uEenzI6lyGapzr1KlwXjhJx5qCrh04nteVTWnJDI\/tirKzlWaTLWtib2pDr1M81cdaSUfSnSdu2IY17L515Vt9WTKUk5n2yrMDnS0RQtZ5SLWc5OSggEgmE28reMplDvZtXtdflUzLkWMlHvGENwE6s0c5\/jHRKBTYnlrE\/0pCzQnpR0nhP19b6JRQz6WATV\/QdZxE24GRXiLDRPaks3GjjGe6OVri54fwpj8hWB1iwEV8SmP7hYvMUrCXQOStepPRph6Jk4WZ2CjDSoZT7SlApiuTtz1RK5ip2a4FPBpsBmkLtifQn+NMNmyILEZbiejZpfR9YQSglslscGqym7TsWTsijhaSVjwMVsxEYgA5NajdhG\/vdcN0HB6JT7uZizq44e3Cbcj4aCBGEwIUgwLPVTJrxvgA1NDJdsTWKv61MmKCs3yHdzdpV7Mcl5g84YgvvZiY3jC6+WuNg8kxB1AXByE4LO\/bnG0ctwlJXYuJqruPpQ7VyrPVVJk98lmYZqDIubvJEKY86z2clNiESgzg4599PDKnYyyHDgKLWg18xCxQynT\/1U73tBwvs+HOssn4ywM8LeFnji3KtBqMiHR0MeTfH\/\/jqxhWmI3GNnLWBGQq6xcp66MZtcBxhmfQwIqFC1AhJJgS\/F6pFKvd+oYS7qHJuNKb7y2SFnFSWPbL4WXFtLHAS7Ez5XwdRPlVtuJbzvZxPLrUwmcYHHEgvpBTdXayKKDze8Gjty1nNgT8zLHGiC65W0LB4xUNmBy1ZsrIBlpfo4AZstidYFZZU6LdZ7g5fzE7eZkb6z8oOct1jlWa1qobVVq7quJn3qZ1JuudQMOkwZPUcRr6\/JoOco9qW7mwN\/+bvMt8cstQ8mDOXPTEwQ2JLhdcTJqQD0xFauUNN+IHHau8AAh5meo\/a3oSl2oua+P8EW1sQEPJRTP1\/RVCk9fDXmPY1h8Xyis3yySTLxenhBvktztutYWYnZ08gHMaU8PpoAOiQVV3pW4lBMz+l+s9iYQiO02EMpcRKo8LjfMT0GwLJtfl1ebbsvvBqFH3MfSamfO7VetEib9bMz6ExWPWdHQm2IKLC\/lQO59+fDjpwVYclHLTipP6VpVrOlUbh1ZdxM0wGFSfJe6mn\/Xo6b3w\/4U1suG8HG2ISISuqnm5D+4CLYFsugMxlh5946TMgSi2Huzd+u05Gzu3wst2iPPKWTE+ri7G1uxk3aLc5wjvc86pWYaS9dR7EmRwchVFI\/JWcmRoI\/nkHjDrPuNcMs0Uw956cM1mU0dxGsYyRv2OlgKkgnVhPJHahx+htpxjb5icT5uhSb6rTh7Aw6ycGBDg6ltoGcEe6q01WuMv1X5mxfHbHNbG55KZohwMFmkG0xNP0q9fNM9nEJJDLopLFvKGvgughGnfapEbEyhfUwbtx\/xj\/mGib4l6kCOrIJ8T9EpJim2xKdmbrFMw3meNuihQlnLIKYzVUyg06tXNoUGq+D4+gq39Swn+4W3iVX3repIKOJ3h+Zc9xvspyFnWhfUawwZxm08bEmRzMUdQDXx0L0GBY\/Tv3dlwgcRiIpya0YKvckOUK6iLX\/aNgtc3fdrIF+HXNDjizJIx1TBHQ+rqNYXz0HmuJhMNb+UI4rSeKUsRCJrDBMoUD+eNZkAUxnYSQcyEQGnbBl\/5fE0oD12DX+I9GU7QIjqTyXpzfoKheJtDGCuxjJbQ4etKfAxgo+5jidkdqOMi4+m9P9XgPgEKOJMckqriSp97catPFN\/mcSmI1kjMNgLBWDTs13OXM\/T0mhQe3j7RR2kh2J1ieXaBZnC5dbU0CsJE2c1GM8mNPH78hkAZ0TE8ilf5cQ\/Hc013QDQYk\/MjuB8W4hS9gYM6lUlYWFk1TP+UxmC5vExuHZ2CBBkUj+L5pufbkgkVXYwuG\/8UxiXvgDieV+JTYzIz+l9yZCrABOAD6OBR8XmzVckYM52cLlPzomhTNV0slpsZuV9xLU9tn0xOZdpT+EVpx3pghWWKN5+kVE9fMe1kzasIazkJmtFWlZk6PzzrIHBf4m850+m+iQdxD8jB0x8S8ucG+qBM3Pc3LIVk25ytcl6jkWkp8nFqlR6dp35+RoOTQ5JvQYcEusav1aiuudmKgMBwc39tcKF46SrSkYaDt5hT4cpAdYZTIviUMfryTmxrevdUbV\/rAzPZ2KG3k+BS8TkXlnVkbrSynT110VIv5iCp1LcK3O4nZD7mqxgYcSN4IWcEEkdK1MzKNXLMiX8q2qogLRmViNhQkqO9XHk2N71YFkGVvYqV+2VZXeAAOxNpYO4Goe5v2EzU4PixItOjsRuAje43AKXuVOXuZ+Nvpc7I6OzVnCfW1Iz57+M2HxOF+jVEPRHl9JIi1rcrjd7pk6guQO8WEmp7mLxQW8jxULGBJBiT7WePnwrgcjFvA9HkrZ1wsjXeU\/SwFajo7OvieRQTmvTKy\/IPPkSB6TUjqyGMF9KySyJ5HH1c\/SW7mumMiwrO7dL4t1Mu1WGI7tyBYUy3K8lDme7USeYD9L8jG5VS6RPfpYIrfqtzKWgus4PUeyI6V8MxUzcWMcybZELkl8dtWbCo92Fu7erZm5eyvjlO1uQiIHMt3NkVK+lOpO6j3Mky\/JI34GYfmk7NEs28nX2\/JISO\/SMSJXWJAd6chi4h3T8jHHj81K2SZxOn+K9T6V7ToW9\/EP\/FGH51VMh4NAUmCZMuyuY7mOXXKrfnMo8nOmx357FBudulZZH\/4hsbSf4n\/pZCELq3wvza8F0QrlFV\/mMEcDb+woyxOjl\/oTgwTDGXSy6zkWDvs4NyNl3CUUeT8xx03parvZTYEevgD8JyUOUdJ6dZoRnBtSlcrFYkNNUZ5wecRrK52us47bGqyDdSTfahDN0XTUv95MpTWEnaEY\/4W0E77dZW0nXFdakupq\/7c0ra5T7rmjx9X\/37JtNZ2elHpaWEWKpB6mnQ\/BJ19Xh56jrrgh49ddf89T3q1Wt7ZTviFbIl8K7duRlHpLpdpDet3ohgZ1naJsC8+IBfwuZfk2GUFEkYZ9Tmk777KOPorYgKBAD0t4k6cS7DO1gWdK1zmcyvQmdCVRqSuGWW2t47g6TkmkKMhs1byvozmwJufHoJMukK9WbqOQ0gXgaNr\/iivBSeWbs3Hp4dKavqUjJhW42FXVHlanzMSql8TUBT7kT+3jjh0gfd3IsJhRxT6XBAHKtLuMl3mXIQ5xkMO8y1PMxk1wKo4heDLwqpWn5RayOf\/FJMlzK\/HHlD6m7DG+aViT82TQeY+RTMkIqrjd8gy1JqTP9ykzjPPqmn4pV\/maVK7yxb64G1UtYl6qlIlbGpgb+3CwO9rky\/lqndEZZISAsq7UyXSmM10XFHYTdI9yNYngq1b1HO5vArl1O+imOyecNZk6GXRqAxL31fH8tyW6oWkoZ9JhXgSV6HU4KfScQkgI4yOJYFXOxKp3Tu9tFz4dic0we+qOzvBDwLbE4VK6UnmbJvW3OFnuComKcLH5fop7MglrD2zETSjX0yhrcjpdRwUFZmHQiVgqGXvYxeNNq6ulQOO5urOtLCTLqwzCFi7npqiMVX8mlgWqHkxHG9Ea5DFVb8xkZUlnW6kU6nNq4NIFbsy5jEy7fCa2516zK6i3PpshKNCpe\/m7eqlYdRS3u6HBDO840FgT4UVKJiZVkHVb6DP9o1dTI37sH8uc\/V5JYHU72obWYGfDGoMariv0lMi3rMttERWsJFDiaxp2JFMpOfOOJus6G1Nsud06GHRqF2lWq04Zdp5JaSXJvrVaGUI1UXaVJ41JBbJqe3wuixP1M5WJVY85WSWwyo42yrC6g9EG4ULtSC\/OEXZUpOu1OJGQosyqF7Ieqy5y7PbUkBSr8f\/dVF1nOGVCxI8bKqunKkDtqPPq53R2Xb6Qc0NIxndaYlKV+vCtSF\/sQ4l+t\/ozsV5rL45kNcmu8gWMN2LZuSkn2FGQM5\/hWPewIoNazk36y5xW45G4iYw7razr2Kxqoj3LTcGarIrubMyhmO5zdYY\/dvErre2IXD68CnKeiYCMlSng1UJyTwzlaxq\/Wz2ZWBYu\/6MZZYWbzZK7k5t0bEdj7WzkYq01yQYmvdpYzWcYO0Xsqc1GzmYbQms8bixMuR7grOdwmxXH80PmjU3bWEpgkG2xgDIGbM9QTDfaGjFYp+nUpYud3KCTehvVcSQOK0Mhp0JM6ibqST0xLIBWyhgjlYmVPjJZWcZKaqV0tBk590atL7gNTGQFX3\/LW3VteMoLysJiPRcynMovInGwGWYRF7NNXy0ia2spM\/Yo6zmb5d7yaUf6tBJfY5v3rOTumE9m1utvWMdQJFY76tKxLVwsnmEldkP6jioEXeSlGCqtu3FSfZ5WJ\/rd1iTqOuWaWFnGZHPl6tZPg6gNsX\/TF0YflzLgeGkQYe3Ysl86OvFgLEMgt6PD9ft8aXtp0wdVT4qyX74Zm7Dwppe8Gp++4XhJpq2TBlGb1LhEz7Ly+xrLoYdCCp2C6+TyvOlTBupLdByQ87y0h6xzRp1\/Q2hyZ5Yk07TPkSb9U43\/kdSjcsRDEexEUnIrVGmlzipajRKgK1Pw+fTRz1d9fcvaroPAYRVbWcVCLI3YcSmW5TtYwCg\/5lFK2LH6loiwdMAwq1hFkRlcyJmcrKuCwlE+5D2GeVVTXdi4fD6xOukHIapsnhE3ZKIlD0tq3MgWVnB9gL2x0Zlg4XBFIn\/0Kn1m46PwuqZot+q07pzLLjbwE51+bCeSeJQpWhwcYB6PcG4k1YkiJrUTWHxU7bdHUlkqVfpnUlRziZUJ\/If++KEKIX4KnDpWpenES\/2ajkyh6eBL+u+R\/XKrPJTQp77IL0BZ7+iR67w2xvTXuPao9LCig9T\/7RQhaX+i5vtmS5GgvZQ1DuFpOvGSTdOJl54MSY1IZEH2yXXyTXksds6l66GQdgod8JC0U1BEpH2CxmkdpHTkS3Keb9Rs7xBS6KeyA0mgBXmDHPC1EJ1gmuZIl65ZTv9Mc7yUSnOScl5ltgjZw0kJOPUR+zQm25yZePbuiO+KQFJgVup7Jae7lfv0eTohsl8DlGJ8S0LvgovMZwFnxTApu3zAr9min89OtCnZqbS2IG1V2VdVeTaHdSyLqeMkGGU6Jf0cacZ3MGVZ4eR5ET+ytcGW5XlRoJPOyNY\/0rpAcmv93BejebhY3BTLQZ2VErfIgQZ9ieXejrCD19ir9dmoO36RC7hQ191yE3TLt3XViiSZmZqQbCRl8sdnE4k\/lJF7dmWeC9nO3MhW3Ul84QuiwGn0UORMX3HgDznKX3mNA7zvQUES4Kgp+mqiQa+yJEQIL7+NQ5EDdESqzcp\/dn6bVCcXehsrM15Vu0lwkfTxcgznkApm6EkgHM8KOy9FZDtl3aqVPy2D7OMgR\/hP0GWKC8AXOIUL+Cw93nm0NX+ki8X3\/OSrQtqpLCBZvt+NfP+z+6REgoUhXYvpAMxO2Z5i6R9KqEAxytkxbP3K2\/FaTHG5cgLGch90WbmNb55tZXljaVq1WcV9nsWo+XpOJcVyVy4Esm5Kq1h6uMlSyYtcW0z3HCf5teKsL6XRV5jXFKiu2uM03IoTWGiux+Pn\/4uTKTf51yyLfXWd\/JxrGfZxFcqAAbHA07GQo2RLzVPkNa75v6t63lghMGKdnMSF2iQdDzmHG0x+CHM9vJ6qWlX6ZerG\/IVMBf3y14SsHPWcnwarqoqpkw40rmLj6A2AlRDPvJpnvNfh3yb10Z8AOeUtRKlNtlf1bGhsXuNLAdhJQ+aav55TSUB4xtRbzQw7s9jn3+Ya0GnWggGLoQSXrvrtLXaylUN8jNRm1vksYGFiLYjqzdXkBJ3qTWry1kRZui70dMc83+kJ\/KFBjuCpBjgWO7gsOEcN6DRT14n3r5SjVSxt4TnOUWAap2IFfonepIwxIyHva3KAjuvFKaWlGrmYnU0AY5Xf\/aABnUygczb7grFSBnSaqeucwOHEehBhYYlpDIiTXc8Jgo6VaZo3a1yMrpODnjNZS9bSInnxJe4iHUuw8FHKyxQmREkHozycq6l0skzzwzXEsfm+08fMMGeQEFIxAzo0NUH1mdSsgRVKeZGqQqbgrobzpycf0APc0hB\/TjKhxhpGpiDvdX0fgFBSMQM6zR12h2sbph4Lf53bcvfOMCmKFd\/UFGtOkNJrpRnqlBlnD4TpnAZ0ms8VfBXQkTNB6mFuNFur1FzVeeuv9dd+mlrk\/PeG6+IGdMaHekzkTJA6n1JbUns1kzKsbEAeDzC4xQx54iwdYV34h9GAznhRj+VBkCp9BKm2gZyApUVBjhgH+vtGaz9NFbkuyrZmQGe8YOdsDmuG5MaW1jZ6YjK2piLgKPf1TSz3OAPGA+TuMubkBFd5ZP0tAzrjBTuD9LDeq7cu66gJYTHK\/Syi1FDhuMm0oXJ1wMFbnM1GTUg3fuEQ15mJHbO1ujXa5mhAZ\/xgp8RyLk5Jze7\/jrvaIrSes1mFmLQRyMnj4PpimYSOZnqLizmfQWyccRwXVQ\/BbLGiZGVcOIeJSGZc+WQcoI9b6fWlLpKY6TvK8zzBIEypbZWKSP6LN1JUEYP8kZ1sZdBHxTb+EecmOjk8OufmuJlqQGf8p2o6pkIlh\/kd29lCKRV52OQDHcE\/85mqv\/+VYT7ggObdEzlwIDPhDDuTa2v1N\/HkaQZ0JmKyEspUWKFnRxO0D\/KePnOqAU5azXFiR8UkgIaBzkXRJmQDOq1GtRpO52k3wNE3WSA6T97C\/DfMeZCYTh7ICRCTGtBpVdad2iUkfOy45gW1PpeAsezE5JQb0Gn1CYyBmTbkTephwEAOFm\/Tl4YK37jMaaHIE3UYoe1isL6Vc5HD9jQgX5kuOceAjhEjeaSAfm9Kx+xYwHVpk3MM6BgxkgfsPDSFQwVd4JtJPisDOkYItSqJmv8ykm7Z2dw8RWFH+ax+lj5w1RiSjRAogCOMKbsBN8Cvppz7PKWb3Gg6RoigHCsgkdgIbDMgdVClXs6OKaXt1AE5BnSMVLZT3fxPjrOXAg6beBYM8GSGHXdKwU5dkKNKn4iIfX3UX0XkEfd71FSPvl\/S1STaH0Sq87PcK77X9Z4ff0bWX+LPD\/\/VQvIUJ3EX0zjMZq5mIMVbCWtLZHjeqJaSr07bZtYRMrBTD+RkfNZwm07zyROCeTPJWTTRyQBJfc3+LHG9sQPJC0kZUcFkxLB2s45Dc8ZbpVZu4kU2YfNfWcB2\/qmOeOjq0WmkxnzUe2t1Yg8FZ0+wdFLbdtSzfTOL+dgPOsHlXM4JEiEZQGoKiZihdGKyZaonOUCBk4EPKXmxneEZN07shLNDe1xZ8iIkxaD6iWv7aYcAhFqENqdF9Dp8eQSfsjqatfaMYH\/twAgQ8Vbi\/xreE\/99\/D35kE\/0v8J6EvXWy2eXR+eTmMmYNEOi3miZ7iJsPOyYBSJT5LjlzSSgEkGZlMDTEOSAkPuBVWzSQ9XNS8BS9njNqde8i2msYhPQy4aItt7hGtDn1splDOk2bRxsruQ7nMGJwHF+zza2M+SbWJs5p6rtATZQqgEQ+F95CdjOnVWg5dDLBo7ydd9VwntC1Rv0WdTcS\/VG1ADlYi7nHE7XvR5gPUMRUCiQFFjKwsBTbvCFids4dLPAO+Mg7\/Aim5FeizYOK1jGO1xTc5fyKG3nTt9vNg5rWcB6HvXGI3y8\/aNp49T09Sf8AifQxgqWhTxn+f4CSS\/L9eiop1nHGyFLvvbtKlnFJg31mzlH\/8upAWn1Vi\/0jVJcm4TM5to53pxE0JU8mFiPvn2jj69LH5dTuw0dk1IulkhbConslmNSyv2yIIUUEokUEmnL\/VLKFRKJ7JVSjoUcUu6VSKQtj4X+3iuRtv5fr9wvpZRyTB6Tx+SYlFLKY3Kx7oOQyP2BuyjZL3v1r+XDlsi1up1Kj8u\/LJZSSrlXCt0u3hOWe2OHPI\/UvVkrbd\/d1JV75VhNr1fouwUPIYXs1k95TO73zt\/r9VL18FjNOOyV3d59y8+3t+q5yz3aK6XcHLi\/LZGbpZRrvb+qZ9xbc5\/9slf3RfVkf0hPegOtrA158+X7C4lc4Y1O5XkX14xOud+1La3wWtpfNQcrY2rr30RgRKLaVO32+vpQmeO9oe8tv8OWyHnyiJTSkZNJHCnlgCw2MnrIMTlWBTpjckzulbYPAiqgI6Qtu71jv5Ryre\/flXP9f1WH7b30XnlML+teWZAF2S0Xy71SesBRnkKVNnrlCn1Nt28iCilkQR6TY\/KYN2WDoKMmXWUBhoOO+rf\/Xns1iNr6bhUIGZNrZa\/s9vXa3z41i3+\/XCwL0pa2Pn+FD3pX6MW\/QnbLgizIXrlWjumnxIODJNBZGws64eO9Qu73nq88UtU9Udf0+nqyQkq5v+a9FvSvalw3y25ZkLZuY78PQP393iyl3BzaUvntl9+bqLpyhZRyrAZ0kPjaWVvVT7uqje7AR7C5sFOUA5MIdtRzPOm985xBJzhtK6ATvFVF\/yFUKwr7\/hfkMT0pgi9orTfB\/cvJP6mOVS2x8kLYKxdLKfd7EBEEncrzxYFOd1VPV1SNga1hsbeq15sD7Qen9jH9i\/98v\/ahFmkhcEavHh1bf9cbAx013vtDxrsg18ruQE\/2VvWkO6BvVMY6anmt9TQQ\/13C5kClh0T8vle\/t+6AjiL0mIaDjv\/dSbk\/pvXxAh3VfkE+6Vuw7Q85K71xrPsIj9N5A8ntrMAJMc8pN6Q\/fEz9q9oNaVcdZcfs9+lkVNtUbK81hzvZU+MtKbdsYzPE08AsL5tX4GKzDPgJmzjADK5EVu2fBcc5CDxHb+izRN3L5lHuRnI73TjYSK5kLpJb2VPV62t4A0E\/Nm6NG\/ZE4B3dYvl8xwuaX43gDa6n5GvPZg+LkMzg\/6x5FupKw5N8nxkh413iTob0WK5GcJCv+3oisBliKaPMYGmgJ9Nq3qsIWMOk72ntENN53AwJjt9xBE9VOaT76eR4rBu+0oodMS8Z15wsQYmb+SZumzvRXU1dcREPYTfqQQwHnXt5AcEj9OLUTH0FVn7zoPT+Ghzw4AEChwILgKe1UdnR1zl6kobFPajfweYIME0bLdWCupIZHGAHsB700q81YB9EsIFCgklPPZPEwcHF5kccRHim0+8Ab2jTZqXXNnAvktOZUwMSH3IcWIalr7C8+BAbyRzmILlXm2qld2ebPbwALMylaLCDHTPeQptV5wCrKPl6InVP\/g1YFjAXHq15r+W3fgT4O3q9u0THSUXNkKCL4GkOMJfFepRtJL1cxSgP+KjPaudl5bPlem9UTmjAoMDmZ8zibe0za1fTscUG+rTxuMERjYpI\/jYHEGylG6euL8Up9AaOgp4oJ3M6khdr2pSeFlDtfCx\/qxxOAY56XgsXwXeA9ZQQbGCUGczRDlW\/HOIyJDP4VcYgL4ftWrNyKHAGsK2m1w6CNziI4NyahIISTyO4nV2soJdC1bI6F8FB3giBFsGLwBmckMtiOS1mvBUQnoNglB2hPVmH5HRO8\/1tWtV77dY6p2A7o3Syi80spltDShTsnAJ0hcwQ\/9kDrAL6KWgdUrAawQO8TbvFKSvGndl8L5cqrxOj44zwTW7WH6aGJQp0SixllE6eqisUXnI7uwPHTP3L54Dj\/DlQ6VIABXrprbmX9H2blY40oMHLRnIhcxhlOwKLEk8Dq0O+JacxxHVI5vJoJgAVnmYFJwOSt0NhwOGoXkbVNSD\/iR8Ac1nDLt5mM4spaC0NDaBOSPidZATJiZycy5T5HEDVeAelC\/iIj2s0AhfJn31tqD6f7nunu9hNv9Y5YYhFHEBwNT\/nj+xlLb0xWobkqqqWllbpL1160\/x9JBYO1zCXA6yli3akvhC4PMTZbafvlHWcv+Fn2HkVebQjl9webuU55vIs19TR7kGOBv795ypbR9Dy4DCT3Ui+xFAAFmw+BcDJnEM\/Mxhlvf4iu8ByBE8zpEPF1nM7c+jltSo0\/hDBJmZxB7dzhEfrsIs4dQbEO9zJeh2HM4MZXM0BlrKH1iRhclLt1I\/z+8C\/RzwmZ8EevsyVOo5pLnO5nRe4PiKuWTAa0VIwwmYXN7Ke\/RToB1a1bf67CpscZBYruY2utojfUYDzNnezO9+Ka3ZMxrFaqlcxkHmpCtaHXON64PM59tcsZlllIpTcyI0BmBplkQ7Fs3Hp5iokL1LwwOUN5rI8ZFFLbFYwi7k8wtvsSz1NZmltRHCIj+jkXF4L2f7ZTNMWjbDN4RCP8igFZnI5NzKDXXyJ\/fr8MyjwcUjQXxeCUT5M0ccjQFes9hY93v7FfhKnsb8GhlzOQXj6jrrb77kgIr9aInDYxCZsTmMBC5nD1cA1IdP1CPA0d0a0VJE9vMDV9HMN32cGz7MJ2prqSwAPsZl7WKo3WlZLA84Ij7EGBxs3zzDKjlhAupPntUH5KNmjMu2QVNBDHESwPNUX60TvAHiD6ezx7DmSfgSwlVF9HGYOkqvoDvEjAXydAwg2MDPS\/0Egp6rA33nbOYd3gIUe34zfOzSH05GhlgbLG4USe7iTRYwiWIAEtiM5kUtDfFSS7wC\/p5SwFbS8TY9\/6+TqbdCRhPFWb8UF3mGUThaE9uRy4CCHfD2ZFplOqYol29g4DPEoF\/BD4O8oRG5qw2ZI9RmrGOUqVnAjklUN+KHifFjj599StCHD3MzZ7MDC0vXYW48H0MJlA3N4yHN1MD6g4yI8g\/IZdbGmWt6hPCUWDuuBq7QL2\/b8OWFT4Yd08iW+RCfXITiDk\/XkEEA3f4fkIB9xUB8fcZDjCJaFDJCLRYnLGOX0yCQOG8tz3jratS9Zr39dh2QOK3CwfC5hhwIbELzBGyH7XcdbyLZ2h\/+bhgSbIe1qL\/jGQbW4mDnAT6q+gv7eVdzLA1pfwmtBeaPKIBg+3ja256WyGeLfgHt0cIC\/J71cBayv8mBagaPy7qQ3NctBAusTbFO1M6T2jCEeQPAInfyQobr1AoH0rGlZfmuWvmMzyGVcpIGnlWw8FcCZwc0M52fHSQs60luqJ9bYYdIMbtAdWvY4bdAwVnGuOpGPVWKIIUps4nk6eUlPTgvJMjo5yJf5Mt36+DLdPADc6G24qp3HQ9wKnB7xLP7eFljL7cAPtatZsEcHESwO9LqbX3G6dn1bNSC2lm59drnVc3wbsZu0T6070OJiHkfwOr+oetm17mXX05e+7xncHQT9CI6zD4GLi+BHoePdzV56fdpEJy\/V9GQrggP8KODXOlrTD0cDTy8rEL7nlSxAcDxmmxg2Q2o\/BT\/idQQH+Ke6gUEFBvRGZsh10z2usKPek2C3Bh408LgT7qUqA84sH+A0wYpm17g1j\/sWZXmpPsfxiDL2xLjMq60LQxpILuM3dLKLF3iRd4DPcS7LgBNrJqiiYLBw+TbnMIP\/qtM6lSdrvQ7cq+Q6\/4hlzGBpqA3K8axUYcN4juej6WIWC5gBPM8KL\/JH8G1OYS7P8R1+wgh\/5nNczo10Irm7JnXQxuFK7uBGnmaAd\/QdvsMM7W1zsRniOp5jLr\/haV7kz3yOLi7nKgQH+HrNBKwezX2UsBnih9zB7XTpkTyH7zAHuNVzbgocLuMlZujx9vd8A1\/GxWKIRexihtcTOMfryWVVBuZpNT2BN3Cx2cAMFrKNt7UNaAH3AE9Hulm7QmeICHlv97KBVYnBnXF1qXrZBVzHphBL4mKe07\/Z41gTXepN\/G52M4\/r+Jan8VgTpN1YwAiPsZlh3bfmjUZowmdvVbLBWimr0iDCkyOETvgMk7WBVIS9OiHQn85ZnfBZnbRY7qkKdK9kaglf4uJa7xeV8DmmM3rQyQzofKnqhM9q2a8zzfwJnwWdG1Xd69pwehWyv9l3djk9tDeQzFlOfK20WE6MEFVpltVS7r+o6dNYVbpK1Hjv9fLY\/CmhwZ50p+jJmM7EqaSMVp53cyA1pTo5s1r2BhI+VwTScPClpqo0kfBQ\/EqOmKjKGqukxgbn+NrI\/LnxOMqpyEW5Uh7x0g2ccUtsqNxrQN6g01bsxpIckg+bN6rclW\/48K8csn8nMKvGqenyDkdDXJ3\/VhO1UvZYlJ2rQ1xAL5czizOAj3iHF9kRCJp\/h6PeFej42LtZyOX8ApdZvM62mm+oi2A9s4CZ7AFGeL0m5hi+zr9wCn\/22v5z1VlHGGGAHVU0GhJBiTtZzzJmMY2TfL2u\/UKquJVrWMfl3tlHNX1HuVX1TGUnszpjgBfZ46PUcIEjVf2reKVcJII7eZHlnMIZugVFtuEEel4Z7zkc1z3f5N1H9eSixJ4MhPbkCJ8ALpvYwaW6BWruEZSB0O\/fgPdO\/PNKecXKDgT1Vo\/EfrWDZ6jAxYXAKp9uVvbrlWfM+lwiwOux8Ch9fpiHWMNirmGmjkRyA+6CZmg35dZH2MFz7PZcKE3X9yamGoTwccp8ygObePXWz4lTP4dc+mtqexPs9Sc+ppnkZ4yixSr\/9QTfGdn4+iqcOET2qNxmL7u51nM8ixBaNSjU2ZPKXSu0cHlVlhCTvj5FhWOyyAU+6MkbfIKtKbgZpNRU1soQ0KmeGCIimCssjiLuryREYfj532rJSMNa9vcsajoHrxOp+ixCIlSIJMu0fNyCZCBZDX+pwhd+WGZtTDOaMnIk44hWr6Sfk3iAH0Xy6TkxVKNJ7zW5hfQtxdV0T4Ky8DccJP2i6tPVCrDmH78iF3Ahl\/rir92qUImsQOO\/1mWQfR7cJNPuTgpNJwm22qPGkczt7DxGIa1WsZc5\/C+R8cd59cTUzsqDzdrmTC7hAmZycg2pbm3EVu0vtb8Nso\/X2MtwIvf4JAYdI+NXSE\/lLV3FG1xoQKENoMevNX6eIl\/ldGbSVQNASXrOh4ywj4P8hmEPbCYIbgzoTDXQURzH2\/nnGq5pI60MPcFtaoHTKPAFTuF0uoDPVqXAjgB\/AUY4yBH+k2FGAy6aCQSbsvz\/WeiMkt36TKUAAAAASUVORK5CYII=\";\n  var LOGO_W=570, LOGO_H=234;\n\n  var URL_JSPDF  = \"https:\/\/cdn.jsdelivr.net\/npm\/jspdf@2.5.2\/dist\/jspdf.umd.min.js\";\n  var URL_TABELA = \"https:\/\/cdn.jsdelivr.net\/npm\/jspdf-autotable@3.8.4\/dist\/jspdf.plugin.autotable.min.js\";\n  var URL_REG    = \"https:\/\/cdn.jsdelivr.net\/npm\/@expo-google-fonts\/montserrat@0.2.3\/Montserrat_400Regular.ttf\";\n  var URL_NEG    = \"https:\/\/cdn.jsdelivr.net\/npm\/@expo-google-fonts\/montserrat@0.2.3\/Montserrat_700Bold.ttf\";\n\n  \/\/ paleta identica a da pagina, em RGB\n  var C = {\n    nv:[28,33,87], lar:[255,102,51], bl:[67,97,238], ink:[17,17,17], tx:[102,102,102],\n    ln:[226,228,236], ln2:[195,196,199], sf:[240,246,252], gr:[95,214,138],\n    on2:[169,176,212], vd:[30,142,82], vm:[192,57,43], br:[255,255,255],\n    cz:[138,141,153]\n  };\n  var PG = {larg:210, alt:297, mE:17, mD:17, mT:18};\n  var LARG = PG.larg - PG.mE - PG.mD;           \/\/ 176mm de area util\n  var PT = 0.3528;                               \/\/ 1 ponto tipografico em mm\n\n  function semTags(s){ return String(s||\"\").replace(\/<[^>]*>\/g,\" \").replace(\/\\s+\/g,\" \").trim(); }\n\n  function script(u){\n    return new Promise(function(ok,err){\n      var s=document.createElement(\"script\");\n      s.src=u; s.onload=ok; s.onerror=function(){err(new Error(\"nao carregou \"+u))};\n      document.head.appendChild(s);\n    });\n  }\n  function base64(buf){\n    var b=new Uint8Array(buf), s=\"\", p=8192;\n    for(var i=0;i<b.length;i+=p) s+=String.fromCharCode.apply(null,b.subarray(i,i+p));\n    return btoa(s);\n  }\n  function bin(u){ return fetch(u).then(function(r){\n    if(!r.ok) throw new Error(\"http \"+r.status+\" em \"+u);\n    return r.arrayBuffer();\n  }).then(base64); }\n\n  \/\/ carrega tudo uma vez so; chamada de novo, devolve a mesma promessa\n  function preparar(){\n    if(LIBS) return LIBS;\n    LIBS = Promise.all([\n      script(URL_JSPDF).then(function(){ return script(URL_TABELA); }),\n      bin(URL_REG), bin(URL_NEG)\n    ]).then(function(r){\n      FONTE = {reg:r[1], neg:r[2]};\n      PRONTO = true;\n      return true;\n    }).catch(function(e){\n      LIBS = null;            \/\/ deixa tentar de novo no proximo clique\n      throw e;\n    });\n    return LIBS;\n  }\n\n  \/\/ ---------- montagem do documento ----------\n  function montar(){\n    var jsPDF = window.jspdf.jsPDF;\n    var d = new jsPDF({unit:\"mm\", format:\"a4\", compress:true});\n    d.addFileToVFS(\"Mt-Reg.ttf\", FONTE.reg); d.addFont(\"Mt-Reg.ttf\",\"Mt\",\"normal\");\n    d.addFileToVFS(\"Mt-Neg.ttf\", FONTE.neg); d.addFont(\"Mt-Neg.ttf\",\"Mt\",\"bold\");\n\n    var quem = DESTINO && DESTINO.empresa ? DESTINO.empresa : trad(\"Panorama de nuvem\");\n    \/\/ O numero de paginas nao e fixo: secoes longas empurram para a pagina\n    \/\/ seguinte. Por isso os rodapes so sao escritos no fim, quando o total\n    \/\/ ja e conhecido. NOTAS guarda a nota de cada pagina, pelo indice.\n    var NOTAS = [null];\n    var LIMITE = PG.alt - 24;   \/\/ onde o conteudo precisa parar\n\n    function fonte(neg,tam,cor){\n      d.setFont(\"Mt\", neg?\"bold\":\"normal\");\n      d.setFontSize(tam);\n      d.setTextColor(cor[0],cor[1],cor[2]);\n    }\n    function linha(s,x,y,o){ o=o||{}; fonte(o.b,o.tam||9.5,o.cor||C.tx);\n      d.text(String(s),x,y,{align:o.al||\"left\"}); }\n    function bloco(s,x,y,larg,o){ o=o||{};\n      var tam=o.tam||9.5, ent=(o.ent||1.5);\n      fonte(o.b,tam,o.cor||C.tx);\n      var ls=d.splitTextToSize(String(s),larg);\n      d.text(ls,x,y,{lineHeightFactor:ent});\n      return ls.length*tam*PT*ent;\n    }\n    function altura(s,larg,tam,ent){\n      fonte(false,tam||9.5,C.tx);\n      return d.splitTextToSize(String(s),larg).length*(tam||9.5)*PT*(ent||1.5);\n    }\n    function regua(y){ d.setDrawColor(C.ln[0],C.ln[1],C.ln[2]); d.setLineWidth(0.15);\n      d.line(PG.mE,y,PG.larg-PG.mD,y); }\n\n    function cabecalho(t){\n      linha(t.toUpperCase(), PG.mE, PG.mT, {tam:8,b:true,cor:C.nv});\n      linha(quem + \"  \u00b7  \" + PN.nomeNuvem, PG.larg-PG.mD, PG.mT, {tam:8,cor:C.tx,al:\"right\"});\n      regua(PG.mT+3);\n      return PG.mT+13;\n    }\n    function rodape(n,total,nota){\n      var y=PG.alt-12;\n      regua(y-3.5);\n      linha(\"Integrity-UX\", PG.mE, y, {tam:7.5,b:true,cor:C.nv});\n      var w=d.getTextWidth(\"Integrity-UX\");\n      linha(\"  \u00b7  \"+nota, PG.mE+w, y, {tam:7.5,cor:C.tx});\n      linha(trad(\"P\u00e1gina \")+n+trad(\" de \")+total, PG.larg-PG.mD, y, {tam:7.5,cor:C.tx,al:\"right\"});\n    }\n    function titulo(linhas,y){\n      d.setFillColor(C.lar[0],C.lar[1],C.lar[2]); d.rect(PG.mE,y,14,1,\"F\");\n      y+=7.5;\n      fonte(true,17,C.ink);\n      linhas.forEach(function(l){ d.text(l,PG.mE,y); y+=7.4; });\n      return y;\n    }\n    function secao(s,y){ linha(s.toUpperCase(),PG.mE,y,{tam:8,b:true,cor:C.nv}); return y+5.5; }\n\n    function novaPagina(tituloCabecalho, nota){\n      d.addPage();\n      NOTAS.push(nota);\n      return cabecalho(tituloCabecalho);\n    }\n\n    function caixa(tt,textos,y,cor){\n      var li=LARG-11, alt=0, ls=[];\n      fonte(false,8.5,C.tx);\n      textos.forEach(function(t){ var a=d.splitTextToSize(semTags(t),li); ls.push(a); alt+=a.length*4.3+2.2; });\n      var h=alt+(tt?6:0)+7;\n      d.setFillColor(C.sf[0],C.sf[1],C.sf[2]); d.rect(PG.mE,y,LARG,h,\"F\");\n      var b=cor||C.bl; d.setFillColor(b[0],b[1],b[2]); d.rect(PG.mE,y,0.9,h,\"F\");\n      var yy=y+6;\n      if(tt){ linha(tt.toUpperCase(),PG.mE+5.5,yy,{tam:8,b:true,cor:C.nv}); yy+=5.8; }\n      fonte(false,8.5,C.tx);\n      ls.forEach(function(a){ d.text(a,PG.mE+5.5,yy,{lineHeightFactor:1.5}); yy+=a.length*4.3+2.2; });\n      return y+h+5;\n    }\n\n    \/\/ ---------------- pagina 1, capa ----------------\n    d.setFillColor(C.nv[0],C.nv[1],C.nv[2]); d.rect(0,0,PG.larg,PG.alt,\"F\");\n    var y=22;\n    var lw=44, lh=lw*LOGO_H\/LOGO_W;\n    d.addImage(LOGO_PNG,\"PNG\",PG.mE,y,lw,lh);\n    y=108;\n    linha(trad(\"DIAGN\u00d3STICO FINOPS\"),PG.mE,y,{tam:8.5,b:true,cor:C.lar}); y+=13;\n    fonte(true,29,C.br); d.text(trad(\"Panorama de nuvem\"),PG.mE,y); y+=11;\n    fonte(false,15,C.on2);\n    d.splitTextToSize(trad(\"Em que n\u00edvel est\u00e1 cada frente, quanto d\u00e1 para estimar em reais e o prazo que cada desconto custa\"),LARG-6)\n     .forEach(function(l){ d.text(l,PG.mE,y); y+=7.4; });\n    y+=6;\n    d.setFillColor(C.lar[0],C.lar[1],C.lar[2]); d.rect(PG.mE,y,26,1.2,\"F\"); y+=12;\n\n    \/\/ Destinatario, em hierarquia: a empresa e a linha principal, porque o\n    \/\/ documento e dela; a pessoa e o cargo vem abaixo, como quem recebe.\n    if(DESTINO && (DESTINO.nome || DESTINO.empresa)){\n      linha(trad(\"PREPARADO PARA\"),PG.mE,y,{tam:7.5,b:true,cor:C.on2});\n      y+=8;\n      var principal = DESTINO.empresa || DESTINO.nome;\n      fonte(true,15,C.br);\n      d.splitTextToSize(principal, LARG-6).forEach(function(l){ d.text(l,PG.mE,y); y+=7; });\n      var sub=[];\n      if(DESTINO.empresa && DESTINO.nome) sub.push(DESTINO.nome);\n      if(DESTINO.cargo) sub.push(DESTINO.cargo);\n      if(sub.length){ y+=0.5; linha(sub.join(\"  \u00b7  \"),PG.mE,y,{tam:9.5,cor:C.on2}); y+=6; }\n    }\n\n    \/\/ tres fichas\n    y+=6;\n    var fichas=[[trad(\"Nuvem avaliada\"),PN.nomeNuvem],\n                [trad(\"Gasto informado\"),brl(PN.mes)+trad(\" \/ m\u00eas\")],\n                [trad(\"Emitido em\"),new Date().toLocaleDateString(LOCALE)]];\n    var fw=(LARG-2*4)\/3;\n    fichas.forEach(function(f,i){\n      var x=PG.mE+i*(fw+4);\n      d.setFillColor(40,45,100); d.rect(x,y,fw,20,\"F\");\n      d.setFillColor(C.lar[0],C.lar[1],C.lar[2]); d.rect(x,y,0.8,20,\"F\");\n      linha(f[0].toUpperCase(),x+4.5,y+7,{tam:7,b:true,cor:C.on2});\n      linha(f[1],x+4.5,y+14.5,{tam:11.5,b:true,cor:C.br});\n    });\n\n    y=PG.alt-40;\n    d.setDrawColor(70,76,130); d.setLineWidth(0.15); d.line(PG.mE,y,PG.larg-PG.mD,y);\n    y+=6;\n    bloco(trad(\"Documento gerado a partir das respostas fornecidas em integrity-ux.com.br\/panorama-de-nuvem e da documenta\u00e7\u00e3o publicada por AWS, Microsoft e Google. Os valores s\u00e3o estimativa de ordem de grandeza e n\u00e3o substituem a leitura da fatura e do invent\u00e1rio.\"),\n      PG.mE,y,LARG,{tam:8,cor:C.on2,ent:1.6});\n\n    \/\/ ---------------- pagina 2, panorama ----------------\n    y=novaPagina(trad(\"Panorama de nuvem\"),trad(\"Consultoria de T.I. especializada em infraestrutura\"));\n    y=titulo([trad(\"O panorama em seis dimens\u00f5es\")],y)+1;\n    y+=bloco(trad(\"Cada dimens\u00e3o corresponde a uma capacidade do framework da FinOps Foundation. A escada de quatro n\u00edveis \u00e9 Ausente, Inicial, Estabelecido e Maduro.\"),\n      PG.mE,y,LARG-20,{tam:9.5,ent:1.55})+7;\n\n    var corNivel=[C.vm,C.lar,C.bl,C.vd];\n    PN.niveis.forEach(function(n){\n      linha(n.nome,PG.mE,y,{tam:10,b:true,cor:C.ink});\n      linha(n.rotulo,PG.larg-PG.mD,y,{tam:8.5,b:true,cor:n.na?C.ln2:corNivel[n.nivel],al:\"right\"});\n      y+=2.6;\n      var sw=(LARG-3*1.4)\/4;\n      for(var k=0;k<4;k++){\n        var aceso=!n.na && k<=n.nivel;\n        var cor=aceso?corNivel[n.nivel]:C.ln;\n        d.setFillColor(cor[0],cor[1],cor[2]);\n        d.rect(PG.mE+k*(sw+1.4),y,sw,3,\"F\");\n      }\n      y+=7.2;\n      linha(n.cap+\"  \u00b7  \"+n.resposta.toLowerCase(),PG.mE,y,{tam:7.5,cor:C.cz});\n      y+=7.6;\n    });\n\n    y+=1;\n    y=secao(trad(\"Leitura do panorama\"),y);\n    y+=bloco(trad(\"Perfil geral: \") + PN.perfil + \". \" + PN.perfilReg, PG.mE,y,LARG,{tam:9.5,ent:1.6})+4;\n    PN.limita.forEach(function(t){ y+=bloco(t,PG.mE,y,LARG,{tam:9,ent:1.6})+3; });\n    \/\/ ---------------- pagina 3, eixo de compromisso ----------------\n    y=novaPagina(trad(\"Onde d\u00e1 para estimar valor\"),trad(\"Estimativa de ordem de grandeza\"));\n    y=titulo([trad(\"Duas das seis dimens\u00f5es\"),trad(\"aceitam valor em reais\")],y)+1;\n    y+=bloco(trad(\"A fatura \u00e9 dividida em duas. A parte n\u00e3o produtiva responde a calend\u00e1rio, porque pode ser desligada. A parte produtiva responde a compromisso, porque roda continuamente.\"),\n      PG.mE,y,LARG-16,{tam:9.5,ent:1.55})+6;\n\n    \/\/ Painel navy. A altura vem do texto que ele precisa conter, e nao de um valor\n    \/\/ fixo: no cenario sem valor a justificativa ocupa quatro linhas e transbordava.\n    var hTexto = PN.semValor ? altura(PN.motivo,LARG-14,9,1.5)\n                             : (7 + altura(PN.notaPainel,LARG-14,8.5,1.5));\n    var hPainel = 8 + 9 + hTexto + 7 + 5 + 6 + 6;\n    d.setFillColor(C.nv[0],C.nv[1],C.nv[2]); d.rect(PG.mE,y,LARG,hPainel,\"F\");\n    var py=y+8;\n    linha(PN.rotuloValor.toUpperCase(),PG.mE+7,py,{tam:7.5,b:true,cor:C.on2});\n    py+=9;\n    if(PN.semValor){\n      bloco(PN.motivo,PG.mE+7,py,LARG-14,{tam:9,cor:C.br,ent:1.5});\n    } else {\n      fonte(true,20,C.gr); d.text(PN.textoValor+trad(\" por m\u00eas\"),PG.mE+7,py);\n      bloco(PN.notaPainel,PG.mE+7,py+7,LARG-14,{tam:8.5,cor:C.on2,ent:1.5});\n    }\n    py+=hTexto+7;\n    d.setDrawColor(70,76,130); d.setLineWidth(0.15); d.line(PG.mE+7,py,PG.larg-PG.mD-7,py);\n    py+=5;\n    var pares=[[trad(\"Parte produtiva da fatura\"),brl(PN.prod)],\n               [trad(\"J\u00e1 sob compromisso\"),brl(PN.jaPreso)],\n               [trad(\"Ainda sem compromisso\"),brl(PN.desc)]];\n    var pw=(LARG-14)\/3;\n    pares.forEach(function(pr,i){\n      linha(pr[0],PG.mE+7+i*pw,py,{tam:7.5,cor:C.on2});\n      linha(pr[1],PG.mE+7+i*pw,py+6,{tam:11.5,b:true,cor:C.br});\n    });\n    y+=hPainel+5;\n\n    y+=bloco(PN.baseTexto,PG.mE,y,LARG,{tam:9,ent:1.55})+4;\n\n    y=secao(trad(\"Eixo de compromisso, reserva de \")+(PN.prazo===1?trad(\"1 ano\"):trad(\"3 anos\")),y);\n    var corpo=PN.linhas.map(function(l){\n      return [l.c+\"%\",\n              (l.economia===null)?\"\u2014\":((PN.nuvem!==\"gcp\"?trad(\"at\u00e9 \"):\"\")+brl(l.economia)),\n              brl(l.preso), brl(l.livre)];\n    });\n    d.autoTable({\n      startY:y, margin:{left:PG.mE,right:PG.mD},\n      head:[[trad(\"Cobertura\"), PN.cabecalhoEconomia, trad(\"Preso pelo prazo,\\npor m\u00eas\"), trad(\"Livre para sair\\nsem multa\")]],\n      body:corpo,\n      theme:\"plain\",\n      styles:{font:\"Mt\",fontSize:9,cellPadding:{top:2.3,bottom:2.3,left:3,right:3},textColor:C.tx},\n      headStyles:{font:\"Mt\",fontStyle:\"bold\",fontSize:7.5,fillColor:C.nv,textColor:C.br,halign:\"right\",valign:\"middle\"},\n      bodyStyles:{lineWidth:{bottom:0.15},lineColor:C.ln},\n      alternateRowStyles:{fillColor:C.sf},\n      columnStyles:{0:{halign:\"left\",fontStyle:\"bold\",textColor:C.ink},\n                    1:{halign:\"right\",fontStyle:\"bold\",textColor:PN.temTaxa?C.vd:C.ln2},\n                    2:{halign:\"right\"},3:{halign:\"right\"}},\n      didParseCell:function(h){ if(h.section===\"head\" && h.column.index===0) h.cell.styles.halign=\"left\"; }\n    });\n    y=d.lastAutoTable.finalY+4;\n    y+=bloco(PN.notaTaxa,PG.mE,y,LARG,{tam:8,ent:1.5});\n    \/\/ ---------------- eixo de calendario, na mesma pagina se couber ----------------\n    var hCal = 14 + altura(PN.usoTitulo,LARG,11,1.4) + 4 + altura(PN.usoSub,LARG,9.5,1.6) + 5\n             + (PN.usoValor ? 24 : 0) + altura(PN.usoLeg,LARG,9,1.6) + 4\n             + (PN.usoExtra ? altura(PN.usoExtra,LARG,9,1.6)+4 : 0)\n             + (PN.notaUso ? altura(PN.notaUso,LARG-11,8.5,1.5)+18 : 0);\n    if(y + hCal > LIMITE) y=novaPagina(trad(\"Onde d\u00e1 para estimar valor\"),trad(\"Estimativa de ordem de grandeza\"));\n    else y += 5;\n    y=titulo([trad(\"Eixo de calend\u00e1rio\")],y)+1;\n    y+=bloco(PN.usoTitulo,PG.mE,y,LARG,{tam:11,b:true,cor:C.ink,ent:1.4})+4;\n    y+=bloco(PN.usoSub,PG.mE,y,LARG,{tam:9.5,ent:1.6})+5;\n\n    if(PN.usoValor){\n      d.setFillColor(C.sf[0],C.sf[1],C.sf[2]); d.rect(PG.mE,y,LARG,18,\"F\");\n      linha(trad(\"TETO ESTIMADO\"),PG.mE+6,y+6.5,{tam:7.5,b:true,cor:C.nv});\n      linha(PN.usoValor,PG.mE+6,y+14,{tam:15,b:true,cor:C.vd});\n      y+=24;\n    }\n\n    y+=bloco(PN.usoLeg,PG.mE,y,LARG,{tam:9,ent:1.6})+4;\n    if(PN.usoExtra) y+=bloco(PN.usoExtra,PG.mE,y,LARG,{tam:9,ent:1.6})+4;\n    if(PN.notaUso) y=caixa(trad(\"O que este n\u00famero n\u00e3o sabe\"),[PN.notaUso],y,C.lar);\n\n    \/\/ ---------------- o que fazer: prioridade e depois as demais ----------------\n    \/\/ Uma secao so. As dimensoes que entram na ordem sugerida nao se repetem\n    \/\/ na lista de baixo, senao o documento diria a mesma coisa duas vezes.\n    y=novaPagina(trad(\"O que fazer a seguir\"),trad(\"Consultoria de T.I. especializada em infraestrutura\"));\n    y=titulo([trad(\"Por onde come\u00e7ar\")],y)+1;\n\n    var introComecar = trad(\"Ordem sugerida a partir do que voc\u00ea respondeu, e n\u00e3o um plano de projeto. A sequ\u00eancia segue o que a FinOps Foundation descreve sobre as fases: a otimiza\u00e7\u00e3o parte da vis\u00e3o obtida na etapa de visibilidade e rateio.\");\n    y+=bloco(introComecar,PG.mE,y,LARG-14,{tam:8.5,ent:1.5})+7;\n\n    var usados = {};\n    if(PN.comecarVazio){\n      y+=bloco(trad(\"Nas seis dimens\u00f5es voc\u00ea j\u00e1 est\u00e1 acima do degrau inicial, e nos dois eixos com valor n\u00e3o h\u00e1 nada estim\u00e1vel neste cen\u00e1rio. N\u00e3o temos o que sugerir sem ler a sua fatura.\"),\n        PG.mE,y,LARG,{tam:9,ent:1.55})+6;\n    } else {\n      PN.comecar.forEach(function(pp,i){\n        usados[pp.id]=true;\n        d.setFillColor(C.lar[0],C.lar[1],C.lar[2]);\n        d.circle(PG.mE+3, y-1.3, 3, \"F\");\n        linha(String(i+1), PG.mE+3, y, {tam:8,b:true,cor:C.br,al:\"center\"});\n        linha(pp.titulo, PG.mE+9.5, y, {tam:9.5,b:true,cor:C.ink});\n        y+=4.6;\n        linha(pp.dim.toUpperCase(), PG.mE+9.5, y, {tam:7.5,b:true,cor:C.lar});\n        y+=4.8;\n        y+=bloco(pp.acao, PG.mE+9.5, y, LARG-9.5, {tam:9,ent:1.5})+2.5;\n        y+=bloco(pp.porque, PG.mE+9.5, y, LARG-9.5, {tam:8,cor:C.cz,ent:1.5})+6.5;\n      });\n    }\n\n    var restantes = PN.niveis.filter(function(n){\n      if(usados[n.id]) return false;\n      return !!((n.id===\"taxa\") ? PN.passoTaxa : ((n.id===\"uso\") ? PN.passoUso : n.passo));\n    });\n    if(restantes.length){\n      y+=2;\n      y=secao(trad(\"O degrau seguinte nas outras dimens\u00f5es\"),y);\n      restantes.forEach(function(n,i){\n        var passo = (n.id===\"taxa\") ? PN.passoTaxa : ((n.id===\"uso\") ? PN.passoUso : n.passo);\n        var h = 4.8+4.8 + altura(passo,LARG,9,1.5) + 4.5;\n        if(y + h > LIMITE) y=novaPagina(trad(\"O que fazer a seguir\"),trad(\"Consultoria de T.I. especializada em infraestrutura\"));\n        else if(i>0){ regua(y); y+=4.5; }\n        linha(n.nome,PG.mE,y,{tam:9.5,b:true,cor:C.ink});\n        var et=\" \"+n.rotulo.toUpperCase()+\" \";\n        fonte(true,7.5,C.br);\n        var ew=d.getTextWidth(et)+2;\n        d.setFillColor(C.lar[0],C.lar[1],C.lar[2]);\n        d.rect(PG.larg-PG.mD-ew,y-3.4,ew,4.8,\"F\");\n        linha(et,PG.larg-PG.mD-ew+1,y,{tam:7.5,b:true,cor:C.br});\n        y+=4.8;\n        linha(trad(\"Hoje: \")+n.resposta.toLowerCase(),PG.mE,y,{tam:8.5,cor:C.cz});\n        y+=4.8;\n        y+=bloco(passo,PG.mE,y,LARG,{tam:9,ent:1.5})+3.5;\n      });\n    }\n\n    \/\/ ---------------- pagina 6, saida e ferramentas ----------------\n    y=novaPagina(trad(\"O prazo de cada desconto\"),trad(\"Fontes mais adiante neste documento\"));\n    y=titulo([trad(\"Regras de sa\u00edda na \")+PN.nomeNuvem],y)+1;\n    y+=bloco(trad(\"Todo desconto de compromisso \u00e9 uma troca: pre\u00e7o menor por prazo assinado. Esta se\u00e7\u00e3o existe porque a decis\u00e3o de reservar \u00e9 mais sobre a sa\u00edda do que sobre o percentual.\"),\n      PG.mE,y,LARG-12,{tam:9.5,ent:1.55})+6;\n\n    PN.saida.forEach(function(l,i){\n      if(i>0){ regua(y); y+=4.5; }\n      linha(l[0],PG.mE,y,{tam:9.5,b:true,cor:C.nv}); y+=5;\n      y+=bloco(l[1],PG.mE,y,LARG,{tam:8.5,ent:1.55})+3.5;\n    });\n\n    y+=2;\n    y=secao(trad(\"Pontos de aten\u00e7\u00e3o espec\u00edficos da \")+PN.nomeNuvem,y);\n    y=caixa(null,PN.alertas,y,C.lar);\n\n    y+=1;\n    y=secao(PN.gratisTitulo,y);\n    PN.gratis.forEach(function(t){ y+=bloco(t,PG.mE,y,LARG,{tam:8.5,ent:1.5})+3; });\n    \/\/ ---------------- pagina 7, metodo e fechamento ----------------\n    y=novaPagina(trad(\"M\u00e9todo e fontes\"),trad(\"Estimativa de ordem de grandeza, n\u00e3o substitui leitura de fatura\"));\n    y=titulo([trad(\"De onde v\u00eam os n\u00fameros\")],y)+3;\n\n    var fontes=[\n      [trad(\"28% e 46%\"),trad(\"Desconto do compromisso flex\u00edvel do Google para s\u00e9ries de uso geral, em 1 e 3 anos. Valor exato, n\u00e3o teto, e j\u00e1 em regime de pagamento mensal.\"),trad(\"Google Cloud, Committed use discounts for Compute Engine\")],\n      [trad(\"11% a 65%\"),trad(\"Faixa oficial do savings plan para computa\u00e7\u00e3o do Azure. Os 65% correspondem a uma M64dsv2 Ubuntu em East US por 36 meses. A Microsoft n\u00e3o publica percentual por prazo.\"),trad(\"Microsoft, p\u00e1gina de Savings plans, nota de rodap\u00e9 1\")],\n      [trad(\"at\u00e9 66%\"),trad(\"Teto do Compute Savings Plans da AWS, o plano mais flex\u00edvel. A AWS n\u00e3o publica o percentual de 1 ano, apenas que 3 anos rende mais.\"),trad(\"AWS, Savings Plans User Guide\")]\n    ];\n    var cw=(LARG-2*5)\/3, base=y;\n    fontes.forEach(function(f,i){\n      var x=PG.mE+i*(cw+5), yy=base;\n      d.setFillColor(C.nv[0],C.nv[1],C.nv[2]); d.rect(x,yy,cw,0.6,\"F\"); yy+=6;\n      linha(f[0],x,yy,{tam:14,b:true,cor:C.bl}); yy+=6;\n      yy+=bloco(f[1],x,yy,cw,{tam:7.5,ent:1.5})+2;\n      bloco(f[2],x,yy,cw,{tam:7,cor:C.cz,ent:1.45});\n    });\n    y=base+50;\n\n    y=secao(trad(\"Como a conta \u00e9 feita\"),y);\n    [[trad(\"Eixo de taxa. \"),trad(\"A base sem compromisso multiplicada pela cobertura escolhida e pelo percentual do fabricante. As colunas de valor preso e valor livre n\u00e3o dependem de percentual nenhum, e s\u00e3o exatas nas tr\u00eas nuvens.\")],\n     [trad(\"Eixo de calend\u00e1rio. \"),trad(\"As horas fora da janela informada, sobre o gasto n\u00e3o produtivo informado. Sai como teto. No Google sai como faixa, porque desligar reduz o Sustained Use Discount, e a conta usa a tabela oficial por faixa de uso mensal.\")],\n     [trad(\"Faixas de resposta. \"),trad(\"Usam o ponto m\u00e9dio. A faixa de 15 a 30 l\u00ea 22,5. A faixa aberta superior usa o piso, que \u00e9 o tratamento conservador.\")],\n     [trad(\"Escada de maturidade. \"),trad(\"Quatro n\u00edveis adaptados do modelo da FinOps Foundation, que usa os est\u00e1gios Crawl, Walk e Run. Licenciado em CC BY 4.0, que permite adapta\u00e7\u00e3o com atribui\u00e7\u00e3o. Consultas \u00e0s p\u00e1ginas oficiais de AWS, Azure e Google em setembro de 2026.\")]\n    ].forEach(function(pp){\n      fonte(true,8,C.ink);\n      var w=d.getTextWidth(pp[0]);\n      d.text(pp[0],PG.mE,y);\n      fonte(false,8,C.tx);\n      var ls=d.splitTextToSize(pp[1],LARG-w);\n      d.text(ls[0],PG.mE+w,y);\n      if(ls.length>1){\n        var resto=d.splitTextToSize(pp[1].slice(ls[0].length).replace(\/^\\s+\/,\"\"),LARG);\n        d.text(resto,PG.mE,y+4.2,{lineHeightFactor:1.5});\n        y+=4.2*resto.length;\n      }\n      y+=6.5;\n    });\n\n    y+=1;\n    y=secao(trad(\"O escopo deste documento\"),y);\n    y+=bloco(PN.fecho1,PG.mE,y,LARG,{tam:8.5,ent:1.5})+4;\n\n    var hc = 20 + altura(PN.fecho2,LARG-16,8.5,1.5) + (PN.fecho3 ? (altura(PN.fecho3,LARG-16,8.5,1.5)+4) : 0) + 22;\n    d.setFillColor(C.nv[0],C.nv[1],C.nv[2]); d.rect(PG.mE,y,LARG,hc,\"F\");\n    var cy=y+9;\n    linha(trad(\"PR\u00d3XIMO PASSO\"),PG.mE+8,cy,{tam:7.5,b:true,cor:C.on2}); cy+=7.5;\n    fonte(true,14,C.br); d.text(trad(\"Este documento n\u00e3o leu a sua fatura\"),PG.mE+8,cy); cy+=6.5;\n    cy+=bloco(PN.fecho2,PG.mE+8,cy,LARG-16,{tam:8.5,cor:C.on2,ent:1.5})+3;\n    if(PN.fecho3) cy+=bloco(PN.fecho3,PG.mE+8,cy,LARG-16,{tam:8.5,cor:C.gr,ent:1.5})+3;\n    d.setDrawColor(70,76,130); d.setLineWidth(0.15); d.line(PG.mE+8,cy,PG.larg-PG.mD-8,cy); cy+=5.5;\n    linha(\"Integrity-UX\",PG.mE+8,cy,{tam:8,b:true,cor:C.br});\n    var wc=d.getTextWidth(\"Integrity-UX\");\n    linha(trad(\"  \u00b7  Consultoria de T.I. especializada em infraestrutura, dados e intelig\u00eancia artificial\"),PG.mE+8+wc,cy,{tam:8,cor:C.on2});\n    cy+=5;\n    linha(\"+55 11 3539-9818  \u00b7  contato@integrity-ux.com.br  \u00b7  integrity-ux.com.br\",PG.mE+8,cy,{tam:8,cor:C.on2});\n    \/\/ Rodapes por ultimo, com o total real de paginas.\n    var TOTAL = d.getNumberOfPages();\n    for(var pg=2; pg<=TOTAL; pg++){\n      d.setPage(pg);\n      rodape(pg, TOTAL, NOTAS[pg-1] || trad(\"Consultoria de T.I. especializada em infraestrutura\"));\n    }\n\n    return d;\n  }\n\n  function nomeArquivo(){\n    var e=(DESTINO&&DESTINO.empresa)?DESTINO.empresa:\"\";\n    var s=e.toLowerCase().normalize(\"NFD\").split(\"\").filter(function(c){return \/[a-z0-9 -]\/.test(c)}).join(\"\").trim().replace(\/\\s+\/g,\"-\");\n    return trad(\"panorama-de-nuvem-integrity-ux\")+(s?(\"-\"+s):\"\")+\".pdf\";\n  }\n\n  function baixar(arq){\n    var u=URL.createObjectURL(arq);\n    var a=document.createElement(\"a\");\n    a.href=u; a.download=arq.name;\n    document.body.appendChild(a); a.click(); a.remove();\n    setTimeout(function(){ URL.revokeObjectURL(u); }, 5000);\n  }\n\n  \/\/ Coloca o PDF no campo de upload do formulario, para o Elementor mandar\n  \/\/ junto como anexo. O campo fica escondido por CSS.\n  function anexar(arq){\n    var inp = document.querySelector('#diagnostico .elementor-field-group-documento input[type=\"file\"]');\n    if(!inp) return false;\n    try{\n      var dt=new DataTransfer();\n      dt.items.add(arq);\n      inp.files=dt.files;\n      inp.dispatchEvent(new Event(\"change\",{bubbles:true}));\n      return inp.files.length===1;\n    }catch(e){ return false; }\n  }\n\n  function aviso(txt,erro){\n    var el=document.getElementById(\"pn-pdfAviso\");\n    if(!el) return;\n    el.hidden=!txt; el.textContent=txt||\"\";\n    el.className=\"ix-hint\"+(erro?\" ix-erro\":\"\");\n  }\n\n  \/\/ salvar===false devolve o arquivo em memoria em vez de baixar. Serve para\n  \/\/ conferencia, e e o mesmo caminho de codigo que o visitante percorre.\n  function gerarPdf(salvar){\n    if(!PN) return Promise.resolve(false);\n    aviso(trad(\"Montando o seu documento...\"));\n    return preparar().then(function(){\n      var d=montar();\n      if(salvar===false){ aviso(\"\"); return d.output(\"blob\"); }\n      d.save(nomeArquivo());\n      aviso(\"\");\n      if(window.gtag) gtag(\"event\",\"panorama_pdf\");\n      return true;\n    }).catch(function(e){\n      aviso(trad(\"N\u00e3o foi poss\u00edvel montar o PDF agora. O resumo do seu panorama foi enviado por e-mail do mesmo jeito.\"),true);\n      if(window.console) console.warn(\"panorama, PDF:\",e);\n      return false;\n    });\n  }\n  window.pnGerarPdf = gerarPdf;      \/\/ util para conferencia manual\n\n  \/\/ ao pedir o PDF, ja adianta o download das bibliotecas enquanto a pessoa preenche\n  var btnPdf=document.getElementById(\"pn-pedirPdf\");\n  if(btnPdf) btnPdf.addEventListener(\"click\",function(){ preparar().catch(function(){}); });\n\n  \/\/ Em fase de captura, antes do Elementor montar o envio: le nome, empresa e\n  \/\/ cargo, monta o PDF e anexa. A montagem e sincrona, porque as bibliotecas ja\n  \/\/ foram baixadas quando a pessoa clicou em pedir o documento.\n  document.addEventListener(\"submit\",function(e){\n    var f=e.target;\n    if(!f || !f.closest || !f.closest(\"#diagnostico\")) return;\n    function v(n){ var el=f.querySelector('[name=\"form_fields['+n+']\"]'); return el?String(el.value||\"\").trim():\"\"; }\n    DESTINO={nome:v(\"nome\"),empresa:v(\"empresa\"),cargo:v(\"cargo\")};\n\n    \/\/ Primeiro nome, para a abertura do e-mail. \"Diego,\" le melhor que\n    \/\/ \"Diego Santos,\", e o campo do formulario so tem o nome inteiro.\n    var oculto=f.querySelector('[name=\"form_fields[primeiro_nome]\"]');\n    if(oculto){\n      var partes=DESTINO.nome.split(\/\\s+\/).filter(function(x){ return x; });\n      oculto.value = partes.length ? partes[0] : DESTINO.nome;\n    }\n    ARQUIVO=null;\n    if(PRONTO && PN){\n      try{\n        var d=montar();\n        ARQUIVO=new File([d.output(\"blob\")], nomeArquivo(), {type:\"application\/pdf\"});\n        anexar(ARQUIVO);\n      }catch(err){\n        ARQUIVO=null;\n        if(window.console) console.warn(\"panorama, PDF no envio:\",err);\n      }\n    }\n  },true);\n\n  \/\/ o Elementor dispara este evento por jQuery; o proprio site ja o usa no GA4\n  if(window.jQuery){\n    jQuery(document).on(\"submit_success\",function(){\n      if(ARQUIVO){\n        \/\/ Caminho normal: o PDF ja seguiu anexado no envio. Nada baixa aqui.\n        ARQUIVO=null;\n        if(window.gtag) gtag(\"event\",\"panorama_pdf\");\n        return;\n      }\n      \/\/ Retaguarda, e so ela: as bibliotecas nao ficaram prontas a tempo, entao\n      \/\/ nao houve anexo. Sem isto a pessoa ficaria sem documento nenhum.\n      if(PN) gerarPdf();\n    });\n  }\n\n  render();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-4582","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Avalia\u00e7\u00e3o de nuvem que termina em reais, n\u00e3o em nota<\/title>\n<meta name=\"description\" content=\"Seis frentes que decidem o custo da sua nuvem, estimativa em reais onde ela \u00e9 poss\u00edvel e o prazo que cada desconto exige. Sem cadastro para ver o resultado.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/integrity-ux.com.br\/en\/panorama-de-nuvem\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Avalia\u00e7\u00e3o de nuvem que termina em reais, n\u00e3o em nota\" \/>\n<meta property=\"og:description\" content=\"Seis frentes que decidem o custo da sua nuvem, estimativa em reais onde ela \u00e9 poss\u00edvel e o prazo que cada desconto exige. Sem cadastro para ver o resultado.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/integrity-ux.com.br\/en\/panorama-de-nuvem\/\" \/>\n<meta property=\"og:site_name\" content=\"Integrity-UX - Consultoria de T.I. Especializada em Infraestrutura\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-29T01:57:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/panorama-de-nuvem\\\/\",\"url\":\"https:\\\/\\\/integrity-ux.com.br\\\/panorama-de-nuvem\\\/\",\"name\":\"Avalia\u00e7\u00e3o de nuvem que termina em reais, n\u00e3o em nota\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/#website\"},\"datePublished\":\"2026-09-28T14:49:51+00:00\",\"dateModified\":\"2026-09-29T01:57:54+00:00\",\"description\":\"Seis frentes que decidem o custo da sua nuvem, estimativa em reais onde ela \u00e9 poss\u00edvel e o prazo que cada desconto exige. Sem cadastro para ver o resultado.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/panorama-de-nuvem\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/integrity-ux.com.br\\\/panorama-de-nuvem\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/panorama-de-nuvem\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/integrity-ux.com.br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Panorama de nuvem\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/#website\",\"url\":\"https:\\\/\\\/integrity-ux.com.br\\\/\",\"name\":\"Integrity-UX - Consultoria de T.I. Especializada em Infraestrutura\",\"description\":\"Consultoria de TI especializada em infraestrutura, em S\u00e3o Paulo desde 2010, atendendo empresas no Brasil e no exterior.\",\"publisher\":{\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/integrity-ux.com.br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/#organization\",\"name\":\"Integrity-UX\",\"url\":\"https:\\\/\\\/integrity-ux.com.br\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/integrity-ux.com.br\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/logo-integrity-ux-hd.png\",\"contentUrl\":\"https:\\\/\\\/integrity-ux.com.br\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/logo-integrity-ux-hd.png\",\"width\":190,\"height\":78,\"caption\":\"Integrity-UX\"},\"image\":{\"@id\":\"https:\\\/\\\/integrity-ux.com.br\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/integrity-ux\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@integrityux2471\",\"https:\\\/\\\/www.crunchbase.com\\\/organization\\\/integrity-ux\",\"https:\\\/\\\/www.google.com\\\/maps?cid=8553112674062418571\",\"https:\\\/\\\/marketplace.microsoft.com\\\/pt-br\\\/partners\\\/e7d3f682-5fa9-4c18-8edc-369c3f4602de\\\/overview\"],\"description\":\"A Integrity-UX \u00e9 uma consultoria de TI especializada em infraestrutura para m\u00e9dias e grandes empresas, com servi\u00e7os de cloud computing, DevOps, gerenciamento e arquitetura de dados, automa\u00e7\u00e3o, backup, disaster recovery, monitoramento e seguran\u00e7a da informa\u00e7\u00e3o.\",\"telephone\":\"+55 11 3539-9818\",\"email\":\"contato@integrity-ux.com.br\",\"foundingDate\":\"2010-10-02\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Av. Queiroz Filho, 1560 - Conjunto 09 Gaivota - Vila Hamburguesa\",\"addressLocality\":\"S\u00e3o Paulo\",\"addressRegion\":\"SP\",\"postalCode\":\"05319-000\",\"addressCountry\":\"BR\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Avalia\u00e7\u00e3o de nuvem que termina em reais, n\u00e3o em nota","description":"Seis frentes que decidem o custo da sua nuvem, estimativa em reais onde ela \u00e9 poss\u00edvel e o prazo que cada desconto exige. Sem cadastro para ver o resultado.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/integrity-ux.com.br\/en\/panorama-de-nuvem\/","og_locale":"en_US","og_type":"article","og_title":"Avalia\u00e7\u00e3o de nuvem que termina em reais, n\u00e3o em nota","og_description":"Seis frentes que decidem o custo da sua nuvem, estimativa em reais onde ela \u00e9 poss\u00edvel e o prazo que cada desconto exige. Sem cadastro para ver o resultado.","og_url":"https:\/\/integrity-ux.com.br\/en\/panorama-de-nuvem\/","og_site_name":"Integrity-UX - Consultoria de T.I. Especializada em Infraestrutura","article_modified_time":"2026-09-29T01:57:54+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/integrity-ux.com.br\/panorama-de-nuvem\/","url":"https:\/\/integrity-ux.com.br\/panorama-de-nuvem\/","name":"Avalia\u00e7\u00e3o de nuvem que termina em reais, n\u00e3o em nota","isPartOf":{"@id":"https:\/\/integrity-ux.com.br\/#website"},"datePublished":"2026-09-28T14:49:51+00:00","dateModified":"2026-09-29T01:57:54+00:00","description":"Seis frentes que decidem o custo da sua nuvem, estimativa em reais onde ela \u00e9 poss\u00edvel e o prazo que cada desconto exige. Sem cadastro para ver o resultado.","breadcrumb":{"@id":"https:\/\/integrity-ux.com.br\/panorama-de-nuvem\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/integrity-ux.com.br\/panorama-de-nuvem\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/integrity-ux.com.br\/panorama-de-nuvem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/integrity-ux.com.br\/"},{"@type":"ListItem","position":2,"name":"Panorama de nuvem"}]},{"@type":"WebSite","@id":"https:\/\/integrity-ux.com.br\/#website","url":"https:\/\/integrity-ux.com.br\/","name":"Integrity-UX - IT Consulting Specialized in Infrastructure","description":"Consultoria de TI especializada em infraestrutura, em S\u00e3o Paulo desde 2010, atendendo empresas no Brasil e no exterior.","publisher":{"@id":"https:\/\/integrity-ux.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/integrity-ux.com.br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/integrity-ux.com.br\/#organization","name":"Integrity-UX","url":"https:\/\/integrity-ux.com.br\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/integrity-ux.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/integrity-ux.com.br\/wp-content\/uploads\/2026\/09\/logo-integrity-ux-hd.png","contentUrl":"https:\/\/integrity-ux.com.br\/wp-content\/uploads\/2026\/09\/logo-integrity-ux-hd.png","width":190,"height":78,"caption":"Integrity-UX"},"image":{"@id":"https:\/\/integrity-ux.com.br\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/integrity-ux\/","https:\/\/www.youtube.com\/@integrityux2471","https:\/\/www.crunchbase.com\/organization\/integrity-ux","https:\/\/www.google.com\/maps?cid=8553112674062418571","https:\/\/marketplace.microsoft.com\/pt-br\/partners\/e7d3f682-5fa9-4c18-8edc-369c3f4602de\/overview"],"description":"A Integrity-UX \u00e9 uma consultoria de TI especializada em infraestrutura para m\u00e9dias e grandes empresas, com servi\u00e7os de cloud computing, DevOps, gerenciamento e arquitetura de dados, automa\u00e7\u00e3o, backup, disaster recovery, monitoramento e seguran\u00e7a da informa\u00e7\u00e3o.","telephone":"+55 11 3539-9818","email":"contato@integrity-ux.com.br","foundingDate":"2010-10-02","address":{"@type":"PostalAddress","streetAddress":"Av. Queiroz Filho, 1560 - Conjunto 09 Gaivota - Vila Hamburguesa","addressLocality":"S\u00e3o Paulo","addressRegion":"SP","postalCode":"05319-000","addressCountry":"BR"}}]}},"_links":{"self":[{"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/pages\/4582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/comments?post=4582"}],"version-history":[{"count":1,"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/pages\/4582\/revisions"}],"predecessor-version":[{"id":4583,"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/pages\/4582\/revisions\/4583"}],"wp:attachment":[{"href":"https:\/\/integrity-ux.com.br\/en\/wp-json\/wp\/v2\/media?parent=4582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}