<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-piso-teto-inverter-elgin-56000-btus-frio-220v-monofasico-p99</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-piso-teto-inverter-elgin-48000-btus-frio-220v-p101</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-piso-teto-inverter-plus-elgin-36000-btus-frio-220v-monofasico-p103</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hw-inverter-philco-12000-btus-frio-220v-p113</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-eco-inverter-wi-fi-30000-btus-quente-frio-220v-p115</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hw-inverter-philco-30000-btus-frio-220v-p116</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hw-inverter-philco-30000-btus-quente-frio-220v-p117</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hw-inverter-philco-18000-btus-frio-220v-p123</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-inverter-wi-fi-36000-btus-quente-frio-220v-p135</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-inverter-elgin-frio-p138</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-de-janela-springer-midea-mecanico-18000-btus-p139</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hi-wall-eos-master-inverter-12000-btus-p142</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hi-wall-philco-eco-inverter-9000-btus-p146</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-inverter-electrolux-color-adapt-9000-btus-p147</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-inverter-philco-18000-btus-quente-e-frio-220v-pac18qc-p156</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-hi-wall-tcl-t-pro-20-inverter-18000-btus-frio-r-32-branco-220v-p157</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-piso-teto-inverter-elgin-36000-btus-frio-220v-p158</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-inverter-wi-fi-36000-btus-frio-220v-p161</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-eco-inverter-wi-fi-30000-btus-frio-220v-p167</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-piso-teto-inverter-elgin-30000-btus-quente-frio-220v-monofasico-p169</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hw-inverter-philco-18000-btus-quente-frio-220v-p171</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-inverter-wi-fi-9000-btus-quente-frio-220v-p172</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-piso-teto-inverter-elgin-30000-btus-frio-220v-monofasico-p173</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-inverter-split-hi-wall-elgin-inverter-ii-wi-fi-12000-btus-frio-220v-p174</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-inverter-split-hi-wall-elgin-eco-wi-fi-18000-btus-r-32-so-frio-220v-p175</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-eco-inverter-wi-fi-de-9000-btus-frio-220v-p177</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-inverter-wi-fi-18000-btus-quente-frio-220v-p179</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-inverter-split-hi-wall-elgin-wi-fi-9000-btus-frio-220v-p180</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-inverter-wi-fi-18000-btus-frio-220v-p182</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-hw-inverter-philco-9000-btus-frio-220v-p183</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-inverter-wi-fi-24000-btus-quente-frio-220v-p186</loc>
  </url>
  <url>
    <loc>https://sitedoar.com.br/ar-condicionado-split-elgin-inverter-wi-fi-24000-btus-r-32-so-frio-220v-p187</loc>
  </url>
