{"id":8,"date":"2019-08-05T09:05:22","date_gmt":"2019-08-05T09:05:22","guid":{"rendered":"http:\/\/localhost\/faiberplas\/?page_id=8"},"modified":"2026-10-27T14:55:19","modified_gmt":"2026-10-27T17:55:19","slug":"home","status":"publish","type":"page","link":"https:\/\/faiberplas.com.br\/web\/","title":{"rendered":"Home"},"content":{"rendered":"\n<!-- FAIBERPLAS | P\u00c1GINA: HOME | BLOCO HTML PERSONALIZADO\n     1) Suba a pasta site-principal\/media na M\u00eddia (pode ser uma vez s\u00f3, serve para todas as p\u00e1ginas).\n     2) Confira a URL de um arquivo; se a pasta n\u00e3o for \/web\/wp-content\/uploads\/2026\/10\/, troque (Ctrl+H) por ela.\n     3) Modelo da p\u00e1gina: Blank Page. Cole este c\u00f3digo num bloco HTML personalizado. -->\n<style>\n\/* Esconde o bot\u00e3o flutuante do plugin Click to Chat nesta p\u00e1gina (o site tem o pr\u00f3prio) *\/\n.ht-ctc,#ht-ctc-chat,.ht-ctc-chat,.ht_ctc_chat_style,.ht-ctc-widget,#ht-ctc-widget{display:none!important}\n\/* Tema (Betheme): esconde cabe\u00e7alho, rodap\u00e9 e barra de t\u00edtulo do site s\u00f3 nesta p\u00e1gina *\/\nbody:has(#fp) #mfn-header-template,body:has(#fp) #mfn-footer-template,body:has(#fp) #Header_wrapper,\nbody:has(#fp) #Footer,body:has(#fp) #Subheader,body:has(#fp) #back_to_top,body:has(#fp) .mfn-header-tmpl,body:has(#fp) .mfn-footer-tmpl{display:none!important}\nbody:has(#fp) #Wrapper{padding:0!important;margin:0!important;background:#062329}\n\/* Tema (Betheme): tira margens e largura m\u00e1xima do conte\u00fado s\u00f3 nesta p\u00e1gina *\/\nbody:has(#fp) #Content,body:has(#fp) .content_wrapper,body:has(#fp) .sections_group,body:has(#fp) .entry-content,\nbody:has(#fp) .section_wrapper,body:has(#fp) .the_content_wrapper{padding:0!important;margin:0!important;max-width:none!important;width:100%!important;float:none!important}\nbody:has(#fp) .section.the_content{padding:0!important}\nbody:has(#fp) #fp p:empty{display:none}\n\n#fp,#fp-intro{\n  --abyss:#03161B;\n  --water:#062329;\n  --water-2:#0A2D34;\n  --water-3:#0F3A42;\n  --line:rgba(170,228,228,.13);\n  --line-2:rgba(170,228,228,.24);\n  --foam:#EEF5F4;\n  --mist:#A2BEBF;\n  --faint:#7F9EA0;\n  --glow:#62E0DA;\n  --glow-2:#9BF0EB;\n  --glow-ink:#032A2C;\n  --shallow:#8FD2CF;\n  --ease-out:cubic-bezier(.23,1,.32,1);\n  --ease-io:cubic-bezier(.77,0,.175,1);\n  --r-card:14px;\n  --r-media:20px;\n  --display:\"Bricolage Grotesque\",ui-sans-serif,system-ui,sans-serif;\n  --body:\"Figtree\",ui-sans-serif,system-ui,sans-serif;\n  color-scheme:dark;\n}\n\n\/* =========================================================\n   ENTRADA: a bolha com a marca sobe da espuma e estoura\n   ========================================================= *\/\n#fp-intro{position:fixed;inset:0;z-index:2147483000;overflow:hidden;pointer-events:auto}\n#fp-intro[hidden]{display:none}\n#fp-intro .fi-agua{\n  position:absolute;inset:0;\n  background:\n    radial-gradient(90% 70% at 50% 58%, #CDEFEC 0%, #A6DEDA 38%, #6FBFBC 78%, #4FA3A2 100%);\n}\n#fp-intro.fi-mob .fi-agua{background:radial-gradient(110% 60% at 50% 62%, #5CBDBA 0%, #3C9C9D 40%, #22777C 78%, #16595F 100%)}\n#fp-intro .fi-agua::after{\n  content:\"\";position:absolute;inset:-10%;\n  background:\n    radial-gradient(28% 18% at 32% 38%, rgba(255,255,255,.35), transparent 70%),\n    radial-gradient(22% 14% at 70% 30%, rgba(255,255,255,.22), transparent 70%);\n  animation:fiLuz 6s ease-in-out infinite alternate;\n}\n@keyframes fiLuz{to{transform:translate3d(3%,2%,0) scale(1.08)}}\n#fp-intro canvas{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity .6s ease}\n#fp-intro .fi-pular{\n  position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:3;\n  font:500 13px\/1 var(--body);letter-spacing:.02em;color:#0B3A3C;\n  background:rgba(255,255,255,.78);border:1px solid rgba(11,58,60,.18);border-radius:999px;\n  padding:10px 16px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);\n  transition:transform .16s var(--ease-out),background-color .2s ease,opacity .3s ease;\n}\n#fp-intro .fi-pular:hover{background:rgba(255,255,255,.8)}\n#fp-intro .fi-pular:active{transform:scale(.97)}\n#fp-intro.fi-aberto .fi-pular{opacity:0;pointer-events:none}\n#fp-intro.fi-aberto{pointer-events:none}\n\n\/* =========================================================\n   BASE\n   ========================================================= *\/\n#fp{\n  background:var(--water);color:var(--foam);\n  font:400 17px\/1.6 var(--body);\n  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;\n  overflow-x:clip;position:relative;isolation:isolate;\n  text-rendering:optimizeLegibility;\n}\n#fp *,#fp *::before,#fp *::after{box-sizing:border-box}\n#fp img,#fp video{display:block;max-width:100%}\n#fp img{height:auto}\n#fp ::selection{background:var(--glow);color:var(--glow-ink)}\n#fp a{color:inherit}\n#fp h1,#fp h2,#fp h3,#fp p,#fp ul,#fp ol,#fp figure,#fp dl,#fp dd{margin:0;padding:0}\n#fp ul,#fp ol{list-style:none;color:inherit}\n#fp li{margin:0;color:inherit}\n#fp b,#fp strong{color:inherit}\n#fp q{font-family:inherit;background:none;padding:0;margin:0;border:0;border-radius:0;color:inherit}\n#fp button,#fp input,#fp select,#fp textarea{margin:0;box-shadow:none;border-radius:0;font-family:inherit;text-transform:none;letter-spacing:inherit;float:none;width:auto;height:auto;min-height:0;line-height:inherit}\n#fp button:hover,#fp button:focus{text-decoration:none}\n#fp h1,#fp h2,#fp h3{font-family:var(--display);font-weight:600;letter-spacing:-.025em;line-height:1.04;text-wrap:balance;color:var(--foam)}\n#fp h2{font-size:clamp(34px,4.4vw,60px)}\n#fp h3{font-size:clamp(21px,1.9vw,26px);letter-spacing:-.015em;line-height:1.15}\n#fp p{text-wrap:pretty}\n#fp .fp-lead{font-size:clamp(17px,1.45vw,20px);color:var(--mist);max-width:56ch;line-height:1.55}\n#fp .fp-wrap{width:min(1320px,100% - 2*clamp(16px,4vw,48px));margin-inline:auto}\n#fp section{padding-block:clamp(72px,9vw,128px)}\n#fp :focus-visible{outline:2px solid var(--glow);outline-offset:3px;border-radius:6px}\n#fp .fp-num{font-variant-numeric:tabular-nums lining-nums}\n#fp .fp-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n\n\/* Bot\u00f5es *\/\n#fp .fp-bt{\n  display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;\n  font:600 16px\/1 var(--body);letter-spacing:.005em;text-decoration:none;cursor:pointer;\n  padding:17px 26px;border-radius:999px;border:1px solid transparent;\n  transition:transform .16s var(--ease-out),background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s ease;\n}\n#fp .fp-bt:active{transform:scale(.97)}\n#fp .fp-bt svg{width:18px;height:18px;flex:none}\n#fp .fp-bt--glow{background:var(--glow);color:var(--glow-ink);box-shadow:0 10px 24px -14px rgba(0,0,0,.6)}\n#fp .fp-bt--line{background:transparent;color:var(--foam);border-color:var(--line-2)}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-bt--glow:hover{background:var(--glow-2)}\n  #fp .fp-bt--line:hover{border-color:var(--foam);background:rgba(238,245,244,.05)}\n}\n#fp .fp-bt--sm{padding:12px 18px;font-size:15px}\n\n\/* =========================================================\n   NAV\n   ========================================================= *\/\n#fp .fp-nav{position:sticky;top:10px;z-index:40;height:0;overflow:visible}\n#fp .fp-nav .fp-wrap{\n  display:flex;align-items:center;gap:28px;height:58px;padding:0 10px 0 22px;margin-top:10px;\n  width:min(1180px,100% - 24px);border-radius:999px;\n  background:rgba(3,22,27,.72);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);\n  border:1px solid rgba(170,228,228,.16);box-shadow:0 14px 40px -24px rgba(0,0,0,.7);\n}\n#fp .fp-logo{display:block;flex:none}\n#fp .fp-logo img{height:26px;width:auto}\n#fp .fp-nav nav{margin-left:auto}\n#fp .fp-nav ul{display:flex;gap:28px}\n#fp .fp-nav ul a{font:500 15px\/1 var(--body);color:var(--mist);text-decoration:none;padding:8px 0;transition:color .2s ease}\n#fp .fp-nav ul a:hover{color:var(--foam)}\n#fp .fp-nav .fp-bt{margin-left:4px}\n@media (max-width:980px){#fp .fp-nav nav{display:none}#fp .fp-nav .fp-bt{margin-left:auto}}\n\n\/* =========================================================\n   HERO\n   ========================================================= *\/\n#fp .fp-hero{padding-block:clamp(104px,9vw,140px) clamp(56px,7vw,96px);position:relative}\n#fp .fp-hero::before{\n  content:\"\";position:absolute;z-index:-1;inset:0;pointer-events:none;\n  background:\n    radial-gradient(46% 60% at 78% 46%, rgba(98,224,218,.16), transparent 70%);\n}\n#fp .fp-hero .fp-wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(24px,3vw,48px);align-items:center}\n#fp .fp-hero-txt{grid-column:1 \/ span 6}\n#fp .fp-hero h1{font-size:clamp(44px,5.6vw,84px);letter-spacing:-.035em;line-height:.98;margin-bottom:26px}\n#fp .fp-hero h1 em{font-style:normal;color:var(--glow)}\n#fp .fp-hero .fp-lead{max-width:44ch;margin-bottom:36px}\n#fp .fp-ctas{display:flex;flex-wrap:wrap;gap:12px}\n#fp .fp-hero-media{grid-column:8 \/ span 5;position:relative}\n#fp .fp-hero-media .fp-frame{\n  position:relative;aspect-ratio:4\/5;max-height:min(76vh,760px);margin-left:auto;\n  border-radius:var(--r-media);overflow:hidden;background:var(--water-2);\n  box-shadow:0 40px 80px -40px rgba(0,0,0,.7),0 0 0 1px var(--line);\n}\n#fp .fp-hero-media video,#fp .fp-hero-media img{width:100%;height:100%;object-fit:cover}\n#fp .fp-hero-media figcaption{margin-top:14px;font-size:14px;color:var(--faint);text-align:right}\n@media (max-width:900px){\n  #fp .fp-hero-txt,#fp .fp-hero-media{grid-column:1 \/ -1}\n  #fp .fp-hero-media .fp-frame{aspect-ratio:4\/4.2;max-height:none}\n  #fp .fp-hero-media figcaption{text-align:left}\n}\n\n\/* entrada da home depois da bolha *\/\n#fp.fp-js .fp-in{opacity:0;transform:translateY(22px);filter:blur(8px)}\n#fp.fp-pronto .fp-in{opacity:1;transform:none;filter:none;transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out),filter .9s var(--ease-out);transition-delay:calc(var(--i,0) * 90ms)}\n\n\/* faixa de provas *\/\n#fp .fp-provas{border-block:1px solid var(--line);background:var(--abyss)}\n#fp .fp-provas ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}\n#fp .fp-provas li{padding:26px 24px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:4px}\n#fp .fp-provas li:first-child{border-left:0;padding-left:0}\n#fp .fp-provas b{font:600 20px\/1.2 var(--display);letter-spacing:-.01em}\n#fp .fp-provas span{font-size:15px;color:var(--mist)}\n@media (max-width:900px){\n  #fp .fp-provas ul{grid-template-columns:1fr 1fr}\n  #fp .fp-provas li{padding:20px 16px}\n  #fp .fp-provas li:nth-child(odd){border-left:0;padding-left:0}\n  #fp .fp-provas li:nth-child(n+3){border-top:1px solid var(--line)}\n}\n\n\/* =========================================================\n   MODELOS NA MESMA ESCALA\n   ========================================================= *\/\n#fp .fp-mod-head{display:flex;flex-direction:column;gap:18px;margin-bottom:40px}\n#fp .fp-ferramentas{\n  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;\n  padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:32px;\n}\n#fp .fp-filtro{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border-radius:999px;background:var(--abyss);border:1px solid var(--line)}\n#fp .fp-filtro button{\n  font:500 15px\/1 var(--body);color:var(--mist);background:transparent;border:0;cursor:pointer;\n  padding:11px 16px;border-radius:999px;display:inline-flex;gap:8px;align-items:center;\n  transition:background-color .2s ease,color .2s ease,transform .16s var(--ease-out);\n}\n#fp .fp-filtro button:active{transform:scale(.97)}\n#fp .fp-filtro button small{font-size:13px;color:var(--faint)}\n#fp .fp-filtro button[aria-pressed=\"true\"]{background:var(--foam);color:var(--abyss)}\n#fp .fp-filtro button[aria-pressed=\"true\"] small{color:#46605F}\n#fp .fp-cabe{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px}\n#fp .fp-cabe fieldset{border:0;margin:0;padding:0;display:flex;align-items:flex-end;gap:10px}\n#fp .fp-cabe legend{font-size:14px;color:var(--mist);margin-bottom:8px;padding:0}\n#fp .fp-campo{display:flex;flex-direction:column;gap:6px}\n#fp .fp-campo label{font-size:13px;color:var(--mist)}\n#fp .fp-cabe input{\n  width:112px!important;font:500 16px\/1 var(--body);color:var(--foam);background:var(--abyss);\n  border:1px solid var(--line-2);border-radius:10px;padding:12px 38px 12px 12px;\n  font-variant-numeric:tabular-nums;\n}\n#fp .fp-cabe .fp-un{position:relative}\n#fp .fp-cabe .fp-un::after{content:\"cm\";position:absolute;right:12px;bottom:13px;font-size:14px;color:var(--faint);pointer-events:none}\n#fp .fp-cabe input::placeholder{color:var(--faint)}\n#fp .fp-cabe input:focus{outline:2px solid var(--glow);outline-offset:1px;border-color:transparent}\n#fp .fp-cabe .fp-x{padding-bottom:13px;color:var(--faint)}\n#fp .fp-cabe output{font-size:15px;color:var(--mist);padding-bottom:12px;min-width:16ch}\n#fp .fp-cabe output b{color:var(--glow);font-weight:600}\n#fp .fp-limpar{font:500 14px\/1 var(--body);color:var(--mist);background:none;border:0;padding:12px 4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}\n#fp .fp-limpar[hidden]{display:none}\n\n#fp .fp-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px}\n#fp .fp-card{\n  position:relative;cursor:pointer;display:flex;flex-direction:column;text-align:left;width:100%;\n  background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);\n  padding:0;cursor:pointer;color:inherit;font:inherit;overflow:hidden;\n  transition:border-color .25s ease,transform .2s var(--ease-out),opacity .35s ease,filter .35s ease;\n}\n#fp .fp-card:active{transform:scale(.985)}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-card:hover{border-color:rgba(98,224,218,.45)}\n  #fp .fp-card:hover .fp-tub img{transform:translateY(-2px)}\n}\n#fp .fp-card[hidden]{display:none}\n#fp .fp-card.fp-nao-cabe{opacity:.32;filter:saturate(.3)}\n#fp .fp-palco{\n  position:relative;aspect-ratio:4\/3;overflow:hidden;\n  background:\n    linear-gradient(rgba(170,228,228,.07) 1px,transparent 1px) 0 0 \/ 24px 24px,\n    linear-gradient(90deg,rgba(170,228,228,.07) 1px,transparent 1px) 0 0 \/ 24px 24px,\n    radial-gradient(80% 90% at 50% 40%, #0E3C45 0%, #082A31 100%);\n  border-bottom:1px solid var(--line);\n}\n#fp .fp-capa{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;transition:opacity .4s var(--ease-out),transform .6s var(--ease-out)}\n\/* vista de cima em p\u00e9, cabeceira para cima; a maior pe\u00e7a (403 cm) ocupa quase toda a altura *\/\n#fp .fp-escala{position:absolute;inset:16px 40px 34px 16px;display:flex;align-items:center;justify-content:center}\n#fp .fp-tub{position:relative;height:calc(var(--l) \/ 410 * 100%);aspect-ratio:var(--w) \/ var(--l)}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-card:hover .fp-capa{opacity:0;transform:scale(1.03)}\n}\n#fp .fp-tub img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(0,0,0,.45));transition:transform .35s var(--ease-out)}\n#fp .fp-cota-x,#fp .fp-cota-y{position:absolute;color:var(--shallow);font:500 12px\/1 var(--body);font-variant-numeric:tabular-nums}\n#fp .fp-cota-x{left:0;right:0;top:calc(100% + 12px);border-top:1px solid currentColor;opacity:.85}\n#fp .fp-cota-x::before,#fp .fp-cota-x::after{content:\"\";position:absolute;top:-5px;width:1px;height:9px;background:currentColor}\n#fp .fp-cota-x::before{left:0}#fp .fp-cota-x::after{right:0}\n#fp .fp-cota-x span{position:absolute;left:50%;top:6px;transform:translateX(-50%);white-space:nowrap}\n#fp .fp-cota-y{top:0;bottom:0;left:calc(100% + 12px);border-left:1px solid currentColor;opacity:.85}\n#fp .fp-cota-y::before,#fp .fp-cota-y::after{content:\"\";position:absolute;left:-5px;height:1px;width:9px;background:currentColor}\n#fp .fp-cota-y::before{top:0}#fp .fp-cota-y::after{bottom:0}\n#fp .fp-cota-y span{position:absolute;top:50%;left:7px;transform:translateY(-50%);white-space:nowrap}\n#fp .fp-card-info{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px}\n#fp .fp-card-info h3{font-size:21px}\n#fp .fp-card-info .fp-cod{font-size:13px;color:var(--faint);font-weight:400;margin-left:6px;letter-spacing:0;font-family:var(--body)}\n#fp .fp-dados{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:15px;color:var(--mist)}\n#fp .fp-dados b{color:var(--foam);font-weight:600}\n#fp .fp-ver{font:600 14px\/1.2 var(--body);color:var(--glow);display:inline-flex;align-items:center;gap:6px;margin-top:2px;background:none;border:0;padding:0;cursor:pointer;align-self:flex-start}\n#fp .fp-ver::after{content:\"\";position:absolute;inset:0;border-radius:inherit}\n#fp .fp-ver:focus-visible{outline:none}\n#fp .fp-card:has(.fp-ver:focus-visible){outline:2px solid var(--glow);outline-offset:3px}\n#fp .fp-ver svg{width:15px;height:15px;transition:transform .2s var(--ease-out)}\n@media (hover:hover) and (pointer:fine){#fp .fp-card:hover .fp-ver svg{transform:translateX(3px)}}\n#fp .fp-vazio{display:none;padding:40px;border:1px dashed var(--line-2);border-radius:var(--r-card);color:var(--mist);text-align:center}\n#fp .fp-vazio.on{display:block}\n#fp .fp-mod-nota{margin-top:22px;font-size:14px;color:var(--faint)}\n@media (max-width:600px){\n  #fp .fp-grade{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}\n  #fp .fp-cota-x,#fp .fp-cota-y{font-size:10px}\n  #fp .fp-cota-x{top:calc(100% + 8px)}#fp .fp-cota-y{left:calc(100% + 8px)}\n  #fp .fp-card-info{padding:12px 12px 14px;gap:6px}\n  #fp .fp-card-info h3{font-size:16px}\n  #fp .fp-card-info .fp-cod{display:block;margin:4px 0 0}\n  #fp .fp-dados{font-size:13px;gap:2px 10px}\n  #fp .fp-dados span:nth-child(n+3){display:none}\n  #fp .fp-ver{font-size:13px}\n  #fp .fp-ferramentas{gap:18px}\n  #fp .fp-filtro button{padding:10px 12px;font-size:14px}\n}\n\n\/* =========================================================\n   LINHAS: o n\u00edvel da \u00e1gua sobe\n   ========================================================= *\/\n#fp .fp-linhas{border-block:1px solid var(--line)}\n#fp .fp-linhas .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:center}\n#fp .fp-linhas .fp-lead{margin-top:20px}\n#fp .fp-seg{display:flex;flex-direction:column;gap:8px;margin-top:36px;max-width:440px}\n#fp .fp-seg button{\n  text-align:left;display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;\n  background:transparent;border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;cursor:pointer;color:var(--foam);font:inherit;\n  transition:border-color .2s ease,background-color .2s ease,transform .16s var(--ease-out);\n}\n#fp .fp-seg button:active{transform:scale(.985)}\n#fp .fp-seg button b{font:600 20px\/1.1 var(--display);letter-spacing:-.01em}\n#fp .fp-seg button span{font-size:14px;color:var(--mist);grid-column:1}\n#fp .fp-seg button i{grid-row:1 \/ span 2;grid-column:2;font-style:normal;font-size:13px;color:var(--faint)}\n#fp .fp-seg button[aria-pressed=\"true\"]{border-color:var(--glow);background:rgba(98,224,218,.08)}\n#fp .fp-seg button[aria-pressed=\"true\"] i{color:var(--glow)}\n#fp .fp-seg p{font-size:15px;color:var(--mist);margin-top:14px}\n\n#fp .fp-tanque{\n  position:relative;border-radius:var(--r-media);overflow:hidden;\n  border:1px solid var(--line-2);background:linear-gradient(#0B2B32,#06212A);\n  min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;\n}\n#fp .fp-nivel{\n  position:absolute;left:0;right:0;bottom:0;height:100%;transform-origin:bottom;\n  transform:scaleY(var(--nivel,.3));transition:transform 1.1s var(--ease-io);\n  background:linear-gradient(180deg, rgba(98,224,218,.55) 0%, rgba(40,150,155,.38) 8%, rgba(14,80,90,.55) 100%);\n}\n#fp .fp-nivel::before{\n  content:\"\";position:absolute;left:-10%;right:-10%;top:0;height:14px;transform:translateY(-50%) scaleY(calc(1 \/ var(--nivel,.3)));\n  background:radial-gradient(60% 50% at 50% 50%, rgba(238,245,244,.85), rgba(238,245,244,0) 70%);\n  opacity:.55;\n}\n#fp .fp-itens{position:relative;z-index:2;display:flex;flex-direction:column-reverse}\n#fp .fp-itens li{\n  display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:14px;\n  padding:0 26px;height:56px;border-top:1px solid rgba(170,228,228,.08);\n  color:var(--faint);transition:color .5s ease;\n}\n#fp .fp-itens li svg{width:20px;height:20px;opacity:.35;transition:opacity .5s ease}\n#fp .fp-itens li small{font-size:13px;color:var(--faint)}\n#fp .fp-itens li.on{color:var(--foam)}\n#fp .fp-itens li.on svg{opacity:1;color:var(--glow-2)}\n#fp .fp-itens li.on small{color:var(--mist)}\n#fp .fp-tanque-topo{position:relative;z-index:2;padding:22px 26px;display:flex;justify-content:space-between;gap:16px;font-size:14px;color:var(--mist);margin-bottom:auto}\n#fp .fp-tanque-topo b{font:600 22px\/1 var(--display);color:var(--foam);letter-spacing:-.01em}\n#fp .fp-opc{margin-top:28px;font-size:15px;color:var(--mist)}\n#fp .fp-opc b{color:var(--foam);font-weight:600}\n@media (max-width:900px){\n  #fp .fp-linhas .fp-wrap{grid-template-columns:1fr}\n  #fp .fp-seg{max-width:none}\n  #fp .fp-tanque{min-height:0}\n  #fp .fp-itens li{padding:0 16px;height:52px;gap:10px;font-size:15px}\n}\n\n\n\/* =========================================================\n   A FAIBERPLAS + TOUR DA LOJA\n   ========================================================= *\/\n\n#fp .fp-sobre .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:center}\n#fp .fp-tour{position:relative;justify-self:center;width:min(100%,420px)}\n#fp .fp-tour .fp-frame{position:relative;aspect-ratio:9\/16;border-radius:var(--r-media);overflow:hidden;background:#000;box-shadow:0 50px 90px -50px rgba(0,0,0,.8),0 0 0 1px var(--line)}\n#fp .fp-tour video{width:100%;height:100%;object-fit:cover}\n#fp .fp-tour-ctl{position:absolute;left:14px;right:14px;bottom:14px;display:flex;gap:8px;justify-content:flex-start}\n#fp .fp-tour-ctl button{\n  display:inline-flex;align-items:center;gap:8px;font:600 14px\/1 var(--body);color:var(--foam);\n  background:rgba(3,22,27,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);\n  border:1px solid rgba(238,245,244,.2);border-radius:999px;padding:11px 14px;cursor:pointer;\n  transition:transform .16s var(--ease-out),background-color .2s ease;\n}\n#fp .fp-tour-ctl button:active{transform:scale(.96)}\n#fp .fp-tour-ctl svg{width:17px;height:17px}\n#fp .fp-tour figcaption{margin-top:14px;font-size:14px;color:var(--faint);text-align:center}\n#fp .fp-sobre h2{margin-bottom:22px}\n#fp .fp-fatos{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;margin:40px 0 44px}\n#fp .fp-fatos li{border-top:1px solid var(--line-2);padding-top:16px}\n#fp .fp-fatos b{display:block;font:600 22px\/1.15 var(--display);letter-spacing:-.01em;margin-bottom:6px}\n#fp .fp-fatos span{font-size:15px;color:var(--mist);line-height:1.5}\n#fp .fp-visita{border-radius:var(--r-card);background:var(--water-2);border:1px solid var(--line);padding:26px 26px 24px}\n#fp .fp-visita .fp-citacao{display:block;margin:0;max-width:100%;font:500 clamp(19px,1.6vw,22px)\/1.35 var(--display);letter-spacing:-.01em;color:var(--foam);white-space:normal!important;overflow-wrap:break-word;text-wrap:balance}\n#fp .fp-visita p{margin-top:12px;font-size:15px;color:var(--mist)}\n#fp .fp-visita .fp-ctas{margin-top:22px}\n@media (max-width:900px){\n  #fp .fp-sobre .fp-wrap{grid-template-columns:minmax(0,1fr)}\n  #fp .fp-tour{order:2;width:min(100%,380px)}\n}\n@media (max-width:520px){#fp .fp-fatos{grid-template-columns:1fr;gap:20px}}\n\n\/* =========================================================\n   CORINTHIANS\n   ========================================================= *\/\n#fp .fp-case{position:relative;padding:0;min-height:min(92vh,860px);display:flex;align-items:flex-end;overflow:hidden;background:var(--abyss)}\n#fp .fp-case > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 72%}\n#fp .fp-case::after{\n  content:\"\";position:absolute;inset:0;pointer-events:none;\n  background:linear-gradient(180deg,rgba(3,22,27,.25) 0%,rgba(3,22,27,.35) 35%,rgba(3,22,27,.92) 78%,var(--abyss) 100%);\n}\n#fp .fp-case .fp-wrap{position:relative;z-index:2;padding-block:clamp(64px,8vw,112px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end}\n#fp .fp-case h2{font-size:clamp(34px,4.6vw,66px);max-width:15ch}\n#fp .fp-case .fp-lead{margin-top:20px;color:#C3D6D6}\n#fp .fp-case .fp-ctas{margin-top:30px}\n#fp .fp-case-fotos{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n#fp .fp-case-fotos img{aspect-ratio:1;object-fit:cover;border-radius:var(--r-card);border:1px solid rgba(238,245,244,.18)}\n@media (max-width:900px){\n  #fp .fp-case{min-height:0;display:block}\n  #fp .fp-case > img{position:relative;height:auto;aspect-ratio:16\/10}\n  #fp .fp-case::after{top:0;height:calc(100vw * .625);background:linear-gradient(180deg,transparent 55%,var(--abyss) 100%)}\n  #fp .fp-case .fp-wrap{grid-template-columns:1fr;padding-top:8px}\n}\n\n\/* =========================================================\n   OR\u00c7AMENTO\n   ========================================================= *\/\n#fp .fp-orc .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}\n#fp .fp-orc .fp-lead{margin-top:20px}\n#fp .fp-passos{margin-top:40px;display:flex;flex-direction:column;gap:22px;counter-reset:passo}\n#fp .fp-passos li{display:grid;grid-template-columns:40px 1fr;gap:4px 14px}\n#fp .fp-passos svg{width:26px;height:26px;color:var(--glow);grid-row:1 \/ span 2;margin-top:2px}\n#fp .fp-passos b{font:600 19px\/1.25 var(--display);letter-spacing:-.01em}\n#fp .fp-passos span{font-size:15px;color:var(--mist)}\n#fp .fp-contato{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:15px;color:var(--mist)}\n#fp .fp-contato a{color:var(--foam);font-weight:600;text-decoration:none;border-bottom:1px solid var(--line-2)}\n#fp .fp-contato a:hover{border-bottom-color:var(--glow)}\n\n#fp .fp-form{background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-media);padding:clamp(22px,3vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}\n#fp .fp-form .fp-f{display:flex;flex-direction:column;gap:8px}\n#fp .fp-form .fp-f--full{grid-column:1 \/ -1}\n#fp .fp-form label,#fp .fp-form legend{font-size:14px;font-weight:500;color:var(--foam);padding:0}\n#fp .fp-form label small,#fp .fp-form legend small{color:var(--faint);font-weight:400}\n#fp .fp-form input,#fp .fp-form select{\n  width:100%!important;font:400 16px\/1.3 var(--body);color:var(--foam);background:var(--abyss);\n  border:1px solid var(--line-2);border-radius:10px;padding:14px 14px;appearance:none;-webkit-appearance:none;\n}\n#fp .fp-form select{background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}\n#fp .fp-form select option{background:var(--water-2);color:var(--foam)}\n#fp .fp-form input::placeholder{color:var(--faint)}\n#fp .fp-form input:focus,#fp .fp-form select:focus{outline:2px solid var(--glow);outline-offset:1px;border-color:transparent}\n#fp .fp-form input[aria-invalid=\"true\"]{border-color:#FF9B8A}\n#fp .fp-erro{font-size:14px;color:#FFB4A6;min-height:0}\n#fp .fp-erro:empty{display:none}\n#fp .fp-form fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}\n#fp .fp-chips{display:flex;flex-wrap:wrap;gap:8px}\n#fp .fp-chips label{position:relative;cursor:pointer}\n#fp .fp-chips input{position:absolute;opacity:0;width:1px;height:1px}\n#fp .fp-chips span{\n  display:inline-block;font-size:15px;font-weight:500;color:var(--mist);padding:11px 15px;border-radius:999px;border:1px solid var(--line-2);\n  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .16s var(--ease-out);\n}\n#fp .fp-chips label:active span{transform:scale(.97)}\n#fp .fp-chips input:checked + span{background:var(--foam);color:var(--abyss);border-color:var(--foam)}\n#fp .fp-chips input:focus-visible + span{outline:2px solid var(--glow);outline-offset:2px}\n#fp .fp-form .fp-enviar{grid-column:1 \/ -1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:6px}\n#fp .fp-form .fp-enviar p{font-size:14px;color:var(--faint);max-width:34ch}\n@media (max-width:900px){#fp .fp-orc .fp-wrap{grid-template-columns:1fr}}\n@media (max-width:560px){#fp .fp-form{grid-template-columns:1fr}#fp .fp-form .fp-bt{width:100%}}\n\n\/* =========================================================\n   D\u00daVIDAS\n   ========================================================= *\/\n\n#fp .fp-faq .fp-wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,5vw,80px)}\n#fp .fp-faq details{border-bottom:1px solid var(--line)}\n#fp .fp-faq details:first-child{border-top:1px solid var(--line)}\n#fp .fp-faq summary{\n  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;\n  padding:22px 0;font:600 clamp(18px,1.5vw,21px)\/1.3 var(--display);letter-spacing:-.01em;\n}\n#fp .fp-faq summary::-webkit-details-marker{display:none}\n#fp .fp-faq summary svg{width:20px;height:20px;flex:none;color:var(--glow);transition:transform .3s var(--ease-out)}\n#fp .fp-faq details[open] summary svg{transform:rotate(45deg)}\n#fp .fp-faq details p{padding:0 48px 24px 0;color:var(--mist);max-width:68ch}\n@media (max-width:900px){#fp .fp-faq .fp-wrap{grid-template-columns:1fr}#fp .fp-faq details p{padding-right:0}}\n\n\/* =========================================================\n   RODAP\u00c9\n   ========================================================= *\/\n#fp .fp-rodape{padding-block:64px 40px;border-top:1px solid var(--line);background:var(--abyss)}\n#fp .fp-rodape .fp-wrap{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2.6fr));gap:32px}\n#fp .fp-rodape img{height:64px;width:auto}\n#fp .fp-rodape h3{font:600 15px\/1.2 var(--body);letter-spacing:0;color:var(--foam);margin-bottom:12px}\n#fp .fp-rodape p,#fp .fp-rodape li{font-size:15px;color:var(--mist);line-height:1.6}\n#fp .fp-rodape a{text-decoration:none;border-bottom:1px solid var(--line-2)}\n#fp .fp-rodape a:hover{border-bottom-color:var(--glow);color:var(--foam)}\n#fp .fp-rodape .fp-fim{grid-column:1 \/ -1;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--faint)}\n@media (max-width:900px){#fp .fp-rodape .fp-wrap{grid-template-columns:1fr 1fr}#fp .fp-rodape .fp-wrap > :first-child{grid-column:1 \/ -1}}\n\n\/* barra fixa no celular *\/\n#fp .fp-barra{\n  position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:60;display:none;\n  transform:translateY(140%);transition:transform .45s var(--ease-out);\n}\n#fp .fp-barra .fp-bt{width:100%;box-shadow:0 18px 40px -12px rgba(0,0,0,.7)}\n#fp .fp-barra.on{transform:none}\n@media (max-width:760px){#fp .fp-barra{display:block}#fp .fp-rodape{padding-bottom:110px}}\n\n\/* =========================================================\n   FICHA DO MODELO (dialog)\n   ========================================================= *\/\n#fp dialog.fp-ficha{\n  width:min(1080px,100% - 24px);max-height:min(92vh,900px);padding:0;border:1px solid var(--line-2);border-radius:var(--r-media);\n  background:var(--water-2);color:var(--foam);overflow:hidden;\n  opacity:0;transform:scale(.96);transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),overlay .22s allow-discrete,display .22s allow-discrete;\n}\n#fp dialog.fp-ficha[open]{opacity:1;transform:none}\n@starting-style{#fp dialog.fp-ficha[open]{opacity:0;transform:scale(.96)}}\n#fp dialog.fp-ficha::backdrop{background:rgba(2,12,15,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}\n#fp .fp-ficha-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);max-height:inherit}\n#fp .fp-ficha-media{position:relative;background:var(--abyss);display:flex;flex-direction:column;min-height:0}\n#fp .fp-ficha-media .fp-view{position:relative;flex:1;min-height:320px}\n#fp .fp-ficha-media .fp-view img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n#fp .fp-ficha-media .fp-view img.fp-contain{object-fit:contain;padding:8%;background:radial-gradient(80% 90% at 50% 40%, #0E3C45 0%, #082A31 100%)}\n#fp .fp-ficha-media .fp-view small{position:absolute;left:14px;bottom:12px;font-size:12px;color:rgba(238,245,244,.8);text-shadow:0 1px 6px rgba(0,0,0,.7)}\n#fp .fp-abas{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line)}\n#fp .fp-abas button{white-space:nowrap;font:500 14px\/1 var(--body);color:var(--mist);background:transparent;border:1px solid transparent;border-radius:999px;padding:10px 14px;cursor:pointer}\n#fp .fp-abas button[aria-selected=\"true\"]{border-color:var(--line-2);color:var(--foam);background:var(--water-2)}\n#fp .fp-abas button[hidden]{display:none}\n#fp .fp-ficha-txt{padding:30px 30px 26px;overflow:auto;display:flex;flex-direction:column;gap:22px}\n#fp .fp-ficha-txt h3{font-size:clamp(26px,2.6vw,34px)}\n#fp .fp-ficha-txt .fp-sub{font-size:14px;color:var(--faint);margin-top:6px}\n#fp .fp-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}\n#fp .fp-specs div{background:var(--water-2);padding:12px 14px}\n#fp .fp-specs dt{font-size:12px;color:var(--faint)}\n#fp .fp-specs dd{font:600 18px\/1.2 var(--display);margin-top:4px;font-variant-numeric:tabular-nums}\n#fp .fp-specs dd small{font:400 13px var(--body);color:var(--mist)}\n#fp .fp-lin-tabs{display:flex;gap:6px;flex-wrap:wrap}\n#fp .fp-lin-tabs button{font:600 14px\/1 var(--body);color:var(--mist);background:transparent;border:1px solid var(--line-2);border-radius:999px;padding:10px 14px;cursor:pointer}\n#fp .fp-lin-tabs button[aria-selected=\"true\"]{background:var(--foam);color:var(--abyss);border-color:var(--foam)}\n#fp .fp-lin-lista{display:flex;flex-direction:column;gap:8px;margin-top:14px;font-size:15px;color:var(--foam)}\n#fp .fp-lin-lista li{display:flex;gap:10px;align-items:flex-start}\n#fp .fp-lin-lista svg{width:18px;height:18px;color:var(--glow);flex:none;margin-top:3px}\n#fp .fp-ficha-nota{font-size:14px;color:var(--mist)}\n#fp .fp-ficha-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}\n#fp .fp-fechar{position:absolute;top:12px;right:12px;z-index:3;width:44px!important;height:44px!important;padding:0;border-radius:50%;border:1px solid rgba(238,245,244,.22);background:rgba(3,22,27,.7);color:var(--foam);cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(8px)}\n#fp .fp-fechar svg{width:20px;height:20px}\n@media (max-width:820px){\n  #fp dialog.fp-ficha{max-height:94vh;overflow:auto}\n  #fp .fp-ficha-in{grid-template-columns:1fr;max-height:none}\n  #fp .fp-ficha-media .fp-view{min-height:0;aspect-ratio:4\/3}\n  #fp .fp-specs{grid-template-columns:repeat(2,minmax(0,1fr))}\n}\n\n\/* revela\u00e7\u00e3o suave das imagens ao rolar *\/\n#fp.fp-js .fp-surge{opacity:0;transform:translateY(16px);filter:blur(6px)}\n#fp.fp-js .fp-surge.fp-visto{opacity:1;transform:none;filter:none;transition:opacity .8s var(--ease-out),transform .9s var(--ease-out),filter .8s var(--ease-out)}\n\n\n\/* =========================================================\n   PALETA POR SE\u00c7\u00c3O: cada bloco com seu pr\u00f3prio fundo\n   ========================================================= *\/\n#fp .t-claro{\n  --foam:#0A2227;--mist:#3B5557;--faint:#536C6E;\n  --line:rgba(10,34,39,.12);--line-2:rgba(10,34,39,.26);\n  --water-2:#FFFFFF;--abyss:#E1E9E8;--water-3:#B9CACA;\n  --glow:#0B5B5E;--glow-2:#0E6E71;--glow-ink:#FFFFFF;\n  color:var(--foam);\n}\n#fp .t-perola{background:#EEF3F2}\n#fp .t-pedra{background:#DFE5E3}\n#fp .t-aqua{background:#CDEBE8;--water-2:#F5FBFA;--abyss:#FFFFFF}\n#fp .t-preto{background:#020A0C}\n#fp .t-grafite{background:#111516}\n#fp .t-agua{background:#0A2D34}\n#fp .t-claro .fp-bt--line{color:var(--foam);border-color:var(--line-2)}\n#fp .t-claro .fp-bt--glow{box-shadow:0 10px 24px -14px rgba(6,35,41,.5)}\n#fp .t-claro .fp-card{border-color:rgba(10,34,39,.1);box-shadow:0 1px 0 rgba(10,34,39,.04),0 18px 40px -30px rgba(6,35,41,.45)}\n@media (hover:hover) and (pointer:fine){#fp .t-claro .fp-card:hover{border-color:rgba(11,91,94,.5)}}\n#fp .fp-faq.t-perola{border-top:0}\n\n\/* menu: se\u00e7\u00e3o atual *\/\n#fp .fp-nav ul a{position:relative}\n#fp .fp-nav ul a[aria-current=\"true\"]{color:var(--foam)}\n#fp .fp-nav ul a::after{content:\"\";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:var(--glow);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}\n#fp .fp-nav ul a[aria-current=\"true\"]::after{transform:scaleX(1)}\n\n\/* =========================================================\n   ESPA\u00c7O DE EXPERI\u00caNCIA\n   ========================================================= *\/\n#fp .fp-exp .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}\n#fp .fp-exp-video{position:sticky;top:96px;justify-self:center;width:min(100%,400px)}\n#fp .fp-exp h2{margin-bottom:22px}\n#fp .fp-exp-itens{margin-top:12px}\n#fp .fp-exp-itens li{min-height:34vh;display:flex;flex-direction:column;justify-content:center;gap:10px;border-top:1px solid var(--line)}\n#fp .fp-exp-itens li:last-child{min-height:0;padding-block:40px}\n#fp .fp-exp-itens b{font:600 clamp(24px,2.4vw,34px)\/1.12 var(--display);letter-spacing:-.02em}\n#fp .fp-exp-itens span{color:var(--mist);max-width:44ch}\n#fp .fp-exp .fp-ctas{margin-top:8px}\n#fp .fp-player .fp-frame{position:relative;aspect-ratio:9\/16;border-radius:var(--r-media);overflow:hidden;background:#000;box-shadow:0 50px 90px -50px rgba(0,0,0,.8),0 0 0 1px var(--line)}\n#fp .fp-player video{width:100%;height:100%;object-fit:cover}\n#fp .fp-player figcaption{margin-top:14px;font-size:14px;color:var(--faint);text-align:center}\n@media (max-width:900px){\n  #fp .fp-exp .fp-wrap{grid-template-columns:1fr}\n  #fp .fp-exp-video{position:relative;top:auto;width:min(100%,380px)}\n  #fp .fp-exp-itens li{min-height:0;padding-block:26px}\n}\n\n\/* =========================================================\n   PARCEIROS\n   ========================================================= *\/\n#fp .fp-parc .fp-lead{margin-top:20px}\n#fp .fp-parc h2,#fp .fp-parc .fp-lead{text-align:center;margin-inline:auto}\n#fp .fp-marcas{margin-top:56px;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}\n#fp .fp-marca{\n  position:relative;flex:0 0 calc((100% - 3 * 14px) \/ 4);aspect-ratio:3\/2;perspective:900px;list-style:none;\n}\n#fp .fp-marca-in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .7s var(--ease-io)}\n#fp .fp-marca-f,#fp .fp-marca-v{\n  position:absolute;inset:0;border-radius:var(--r-card);backface-visibility:hidden;-webkit-backface-visibility:hidden;\n  display:flex;align-items:center;justify-content:center;overflow:hidden;\n}\n#fp .fp-marca-f{background:#F7F9F8;border:1px solid rgba(10,34,39,.08);box-shadow:0 1px 0 rgba(10,34,39,.04),0 22px 40px -34px rgba(6,35,41,.5)}\n#fp .fp-marca-f img{width:var(--lw);max-width:78%;max-height:58%;height:auto;object-fit:contain}\n#fp .fp-marca-f img[data-alto]{width:auto;height:80%;max-height:80%}\n#fp .fp-marca-v{transform:rotateY(180deg);background:var(--bgc,#111)}\n#fp .fp-marca-v img{width:100%;height:100%;object-fit:contain}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-marca:hover .fp-marca-in{transform:rotateY(180deg)}\n}\n#fp .fp-marca.virada .fp-marca-in{transform:rotateY(180deg)}\n#fp .fp-marca{cursor:pointer;-webkit-tap-highlight-color:transparent}\n#fp .fp-parc-nota{margin-top:26px;text-align:center;font-size:14px;color:var(--faint)}\n@media (max-width:900px){#fp .fp-marca{flex-basis:calc((100% - 2 * 12px) \/ 3)}#fp .fp-marcas{gap:12px}}\n@media (max-width:560px){#fp .fp-marca{flex-basis:calc((100% - 10px) \/ 2)}#fp .fp-marcas{gap:10px}}\n@media (prefers-reduced-motion:reduce){\n  #fp .fp-marca-in{transition:none}\n  #fp .fp-marca:hover .fp-marca-in{transform:none}\n}\n\n\/* =========================================================\n   CORINTHIANS (foto real, abre at\u00e9 a borda ao rolar)\n   ========================================================= *\/\n#fp .fp-case{padding:0;min-height:0;display:block;background:#020A0C;overflow:hidden}\n#fp .fp-case::after{content:none}\n#fp .fp-case-media{position:relative;width:100%;aspect-ratio:16\/9;max-height:100vh;overflow:hidden}\n#fp .fp-case-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n#fp .fp-case-media::after{content:\"\";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,10,12,0) 45%,rgba(2,10,12,.55) 70%,rgba(2,10,12,.96) 100%)}\n#fp .fp-case .fp-wrap{position:absolute;left:0;right:0;bottom:0;padding-block:0 clamp(40px,6vw,88px);display:block}\n#fp .fp-case h2{max-width:17ch}\n#fp .fp-case .fp-lead{max-width:52ch}\n@media (max-width:900px){\n  #fp .fp-case-media{aspect-ratio:4\/3}\n  #fp .fp-case-media img{object-position:62% 50%}\n  #fp .fp-case .fp-wrap{position:relative;padding-block:28px 72px}\n}\n\n@media (max-width:900px){\n  #fp .fp-hero .fp-wrap,#fp .fp-linhas .fp-wrap,#fp .fp-exp .fp-wrap,#fp .fp-orc .fp-wrap,#fp .fp-faq .fp-wrap,#fp .fp-case .fp-wrap{grid-template-columns:minmax(0,1fr)}\n  #fp .fp-player,#fp .fp-player video{max-width:100%}\n}\n\/* texto que acende ao rolar *\/\n#fp .fp-lit{background:linear-gradient(var(--foam),var(--foam)) no-repeat 0 0 \/ 0% 100%;-webkit-background-clip:text;background-clip:text}\n\n\/* =========================================================\n   ROLAGEM (anima\u00e7\u00f5es ligadas ao scroll, como nas p\u00e1ginas de produto)\n   ========================================================= *\/\n@keyframes sdRise{from{opacity:0;transform:translateY(56px);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}\n@keyframes sdCard{from{opacity:0;transform:translateY(46px) scale(.95)}to{opacity:1;transform:none}}\n@keyframes sdOut{to{opacity:0;transform:translateY(-70px);filter:blur(6px)}}\n@keyframes sdFrameOut{to{transform:scale(.86) translateY(40px);opacity:.3}}\n@keyframes sdExpand{from{clip-path:inset(7% 9% round 36px);transform:scale(.98)}to{clip-path:inset(0 0 round 0);transform:none}}\n@keyframes sdLit{to{background-size:100% 100%}}\n@keyframes sdFocus{from{opacity:.25;transform:translateX(-10px)}to{opacity:1;transform:none}}\n@supports (animation-timeline: view()){\n  @media (prefers-reduced-motion:no-preference){\n    #fp .sd-rise{animation:sdRise linear both;animation-timeline:view();animation-range:entry 0% entry 100%}\n    #fp .sd-card{animation:sdCard linear both;animation-timeline:view();animation-range:entry 0% entry 85%}\n    #fp .sd-hero-out{animation:sdOut linear both;animation-timeline:scroll(root);animation-range:0 70vh}\n    #fp .sd-frame-out{animation:sdFrameOut linear both;animation-timeline:scroll(root);animation-range:0 85vh}\n    #fp .sd-expand{animation:sdExpand linear both;animation-timeline:view();animation-range:entry 0% cover 50%}\n    #fp .sd-focus{animation:sdFocus linear both;animation-timeline:view();animation-range:entry 30% cover 45%}\n    #fp .fp-lit{color:color-mix(in srgb,var(--foam) 30%,transparent);animation:sdLit linear both;animation-timeline:view();animation-range:cover 15% cover 55%}\n  }\n}\n\/* sem suporte: aparece ao entrar na tela *\/\n#fp.fp-sd-nao .sd-rise,#fp.fp-sd-nao .sd-card{opacity:0;transform:translateY(24px);filter:blur(6px)}\n#fp.fp-sd-nao .fp-visto{opacity:1;transform:none;filter:none;transition:opacity .8s var(--ease-out),transform .9s var(--ease-out),filter .8s var(--ease-out)}\n\n@media (prefers-reduced-motion:reduce){\n  #fp.fp-sd-nao .sd-rise,#fp.fp-sd-nao .sd-card{opacity:1;transform:none;filter:none}\n  #fp *,#fp *::before,#fp *::after{transition-duration:.01ms!important;animation-duration:.01ms!important}\n  #fp.fp-js .fp-in,#fp.fp-js .fp-surge{opacity:1;transform:none;filter:none}\n  #fp .fp-nivel{transition:transform .01ms}\n}\n\n\/* =========================================================\n   SITE PRINCIPAL - componentes novos (al\u00e9m do CSS da LP)\n   ========================================================= *\/\n#fp .fp-nav ul a[aria-current]{color:var(--foam)}\n#fp .fp-nav ul a[aria-current]::after{content:\"\";display:block;height:2px;margin-top:5px;border-radius:2px;background:var(--glow)}\n\n\/* menu do celular *\/\n#fp .fp-menu-bt{display:none;flex:none;width:42px;height:42px;margin-left:auto;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line-2);border-radius:12px;color:var(--foam);cursor:pointer}\n#fp .fp-menu-bt svg{width:22px;height:22px}\n#fp .fp-menu-bt .fp-ic-x{display:none}\n#fp .fp-nav.aberto .fp-menu-bt .fp-ic-x{display:block}\n#fp .fp-nav.aberto .fp-menu-bt .fp-ic-menu{display:none}\n@media (max-width:980px){\n  #fp .fp-menu-bt{display:inline-flex}\n  #fp .fp-nav .fp-wrap{position:relative}\n  #fp .fp-nav nav{display:block;position:absolute;top:calc(100% + 10px);left:0;right:0;\n    background:rgba(3,22,27,.94);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);\n    border:1px solid rgba(170,228,228,.16);border-radius:20px;box-shadow:0 24px 50px -24px rgba(0,0,0,.8);\n    padding:10px;margin:0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s var(--ease-out),visibility .2s}\n  #fp .fp-nav.aberto nav{opacity:1;visibility:visible;transform:none}\n  #fp .fp-nav nav ul{flex-direction:column;gap:2px}\n  #fp .fp-nav nav ul a{display:block;padding:13px 14px;border-radius:12px;font-size:16px}\n  #fp .fp-nav nav ul a:hover,#fp .fp-nav nav ul a[aria-current]{background:rgba(238,245,244,.06)}\n  #fp .fp-nav ul a[aria-current]::after{display:none}\n  #fp .fp-nav .fp-bt--sm{margin-left:8px}\n}\n@media (max-width:420px){#fp .fp-nav .fp-bt--sm{display:none}}\n\n\/* hero compacto das p\u00e1ginas internas *\/\n#fp .fp-hero--sub{padding-block:clamp(122px,14vw,172px) clamp(10px,4vw,30px);position:relative}\n#fp .fp-hero--sub .fp-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;justify-items:start}\n#fp .fp-hero--sub .fp-eyebrow{font:600 13px\/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--glow)}\n#fp .fp-hero--sub h1{font-size:clamp(40px,6vw,74px);letter-spacing:-.03em;line-height:1}\n#fp .fp-hero--sub .fp-lead{max-width:60ch}\n#fp .fp-crumb{font:500 14px\/1 var(--body);color:var(--faint);margin-bottom:4px}\n#fp .fp-crumb a{color:var(--faint);text-decoration:none}\n#fp .fp-crumb a:hover{color:var(--mist)}\n\n\/* ferramentas s\u00f3 com o medidor (p\u00e1ginas de 1 categoria) *\/\n#fp .fp-ferramentas--solo{justify-content:flex-end}\n\n\/* HOME - hub de categorias *\/\n#fp .fp-cats{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}\n#fp .fp-cat{position:relative;grid-column:span 2;border-radius:var(--r-media);overflow:hidden;min-height:300px;display:flex;isolation:isolate;text-decoration:none;color:#EEF5F4;border:1px solid rgba(170,228,228,.14)}\n#fp .fp-cat--wide{grid-column:span 3}\n#fp .fp-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s var(--ease-out)}\n#fp .fp-cat::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,22,27,.1) 0%,rgba(3,22,27,.45) 48%,rgba(3,22,27,.97) 100%)}\n#fp .fp-cat-txt h3,#fp .fp-cat-txt p{text-shadow:0 1px 14px rgba(3,22,27,.7)}\n@media (hover:hover) and (pointer:fine){#fp .fp-cat:hover img{transform:scale(1.05)}}\n#fp .fp-cat-txt{margin-top:auto;padding:70px 26px 26px;background:linear-gradient(180deg,transparent 0,rgba(3,22,27,.55) 32%,rgba(3,22,27,.9) 72%)}\n#fp .fp-cat-txt h3{font-size:clamp(23px,2.1vw,30px);color:#fff}\n#fp .fp-cat-txt p{color:rgba(238,245,244,.86);font-size:15.5px;margin-top:6px;max-width:34ch}\n#fp .fp-cat-txt .fp-cat-link{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font:600 15px\/1 var(--body);color:#7BEDE7}\n#fp .fp-cat-txt .fp-cat-link svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}\n@media (hover:hover) and (pointer:fine){#fp .fp-cat:hover .fp-cat-link svg{transform:translateX(4px)}}\n@media (max-width:860px){#fp .fp-cats{grid-template-columns:1fr 1fr}#fp .fp-cat,#fp .fp-cat--wide{grid-column:span 1;min-height:230px}}\n@media (max-width:520px){#fp .fp-cats{grid-template-columns:1fr}}\n\n\/* FREE STANDING *\/\n#fp .fp-fs{display:grid;gap:clamp(20px,3vw,34px)}\n#fp .fp-fs-card{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(18px,3vw,40px);align-items:center;background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-media);overflow:hidden}\n#fp .fp-fs-card:nth-child(even){grid-template-columns:.9fr 1.1fr}\n#fp .fp-fs-card:nth-child(even) .fp-fs-foto{order:2}\n#fp .fp-fs-foto{position:relative;aspect-ratio:4\/3;background:#0a2228}\n#fp .fp-fs-foto img{width:100%;height:100%;object-fit:cover}\n#fp .fp-fs-txt{padding:clamp(22px,2.4vw,36px) clamp(22px,2.4vw,40px)}\n#fp .fp-fs-txt h3{font-size:clamp(26px,2.6vw,36px)}\n#fp .fp-fs-txt .fp-lead{margin:10px 0 20px;font-size:17px}\n#fp .fp-fs-tab{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;margin-bottom:22px}\n#fp .fp-fs-tab th,#fp .fp-fs-tab td{text-align:right;padding:9px 6px;border-bottom:1px solid var(--line);font-size:15px}\n#fp .fp-fs-tab th:first-child,#fp .fp-fs-tab td:first-child{text-align:left;color:var(--mist);font-weight:400}\n#fp .fp-fs-tab thead th{color:var(--foam);font:600 14px\/1 var(--body);border-bottom-color:var(--line-2)}\n#fp .fp-fs-tab td b{color:var(--foam)}\n@media (max-width:760px){#fp .fp-fs-card,#fp .fp-fs-card:nth-child(even){grid-template-columns:1fr}#fp .fp-fs-card:nth-child(even) .fp-fs-foto{order:0}}\n\n\/* ACESS\u00d3RIOS *\/\n#fp .fp-acc{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}\n#fp .fp-acc-card{background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);padding:26px 24px;display:flex;flex-direction:column;gap:12px;transition:border-color .25s ease,transform .2s var(--ease-out)}\n@media (hover:hover) and (pointer:fine){#fp .fp-acc-card:hover{border-color:var(--line-2);transform:translateY(-2px)}}\n#fp .fp-acc-ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:radial-gradient(120% 120% at 30% 20%,rgba(98,224,218,.22),rgba(98,224,218,.06));border:1px solid rgba(98,224,218,.25);color:var(--glow)}\n#fp .fp-acc-ic svg{width:26px;height:26px}\n#fp .fp-acc-card h3{font-size:19px}\n#fp .fp-acc-card p{color:var(--mist);font-size:15.5px;line-height:1.55}\n\n\/* CTA band *\/\n#fp .fp-cta .fp-wrap{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}\n#fp .fp-cta h2{max-width:20ch}\n#fp .fp-cta .fp-lead{margin-inline:auto;text-align:center}\n#fp .fp-cta .fp-ctas{justify-content:center}\n\n\/* CONTATO *\/\n#fp .fp-contato .fp-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:start}\n#fp .fp-cnt-cards{display:grid;gap:12px}\n#fp .fp-cnt-card{display:flex;gap:14px;align-items:flex-start;background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);padding:20px 22px;text-decoration:none;color:inherit;transition:border-color .2s ease}\n#fp .fp-cnt-card:hover{border-color:var(--line-2)}\n#fp .fp-cnt-ic{flex:none;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:rgba(98,224,218,.1);border:1px solid rgba(98,224,218,.22);color:var(--glow)}\n#fp .fp-cnt-ic svg{width:22px;height:22px}\n#fp .fp-cnt-card b{display:block;font:600 16px\/1.2 var(--body);color:var(--foam)}\n#fp .fp-cnt-card span{display:block;color:var(--mist);font-size:15px;margin-top:3px}\n#fp .fp-mapa{margin-top:16px;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line);aspect-ratio:16\/10}\n#fp .fp-mapa iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.3) brightness(.9)}\n@media (max-width:820px){#fp .fp-contato .fp-wrap{grid-template-columns:1fr}}\n\n\/* cat\u00e1logo logo abaixo do hero das p\u00e1ginas internas *\/\n#fp .fp-hero--sub + section{padding-top:clamp(36px,4.5vw,64px)}\n\n\/* =========================================================\n   HOME NOVA + P\u00c1GINA SOBRE\n   ========================================================= *\/\n\n\/* ---- HERO: v\u00eddeos que alternam (Showroom \/ Galeria Thea \/ F\u00e1brica) ---- *\/\n#fp .fp-hv{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;overflow:hidden;isolation:isolate;padding:112px 0 56px}\n#fp .fp-hv::before{display:none}\n#fp .fp-hv-bg{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#03161B}\n#fp .fp-hv-bg video{position:absolute;left:-6%;top:-6%;width:112%;height:112%;object-fit:cover;opacity:0;transition:opacity 1.1s ease;filter:blur(30px) saturate(1.15) brightness(.6)}\n#fp .fp-hv-bg video.on{opacity:1}\n#fp .fp-hv::after{content:\"\";position:absolute;inset:0;z-index:-1;pointer-events:none;\n  background:linear-gradient(90deg,rgba(3,22,27,.82) 0%,rgba(3,22,27,.35) 58%,rgba(3,22,27,.55) 100%)}\n#fp .fp-hv .fp-hv-in{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto;align-items:end;gap:36px 6vw;width:min(1320px,100% - 2*clamp(16px,4vw,48px));margin-inline:auto}\n#fp .fp-hv-tit{grid-column:1;grid-row:1;display:grid;align-self:center}\n#fp .fp-hv-tit p{grid-area:1 \/ 1;align-self:end;margin:0;font:600 clamp(64px,9vw,150px)\/.94 var(--display);letter-spacing:-.045em;color:#fff;text-wrap:balance;\n  opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform 1s var(--ease-out)}\n#fp .fp-hv-tit p.on{opacity:1;transform:none;transition-delay:.15s}\n#fp .fp-hv-card{grid-column:2;grid-row:1 \/ 3;height:min(76vh,780px);aspect-ratio:9 \/ 16;position:relative;border-radius:22px;overflow:hidden;background:#06232a;\n  border:1px solid rgba(255,255,255,.14);box-shadow:0 46px 90px -34px rgba(0,0,0,.85)}\n#fp .fp-hv-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}\n#fp .fp-hv-card video.on{opacity:1}\n#fp .fp-hv-tabs{grid-column:1;grid-row:2;display:flex;gap:18px;max-width:560px}\n#fp .fp-hv-tabs button{flex:1;display:flex;flex-direction:column;gap:12px;background:none;border:0;padding:10px 0;margin:0;cursor:pointer;\n  color:rgba(238,245,244,.62);font:500 15px\/1.2 var(--body);text-align:left;transition:color .3s ease}\n#fp .fp-hv-tabs button:hover,#fp .fp-hv-tabs button[aria-selected=\"true\"]{color:#fff}\n#fp .fp-hv-tabs i{display:block;height:2px;border-radius:2px;background:rgba(255,255,255,.22);position:relative;overflow:hidden}\n#fp .fp-hv-tabs i::after{content:\"\";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left center}\n#fp .fp-hv-tabs button[aria-selected=\"true\"] i::after{transform:scaleX(1)}\n#fp .fp-hv-tabs button.corre i::after{animation:fpHvBar var(--dur,7s) linear both}\n@keyframes fpHvBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n@media (max-width:900px){\n  #fp .fp-hv{align-items:flex-end;padding:0 0 calc(30px + env(safe-area-inset-bottom))}\n  #fp .fp-hv-card{display:none}\n  #fp .fp-hv-bg video{left:0;top:0;width:100%;height:100%;filter:none}\n  #fp .fp-hv::after{background:linear-gradient(180deg,rgba(3,22,27,.55) 0%,rgba(3,22,27,0) 22%,rgba(3,22,27,0) 48%,rgba(3,22,27,.88) 100%)}\n  #fp .fp-hv .fp-hv-in{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:18px}\n  #fp .fp-hv-tit p{font-size:clamp(48px,14vw,72px)}\n  #fp .fp-hv-tabs{gap:10px;max-width:none}\n  #fp .fp-hv-tabs button{font-size:13px;gap:10px}\n}\n@media (prefers-reduced-motion:reduce){#fp .fp-hv-tit p,#fp .fp-hv-bg video,#fp .fp-hv-card video{transition:none}}\n\n\/* ---- N\u00daMEROS ---- *\/\n#fp .fp-nums{background:var(--abyss);border-block:1px solid var(--line);padding-block:clamp(36px,5vw,60px)}\n#fp .fp-nums ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}\n#fp .fp-nums li{padding:4px clamp(14px,2vw,30px);border-left:1px solid var(--line)}\n#fp .fp-nums-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;margin-bottom:18px;background:radial-gradient(120% 120% at 30% 20%,rgba(98,224,218,.22),rgba(98,224,218,.06));border:1px solid rgba(98,224,218,.25);color:var(--glow)}\n#fp .fp-nums-ic svg{width:25px;height:25px}\n#fp .fp-nums li:first-child{border-left:0;padding-left:0}\n#fp .fp-nums b{display:block;font:600 clamp(34px,4vw,58px)\/1 var(--display);letter-spacing:-.03em;color:var(--foam);font-variant-numeric:tabular-nums}\n#fp .fp-nums span{display:block;margin-top:10px;color:var(--mist);font-size:15px;line-height:1.4}\n@media (max-width:760px){\n  #fp .fp-nums ul{grid-template-columns:1fr 1fr;row-gap:28px}\n  #fp .fp-nums li:nth-child(3){border-left:0;padding-left:0}\n}\n\n\/* ---- LINHA: pain\u00e9is que expandem ---- *\/\n#fp .fp-linha-head{max-width:660px;margin-bottom:clamp(28px,3vw,44px)}\n#fp .fp-linha-head .fp-lead{margin-top:16px}\n#fp .fp-pns{display:flex;gap:12px;height:clamp(460px,60vh,620px)}\n#fp .fp-pn{position:relative;flex:1 1 0;min-width:0;border-radius:var(--r-media);overflow:hidden;isolation:isolate;text-decoration:none;color:#EEF5F4;transition:flex-grow .7s var(--ease-out)}\n#fp .fp-pn.on{flex-grow:2.6}\n#fp .fp-pn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.1s var(--ease-out)}\n#fp .fp-pn.on img{transform:scale(1.04)}\n#fp .fp-pn::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,22,27,0) 35%,rgba(3,22,27,.9) 100%)}\n#fp .fp-pn-txt{position:absolute;left:0;right:0;bottom:0;padding:22px 22px 24px}\n#fp .fp-pn h3{color:#fff;font-size:clamp(19px,1.7vw,28px);text-shadow:0 1px 12px rgba(3,22,27,.6)}\n#fp .fp-pn-n{display:block;margin-top:5px;color:rgba(238,245,244,.78);font-size:14px}\n#fp .fp-pn-mais{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .6s var(--ease-out),opacity .35s ease}\n#fp .fp-pn-mais > div{overflow:hidden}\n#fp .fp-pn.on .fp-pn-mais{grid-template-rows:1fr;opacity:1;transition-delay:.12s}\n#fp .fp-pn-mais p{color:rgba(238,245,244,.9);font-size:15.5px;margin:12px 0 14px;max-width:36ch}\n#fp .fp-pn-mais span{display:inline-flex;align-items:center;gap:7px;font:600 15px\/1 var(--body);color:#7BEDE7}\n#fp .fp-pn-mais svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}\n#fp .fp-pn:hover .fp-pn-mais svg{transform:translateX(4px)}\n#fp .fp-pn:focus-visible{outline:3px solid #7BEDE7;outline-offset:3px}\n@media (max-width:860px){\n  #fp .fp-pns{flex-direction:column;height:auto}\n  #fp .fp-pn{flex:none;height:240px}\n  #fp .fp-pn-mais{grid-template-rows:1fr;opacity:1}\n  #fp .fp-pn-mais p{margin:8px 0 10px}\n}\n\n\/* ---- LOCALIZADOR: descubra qual modelo \u00e9 o seu ---- *\/\n#fp .fp-qual-head{max-width:720px}\n#fp .fp-qual-head .fp-lead{margin-top:16px}\n#fp .fp-q-passos{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,4fr);gap:clamp(20px,3vw,40px);margin-top:clamp(30px,3.5vw,48px)}\n#fp .fp-q-grupo{border:0;margin:0;padding:0;min-width:0}\n#fp .fp-q-grupo legend{display:flex;align-items:center;gap:12px;font:600 clamp(18px,1.5vw,21px)\/1.25 var(--body);color:var(--foam);margin-bottom:16px;padding:0}\n#fp .fp-q-grupo legend i{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--glow);color:var(--glow-ink);font:700 15px\/1 var(--body);font-style:normal}\n#fp .fp-q-ops{display:grid;gap:10px}\n#fp .fp-q-ops--onde{grid-template-columns:minmax(0,1fr)}\n#fp .fp-q-ops--pess{grid-template-columns:repeat(2,minmax(0,1fr))}\n#fp .fp-q-op{display:flex;align-items:center;gap:16px;text-align:left;width:100%;margin:0;padding:18px 20px;border-radius:var(--r-card);cursor:pointer;\n  background:var(--water-2);border:1.5px solid var(--line-2);color:var(--foam);font:inherit;\n  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .16s var(--ease-out)}\n#fp .fp-q-op:active{transform:scale(.985)}\n@media (hover:hover) and (pointer:fine){#fp .fp-q-op:hover{border-color:var(--foam)}}\n#fp .fp-q-op svg{flex:none;width:30px;height:30px;color:var(--glow)}\n#fp .fp-q-op b{display:block;font:600 17px\/1.25 var(--body)}\n#fp .fp-q-op small{display:block;margin-top:3px;font-size:14.5px;color:var(--mist);line-height:1.35}\n#fp .fp-q-op[aria-pressed=\"true\"]{background:var(--glow);border-color:var(--glow);color:var(--glow-ink)}\n#fp .fp-q-op[aria-pressed=\"true\"] svg,#fp .fp-q-op[aria-pressed=\"true\"] small{color:var(--glow-ink)}\n#fp .fp-q-op[aria-pressed=\"true\"] small{opacity:.8}\n#fp .fp-q-res{margin-top:clamp(36px,4vw,56px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--line)}\n#fp .fp-q-res-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:20px;flex-wrap:wrap}\n#fp .fp-q-res-top b{display:block;font:600 clamp(24px,2.4vw,34px)\/1.1 var(--display);color:var(--foam);letter-spacing:-.02em}\n#fp .fp-q-res-top p{margin-top:8px;color:var(--mist);font-size:15.5px}\n#fp .fp-q-res-top a{color:var(--glow);font-weight:600;font-size:16px;text-decoration:none;display:inline-flex;gap:8px;align-items:center;padding:12px 18px;border:1px solid var(--line-2);border-radius:999px}\n#fp .fp-q-res-top a svg{width:18px;height:18px}\n#fp .fp-q-grade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}\n#fp .fp-q-grade.anim .fp-fr-card{animation:fpQIn .5s var(--ease-out) both;animation-delay:calc(var(--k) * 45ms)}\n@keyframes fpQIn{from{opacity:0;transform:translateY(12px)}}\n#fp .fp-fr-card{display:flex;flex-direction:column;text-align:left;padding:0;margin:0;background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;cursor:pointer;color:inherit;font:inherit;text-decoration:none;transition:border-color .2s ease,transform .2s var(--ease-out);width:100%}\n@media (hover:hover) and (pointer:fine){#fp .fp-fr-card:hover{border-color:var(--glow);transform:translateY(-3px)}}\n#fp .fp-fr-img{display:block;aspect-ratio:4\/3;overflow:hidden;background:#0a2a30}\n#fp .fp-fr-img img{width:100%;height:100%;object-fit:cover}\n#fp .fp-fr-t{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px;flex:1}\n#fp .fp-fr-t b{font:600 17px\/1.25 var(--body);color:var(--foam)}\n#fp .fp-fr-t small{color:var(--mist);font-size:14px}\n#fp .fp-fr-t em{margin-top:auto;padding-top:10px;font:600 14.5px\/1.2 var(--body);font-style:normal;color:var(--glow)}\n#fp .fp-q-nota{margin-top:18px;color:var(--mist);font-size:15px}\n#fp .fp-q-nota a{color:var(--glow)}\n@media (max-width:980px){#fp .fp-q-grade{grid-template-columns:repeat(3,minmax(0,1fr))}}\n@media (max-width:860px){\n  #fp .fp-q-passos{grid-template-columns:minmax(0,1fr)}\n  #fp .fp-q-grade{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #fp .fp-q-op{padding:15px 16px}\n}\n@media (max-width:420px){#fp .fp-q-ops--pess .fp-q-op{flex-direction:column;align-items:flex-start;gap:8px}}\n@media (prefers-reduced-motion:reduce){#fp .fp-q-grade.anim .fp-fr-card{animation:none}}\n\n\/* ---- AL\u00c9M DAS BANHEIRAS: bento ---- *\/\n#fp .fp-alem-head{max-width:700px;margin-bottom:clamp(28px,3vw,44px)}\n#fp .fp-alem-head .fp-lead{margin-top:16px}\n#fp .fp-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}\n#fp .fp-bc{position:relative;border-radius:var(--r-media);overflow:hidden;isolation:isolate;min-height:290px;display:flex;color:#EEF5F4}\n#fp .fp-bc--a{grid-column:1 \/ 8;grid-row:1 \/ 3;min-height:600px}\n#fp .fp-bc--b,#fp .fp-bc--c{grid-column:8 \/ 13}\n#fp .fp-bc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}\n#fp .fp-bc::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,22,27,0) 30%,rgba(3,22,27,.88) 100%)}\n#fp .fp-bc-txt{margin-top:auto;padding:26px}\n#fp .fp-bc h3{color:#fff;font-size:clamp(21px,2vw,30px)}\n#fp .fp-bc p{color:rgba(238,245,244,.88);font-size:15.5px;margin-top:8px;max-width:42ch}\n#fp .fp-alem .fp-ctas{margin-top:26px}\n@media (max-width:860px){\n  #fp .fp-bc--a,#fp .fp-bc--b,#fp .fp-bc--c{grid-column:1 \/ -1;grid-row:auto;min-height:300px}\n}\n\n\/* ---- FECHO: manifesto + a\u00e7\u00f5es ---- *\/\n#fp .fp-fecho .fp-wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:end}\n#fp .fp-fecho blockquote{margin:0;font:600 clamp(30px,3.6vw,54px)\/1.08 var(--display);letter-spacing:-.03em;color:var(--foam);text-wrap:balance}\n#fp .fp-fecho .fp-lead{margin-top:20px}\n#fp .fp-acoes{display:grid;gap:10px}\n#fp .fp-acao{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:var(--r-card);border:1px solid var(--line-2);text-decoration:none;color:var(--foam);transition:border-color .2s ease,background-color .2s ease,transform .16s var(--ease-out)}\n#fp .fp-acao:active{transform:scale(.985)}\n@media (hover:hover) and (pointer:fine){#fp .fp-acao:hover{border-color:var(--foam);background:rgba(238,245,244,.04)}}\n#fp .fp-acao--glow{background:var(--glow);color:var(--glow-ink);border-color:transparent}\n@media (hover:hover) and (pointer:fine){#fp .fp-acao--glow:hover{background:var(--glow-2);border-color:transparent}}\n#fp .fp-acao > svg{width:22px;height:22px;flex:none}\n#fp .fp-acao b{display:block;font:600 16px\/1.25 var(--body)}\n#fp .fp-acao small{display:block;font-size:14px;opacity:.8;margin-top:2px}\n#fp .fp-acao .fp-seta{margin-left:auto;width:18px;height:18px;flex:none}\n#fp .fp-acao .fp-seta svg{width:18px;height:18px}\n@media (max-width:860px){#fp .fp-fecho .fp-wrap{grid-template-columns:minmax(0,1fr)}}\n\n\/* ---- SOBRE: como uma pe\u00e7a nasce ---- *\/\n#fp .fp-proc-head{max-width:660px;margin-bottom:clamp(28px,3vw,44px)}\n#fp .fp-proc-head .fp-lead{margin-top:16px}\n#fp .fp-proc{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(232px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}\n#fp .fp-proc li{scroll-snap-align:start;display:flex;flex-direction:column;gap:12px}\n#fp .fp-proc figure{margin:0;aspect-ratio:1;border-radius:var(--r-card);overflow:hidden;background:#0a2a30}\n#fp .fp-proc img{width:100%;height:100%;object-fit:cover}\n#fp .fp-proc h3{font-size:19px}\n#fp .fp-proc p{color:var(--mist);font-size:15.5px;line-height:1.5}\n@media (max-width:760px){#fp .fp-proc{grid-auto-columns:78%}}\n<\/style>\n\n<div id=\"fp-intro\" aria-hidden=\"true\" hidden>\n  <div class=\"fi-agua\"><\/div>\n  <canvas><\/canvas>\n  <button type=\"button\" class=\"fi-pular\" aria-hidden=\"false\">Pular abertura<\/button>\n<\/div>\n\n<div id=\"fp\" lang=\"pt-BR\">\n\n  <header class=\"fp-nav\">\n    <div class=\"fp-wrap\">\n      <a class=\"fp-logo\" href=\"\/web\/\" aria-label=\"Faiberplas, in\u00edcio\"><img loading=\"lazy\" decoding=\"async\" src=\"\/web\/wp-content\/uploads\/2026\/09\/logo-horizontal.png\" alt=\"Faiberplas\" width=\"668\" height=\"124\"><\/a>\n      <button type=\"button\" class=\"fp-menu-bt\" aria-expanded=\"false\" aria-controls=\"fp-menu\" aria-label=\"Abrir menu\"><svg class=\"fp-ic-menu\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16M4 12h16M4 17h16\"\/><\/svg><svg class=\"fp-ic-x\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg><\/button>\n      <nav id=\"fp-menu\" aria-label=\"P\u00e1ginas\"><ul><li><a href=\"\/web\/spas-2\">Spas<\/a><\/li><li><a href=\"\/web\/banheiras\">Banheiras<\/a><\/li><li><a href=\"\/web\/free-standing\">Free Standing<\/a><\/li><li><a href=\"\/web\/acessorios\">Acess\u00f3rios<\/a><\/li><li><a href=\"\/web\/sobre\">Sobre<\/a><\/li><li><a href=\"\/web\/contact\">Contato<\/a><\/li><\/ul><\/nav>\n      <a class=\"fp-bt fp-bt--glow fp-bt--sm\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Vim%20pelo%20site%20e%20quero%20um%20or%C3%A7amento.\" target=\"_blank\" rel=\"noopener\" data-wa=\"nav\">Pedir or\u00e7amento<\/a>\n    <\/div>\n  <\/header>\n\n  <main>\n  <section class=\"fp-hv fp-hero\" id=\"fp-topo\" aria-labelledby=\"fp-h1\">\n    <h1 id=\"fp-h1\" class=\"fp-sr\">Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985<\/h1>\n    <div class=\"fp-hv-bg\" aria-hidden=\"true\">\n      <video class=\"on\" src=\"\/web\/wp-content\/uploads\/2026\/10\/hv-showroom.mp4\" poster=\"\/web\/wp-content\/uploads\/2026\/10\/hv-showroom.jpg\" muted playsinline preload=\"auto\"><\/video>\n      <video src=\"\/web\/wp-content\/uploads\/2026\/10\/hv-galeria.mp4\" poster=\"\/web\/wp-content\/uploads\/2026\/10\/hv-galeria.jpg\" muted playsinline preload=\"metadata\"><\/video>\n      <video src=\"\/web\/wp-content\/uploads\/2026\/10\/hv-fabrica.mp4\" poster=\"\/web\/wp-content\/uploads\/2026\/10\/hv-fabrica.jpg\" muted playsinline preload=\"metadata\"><\/video>\n    <\/div>\n    <div class=\"fp-hv-in\">\n      <div class=\"fp-hv-tit\" aria-live=\"polite\"><p class=\"on\">Showroom<\/p><p>Galeria Thea<\/p><p>F\u00e1brica<\/p><\/div>\n      <div class=\"fp-hv-card\">\n        <video class=\"on\" src=\"\/web\/wp-content\/uploads\/2026\/10\/hv-showroom.mp4\" poster=\"\/web\/wp-content\/uploads\/2026\/10\/hv-showroom.jpg\" muted playsinline preload=\"none\" aria-label=\"Drone chegando \u00e0 fachada e entrada do showroom Faiberplas\"><\/video>\n        <video src=\"\/web\/wp-content\/uploads\/2026\/10\/hv-galeria.mp4\" poster=\"\/web\/wp-content\/uploads\/2026\/10\/hv-galeria.jpg\" muted playsinline preload=\"none\" aria-label=\"Spa aceso com cromoterapia em frente \u00e0 Galeria Thea, no showroom\"><\/video>\n        <video src=\"\/web\/wp-content\/uploads\/2026\/10\/hv-fabrica.mp4\" poster=\"\/web\/wp-content\/uploads\/2026\/10\/hv-fabrica.jpg\" muted playsinline preload=\"none\" aria-label=\"Pintor aplicando gel coat em um molde na f\u00e1brica\"><\/video>\n      <\/div>\n      <div class=\"fp-hv-tabs\" role=\"tablist\" aria-label=\"V\u00eddeos da Faiberplas\"><button type=\"button\" role=\"tab\" data-dur=\"7\" aria-selected=\"true\" style=\"--dur:7s\"><span>Showroom<\/span><i><\/i><\/button><button type=\"button\" role=\"tab\" data-dur=\"6.5\" aria-selected=\"false\" style=\"--dur:6.5s\"><span>Galeria Thea<\/span><i><\/i><\/button><button type=\"button\" role=\"tab\" data-dur=\"8.6\" aria-selected=\"false\" style=\"--dur:8.6s\"><span>F\u00e1brica<\/span><i><\/i><\/button><\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"fp-nums\" role=\"region\" aria-label=\"A Faiberplas em n\u00fameros\">\n    <div class=\"fp-wrap\"><ul>\n      <li><i class=\"fp-nums-ic\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M136,80v43.47l36.12,21.67a8,8,0,0,1-8.24,13.72l-40-24A8,8,0,0,1,120,128V80a8,8,0,0,1,16,0Zm-8-48A95.44,95.44,0,0,0,60.08,60.15C52.81,67.51,46.35,74.59,40,82V64a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8H72a8,8,0,0,0,0-16H49c7.15-8.42,14.27-16.35,22.39-24.57a80,80,0,1,1,1.66,114.75,8,8,0,1,0-11,11.64A96,96,0,1,0,128,32Z\"\/><\/svg><\/i><b>1985<\/b><span>F\u00e1brica pr\u00f3pria desde ent\u00e3o<\/span><\/li>\n      <li><i class=\"fp-nums-ic\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M116,176a8,8,0,0,1-8,8H80a8,8,0,0,1,0-16h28A8,8,0,0,1,116,176Zm60-8H148a8,8,0,0,0,0,16h28a8,8,0,0,0,0-16Zm64,48a8,8,0,0,1-8,8H24a8,8,0,0,1,0-16h8V88a8,8,0,0,1,12.8-6.4L96,120V88a8,8,0,0,1,12.8-6.4l38.74,29.05L159.1,29.74A16.08,16.08,0,0,1,174.94,16h18.12A16.08,16.08,0,0,1,208.9,29.74l15,105.13s.08.78.08,1.13v72h8A8,8,0,0,1,240,216Zm-77.86-94.4,8.53,6.4h36.11L193.06,32H174.94ZM48,208H208V144H168a8,8,0,0,1-4.8-1.6l-14.4-10.8,0,0L112,104v32a8,8,0,0,1-12.8,6.4L48,104Z\"\/><\/svg><\/i><b data-conta=\"3000\" data-suf=\" m\u00b2\">3.000 m\u00b2<\/b><span>de produ\u00e7\u00e3o em Palho\u00e7a<\/span><\/li>\n      <li><i class=\"fp-nums-ic\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M240,96H208a8,8,0,0,0-8-8H136a8,8,0,0,0-8,8H64V52A12,12,0,0,1,76,40a12.44,12.44,0,0,1,12.16,9.59,8,8,0,0,0,15.68-3.18A28.32,28.32,0,0,0,76,24,28,28,0,0,0,48,52V96H16a8,8,0,0,0-8,8v40a56.06,56.06,0,0,0,56,56v16a8,8,0,0,0,16,0V200h96v16a8,8,0,0,0,16,0V200a56.06,56.06,0,0,0,56-56V104A8,8,0,0,0,240,96Zm-48,8v32H144V104Zm40,40a40,40,0,0,1-40,40H64a40,40,0,0,1-40-40V112H128v32a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V112h24Z\"\/><\/svg><\/i><b data-conta=\"30\">30<\/b><span>modelos de linha, al\u00e9m do sob medida<\/span><\/li>\n      <li><i class=\"fp-nums-ic\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M225.86,102.82c-3.77-3.94-7.67-8-9.14-11.57-1.36-3.27-1.44-8.69-1.52-13.94-.15-9.76-.31-20.82-8-28.51s-18.75-7.85-28.51-8c-5.25-.08-10.67-.16-13.94-1.52-3.56-1.47-7.63-5.37-11.57-9.14C146.28,23.51,138.44,16,128,16s-18.27,7.51-25.18,14.14c-3.94,3.77-8,7.67-11.57,9.14C88,40.64,82.56,40.72,77.31,40.8c-9.76.15-20.82.31-28.51,8S41,67.55,40.8,77.31c-.08,5.25-.16,10.67-1.52,13.94-1.47,3.56-5.37,7.63-9.14,11.57C23.51,109.72,16,117.56,16,128s7.51,18.27,14.14,25.18c3.77,3.94,7.67,8,9.14,11.57,1.36,3.27,1.44,8.69,1.52,13.94.15,9.76.31,20.82,8,28.51s18.75,7.85,28.51,8c5.25.08,10.67.16,13.94,1.52,3.56,1.47,7.63,5.37,11.57,9.14C109.72,232.49,117.56,240,128,240s18.27-7.51,25.18-14.14c3.94-3.77,8-7.67,11.57-9.14,3.27-1.36,8.69-1.44,13.94-1.52,9.76-.15,20.82-.31,28.51-8s7.85-18.75,8-28.51c.08-5.25.16-10.67,1.52-13.94,1.47-3.56,5.37-7.63,9.14-11.57C232.49,146.28,240,138.44,240,128S232.49,109.73,225.86,102.82Zm-11.55,39.29c-4.79,5-9.75,10.17-12.38,16.52-2.52,6.1-2.63,13.07-2.73,19.82-.1,7-.21,14.33-3.32,17.43s-10.39,3.22-17.43,3.32c-6.75.1-13.72.21-19.82,2.73-6.35,2.63-11.52,7.59-16.52,12.38S132,224,128,224s-9.15-4.92-14.11-9.69-10.17-9.75-16.52-12.38c-6.1-2.52-13.07-2.63-19.82-2.73-7-.1-14.33-.21-17.43-3.32s-3.22-10.39-3.32-17.43c-.1-6.75-.21-13.72-2.73-19.82-2.63-6.35-7.59-11.52-12.38-16.52S32,132,32,128s4.92-9.15,9.69-14.11,9.75-10.17,12.38-16.52c2.52-6.1,2.63-13.07,2.73-19.82.1-7,.21-14.33,3.32-17.43S70.51,56.9,77.55,56.8c6.75-.1,13.72-.21,19.82-2.73,6.35-2.63,11.52-7.59,16.52-12.38S124,32,128,32s9.15,4.92,14.11,9.69,10.17,9.75,16.52,12.38c6.1,2.52,13.07,2.63,19.82,2.73,7,.1,14.33.21,17.43,3.32s3.22,10.39,3.32,17.43c.1,6.75.21,13.72,2.73,19.82,2.63,6.35,7.59,11.52,12.38,16.52S224,124,224,128,219.08,137.15,214.31,142.11ZM173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34Z\"\/><\/svg><\/i><b>INMETRO<\/b><span>Produto certificado<\/span><\/li>\n    <\/ul><\/div>\n  <\/div>\n\n  <section id=\"fp-linha\" class=\"t-claro t-perola\" aria-labelledby=\"fp-h-linha\">\n    <div class=\"fp-wrap\">\n      <div class=\"fp-linha-head\">\n        <h2 id=\"fp-h-linha\" class=\"sd-rise\">Toda a linha, feita na mesma f\u00e1brica<\/h2>\n        <p class=\"fp-lead\">Spas, banheiras, free standing e acess\u00f3rios saem da nossa produ\u00e7\u00e3o. Escolha por onde come\u00e7ar.<\/p>\n      <\/div>\n      <div class=\"fp-pns\">\n        <a class=\"fp-pn on\" href=\"\/web\/spas-2\">\n          <img src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-acapulco.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n          <div class=\"fp-pn-txt\"><h3>Spas<\/h3><span class=\"fp-pn-n\">11 modelos<\/span>\n            <div class=\"fp-pn-mais\"><div><p>De 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck ou \u00e1rea de lazer.<\/p><span>Ver spas<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span><\/div><\/div><\/div>\n        <\/a>\n        <a class=\"fp-pn\" href=\"\/web\/banheiras\">\n          <img src=\"\/web\/wp-content\/uploads\/2026\/10\/amb2-maldivas.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n          <div class=\"fp-pn-txt\"><h3>Banheiras<\/h3><span class=\"fp-pn-n\">16 modelos<\/span>\n            <div class=\"fp-pn-mais\"><div><p>Hidromassagem para a su\u00edte e o banheiro, em gel coat ou acr\u00edlico.<\/p><span>Ver banheiras<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span><\/div><\/div><\/div>\n        <\/a>\n        <a class=\"fp-pn\" href=\"\/web\/free-standing\">\n          <img src=\"\/web\/wp-content\/uploads\/2026\/10\/amb-fs-suprema.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n          <div class=\"fp-pn-txt\"><h3>Free Standing<\/h3><span class=\"fp-pn-n\">3 modelos<\/span>\n            <div class=\"fp-pn-mais\"><div><p>Banheiras de imers\u00e3o soltas, o ponto central do banheiro.<\/p><span>Ver free standing<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span><\/div><\/div><\/div>\n        <\/a>\n        <a class=\"fp-pn\" href=\"\/web\/acessorios\">\n          <img src=\"\/web\/wp-content\/uploads\/2026\/10\/cat-acessorios.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n          <div class=\"fp-pn-txt\"><h3>Acess\u00f3rios<\/h3><span class=\"fp-pn-n\">11 itens<\/span>\n            <div class=\"fp-pn-mais\"><div><p>Aquecedor, cromoterapia, ozonizador, filtragem e mais.<\/p><span>Ver acess\u00f3rios<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span><\/div><\/div><\/div>\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-qual t-preto\" id=\"fp-qual\" aria-labelledby=\"fp-h-qual\">\n    <div class=\"fp-wrap\">\n      <div class=\"fp-qual-head\">\n        <h2 id=\"fp-h-qual\" class=\"sd-rise\">Descubra qual modelo \u00e9 o seu<\/h2>\n        <p class=\"fp-lead\">Responda duas perguntas e veja na hora os modelos que servem para o seu espa\u00e7o.<\/p>\n      <\/div>\n      <div class=\"fp-q-passos\">\n        <fieldset class=\"fp-q-grupo\"><legend><i>1<\/i>Onde vai instalar?<\/legend>\n          <div class=\"fp-q-ops fp-q-ops--onde\"><button type=\"button\" class=\"fp-q-op\" data-q=\"onde\" data-v=\"suite\" aria-pressed=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M240,96H208a8,8,0,0,0-8-8H136a8,8,0,0,0-8,8H64V52A12,12,0,0,1,76,40a12.44,12.44,0,0,1,12.16,9.59,8,8,0,0,0,15.68-3.18A28.32,28.32,0,0,0,76,24,28,28,0,0,0,48,52V96H16a8,8,0,0,0-8,8v40a56.06,56.06,0,0,0,56,56v16a8,8,0,0,0,16,0V200h96v16a8,8,0,0,0,16,0V200a56.06,56.06,0,0,0,56-56V104A8,8,0,0,0,240,96Zm-48,8v32H144V104Zm40,40a40,40,0,0,1-40,40H64a40,40,0,0,1-40-40V112H128v32a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V112h24Z\"\/><\/svg><span><b>Banheiro ou su\u00edte<\/b><small>Banheiras de hidromassagem e free standing<\/small><\/span><\/button><button type=\"button\" class=\"fp-q-op\" data-q=\"onde\" data-v=\"externa\" aria-pressed=\"false\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M240,152H199.55a73.54,73.54,0,0,0,.45-8,72,72,0,0,0-144,0,73.54,73.54,0,0,0,.45,8H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM72,144a56,56,0,1,1,111.41,8H72.59A56.13,56.13,0,0,1,72,144Zm144,56a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16H208A8,8,0,0,1,216,200ZM72.84,43.58a8,8,0,0,1,14.32-7.16l8,16a8,8,0,0,1-14.32,7.16Zm-56,48.84a8,8,0,0,1,10.74-3.57l16,8a8,8,0,0,1-7.16,14.31l-16-8A8,8,0,0,1,16.84,92.42Zm192,15.16a8,8,0,0,1,3.58-10.73l16-8a8,8,0,1,1,7.16,14.31l-16,8a8,8,0,0,1-10.74-3.58Zm-48-55.16,8-16a8,8,0,0,1,14.32,7.16l-8,16a8,8,0,1,1-14.32-7.16Z\"\/><\/svg><span><b>\u00c1rea externa<\/b><small>Spas para varanda, deck ou \u00e1rea de lazer<\/small><\/span><\/button><button type=\"button\" class=\"fp-q-op\" data-q=\"onde\" data-v=\"corp\" aria-pressed=\"false\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M240,208H224V96a16,16,0,0,0-16-16H144V32a16,16,0,0,0-24.88-13.32L39.12,72A16,16,0,0,0,32,85.34V208H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM208,96V208H144V96ZM48,85.34,128,32V208H48ZM112,112v16a8,8,0,0,1-16,0V112a8,8,0,1,1,16,0Zm-32,0v16a8,8,0,0,1-16,0V112a8,8,0,1,1,16,0Zm0,56v16a8,8,0,0,1-16,0V168a8,8,0,0,1,16,0Zm32,0v16a8,8,0,0,1-16,0V168a8,8,0,0,1,16,0Z\"\/><\/svg><span><b>Hotel, clube ou cl\u00ednica<\/b><small>Modelos para uso intenso, todos os dias<\/small><\/span><\/button><\/div>\n        <\/fieldset>\n        <fieldset class=\"fp-q-grupo\"><legend><i>2<\/i>Quantas pessoas v\u00e3o usar ao mesmo tempo?<\/legend>\n          <div class=\"fp-q-ops fp-q-ops--pess\"><button type=\"button\" class=\"fp-q-op\" data-q=\"pess\" data-v=\"1\" aria-pressed=\"false\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8c18.84-32.56,52.14-52,89.07-52s70.23,19.44,89.07,52a8,8,0,1,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z\"\/><\/svg><span><b>1 pessoa<\/b><small>Banho individual<\/small><\/span><\/button><button type=\"button\" class=\"fp-q-op\" data-q=\"pess\" data-v=\"2\" aria-pressed=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M117.25,157.92a60,60,0,1,0-66.5,0A95.83,95.83,0,0,0,3.53,195.63a8,8,0,1,0,13.4,8.74,80,80,0,0,1,134.14,0,8,8,0,0,0,13.4-8.74A95.83,95.83,0,0,0,117.25,157.92ZM40,108a44,44,0,1,1,44,44A44.05,44.05,0,0,1,40,108Zm210.14,98.7a8,8,0,0,1-11.07-2.33A79.83,79.83,0,0,0,172,168a8,8,0,0,1,0-16,44,44,0,1,0-16.34-84.87,8,8,0,1,1-5.94-14.85,60,60,0,0,1,55.53,105.64,95.83,95.83,0,0,1,47.22,37.71A8,8,0,0,1,250.14,206.7Z\"\/><\/svg><span><b>2 pessoas<\/b><small>Ideal para casais<\/small><\/span><\/button><button type=\"button\" class=\"fp-q-op\" data-q=\"pess\" data-v=\"3-6\" aria-pressed=\"false\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M244.8,150.4a8,8,0,0,1-11.2-1.6A51.6,51.6,0,0,0,192,128a8,8,0,0,1-7.37-4.89,8,8,0,0,1,0-6.22A8,8,0,0,1,192,112a24,24,0,1,0-23.24-30,8,8,0,1,1-15.5-4A40,40,0,1,1,219,117.51a67.94,67.94,0,0,1,27.43,21.68A8,8,0,0,1,244.8,150.4ZM190.92,212a8,8,0,1,1-13.84,8,57,57,0,0,0-98.16,0,8,8,0,1,1-13.84-8,72.06,72.06,0,0,1,33.74-29.92,48,48,0,1,1,58.36,0A72.06,72.06,0,0,1,190.92,212ZM128,176a32,32,0,1,0-32-32A32,32,0,0,0,128,176ZM72,120a8,8,0,0,0-8-8A24,24,0,1,1,87.24,82a8,8,0,1,0,15.5-4A40,40,0,1,0,37,117.51,67.94,67.94,0,0,0,9.6,139.19a8,8,0,1,0,12.8,9.61A51.6,51.6,0,0,1,64,128,8,8,0,0,0,72,120Z\"\/><\/svg><span><b>3 a 6 pessoas<\/b><small>Fam\u00edlia e amigos<\/small><\/span><\/button><button type=\"button\" class=\"fp-q-op\" data-q=\"pess\" data-v=\"7+\" aria-pressed=\"false\"><svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M27.2,126.4a8,8,0,0,0,11.2-1.6,52,52,0,0,1,83.2,0,8,8,0,0,0,11.2,1.59,7.73,7.73,0,0,0,1.59-1.59h0a52,52,0,0,1,83.2,0,8,8,0,0,0,12.8-9.61A67.85,67.85,0,0,0,203,93.51a40,40,0,1,0-53.94,0,67.27,67.27,0,0,0-21,14.31,67.27,67.27,0,0,0-21-14.31,40,40,0,1,0-53.94,0A67.88,67.88,0,0,0,25.6,115.2,8,8,0,0,0,27.2,126.4ZM176,40a24,24,0,1,1-24,24A24,24,0,0,1,176,40ZM80,40A24,24,0,1,1,56,64,24,24,0,0,1,80,40ZM203,197.51a40,40,0,1,0-53.94,0,67.27,67.27,0,0,0-21,14.31,67.27,67.27,0,0,0-21-14.31,40,40,0,1,0-53.94,0A67.88,67.88,0,0,0,25.6,219.2a8,8,0,1,0,12.8,9.6,52,52,0,0,1,83.2,0,8,8,0,0,0,11.2,1.59,7.73,7.73,0,0,0,1.59-1.59h0a52,52,0,0,1,83.2,0,8,8,0,0,0,12.8-9.61A67.85,67.85,0,0,0,203,197.51ZM80,144a24,24,0,1,1-24,24A24,24,0,0,1,80,144Zm96,0a24,24,0,1,1-24,24A24,24,0,0,1,176,144Z\"\/><\/svg><span><b>7 ou mais<\/b><small>Spas grandes e lazer<\/small><\/span><\/button><\/div>\n        <\/fieldset>\n      <\/div>\n      <div class=\"fp-q-res\" aria-live=\"polite\">\n        <div class=\"fp-q-res-top\">\n          <div><b data-q-tit>Modelos<\/b><p data-q-sub><\/p><\/div>\n          <a data-q-todos href=\"\/web\/banheiras\">Ver todas as banheiras <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a>\n        <\/div>\n        <div class=\"fp-q-grade\"><\/div>\n        <p class=\"fp-q-nota\" hidden>Precisa de outra medida ou de mais lugares? <a href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Procuro%20uma%20banheira%20ou%20spa%20sob%20medida.\" target=\"_blank\" rel=\"noopener\">Fale com a f\u00e1brica sobre projeto sob medida<\/a>.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-alem t-claro t-pedra\" id=\"fp-sobmedida\" aria-labelledby=\"fp-h-alem\">\n    <div class=\"fp-wrap\">\n      <div class=\"fp-alem-head\">\n        <h2 id=\"fp-h-alem\" class=\"sd-rise\">Al\u00e9m das banheiras<\/h2>\n        <p class=\"fp-lead\">Se \u00e9 em fibra, a gente molda. Do projeto sob medida para clubes e hot\u00e9is \u00e0s floreiras personalizadas para o seu jardim.<\/p>\n      <\/div>\n      <div class=\"fp-bento\">\n        <article class=\"fp-bc fp-bc--a sd-card\">\n          <img src=\"\/web\/wp-content\/uploads\/2026\/09\/corinthians-real.webp\" alt=\"Centro de recupera\u00e7\u00e3o do Corinthians com piscinas de imers\u00e3o Faiberplas\" loading=\"lazy\" decoding=\"async\">\n          <div class=\"fp-bc-txt\"><h3>Piscinas de imers\u00e3o sob medida<\/h3><p>O centro de recupera\u00e7\u00e3o do Corinthians saiu daqui, do molde \u00e0 instala\u00e7\u00e3o.<\/p><\/div>\n        <\/article>\n        <article class=\"fp-bc fp-bc--b sd-card\">\n          <img src=\"\/web\/wp-content\/uploads\/2026\/10\/proc-pintura.webp\" alt=\"Floreiras personalizadas recebendo pintura na f\u00e1brica\" loading=\"lazy\" decoding=\"async\">\n          <div class=\"fp-bc-txt\"><h3>Floreiras e pe\u00e7as decorativas<\/h3><p>Moldadas no tamanho e na cor do seu projeto.<\/p><\/div>\n        <\/article>\n        <article class=\"fp-bc fp-bc--c sd-card\">\n          <img src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-oceanos.webp\" alt=\"Spa em acr\u00edlico para uso corporativo\" loading=\"lazy\" decoding=\"async\">\n          <div class=\"fp-bc-txt\"><h3>Hot\u00e9is, clubes e cl\u00ednicas<\/h3><p>Spas e banheiras para uso intenso, com assist\u00eancia da pr\u00f3pria f\u00e1brica.<\/p><\/div>\n        <\/article>\n      <\/div>\n      <div class=\"fp-ctas\">\n        <a class=\"fp-bt fp-bt--glow\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Tenho%20um%20projeto%20sob%20medida%20e%20quero%20conversar%20com%20a%20f%C3%A1brica.\" target=\"_blank\" rel=\"noopener\" data-wa=\"projeto\">Falar sobre projeto sob medida<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-exp t-grafite\" id=\"fp-experiencia\" aria-labelledby=\"fp-h-exp\">\n    <div class=\"fp-wrap\">\n      <figure class=\"fp-exp-video fp-player\">\n        <div class=\"fp-frame\">\n          <video src=\"\/web\/wp-content\/uploads\/2026\/09\/espaco-experiencia.mp4\" poster=\"\/web\/wp-content\/uploads\/2026\/09\/espaco-experiencia.jpg\" muted loop playsinline preload=\"none\" aria-label=\"Tour pelo espa\u00e7o de experi\u00eancia de banho do showroom Faiberplas\"><\/video>\n          <div class=\"fp-tour-ctl\">\n            <button type=\"button\" data-acao=\"play\" aria-label=\"Assistir v\u00eddeo\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M7 4.8v14.4L19 12z\"\/><\/svg><span>Assistir<\/span><\/button>\n            <button type=\"button\" data-acao=\"som\" aria-label=\"Ativar som\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M11 5L6 9H3v6h3l5 4V5z\"\/><path d=\"M16 9.5l5 5M21 9.5l-5 5\"\/><\/svg><span>Ativar som<\/span><\/button>\n          <\/div>\n        <\/div>\n        <figcaption>O espa\u00e7o de experi\u00eancia, apresentado por quem montou.<\/figcaption>\n      <\/figure>\n      <div>\n        <h2 id=\"fp-h-exp\" class=\"sd-rise\">Um banheiro completo, pronto para voc\u00ea testar<\/h2>\n        <p class=\"fp-lead sd-rise\">No showroom montamos um espa\u00e7o de experi\u00eancia: banheira, box, pedras, metais, toalheiro aquecido e automa\u00e7\u00e3o funcionando juntos, do jeito que v\u00e3o ficar na sua casa.<\/p>\n        <ol class=\"fp-exp-itens\">\n          <li class=\"sd-focus\"><b>Ligue a banheira e sinta os jatos<\/b><span>Cromoterapia e \u00e1gua na temperatura certa, sem pressa.<\/span><\/li>\n          <li class=\"sd-focus\"><b>Toque os acabamentos<\/b><span>Pedras, lou\u00e7as e metais dos nossos parceiros montados em volta da banheira.<\/span><\/li>\n          <li class=\"sd-focus\"><b>Saia com o projeto definido<\/b><span>Medidas, linha e instala\u00e7\u00e3o conversadas com quem fabrica.<\/span>\n            <div class=\"fp-ctas\"><a class=\"fp-bt fp-bt--glow\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Quero%20agendar%20uma%20visita%20ao%20showroom.\" target=\"_blank\" rel=\"noopener\" data-wa=\"experiencia\">Agendar visita<\/a><\/div>\n          <\/li>\n        <\/ol>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-parc t-claro t-pedra\" id=\"fp-parceiros\" aria-labelledby=\"fp-h-parc\">\n    <div class=\"fp-wrap\">\n      <h2 id=\"fp-h-parc\" class=\"sd-rise\">Parceiros que completam o banho<\/h2>\n      <p class=\"fp-lead sd-rise\">A banheira \u00e9 o centro. Em volta dela entram pedra, revestimento, lou\u00e7as, vidro, calor, automa\u00e7\u00e3o e enxoval. Estas s\u00e3o as marcas que trabalham com a gente.<\/p>\n      <ul class=\"fp-marcas\" aria-label=\"Marcas parceiras\">\n        <li class=\"fp-marca sd-card\" style=\"--lw:49.7%;--bgc:#000000\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-treviso.png\" alt=\"Pedras Treviso\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-treviso-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:49.5%;--bgc:#000000\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-marmoraria-biguacu.png\" alt=\"Marmoraria Bigua\u00e7u\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-marmoraria-biguacu-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:61.5%;--bgc:#93080c\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-eliane.png\" alt=\"Eliane\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-eliane-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:78%;--bgc:#000000\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-lexxa.png\" alt=\"Lexxa Bagno\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-lexxa-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:49.7%;--bgc:#2d2926\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-movel-do-brasil.png\" alt=\"M\u00f3vel do Brasil\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-movel-do-brasil-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:38.0%;--bgc:#efefef\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-cia-do-box.png\" alt=\"Cia do Box\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-cia-do-box-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:47.4%;--bgc:#f16a38\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-hotfloor.png\" alt=\"Hotfloor\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-hotfloor-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:59.2%;--bgc:#000000\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-aquece.png\" alt=\"Aquece Toalheiros Aquecidos\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-aquece-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:62.9%;--bgc:#000000\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-unisec.png\" alt=\"Unisec\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-unisec-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:73.3%;--bgc:#ffffff\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-buddemeyer.png\" alt=\"Buddemeyer\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-buddemeyer-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n        <li class=\"fp-marca sd-card\" style=\"--lw:20.8%;--bgc:#6d1a1d\"><div class=\"fp-marca-in\"><div class=\"fp-marca-f\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-autoral-home.png\" alt=\"Autoral Home\" data-alto loading=\"lazy\" decoding=\"async\"><\/div><div class=\"fp-marca-v\" aria-hidden=\"true\"><img src=\"\/web\/wp-content\/uploads\/2026\/09\/parceiro-autoral-home-cor.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><\/div><\/li>\n      <\/ul>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-fecho fp-barra-fim t-agua\" id=\"fp-contato-rapido\" aria-labelledby=\"fp-h-fecho\">\n    <div class=\"fp-wrap\">\n      <div>\n        <h2 id=\"fp-h-fecho\" class=\"fp-sr\">Fale com a f\u00e1brica<\/h2>\n        <blockquote class=\"sd-rise\">\u201cComprar hidromassagem por foto \u00e9 como comprar colch\u00e3o por foto.\u201d<\/blockquote>\n        <p class=\"fp-lead\">Meia hora no showroom resolve o que dez mensagens n\u00e3o resolvem. Venha sentar, comparar tamanhos e ver o acabamento de perto.<\/p>\n      <\/div>\n      <div class=\"fp-acoes\">\n        <a class=\"fp-acao fp-acao--glow\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Vim%20pelo%20site%20e%20quero%20um%20or%C3%A7amento.\" target=\"_blank\" rel=\"noopener\" data-wa=\"fecho\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.5 11.6a8.4 8.4 0 0 1-12.3 7.5L3.5 20.5l1.4-4.5A8.4 8.4 0 1 1 20.5 11.6z\"\/><path d=\"M9 8.6c.2 2.9 3 5.9 6.2 6.4l1.1-1.4-2-1-1 .9c-1-.4-2.1-1.5-2.5-2.5l.9-1-1-2z\"\/><\/svg><span><b>Pedir or\u00e7amento<\/b><small>Resposta da f\u00e1brica pelo WhatsApp<\/small><\/span><span class=\"fp-seta\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span><\/a>\n        <a class=\"fp-acao\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=Faiberplas%20Av.%20Caetano%20Silveira%2C%20222%2C%20Palho%C3%A7a%20SC\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg><span><b>Como chegar<\/b><small>Av. Caetano Silveira, 222, Palho\u00e7a<\/small><\/span><span class=\"fp-seta\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span><\/a>\n        <a class=\"fp-acao\" href=\"tel:+554832423337\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 4h3.5l1.8 4.5-2.3 1.4a11 11 0 0 0 6.1 6.1l1.4-2.3L20 15.5V19a1.5 1.5 0 0 1-1.6 1.5A16.5 16.5 0 0 1 3.5 5.6 1.5 1.5 0 0 1 5 4z\"\/><\/svg><span><b>Ligar para a f\u00e1brica<\/b><small>(48) 3242-3337, segunda a sexta, 8h \u00e0s 18h<\/small><\/span><span class=\"fp-seta\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span><\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n  <\/main>\n\n  <footer class=\"fp-rodape\">\n    <div class=\"fp-wrap\">\n      <div><img decoding=\"async\" src=\"\/web\/wp-content\/uploads\/2026\/09\/logo-faiberplas.png\" alt=\"Faiberplas\" width=\"446\" height=\"308\" loading=\"lazy\"><\/div>\n      <div><h3>F\u00e1brica e showroom<\/h3><p>Av. Caetano Silveira, 222<br>Jardim Eldorado, Palho\u00e7a, Santa Catarina<br>CEP 88133-520<\/p><\/div>\n      <div><h3>Atendimento<\/h3><p>Segunda a sexta, das 8h \u00e0s 18h<br>Florian\u00f3polis, Palho\u00e7a, S\u00e3o Jos\u00e9, Bigua\u00e7u e regi\u00e3o<\/p>\n        <p style=\"margin-top:8px\"><a href=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2026\/09\/catalogo-faiberplas.pdf.pdf\" target=\"_blank\" rel=\"noopener\">Baixar cat\u00e1logo (PDF)<\/a><br><a href=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/07\/FB015-23-MANUAL-USUARIO_compressed.pdf\" target=\"_blank\" rel=\"noopener\">Baixar manual (PDF)<\/a><\/p><\/div>\n      <div><h3>Contato<\/h3><ul>\n        <li><a href=\"https:\/\/wa.me\/5548991174548\" target=\"_blank\" rel=\"noopener\" data-wa=\"rodape\">WhatsApp (48) 99117-4548<\/a><\/li>\n        <li><a href=\"tel:+554832423337\">Telefone (48) 3242-3337<\/a><\/li>\n        <li><a href=\"https:\/\/www.instagram.com\/faiberplas\/\" target=\"_blank\" rel=\"noopener\">Instagram @faiberplas<\/a><\/li><\/ul><\/div>\n      <p class=\"fp-fim\">Faiberplas, banheiras de hidromassagem e spas. F\u00e1brica pr\u00f3pria em Palho\u00e7a, desde 1985. Imagens ambientadas do cat\u00e1logo s\u00e3o ilustrativas.<\/p>\n    <\/div>\n  <\/footer>\n  <div class=\"fp-barra\"><a class=\"fp-bt fp-bt--glow\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Vim%20pelo%20site%20e%20quero%20um%20or%C3%A7amento.\" target=\"_blank\" rel=\"noopener\" data-wa=\"barra\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.5 11.6a8.4 8.4 0 0 1-12.3 7.5L3.5 20.5l1.4-4.5A8.4 8.4 0 1 1 20.5 11.6z\"\/><path d=\"M9 8.6c.2 2.9 3 5.9 6.2 6.4l1.1-1.4-2-1-1 .9c-1-.4-2.1-1.5-2.5-2.5l.9-1-1-2z\"\/><\/svg>Pedir or\u00e7amento<\/a><\/div>\n  <dialog class=\"fp-ficha\" aria-labelledby=\"fp-ficha-nome\">\n    <button type=\"button\" class=\"fp-fechar\" aria-label=\"Fechar ficha\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg><\/button>\n    <div class=\"fp-ficha-in\">\n      <div class=\"fp-ficha-media\">\n        <div class=\"fp-view\"><img decoding=\"async\" alt=\"\" data-img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"><small data-legenda><\/small><\/div>\n        <div class=\"fp-abas\" role=\"tablist\" aria-label=\"Imagens do modelo\">\n          <button type=\"button\" role=\"tab\" data-v=\"amb\" aria-selected=\"true\">Ambientada<\/button>\n          <button type=\"button\" role=\"tab\" data-v=\"top\" aria-selected=\"false\">Vista de cima<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"fp-ficha-txt\">\n        <div><h3 id=\"fp-ficha-nome\"><\/h3><p class=\"fp-sub\" data-sub><\/p><\/div>\n        <dl class=\"fp-specs\" data-specs><\/dl>\n        <p class=\"fp-ficha-nota\" data-nota hidden><\/p>\n        <div>\n          <div class=\"fp-lin-tabs\" role=\"tablist\" aria-label=\"Equipamento por linha\">\n            <button type=\"button\" role=\"tab\" data-l=\"Ess\u00eancia\" aria-selected=\"false\">Ess\u00eancia<\/button>\n            <button type=\"button\" role=\"tab\" data-l=\"Harmonia\" aria-selected=\"true\">Harmonia<\/button>\n            <button type=\"button\" role=\"tab\" data-l=\"Plenitude\" aria-selected=\"false\">Plenitude<\/button>\n          <\/div>\n          <ul class=\"fp-lin-lista\" data-lista><\/ul>\n        <\/div>\n        <div class=\"fp-ficha-ctas\">\n          <a class=\"fp-bt fp-bt--glow\" data-wa-ficha href=\"#\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.5 11.6a8.4 8.4 0 0 1-12.3 7.5L3.5 20.5l1.4-4.5A8.4 8.4 0 1 1 20.5 11.6z\"\/><path d=\"M9 8.6c.2 2.9 3 5.9 6.2 6.4l1.1-1.4-2-1-1 .9c-1-.4-2.1-1.5-2.5-2.5l.9-1-1-2z\"\/><\/svg>Or\u00e7amento deste modelo<\/a>\n          <a class=\"fp-bt fp-bt--line\" href=\"\/web\/contact\">Falar com a f\u00e1brica<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/dialog>\n<\/div>\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"HomeAndConstructionBusiness\", \"name\": \"Faiberplas\", \"description\": \"F\u00e1brica de banheiras de hidromassagem, spas e banheiras de imers\u00e3o em Palho\u00e7a, SC, desde 1985.\", \"foundingDate\": \"1985\", \"telephone\": \"+55 48 99117-4548\", \"address\": {\"@type\": \"PostalAddress\", \"streetAddress\": \"Av. Caetano Silveira, 222\", \"addressLocality\": \"Palho\u00e7a\", \"addressRegion\": \"SC\", \"postalCode\": \"88133-520\", \"addressCountry\": \"BR\"}, \"openingHours\": \"Mo-Fr 08:00-18:00\", \"sameAs\": [\"https:\/\/www.instagram.com\/faiberplas\/\"], \"areaServed\": [\"Florian\u00f3polis\", \"Palho\u00e7a\", \"S\u00e3o Jos\u00e9\", \"Bigua\u00e7u\"]}<\/script>\n<script>\n\/* C\u00f3digo da p\u00e1gina em base64: o WordPress altera caracteres dentro de scripts. *\/\n(function(){var b=\"CihmdW5jdGlvbigpewogIHZhciBNPSIvd2ViL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA5LyIsIE0xMD0iL3dlYi93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8xMC8iLCBMMTA9WyJhbWItZmxvcmlwYS53ZWJwIiwgImFtYi1mcy1jcmV0YS53ZWJwIiwgImFtYi1mcy1kdW9tby53ZWJwIiwgImFtYi1mcy1zdXByZW1hLndlYnAiLCAiYW1iMi1lYXN5LWEud2VicCIsICJhbWIyLWVhc3ktYi53ZWJwIiwgImFtYjItZmxvcmlwYS53ZWJwIiwgImFtYjItZ3Jhbi1sYWd1bmEud2VicCIsICJhbWIyLWliaXphLndlYnAiLCAiYW1iMi1tYWxkaXZhcy53ZWJwIiwgImFtYjItbXlrb25vcy53ZWJwIiwgImNhdC1hY2Vzc29yaW9zLndlYnAiLCAiaGVyby1hZ3VhLmpwZyIsICJoZXJvLWFndWEubXA0IiwgImhlcm8tZmFicmljYS5qcGciLCAiaGVyby1mYWJyaWNhLm1wNCIsICJoZXJvLXNob3dyb29tLmpwZyIsICJoZXJvLXNob3dyb29tLm1wNCIsICJodi1mYWJyaWNhLmpwZyIsICJodi1mYWJyaWNhLm1wNCIsICJodi1nYWxlcmlhLmpwZyIsICJodi1nYWxlcmlhLm1wNCIsICJodi1zaG93cm9vbS5qcGciLCAiaHYtc2hvd3Jvb20ubXA0IiwgInByb2MtZXN0b3F1ZS53ZWJwIiwgInByb2MtbGFtaW5hY2FvLndlYnAiLCAicHJvYy1waW50dXJhLndlYnAiLCAicHJvYy10ZXN0ZS53ZWJwIiwgInN0aWxsLWZzLWNyZXRhLndlYnAiLCAic3RpbGwtZnMtZHVvbW8ud2VicCIsICJzdGlsbC1mcy1zdXByZW1hLndlYnAiLCAidG9wdi1hY2FwdWxjby53ZWJwIiwgInRvcHYtYW5ncmEud2VicCIsICJ0b3B2LWFydWJhLndlYnAiLCAidG9wdi1hdGxhbnRpY28ud2VicCIsICJ0b3B2LWJpYXJyaXR6LndlYnAiLCAidG9wdi1jYW5jdW4ud2VicCIsICJ0b3B2LWNhcHJpLndlYnAiLCAidG9wdi1jYXJpYmUud2VicCIsICJ0b3B2LWVhc3ktYS53ZWJwIiwgInRvcHYtZWFzeS1iLndlYnAiLCAidG9wdi1mbG9yaXBhLndlYnAiLCAidG9wdi1ncmFuLWxhZ3VuYS53ZWJwIiwgInRvcHYtZ3JhbmQtZmxvcmlwYS53ZWJwIiwgInRvcHYtaWJpemEud2VicCIsICJ0b3B2LWp1cmVyZS0xMzMxLndlYnAiLCAidG9wdi1qdXJlcmUtODg4LndlYnAiLCAidG9wdi1sYWd1bmEud2VicCIsICJ0b3B2LWxlYmxvbi53ZWJwIiwgInRvcHYtbWFsZGl2YXMud2VicCIsICJ0b3B2LW1hcmFnb2dpLndlYnAiLCAidG9wdi1tZWRpdGVycmFuZW8ud2VicCIsICJ0b3B2LW15a29ub3Mud2VicCIsICJ0b3B2LW5hdmFnaW8ud2VicCIsICJ0b3B2LW9jZWFub3Mud2VicCIsICJ0b3B2LXJpdmllcmEud2VicCIsICJ0b3B2LXViYXR1YmEud2VicCIsICJ0b3B2LXZlbmljZS53ZWJwIl0sIFdBPSI1NTQ4OTkxMTc0NTQ4IjsKICBmdW5jdGlvbiBVKGYpeyByZXR1cm4gKEwxMC5pbmRleE9mKGYpPi0xP00xMDpNKStmOyB9CiAgdmFyIERBRE9TPXsiZ3JhbmQtZmxvcmlwYSI6IHsic2x1ZyI6ICJncmFuZC1mbG9yaXBhIiwgIm5vbWUiOiAiU3BhIEdyYW5kIEZsb3JpcGEiLCAiY29kIjogIjY4MSIsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMjQwLCAidyI6IDI0MCwgImgiOiA4NSwgImxpdHJvcyI6IDI1NTMsICJrZyI6IDE1NywgImx1Z2FyZXMiOiAxMiwgImphdG9zIjogIjE1IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItZ3JhbmQtZmxvcmlwYS53ZWJwIiwgInRvcCI6ICJ0b3B2LWdyYW5kLWZsb3JpcGEud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiMTUgamF0b3MiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXSwgIkhhcm1vbmlhIjogWyIxNSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlNpc3RlbWEgZGUgZmlsdHJhZ2VtIGRlIGFyZWlhIl0sICJQbGVuaXR1ZGUiOiBbIjE1IGphdG9zIiwgIjIwIG1pbmkgamF0b3MiLCAiNCBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSJdfX0sICJjYXJpYmUiOiB7InNsdWciOiAiY2FyaWJlIiwgIm5vbWUiOiAiU3BhIFBpc2NpbmEgQ2FyaWJlIiwgImNvZCI6ICIxMjExIiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiA0MDMsICJ3IjogMjA3LCAiaCI6IDg1LCAibGl0cm9zIjogMjI2NSwgImtnIjogMTgwLCAibHVnYXJlcyI6IDEwLCAiamF0b3MiOiAiNiIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLWNhcmliZS53ZWJwIiwgInRvcCI6ICJ0b3B2LWNhcmliZS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI2IGphdG9zIiwgIjQgbWluaSBqYXRvcyIsICIyIGFwb2lvIGRlIGNhYmXDp2EiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIjggbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSIsICJQYWluZWwgd2lmaSBzZW5zZSA1Il0sICJQbGVuaXR1ZGUiOiBbIjYgamF0b3MiLCAiMTYgbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSIsICJQYWluZWwgd2lmaSBzZW5zZSA1Il19fSwgImFjYXB1bGNvIjogeyJzbHVnIjogImFjYXB1bGNvIiwgIm5vbWUiOiAiU3BhIEFjYXB1bGNvIiwgImNvZCI6ICIxMjE3IiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAyMjAsICJ3IjogMjIwLCAiaCI6IDk0LCAibGl0cm9zIjogMTE3MCwgImtnIjogOTQsICJsdWdhcmVzIjogNiwgImphdG9zIjogIjkiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYi1hY2FwdWxjby53ZWJwIiwgInRvcCI6ICJ0b3B2LWFjYXB1bGNvLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjkgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI5IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiOSBqYXRvcyIsICIxMiBtaW5pIGphdG9zIiwgIjQgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICIxIGFwb2lvIGRlIGNhYmXDp2EiLCAiUGFpbmVsIHdpZmkgc2Vuc2UgOSIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSJdfX0sICJtZWRpdGVycmFuZW8iOiB7InNsdWciOiAibWVkaXRlcnJhbmVvIiwgIm5vbWUiOiAiU3BhIE1lZGl0ZXJyw6JuZW8iLCAiY29kIjogIjEyMTQiLCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDIyMCwgInciOiAyMjAsICJoIjogOTAsICJsaXRyb3MiOiAxMTcwLCAia2ciOiA4NSwgImx1Z2FyZXMiOiA2LCAiamF0b3MiOiAiOCIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW1lZGl0ZXJyYW5lby53ZWJwIiwgInRvcCI6ICJ0b3B2LW1lZGl0ZXJyYW5lby53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI4IGphdG9zIl0sICJIYXJtb25pYSI6IFsiOCBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIl0sICJQbGVuaXR1ZGUiOiBbIjggamF0b3MiLCAiMjQgbWluaSBqYXRvcyIsICI0IHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlBhaW5lbCBXaWZpIHNlbnNlIDUiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIiwgIkZpbHRybyBkZSBjYXJ0dWNobyJdfX0sICJuYXZhZ2lvIjogeyJzbHVnIjogIm5hdmFnaW8iLCAibm9tZSI6ICJTcGEgTmF2YWdpbyIsICJjb2QiOiAiMTIyMyIsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMjAwLCAidyI6IDIwMCwgImgiOiAxMDAsICJsaXRyb3MiOiAxMTA1LCAia2ciOiA4NSwgImx1Z2FyZXMiOiA1LCAiamF0b3MiOiAiOCIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW5hdmFnaW8ud2VicCIsICJ0b3AiOiAidG9wdi1uYXZhZ2lvLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjggamF0b3MiXSwgIkhhcm1vbmlhIjogWyI4IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiOCBqYXRvcyIsICIzMiBtaW5pIGphdG9zIiwgIjQgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIyIGFwb2lvIGRlIGNhYmXDp2EiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXX19LCAiYXRsYW50aWNvIjogeyJzbHVnIjogImF0bGFudGljbyIsICJub21lIjogIlNwYSBBdGzDom50aWNvIiwgImNvZCI6ICIxMjIwIiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAxODUsICJ3IjogMTg1LCAiaCI6IDgzLCAibGl0cm9zIjogNzk1LCAia2ciOiA2NiwgImx1Z2FyZXMiOiA0LCAiamF0b3MiOiAiNiIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLWF0bGFudGljby53ZWJwIiwgInRvcCI6ICJ0b3B2LWF0bGFudGljby53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI2IGphdG9zIiwgIjQgbWluaSBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjYgamF0b3MiLCAiNCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICIxNiBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIl19fSwgIm1hcmFnb2dpIjogeyJzbHVnIjogIm1hcmFnb2dpIiwgIm5vbWUiOiAiU3BhIE1hcmFnb2dpIiwgImNvZCI6ICIxMjI1IiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAxODYsICJ3IjogMTg2LCAiaCI6IDc2LCAibGl0cm9zIjogODAwLCAia2ciOiA2NSwgImx1Z2FyZXMiOiA0LCAiamF0b3MiOiAiOCIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW1hcmFnb2dpLndlYnAiLCAidG9wIjogInRvcHYtbWFyYWdvZ2kud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiOCBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjggamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciJdLCAiUGxlbml0dWRlIjogWyI4IGphdG9zIiwgIjI0IG1pbmkgamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJGaWx0cm8gZGUgY2FydHVjaG8iLCAiUGFpbmVsIHdpZmkgc2Vuc2UgOSJdfX0sICJmbG9yaXBhIjogeyJzbHVnIjogImZsb3JpcGEiLCAibm9tZSI6ICJTcGEgRmxvcmlwYSIsICJjb2QiOiAiMTIyOCIsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMTY1LCAidyI6IDE2NSwgImgiOiA4MywgImxpdHJvcyI6IDcwMCwgImtnIjogNjMsICJsdWdhcmVzIjogNCwgImphdG9zIjogIjYiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYjItZmxvcmlwYS53ZWJwIiwgInRvcCI6ICJ0b3B2LWZsb3JpcGEud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiNiBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjYgamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSJdLCAiUGxlbml0dWRlIjogWyI2IGphdG9zIiwgIjE2IG1pbmkgamF0b3MiLCAiNCBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJGaWx0cm8gZGUgY2FydHVjaG8iXX19LCAibGFndW5hIjogeyJzbHVnIjogImxhZ3VuYSIsICJub21lIjogIlNwYSBMYWd1bmEiLCAiY29kIjogIjEyMzEiLCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDE4MCwgInciOiAxNDAsICJoIjogNzQsICJsaXRyb3MiOiA1MzAsICJrZyI6IDQzLCAibHVnYXJlcyI6IDMsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItbGFndW5hLndlYnAiLCAidG9wIjogInRvcHYtbGFndW5hLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICIxNCBtaW5pIGphdG9zIiwgIjQgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIxIGFwb2lvIGRlIGNhYmXDp2EiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXX19LCAiZ3Jhbi1sYWd1bmEiOiB7InNsdWciOiAiZ3Jhbi1sYWd1bmEiLCAibm9tZSI6ICJTcGEgR3JhbiBMYWd1bmEiLCAiY29kIjogIjEwMjciLCAiY2F0IjogInNwYSIsICJtYXQiOiAiQWNyw61saWNvIiwgImwiOiAyMDAsICJ3IjogMjAwLCAiaCI6IDkwLCAibGl0cm9zIjogMTA1MCwgImtnIjogODUsICJsdWdhcmVzIjogNCwgImphdG9zIjogIjgiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYjItZ3Jhbi1sYWd1bmEud2VicCIsICJ0b3AiOiAidG9wdi1ncmFuLWxhZ3VuYS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI4IGphdG9zIl0sICJIYXJtb25pYSI6IFsiOCBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIl0sICJQbGVuaXR1ZGUiOiBbIjggamF0b3MiLCAiMTggbWluaSBqYXRvcyIsICI0IHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlBhaW5lbCBXaWZpIHNlbnNlIDUiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIiwgIlNpc3RlbWEgZGUgZmlsdHJhZ2VtIGRlIGFyZWlhIl19fSwgIm9jZWFub3MiOiB7InNsdWciOiAib2NlYW5vcyIsICJub21lIjogIlNwYSBPY2Vhbm9zIiwgImNvZCI6ICI5MzgiLCAiY2F0IjogInNwYSIsICJtYXQiOiAiQWNyw61saWNvIiwgImwiOiAxODAsICJ3IjogMTgwLCAiaCI6IDkwLCAibGl0cm9zIjogODAwLCAia2ciOiA3MCwgImx1Z2FyZXMiOiA0LCAiamF0b3MiOiAiNiIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW9jZWFub3Mud2VicCIsICJ0b3AiOiAidG9wdi1vY2Vhbm9zLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICIxMiBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIyIGFwb2lvIGRlIGNhYmXDp2EiLCAiRmlsdHJvIGRlIGNhcnR1Y2hvIl19fSwgImFuZ3JhIjogeyJzbHVnIjogImFuZ3JhIiwgIm5vbWUiOiAiQmFuaGVpcmEgQW5ncmEiLCAiY29kIjogIjEyNTkiLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMjAwLCAidyI6IDE1MCwgImgiOiAxMTAsICJsaXRyb3MiOiA0MjAsICJrZyI6IDMzLCAibHVnYXJlcyI6IDIsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiRG9pcyB0YW1hbmhvczogMTUwIMOXIDIwMCDDlyAxMTAgY20gKDM0MCBMKSBlIDE3MCDDlyAxMjAgw5cgMTIwIGNtICg0MjAgTCkuIiwgImFtYiI6ICJhbWItYW5ncmEud2VicCIsICJ0b3AiOiAidG9wdi1hbmdyYS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI2IGphdG9zIl0sICJIYXJtb25pYSI6IFsiNiBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSJdLCAiUGxlbml0dWRlIjogWyI2IGphdG9zIiwgIjggbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlBhaW5lbCBXaWZpIHNlbnNlIDUiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIl19fSwgImFydWJhIjogeyJzbHVnIjogImFydWJhIiwgIm5vbWUiOiAiQmFuaGVpcmEgQXJ1YmEiLCAiY29kIjogIjEyNzciLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMTgwLCAidyI6IDE1MCwgImgiOiA1MCwgImxpdHJvcyI6IDQ5MCwgImtnIjogNDAsICJsdWdhcmVzIjogMiwgImphdG9zIjogIjYiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYi1hcnViYS53ZWJwIiwgInRvcCI6ICJ0b3B2LWFydWJhLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIl0sICJQbGVuaXR1ZGUiOiBbIjYgamF0b3MiLCAiOCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIyIGFwb2lvIGRlIGNhYmXDp2EiXX19LCAidmVuaWNlIjogeyJzbHVnIjogInZlbmljZSIsICJub21lIjogIkJhbmhlaXJhIFZlbmljZSIsICJjb2QiOiAiNjQyIiwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDE4MCwgInciOiAxNDAsICJoIjogNTAsICJsaXRyb3MiOiA0ODUsICJrZyI6IDQwLCAibHVnYXJlcyI6IDIsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItdmVuaWNlLndlYnAiLCAidG9wIjogInRvcHYtdmVuaWNlLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICI2IG1pbmkgamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciJdfX0sICJsZWJsb24iOiB7InNsdWciOiAibGVibG9uIiwgIm5vbWUiOiAiQmFuaGVpcmEgTGVibG9uIiwgImNvZCI6ICIxMjQ0IiwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDE4MCwgInciOiAxMzAsICJoIjogNTAsICJsaXRyb3MiOiA0MTUsICJrZyI6IDQwLCAibHVnYXJlcyI6IDIsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItbGVibG9uLndlYnAiLCAidG9wIjogInRvcHYtbGVibG9uLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIl0sICJQbGVuaXR1ZGUiOiBbIjYgamF0b3MiLCAiOCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIl19fSwgImJpYXJyaXR6IjogeyJzbHVnIjogImJpYXJyaXR6IiwgIm5vbWUiOiAiQmFuaGVpcmEgQmlhcnJpdHoiLCAiY29kIjogIjEyNDciLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMTgwLCAidyI6IDEyNSwgImgiOiA1MCwgImxpdHJvcyI6IDM4MCwgImtnIjogMzUsICJsdWdhcmVzIjogMiwgImphdG9zIjogIjYiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYi1iaWFycml0ei53ZWJwIiwgInRvcCI6ICJ0b3B2LWJpYXJyaXR6LndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIl0sICJQbGVuaXR1ZGUiOiBbIjYgamF0b3MiLCAiOCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIxIGFwb2lvIGRlIGNhYmXDp2EiXX19LCAiaWJpemEiOiB7InNsdWciOiAiaWJpemEiLCAibm9tZSI6ICJCYW5oZWlyYSBJYml6YSIsICJjb2QiOiAiMTMzMSIsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAxNTAsICJ3IjogMTUwLCAiaCI6IDQ1LCAibGl0cm9zIjogNDAwLCAia2ciOiAzNSwgImx1Z2FyZXMiOiAyLCAiamF0b3MiOiAiNiIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iMi1pYml6YS53ZWJwIiwgInRvcCI6ICJ0b3B2LWliaXphLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICI4IG1pbmkgamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciJdfX0sICJjYXByaSI6IHsic2x1ZyI6ICJjYXByaSIsICJub21lIjogIkJhbmhlaXJhIENhcHJpIiwgImNvZCI6ICIxMjUzIiwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDE3MCwgInciOiAxMjAsICJoIjogNDEsICJsaXRyb3MiOiAzODUsICJrZyI6IDMyLCAibHVnYXJlcyI6IDIsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItY2Fwcmkud2VicCIsICJ0b3AiOiAidG9wdi1jYXByaS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI2IGphdG9zIl0sICJIYXJtb25pYSI6IFsiNiBqYXRvcyIsICJBcXVlY2Vkb3IiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIl0sICJQbGVuaXR1ZGUiOiBbIjYgamF0b3MiLCAiNiBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXX19LCAibWFsZGl2YXMiOiB7InNsdWciOiAibWFsZGl2YXMiLCAibm9tZSI6ICJCYW5oZWlyYSBNYWxkaXZhcyIsICJjb2QiOiAiNjQxIiwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDE3MCwgInciOiAxMjAsICJoIjogNTAsICJsaXRyb3MiOiAyNDAsICJrZyI6IDM1LCAibHVnYXJlcyI6IDIsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWIyLW1hbGRpdmFzLndlYnAiLCAidG9wIjogInRvcHYtbWFsZGl2YXMud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiNiBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjYgamF0b3MiLCAiQXF1ZWNlZG9yIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSJdLCAiUGxlbml0dWRlIjogWyI2IGphdG9zIiwgIjYgbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlBhaW5lbCB3aWZpIHNlbnNlIDUiXX19LCAibXlrb25vcyI6IHsic2x1ZyI6ICJteWtvbm9zIiwgIm5vbWUiOiAiQmFuaGVpcmEgTXlrb25vcyIsICJjb2QiOiAiMTMwOSIsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAxNzAsICJ3IjogOTAsICJoIjogNTAsICJsaXRyb3MiOiAyNzAsICJrZyI6IDM1LCAibHVnYXJlcyI6IDIsICJqYXRvcyI6ICI0IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWIyLW15a29ub3Mud2VicCIsICJ0b3AiOiAidG9wdi1teWtvbm9zLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjQgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI0IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIl0sICJQbGVuaXR1ZGUiOiBbIjQgamF0b3MiLCAiNCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIl19fSwgInJpdmllcmEiOiB7InNsdWciOiAicml2aWVyYSIsICJub21lIjogIkJhbmhlaXJhIFJpdmllcmEiLCAiY29kIjogIjEzMDMiLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMTgwLCAidyI6IDEwMCwgImgiOiA1MCwgImxpdHJvcyI6IDI4NSwgImtnIjogMzAsICJsdWdhcmVzIjogMSwgImphdG9zIjogIjQiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYi1yaXZpZXJhLndlYnAiLCAidG9wIjogInRvcHYtcml2aWVyYS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI0IGphdG9zIl0sICJIYXJtb25pYSI6IFsiNCBqYXRvcyIsICJBcXVlY2Vkb3IiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSJdLCAiUGxlbml0dWRlIjogWyI0IGphdG9zIiwgIjggbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSJdfX0sICJqdXJlcmUtMTMzMSI6IHsic2x1ZyI6ICJqdXJlcmUtMTMzMSIsICJub21lIjogIkJhbmhlaXJhIEp1cmVyw6oiLCAiY29kIjogIjEzMzEiLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMTgwLCAidyI6IDkwLCAiaCI6IDUwLCAibGl0cm9zIjogMjkwLCAia2ciOiAzNSwgImx1Z2FyZXMiOiAxLCAiamF0b3MiOiAiNC82IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItanVyZXJlLTEzMzEud2VicCIsICJ0b3AiOiAidG9wdi1qdXJlcmUtMTMzMS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI0LzYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI0LzYgamF0b3MiLCAiQXF1ZWNlZG9yIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICIyIGFwb2lvIGRlIGNhYmXDp2EiXSwgIlBsZW5pdHVkZSI6IFsiNC82IGphdG9zIiwgIjEwIG1pbmkgamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICIyIGFwb2lvIGRlIGNhYmXDp2EiLCAiUGFpbmVsIHdpZmkgc2Vuc2UgNSJdfX0sICJjYW5jdW4iOiB7InNsdWciOiAiY2FuY3VuIiwgIm5vbWUiOiAiQmFuaGVpcmEgQ2FuY8O6biIsICJjb2QiOiAiMTM0OSIsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAxNzIsICJ3IjogODAsICJoIjogNTAsICJsaXRyb3MiOiA0OTAsICJrZyI6IDI1LCAibHVnYXJlcyI6IDEsICJqYXRvcyI6ICI0IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItY2FuY3VuLndlYnAiLCAidG9wIjogInRvcHYtY2FuY3VuLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjQgamF0b3MiLCAiQXF1ZWNlZG9yIl0sICJIYXJtb25pYSI6IFsiNCBqYXRvcyIsICJBcXVlY2Vkb3IiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIjEgYXBvaW8gZGUgY2FiZcOnYSJdLCAiUGxlbml0dWRlIjogWyI0IGphdG9zIiwgIjMgbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlBhaW5lbCBXaWZpIHNlbnNlIDUiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIl19fSwgInViYXR1YmEiOiB7InNsdWciOiAidWJhdHViYSIsICJub21lIjogIkJhbmhlaXJhIFViYXR1YmEiLCAiY29kIjogIjEzMTQiLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMTMwLCAidyI6IDgwLCAiaCI6IDUwLCAibGl0cm9zIjogMjAwLCAia2ciOiAyNCwgImx1Z2FyZXMiOiAxLCAiamF0b3MiOiAiNCIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLXViYXR1YmEud2VicCIsICJ0b3AiOiAidG9wdi11YmF0dWJhLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjQgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI0IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIl0sICJQbGVuaXR1ZGUiOiBbIjQgamF0b3MiLCAiNCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIl19fSwgImp1cmVyZS04ODgiOiB7InNsdWciOiAianVyZXJlLTg4OCIsICJub21lIjogIkJhbmhlaXJhIEp1cmVyw6ogQWNyw61saWNvIiwgImNvZCI6ICI4ODgiLCAiY2F0IjogImFjcmlsaWNvIiwgIm1hdCI6ICJBY3LDrWxpY28iLCAibCI6IDE4MCwgInciOiAxMTUsICJoIjogNTAsICJsaXRyb3MiOiAzOTAsICJrZyI6IDM2LCAibHVnYXJlcyI6IDIsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItanVyZXJlLTg4OC53ZWJwIiwgInRvcCI6ICJ0b3B2LWp1cmVyZS04ODgud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiNiBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjYgamF0b3MiLCAiQXF1ZWNlZG9yIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICIyIGFwb2lvIGRlIGNhYmXDp2EiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICIxMiBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIiwgIlBhaW5lbCB3aWZpIHNlbnNlIDUiXX19LCAiZWFzeS1iIjogeyJzbHVnIjogImVhc3ktYiIsICJub21lIjogIkJhbmhlaXJhIEVhc3kgQiIsICJjb2QiOiAiMTMzOCIsICJjYXQiOiAiYWNyaWxpY28iLCAibWF0IjogIkFjcsOtbGljbyIsICJsIjogMTcwLCAidyI6IDExMCwgImgiOiA0NSwgImxpdHJvcyI6IDM2MCwgImtnIjogNDUsICJsdWdhcmVzIjogMiwgImphdG9zIjogIjQiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYjItZWFzeS1iLndlYnAiLCAidG9wIjogInRvcHYtZWFzeS1iLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjQgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI0IGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIl0sICJQbGVuaXR1ZGUiOiBbIjQgamF0b3MiLCAiMTYgbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSIsICJQYWluZWwgd2lmaSBzZW5zZSA1Il19fSwgImVhc3ktYSI6IHsic2x1ZyI6ICJlYXN5LWEiLCAibm9tZSI6ICJCYW5oZWlyYSBFYXN5IEEiLCAiY29kIjogIjEwNTAiLCAiY2F0IjogImFjcmlsaWNvIiwgIm1hdCI6ICJBY3LDrWxpY28iLCAibCI6IDE3MCwgInciOiA5MCwgImgiOiA0NSwgImxpdHJvcyI6IDMxNSwgImtnIjogMjUsICJsdWdhcmVzIjogMSwgImphdG9zIjogIjMiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYjItZWFzeS1hLndlYnAiLCAidG9wIjogInRvcHYtZWFzeS1hLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjMgamF0b3MiXSwgIkhhcm1vbmlhIjogWyIzIGphdG9zIiwgIkFxdWVjZWRvciIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIl0sICJQbGVuaXR1ZGUiOiBbIjMgamF0b3MiLCAiOCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIiwgIlBhaW5lbCB3aWZpIHNlbnNlIDUiXX19fTsKICB2YXIgcm9vdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnAiKTsgaWYoIXJvb3QpIHJldHVybjsKICB2YXIgcmVkdXo9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIikubWF0Y2hlczsKICByb290LmNsYXNzTGlzdC5hZGQoImZwLWpzIik7CiAgZnVuY3Rpb24gcHJvbnRvKCl7IHJvb3QuY2xhc3NMaXN0LmFkZCgiZnAtcHJvbnRvIik7IH0KICBmdW5jdGlvbiB3YUxpbmsobXNnKXsgcmV0dXJuICJodHRwczovL3dhLm1lLyIrV0ErIj90ZXh0PSIrZW5jb2RlVVJJQ29tcG9uZW50KG1zZyk7IH0KICBmdW5jdGlvbiAkKHMpeyByZXR1cm4gcm9vdC5xdWVyeVNlbGVjdG9yKHMpOyB9CiAgZnVuY3Rpb24gJCQocyl7IHJldHVybiBbXS5zbGljZS5jYWxsKHJvb3QucXVlcnlTZWxlY3RvckFsbChzKSk7IH0KCiAgLyogLS0tLS0tLS0tLSBFTlRSQURBIChzw7MgbmEgaG9tZSwgc2UgaG91dmVyICNmcC1pbnRybykgLS0tLS0tLS0tLSAqLwogIChmdW5jdGlvbiBpbnRybygpewogICAgdmFyIGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcC1pbnRybyIpOwogICAgaWYoIWVsKXsgcHJvbnRvKCk7IHJldHVybjsgfQogICAgdmFyIGh0bWw9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwogICAgdmFyIGZlaXRvPWZhbHNlLCBnbCwgcHJvZywgdGV4LCB2aWRlbywgcmFmLCBhYmVydG89ZmFsc2UsIGFiZXJ0b0VtPTAsIHBvcD17eDowLHk6MCxyOjB9OwogICAgZnVuY3Rpb24gZmltKCl7CiAgICAgIGlmKGZlaXRvKSByZXR1cm47IGZlaXRvPXRydWU7CiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZik7CiAgICAgIGlmKGVsKXsgZWwucmVtb3ZlKCk7IH0KICAgICAgaHRtbC5zdHlsZS5vdmVyZmxvdz0iIjsKICAgICAgaWYodmlkZW8peyB2aWRlby5wYXVzZSgpOyB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOyB2aWRlby5sb2FkKCk7IH0KICAgICAgcHJvbnRvKCk7CiAgICB9CiAgICBpZihyZWR1eil7IGVsLnJlbW92ZSgpOyBwcm9udG8oKTsgcmV0dXJuOyB9CiAgICB2YXIgY3Y9ZWwucXVlcnlTZWxlY3RvcigiY2FudmFzIik7CiAgICB0cnl7IGdsPWN2LmdldENvbnRleHQoIndlYmdsIix7cHJlbXVsdGlwbGllZEFscGhhOnRydWUsYWxwaGE6dHJ1ZSxhbnRpYWxpYXM6ZmFsc2V9KTsgfWNhdGNoKGUpe30KICAgIGlmKCFnbCl7IGVsLnJlbW92ZSgpOyBwcm9udG8oKTsgcmV0dXJuOyB9CiAgICBlbC5oaWRkZW49ZmFsc2U7IGh0bWwuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7CiAgICBlbC5xdWVyeVNlbGVjdG9yKCIuZmktcHVsYXIiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgYWJyaXIodHJ1ZSk7IH0pOwoKICAgIHZhciB2cz0iYXR0cmlidXRlIHZlYzIgcDt2YXJ5aW5nIHZlYzIgdjt1bmlmb3JtIHZlYzQgVDt2b2lkIG1haW4oKXt2PXZlYzIoKHAueCsxLikqLjUsMS4tKHAueSsxLikqLjUpO3ZlYzIgcT1ULnh5K3YqVC56dztnbF9Qb3NpdGlvbj12ZWM0KHEueCoyLi0xLiwxLi1xLnkqMi4sMC4sMS4pO30iOwogICAgdmFyIE1PQj13aW5kb3cuaW5uZXJXaWR0aC93aW5kb3cuaW5uZXJIZWlnaHQ8MTsKICAgIHZhciBDRkc9TU9CP3tzcmM6ImludHJvLWJvbGhhLW0ubXA0Iixwb3A6Mi40MixjeDo2NDAsY3k6MjU4LHI6MTY1LGtleToiLS4xNTUsLS4yMjcifQogICAgICAgICAgICAgICA6e3NyYzoiaW50cm8tYm9saGEubXA0Iixwb3A6Mi4wMixjeDo2NDAsY3k6MzcyLHI6MjE1LGtleToiLS4xMjUsLS4yMzQifTsKICAgIGlmKE1PQikgZWwuY2xhc3NMaXN0LmFkZCgiZmktbW9iIik7CiAgICB2YXIgZnM9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O3ZhcnlpbmcgdmVjMiB2O3VuaWZvcm0gc2FtcGxlcjJEIHU7dW5pZm9ybSBmbG9hdCBBOyIrCiAgICAgICJ2b2lkIG1haW4oKXt2ZWMzIGM9dGV4dHVyZTJEKHUsdikucmdiOyIrCiAgICAgICJmbG9hdCBjYj0tLjE2OSpjLnItLjMzMSpjLmcrLjUqYy5iO2Zsb2F0IGNyPS41KmMuci0uNDE5KmMuZy0uMDgxKmMuYjsiKwogICAgICAiZmxvYXQgZD1kaXN0YW5jZSh2ZWMyKGNiLGNyKSx2ZWMyKCIrQ0ZHLmtleSsiKSk7IisKICAgICAgImZsb2F0IGE9c21vb3Roc3RlcCguMTAsLjI0LGQpOyIrCiAgICAgICJmbG9hdCBzPW1heCgwLixjLmctbWF4KGMucixjLmIpKTtjLmctPXMqLjkyO2MrPXZlYzMocyouMzUpOyIrCiAgICAgICJhKj1BO2dsX0ZyYWdDb2xvcj12ZWM0KGMqYSxhKTt9IjsKICAgIGZ1bmN0aW9uIHNoKHQscyl7dmFyIG89Z2wuY3JlYXRlU2hhZGVyKHQpO2dsLnNoYWRlclNvdXJjZShvLHMpO2dsLmNvbXBpbGVTaGFkZXIobyk7cmV0dXJuIG87fQogICAgcHJvZz1nbC5jcmVhdGVQcm9ncmFtKCk7Z2wuYXR0YWNoU2hhZGVyKHByb2csc2goZ2wuVkVSVEVYX1NIQURFUix2cykpO2dsLmF0dGFjaFNoYWRlcihwcm9nLHNoKGdsLkZSQUdNRU5UX1NIQURFUixmcykpO2dsLmxpbmtQcm9ncmFtKHByb2cpOwogICAgaWYoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZyxnbC5MSU5LX1NUQVRVUykpeyBlbC5yZW1vdmUoKTsgcHJvbnRvKCk7IHJldHVybjsgfQogICAgZ2wudXNlUHJvZ3JhbShwcm9nKTsKICAgIHZhciBiPWdsLmNyZWF0ZUJ1ZmZlcigpO2dsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLGIpO2dsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLDEsLTEsLTEsMSwxLDFdKSxnbC5TVEFUSUNfRFJBVyk7CiAgICB2YXIgbHA9Z2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZywicCIpO2dsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGxwKTtnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGxwLDIsZ2wuRkxPQVQsZmFsc2UsMCwwKTsKICAgIHZhciB1VD1nbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZywiVCIpLCB1QT1nbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZywiQSIpOwogICAgdGV4PWdsLmNyZWF0ZVRleHR1cmUoKTtnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELHRleCk7CiAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsZ2wuVEVYVFVSRV9XUkFQX1MsZ2wuQ0xBTVBfVE9fRURHRSk7Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELGdsLlRFWFRVUkVfV1JBUF9ULGdsLkNMQU1QX1RPX0VER0UpOwogICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELGdsLlRFWFRVUkVfTUlOX0ZJTFRFUixnbC5MSU5FQVIpO2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCxnbC5URVhUVVJFX01BR19GSUxURVIsZ2wuTElORUFSKTsKICAgIGdsLmVuYWJsZShnbC5CTEVORCk7Z2wuYmxlbmRGdW5jKGdsLk9ORSxnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKCiAgICB2aWRlbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpOwogICAgdmlkZW8ubXV0ZWQ9dHJ1ZTt2aWRlby5wbGF5c0lubGluZT10cnVlO3ZpZGVvLnNldEF0dHJpYnV0ZSgicGxheXNpbmxpbmUiLCIiKTt2aWRlby5zZXRBdHRyaWJ1dGUoIm11dGVkIiwiIik7dmlkZW8ucHJlbG9hZD0iYXV0byI7dmlkZW8uY3Jvc3NPcmlnaW49ImFub255bW91cyI7CiAgICB2aWRlby5zcmM9VShDRkcuc3JjKTsKICAgIHZhciBXPTEsSD0xLGRwcj0xLGJveD17eDowLHk6MCx3OjEsaDoxfTsKICAgIGZ1bmN0aW9uIG1lZGlyKCl7CiAgICAgIGRwcj1NYXRoLm1pbih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSwyKTtXPXdpbmRvdy5pbm5lcldpZHRoO0g9d2luZG93LmlubmVySGVpZ2h0OwogICAgICBjdi53aWR0aD1NYXRoLnJvdW5kKFcqZHByKTtjdi5oZWlnaHQ9TWF0aC5yb3VuZChIKmRwcik7Z2wudmlld3BvcnQoMCwwLGN2LndpZHRoLGN2LmhlaWdodCk7CiAgICAgIHZhciBzLHcsaCx4LHk7CiAgICAgIGlmKE1PQil7IHM9TWF0aC5tYXgoVyoyLjMvMTI4MCxIKi42Mi83MjApOyB3PTEyODAqczsgaD03MjAqczsgeD0oVy13KS8yOyB5PUgtaDsgfQogICAgICBlbHNlIHsgcz1NYXRoLm1heChXLzEyODAsSC83MjApOyB3PTEyODAqczsgaD03MjAqczsgeD0oVy13KS8yOyB5PUgtaDsgfQogICAgICBib3g9e3g6eCx5Onksdzp3LGg6aCxzOnN9OwogICAgICBwb3A9e3g6eCtDRkcuY3gqcyx5OnkrQ0ZHLmN5KnMscjpDRkcucipzfTsKICAgIH0KICAgIG1lZGlyKCk7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLG1lZGlyKTsKICAgIHZhciBhZ3VhPWVsLnF1ZXJ5U2VsZWN0b3IoIi5maS1hZ3VhIik7CiAgICBmdW5jdGlvbiBhYnJpcihyYXBpZG8pewogICAgICBpZihhYmVydG8peyBpZihyYXBpZG8pIGZpbSgpOyByZXR1cm47IH0KICAgICAgYWJlcnRvPXRydWU7IGFiZXJ0b0VtPXBlcmZvcm1hbmNlLm5vdygpOyBlbC5jbGFzc0xpc3QuYWRkKCJmaS1hYmVydG8iKTsKICAgICAgaHRtbC5zdHlsZS5vdmVyZmxvdz0iIjsgcHJvbnRvKCk7CiAgICAgIGlmKHJhcGlkbyl7IGVsLnN0eWxlLnRyYW5zaXRpb249Im9wYWNpdHkgLjM1cyBlYXNlIjsgZWwuc3R5bGUub3BhY2l0eT0iMCI7IHNldFRpbWVvdXQoZmltLDM4MCk7IH0KICAgIH0KICAgIGZ1bmN0aW9uIHF1YWRybyhhZ29yYSl7CiAgICAgIHJhZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocXVhZHJvKTsKICAgICAgdmFyIHQ9dmlkZW8uY3VycmVudFRpbWV8fDA7CiAgICAgIGlmKCFhYmVydG8peyBpZih0Pj1DRkcucG9wKSBhYnJpcihmYWxzZSk7IH0KICAgICAgaWYoYWJlcnRvKXsKICAgICAgICB2YXIgaz1NYXRoLm1pbigxLChhZ29yYS1hYmVydG9FbSkvMTE1MCk7CiAgICAgICAgdmFyIGU9azwuNT80KmsqayprOjEtTWF0aC5wb3coLTIqaysyLDMpLzI7CiAgICAgICAgdmFyIFI9cG9wLnIqLjYrZSpNYXRoLmh5cG90KE1hdGgubWF4KHBvcC54LFctcG9wLngpLE1hdGgubWF4KHBvcC55LEgtcG9wLnkpKSoxLjE1OwogICAgICAgIHZhciBnPSJyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0ICIrcG9wLngrInB4ICIrcG9wLnkrInB4LCB0cmFuc3BhcmVudCAiK1IrInB4LCAjMDAwICIrKFIrOTApKyJweCkiOwogICAgICAgIGFndWEuc3R5bGUud2Via2l0TWFza0ltYWdlPWc7IGFndWEuc3R5bGUubWFza0ltYWdlPWc7CiAgICAgIH0KICAgICAgdmFyIGZhZGU9MTsKICAgICAgaWYoYWJlcnRvKXsgdmFyIHRlPShhZ29yYS1hYmVydG9FbSkvMTAwMDsgZmFkZT10ZTwxLjY\/MTpNYXRoLm1heCgwLDEtKHRlLTEuNikvMC43KTsgaWYodGU+Mi40KXsgZmltKCk7IHJldHVybjsgfSB9CiAgICAgIGlmKHZpZGVvLnJlYWR5U3RhdGU+PTIpewogICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsdGV4KTsKICAgICAgICB0cnl7IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwwLGdsLlJHQixnbC5SR0IsZ2wuVU5TSUdORURfQllURSx2aWRlbyk7IH1jYXRjaChlcnIpeyBhYnJpcih0cnVlKTsgcmV0dXJuOyB9CiAgICAgICAgZ2wuY2xlYXJDb2xvcigwLDAsMCwwKTtnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKICAgICAgICBnbC51bmlmb3JtNGYodVQsYm94LngvVyxib3gueS9ILGJveC53L1csYm94LmgvSCk7Z2wudW5pZm9ybTFmKHVBLGZhZGUpOwogICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVfU1RSSVAsMCw0KTsKICAgICAgfQogICAgfQogICAgdmFyIGNvbWVjb3U9ZmFsc2U7CiAgICBmdW5jdGlvbiBjb21lY2FyKCl7IGlmKGNvbWVjb3UpIHJldHVybjsgY29tZWNvdT10cnVlOyByYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHF1YWRybyk7IH0KICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoInBsYXlpbmciLGNvbWVjYXIpOwogICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigiZW5kZWQiLGZ1bmN0aW9uKCl7IGFicmlyKGZhbHNlKTsgfSk7CiAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oKXsgYWJyaXIodHJ1ZSk7IH0pOwogICAgdmFyIHA9dmlkZW8ucGxheSgpOyBpZihwJiZwLmNhdGNoKSBwLmNhdGNoKGZ1bmN0aW9uKCl7IGFicmlyKHRydWUpOyB9KTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgaWYoIWNvbWVjb3UpIGFicmlyKHRydWUpOyB9LDM1MDApOwogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBpZighZmVpdG8pIGZpbSgpOyB9LDkwMDApOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gcm9sYWdlbTogYXBhcmVjZXIgYW8gZW50cmFyIC0tLS0tLS0tLS0gKi8KICB2YXIgdGVtU0Q9d2luZG93LkNTUyYmQ1NTLnN1cHBvcnRzJiZDU1Muc3VwcG9ydHMoImFuaW1hdGlvbi10aW1lbGluZTogdmlldygpIik7CiAgdmFyIGlvPSgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiIGluIHdpbmRvdyk\/bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVzKXtlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpeyBpZihlLmlzSW50ZXJzZWN0aW5nKXsgZS50YXJnZXQuY2xhc3NMaXN0LmFkZCgiZnAtdmlzdG8iKTsgaW8udW5vYnNlcnZlKGUudGFyZ2V0KTt9IH0pO30se3Jvb3RNYXJnaW46IjBweCAwcHggLTglIDBweCJ9KTpudWxsOwogIGlmKCF0ZW1TRCl7IHJvb3QuY2xhc3NMaXN0LmFkZCgiZnAtc2QtbmFvIik7IH0KICAkJCh0ZW1TRD8iLmZwLXN1cmdlIjoiLmZwLXN1cmdlLC5zZC1yaXNlLC5zZC1jYXJkIikuZm9yRWFjaChmdW5jdGlvbihuKXsgaWYoaW8pIGlvLm9ic2VydmUobik7IGVsc2Ugbi5jbGFzc0xpc3QuYWRkKCJmcC12aXN0byIpOyB9KTsKCiAgLyogLS0tLS0tLS0tLSBtZW51IGRvIGNlbHVsYXIgLS0tLS0tLS0tLSAqLwogIChmdW5jdGlvbigpewogICAgdmFyIG5hdj0kKCIuZnAtbmF2IiksIGJ0PSQoIi5mcC1tZW51LWJ0Iik7IGlmKCFuYXZ8fCFidCkgcmV0dXJuOwogICAgZnVuY3Rpb24gZmVjaGEoKXsgbmF2LmNsYXNzTGlzdC5yZW1vdmUoImFiZXJ0byIpOyBidC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpOyBidC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJBYnJpciBtZW51Iik7IH0KICAgIGJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpewogICAgICB2YXIgYWJyaXI9IW5hdi5jbGFzc0xpc3QuY29udGFpbnMoImFiZXJ0byIpOwogICAgICBuYXYuY2xhc3NMaXN0LnRvZ2dsZSgiYWJlcnRvIixhYnJpcik7CiAgICAgIGJ0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsYWJyaXI\/InRydWUiOiJmYWxzZSIpOwogICAgICBidC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGFicmlyPyJGZWNoYXIgbWVudSI6IkFicmlyIG1lbnUiKTsKICAgIH0pOwogICAgbmF2LnF1ZXJ5U2VsZWN0b3JBbGwoIm5hdiBhIikuZm9yRWFjaChmdW5jdGlvbihhKXsgYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZmVjaGEpOyB9KTsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGUpeyBpZihlLmtleT09PSJFc2NhcGUiKSBmZWNoYSgpOyB9KTsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXsgaWYobmF2LmNsYXNzTGlzdC5jb250YWlucygiYWJlcnRvIikgJiYgIW5hdi5jb250YWlucyhlLnRhcmdldCkpIGZlY2hhKCk7IH0pOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gbWVudSBtYXJjYSBhIHNlw6fDo28gYXR1YWwgKMOibmNvcmFzIG5hIG1lc21hIHDDoWdpbmEpIC0tLS0tLS0tLS0gKi8KICB2YXIgbGlua3M9JCQoJy5mcC1uYXYgdWwgYVtocmVmXj0iIyJdJyk7CiAgaWYobGlua3MubGVuZ3RoICYmICJJbnRlcnNlY3Rpb25PYnNlcnZlciIgaW4gd2luZG93KXsKICAgIHZhciBtYXBhPXt9OyBsaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGEpeyB2YXIgc2VjPXJvb3QucXVlcnlTZWxlY3RvcihhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsgaWYoc2VjKSBtYXBhW3NlYy5pZF09YTsgfSk7CiAgICB2YXIgb2JzPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlcyl7IGVzLmZvckVhY2goZnVuY3Rpb24oZSl7CiAgICAgIGlmKCFlLmlzSW50ZXJzZWN0aW5nKSByZXR1cm47CiAgICAgIGxpbmtzLmZvckVhY2goZnVuY3Rpb24obCl7IGwucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiKTsgfSk7CiAgICAgIHZhciBhPW1hcGFbZS50YXJnZXQuaWRdOyBpZihhKSBhLnNldEF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50IiwidHJ1ZSIpOwogICAgfSk7IH0se3Jvb3RNYXJnaW46Ii00NSUgMHB4IC01MCUgMHB4In0pOwogICAgJCQoIm1haW4gPiBzZWN0aW9uW2lkXSIpLmZvckVhY2goZnVuY3Rpb24oc2VjKXsgb2JzLm9ic2VydmUoc2VjKTsgfSk7CiAgfQoKICAvKiAtLS0tLS0tLS0tIGZpbHRybyArIGNhYmUgbm8gbWV1IGVzcGHDp28gLS0tLS0tLS0tLSAqLwogIHZhciBncmFkZT0kKCIuZnAtZ3JhZGUiKTsKICBpZihncmFkZSl7CiAgICB2YXIgY2FyZHM9JCQoIi5mcC1jYXJkIik7CiAgICB2YXIgZmlsdHJvPSJ0b2RvcyIsIGNhPSQoIiNmcC1jYSIpLCBjYj0kKCIjZnAtY2IiKSwgb3V0PSQoIi5mcC1jYWJlIG91dHB1dCIpLCBsaW1wYXI9JCgiLmZwLWxpbXBhciIpLCB2YXppbz0kKCIuZnAtdmF6aW8iKTsKICAgIHZhciB0ZW1NZWRpZGE9ISEoY2EmJmNiKTsKICAgIGZ1bmN0aW9uIGFwbGljYXIoKXsKICAgICAgdmFyIGE9dGVtTWVkaWRhP3BhcnNlRmxvYXQoY2EudmFsdWUpOk5hTiwgYj10ZW1NZWRpZGE\/cGFyc2VGbG9hdChjYi52YWx1ZSk6TmFOLCBtZWRpcj1hPjAmJmI+MCwgdmlzPTAsIHZpc0NhYmU9MDsKICAgICAgY2FyZHMuZm9yRWFjaChmdW5jdGlvbihjKXsKICAgICAgICB2YXIgb2s9ZmlsdHJvPT09InRvZG9zInx8Yy5kYXRhc2V0LmNhdD09PWZpbHRybzsKICAgICAgICBjLmhpZGRlbj0hb2s7CiAgICAgICAgdmFyIGw9K2MuZGF0YXNldC5sLCB3PStjLmRhdGFzZXQudzsKICAgICAgICB2YXIgZml0PSFtZWRpcnx8KChsPD1hJiZ3PD1iKXx8KGw8PWImJnc8PWEpKTsKICAgICAgICBjLmNsYXNzTGlzdC50b2dnbGUoImZwLW5hby1jYWJlIiwhZml0KTsKICAgICAgICBpZihvayl7IHZpcysrOyBpZihmaXQpIHZpc0NhYmUrKzsgfQogICAgICB9KTsKICAgICAgaWYobGltcGFyKSBsaW1wYXIuaGlkZGVuPSEoY2EudmFsdWV8fGNiLnZhbHVlKTsKICAgICAgaWYob3V0KSBvdXQuaW5uZXJIVE1MPW1lZGlyPyJDYWJlbSA8Yj4iK3Zpc0NhYmUrIjwvYj4gZGUgIit2aXMrIiBtb2RlbG9zIjoiIjsKICAgICAgaWYodmF6aW8pIHZhemlvLmNsYXNzTGlzdC50b2dnbGUoIm9uIixtZWRpciYmdmlzQ2FiZT09PTApOwogICAgfQogICAgJCQoIi5mcC1maWx0cm8gYnV0dG9uIikuZm9yRWFjaChmdW5jdGlvbihidCl7CiAgICAgIGJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpewogICAgICAgIGZpbHRybz1idC5kYXRhc2V0LmY7CiAgICAgICAgJCQoIi5mcC1maWx0cm8gYnV0dG9uIikuZm9yRWFjaChmdW5jdGlvbihvKXsgby5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsbz09PWJ0PyJ0cnVlIjoiZmFsc2UiKTsgfSk7CiAgICAgICAgYXBsaWNhcigpOwogICAgICB9KTsKICAgIH0pOwogICAgaWYodGVtTWVkaWRhKXsKICAgICAgW2NhLGNiXS5mb3JFYWNoKGZ1bmN0aW9uKGkpeyBpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixhcGxpY2FyKTsgfSk7CiAgICAgIGlmKGxpbXBhcikgbGltcGFyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyBjYS52YWx1ZT0iIjtjYi52YWx1ZT0iIjthcGxpY2FyKCk7Y2EuZm9jdXMoKTsgfSk7CiAgICB9CiAgfQoKICAvKiAtLS0tLS0tLS0tIGxpbmhhczogbsOtdmVsIGRhIMOhZ3VhIC0tLS0tLS0tLS0gKi8KICB2YXIgdGFucXVlPSQoIi5mcC10YW5xdWUiKTsKICBpZih0YW5xdWUpewogICAgdmFyIGl0ZW5zPSQkKCIuZnAtaXRlbnMgbGkiKTsKICAgIHZhciBub21lcz17MToiRXNzw6puY2lhIiwyOiJIYXJtb25pYSIsMzoiUGxlbml0dWRlIn07CiAgICBmdW5jdGlvbiBsaW5oYShuKXsKICAgICAgdmFyIG9uPWl0ZW5zLmZpbHRlcihmdW5jdGlvbihsaSl7cmV0dXJuICtsaS5kYXRhc2V0Lm48PW47fSkubGVuZ3RoOwogICAgICB2YXIgYWx0PXRhbnF1ZS5xdWVyeVNlbGVjdG9yKCIuZnAtaXRlbnMiKS5vZmZzZXRIZWlnaHQsIHRvdD10YW5xdWUub2Zmc2V0SGVpZ2h0fHwxOwogICAgICB2YXIgbml2ZWw9TWF0aC5taW4oLjk4LChvbi9pdGVucy5sZW5ndGgpKihhbHQvdG90KSsgLjAyKTsKICAgICAgdGFucXVlLnN0eWxlLnNldFByb3BlcnR5KCItLW5pdmVsIixuaXZlbC50b0ZpeGVkKDMpKTsKICAgICAgaXRlbnMuZm9yRWFjaChmdW5jdGlvbihsaSl7IGxpLmNsYXNzTGlzdC50b2dnbGUoIm9uIiwrbGkuZGF0YXNldC5uPD1uKTsgfSk7CiAgICAgIHRhbnF1ZS5xdWVyeVNlbGVjdG9yKCJbZGF0YS1ub21lXSIpLnRleHRDb250ZW50PW5vbWVzW25dOwogICAgICAkJCgiLmZwLXNlZyBidXR0b24iKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0KXsgYnQuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCtidC5kYXRhc2V0Lmxpbj09PW4\/InRydWUiOiJmYWxzZSIpOyB9KTsKICAgIH0KICAgICQkKCIuZnAtc2VnIGJ1dHRvbiIpLmZvckVhY2goZnVuY3Rpb24oYnQpeyBidC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgbGluaGEoK2J0LmRhdGFzZXQubGluKTsgfSk7IH0pOwogICAgbGluaGEoMik7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGZ1bmN0aW9uKCl7IHZhciBhPSQoJy5mcC1zZWcgW2FyaWEtcHJlc3NlZD0idHJ1ZSJdJyk7IGxpbmhhKGE\/K2EuZGF0YXNldC5saW46Mik7IH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLSB2w61kZW9zIGNvbSBjb250cm9sZXMgLS0tLS0tLS0tLSAqLwogIHZhciBJPXtwYXVzZTonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTggNXYxNE0xNiA1djE0Ii8+PC9zdmc+JyxwbGF5Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNNyA0Ljh2MTQuNEwxOSAxMnoiLz48L3N2Zz4nLG11dGU6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xMSA1TDYgOUgzdjZoM2w1IDRWNXoiLz48cGF0aCBkPSJNMTYgOS41bDUgNU0yMSA5LjVsLTUgNSIvPjwvc3ZnPicsc29tOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTEgNUw2IDlIM3Y2aDNsNSA0VjV6Ii8+PHBhdGggZD0iTTE1LjUgOC41YTUgNSAwIDAgMSAwIDdNMTguNSA2YTguNSA4LjUgMCAwIDEgMCAxMiIvPjwvc3ZnPid9OwogICQkKCIuZnAtcGxheWVyIikuZm9yRWFjaChmdW5jdGlvbihmaWcpewogICAgdmFyIHY9ZmlnLnF1ZXJ5U2VsZWN0b3IoInZpZGVvIiksIGJ0UGxheT1maWcucXVlcnlTZWxlY3RvcignW2RhdGEtYWNhbz0icGxheSJdJyksIGJ0U29tPWZpZy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hY2FvPSJzb20iXScpLCBwYXVzYWRvUGVsb1VzdWFyaW89ZmFsc2U7CiAgICBmdW5jdGlvbiByb3R1bG9zKCl7CiAgICAgIGJ0UGxheS5pbm5lckhUTUw9KHYucGF1c2VkP0kucGxheSsiPHNwYW4+QXNzaXN0aXI8L3NwYW4+IjpJLnBhdXNlKyI8c3Bhbj5QYXVzYXI8L3NwYW4+Iik7CiAgICAgIGJ0UGxheS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHYucGF1c2VkPyJBc3Npc3RpciB2w61kZW8iOiJQYXVzYXIgdsOtZGVvIik7CiAgICAgIGJ0U29tLmlubmVySFRNTD0odi5tdXRlZD9JLm11dGUrIjxzcGFuPkF0aXZhciBzb208L3NwYW4+IjpJLnNvbSsiPHNwYW4+U29tIGxpZ2Fkbzwvc3Bhbj4iKTsKICAgICAgYnRTb20uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix2Lm11dGVkPyJBdGl2YXIgc29tIjoiRGVzYXRpdmFyIHNvbSIpOwogICAgfQogICAgYnRQbGF5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyBpZih2LnBhdXNlZCl7IHBhdXNhZG9QZWxvVXN1YXJpbz1mYWxzZTsgdi5wbGF5KCk7IH0gZWxzZSB7IHBhdXNhZG9QZWxvVXN1YXJpbz10cnVlOyB2LnBhdXNlKCk7IH0gfSk7CiAgICBidFNvbS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsKICAgICAgdi5tdXRlZD0hdi5tdXRlZDsKICAgICAgaWYoIXYubXV0ZWQpeyAkJCgiLmZwLXBsYXllciB2aWRlbyIpLmZvckVhY2goZnVuY3Rpb24obyl7IGlmKG8hPT12KSBvLm11dGVkPXRydWU7IH0pOyBwYXVzYWRvUGVsb1VzdWFyaW89ZmFsc2U7IHYucGxheSgpOyB9CiAgICB9KTsKICAgIHYuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIscm90dWxvcyk7IHYuYWRkRXZlbnRMaXN0ZW5lcigicGF1c2UiLHJvdHVsb3MpOyB2LmFkZEV2ZW50TGlzdGVuZXIoInZvbHVtZWNoYW5nZSIscm90dWxvcyk7CiAgICBpZigiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiIGluIHdpbmRvdyl7CiAgICAgIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlcyl7IGVzLmZvckVhY2goZnVuY3Rpb24oZSl7CiAgICAgICAgaWYoZS5pc0ludGVyc2VjdGluZyl7IGlmKCFwYXVzYWRvUGVsb1VzdWFyaW8gJiYgIXJlZHV6KXsgdi5wcmVsb2FkPSJhdXRvIjsgdmFyIHA9di5wbGF5KCk7IGlmKHAmJnAuY2F0Y2gpcC5jYXRjaChmdW5jdGlvbigpe30pOyB9IH0KICAgICAgICBlbHNlIGlmKCF2LnBhdXNlZCl7IHYucGF1c2UoKTsgfQogICAgICB9KTsgfSx7dGhyZXNob2xkOi4zNX0pLm9ic2VydmUodik7CiAgICB9CiAgICByb3R1bG9zKCk7CiAgfSk7CgogIC8qIC0tLS0tLS0tLS0gYmFycmEgZml4YSBubyBjZWx1bGFyIC0tLS0tLS0tLS0gKi8KICB2YXIgYmFycmE9JCgiLmZwLWJhcnJhIik7CiAgaWYoYmFycmEgJiYgIkludGVyc2VjdGlvbk9ic2VydmVyIiBpbiB3aW5kb3cpewogICAgdmFyIGhlcm89JCgiLmZwLWhlcm8iKSwgZmltMj0kKCIuZnAtYmFycmEtZmltIik7CiAgICB2YXIgdkhlcm89ISFoZXJvLCB2RmltPWZhbHNlOwogICAgdmFyIGFsdm9zPVtdOyBpZihoZXJvKSBhbHZvcy5wdXNoKGhlcm8pOyBpZihmaW0yKSBhbHZvcy5wdXNoKGZpbTIpOwogICAgaWYoYWx2b3MubGVuZ3RoKXsKICAgICAgdmFyIG9iPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlcyl7IGVzLmZvckVhY2goZnVuY3Rpb24oZSl7IGlmKGUudGFyZ2V0PT09aGVybykgdkhlcm89ZS5pc0ludGVyc2VjdGluZzsgZWxzZSB2RmltPWUuaXNJbnRlcnNlY3Rpbmc7IH0pOyBiYXJyYS5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsIXZIZXJvJiYhdkZpbSk7IH0pOwogICAgICBhbHZvcy5mb3JFYWNoKGZ1bmN0aW9uKGEpeyBvYi5vYnNlcnZlKGEpOyB9KTsKICAgIH0gZWxzZSB7IGJhcnJhLmNsYXNzTGlzdC5hZGQoIm9uIik7IH0KICB9CgogIC8qIC0tLS0tLS0tLS0gbG9nb3MgZG9zIHBhcmNlaXJvcyAtLS0tLS0tLS0tICovCiAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgbWFyY2FzPSQkKCIuZnAtbWFyY2EiKTsgaWYoIW1hcmNhcy5sZW5ndGgpIHJldHVybjsKICAgIHZhciB0b3F1ZT0hd2luZG93Lm1hdGNoTWVkaWEoIihob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkiKS5tYXRjaGVzLCB0aW1lcj1udWxsLCBpPTA7CiAgICBtYXJjYXMuZm9yRWFjaChmdW5jdGlvbihtKXsgbS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgbS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXJhZGEiKTsgfSk7IH0pOwogICAgaWYoIXRvcXVlIHx8IHJlZHV6IHx8ICEoIkludGVyc2VjdGlvbk9ic2VydmVyIiBpbiB3aW5kb3cpKSByZXR1cm47CiAgICBmdW5jdGlvbiBwYXNzbygpeyB2YXIgbT1tYXJjYXNbaSAlIG1hcmNhcy5sZW5ndGhdOyBpKys7IG0uY2xhc3NMaXN0LmFkZCgidmlyYWRhIik7IHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgbS5jbGFzc0xpc3QucmVtb3ZlKCJ2aXJhZGEiKTsgfSwxNjAwKTsgfQogICAgbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVzKXsgZXMuZm9yRWFjaChmdW5jdGlvbihlKXsKICAgICAgaWYoZS5pc0ludGVyc2VjdGluZyl7IGlmKCF0aW1lcil7IHBhc3NvKCk7IHRpbWVyPXNldEludGVydmFsKHBhc3NvLDkwMCk7IH0gfQogICAgICBlbHNlIGlmKHRpbWVyKXsgY2xlYXJJbnRlcnZhbCh0aW1lcik7IHRpbWVyPW51bGw7IH0KICAgIH0pOyB9LHt0aHJlc2hvbGQ6LjN9KS5vYnNlcnZlKCQoIi5mcC1tYXJjYXMiKSk7CiAgfSkoKTsKCiAgLyogLS0tLS0tLS0tLSBmaWNoYSBkbyBtb2RlbG8gLS0tLS0tLS0tLSAqLwogIHZhciBkbGc9JCgiLmZwLWZpY2hhIik7CiAgaWYoZGxnKXsKICAgIHZhciBhdHVhbD1udWxsLCBsaW5oYUF0dWFsPSJIYXJtb25pYSI7CiAgICB2YXIgQ0hFQ0s9Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik00LjUgMTIuNWw1IDUgMTAtMTEiLz48L3N2Zz4nOwogICAgZnVuY3Rpb24gZm10KG4peyByZXR1cm4gU3RyaW5nKG4pLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csIi4iKTsgfQogICAgZnVuY3Rpb24gdmlzdGEodil7CiAgICAgIHZhciBtPWF0dWFsLCBpbWc9ZGxnLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLWltZ10iKSwgbGVnPWRsZy5xdWVyeVNlbGVjdG9yKCJbZGF0YS1sZWdlbmRhXSIpOwogICAgICB2YXIgdGVtVG9wPSEhbS50b3A7CiAgICAgIGltZy5jbGFzc0xpc3QudG9nZ2xlKCJmcC1jb250YWluIix2PT09InRvcCIpOwogICAgICBpbWcuc3JjPVUodj09PSJ0b3AiP20udG9wOm0uYW1iKTsKICAgICAgaW1nLmFsdD1tLm5vbWUrKHY9PT0iYW1iIj8iLCBpbWFnZW0gYW1iaWVudGFkYSI6IiwgdmlzdGEgZGUgY2ltYSIpOwogICAgICBsZWcudGV4dENvbnRlbnQ9dj09PSJhbWIiPyJJbWFnZW0gaWx1c3RyYXRpdmEgZG8gY2F0w6Fsb2dvIjoiVmlzdGEgZGUgY2ltYSI7CiAgICAgIGRsZy5xdWVyeVNlbGVjdG9yQWxsKCIuZnAtYWJhcyBidXR0b24iKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0KXsgYnQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixidC5kYXRhc2V0LnY9PT12PyJ0cnVlIjoiZmFsc2UiKTsgfSk7CiAgICB9CiAgICBmdW5jdGlvbiBlcXVpcChsKXsKICAgICAgbGluaGFBdHVhbD1sOwogICAgICB2YXIgbGlzdGE9KGF0dWFsLmxpbmhhcyYmYXR1YWwubGluaGFzW2xdKXx8W107CiAgICAgIGRsZy5xdWVyeVNlbGVjdG9yKCJbZGF0YS1saXN0YV0iKS5pbm5lckhUTUw9bGlzdGEubWFwKGZ1bmN0aW9uKHgpe3JldHVybiAiPGxpPiIrQ0hFQ0srIjxzcGFuPiIreCsiPC9zcGFuPjwvbGk+Ijt9KS5qb2luKCIiKTsKICAgICAgZGxnLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mcC1saW4tdGFicyBidXR0b24iKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0KXsgYnQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixidC5kYXRhc2V0Lmw9PT1sPyJ0cnVlIjoiZmFsc2UiKTsgfSk7CiAgICAgIGRsZy5xdWVyeVNlbGVjdG9yKCJbZGF0YS13YS1maWNoYV0iKS5ocmVmPXdhTGluaygiT2zDoSEgVGVuaG8gaW50ZXJlc3NlIG5vIG1vZGVsbyAiK2F0dWFsLm5vbWUrIiAoY8OzZC4gIithdHVhbC5jb2QrIiksIGxpbmhhICIrbCsiLiBQb2RlIG1lIHBhc3NhciB1bSBvcsOnYW1lbnRvPyIpOwogICAgfQogICAgZnVuY3Rpb24gYWJyaXJGaWNoYShzbHVnKXsKICAgICAgdmFyIG09REFET1Nbc2x1Z107IGlmKCFtKSByZXR1cm47IGF0dWFsPW07CiAgICAgIGRsZy5xdWVyeVNlbGVjdG9yKCIjZnAtZmljaGEtbm9tZSIpLnRleHRDb250ZW50PW0ubm9tZTsKICAgICAgZGxnLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXN1Yl0iKS50ZXh0Q29udGVudD0iQ8OzZC4gIittLmNvZCsiICB8ICAiK20ubWF0KyIgIHwgICIrKG0uY2F0PT09InNwYSI\/IlNwYSI6IkJhbmhlaXJhIGRlIGhpZHJvbWFzc2FnZW0iKTsKICAgICAgZGxnLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXNwZWNzXSIpLmlubmVySFRNTD0KICAgICAgICAiPGRpdj48ZHQ+Q29tcHJpbWVudG88L2R0PjxkZD4iK20ubCsiIDxzbWFsbD5jbTwvc21hbGw+PC9kZD48L2Rpdj4iKwogICAgICAgICI8ZGl2PjxkdD5MYXJndXJhPC9kdD48ZGQ+IittLncrIiA8c21hbGw+Y208L3NtYWxsPjwvZGQ+PC9kaXY+IisKICAgICAgICAiPGRpdj48ZHQ+QWx0dXJhPC9kdD48ZGQ+IittLmgrIiA8c21hbGw+Y208L3NtYWxsPjwvZGQ+PC9kaXY+IisKICAgICAgICAiPGRpdj48ZHQ+TGl0cmFnZW08L2R0PjxkZD4iK2ZtdChtLmxpdHJvcykrIiA8c21hbGw+TDwvc21hbGw+PC9kZD48L2Rpdj4iKwogICAgICAgICI8ZGl2PjxkdD5QZXNvPC9kdD48ZGQ+IittLmtnKyIgPHNtYWxsPmtnPC9zbWFsbD48L2RkPjwvZGl2PiIrCiAgICAgICAgIjxkaXY+PGR0Pkx1Z2FyZXM8L2R0PjxkZD4iK20ubHVnYXJlcysiPC9kZD48L2Rpdj4iOwogICAgICB2YXIgbm90YT1kbGcucXVlcnlTZWxlY3RvcigiW2RhdGEtbm90YV0iKTsgbm90YS5oaWRkZW49IW0ubm90YTsgbm90YS50ZXh0Q29udGVudD1tLm5vdGF8fCIiOwogICAgICB2YXIgYWJhVG9wPWRsZy5xdWVyeVNlbGVjdG9yKCcuZnAtYWJhcyBbZGF0YS12PSJ0b3AiXScpOyBpZihhYmFUb3ApIGFiYVRvcC5oaWRkZW49IW0udG9wOwogICAgICB2aXN0YSgiYW1iIik7IGVxdWlwKGxpbmhhQXR1YWwpOwogICAgICBpZih0eXBlb2YgZGxnLnNob3dNb2RhbD09PSJmdW5jdGlvbiIpIGRsZy5zaG93TW9kYWwoKTsgZWxzZSBkbGcuc2V0QXR0cmlidXRlKCJvcGVuIiwiIik7CiAgICB9CiAgICBmdW5jdGlvbiBmZWNoYXJGaWNoYSgpeyBpZihkbGcub3Blbil7IGlmKHR5cGVvZiBkbGcuY2xvc2U9PT0iZnVuY3Rpb24iKSBkbGcuY2xvc2UoKTsgZWxzZSBkbGcucmVtb3ZlQXR0cmlidXRlKCJvcGVuIik7IH0gfQogICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7CiAgICAgIHZhciBjPWUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLW1vZGVsb10iKTsKICAgICAgaWYoIWMpeyB2YXIgY2FyZD1lLnRhcmdldC5jbG9zZXN0KCIuZnAtY2FyZCIpOyBpZihjYXJkKSBjPWNhcmQucXVlcnlTZWxlY3RvcigiW2RhdGEtbW9kZWxvXSIpOyB9CiAgICAgIGlmKGMpeyBlLnByZXZlbnREZWZhdWx0KCk7IGFicmlyRmljaGEoYy5kYXRhc2V0Lm1vZGVsbyk7IH0KICAgIH0pOwogICAgZGxnLnF1ZXJ5U2VsZWN0b3IoIi5mcC1mZWNoYXIiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZmVjaGFyRmljaGEpOwogICAgdmFyIHZvbHRhPWRsZy5xdWVyeVNlbGVjdG9yKCJbZGF0YS1mZWNoYV0iKTsgaWYodm9sdGEpIHZvbHRhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyBmZWNoYXJGaWNoYSgpOyB9KTsKICAgIGRsZy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7IGlmKGUudGFyZ2V0PT09ZGxnKSBmZWNoYXJGaWNoYSgpOyB9KTsKICAgIGRsZy5xdWVyeVNlbGVjdG9yQWxsKCIuZnAtYWJhcyBidXR0b24iKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0KXsgYnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7IHZpc3RhKGJ0LmRhdGFzZXQudik7IH0pOyB9KTsKICAgIGRsZy5xdWVyeVNlbGVjdG9yQWxsKCIuZnAtbGluLXRhYnMgYnV0dG9uIikuZm9yRWFjaChmdW5jdGlvbihidCl7IGJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyBlcXVpcChidC5kYXRhc2V0LmwpOyB9KTsgfSk7CiAgfQoKICAvKiAtLS0tLS0tLS0tIGhlcm86IHbDrWRlb3MgcXVlIGFsdGVybmFtIHNvemluaG9zIC0tLS0tLS0tLS0gKi8KICAoZnVuY3Rpb24oKXsKICAgIHZhciBodj0kKCIuZnAtaHYiKTsgaWYoIWh2KSByZXR1cm47CiAgICB2YXIgYmdzPVtdLnNsaWNlLmNhbGwoaHYucXVlcnlTZWxlY3RvckFsbCgiLmZwLWh2LWJnIHZpZGVvIikpLCBjcz1bXS5zbGljZS5jYWxsKGh2LnF1ZXJ5U2VsZWN0b3JBbGwoIi5mcC1odi1jYXJkIHZpZGVvIikpOwogICAgdmFyIHRpdHM9W10uc2xpY2UuY2FsbChodi5xdWVyeVNlbGVjdG9yQWxsKCIuZnAtaHYtdGl0IHAiKSksIHRhYnM9W10uc2xpY2UuY2FsbChodi5xdWVyeVNlbGVjdG9yQWxsKCIuZnAtaHYtdGFicyBidXR0b24iKSk7CiAgICB2YXIgY2FyZD1odi5xdWVyeVNlbGVjdG9yKCIuZnAtaHYtY2FyZCIpLCBuPXRhYnMubGVuZ3RoLCBpPTAsIHRpbWVyPW51bGwsIHZpc2l2ZWw9dHJ1ZTsKICAgIGZ1bmN0aW9uIGNhcmRPbigpeyByZXR1cm4gY2FyZCA\/IGdldENvbXB1dGVkU3R5bGUoY2FyZCkuZGlzcGxheSE9PSJub25lIiA6IGZhbHNlOyB9CiAgICBmdW5jdGlvbiB0b2NhKHYpeyBpZighdikgcmV0dXJuOyBpZih2LnByZWxvYWQ9PT0ibm9uZSIpIHYucHJlbG9hZD0iYXV0byI7IHRyeXsgdi5jdXJyZW50VGltZT0wOyB9Y2F0Y2goZSl7fSB2YXIgcD12LnBsYXkoKTsgaWYocCYmcC5jYXRjaCkgcC5jYXRjaChmdW5jdGlvbigpe30pOyB9CiAgICBmdW5jdGlvbiB2YWkoayl7CiAgICAgIGk9KGsrbiklbjsKICAgICAgW2Jncyxjcyx0aXRzXS5mb3JFYWNoKGZ1bmN0aW9uKGcpeyBnLmZvckVhY2goZnVuY3Rpb24oZWwsail7IGVsLmNsYXNzTGlzdC50b2dnbGUoIm9uIixqPT09aSk7IH0pOyB9KTsKICAgICAgW2Jncyxjc10uZm9yRWFjaChmdW5jdGlvbihnKXsgZy5mb3JFYWNoKGZ1bmN0aW9uKHYsail7IGlmKGohPT1pKSB2LnBhdXNlKCk7IH0pOyB9KTsKICAgICAgdGFicy5mb3JFYWNoKGZ1bmN0aW9uKHQsail7IHQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixqPT09aT8idHJ1ZSI6ImZhbHNlIik7IHQuY2xhc3NMaXN0LnJlbW92ZSgiY29ycmUiKTsgfSk7CiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CiAgICAgIGlmKHJlZHV6IHx8ICF2aXNpdmVsKSByZXR1cm47CiAgICAgIHRvY2EoYmdzW2ldKTsgaWYoY2FyZE9uKCkpIHRvY2EoY3NbaV0pOwogICAgICB2b2lkIHRhYnNbaV0ub2Zmc2V0V2lkdGg7IHRhYnNbaV0uY2xhc3NMaXN0LmFkZCgiY29ycmUiKTsKICAgICAgdGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpeyB2YWkoaSsxKTsgfSwoK3RhYnNbaV0uZGF0YXNldC5kdXJ8fDcpKjEwMDApOwogICAgfQogICAgdGFicy5mb3JFYWNoKGZ1bmN0aW9uKHQsail7IHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7IHZhaShqKTsgfSk7IH0pOwogICAgaWYoIkludGVyc2VjdGlvbk9ic2VydmVyIiBpbiB3aW5kb3cpewogICAgICBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZXMpeyBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpewogICAgICAgIHZpc2l2ZWw9ZS5pc0ludGVyc2VjdGluZzsKICAgICAgICBpZih2aXNpdmVsKSB2YWkoaSk7IGVsc2UgeyBjbGVhclRpbWVvdXQodGltZXIpOyBiZ3MuY29uY2F0KGNzKS5mb3JFYWNoKGZ1bmN0aW9uKHYpeyB2LnBhdXNlKCk7IH0pOyB9CiAgICAgIH0pOyB9LHt0aHJlc2hvbGQ6LjJ9KS5vYnNlcnZlKGh2KTsKICAgIH0gZWxzZSB2YWkoMCk7CiAgfSkoKTsKCiAgLyogLS0tLS0tLS0tLSBsaW5oYTogcGFpbsOpaXMgcXVlIGV4cGFuZGVtIC0tLS0tLS0tLS0gKi8KICAoZnVuY3Rpb24oKXsKICAgIHZhciBwbnM9JCQoIi5mcC1wbiIpOyBpZighcG5zLmxlbmd0aCkgcmV0dXJuOwogICAgZnVuY3Rpb24gbGlnYShwKXsgcG5zLmZvckVhY2goZnVuY3Rpb24obyl7IG8uY2xhc3NMaXN0LnRvZ2dsZSgib24iLG89PT1wKTsgfSk7IH0KICAgIHBucy5mb3JFYWNoKGZ1bmN0aW9uKHApewogICAgICBwLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7IGxpZ2EocCk7IH0pOwogICAgICBwLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpeyBsaWdhKHApOyB9KTsKICAgIH0pOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gbsO6bWVyb3MgY29udGFtIGFvIGFwYXJlY2VyIC0tLS0tLS0tLS0gKi8KICAoZnVuY3Rpb24oKXsKICAgIHZhciBucz0kJCgiW2RhdGEtY29udGFdIik7IGlmKCFucy5sZW5ndGggfHwgcmVkdXogfHwgISgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiIGluIHdpbmRvdykpIHJldHVybjsKICAgIGZ1bmN0aW9uIGZtdChuKXsgcmV0dXJuIFN0cmluZyhuKS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLCIuIik7IH0KICAgIHZhciBvYj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZXMpeyBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpewogICAgICBpZighZS5pc0ludGVyc2VjdGluZykgcmV0dXJuOyBvYi51bm9ic2VydmUoZS50YXJnZXQpOwogICAgICB2YXIgZWw9ZS50YXJnZXQsIGFsdm89K2VsLmRhdGFzZXQuY29udGEsIHN1Zj1lbC5kYXRhc2V0LnN1Znx8IiIsIHQwPXBlcmZvcm1hbmNlLm5vdygpLCBkdXI9MTMwMDsKICAgICAgZnVuY3Rpb24gcGFzc28oYWdvcmEpewogICAgICAgIHZhciBrPU1hdGgubWluKDEsKGFnb3JhLXQwKS9kdXIpLCBxPTEtTWF0aC5wb3coMS1rLDMpOwogICAgICAgIGVsLnRleHRDb250ZW50PWZtdChNYXRoLnJvdW5kKGFsdm8qcSkpK3N1ZjsKICAgICAgICBpZihrPDEpIHJlcXVlc3RBbmltYXRpb25GcmFtZShwYXNzbyk7CiAgICAgIH0KICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHBhc3NvKTsKICAgIH0pOyB9LHt0aHJlc2hvbGQ6LjZ9KTsKICAgIG5zLmZvckVhY2goZnVuY3Rpb24obil7IG9iLm9ic2VydmUobik7IH0pOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gbG9jYWxpemFkb3I6IGRlc2N1YnJhIHF1YWwgbW9kZWxvIMOpIG8gc2V1IC0tLS0tLS0tLS0gKi8KICAoZnVuY3Rpb24oKXsKICAgIHZhciBib3g9JCgiLmZwLXF1YWwiKTsgaWYoIWJveCkgcmV0dXJuOwogICAgdmFyIElURU5TPVt7InNsdWciOiAicml2aWVyYSIsICJub21lIjogIkJhbmhlaXJhIFJpdmllcmEiLCAiYW1iIjogImFtYi1yaXZpZXJhLndlYnAiLCAibCI6IDE4MCwgInciOiAxMDAsICJsdWdhcmVzIjogMSwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogImp1cmVyZS0xMzMxIiwgIm5vbWUiOiAiQmFuaGVpcmEgSnVyZXLDqiIsICJhbWIiOiAiYW1iLWp1cmVyZS0xMzMxLndlYnAiLCAibCI6IDE4MCwgInciOiA5MCwgImx1Z2FyZXMiOiAxLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCJ9LCB7InNsdWciOiAiY2FuY3VuIiwgIm5vbWUiOiAiQmFuaGVpcmEgQ2FuY8O6biIsICJhbWIiOiAiYW1iLWNhbmN1bi53ZWJwIiwgImwiOiAxNzIsICJ3IjogODAsICJsdWdhcmVzIjogMSwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogImVhc3ktYSIsICJub21lIjogIkJhbmhlaXJhIEVhc3kgQSIsICJhbWIiOiAiYW1iMi1lYXN5LWEud2VicCIsICJsIjogMTcwLCAidyI6IDkwLCAibHVnYXJlcyI6IDEsICJjYXQiOiAiYWNyaWxpY28iLCAibWF0IjogIkFjcsOtbGljbyJ9LCB7InNsdWciOiAiZnMtY3JldGEiLCAibm9tZSI6ICJGcmVlIFN0YW5kaW5nIENyZXRhIiwgImFtYiI6ICJhbWItZnMtY3JldGEud2VicCIsICJsIjogMTU5LCAidyI6IDcwLCAibHVnYXJlcyI6IDEsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkZyZWUgc3RhbmRpbmciLCAiZnMiOiB0cnVlfSwgeyJzbHVnIjogImZzLWR1b21vIiwgIm5vbWUiOiAiRnJlZSBTdGFuZGluZyBEdW9tbyIsICJhbWIiOiAiYW1iLWZzLWR1b21vLndlYnAiLCAibCI6IDE1OCwgInciOiA3MiwgImx1Z2FyZXMiOiAxLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJGcmVlIHN0YW5kaW5nIiwgImZzIjogdHJ1ZX0sIHsic2x1ZyI6ICJmcy1zdXByZW1hIiwgIm5vbWUiOiAiRnJlZSBTdGFuZGluZyBTdXByZW1hIiwgImFtYiI6ICJhbWItZnMtc3VwcmVtYS53ZWJwIiwgImwiOiAxNTAsICJ3IjogNzIsICJsdWdhcmVzIjogMSwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiRnJlZSBzdGFuZGluZyIsICJmcyI6IHRydWV9LCB7InNsdWciOiAidWJhdHViYSIsICJub21lIjogIkJhbmhlaXJhIFViYXR1YmEiLCAiYW1iIjogImFtYi11YmF0dWJhLndlYnAiLCAibCI6IDEzMCwgInciOiA4MCwgImx1Z2FyZXMiOiAxLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCJ9LCB7InNsdWciOiAiYW5ncmEiLCAibm9tZSI6ICJCYW5oZWlyYSBBbmdyYSIsICJhbWIiOiAiYW1iLWFuZ3JhLndlYnAiLCAibCI6IDIwMCwgInciOiAxNTAsICJsdWdhcmVzIjogMiwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogImFydWJhIiwgIm5vbWUiOiAiQmFuaGVpcmEgQXJ1YmEiLCAiYW1iIjogImFtYi1hcnViYS53ZWJwIiwgImwiOiAxODAsICJ3IjogMTUwLCAibHVnYXJlcyI6IDIsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJ2ZW5pY2UiLCAibm9tZSI6ICJCYW5oZWlyYSBWZW5pY2UiLCAiYW1iIjogImFtYi12ZW5pY2Uud2VicCIsICJsIjogMTgwLCAidyI6IDE0MCwgImx1Z2FyZXMiOiAyLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCJ9LCB7InNsdWciOiAibGVibG9uIiwgIm5vbWUiOiAiQmFuaGVpcmEgTGVibG9uIiwgImFtYiI6ICJhbWItbGVibG9uLndlYnAiLCAibCI6IDE4MCwgInciOiAxMzAsICJsdWdhcmVzIjogMiwgImNhdCI6ICJiYW5oZWlyYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogImJpYXJyaXR6IiwgIm5vbWUiOiAiQmFuaGVpcmEgQmlhcnJpdHoiLCAiYW1iIjogImFtYi1iaWFycml0ei53ZWJwIiwgImwiOiAxODAsICJ3IjogMTI1LCAibHVnYXJlcyI6IDIsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJqdXJlcmUtODg4IiwgIm5vbWUiOiAiQmFuaGVpcmEgSnVyZXLDqiBBY3LDrWxpY28iLCAiYW1iIjogImFtYi1qdXJlcmUtODg4LndlYnAiLCAibCI6IDE4MCwgInciOiAxMTUsICJsdWdhcmVzIjogMiwgImNhdCI6ICJhY3JpbGljbyIsICJtYXQiOiAiQWNyw61saWNvIn0sIHsic2x1ZyI6ICJjYXByaSIsICJub21lIjogIkJhbmhlaXJhIENhcHJpIiwgImFtYiI6ICJhbWItY2Fwcmkud2VicCIsICJsIjogMTcwLCAidyI6IDEyMCwgImx1Z2FyZXMiOiAyLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCJ9LCB7InNsdWciOiAibWFsZGl2YXMiLCAibm9tZSI6ICJCYW5oZWlyYSBNYWxkaXZhcyIsICJhbWIiOiAiYW1iMi1tYWxkaXZhcy53ZWJwIiwgImwiOiAxNzAsICJ3IjogMTIwLCAibHVnYXJlcyI6IDIsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJteWtvbm9zIiwgIm5vbWUiOiAiQmFuaGVpcmEgTXlrb25vcyIsICJhbWIiOiAiYW1iMi1teWtvbm9zLndlYnAiLCAibCI6IDE3MCwgInciOiA5MCwgImx1Z2FyZXMiOiAyLCAiY2F0IjogImJhbmhlaXJhIiwgIm1hdCI6ICJHZWwgY29hdCJ9LCB7InNsdWciOiAiZWFzeS1iIiwgIm5vbWUiOiAiQmFuaGVpcmEgRWFzeSBCIiwgImFtYiI6ICJhbWIyLWVhc3ktYi53ZWJwIiwgImwiOiAxNzAsICJ3IjogMTEwLCAibHVnYXJlcyI6IDIsICJjYXQiOiAiYWNyaWxpY28iLCAibWF0IjogIkFjcsOtbGljbyJ9LCB7InNsdWciOiAiaWJpemEiLCAibm9tZSI6ICJCYW5oZWlyYSBJYml6YSIsICJhbWIiOiAiYW1iMi1pYml6YS53ZWJwIiwgImwiOiAxNTAsICJ3IjogMTUwLCAibHVnYXJlcyI6IDIsICJjYXQiOiAiYmFuaGVpcmEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJsYWd1bmEiLCAibm9tZSI6ICJTcGEgTGFndW5hIiwgImFtYiI6ICJhbWItbGFndW5hLndlYnAiLCAibCI6IDE4MCwgInciOiAxNDAsICJsdWdhcmVzIjogMywgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJncmFuLWxhZ3VuYSIsICJub21lIjogIlNwYSBHcmFuIExhZ3VuYSIsICJhbWIiOiAiYW1iMi1ncmFuLWxhZ3VuYS53ZWJwIiwgImwiOiAyMDAsICJ3IjogMjAwLCAibHVnYXJlcyI6IDQsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJBY3LDrWxpY28ifSwgeyJzbHVnIjogIm1hcmFnb2dpIiwgIm5vbWUiOiAiU3BhIE1hcmFnb2dpIiwgImFtYiI6ICJhbWItbWFyYWdvZ2kud2VicCIsICJsIjogMTg2LCAidyI6IDE4NiwgImx1Z2FyZXMiOiA0LCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogImF0bGFudGljbyIsICJub21lIjogIlNwYSBBdGzDom50aWNvIiwgImFtYiI6ICJhbWItYXRsYW50aWNvLndlYnAiLCAibCI6IDE4NSwgInciOiAxODUsICJsdWdhcmVzIjogNCwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJvY2Vhbm9zIiwgIm5vbWUiOiAiU3BhIE9jZWFub3MiLCAiYW1iIjogImFtYi1vY2Vhbm9zLndlYnAiLCAibCI6IDE4MCwgInciOiAxODAsICJsdWdhcmVzIjogNCwgImNhdCI6ICJzcGEiLCAibWF0IjogIkFjcsOtbGljbyJ9LCB7InNsdWciOiAiZmxvcmlwYSIsICJub21lIjogIlNwYSBGbG9yaXBhIiwgImFtYiI6ICJhbWIyLWZsb3JpcGEud2VicCIsICJsIjogMTY1LCAidyI6IDE2NSwgImx1Z2FyZXMiOiA0LCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogIm5hdmFnaW8iLCAibm9tZSI6ICJTcGEgTmF2YWdpbyIsICJhbWIiOiAiYW1iLW5hdmFnaW8ud2VicCIsICJsIjogMjAwLCAidyI6IDIwMCwgImx1Z2FyZXMiOiA1LCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogImFjYXB1bGNvIiwgIm5vbWUiOiAiU3BhIEFjYXB1bGNvIiwgImFtYiI6ICJhbWItYWNhcHVsY28ud2VicCIsICJsIjogMjIwLCAidyI6IDIyMCwgImx1Z2FyZXMiOiA2LCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQifSwgeyJzbHVnIjogIm1lZGl0ZXJyYW5lbyIsICJub21lIjogIlNwYSBNZWRpdGVycsOibmVvIiwgImFtYiI6ICJhbWItbWVkaXRlcnJhbmVvLndlYnAiLCAibCI6IDIyMCwgInciOiAyMjAsICJsdWdhcmVzIjogNiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJjYXJpYmUiLCAibm9tZSI6ICJTcGEgUGlzY2luYSBDYXJpYmUiLCAiYW1iIjogImFtYi1jYXJpYmUud2VicCIsICJsIjogNDAzLCAidyI6IDIwNywgImx1Z2FyZXMiOiAxMCwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0In0sIHsic2x1ZyI6ICJncmFuZC1mbG9yaXBhIiwgIm5vbWUiOiAiU3BhIEdyYW5kIEZsb3JpcGEiLCAiYW1iIjogImFtYi1ncmFuZC1mbG9yaXBhLndlYnAiLCAibCI6IDI0MCwgInciOiAyNDAsICJsdWdhcmVzIjogMTIsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJHZWwgY29hdCJ9XTsKICAgIHZhciBMSU5LUz17c3VpdGU6Ii93ZWIvYmFuaGVpcmFzIixleHRlcm5hOiIvd2ViL3NwYXMtMiIsY29ycDoiL3dlYi9zcGFzLTIifTsKICAgIHZhciBUT0RPUz17c3VpdGU6IlZlciB0b2RhcyBhcyBiYW5oZWlyYXMiLGV4dGVybmE6IlZlciB0b2RvcyBvcyBzcGFzIixjb3JwOiJWZXIgdG9kb3Mgb3Mgc3BhcyJ9OwogICAgdmFyIFRJUE89e3N1aXRlOlsibW9kZWxvIGRlIGJhbmhlaXJhIiwibW9kZWxvcyBkZSBiYW5oZWlyYSJdLGV4dGVybmE6WyJzcGEiLCJzcGFzIl0sY29ycDpbIm1vZGVsbyBwYXJhIHVzbyBpbnRlbnNvIiwibW9kZWxvcyBwYXJhIHVzbyBpbnRlbnNvIl19OwogICAgdmFyIFBFU1M9eyIxIjoiMSBwZXNzb2EiLCIyIjoiMiBwZXNzb2FzIiwiMy02IjoiMyBhIDYgcGVzc29hcyIsIjcrIjoiNyBvdSBtYWlzIHBlc3NvYXMifTsKICAgIHZhciBlc3RhZG89e29uZGU6InN1aXRlIixwZXNzOiIyIn07CiAgICB2YXIgZ3JhZGU9Ym94LnF1ZXJ5U2VsZWN0b3IoIi5mcC1xLWdyYWRlIiksIHRpdD1ib3gucXVlcnlTZWxlY3RvcigiW2RhdGEtcS10aXRdIiksIHN1Yj1ib3gucXVlcnlTZWxlY3RvcigiW2RhdGEtcS1zdWJdIiksIHRvZG9zPWJveC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1xLXRvZG9zXSIpLCBub3RhPWJveC5xdWVyeVNlbGVjdG9yKCIuZnAtcS1ub3RhIik7CiAgICBmdW5jdGlvbiBub0xvY2FsKGl0KXsKICAgICAgaWYoZXN0YWRvLm9uZGU9PT0ic3VpdGUiKSByZXR1cm4gaXQuY2F0IT09InNwYSI7CiAgICAgIGlmKGVzdGFkby5vbmRlPT09ImV4dGVybmEiKSByZXR1cm4gaXQuY2F0PT09InNwYSI7CiAgICAgIHJldHVybiAhaXQuZnMgPyAoaXQubWF0PT09IkFjcsOtbGljbyIgfHwgKGl0LmNhdD09PSJzcGEiID8gaXQubHVnYXJlcz49NiA6IGZhbHNlKSkgOiBmYWxzZTsKICAgIH0KICAgIGZ1bmN0aW9uIG5hc1Blc3NvYXMoaXQpewogICAgICB2YXIgcT1pdC5sdWdhcmVzLCBwPWVzdGFkby5wZXNzOwogICAgICBpZihwPT09IjEiKSByZXR1cm4gcT09PTE7IGlmKHA9PT0iMiIpIHJldHVybiBxPT09MjsKICAgICAgaWYocD09PSIzLTYiKSByZXR1cm4gcT49MyA\/IHE8PTYgOiBmYWxzZTsgcmV0dXJuIHE+PTc7CiAgICB9CiAgICBmdW5jdGlvbiBjYXJkKGl0LGspewogICAgICB2YXIgbWVkPWl0LmwrIiDDlyAiK2l0LncrIiBjbSIsIGx1Zz1pdC5sdWdhcmVzKyhpdC5sdWdhcmVzPT09MT8iIGx1Z2FyIjoiIGx1Z2FyZXMiKTsKICAgICAgdmFyIGNvcnBvPSc8c3BhbiBjbGFzcz0iZnAtZnItaW1nIj48aW1nIHNyYz0iJytVKGl0LmFtYikrJyIgYWx0PSIiIGRlY29kaW5nPSJhc3luYyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJmcC1mci10Ij48Yj4nK2l0Lm5vbWUrJzwvYj48c21hbGw+JyttZWQrIiwgIitsdWcrJzwvc21hbGw+PGVtPicrKGl0LmZzPyJWZXIgbW9kZWxvIjoiVmVyIG1lZGlkYXMgZSBvcsOnYW1lbnRvIikrJyAmcmFycjs8L2VtPjwvc3Bhbj4nOwogICAgICBpZihpdC5mcykgcmV0dXJuICc8YSBjbGFzcz0iZnAtZnItY2FyZCIgc3R5bGU9Ii0tazonK2srJyIgaHJlZj0iL3dlYi9mcmVlLXN0YW5kaW5nIj4nK2NvcnBvKyc8L2E+JzsKICAgICAgcmV0dXJuICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZwLWZyLWNhcmQiIHN0eWxlPSItLWs6JytrKyciIGRhdGEtbW9kZWxvPSInK2l0LnNsdWcrJyIgYXJpYS1sYWJlbD0iVmVyIGZpY2hhOiAnK2l0Lm5vbWUrJyI+Jytjb3JwbysnPC9idXR0b24+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHJlbmRlcigpewogICAgICB2YXIgbG9jYWw9SVRFTlMuZmlsdGVyKG5vTG9jYWwpLCBleGF0b3M9bG9jYWwuZmlsdGVyKG5hc1Blc3NvYXMpLCBsaXN0YT1leGF0b3MubGVuZ3RoP2V4YXRvczpsb2NhbCwgbW9zdHJhPWxpc3RhLnNsaWNlKDAsOCk7CiAgICAgIGdyYWRlLmNsYXNzTGlzdC5yZW1vdmUoImFuaW0iKTsgdm9pZCBncmFkZS5vZmZzZXRXaWR0aDsKICAgICAgZ3JhZGUuaW5uZXJIVE1MPW1vc3RyYS5tYXAoY2FyZCkuam9pbigiIik7CiAgICAgIGdyYWRlLmNsYXNzTGlzdC5hZGQoImFuaW0iKTsKICAgICAgdmFyIHQ9VElQT1tlc3RhZG8ub25kZV07CiAgICAgIGlmKGV4YXRvcy5sZW5ndGgpewogICAgICAgIHRpdC50ZXh0Q29udGVudD1leGF0b3MubGVuZ3RoKyIgIisoZXhhdG9zLmxlbmd0aD09PTE\/dFswXTp0WzFdKSsiIHBhcmEgIitQRVNTW2VzdGFkby5wZXNzXTsKICAgICAgICBzdWIudGV4dENvbnRlbnQ9IlRvcXVlIGVtIHVtIG1vZGVsbyBwYXJhIHZlciBtZWRpZGFzLCBlcXVpcGFtZW50b3MgZSBwZWRpciBvcsOnYW1lbnRvLiI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGl0LnRleHRDb250ZW50PSJOZW5odW0gbW9kZWxvIGRlIGxpbmhhIHBhcmEgIitQRVNTW2VzdGFkby5wZXNzXTsKICAgICAgICBzdWIudGV4dENvbnRlbnQ9IkVzdGVzIHPDo28gb3MgbWFpcyBwcsOzeGltb3MuIEEgZsOhYnJpY2EgdGFtYsOpbSBmYXogcHJvamV0byBzb2IgbWVkaWRhLiI7CiAgICAgIH0KICAgICAgdG9kb3MuaHJlZj1MSU5LU1tlc3RhZG8ub25kZV07IHRvZG9zLmZpcnN0Q2hpbGQubm9kZVZhbHVlPVRPRE9TW2VzdGFkby5vbmRlXSsiICI7CiAgICAgIG5vdGEuaGlkZGVuPSEhZXhhdG9zLmxlbmd0aDsKICAgIH0KICAgIGJveC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1xXSIpLmZvckVhY2goZnVuY3Rpb24oYnQpewogICAgICBidC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsKICAgICAgICB2YXIgZz1idC5kYXRhc2V0LnE7IGVzdGFkb1tnXT1idC5kYXRhc2V0LnY7CiAgICAgICAgYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXE9IicrZysnIl0nKS5mb3JFYWNoKGZ1bmN0aW9uKG8peyBvLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixvPT09YnQ\/InRydWUiOiJmYWxzZSIpOyB9KTsKICAgICAgICByZW5kZXIoKTsKICAgICAgfSk7CiAgICB9KTsKICAgIHJlbmRlcigpOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gZm9ybXVsw6FyaW8gcGFyYSBXaGF0c0FwcCAtLS0tLS0tLS0tICovCiAgdmFyIGZvcm09JCgiLmZwLWZvcm0iKTsKICBpZihmb3JtKXsKICAgIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixmdW5jdGlvbihlKXsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB2YXIgbm9tZT1mb3JtLm5vbWUudmFsdWUudHJpbSgpLCBlcnI9JCgiI2ZwLW5vbWUtZXJybyIpOwogICAgICBpZighbm9tZSl7IGZvcm0ubm9tZS5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsInRydWUiKTsgaWYoZXJyKSBlcnIudGV4dENvbnRlbnQ9IkVzY3JldmEgc2V1IG5vbWUgcGFyYSBhIGbDoWJyaWNhIHNhYmVyIGNvbSBxdWVtIGVzdMOhIGZhbGFuZG8uIjsgZm9ybS5ub21lLmZvY3VzKCk7IHJldHVybjsgfQogICAgICBmb3JtLm5vbWUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWludmFsaWQiKTsgaWYoZXJyKSBlcnIudGV4dENvbnRlbnQ9IiI7CiAgICAgIHZhciBsaW5oYXM9WyJPbMOhISBNZXUgbm9tZSDDqSAiK25vbWUrIi4iXTsKICAgICAgaWYoZm9ybS5jaWRhZGUmJmZvcm0uY2lkYWRlLnZhbHVlLnRyaW0oKSkgbGluaGFzLnB1c2goIkNpZGFkZTogIitmb3JtLmNpZGFkZS52YWx1ZS50cmltKCkpOwogICAgICB2YXIgdGlwbz1mb3JtLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJ0aXBvIl06Y2hlY2tlZCcpOyBpZih0aXBvKSBsaW5oYXMucHVzaCgiUHJvY3VybzogIit0aXBvLnZhbHVlKTsKICAgICAgaWYoZm9ybS5tb2RlbG8mJmZvcm0ubW9kZWxvLnZhbHVlKSBsaW5oYXMucHVzaCgiTW9kZWxvIGRlIGludGVyZXNzZTogIitmb3JtLm1vZGVsby52YWx1ZSk7CiAgICAgIGlmKGZvcm0ubWVuc2FnZW0mJmZvcm0ubWVuc2FnZW0udmFsdWUudHJpbSgpKSBsaW5oYXMucHVzaChmb3JtLm1lbnNhZ2VtLnZhbHVlLnRyaW0oKSk7CiAgICAgIGxpbmhhcy5wdXNoKCJQb2RlIG1lIHBhc3NhciB1bSBvcsOnYW1lbnRvPyIpOwogICAgICB3aW5kb3cub3Blbih3YUxpbmsobGluaGFzLmpvaW4oIlxuIikpLCJfYmxhbmsiLCJub29wZW5lciIpOwogICAgfSk7CiAgICBmb3JtLm5vbWUuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7IGlmKGZvcm0ubm9tZS52YWx1ZS50cmltKCkpeyBmb3JtLm5vbWUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWludmFsaWQiKTsgdmFyIGUyPSQoIiNmcC1ub21lLWVycm8iKTsgaWYoZTIpIGUyLnRleHRDb250ZW50PSIiOyB9IH0pOwogIH0KfSkoKTsK\";var s=atob(b),u=new Uint8Array(s.length);for(var i=0;i<s.length;i++){u[i]=s.charCodeAt(i);}new Function(new TextDecoder(\"utf-8\").decode(u))();})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Pular abertura Spas Banheiras Free Standing Acess\u00f3rios Sobre Contato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 Showroom Galeria Thea<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Pular abertura SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 ShowroomGaleria TheaF\u00e1brica ShowroomGaleria TheaF\u00e1brica 1985F\u00e1brica pr\u00f3pria desde ent\u00e3o 3.000 m\u00b2de produ\u00e7\u00e3o em Palho\u00e7a 30modelos de linha, al\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\u00e1brica Spas, banheiras, free standing e acess\u00f3rios saem da\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/faiberplas.com.br\/web\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Faiberplas - Conecte-se com o que realmente importa\" \/>\n\t\t<meta property=\"og:type\" content=\"website\" \/>\n\t\t<meta property=\"og:title\" content=\"Home - Faiberplas\" \/>\n\t\t<meta property=\"og:description\" content=\"Pular abertura SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 ShowroomGaleria TheaF\u00e1brica ShowroomGaleria TheaF\u00e1brica 1985F\u00e1brica pr\u00f3pria desde ent\u00e3o 3.000 m\u00b2de produ\u00e7\u00e3o em Palho\u00e7a 30modelos de linha, al\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\u00e1brica Spas, banheiras, free standing e acess\u00f3rios saem da\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/faiberplas.com.br\/web\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"80\" \/>\n\t\t<meta property=\"og:image:height\" content=\"82\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Home - Faiberplas\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Pular abertura SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 ShowroomGaleria TheaF\u00e1brica ShowroomGaleria TheaF\u00e1brica 1985F\u00e1brica pr\u00f3pria desde ent\u00e3o 3.000 m\u00b2de produ\u00e7\u00e3o em Palho\u00e7a 30modelos de linha, al\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\u00e1brica Spas, banheiras, free standing e acess\u00f3rios saem da\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/faiberplas.com.br\\\/web\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#listItem\",\"position\":2,\"name\":\"Home\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#organization\",\"name\":\"Faiberplas\",\"description\":\"Conecte-se com o que realmente importa\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/\",\"telephone\":\"+5548991174548\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/LOGO-FOOTER.png\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#organizationLogo\",\"width\":446,\"height\":308},\"image\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/faiberplas\\\/?locale=pt_BR\",\"https:\\\/\\\/www.instagram.com\\\/faiberplas\\\/\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#webpage\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/\",\"name\":\"Home - Faiberplas\",\"description\":\"Pular abertura SpasBanheirasFree StandingAcess\\u00f3riosSobreContato Pedir or\\u00e7amento Faiberplas, f\\u00e1brica de banheiras de hidromassagem e spas em Palho\\u00e7a desde 1985 ShowroomGaleria TheaF\\u00e1brica ShowroomGaleria TheaF\\u00e1brica 1985F\\u00e1brica pr\\u00f3pria desde ent\\u00e3o 3.000 m\\u00b2de produ\\u00e7\\u00e3o em Palho\\u00e7a 30modelos de linha, al\\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\\u00e1brica Spas, banheiras, free standing e acess\\u00f3rios saem da\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#breadcrumblist\"},\"datePublished\":\"2019-08-05T09:05:22-03:00\",\"dateModified\":\"2026-10-27T14:55:19-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#website\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/\",\"name\":\"Faiberplas\",\"description\":\"Conecte-se com o que realmente importa\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Home - Faiberplas","description":"Pular abertura SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 ShowroomGaleria TheaF\u00e1brica ShowroomGaleria TheaF\u00e1brica 1985F\u00e1brica pr\u00f3pria desde ent\u00e3o 3.000 m\u00b2de produ\u00e7\u00e3o em Palho\u00e7a 30modelos de linha, al\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\u00e1brica Spas, banheiras, free standing e acess\u00f3rios saem da","canonical_url":"https:\/\/faiberplas.com.br\/web","robots":"","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/faiberplas.com.br\/web\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web#listItem","position":1,"name":"Home","item":"https:\/\/faiberplas.com.br\/web","nextItem":{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web\/#listItem","position":2,"name":"Home","previousItem":{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/faiberplas.com.br\/web\/#organization","name":"Faiberplas","description":"Conecte-se com o que realmente importa","url":"https:\/\/faiberplas.com.br\/web\/","telephone":"+5548991174548","logo":{"@type":"ImageObject","url":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2023\/12\/LOGO-FOOTER.png","@id":"https:\/\/faiberplas.com.br\/web\/#organizationLogo","width":446,"height":308},"image":{"@id":"https:\/\/faiberplas.com.br\/web\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/faiberplas\/?locale=pt_BR","https:\/\/www.instagram.com\/faiberplas\/"]},{"@type":"WebPage","@id":"https:\/\/faiberplas.com.br\/web\/#webpage","url":"https:\/\/faiberplas.com.br\/web\/","name":"Home - Faiberplas","description":"Pular abertura SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 ShowroomGaleria TheaF\u00e1brica ShowroomGaleria TheaF\u00e1brica 1985F\u00e1brica pr\u00f3pria desde ent\u00e3o 3.000 m\u00b2de produ\u00e7\u00e3o em Palho\u00e7a 30modelos de linha, al\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\u00e1brica Spas, banheiras, free standing e acess\u00f3rios saem da","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/faiberplas.com.br\/web\/#website"},"breadcrumb":{"@id":"https:\/\/faiberplas.com.br\/web\/#breadcrumblist"},"datePublished":"2019-08-05T09:05:22-03:00","dateModified":"2026-10-27T14:55:19-03:00"},{"@type":"WebSite","@id":"https:\/\/faiberplas.com.br\/web\/#website","url":"https:\/\/faiberplas.com.br\/web\/","name":"Faiberplas","description":"Conecte-se com o que realmente importa","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/faiberplas.com.br\/web\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"Faiberplas - Conecte-se com o que realmente importa","og:type":"website","og:title":"Home - Faiberplas","og:description":"Pular abertura SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 ShowroomGaleria TheaF\u00e1brica ShowroomGaleria TheaF\u00e1brica 1985F\u00e1brica pr\u00f3pria desde ent\u00e3o 3.000 m\u00b2de produ\u00e7\u00e3o em Palho\u00e7a 30modelos de linha, al\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\u00e1brica Spas, banheiras, free standing e acess\u00f3rios saem da","og:url":"https:\/\/faiberplas.com.br\/web","og:image":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png","og:image:secure_url":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png","og:image:width":80,"og:image:height":82,"twitter:card":"summary_large_image","twitter:title":"Home - Faiberplas","twitter:description":"Pular abertura SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Faiberplas, f\u00e1brica de banheiras de hidromassagem e spas em Palho\u00e7a desde 1985 ShowroomGaleria TheaF\u00e1brica ShowroomGaleria TheaF\u00e1brica 1985F\u00e1brica pr\u00f3pria desde ent\u00e3o 3.000 m\u00b2de produ\u00e7\u00e3o em Palho\u00e7a 30modelos de linha, al\u00e9m do sob medida INMETROProduto certificado Toda a linha, feita na mesma f\u00e1brica Spas, banheiras, free standing e acess\u00f3rios saem da","twitter:image":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png"},"aioseo_meta_data":[],"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/faiberplas.com.br\/web\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHome\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/faiberplas.com.br\/web"},{"label":"Home","link":"https:\/\/faiberplas.com.br\/web\/"}],"_links":{"self":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages\/8"}],"collection":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":5,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":942,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages\/8\/revisions\/942"}],"wp:attachment":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}