PageSourceSearch

https://app.signstream.net/login

html signstream.net collected 2026-10-01 23:43:37 UTC 56,431 bytes, 1,159 lines download raw bytes

1<!DOCTYPE html>
2<html lang='en'>
3<head>
4<meta charset='utf-8'>
5<meta content='IE=edge' http-equiv='X-UA-Compatible'>
6<meta content='width=device-width, initial-scale=1' name='viewport'>
7<meta content='' name='description'>
8<meta content='' name='keywords'>
9<meta content='SIGNSTREAM.net' name='author'>
10<title>
11SignStream.NET
12| Stream Your Signs
13</title>
14<link href='https://app.signstream.net/assets/apple-touch-icon-a35135f5ef18eee007ccc7fa7cd7aad3eeff807151b9b4ff7000d114762ee4d8.png ' rel='aple-touch-icon' sizes='180x180'>
15<link href='https://app.signstream.net/assets/favicon-32x32-033375a14a8deb6898c341dbd357da758a402c77f9e3c492fa0d1fc20b183ade.png ' rel='icon' sizes='32x32' type='image/png'>
16<link href='https://app.signstream.net/assets/favicon-194x194-e4131b169b175cc6f7de0dbca8c9efccc0353790ec54d7ffc91692bb4b2feb7e.png ' rel='icon' sizes='194x194' type='image/png'>
17<link href='https://app.signstream.net/assets/android-chrome-192x192-7f0a0e46fd5eb26ff899efe45bb2402fa71cf850f3680bfeff854fc24d48edc5.png' rel='icon' sizes='192x192' type='image/png'>
18<link href='https://app.signstream.net/assets/favicon-16x16-773b19c6d559238b6eafc236378d9afebc0ccd013161c014022a3ef0773dded5.png ' rel='icon' sizes='16x16' type='image/png'>
19<link color='#5abfad' href='https://app.signstream.net/assets/safari-pinned-tab-3f761bc1857d3ea37b71d56940d92462d706a4cecf1a562eb1b91098d770e310.svg' rel='mask-icon'>
20<meta content='SignStream.net' name='apple-mobile-web-app-title'>
21<meta content='SignStream.net' name='application-name'>
22<meta content='#da532c' name='msapplication-TileColor'>
23<meta content='https://app.signstream.net/assets/mstile-144x144-ffbff4bdbfd963984c8e99fbc7ce10ab8a7232c2e5884bf4c226d5b0d12a3723.png' name='msapplication-TileImage'>
24<meta content='#ffffff' name='theme-color'>
25<link rel="shortcut icon" type="image/x-icon" href="/assets/favicon-033375a14a8deb6898c341dbd357da758a402c77f9e3c492fa0d1fc20b183ade.png" />
26<link href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css' id='bootstrap-css' rel='stylesheet'>
27<link href='//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css' id='bootstrap-css' rel='stylesheet'>
28<script src='//code.jquery.com/jquery-1.11.1.min.js'></script>
vendor: 1 bytes, line 28
28
29<script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js'></script>
vendor: 1 bytes, line 29
29
30<script src='https://cdn.tailwindcss.com'></script>
30
31<style>
32  .panel-login {
33  
34  }
35  .panel-login>.panel-heading {
36    color: #00415d;
37    background-color: #fff;
38    border-color: #fff;
39    text-align:center;
40  }
41  .panel-login>.panel-heading a{
42    text-decoration: none;
43    color: #666;
44    font-weight: bold;
45    font-size: 15px;
46    -webkit-transition: all 0.1s linear;
47    -moz-transition: all 0.1s linear;
48    transition: all 0.1s linear;
49  }
50  .panel-login>.panel-heading a.active{
51    color: #029f5b;
52    font-size: 18px;
53  }
54  .panel-login>.panel-heading hr{
55    margin-top: 10px;
56    margin-bottom: 0px;
57    clear: both;
58    border: 0;
59    height: 1px;
60    background-image: -webkit-linear-gradient(left,rgba(0, 0, 0, 0),rgba(0, 0, 0, 0.15),rgba(0, 0, 0, 0));
61    background-image: -moz-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0));
62    background-image: -ms-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0));
63    background-image: -o-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0));
64  }
65  
66  .btn-login {
67    background-color: #59B2E0;
68    outline: none;
69    color: #fff;
70    font-size: 14px;
71    height: auto;
72    font-weight: normal;
73    padding: 14px 0;
74    text-transform: uppercase;
75    border-color: #59B2E6;
76  }
77  .btn-login:hover,
78  .btn-login:focus {
79    color: #fff;
80    background-color: #53A3CD;
81    border-color: #53A3CD;
82  }
83  .forgot-password {
84    text-decoration: underline;
85    color: #888;
86  }
87  .forgot-password:hover,
88  .forgot-password:focus {
89    text-decoration: underline;
90    color: #666;
91  }
92  
93  .btn-register {
94    background-color: #1CB94E;
95    outline: none;
96    color: #fff;
97    font-size: 14px;
98    height: auto;
99    font-weight: normal;
100    padding: 14px 0;
101    text-transform: uppercase;
102    border-color: #1CB94A;
103  }
104  .btn-register:hover,
105  .btn-register:focus {
106    color: #fff;
107    background-color: #1CA347;
108    border-color: #1CA347;
109  }
110  body{
111    background-repeat: no-repeat;
112    background-size: 100% 100%;
113  }
114  html {
115    height: 100%
116  }
117  
118  
119  
120  .tv_area_sm{
121    margin-top: 0px;
122    margin-bottom: 50px;
123  
124  }
125  .tv_area img,.tv_area_sm img{
126    width:100%;
127    position: relative;
128    left: 0;
129    top: 0px;
130  
131  }
132  .under{
133    position:absolute;
134    left:40px;
135    top:70px;
136    z-index:0;
137  }
138  .over{
139    position:absolute;
140    left:27px;
141    top:60px;
142    z-index:1;
143  }
144  .main_area {
145      padding-top: 90px;
146  }
147  .content_area{
148    background-color: rgba(0, 0, 0, 0.6);
149    min-height:100vh;
150  
151  }
152  
153  .footer {
154    position: absolute;
155    right: 0;
156    bottom: 0;
157    left: 0;
158    padding: 1rem;
159    background-color: rgba(150, 150, 150, 0.7);
160    text-align: center;
161  }
162  .footer_sm {
163    padding: 1rem;
164    background-color: rgba(150, 150, 150, 0.7);
165    text-align: center;
166  }
167  
168  .transition-reverse-plus {
169    transform: translateX(100%);
170  }
171  
172  .transition-reverse-minus {
173    transform: translateX(-100%);
174  }
175  
176  @media (max-width: 768px) {
177    .transition-reverse-plus {
178        transform: translateX(0%);
179      }
180  
181      .transition-reverse-minus {
182        transform: translateX(-0%);
183      }
184  }
185</style>
186
187<script>
vendor: 345 bytes, lines 187-193
187
188  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
189  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
190  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
191  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
192
193  ga('create', '
193UA-93921256-1
vendor: 39 bytes, lines 193-195
193', 'auto');
194  ga('send', 'pageview');
195
196</script>
196
197
198<!-- Google Code for try for free Conversion Page -->
199<script type="text/javascript">
200  /* <![CDATA[ */
201  var google_conversion_id = 998721343;
202  var google_conversion_language = "en";
203  var google_conversion_format = "3";
204  var google_conversion_color = "ffffff";
205  var google_conversion_label = "xaPwCM7K6HMQv46d3AM";
206  var google_remarketing_only = false;
207  /* ]]> */
208</script>
vendor: 1 bytes, line 208
208
209<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"></script>
209
210<noscript>
211  <div style="display:inline;">
212    <img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/998721343/?label=xaPwCM7K6HMQv46d3AM&amp;guid=ON&amp;script=0"/>
213  </div>
214</noscript>
215
216    
216<script>
217    window['_fs_debug'] = false;
218    window['_fs_host'] = 'fullstory.com';
219    window['_fs_script'] = 'edge.fullstory.com/s/fs.js';
220    window['_fs_org'] = '5D7MP';
221    window['_fs_namespace'] = 'FS';
222    (function(m,n,e,t,l,o,g,y){
223        if (e in m) {if(m.console && m.console.log) { m.console.log('FullStory namespace conflict. Please set window["_fs_namespace"].');} return;}
224        g=m[e]=function(a,b,s){g.q?g.q.push([a,b,s]):g._api(a,b,s);};g.q=[];
225        o=n.createElement(t);o.async=1;o.crossOrigin='anonymous';o.src='https://'+_fs_script;
226        y=n.getElementsByTagName(t)[0];y.parentNode.insertBefore(o,y);
227        g.identify=function(i,v,s){g(l,{uid:i},s);if(v)g(l,v,s)};g.setUserVars=function(v,s){g(l,v,s)};g.event=function(i,v,s){g('event',{n:i,p:v},s)};
228        g.anonymize=function(){g.identify(!!0)};
229        g.shutdown=function(){g("rec",!1)};g.restart=function(){g("rec",!0)};
230        g.log = function(a,b){g("log",[a,b])};
231        g.consent=function(a){g("consent",!arguments.length||a)};
232        g.identifyAccount=function(i,v){o='account';v=v||{};v.acctId=i;g(o,v)};
233        g.clearUserCookie=function(){};
234        g.setVars=function(n, p){g('setVars',[n,p]);};
235        g._w={};y='XMLHttpRequest';g._w[y]=m[y];y='fetch';g._w[y]=m[y];
236        if(m[y])m[y]=function(){return g._w[y].apply(this,arguments)};
237        g._v="1.3.0";
238    })(window,document,window['_fs_namespace'],'script','user');
239    </script>
239
240
241<!--     
241<script>
242    window['_fs_debug'] = false;
243    window['_fs_host'] = 'fullstory.com';
244    window['_fs_org'] = '5D7MP';
245    window['_fs_namespace'] = 'FS';
246    (function(m,n,e,t,l,o,g,y){
247        if (e in m && m.console && m.console.log) { m.console.log('FullStory namespace conflict. Please set window["_fs_namespace"].'); return;}
248        g=m[e]=function(a,b){g.q?g.q.push([a,b]):g._api(a,b);};g.q=[];
249        o=n.createElement(t);o.async=1;o.src='https://'+_fs_host+'/s/fs.js';
250        y=n.getElementsByTagName(t)[0];y.parentNode.insertBefore(o,y);
251        g.identify=function(i,v){g(l,{uid:i});if(v)g(l,v)};g.setUserVars=function(v){g(l,v)};
252        g.identifyAccount=function(i,v){o='account';v=v||{};v.acctId=i;g(o,v)};
253        g.clearUserCookie=function(c,d,i){if(!c || document.cookie.match('fs_uid=[`;`]*`[`;`]*`[`;`]*`')){
254        d=n.domain;while(1){n.cookie='fs_uid=;domain='+d+
255        ';path=/;expires='+new Date(0).toUTCString();i=d.indexOf('.');if(i<0)break;d=d.slice(i+1)}}};
256    })(window,document,window['_fs_namespace'],'script','user');
257    </script>
257  -->
258
259
260<!-- Start of HubSpot Embed Code -->
261  
261<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/4297266.js"></script>
261
262<!-- End of HubSpot Embed Code -->
263<!-- Tracking subsequent page views -->
264<!-- End of Tracking subsequent page views -->
265
266
267<!-- Exclude #register-form from HubSpot tracking -->
268<script>
269  var _hsq = window._hsq = window._hsq || [];
270  _hsq.push(['doNotTrackForm', {
271    elementId: 'register-form'
272  }]);
273</script>
273
274
275<script>
276  var capterra_vkey = '850c8fc91f1bda9f7687871c757e1b48',
277  capterra_vid = '2127584',
278  capterra_prefix = (('https:' == document.location.protocol) ? 'https://ct.capterra.com' : 'http://ct.capterra.com');
279  
280  (function() {
281    var ct = document.createElement('script'); ct.type = 'text/javascript'; ct.async = true;
282    ct.src = capterra_prefix + '/capterra_tracker.js?vid=' + capterra_vid + '&vkey=' + capterra_vkey;
283    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ct, s);
284  })();
285</script>
285
286
287</head>
288<body>
289<div class='content_aread'>
290<nav class='bg-gray-100 left-1/2 lg:-translate-x-1/2 lg:-translate-y-1/2 lg:absolute lg:bg-transparent lg:top-24 mb-0 navbar sticky top-0 z-10'>
291<div class='container flex justify-center'>
292<div class='w-[230px]'>
293<a class="bg-gray-100 lg:bg-white w-auto" href="/login"><img alt="SignStream.NET" class="max-w-[200px] lg:max-w-full w-[230px]" src="/assets/signstream-black-78d8f1b840ac1a41ea5a650ed2e59e0b0109632767c6f5fe200128ce61c91e74.png" />
294</a></div>
295</div>
296</nav>
297<section class='bg-white'>
298<div class='flex flex-col h-auto lg:flex-row lg:h-screen' id='login-page-wrapper' style='transition: transform 0.9s ease-in-out;'>
299<!-- start of main area -->
300<div class='bg-gray-100 duration-200 flex items-center justify-center lg:px-8 lg:py-24 lg:w-1/2 pb-10 pt-0 px-4 transition-all w-full' id='section-left'>
301<div class='relative'>
302<!-- center align the text -->
303<h3 class='-translate-x-1/2 -translate-y-1/2 absolute font-bold left-1/2 lg:top-32 mb-6 text-5xl text-black text-center top-12 w-full' id='create-account' style='display: none'>Create your free Account</h3>
304<h3 class='-translate-x-1/2 -translate-y-1/2 absolute font-bold left-1/2 lg:top-32 mb-6 text-5xl text-black text-center top-12 w-full' id='login-account'>Already have an account?</h3>
305<img class="w-[80%] mx-auto" src="/assets/smart-tv-login-355278a9bd06d8487a4dfa5d010cc2891edd25197712f2a82981451c0cc14ed3.png" alt="Smart tv login" />
306</div>
307
308</div>
309<div class='bg-white duration-200 flex items-center justify-center lg:px-8 lg:py-24 lg:w-1/2 pb-10 pt-10 px-4 transition-all w-full' id='section-right'>
310<div class='w-full lg:w-[70%] mx-10 lg:mx-0'>
311<div class='clearfix'></div>
312<script>
313  $(document).ready(function() {
314    $(".devise-notice-alerts").delay(3000).fadeOut();
315  })
316</script>
316
317
318<div class='panel-login' style='margin-bottom: 0px !important; padding-bottom: 14px;'>
319<div class='bg-blue-500 flex gap-5 hover:bg-blue-600 hover:px-3 items-center justify-center mx-20 py-3 rounded-full'>
320<a class='!no-underline flex gap-5 mx-5 items-center justify-center text-2xl text-[#ffffffcc] hover:!text-white font-samibold hover:font-bold active' href='#' id='register-form-link'>
321<i class='fa fa-sign-in rotate-180'></i>
322Click here to register
323</a>
324<a class='!no-underline flex gap-5 items-center justify-center text-2xl text-[#ffffffcc] hover:!text-white font-samibold hover:font-bold ' href='#' id='login-form-link' style='display: none'>
325Click here to login
326<i class='fa fa-sign-in'></i>
327</a>
328</div>
329<div class='panel-heading'>
330<hr>
331</div>
332<div class='panel-body'>
333<div class='row'>
334<div class='col-lg-12'>
335<form action='/users' id='register-form' method='post' role='form' style='display: none;'>
336<div class='space-y-5'>
337<div class='mt-2 5'>
338<div class='relative'>
339<svg class='absolute left-3 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='company' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'>
340<path d='M23.16 1H8.84A2.85 2.85 0 0 0 6 3.84V30a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V3.84A2.85 2.85 0 0 0 23.16 1ZM18 29h-4v-4h4Zm6 0h-4v-5a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v5H8V3.84A.84.84 0 0 1 8.84 3h14.32a.84.84 0 0 1 .84.84Z'></path>
341<path d='M20 5a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0V6a1 1 0 0 0-1-1zm0 6a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0v-2a1 1 0 0 0-1-1zm0 6a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0v-2a1 1 0 0 0-1-1zM12 5a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0V6a1 1 0 0 0-1-1zm0 6a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0v-2a1 1 0 0 0-1-1zm0 6a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0v-2a1 1 0 0 0-1-1z'></path>
342</svg>
343<input class='block w-full pl-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='account_name' name='account_name' placeholder='Company Name' type='text'>
344</div>
345<span id='account_name_error'></span>
346</div>
347<div class='mt-2 5'>
348<div class='relative'>
349<svg class='absolute left-3 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='email' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'>
350<path d='M53.42 53.32H10.58a8.51 8.51 0 0 1-8.5-8.5V19.18a8.51 8.51 0 0 1 8.5-8.5h42.84a8.51 8.51 0 0 1 8.5 8.5v25.64a8.51 8.51 0 0 1-8.5 8.5ZM10.58 13.68a5.5 5.5 0 0 0-5.5 5.5v25.64a5.5 5.5 0 0 0 5.5 5.5h42.84a5.5 5.5 0 0 0 5.5-5.5V19.18a5.5 5.5 0 0 0-5.5-5.5Z' fill='#222'></path>
351<path d='M32 38.08a8.51 8.51 0 0 1-5.13-1.71L3.52 18.71a1.5 1.5 0 1 1 1.81-2.39L28.68 34a5.55 5.55 0 0 0 6.64 0l23.35-17.68a1.5 1.5 0 1 1 1.81 2.39L37.13 36.37A8.51 8.51 0 0 1 32 38.08Z' fill='#222'></path>
352<path d='M4.17 49.14a1.5 1.5 0 0 1-1-2.62l18.4-16.41a1.5 1.5 0 0 1 2 2.24L5.17 48.76a1.46 1.46 0 0 1-1 .38zm55.66 0a1.46 1.46 0 0 1-1-.38l-18.4-16.41a1.5 1.5 0 1 1 2-2.24l18.39 16.41a1.5 1.5 0 0 1-1 2.62z' fill='#222'></path>
353</svg>
354<input class='block w-full pl-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='user_email' name='user[email]' placeholder='Email' type='email'>
355</div>
356<span id='user_email_error'></span>
357</div>
358<div class='mt-2 5'>
359<div class='relative'>
360<svg class='absolute left-3 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='User' viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'>
361<rect fill='none' height='256' width='256'></rect>
362<circle class='colorStroke000000 svgStroke' cx='128' cy='96' fill='none' r='64' stroke-miterlimit='10' stroke-width='16' stroke='#000000'></circle>
363<path class='colorStroke000000 svgStroke' d='M30.989,215.99064a112.03731,112.03731,0,0,1,194.02311.002' fill='none' stroke-linecap='round' stroke-linejoin='round' stroke-width='16' stroke='#000000'></path>
364</svg>
365<input class='block w-full pl-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='user_first_name' name='user[first_name]' placeholder='First Name' type='text'>
366</div>
367<span id='user_first_name_error'></span>
368</div>
369<div class='mt-2 5'>
370<div class='relative'>
371<svg class='absolute left-3 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='User' viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'>
372<rect fill='none' height='256' width='256'></rect>
373<circle class='colorStroke000000 svgStroke' cx='128' cy='96' fill='none' r='64' stroke-miterlimit='10' stroke-width='16' stroke='#000000'></circle>
374<path class='colorStroke000000 svgStroke' d='M30.989,215.99064a112.03731,112.03731,0,0,1,194.02311.002' fill='none' stroke-linecap='round' stroke-linejoin='round' stroke-width='16' stroke='#000000'></path>
375</svg>
376<input class='block w-full pl-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='user_last_name' name='user[last_name]' placeholder='Last Name' type='text'>
377</div>
378<span id='user_last_name_error'></span>
379</div>
380<div class='mt-2 5'>
381<div class='relative'>
382<svg class='absolute left-4 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='Password' viewB
382ox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'>
383<path class='color000000 svgShape' d='M24,4H8A4,4,0,0,0,4,8V24a4,4,0,0,0,4,4H24a4,4,0,0,0,4-4V8A4,4,0,0,0,24,4Zm2,20a2,2,0,0,1-2,2H8a2,2,0,0,1-2-2V8A2,2,0,0,1,8,6H24a2,2,0,0,1,2,2ZM19.819,12.421A3.572,3.572,0,0,0,16.4,15H9.6a1,1,0,0,0-1,1v2.579a1,1,0,0,0,2,0V17h1v1.579a1,1,0,0,0,2,0V17h2.8a3.572,3.572,0,1,0,3.419-4.579Zm0,5.158A1.579,1.579,0,1,1,21.4,16,1.581,1.581,0,0,1,19.819,17.579Z' fill='#000000'></path>
384</svg>
385<input autocomplete='off' class='block w-full pl-14 pr-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='user_password' name='user[password]' placeholder='Password (6 characters minimum)' type='password'>
386<button aria-label='Show password' class='absolute right-4 top-1/2 transform -translate-y-1/2 text-gray-500 focus:outline-none' data-password-toggle='user_password' type='button'>
387<i class='fa fa-eye text-3xl'></i>
388</button>
389</div>
390<span id='user_password_error'></span>
391</div>
392<div class='mt-2 5'>
393<div class='relative'>
394<svg class='absolute left-4 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='Password' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'>
395<path class='color000000 svgShape' d='M24,4H8A4,4,0,0,0,4,8V24a4,4,0,0,0,4,4H24a4,4,0,0,0,4-4V8A4,4,0,0,0,24,4Zm2,20a2,2,0,0,1-2,2H8a2,2,0,0,1-2-2V8A2,2,0,0,1,8,6H24a2,2,0,0,1,2,2ZM19.819,12.421A3.572,3.572,0,0,0,16.4,15H9.6a1,1,0,0,0-1,1v2.579a1,1,0,0,0,2,0V17h1v1.579a1,1,0,0,0,2,0V17h2.8a3.572,3.572,0,1,0,3.419-4.579Zm0,5.158A1.579,1.579,0,1,1,21.4,16,1.581,1.581,0,0,1,19.819,17.579Z' fill='#000000'></path>
396</svg>
397<input autocomplete='off' class='block w-full pl-14 pr-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='user_password_confirmation' name='user[password_confirmation' placeholder='Password Confirmation' type='password'>
398<button aria-label='Show password' class='absolute right-4 top-1/2 transform -translate-y-1/2 text-gray-500 focus:outline-none' data-password-toggle='user_password_confirmation' type='button'>
399<i class='fa fa-eye text-3xl'></i>
400</button>
401</div>
402<span id='user_password_confirmation_error'></span>
403</div>
404<div class='honeypot-field' style='position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;'>
405<label for='bot_website_check'>Website</label>
406<input aria-hidden='true' autocomplete='nope' id='bot_website_check' name='website' tabindex='-1' type='text'>
407<label for='bot_url_check'>URL</label>
408<input aria-hidden='true' autocomplete='nope' id='bot_url_check' name='url' tabindex='-1' type='text'>
409<label for='bot_phone_check'>Phone</label>
410<input aria-hidden='true' autocomplete='nope' id='bot_phone_check' name='phone_number' tabindex='-1' type='text'>
411</div>
412<div class='form-group'>
413<input id='recaptcha_token' name='recaptcha_token' type='hidden'>
414</div>
415<div>
416<button class='inline-flex items-center justify-center w-full px-4 py-4 text-3xl font-semibold text-white transition-all duration-200 bg-[#1CB94E] hover:bg[#1CA347] focus:bg[#1CA347] border border-transparent rounded-full focus:outline-none' id='register-submit' name='register-submit' tabindex='4' type='submit'>Register Now</button>
417<div class='text-danger small' id='recaptcha-bot-warning-share' style='display:none; margin-top: 10px; color: red;'>
418<i class='fa fa-exclamation-triangle'></i>
419Bot activity detected. Please refresh the page and try again.
420</div>
421</div>
422<i>
423By clicking on the register button above, I agree to the
424<a class="btn-link" data-target="#terms_of_serviceModal" data-toggle="modal" href="#">Terms Of Service and Privacy Policy
425</a></i>
426</div>
427</form>
428<script>
429  document.addEventListener("DOMContentLoaded", function() {
430    var submitButton = document.getElementById('register-submit');
431    var warningMessage = document.getElementById('recaptcha-bot-warning-share');
432    var recaptchaTokenField = document.getElementById('recaptcha_token');
433    var recaptchaVerified = true;
434    var recaptchaEnabled = false;
435  
436    function loadRecaptcha() {
437      if (typeof grecaptcha === 'undefined') {
438        setTimeout(loadRecaptcha, 100);
439      } else {
440        var siteKey = "6LeVmA4qAAAAAKHRzFw_f-acrPgByUk5_NUfBblQ";
441        if (siteKey) {
442          grecaptcha.ready(function() {
443            grecaptcha.execute(siteKey , {action: 'register'}).then(function(token) {
444              if (recaptchaTokenField) {
445                recaptchaTokenField.value = token;
446                // Verify the token with the backend
447                verifyRecaptchaToken(token);
448              }
449            });
450          });
451        }
452      }
453    }
454  
455    function verifyRecaptchaToken(token) {
456      fetch('/api/v1/recaptcha/verify', {
457        method: 'POST',
458        headers: {
459          'Content-Type': 'application/json',
460        },
461        body: JSON.stringify({ token: token })
462      })
463      .then(function(response) {
464        return response.json();
465      })
466      .then(function(data) {
467        if (data.valid) {
468          recaptchaVerified = true;
469          if (submitButton) {
470            submitButton.disabled = false;
471          }
472          if (warningMessage) {
473            warningMessage.style.display = 'none';
474          }
475        } else {
476          recaptchaVerified = false;
477          if (submitButton) {
478            submitButton.disabled = true;
479          }
480          if (warningMessage) {
481            warningMessage.style.display = 'block';
482          }
483          console.warn('[RECAPTCHA] Verification failed:', data.message);
484        }
485      })
486      .catch(function(error) {
487        console.error('[RECAPTCHA] Error verifying token:', error);
488        // On error, allow submission but let backend handle it
489        recaptchaVerified = true;
490        if (submitButton) {
491          submitButton.disabled = false;
492        }
493      });
494    }
495  
496    if (recaptchaEnabled) {
497      if (submitButton) {
498        submitButton.disabled = true;
499      }
500      loadRecaptcha();
501    }
502  
503    $('[data-password-toggle]', '#register-form').on('click', function() {
504      var input = document.getElementById($(this).data('password-toggle'));
505      var icon = $(this).find('i');
506      if (!input) return;
507      if (input.type === 'password') {
508        input.type = 'text';
509        icon.removeClass('fa-eye').addClass('fa-eye-slash');
510        $(this).attr('aria-label', 'Hide password');
511      } else {
512        input.type = 'password';
513        icon.removeClass('fa-eye-slash').addClass('fa-eye');
514        $(this).attr('aria-label', 'Show password');
515      }
516    });
517  
518    $("#register-form").submit(function(e){
519        var isFormValid = true
520        var account_name = $("#account_name").val()
521        var user_email = $("#user_email").val()
522        var user_first_name = $("#user_first_name").val()
523        var user_last_name = $("#user_last_name").val()
524        var user_password = $("#user_password").val()
525        var user_password_confirmation = $("#user_password_confirmation").val()
526        // / var document_path = $("#community_agreement_url").val()
527        if(account_name == "" || account_name == null){
528            isFormValid = false
529            $('#account_name_error').attr('style','display:inline')
530                .text("Please enter company name")
531                .css("color","red");
532        }else if(account_name.length > 256 || account_name.length < 3) {
533        	isFormValid = false
534            $('#account_name_error').attr('style','display:inline')
535                .text("Please enter company name with minimum 3 characters")
536                .css("color","red");
537        }else if(/[^a-zA-Z0-9,. ]/.test(account_name) == true) {
538            isFormValid = false
539            $('#account_name_error').attr('style','display:inline')
540                .text("Please enter alphanumeric character only")
541                .css("color","red");
542        }else{
543            $('span#account_name_error').text('');
544        }
545  
546        // Updated regex to allow + and other valid email characters
547        var regexEmail = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
548        if(user_email == "" || user_email == null){
549            isFormValid = false
550            $('#user_email_error').attr('style','display:inline')
551                .text("Please enter email")
552                .css("color","red");
553        }
554        else if (!regexEmail.test(user_email) == true) {
555          isFormValid = false
556          $('#user_email_error').attr('style','display:inline')
557              .text("Please enter valid email format")
558              .css("color","red");
559        }
560        else{
561            $('span#user_email_error').text('');
562        }
563  
564        if(user_first_name == "" || user_first_name == null){
565            isFormValid = false
566            $('#user_first_name_error').attr('style','display:inline')
567                .text("Please enter first name")
568                .css("color","red");
569        }else if(user_first_name.length > 256 || user_first_name.length < 2) {
570        	isFormValid = false
571            $('#user_first_name_error').attr('style','display:inline')
572                .text("Please enter first name with minimum 2 characters")
573                .css("color","red");
574        }else if(/[^a-zA-Z0-9 ]/.test(user_first_name) == true) {
575            isFormValid = false
576            $('#user_first_name_error').attr('style','display:inline')
577                .text("Please enter alphanumeric character only")
578                .css("color","red");
579        }else{
580            $('span#user_first_name_error').text('');
581        }
582  
583        if(user_last_name == "" || user_last_name == null){
584            isFormValid = false
585            $('#user_last_name_error').attr('style','display:inline')
586                .text("Please enter last name")
587                .css("color","red");
588        }else if(user_last_name.length > 256 || user_last_name.length < 2) {
589        	isFormValid = false
590            $('#user_last_name_error').attr('style','display:inline')
591                .text("Please enter last name with minimum 2 characters")
592                .css("color","red");
593        }else if(/[^a-zA-Z0-9 ]/.test(user_last_name) == true) {
594            isFormValid = false
595            $('#user_last_name_error').attr('style','display:inline')
596                .text("Please enter alphanumeric character only")
597                .css("color","red");
598        }else{
599            $('span#user_last_name_error').text('');
600        }
601  
602        if(user_password == "" || user_password == null){
603            isFormValid = false
604            $('#user_password_error').attr('style','display:inline')
605                .text("Please enter password")
606                .css("color","red");
607        }else if(user_password.length > 256 || user_password.length < 6) {
608        	isFormValid = false
609            $('#user_password_error').attr('style','display:inline')
610                .text("Please enter password with minimum 6 character")
611                .css("color","red");
612        }else{
613            $('span#user_password_error').text('');
614        }
615  
616        if(user_password_confirmation == "" || user_password_confirmation == null){
617            isFormValid = false
618            $('#user_password_confirmation_error').attr('style','display:inline')
619                .text("Please enter confirmation password")
620                .css("color","red");
621        }else if(user_password != user_password_confirmation ) {
622        	isFormValid = false
623            $('#user_password_confirmation_error').attr('style','display:inline')
624                .text("Confirmation password not macth with given password")
625                .css("color","red");
626        }else{
627            $('span#user_password_confirmation_error').text('');
628        }
629  
630        // Check reCAPTCHA verification
631        if (recaptchaEnabled && !recaptchaVerified) {
632            isFormValid = false;
633            if (warningMessage) {
634                warningMessage.style.display = 'block';
635            }
636        }
637  
638        return isFormValid
639    });
640  
641  });
642</script>
642
643
644<form class="form-signin" id="login-form" style="display: block;" action="/users/sign_in" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="pRazzBNEXvcg+mcjy9n/bRXgVmJz+NDHcvWj5uvJ9zlcenCOpGDmmvro12HOfSLFC/Yp6cHuVEKLsd500ENv/Q==" />
645<div class='space-y-5'>
646<div class='mt-2 5'>
647<div class='relative'>
648<svg class='absolute left-3 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='User' viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'>
649<rect fill='none' height='256' width='256'></rect>
650<circle class='colorStroke000000 svgStroke' cx='128' cy='96' fill='none' r='64' stroke-miterlimit='10' stroke-width='16' stroke='#000000'></circle>
651<path class='colorStroke000000 svgStroke' d='M30.989,215.99064a112.03731,112.03731,0,0,1,194.02311.002' fill='none' stroke-linecap='round' stroke-linejoin='round' stroke-width='16' stroke='#000000'></path>
652</svg>
653<input class='block w-full pl-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='user_login_email' name='user[email]' placeholder='Username' type='email'>
654<span id='login_user_email_error'></span>
655</div>
656</div>
657<div class='mt-2 5'>
658<div class='relative'>
659<svg class='absolute left-4 top-1/2 transform -translate-y-1/2 size-8 text-gray-400' id='Password' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'>
660<path class='color000000 svgShape' d='M24,4H8A4,4,0,0,0,4,8V24a4,4,0,0,0,4,4H24a4,4,0,0,0,4-4V8A4,4,0,0,0,24,4Zm2,20a2,2,0,0,1-2,2H8a2,2,0,0,1-2-2V8A2,2,0,0,1,8,6H24a2,2,0,0,1,2,2ZM19.819,12.421A3.572,3.572,0,0,0,16.4,15H9.6a1,1,0,0,0-1,1v2.579a1,1,0,0,0,2,0V17h1v1.579a1,1,0,0,0,2,0V17h2.8a3.572,3.572,0,1,0,3.419-4.579Zm0,5.158A1.579,1.579,0,1,1,21.4,16,1.581,1.581,0,0,1,19.819,17.579Z' fill='#000000'></path>
661</svg>
662<input autocomplete='off' class='block w-full pl-14 pr-14 p-4 text-black placeholder-gray-500 text-3xl transition-all duration-200 border border-gray-200 rounded-full bg-gray-50 focus:outline-none focus:border-blue-600 focus:bg-white caret-blue-600' id='login_user_password' name='user[password]' placeholder='Password' type='password'>
663<button aria-label='Show password' class='absolute right-4 top-1/2 transform -translate-y-1/2 text-gray-500 focus:outline-none' data-password-toggle='login_user_password' type='button'>
664<i class='fa fa-eye text-3xl'></i>
665</button>
666<span id='login_user_password_error'></span>
667</div>
668</div>
669<div class='form-group'>
670<input id='recaptcha_token' name='recaptcha_token' type='hidden'>
671</div>
672<div>
673<button class='w-full py-4 text-3xl font-semibold text-white transition-all duration-100 bg-blue-500 hover:bg-blue-800 focus:bg-blue-800 border border-transparent rounded-full focus:outline-none' id='login-submit' name='login-submit' tabindex='4' type='submit'>Log In</button>
674</div>
675<div>
676<a class="btn-link text-blue-500 hover:text-blue-800 focus:text-blue-800 float-end" href="/users/password/new">Reset Password</a>
677</div>
678</div>
679</form>
vendor: 74 bytes, lines 679-681
679
680
681<script async defer src='https://www.google.com/recaptcha/api.js?render=
6816LeVmA4qAAAAAKHRzFw_f-acrPgByUk5_NUfBblQ
vendor: 12 bytes, line 681
681'></script>
682<script>
683  document.addEventListener("DOMContentLoaded", function() {
684    function loadRecaptcha() {
685      if (typeof grecaptcha === 'undefined') {
686        setTimeout(loadRecaptcha, 100);
687      } else {
688        var siteKey = "6LeVmA4qAAAAAKHRzFw_f-acrPgByUk5_NUfBblQ";
689        grecaptcha.ready(function() {
690          grecaptcha.execute(siteKey , {action: 'login'}).then(function(token) {
691            document.getElementById('recaptcha_token').value = token;
692          });
693        });
694      }
695    }
696  
697    loadRecaptcha();
698  
699    $('[data-password-toggle]', '#login-form').on('click', function() {
700      var input = document.getElementById($(this).data('password-toggle'));
701      var icon = $(this).find('i');
702      if (!input) return;
703      if (input.type === 'password') {
704        input.type = 'text';
705        icon.removeClass('fa-eye').addClass('fa-eye-slash');
706        $(this).attr('aria-label', 'Hide password');
707      } else {
708        input.type = 'password';
709        icon.removeClass('fa-eye-slash').addClass('fa-eye');
710        $(this).attr('aria-label', 'Show password');
711      }
712    });
713  
714    $("#login-form").submit(function(e){
715        var isFormValid = true;
716        var user_email = $("#user_login_email").val();
717        var user_password = $("#login_user_password").val();
718  
719        var regexEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
720        if(user_email == "" || user_email == null){
721            isFormValid = false;
722            $('#login_user_email_error').attr('style','display:inline')
723                .text("Please enter email")
724                .css("color","red");
725        }
726        else if (!regexEmail.test(user_email) == true) {
727          isFormValid = false
728          $('#login_user_email_error').attr('style','display:inline')
729              .text("Please enter valid email format")
730              .css("color","red");
731        }
732        else{
733            $('span#login_user_email_error').text('');
734        }
735  
736        if(user_password == "" || user_password == null){
737            isFormValid = false;
738            $('#login_user_password_error').attr('style','display:inline')
739                .text("Please enter password")
740                .css("color","red");
741        }else{
742            $('span#login_user_password_error').text('');
743        }
744  
745        return isFormValid;
746    });
747  });
748</script>
748
749
750</div>
751</div>
752</div>
753</div>
754<script>
755  $(function() {
756    // Step 1: Extract the register form logic into a reusable function
757    function showRegisterForm() {
758      $("#register-form-link").css("display", "none");
759      $("#login-form-link").css("display", "flex");
760      $('#login-form-link').removeClass('active');
761      $(this).addClass('active');
762      $("#section-left").toggleClass("transition-reverse-plus");
763      $("#section-right").toggleClass("transition-reverse-minus");
764      $("#login-account").css("display", "none");
765      $("#create-account").css("display", "block");
766    }
767  
768    // Step 2: Extract the login form logic into a reusable function
769    function showLoginForm() {
770      $("#login-form-link").css("display", "none");
771      $("#register-form-link").css("display", "flex");
772      $('#register-form-link').removeClass('active');
773      $(this).addClass('active');
774      $("#section-left").toggleClass("transition-reverse-plus");
775      $("#section-right").toggleClass("transition-reverse-minus");
776      $("#create-account").css("display", "none");
777      $("#login-account").css("display", "block");
778    }
779  
780    // Step 3: Check for source parameter on page load
781    if (new URLSearchParams(window.location.search).get('source') === 'wix') {
782      showRegisterForm();
783    }
784  
785    // Step 4: Update click handlers to use the new functions
786    $('#login-form-link').click(function(e) {
787      showLoginForm();
788      e.preventDefault();
789    });
790  
791    $('#register-form-link').click(function(e) {
792      showRegisterForm();
793      e.preventDefault();
794    });
795  });
796</script>
796
797
798</div>
799</div>
800</div>
801</section>
802</div>
803<div class='modal fade' id='terms_of_serviceModal' role='dialog'>
804<div class='modal-dialog' style='width: 90%;'>
805<!-- Modal content -->
806<div class='modal-content'>
807<div class='modal-header'>
808<button class='close' data-dismiss='modal' type='button'>×</button>
809<h4 class='modal-title'>Terms Of Service and Privacy Policy</h4>
810</div>
811<div class='modal-body'>
812<p>
813This privacy policy sets out how SignStream uses and protects any information that you give SignStream when you use any of SignStream’s websites.
814</p>
815<p>
816SignStream is committed to ensuring that your privacy is protected. Should we ask you to provide certain information by which you can be identified when using this website, then you can be assured that it will only be used in accordance with this privacy statement.
817</p>
818<p>
819This privacy policy has been compiled to better serve those who are concerned with how their ‘Personally identifiable information’ (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Also, we have amended this policy to be compliant with General Data Protection Regulation (“GDPR” – Regulation (EU) 2016/679), for the benefits of our European customers and partners (resellers). Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
820</p>
821<p>
822SignStream may change this policy from time to time by updating this page. You should check this page from time to time to ensure that you are happy with any changes. This policy is effective from 23-May-2018.
823</p>
824<p>
825What personal information do we collect from the people that visit our blogs, websites or apps?
826</p>
827<p>
828When ordering or visiting or registering on our sites, as appropriate, you may be asked to enter your name, email address, company name or other details to help you with your experience.
829</p>
830<p>
831When do we collect information?
832</p>
833<p>
834We collect information from you when you register on our site or enter information on our site. Also, we collect information when you visit our websites.
835</p>
836<p>
837What we collect?
838</p>
839<p>
840We may collect the following information:
841<br>
842• Name and job title.
843<br>
844• Contact information including email address.
845<br>
846• Demographic information such as postcode, preferences and interests.
847<br>
848• Other information relevant to customer surveys and/or offers (such as the pages in our websites which you have visited).
849</p>
850<p>
851How do we use your information?
852</p>
853<p>
854We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the websites, or use certain other site features in the following ways:
855<br>
856• Internal record keeping.
857<br>
858• We may use the information to improve our products and services.
859<br>
860• To personalize user’s experience and to allow us to deliver the type of content and product offerings in which you are most interested.
861<br>
862• To allow us to better service you in responding to your customer service requests.
863<br>
864• From time to time, we may also use your information to contact you for your order, subscription, market research or other products, services and news. We may contact you by email, phone, fax or mail. We may use the information to customize the website according to your interests.
865</p>
866<p>
867If you want to inquire us about anything which is related to the privacy policy or to your personal data, please feel free to inquire our European representative in Portugal, who acts as the focal point of contact for any GDPR issue. You can do that by sending an email to [email protected].
868</p>
869<p>
870Security: How do we protect visitor information?
871</p>
872<p>
873We are committed to ensuring that your information is secure. In order to prevent unauthorized access or disclosure, we have put in place suitable physical, electronic and managerial procedures to safeguard and secure the information we collect online.
874</p>
875<p>
876We do not use vulnerability scanning and/or scanning to PCI standards.
877</p>
878<p>
879We do collect credit card information, but did not know PCI compliant scans are now required.
880</p>
881<p>
882We do not use Malware Scanning.
883</p>
884<p>
885We use an SSL certificate, unless you are a white labeled partner (reseller).
886</p>
887<p>
888Do we use ‘cookies’?
889</p>
890<p>
891Yes. Cookies are small files that a site or its service provider transfers to your computer’s hard drive through your Web browser (if you allow) that enables the site’s or service provider’s systems to recognize your browser and capture and remember certain information. For instance, we use cookies to help us remember and process the pages which you have visited in our websites, in order to better understand your preferences. They are also used to help us understand your interests based on previous or current site activity, which enables us to provide you with improved services. We also use cookies to help us compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We use both session cookies (cookies that are deleted once you close your browser) and application cookies (cookies that stays on your PC until you delete the browser’s cache).
892</p>
893<p>
894We use cookies to:
895<br>
896• Understand and save user’s preferences for future visits.
897<br>
898• Provide better services based on your interests.
899</p>
900<p>
901You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser (like Internet Explorer) settings. Each browser is a little different, so look at your browser’s Help menu to learn the correct way to modify your cookies.
902</p>
903<p>
904If users disable cookies in their browser:
905</p>
906<p>
907If you disable cookies off, some features will be disabled It will turn off some of the features that make your site experience more efficient and some of our services will not function properly.
908</p>
909<p>
910Third-party disclosure
911</p>
912<p>
913We do not sell, trade, or otherwise transfer to outside parties your personal identifiable information.
914</p>
915<p>
916Third-party links
917</p>
918<p>
919We do not include or offer third-party products or services on our website, except integrations with 3rd parties (such as integrations with facial recognition apps, barcode scanner, RFID reader, sensors, 3rd party apps, etc.).
920</p>
921<p>
922Our websites (www.SignStream.com and digital.signage.software) may contain links to other websites of interest. However, once you have used these links to leave our sites, you should note that we do not have any control over that other website. Therefore, we cannot be responsible for the protection and privacy of any information which you provide whilst visiting such sites and such sites are not governed by this privacy statement. You should exercise caution and look at the privacy statement applicable to the website in question.
923</p>
924<p>
925COPPA (Children Online Privacy Protection Act)
926</p>
927<p>
928When it comes to the collection of personal information from children under 13, the Children’s Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, the nation’s consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children’s privacy and safety online.
929<br>
930We do not specifically market to children under 18.
931</p>
932<p>
933Fair Information Practices
934</p>
935<p>
936The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information.
937</p>
938<p>
939In order to be in line with Fair Information Practices and GDPR we will take the following responsive action, should a data breach occur:
940</p>
941<p>
942We will notify the users via email within 3 business days and will notify the European Union relevant officer within 24 hours from the moment we know of such a data breach.
943</p>
944<p>
945We also agree to the Individual Redress Principle, which requires that individuals have a right to pursue legally enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors.
946</p>
947<p>
948CAN SPAM Act
949</p>
950<p>
951The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations.
952</p>
953<p>
954We collect your email address in order to:
955<br>
956• Send information, respond to inquiries, and/or other requests or questions.
957<br>
958• Process orders and to send information and updates pertaining to orders.
959<br>
960• We may also send you additional information related to your product and/or service.
961<br>
962• Market to our mailing list or continue to send emails to our clients after the original transaction has occurred.
963</p>
964<p>
965To be in accordance with CANSPAM we agree to the following:
966</p>
967<p>
968If at any time you would like to unsubscribe from receiving future emails, you can email us at [email protected] and we will promptly remove you from ALL correspondence.
969</p>
970<p>
971Controlling your personal information
972</p>
973<p>
974You may choose to restrict or delete (the right “to be forgotten”) the collection or use of your personal information by writing to or emailing us at [email protected].
975We will not sell, distribute or lease your personal information to third parties unless we have your permission or are required by law to do so. We may use your personal information to send you promotional information about third parties which we think you may find interesting if you tell us that you wish this to happen.
976</p>
977<p>
978You may request details of personal information which we hold about you under the Data General Data Protection Regulation (“GDPR” – Regulation (EU) 2016/679). If you would like a copy of the information held on you please write to [email protected].
979<br>
980If you believe that any information we are holding on you is incorrect or incomplete, please write to or email us as soon as possible, at the above address. We will promptly correct any information found to be incorrect.
981</p>
982<p>
983Contacting Us
984</p>
985<p>
986If there are any questions regarding this privacy policy you may contact us using the information below.
987</p>
988<p>
989www.SignStream.com
990<br>
991[email protected]
992<br>
993</p>
994<p>
995Terms and Conditions
996</p>
997<p>
998The following agreement is between SignStream Ltd. (“SignStream”) and you (“Client”). By completing the registration process, Client agrees to be bound by this Agreement when signing up for SignStream service.
999</p>
1000<p>
1001I. Description of Service
1002</p>
1003<p>
1004SignStream hosts an online digital signage application service, for broadcasting signs to screens connected to the Internet. This agreement defines terms and conditions for using SignStream service.
1005</p>
1006<p>
1007II. Proprietary Rights
1008</p>
1009<p>
1010SignStream hereby grants Client a non-exclusive, non-transferable application service for the sole purpose of evaluation during a free trial period. The Client acknowledges that all Title & Rights for the software and services provided and all intellectual property associated with it is the sole property of SignStream Ltd.
1011</p>
1012<p>
1013III. Data Processing
1014</p>
1015<p>
1016SignStream may keep records of:
1017<br>
1018• Name and job title.
1019<br>
1020• Contact information including email address.
1021<br>
1022• Demographic information such as postcode, preferences and interests.
1023<br>
1024• Other information relevant to customer surveys and/or offers (such as the pages in our websites which you have visited).
1025<br>
1026The records will be kept for good, unless the Client asks, by writing, SignStream to be forgotten (to be deleted).
1027</p>
1028<p>
1029SignStream may use the information we collect from the Client when the Client registers, makes a purchase, signs up for SignStream’s newsletter, responds to a survey or marketing communication, surfs the websites, or uses certain other site features in the following ways and purposes:
1030<br>
1031• Internal record keeping.
1032<br>
1033• SignStream may use the information to improve SignStream’s products and services.
1034<br>
1035• To personalize user’s experience and to allow SignStream to deliver the type of content and product offerings in which the Client is most interested.
1036<br>
1037• To allow SignStream to better service the Client in responding to the Client’s customer service requests.
1038<br>
1039• From time to time, SignStream may also use the Client’s information to contact the Client for his order, subscription, market research or other products, services and news. SignStream may use the information to customize the website according to the Client’s interests.
1040</p>
1041<p>
1042IV. Security
1043</p>
1044<p>
1045As a data controller (as defined in the General Data Protection Regulation, “GDPR” – Regulation (EU) 2016/679), SignStream is committed to ensuring that the Client’s information is secured. In order to prevent unauthorized access or disclosure, SignStream has put in place suitable physical, electronic and managerial procedures to safeguard and secure the information it collects online and offline.
1046</p>
1047<p>
1048For any GDPR issue (personal data), please feel free to inquire our European representative in Portugal, who acts as the focal point of contact for any GDPR issue. You can do that by sending an email to [email protected].
1049</p>
1050<p>
1051V. Data Controller and Data Processor
1052<br>
1053SignStream as a data controller and data processor is obliged to:
1054<br>
1055• Impose confidentiality obligations on persons authorized to process the personal data.
1056<br>
1057• Ensure the security of the personal data.
1058<br>
1059• Return or destroy the personal data at the end of the processing arrangement, unless it is required to SignStream as mentioned in clause no. III above.
1060</p>
1061<p>
1062VI. Partner as Data Processor
1063<br>
1064In case the Client becomes a SignStream’s partner (reseller), the Client obliges to:
1065<br>
1066• Process personal data only on SignStream’s system;
1067<br>
1068• Impose confidentiality obligations on persons authorized to process the personal data.
1069<br>
1070• Ensure the security of the personal data.
1071<br>
1072• Comply with additional rules restricting the appointment of sub-processors.
1073<br>
1074• Assist SignStream to comply with data subjects’ rights.
1075<br>
1076• Assist SignStream to comply with data security requirements.
1077<br>
1078• Return or destroy the personal data at the end of the processing arrangement, unless it is required to the Client as mentioned in clause no. III above.
1079<br>
1080• Provide SignStream with all information necessary for SignStream to demonstrate compliance to GDPR.
1081<br>
1082• Notify SignStream immediately if it believes that any instructions from SignStream are illegal.
1083</p>
1084<p>
1085VII. Limited Liability
1086<br>
1087Client expressly agrees that use of SignStream application is at Client’s sole risk. Neither SignStream, its employees, affiliates, agents, third-party information providers, resellers or the like, warrant that SignStream service will not be interrupted or error free; nor do they make any warranty as to the results that may be obtained from the use of the service or as to the accuracy, reliability or content of any information or service contained in or provided through SignStream, unless otherwise expressly stated in this Agreement.
1088<br>
1089Under no circumstances, including negligence, shall SignStream, its offices, agents or any one else involved in creating, producing or distributing Digital Signage service be liable for any direct, indirect, incidental, special or consequential damages that result from the use of or inability to use SignStream service; or that results from mistakes, omissions, interruptions, deleti
1089on of files, errors, defects, delays in operation, or transmission or any failure of performance, whether or not limited to acts of God, communication failure, theft, destruction or unauthorized access to SignStream records, programs or services. Client hereby acknowledges that this paragraph shall apply to all content on SignStream servers.
1090<br>
1091Notwithstanding the above, Client’s exclusive remedies for all damages, losses and causes of actions whether in contract or misdemeanor including negligence or otherwise, shall not exceed the aggregate dollar amount which Client paid during the term of this Agreement.
1092<br>
1093IN THE EVENT THAT, NOTWITHSTANDING THE TERMS OF THIS AGREEMENT, SignStream IS FOUND LIABLE DAMAGES, SUCH SHALL NOT EXCEED FIFTY US DOLLARS ($50).
1094</p>
1095<p>
1096VIII. Indemnification
1097<br>
1098Client agrees that it shall defend, indemnify and hold SignStream harmless from any and all demands, liabilities, losses, costs and claims, including attorneys’ fees, (“Liabilities”) asserted against SignStream, its agents, its customers and employees, that may arise or result from any service provided or performed or agreed to be performed or any product sold by Client, its agents, employees or assignees.
1099</p>
1100<p>
1101This agreement represents the complete agreement and understanding between SignStream and Client and supersedes any other written or oral agreement. Upon notice published online, SignStream may modify these terms and conditions, amplify them, and/or modify the prices, as well as discontinue or change the services offered. Submission of Client’s account order shall constitute the Client’s complete acceptance of these Terms and Conditions.
1102</p>
1103<p>
1104IX. Termination
1105</p>
1106<p>
1107SignStream may terminate the license granted herein at any time and for any reason.
1108</p>
1109<p>
1110X. Governing Law
1111</p>
1112<p>
1113This Agreement shall be governed and construed in accordance with the laws of the United Stated.
1114</p>
1115</div>
1116<div class='modal-footer'></div>
1117</div>
1118</div>
1119</div>
1120
1121
1122</body>
1123</html>
1124<script>
1125  $(function() {
1126    // Step 1: Extract the register form logic into a reusable function
1127    function showRegisterForm() {
1128     $("#register-form").delay(100).fadeIn(100);
1129      $("#login-form").fadeOut(100);
1130      $('#login-form-link').removeClass('active');
1131      $(this).addClass('active');
1132      $("#append-created-text").innerHTML = "Don't have an account?";
1133    }
1134  
1135    // Step 2: Extract the login form logic into a reusable function
1136    function showLoginForm() {
1137       $("#login-form").delay(100).fadeIn(100);
1138      $("#register-form").fadeOut(100);
1139      $('#register-form-link').removeClass('active');
1140      $(this).addClass('active');
1141    }
1142  
1143    // Step 3: Check for source parameter on page load
1144    if (new URLSearchParams(window.location.search).get('source') === 'wix') {
1145      showRegisterForm();
1146    }
1147  
1148    // Step 4: Update click handlers to use the new functions
1149    $('#login-form-link').click(function(e) {
1150      showLoginForm();
1151      e.preventDefault();
1152    });
1153  
1154    $('#register-form-link').click(function(e) {
1155      showRegisterForm();
1156      e.preventDefault();
1157    });
1158  });
1159</script>
vendor: 1 bytes, line 1159
1159

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.