</urlset><script>
(function() {
  var cacheKey = 'wdna_csrf_token';
  var csrfReady = null;

  function getCurrentToken() {
    if (window.WDNA_CSRF_TOKEN) {
      return window.WDNA_CSRF_TOKEN;
    }

    var meta = document.querySelector('meta[name="csrf-token"]');
    if (meta && meta.getAttribute('content')) {
      return meta.getAttribute('content');
    }

    var input = document.querySelector('input[name="_csrf"]');
    if (input && input.value) {
      return input.value;
    }

    return '';
  }

  function applyCsrfToken(token) {
    if (!token) return;

    window.WDNA_CSRF_TOKEN = token;

    var meta = document.querySelector('meta[name="csrf-token"]');
    if (meta) {
      meta.setAttribute('content', token);
    }

    var inputs = document.querySelectorAll('input[name="_csrf"]');
    for (var i = 0; i < inputs.length; i++) {
      inputs[i].setAttribute('value', token);
      inputs[i].value = token;
    }
  }

function patchBodyWithCsrf(body, token) {
  if (!token || !body) return body;

  try {
    if (window.FormData && body instanceof FormData) {
      if (!body.has('_csrf')) {
        body.append('_csrf', token);
      }
      return body;
    }

    if (window.URLSearchParams && body instanceof URLSearchParams) {
      if (!body.has('_csrf')) {
        body.append('_csrf', token);
      }
      return body;
    }

    if (typeof body === 'string') {
      var trimmed = body.trim();

      // Não mexe em JSON. Algumas rotas quebram se adicionarmos campo extra.
      if (trimmed.charAt(0) === '{' || trimmed.charAt(0) === '[') {
        return body;
      }

      if (body.indexOf('_csrf=') === -1) {
        if (body.length > 0) {
          return body + '&_csrf=' + encodeURIComponent(token);
        }

        return '_csrf=' + encodeURIComponent(token);
      }
    }
  } catch (e) {}

  return body;
}

  function loadFreshCsrf() {
    if (csrfReady) return csrfReady;

    var cached = null;

    try {
      cached = JSON.parse(sessionStorage.getItem(cacheKey) || 'null');
    } catch (e) {}

    if (cached && cached.token && cached.expires > Date.now()) {
      applyCsrfToken(cached.token);
      csrfReady = Promise.resolve(cached.token);
      return csrfReady;
    }

    csrfReady = fetch('/__csrf_refresh', {
      method: 'GET',
      credentials: 'same-origin',
      cache: 'no-store'
    })
      .then(function(response) {
        return response.json();
      })
      .then(function(data) {
        if (data && data.csrfToken) {
          applyCsrfToken(data.csrfToken);

          try {
            sessionStorage.setItem(cacheKey, JSON.stringify({
              token: data.csrfToken,
              expires: Date.now() + 60000
            }));
          } catch (e) {}

          return data.csrfToken;
        }

        return '';
      })
      .catch(function() {
        return '';
      });

    return csrfReady;
  }

  function isUnsafeMethod(method) {
    return !/^(GET|HEAD|OPTIONS)$/i.test(method || 'GET');
  }

  if (window.fetch && !window.__WDNA_CSRF_FETCH_PATCHED__) {
    window.__WDNA_CSRF_FETCH_PATCHED__ = true;

    var originalFetch = window.fetch;

    window.fetch = function(input, init) {
      init = init || {};

      var method = (init.method || 'GET').toUpperCase();

      try {
        if (input && typeof input === 'object' && input.method && !init.method) {
          method = input.method.toUpperCase();
        }
      } catch (e) {}

      if (!isUnsafeMethod(method)) {
        return originalFetch.call(this, input, init);
      }

      return loadFreshCsrf().then(function(token) {
        token = token || getCurrentToken();

        if (token) {
          init.headers = new Headers(init.headers || {});

          if (!init.headers.has('x-csrf-token')) init.headers.set('x-csrf-token', token);
          if (!init.headers.has('x-xsrf-token')) init.headers.set('x-xsrf-token', token);
          if (!init.headers.has('csrf-token')) init.headers.set('csrf-token', token);
          if (!init.headers.has('x-csrf')) init.headers.set('x-csrf', token);

          if (init.body) {
            init.body = patchBodyWithCsrf(init.body, token);
          }
        }

        return originalFetch.call(this, input, init);
      });
    };
  }

  if (window.XMLHttpRequest && !window.__WDNA_CSRF_XHR_PATCHED__) {
    window.__WDNA_CSRF_XHR_PATCHED__ = true;

    var originalOpen = XMLHttpRequest.prototype.open;
    var originalSend = XMLHttpRequest.prototype.send;

    XMLHttpRequest.prototype.open = function(method, url) {
      this.__wdna_method = method || 'GET';
      return originalOpen.apply(this, arguments);
    };

    XMLHttpRequest.prototype.send = function(body) {
      var xhr = this;
      var method = (xhr.__wdna_method || 'GET').toUpperCase();

      if (!isUnsafeMethod(method)) {
        return originalSend.apply(xhr, arguments);
      }

      var args = arguments;

      loadFreshCsrf().then(function(token) {
        token = token || getCurrentToken();

        if (token) {
          try {
            xhr.setRequestHeader('x-csrf-token', token);
            xhr.setRequestHeader('x-xsrf-token', token);
            xhr.setRequestHeader('csrf-token', token);
            xhr.setRequestHeader('x-csrf', token);
          } catch (e) {}

          if (args && args.length > 0 && args[0]) {
            args[0] = patchBodyWithCsrf(args[0], token);
          }
        }

        return originalSend.apply(xhr, args);
      });
    };
  }

  loadFreshCsrf();
})();
</script>
