PageSourceSearch

https://gdpr-shield.io/

html gdpr-shield.io collected 2026-10-04 01:27:30 UTC 41,824 bytes, 747 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="utf-8">
4<script type="text/javascript">window.NREUM||(NREUM={}),__nr_require=function(e,t,n){function r(n){if(!t[n]){var o=t[n]={exports:{}};e[n][0].call(o.exports,function(t){var o=e[n][1][t];return r(o||t)},o,o.exports)}return t[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(e,t,n){function r(){}function o(e,t,n){return function(){return i(e,[f.now()].concat(u(arguments)),t?null:this,n),t?void 0:this}}var i=e("handle"),a=e(2),u=e(3),c=e("ee").get("tracer"),f=e("loader"),s=NREUM;"undefined"==typeof window.newrelic&&(newrelic=s);var p=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],d="api-",l=d+"ixn-";a(p,function(e,t){s[t]=o(d+t,!0,"api")}),s.addPageAction=o(d+"addPageAction",!0),s.setCurrentRouteName=o(d+"routeName",!0),t.exports=newrelic,s.interaction=function(){return(new r).get()};var m=r.prototype={createTracer:function(e,t){var n={},r=this,o="function"==typeof t;return i(l+"tracer",[f.now(),e,n],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],n),o)try{return t.apply(this,arguments)}catch(e){throw c.emit("fn-err",[arguments,this,e],n),e}finally{c.emit("fn-end",[f.now()],n)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(e,t){m[t]=o(l+t)}),newrelic.noticeError=function(e){"string"==typeof e&&(e=new Error(e)),i("err",[e,f.now()])}},{}],2:[function(e,t,n){function r(e,t){var n=[],r="",i=0;for(r in e)o.call(e,r)&&(n[i]=t(r,e[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],3:[function(e,t,n){function r(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var r=-1,o=n-t||0,i=Array(o<0?0:o);++r<o;)i[r]=e[t+r];return i}t.exports=r},{}],4:[function(e,t,n){t.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(e,t,n){function r(){}function o(e){function t(e){return e&&e instanceof r?e:e?c(e,u,i):i()}function n(n,r,o,i){if(!d.aborted||i){e&&e(n,r,o);for(var a=t(o),u=m(n),c=u.length,f=0;f<c;f++)u[f].apply(a,r);var p=s[y[n]];return p&&p.push([b,n,r,a]),a}}function l(e,t){v[e]=m(e).concat(t)}function m(e){return v[e]||[]}function w(e){return p[e]=p[e]||o(n)}function g(e,t){f(e,function(e,n){t=t||"feature",y[n]=t,t in s||(s[t]=[])})}var v={},y={},b={on:l,emit:n,get:w,listeners:m,context:t,buffer:g,abort:a,aborted:!1};return b}function i(){return new r}function a(){(s.api||s.feature)&&(d.aborted=!0,s=d.backlog={})}var u="nr@context",c=e("gos"),f=e(2),s={},p={},d=t.exports=o();d.backlog=s},{}],gos:[function(e,t,n){function r(e,t,n){if(o.call(e,t))return e[t];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return e[t]=r,r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],handle:[function(e,t,n){function r(e,t,n,r){o.buffer([e],r),o.emit(e,t,n)}var o=e("ee").get("handle");t.exports=r,r.ee=o},{}],id:[function(e,t,n){function r(e){var t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");t.exports=r},{}],loader:[function(e,t,n){function r(){if(!x++){var e=h.info=NREUM.info,t=d.getElementsByTagName("script")[0];if(setTimeout(s.abort,3e4),!(e&&e.licenseKey&&e.applicationID&&t))return s.abort();f(y,function(t,n){e[t]||(e[t]=n)}),c("mark",["onload",a()+h.offset],null,"api");var n=d.createElement("script");n.src="https://"+e.agent,t.parentNode.insertBefore(n,t)}}function o(){"complete"===d.readyState&&i()}function i(){c("mark",["domContent",a()+h.offset],null,"api")}function a(){return E.exists&&performance.now?Math.round(performance.now()):(u=Math.max((new Date).getTime(),u))-h.offset}var u=(new Date).getTime(),c=e("handle"),f=e(2),s=e("ee"),p=window,d=p.document,l="addEventListener",m="attachEvent",w=p.XMLHttpRequest,g=w&&w.prototype;NREUM.o={ST:setTimeout,SI:p.setImmediate,CT:clearTimeout,XHR:w,REQ:p.Request,EV:p.Event,PR:p.Promise,MO:p.MutationObserver};var v=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1071.min.js"},b=w&&g&&g[l]&&!/CriOS/.test(navigator.userAgent),h=t.exports={offset:u,now:a,origin:v,features:{},xhrWrappable:b};e(1),d[l]?(d[l]("DOMContentLoaded",i,!1),p[l]("load",r,!1)):(d[m]("onreadystatechange",o),p[m]("onload",r)),c("mark",["firstbyte",u],null,"api");var x=0,E=e(4)},{}]},{},["loader"]);</script>
4
5    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6    <title>GDPR Shield | EU data privacy compliance made easy</title>
7    <meta name="author" content="GDPR Shield"/>
8	  <meta name="description" content="Making your website GDPR compliant can take thousands in legal fees, and you'll still be faced with considerable risk. If your website isn't primarily aimed at EU users, simply use GDPR Shield to block all EU traffic"/>
9  	<meta name="keywords" content="GDPR compliance, block EU traffic"/>
10  	<meta name="robots" content="index, follow"/>
11		<meta property="og:site_name" content="GDPR Shield"/>
12		<meta property="og:site" content="gdpr-shield.io"/>
13		<meta property="og:title" content="GDPR Shield | EU data privacy compliance made easy"/>
14		<meta property="og:description" content="Making your website GDPR compliant can take thousands in legal fees, and you'll still be faced with considerable risk. If your website isn't primarily aimed at EU users, simply use GDPR Shield to block all EU traffic"/>
15		<meta property="og:image" content="https://www.gdpr-shield.io/assets/img/fb_share.jpg"/>
16		<meta name="twitter:card" content="summary_large_image"/>
17    <!-- Styles -->
18    <link href="assets/css/page.min.css" rel="stylesheet">
19    <link href="assets/css/style.css" rel="stylesheet">
20    <!-- Favicons -->
21    <link rel="apple-touch-icon" href="assets/img/apple-touch-icon.png">
22    <link rel="icon" href="assets/img/favicon.png">
23    <link rel="canonical" href="https://gdpr-shield.io/" />
24  </head>
25  <body>
26    <!-- Navbar -->
27    <nav class="navbar navbar-expand-lg navbar-dark">
28      <div class="container">
29        <div class="navbar-left mr-4">
30          <button class="navbar-toggler" type="button">☰</button>
31          <a class="navbar-brand" href="/">
32            <img class="logo-dark" src="assets/img/logo/logo.png" alt="logo">
33            <img class="logo-light" src="assets/img/logo/logo.png" alt="logo">
34          </a>
35        </div>
36        <section class="navbar-mobile">
37          <nav class="nav nav-navbar nav-text-normal mr-auto">
38            <a class="nav-link" href="/">Why?</a>
39            <a class="nav-link" href="/">Pricing</a>
40            <a class="nav-link" href="/">FAQ</a>
41          </nav>
42          <div id="navbar_items_right" class="d-flex align-items-center">
43            <a id="navbar_btn_signup" class="btn btn-sm btn-success" data-toggle="modal" data-target="#modal-register" href="#">Sign up</a>
44            <a id="navbar_btn_login" class="btn btn-sm btn-link text-dark ml-lg-5 mr-2" data-toggle="modal" data-target="#modal-login" href="#">Login</a>
45          </div>
46        </section>
47      </div>
48    </nav><!-- /.navbar -->
49    <!-- Header -->
50    <header class="header h-80vh" style="background: #fdfdfd;">
51      <div class="container">
52        <div class="row align-items-center h-80">
53          <div class="col-md-5">
54            <h1 class="fw-600">Block <span class="text-warning">EU users</span> <br>from accessing your site</h1>
55            <p class="lead mt-5 mb-8">Don't spend thousands on legal fees to make your site GDPR-compliant. If you aren't targeting EU users, simply use GDPR Shield to block all traffic from the EU</p>
56            <a class="btn btn-round btn-primary w-200" data-toggle="modal" data-target="#modal-register" href="#">Get started</a>
57            <a class="btn btn-round btn-outline-secondary w-200 ml-3 d-none d-lg-inline-block" href="#how-it-works">How it works</a>
58          </div>
59          <div class="col-md-6 ml-auto d-none d-md-block">
60            <img src="assets/img/vector/test.png">
61          </div>
62        </div>
63      </div>
64    </header><!-- /.header -->
65		<section class="section py-6">
66	    <div class="container text-center">
67        <p class="lead">Our core team has been featured in</p>
68	      <div class="partner partner-md">
69	        <img src="assets/img/partner/1.png" alt="partner 1">
70	        <img src="assets/img/partner/2.png" alt="partner 2">
71	        <img src="assets/img/partner/3.png" alt="partner 3">
72	        <img src="assets/img/partner/4.png" alt="partner 4"><br />
73	        
74	       <p> An important issue is confidentiality on the Instagram social network. Clients <a href="/">GDPR Shield</a> are given an option to protect European citizens. All data on Instagram likes will be anonymous. </p>
75	      </div>
76	    </div>
77   	</section>
78    <!-- Main Content -->
79    <main class="main-content">
80      <!--
81      | Reduce your exposure to legal risk
82      !-->
83      <section id="why" class="section bg-gray overflow-hidden">
84        <div class="container">
85          <div class="row">
86            <div class="col-md-6 align-self-center text-center text-md-left">
87              <h2>Reduce your exposure to legal risk</h2><br>
88              <p>The European Union's new GDPR (General Data Protection Regulation), which took effect on 25th May 2018, creates uncertainty and risk for website owners. It applies to businesses world-wide, because it protects all users accessing your site from the EU, regardless of where your business is located.
89							GDPR threatens website owners with fines of 4% of turnover or €20 million (whichever is higher). If you don't have an in-house legal team, complying with the law requires you to consult with a lawyer specializing in data protection law. In addition, you're at risk of vindictive reporting from no-win-no-fee legal firms. Scan our QR code for quick access to the Google Group service:
90							</p>
91              <br>
92             <div align="center"> <a href="https://groups.google.com/g/custom-qr-code/c/rVPfhk-ohLk"><img alt="QR code generator" src="/gdpr.svg" style="width:51%; height:51%;"></a></div>
93                <br>  <br>
94                
95                <p>Our partner helps to quickly connect the service just by scanning the code, or by using an online Custom QR code generator.</p>
96              <a class="btn btn-lg btn-round btn-primary shadow-3" data-toggle="modal" data-target="#modal-register" href="#">Get Started Now</a>
97            </div>
98            <div class="col-md-5 mx-auto text-center mt-8 mt-md-0">
99              <img src="assets/img/preview/phone-2.png" data-aos="fade-up">
100            </div>
101          </div>
102        </div>
103      </section>
104      <!--
105      | How it works
106      !-->
107      <section id="how-it-works" class="section">
108        <div class="container">
109          <header class="section-header">
110            <small>How it works</small>
111            <h2>Save thousands on GDPR compliance</h2>
112            <hr>
113            <p class="lead">Simply paste our JavaScript snippet into your website's code. We'll check every visitor of your site and will block access to users located within the EU. </p>
114            <p class="lead">Our JavaScript has been used by thousands of companies. You can see what the warning looks like on <a href="https://socialsgrow.com/">Socials grow</a>. </p>
115            <p class="lead">SocialsGrow - our partner for brand promotion in social networks. </p>
116          </header>
117          <div class="row gap-y">
118            <div class="col-md-8 mx-auto mb-7">
119              <img src="assets/img/vector/19.png">
120            </div>
121            <div class="w-100"></div>
122            <div class="col-md-6 col-xl-4">
123              <div class="media">
124                <div class="lead-6 line-height-1 text-lighter w-70px"><i class="icon-pencil"></i></div>
125                <div class="media-body">
126                  <h5>1. Enter your website's URL</h5>
127                  <p><a data-toggle="modal" data-target="#modal-register" href="#">Get started</a> by signing up with your website's URL</p>
128                </div>
129              </div>
130            </div>
131            <div class="col-md-6 col-xl-4">
132              <div class="media">
133                <div class="lead-6 line-height-1 text-lighter w-70px"><i class="icon-search"></i></div>
134                <div class="media-body">
135                  <h5>2. Insert the JavaScript snippet</h5>
136                  <p>We provide you with a JavaScript snippet that you'll paste into your site's existing HTML code</p>
137                </div>
138              </div>
139            </div>
140            <div class="col-md-6 col-xl-4">
141              <div class="media">
142                <div class="lead-6 line-height-1 text-lighter w-70px"><i class="icon-megaphone"></i></div>
143                <div class="media-body">
144                  <h5>3. We block EU users</h5>
145                  <p>We'll check every user that visits your site and block access to users from the EU. This happens in the background and doesn't affect your site's speed for non-EU users</p>
146                </div>
147              </div>
148            </div>
149          </div>
150        </div>
151      </section>
152    </main>
153		
153<script>
154		if ( ! window.deferAfterjQueryLoaded ) {
155		  window.deferAfterjQueryLoaded = [];
156		  Object.defineProperty(window, "$", {
157		      set: function(value) {
158		          window.setTimeout(function() {
159		              $.each(window.deferAfterjQueryLoaded, function(index, fn) {
160		                  fn();
161		              });
162		          }, 0);
163		          Object.defineProperty(window, "$", { value: value });
164		      },
165		      configurable: true
166		  });
167		}
168		window.deferAfterjQueryLoaded.push(function() {
169			$(document).ready(function() {
170					var loggedIn = 0;
171					//Hide the navbar if logged in
172					if(loggedIn == 1){
173						$('#navbar_btn_login').remove();
174						$('#navbar_btn_signup').html("My Dashboard");
175						$('#navbar_btn_signup').attr("href", "/dashboard");
176						$('#navbar_btn_signup').attr("data-toggle", "");
177					}
178					//Signup-button
179					$('#btn_signup').on('click',(function(e) {
180						//gtag_report_conversion();
181						//capterra_report_conversion();
182						ga_report_conversion();
183						//fb_report_conversion();
184						$('#form_signup').submit();
185					}));
186					$('#form_signup').on('submit',(function(e) {
187						e.preventDefault();
188						$.ajax({
189							url: "ajax_register",
190							type: "POST",
191							data: new FormData(this),
192							contentType: false,
193							cache: false,
194							processData: false,
195							success: function(data){
196								console.log(data);	
197								var json_obj = $.parseJSON(data);
198								var result = json_obj.result;
199								console.log(result);
200								if(result == "ok" || result == "loggedin"){
201									loggedIn = 1;
202								} else if(result == "missing_data"){
203									$('#modal_signup_error').html('Please fill out all fields');
204									$('#modal_signup_error').show();
205								} else if(result == "email_exists"){
206									$('#modal_signup_error').html('This email is already registered, please <a href="login">sign in</a> instead!');
207									$('#modal_signup_error').show();
208								}
209							}
210						});
211					}));
212					$('#signup_email').on('keyup',(function(e) {
213						if($('#signup_email').val().length > 0 && isValidEmailAddress($('#signup_email').val()) && $('#signup_password').val().length > 0){
214							$('#btn_signup').prop('disabled', false);
215							$('#btn_signup').css('background', "#3ECF8E");
216							$('#btn_signup').css('color', "#FFFFFF");
217						} else {
218							//$('#btn_signup').prop('disabled', true);
219							$('#btn_signup').css('background', "#E9E9E9");
220							$('#btn_signup').css('color', "#AFAFAF");
221						}
222					}));
223					$('#signup_password').on('keyup',(function(e) {
224						if($('#signup_email').val().length > 0 && isValidEmailAddress($('#signup_email').val()) && $('#signup_password').val().length > 0){
225							$('#btn_signup').prop('disabled', false);
226							$('#btn_signup').css('background', "#3ECF8E");
227							$('#btn_signup').css('color', "#FFFFFF");
228						} else {
229							$('#btn_signup').prop('disabled', true);
230							$('#btn_signup').css('background', "#E9E9E9");
231							$('#btn_signup').css('color', "#AFAFAF");
232						}
233					}));
234					$('#modal_create_form').on('submit',(function(e) {
235						e.preventDefault();
236						//Hide any previously shown errors
237						$('#modal_create_error').hide();
238						var platforms = "";
239						if($('#toggle_reddit').attr("aria-pressed") == "true"){
240							platforms = platforms + "1,";
241						}
242						if($('#toggle_hn').attr("aria-pressed") == "true"){
243							platforms = platforms + "2,";
244						}
245						if($('#toggle_ph').attr("aria-pressed") == "true"){
246							platforms = platforms + "3,";
247						}
248						if($('#toggle_ih').attr("aria-pressed") == "true"){
249							platforms = platforms + "4,";
250						}
251						platforms = platforms.substring(0, platforms.length - 1);
252						$("#platforms").val(platforms);
253						$.ajax({
254							url: "ajax_create",
255							type: "POST",
256							data: new FormData(this),
257							contentType: false,
258							cache: false,
259							processData: false,
260							success: function(data){
261								console.log(data);	
262								var json_obj = $.parseJSON(data);
263								var result = json_obj.result;
264								console.log(result);
265								if(result == "ok"){
266									//Close modal and show new modal "Keyword added, we'll notify you"
267									$('#modal_create').modal('hide');
268									$('#modal_success').modal('show');
269								} else if(result == "trial_expired"){
270									$('#modal_create_error').html('Your trial has expired. To add new keywords, please <a href="change_plan">upgrade</a> your account');
271									$('#modal_create_error').show();
272								} else if(result == "no_keyword"){
273									$('#modal_create_error').html('Please enter a keyword that you want to monitor');
274									$('#modal_create_error').show();
275								} else if(result == "keyword_too_short"){
276									$('#modal_create_error').html('Keywords have to be longer than 3 characters');
277									$('#modal_create_error').show();
278								} else if(result == "max_keywords_trial"){
279									$('#modal_create_error').html('During your trial, you can only monitor 5 keywords. To add new keywords, please <a href="change_plan">upgrade</a> your account');
280									$('#modal_create_error').show();
281								} else if(result == "max_keywords"){
282									$('#modal_create_error').html('You\'ve reached the maximum number of keywords that you can monitor as part of your subscription. To add new keywords, please <a href="change_plan">upgrade</a> your account');
283									$('#modal_create_error').show();
284								} else if(result == "no_platforms"){
285									$('#modal_create_error').html('Please select at least one platform to monitor by clicking on it');
286									$('#modal_create_error').show();
287								} else if(result == "no_email"){
288									$('#modal_create_error').html('Please enter your email (or turn off the email-alert switch');
289									$('#modal_create_error').show();
290								} else if(result == "no_phone"){
291									$('#modal_create_error').html('Please enter your phone number (or turn off the text message alert switch');
292									$('#modal_create_error').show();
293								}
294							}
295						});
296					}));
297					function isValidEmailAddress(emailAddress) {
298						var pattern = new RegExp("^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$");
299						return pattern.test(emailAddress);
300					};
301					//Redirect to the dashboard when the modal is hidden
302					$('#modal_success').on('hide.bs.modal', function (e) {
303					})
304					function ga_report_conversion(){
305						ga('send', 'event', 'signup', 'signup', 'create');
306						return false;
307					}
308				});
309});
310</script>
310
311    <!-- Footer -->
312    <footer class="footer bg-gray py-9">
313      <div class="container">
314        <div class="row gap-y">
315          <div class="col-md-6 col-xl-4">
316            <p><a href="#"><img src="assets/img/logo/logo.png" alt="logo"></a></p>
317            <p>Make your website GDPR compliant - the easy way. Use GDPR Shield to reliably block EU users from accessing your website.</p>
318          </div>
319          <div class="col-6 col-md-3 col-xl-2">
320            <h6 class="mb-4 mt-1"><strong>Company</strong></h6>
321            <div class="nav flex-column">
322            	<a class="nav-link" href="terms/">Terms & Conditions</a>
323              <a class="nav-link" href="/">Privacy Policy</a>
324              <a class="nav-link" href="/">Imprint</a>
325            </div>
326          </div>
327          <div class="col-6 col-md-3 col-xl-2">
328            <h6 class="mb-4 mt-1"><strong>Product</strong></h6>
329            <div class="nav flex-column">
330              <a class="nav-link" href="/">How it works</a>
331              <a class="nav-link" href="/">Why?</a>
332              <a class="nav-link" href="/">Pricing</a>
333            </div>
334          </div>
335          <div class="col-6 col-md-6 col-xl-2">
336            <h6 class="mb-4 mt-1"><strong>Support</strong></h6>
337            <div class="nav flex-column">
338              <a class="nav-link" href="mailto:[email protected]">Help</a>
339              <a class="nav-link" href="/">FAQ</a>
340            </div>
341          </div>
342          <div class="col-6 col-md-6 col-xl-2 text-center">
343            <p><a class="btn btn-block btn-round btn-secondary" data-toggle="modal" data-target="#modal-register" href="#">Get started</a></p>
344            <br>
345            <div class="social social-bordered">
346              <!-- <a class="social-facebook" href="https://www.facebook.com/GDPRShield"><i class="fa fa-facebook"></i></a>
347              <a class="social-twitter" href="https://twitter.com/GDPRShield"><i class="fa fa-twitter"></i></a>
348              <a class="social-youtube" href="https://youtube.com/GDPRShield"><i class="fa fa-youtube"></i></a> -->
349            </div>
350          </div>
351        </div>
352      </div>
353    </footer><!-- /.footer -->
354		<div class="modal fade" id="modal-login" tabindex="-1" role="dialog" style="display: none;" aria-hidden="true">
355      <div class="modal-dialog modal-sm" role="document">
356        <div class="modal-content">
357          <div class="modal-body">
358            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
359              <span aria-hidden="true">×</span>
360            </button>
361            <form id="form_login_everywhere">
362              <h4 class="fw-200 text-center">Login</h4>
363              <p class="text-center">Sign into your account</p>
364              <div id="modal_login_everywhere_error" class="red-text mb-4 display-none text-bold"></div>
365              <div class="form-group">
366                <input class="form-control" type="email" id="login_email_everywhere" name="login_email" placeholder="Email address">
367              </div>
368              <div class="form-group">
369                <input class="form-control" type="password" id="login_password_everywhere" name="login_password" placeholder="Password">
370              </div>
371              <div class="row align-items-center pt-3 pb-5">
372                <div class="col-auto">
373                  <div class="custom-control custom-checkbox">
374                    <input class="custom-control-input" type="checkbox" id="login_stayloggedin_everywhere" name="login_stayloggedin" value="yes" checked>
375                    <label class="custom-control-label">Remember me</label>
376                  </div>
377                </div>
378                <div class="col text-right">
379                  <p class="mb-0 fw-300"><a class="text-muted small-2" href="#">Forgot password?</a></p>
380                </div>
381              </div>
382              <a id="btn_login_everywhere" class="btn btn-lg btn-block btn-primary white-text">Login</a>
383              <p class="small-2 text-center mt-5 mb-0">Don't have an account? <a href="#" data-toggle="modal" data-target="#modal
383-register">Create one</a></p>
384            </form>
385          </div>
386        </div>
387      </div>
388    </div>
389    <div class="modal fade" id="modal-register" tabindex="-1" role="dialog">
390      <div class="modal-dialog" role="document">
391        <div class="modal-content">
392          <div class="modal-body">
393            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
394              <span aria-hidden="true">×</span>
395            </button>
396            <form>
397              <h4 class="text-center">Add a website</h4>
398              <p class="text-center">You can add more domains later on</p>
399              <hr class="w-10">
400              <div class="form-group">
401              	<label>What's your website's domain name?</label>
402                <input class="form-control" type="text" id="domain" name="domain" placeholder="google.com">
403              </div>
404							<div id="modal_signup_everywhere_step_1_error" class="alert alert-danger display-none" role="alert"></div>
405              <a id="btn_signup_everywhere_step_1_next" class="btn btn-lg btn-block btn-primary white-text">Continue</a>
406            </form>
407          </div>
408        </div>
409      </div>
410    </div>
411    <div class="modal fade" id="modal-register-2" tabindex="-1" role="dialog">
412      <div class="modal-dialog" role="document">
413        <div class="modal-content">
414          <div class="modal-body">
415            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
416              <span aria-hidden="true">×</span>
417            </button>
418            <form id="form_signup_everywhere">
419              <h4 class="text-center">Create an account</h4>
420              <p class="text-center">Access your dashboard</p>
421              <div class="form-group">
422              	<label>What's your email address?</label>
423                <input class="form-control" type="email" id="signup_email" name="signup_email" placeholder="Your Email Address">
424              </div>
425              <div class="form-group">
426              	<label>Choose a password to secure your account</label>
427                <input class="form-control" type="password" id="signup_password" name="signup_password" placeholder="Password">
428              </div>
429              <input type="hidden" id="domain_submit" name="domain">
430							<div id="modal_signup_everywhere_error" class="alert alert-danger display-none" role="alert"></div>
431              <a id="btn_signup_everywhere" class="btn btn-lg btn-block btn-primary mt-5 white-text">Sign up</a>
432            </form>
433          </div>
434        </div>
435      </div>
436    </div>    
437    <div class="modal fade" id="modal-register-3" tabindex="-1" role="dialog">
438      <div class="modal-dialog modal-lg" role="document">
439        <div class="modal-content">
440          <div class="modal-body">
441            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
442              <span aria-hidden="true">×</span>
443            </button>
444            <form>
445              <h4 class="text-center">Select a plan</h4>
446              <p class="text-center">You'll only be charged once you've successfully installed GDPR Shield and your site is sending traffic</p>
447			        <div class="row pricing mt-5">
448			      		<div class="col-md-4 mx-auto mb-6">
449			            <div class="pricing-1">
450			              <p class="plan-name">Hobby</p>
451			              <br>
452			              <h2 class="price"><span class="price-unit">$</span> 9<span style="font-size: 20px;">/month<span></h2>
453			              <br>
454			              <div class="text-muted">
455			                <small><span><b>1</b> domain</span></small><br>
456			                <small><span>up to <b>10,000</b> visitors/month</span></small><br>
457			                <small><span>SSL encryption</span></small><br>
458			                <small><span>Email support</span></small><br>
459			                <small><span> </span></small>
460			                <small><span> </span></small>
461			                <small><span> </span></small>
462			              </div>
463			              <br>
464			              <p class="text-center py-3"><a id="btn_select_plan_1_everywhere" class="btn btn-primary btn-get-started" href="#">Select plan</a></p>
465			            </div>
466			          </div>
467				          <div class="col-md-4 mx-auto mb-6">
468				            <div class="pricing-1">
469				              <p class="plan-name">Professional</p>
470				              <br>
471				              <h2 class="price"><span class="price-unit">$</span> 49<span style="font-size: 20px;">/month<span></h2>
472				              <br>
473				              <div class="text-muted">
474			                  <small><span><b>3</b> domains</span></small><br>
475			                  <small><span>up to <b>1M</b> visitors/month</span></small><br>
476			                  <small><span>SSL encryption</span></small><br>
477			                  <small><span>Country-level analytics</span></small><br>
478			                  <small><span>24/7 email & chat support</span></small><br>
479			                  <small><span></span></small>
480				              </div>
481				              <br>
482				              <p class="text-center py-3"><a id="btn_select_plan_2_everywhere" class="btn btn-primary btn-get-started" href="#">Select plan</a></p>
483				            </div>
484				          </div>
485				          <div class="col-md-4 mx-auto mb-6">
486				            <div class="pricing-1">
487				              <p class="plan-name">Enterprise</p>
488				              <br>
489				              <h2 class="price"><span class="price-unit">$</span> 79<span style="font-size: 20px;">/month<span></h2>
490				              <br>
491				              <div class="text-muted">
492			              		<small><span><b>5</b> domains</span></small><br>
493			                  <small><span>up to <b>5M</b> visitors/month</span></small><br>
494			                  <small><span>SSL encryption</span></small><br>
495			                  <small><span>Country-level analytics</span></small><br>
496			                  <small><span>24/7 email & chat support</span></small><br>
497			                  <small><span></span></small>
498				              </div>
499				              <br>
500				              <p class="text-center py-3"><a id="btn_select_plan_3_everywhere" class="btn btn-primary btn-get-started" href="#">Select plan</a></p>
501				            </div>
502				          </div>
503			        </div>
504            </form>
505          </div>
506        </div>
507      </div>
508    </div>  
509    <div class="modal fade" id="modal_payment_method" tabindex="-1" role="dialog">
510      <div class="modal-dialog" role="document">
511        <div class="modal-content">
512          <div class="modal-body">
513            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
514              <span aria-hidden="true">×</span>
515            </button>
516            <form id="form_signup_everywhere">
517              <h4 class="text-center">Enter payment method</h4>
518              <p class="text-center">You'll only be charged once you've successfully installed GDPR Shield and your site is sending traffic</p>
519              <div id="modal_payment_method_body">
520								<div id="bt-dropin"></div>
521						    <div class="row">
522						      <div class="col-md-12 text-center">Payments secured by <img src="https://gdpr-shield.io/assets/img/bt_logo.svg" style="height: 25px; margin-left: 5px;"></div>
523						    </div>
524              </div>
525              <input id="nonce" name="payment_method_nonce" type="hidden"/>
526              <div id="modal_payment_error" class="alert alert-danger display-none" role="alert"></div>
527              <a id="btn_subscribe" class="btn btn-lg btn-block btn-primary mt-5 white-text" style="visibility: hidden;">Confirm payment details</a>
528            </form>
529          </div>
530        </div>
531      </div>
532    </div>   
533    <!-- Scripts -->
534    
534<script src="assets/js/page.min.js"></script>
534
535    
535<script src="assets/js/script.js"></script>
535
536		
536<script src="api/checkout.js" data-version-4></script>
536
537		
537<script src="web/dropin/1-9-4/js/dropin.min.js"></script>
537
538		<!-- Signup/login modal -->
539		
539<script>
540			$(document).ready(function() {
541				var loggedIn = 0;
542				var email = "";
543				var newPlan = 0;
544				$('#domain').keydown(function(e) {
545			    if (e.keyCode == 13) {
546			    		e.preventDefault();
547			        $('#btn_signup_everywhere_step_1_next').click();
548					    return false;
549			    }
550				});
551				//Signup Next-button
552				$('#btn_signup_everywhere_step_1_next').on('click',(function(e) {
553					//Copy the entered values to the step-2 form
554					var domain = $("#domain").val();
555					$("#domain_submit").val(domain);
556					if(domain == ""){
557						$('#modal_signup_everywhere_step_1_error').html('Please enter your website\'s domain (e.g. yourwebsite.com) so we know where we should block EU visitors');
558						$('#modal_signup_everywhere_step_1_error').show();
559						return;
560					}
561					$('#modal-register').modal('hide');
562					$('#modal-register-2').modal('show');
563				}));
564				//Signup-button
565				$('#btn_signup_everywhere').on('click',(function(e) {
566					email = $("#signup_email").val();
567					$('#form_signup_everywhere').submit();
568					$('#modal_signup_everywhere_error').hide();
569					$('#btn_signup_everywhere').html('<i class="fa fa-spinner fa-spin"></i>');
570				}));
571				$('#form_signup_everywhere').on('submit',(function(e) {
572					e.preventDefault();
573					$.ajax({
574						url: "ajax_register",
575						type: "POST",
576						data: new FormData(this),
577						contentType: false,
578						cache: false,
579						processData: false,
580						success: function(data){
581							console.log(data);	
582							var json_obj = $.parseJSON(data);
583							var result = json_obj.result;
584							console.log(result);
585							if(result == "ok" || result == "loggedin"){
586								$('#modal-register-2').modal('hide');
587								$('#modal-register-3').modal('show');
588							} else if(result == "missing_data"){
589								$('#modal_signup_everywhere_error').html('Please fill out all fields');
590								$('#modal_signup_everywhere_error').show();
591								$('#btn_signup_everywhere').html('Sign up');
592							} else if(result == "email_exists"){
593								$('#modal_signup_everywhere_error').html('This email is already registered, please <a href="login">sign in</a> instead!');
594								$('#modal_signup_everywhere_error').show();
595								$('#btn_signup_everywhere').html('Sign up');
596							}
597						}
598					});
599				}));
600				//Payment method modal
601				var braintreeInstance = 0;
602		    braintree.dropin.create({
603		      authorization: 'eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI1NzdlNWE3NmVkNTE2N2FjYzJiMjdmYjJjOTI4OTA0YTA5MzU4MGRiN2RhOTUwMWFjYzEzZmIxZjFkZWUwNGZkfGNyZWF0ZWRfYXQ9MjAxOC0wOC0xMlQxNDo1NDo1Ni4zODQxNDI4NjkrMDAwMFx1MDAyNm1lcmNoYW50X2lkPWZiYmpwbXlzOHQzdGs4ajZcdTAwMjZwdWJsaWNfa2V5PWY2YjRidmYzNTVxejkzd3QiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzL2ZiYmpwbXlzOHQzdGs4ajYvY2xpZW50X2FwaS92MS9jb25maWd1cmF0aW9uIiwiY2hhbGxlbmdlcyI6WyJjdnYiXSwiZW52aXJvbm1lbnQiOiJwcm9kdWN0aW9uIiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuYnJhaW50cmVlZ2F0ZXdheS5jb206NDQzL21lcmNoYW50cy9mYmJqcG15czh0M3RrOGo2L2NsaWVudF9hcGkiLCJhc3NldHNVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImF1dGhVcmwiOiJodHRwczovL2F1dGgudmVubW8uY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vY2xpZW50LWFuYWx5dGljcy5icmFpbnRyZWVnYXRld2F5LmNvbS9mYmJqcG
60315czh0M3RrOGo2In0sInRocmVlRFNlY3VyZUVuYWJsZWQiOmZhbHNlLCJwYXlwYWxFbmFibGVkIjp0cnVlLCJwYXlwYWwiOnsiZGlzcGxheU5hbWUiOiJzaGFyZWtpdC5pbyIsImNsaWVudElkIjoiQVVYS1g4WWdCZDR3RlVGM2w0Q0EyZnFCQTlGd0J0MHdURFQ4MU1GaGJBZHIzZWQtN2RCU1RGX043ZC1VbkNmekNSSUJWR3JLSWI0dEV4N2giLCJwcml2YWN5VXJsIjoiaHR0cHM6Ly93d3cuc2hhcmVraXQuaW8vcHJpdmFjeSIsInVzZXJBZ3JlZW1lbnRVcmwiOiJodHRwczovL3d3dy5zaGFyZWtpdC5pby90ZXJtcyIsImJhc2VVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImFzc2V0c1VybCI6Imh0dHBzOi8vY2hlY2tvdXQucGF5cGFsLmNvbSIsImRpcmVjdEJhc2VVcmwiOm51bGwsImFsbG93SHR0cCI6ZmFsc2UsImVudmlyb25tZW50Tm9OZXR3b3JrIjpmYWxzZSwiZW52aXJvbm1lbnQiOiJsaXZlIiwidW52ZXR0ZWRNZXJjaGFudCI6ZmFsc2UsImJyYWludHJlZUNsaWVudElkIjoiQVJLcllSRGgzQUdYRHpXN3NPXzNiU2txLVUxQzdIR191V05DLXo1N0xqWVNETlVPU2FPdElhOXE2VnBXIiwiYmlsbGluZ0FncmVlbWVudHNFbmFibGVkIjp0cnVlLCJtZXJjaGFudEFjY291bnRJZCI6InNoYXJla2l0aW9FVVIiLCJjdXJyZW5jeUlzb0NvZGUiOiJFVVIifSwibWVyY2hhbnRJZCI6ImZiYmpwbXlzOHQzdGs4ajYiLCJ2ZW5tbyI6Im9mZiJ9',
604		      selector: '#bt-dropin',
605		      paypal: {
606		        flow: 'vault'
607		      }
608		    }, function (createErr, instance) {
609		      braintreeInstance = instance;
610		      braintreeInstance.on('paymentMethodRequestable', function (event) {
611				    console.log(event.type); // The type of Payment Method, e.g 'CreditCard', 'PayPalAccount'.
612				    console.log(event.paymentMethodIsSelected); // true if a customer has selected a payment method when paymentMethodRequestable fires
613				    $('#btn_subscribe').css("visibility", "visible");
614				  });
615		    });
616			  $('#btn_select_plan_1_everywhere').on('click', function(e) {
617			  	//Set the newPlan-variable
618			    newPlan = 1;
619					//Open the payment modal
620					$('#modal-register-3').modal('hide');
621					$("#modal_payment_method").modal("show");
622			  });
623			  $('#btn_select_plan_2_everywhere').on('click', function(e) {
624			  	//Set the newPlan-variable
625			  	newPlan = 2;
626					//Open the payment modal
627					$('#modal-register-3').modal('hide');
628					$("#modal_payment_method").modal("show");
629			  });
630			  $('#btn_select_plan_3_everywhere').on('click', function(e) {
631			  	//Set the newPlan-variable
632			  	newPlan = 3;
633					//Open the payment modal
634					$('#modal-register-3').modal('hide');
635					$("#modal_payment_method").modal("show");
636			  });
637			  $('#btn_subscribe').on('click', function(e) {
638				  braintreeInstance.requestPaymentMethod(function (err, payload) {
639		          if (err) {
640		            console.log('Request Payment Method Error', err);
641		            return;
642		          }
643		          //Show a "loading" indicator within the popup
644			  			$('#modal_payment_method_body').html('<div class="row"><div class="col-md-12 text-center pl-5 pr-5 mb-4">Please wait, processing...</div> </div>');
645			  			$('#btn_subscribe').css("visibility", "hidden");
646		          // Add the nonce to the form and submit
647		          //document.querySelector('#nonce').value = payload.nonce;
648							//Submit to ajax_change_plan
649							performCharge(payload.nonce);
650		      });
651			  });	 
652			  function performCharge(nonce){
653					$.ajax({
654						url: "ajax_change_plan.php?nonce=" + nonce + "&newPlan=" + newPlan,
655						type: "GET",
656						contentType: false,
657						cache: false,
658						processData: false,
659						success: function(data){
660							console.log(data);	
661							var json_obj = $.parseJSON(data);
662							var result = json_obj.result;
663							console.log(result);
664							if(result == "ok"){
665								//Show the dashboard
666							} else {
667								$('#modal_payment_error').html(json_obj.error_msg);
668								$('#modal_payment_error').show();
669							}
670						}
671					});
672			  }
673			  //Redirect to the dashboard when the modal is hidden
674				//$('#modal_done').on('hide.bs.modal', function (e) {
675				//  
676				//})
677				//Login-pwd-keydown-enter
678				$('#login_password_everywhere').keydown(function(e) {
679			    if (e.keyCode == 13) {
680			        $('#form_login_everywhere').submit();
681					    return false;
682			    }
683				});
684				//Login-button in modal
685				$('#btn_login_everywhere').on('click',(function(e) {
686					$('#form_login_everywhere').submit();
687				}));
688				$('#form_login_everywhere').on('submit',(function(e) {
689					e.preventDefault();
690					$.ajax({
691						url: "ajax_login",
692						type: "POST",
693						data: new FormData(this),
694						contentType: false,
695						cache: false,
696						processData: false,
697						success: function(data){
698							console.log(data);	
699							var json_obj = $.parseJSON(data);
700							var result = json_obj.result;
701							console.log(result);
702							if(result == "loggedin"){
703							} else if(result == "missing_data"){
704								console.log("miss");
705								$('#modal_login_everywhere_error').html('Please fill out all fields');
706								$('#modal_login_everywhere_error').show();
707							} else if(result == "wrong_password"){
708								$('#modal_login_everywhere_error').html('Please check your email/password combination');
709								$('#modal_login_everywhere_error').show();
710							} else if(result == "deactivated"){
711								$('#modal_login_everywhere_error').html('Your account has been deactived. Please email us at <a href="mailto:[email protected]">[email protected]</a>');
712								$('#modal_login_everywhere_error').show();
713							}
714						}
715					});
716				}));
717		  	//Show the login modal when requested via the URL
718				if(window.location.href.indexOf("#login") > -1) {
719		  		$('#modal-login').modal('show');
720		  	}
721				//Redirect to the dashboard when the modal is hidden
722				$('#modal_success').on('hide.bs.modal', function (e) {
723				})
724			});
725			function isValidEmailAddress(emailAddress) {
726				var pattern = new RegExp("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
727				return pattern.test(emailAddress);
728			};
729		 	function reset_password(){
730		  	$('#modal_login_everywhere_error').html('<font color="green">Thanks, we\'ve sent you an email with instructions on how to reset your password</font>');
731		  	$.ajax({
732						url: "ajax_reset_password",
733						type: "GET",
734						data: "login_email=" + $('#login_email_everywhere').val(),
735						contentType: false,
736						cache: false,
737						processData: false,
738						success: function(data){
739							console.log(data);	
740							var json_obj = $.parseJSON(data);			
741						}
742					});
743		  	return false;
744		  }
745		</script>
745
746  
746<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"7079a4e315","applicationID":"117392235","transactionName":"MwFaZ0tSX0ECAhVQDApLbUFQHFhcBwQZFxMMFA==","queueTime":0,"applicationTime":373,"atts":"H0ZZEQNITE8=","errorBeacon":"bam.nr-data.net","agent":""}</script>
746</body>
747</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.