<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Security verification</title>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<script>
var tsWidgetSolved = false;
var tsWidgetCheckTimer = null;
var tsSubmittingVerifiedForm = false;
var tsManualRedirectTimer = null;
var tsReturnUrl = "http:\/\/nina-dobrev.us\/feed\/";
var tsNextUrl = '';
var tsWidgetGraceMs = 9000;
var tsManualRedirectGraceMs = 2500;
function getResponseField(){
  return document.getElementById('ts-turnstile-token');
}
function setStatus(message){
  var status = document.getElementById('widget-status');
  if (!status) return;
  status.textContent = message;
  status.hidden = false;
}
function getSubmitButton(){
  return document.getElementById('ts-submit-button');
}
function setSubmitEnabled(enabled){
  var button = getSubmitButton();
  if (!button) return;
  button.disabled = !enabled;
}
function setSubmitLabel(label){
  var button = getSubmitButton();
  if (!button) return;
  button.textContent = label;
}
function getManualRedirectButton(){
  return document.getElementById('ts-manual-redirect-button');
}
function showManualRedirectButton(show){
  var button = getManualRedirectButton();
  if (!button) return;
  var url = tsNextUrl || tsReturnUrl || '';
  button.hidden = !(show && tsWidgetSolved && url);
}
function getBestRedirectUrl(){
  return tsNextUrl || tsReturnUrl || '';
}
function updateManualRedirectHref(){
  var button = getManualRedirectButton();
  if (!button) return;
  var url = getBestRedirectUrl();
  if (url) {
    button.setAttribute('href', url);
  } else {
    button.removeAttribute('href');
  }
}
function clearStatus(){
  var status = document.getElementById('widget-status');
  if (!status) return;
  status.hidden = true;
}
function setResponseToken(token){
  var field = getResponseField();
  if (!field) return;
  field.value = String(token || '');
}
function getErrorMessage(errorCode){
  var code = String(errorCode || '');
  if (code === '110200') {
    return 'This Turnstile widget is not authorized for this domain. The server administrator needs to add ' + "verify.ablankspace.top" + ' in Cloudflare Turnstile Hostname Management.';
  }
  if (code === '110100' || code === '110110' || code === '400020' || code === '400070') {
    return 'The security check is misconfigured on the server. Please contact the server administrator. Error: ' + code;
  }
  if (code === '200500') {
    return 'The verification box could not load. Refresh once and check whether Private Relay, content blockers, or the network are blocking challenges.cloudflare.com. Error: ' + code;
  }
  if (code === '110600' || code === '110620') {
    return 'The security check expired or timed out. Refresh the page and try again. Error: ' + code;
  }
  if (/^(300|600)/.test(code)) {
    return 'The security check failed. Refresh the page or try a different browser or network. Error: ' + code;
  }
  if (/^110/.test(code)) {
    return 'The security check is misconfigured for this site. Please contact the server administrator. Error: ' + code;
  }
  return 'The security check could not continue automatically. Refresh the page and try again. Error: ' + code;
}
function clearManualRedirectTimer(){
  if (tsManualRedirectTimer) {
    window.clearTimeout(tsManualRedirectTimer);
    tsManualRedirectTimer = null;
  }
}
function submitVerifiedForm(){
  var responseField = getResponseField();
  var flowField = document.querySelector('input[name="ts_flow"]');
  if (!responseField || !responseField.value || !flowField || !flowField.value) {
    tsSubmittingVerifiedForm = false;
    setSubmitLabel('Verify and continue');
    showManualRedirectButton(false);
    setStatus('Complete the security check before continuing.');
    return;
  }
  var xhr = new XMLHttpRequest();
  xhr.open('POST', window.location.href, true);
  xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  xhr.setRequestHeader('Accept', 'application/json');
  xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
  xhr.onreadystatechange = function () {
    if (xhr.readyState !== 4) return;
    if (xhr.status >= 200 && xhr.status < 300) {
      var data = null;
      try {
        data = JSON.parse(xhr.responseText);
      } catch (e) {
        data = null;
      }
      if (data && data.ok && data.next_url) {
        tsNextUrl = String(data.next_url);
        updateManualRedirectHref();
        window.setTimeout(function () {
          window.location.assign(tsNextUrl);
        }, 60);
        return;
      }
      tsSubmittingVerifiedForm = false;
      setSubmitLabel('Verify and continue');
      showManualRedirectButton(false);
      setStatus(data && data.error ? String(data.error) : 'The security check completed, but the redirect URL was missing. Use the button below if needed.');
      updateManualRedirectHref();
      if (getBestRedirectUrl()) showManualRedirectButton(true);
      return;
    }
    tsSubmittingVerifiedForm = false;
    setSubmitLabel('Verify and continue');
    updateManualRedirectHref();
    showManualRedirectButton(true);
    setStatus('The security check completed, but the browser did not continue automatically. Use the button below.');
  };
  xhr.send('ts_flow=' + encodeURIComponent(String(flowField.value)) + '&ts_turnstile_token=' + encodeURIComponent(String(responseField.value)));
}
function forceVerifiedRedirect(){
  if (!tsWidgetSolved) {
    setStatus('Complete the security check before continuing.');
    return;
  }
  clearManualRedirectTimer();
  showManualRedirectButton(false);
  setSubmitLabel('Verify and continue');
  setSubmitEnabled(false);
  updateManualRedirectHref();
  if (getBestRedirectUrl()) {
    setStatus('Opening the website...');
    window.location.assign(getBestRedirectUrl());
    return;
  }
  setStatus('Verification completed. Open the original website again if the redirect does not continue automatically.');
}
function onSuccess(token){
  tsWidgetSolved = true;
  tsSubmittingVerifiedForm = true;
  clearManualRedirectTimer();
  if (tsWidgetCheckTimer) {
    window.clearTimeout(tsWidgetCheckTimer);
    tsWidgetCheckTimer = null;
  }
  setResponseToken(token);
  clearStatus();
  setSubmitLabel('Redirecting...');
  setSubmitEnabled(false);
  showManualRedirectButton(false);
  setStatus('Verification completed. Redirecting automatically...');
  tsManualRedirectTimer = window.setTimeout(function () {
    if (!tsSubmittingVerifiedForm) return;
    showManualRedirectButton(true);
    setStatus('Verification completed. If you are not redirected automatically, use the button below.');
  }, tsManualRedirectGraceMs);
  window.setTimeout(function () {
    submitVerifiedForm();
  }, 80);
}
function onError(errorCode){
  tsSubmittingVerifiedForm = false;
  clearManualRedirectTimer();
  setResponseToken('');
  setSubmitLabel('Verify and continue');
  showManualRedirectButton(false);
  setSubmitEnabled(false);
  setStatus(getErrorMessage(errorCode));
}
function onExpired(){
  tsSubmittingVerifiedForm = false;
  clearManualRedirectTimer();
  setResponseToken('');
  setSubmitLabel('Verify and continue');
  showManualRedirectButton(false);
  setSubmitEnabled(false);
  setStatus('The security check expired. It should refresh automatically. If it does not, reload the page.');
}
function onTimeout(){
  tsSubmittingVerifiedForm = false;
  clearManualRedirectTimer();
  setResponseToken('');
  setSubmitLabel('Verify and continue');
  showManualRedirectButton(false);
  setSubmitEnabled(false);
  setStatus('The security check timed out. Please try again.');
}
function onUnsupported(){
  tsSubmittingVerifiedForm = false;
  clearManualRedirectTimer();
  setResponseToken('');
  setSubmitLabel('Verify and continue');
  showManualRedirectButton(false);
  setSubmitEnabled(false);
  setStatus('This browser is not fully supported by Turnstile. Update Safari, Chrome, Firefox, or Edge and try again.');
}
window.addEventListener('DOMContentLoaded', function () {
  setSubmitEnabled(false);
  setSubmitLabel('Verify and continue');
  setResponseToken('');
  updateManualRedirectHref();
  showManualRedirectButton(false);
  var form = document.getElementById('challenge-form');
  var manualRedirectButton = getManualRedirectButton();
  if (manualRedirectButton) {
    manualRedirectButton.addEventListener('click', function () {
      forceVerifiedRedirect();
    });
  }
  if (form) {
    form.addEventListener('submit', function (event) {
      var responseField = getResponseField();
      if (!responseField || !responseField.value) {
        event.preventDefault();
        tsSubmittingVerifiedForm = false;
        clearManualRedirectTimer();
        setSubmitEnabled(false);
        setSubmitLabel('Verify and continue');
        showManualRedirectButton(false);
        setStatus('Complete the security check before continuing.');
        return;
      }
      event.preventDefault();
      if (tsSubmittingVerifiedForm) setStatus('Verification completed. Redirecting...');
    });
  }
  tsWidgetCheckTimer = window.setTimeout(function () {
    if (tsWidgetSolved) return;
    var widget = document.querySelector('.cf-turnstile');
    if (!widget) return;
    if (!widget.querySelector('iframe')) {
      setSubmitEnabled(false);
      setStatus('The verification box is taking longer than usual to load. Please wait a few more seconds. If it still does not appear, refresh the page once.');
    }
  }, tsWidgetGraceMs);
});
</script>
<style>
:root{--bg:#f3f5fa;--card:#ffffff;--text:#111827;--muted:#5b6475;--border:#d9dfeb;--shadow:0 10px 30px rgba(16,24,40,.08);--btn:#2f64e1;--btn-hover:#2554c2;--error-bg:#fff1f1;--error-border:#f2b8b8;--error-text:#c62828}
*{box-sizing:border-box} body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
[hidden]{display:none !important}
.card{width:100%;max-width:520px;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:34px 34px 28px;text-align:center}
.badge{display:inline-block;margin-bottom:16px;padding:8px 14px;border-radius:999px;background:#e9f0ff;color:#2f64e1;font-size:13px;font-weight:700}
h1{margin:0 0 14px;font-size:42px;line-height:1.05;font-weight:800;letter-spacing:-.02em} p.desc{margin:0 0 24px;font-size:21px;line-height:1.6;color:var(--muted)}
.error{margin:0 0 18px;padding:14px 16px;border-radius:12px;border:1px solid var(--error-border);background:var(--error-bg);color:var(--error-text);font-size:15px;text-align:left}
form{display:flex;flex-direction:column;align-items:center;gap:18px}.widget-wrap{width:100%;display:flex;justify-content:center;overflow:hidden}.cf-turnstile{max-width:100%}
button{width:100%;max-width:300px;border:0;border-radius:14px;background:var(--btn);color:#fff;font-size:18px;font-weight:700;padding:15px 18px;cursor:pointer;transition:background .15s ease} button:hover{background:var(--btn-hover)}
.secondary-btn{display:block;width:100%;max-width:300px;border-radius:14px;background:#eef3ff;color:#2147a8;border:1px solid #c9d7ff;font-size:18px;font-weight:700;padding:15px 18px;text-decoration:none;transition:background .15s ease}
.secondary-btn:hover{background:#dde8ff}
.compat{margin-top:10px;padding:12px 14px;border-radius:12px;background:#f7f9fc;color:var(--muted);font-size:14px;line-height:1.5;text-align:left}
.note{margin-top:18px;font-size:14px;line-height:1.5;color:var(--muted)}
@media (max-width:768px){body{padding:16px;align-items:flex-start}.card{max-width:none;margin-top:24px;padding:26px 20px 22px;border-radius:16px}h1{font-size:32px;line-height:1.08}p.desc{font-size:18px;line-height:1.55;margin-bottom:20px}button{max-width:none;font-size:17px;padding:14px 16px}.note{font-size:15px}}
@media (max-width:420px){h1{font-size:28px}p.desc{font-size:17px}.card{padding:22px 16px 20px}}
</style>
</head>
<body>
  <div class="card">
    <div class="badge">Server protection</div>
    <h1>Security verification</h1>
    <p class="desc">Complete the verification to continue to the website.</p>
    <div class="note">Destination: nina-dobrev.us</div>                <form method="POST" id="challenge-form">
      <input type="hidden" name="ts_flow" value="eyJ0eXBlIjoiZmxvdyIsInYiOjEsImlhdCI6MTc3NzAyNzI3MiwiZXhwIjoxNzc3MDI4MTcyLCJub25jZSI6ImMxYTAwYmVlMmUxNmZmMDUyZTg1OWRlOSIsInVhIjoiNTVjMmNkZjFiNTI0NzI3YWI3OGYyZDA4IiwicmV0dXJuX3VybCI6Imh0dHA6Ly9uaW5hLWRvYnJldi51cy9mZWVkLyIsInJldHVybl9ob3N0IjoibmluYS1kb2JyZXYudXMiLCJpbml0aWFsX3JlZmVycmVyIjoiIn0.kBFnzUKTo2BtVrUh2c4HrWxyvtOWwDB2jpT5w-CYGZo">
      <input type="hidden" name="ts_turnstile_token" id="ts-turnstile-token" value="">
      <div class="widget-wrap"><div class="cf-turnstile" data-sitekey="0x4AAAAAACB5HfUMgJknKNIJ" data-action="verify_gate" data-cdata="flow_411bbedd4af3a16f93f15a243633e2dd88da33a2" data-callback="onSuccess" data-error-callback="onError" data-expired-callback="onExpired" data-timeout-callback="onTimeout" data-unsupported-callback="onUnsupported" data-language="auto" data-theme="auto" data-size="flexible" data-appearance="always" data-retry="auto" data-refresh-expired="auto" data-refresh-timeout="auto" data-response-field="false"></div></div>
      <button type="submit" id="ts-submit-button" hidden aria-hidden="true" tabindex="-1">Verify and continue</button>
      <a id="ts-manual-redirect-button" class="secondary-btn" hidden rel="nofollow">Tap here if the page does not redirect automatically</a>
    </form>
    <div class="compat" id="widget-status" aria-live="polite" hidden>If the security check does not continue automatically, use the button shown below the main action.</div>
    <noscript><div class="compat">JavaScript is required to complete the security check.</div></noscript>
  </div>
</body>
</html>
