PageSourceSearch

https://www.electricnet.com/usersession/login?referringlink=header&docUrl=NA

html electricnet.com collected 2026-10-02 11:07:27 UTC 24,761 bytes, 539 lines download raw bytes

1
2
3<!DOCTYPE html>
4<html>
5<head>
6    
7    <link rel="shortcut icon" type="image/x-icon" href="https://vertassets.blob.core.windows.net/sites/favicons/vm-favicon.ico"/>
8    <title></title>
9    <link rel="preconnect" href="https://munchkin.marketo.net" crossorigin/>
10    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
11    <link rel="dns-prefetch" href="https://cdn.onesignal.com" crossorigin/>
12    <link rel="dns-prefetch" href="https://www.googletagmanager.com" crossorigin/>
13    <link rel="dns-prefetch" href="https://vertassets.blob.core.windows.net/" crossorigin/>
14    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Arimo|Roboto+Condensed|Oswald|Oxygen|Open+Sans"/>
15    
16
17
18<meta charset="utf-8" />
19<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2" />
20<meta http-equiv="X-UA-Compatible" content="IE=edge" />
21
22<meta name="title" />
23<meta name="description" />
24    <meta name="robots" content="noindex,nofollow" />
25    <meta property="og:image" content="https://vertassets.blob.core.windows.net/sites/logos/enet.png">
26<link rel="canonical" href="https://www.electricnet.com/usersession/login" />
27
28    
28<script src="https://code.jquery.com/jquery-3.5.1.min.js"
29            integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
30            crossorigin="anonymous"></script>
30
31    
32        
32<script src="/js/site.js?v=q9fURCl8Kszc5J2rZjAaVnpdpxmiXsi4IJhy1C-9fNw"></script>
vendor: 114 bytes, lines 32-36
32
33    
34    
35
36    <script async src="https://www.google.com/recaptcha/enterprise.js?onload=loadRecaptcha&render=
366LdVEKAqAAAAAF9Ccz45TNTikV2iWeLmS4KzN2El
vendor: 35 bytes, lines 36-37
36&trustedtypes=true"></script>
37    
37<script type="text/javascript">
38        window['__RECAPTCHA_PUBLIC_KEY__'] = '6LdVEKAqAAAAAF9Ccz45TNTikV2iWeLmS4KzN2El';
39
40        window['__OPT_IN_CONFIRMATION_PAGE__'] = '';
41    </script>
41
42
43    
44
45        <link rel="stylesheet" href="/css/lib.css?v=_c4rzDumxhYdb0MZ6QnCtnjJH4swr6ivicSO31k7D1w">
46        <link rel="stylesheet" href="/css/themes/default.css?v=J22WVGe3Xt6A3UtKc29SY-inBT7Qp67QoBa28EeF5IQ" />
47        <link rel="stylesheet" href="/css/gdpr-consent.css" />
48    
49    
50    
50<script type="text/javascript">
51        window["__currentOnline__"]= 'ENET';        
52        window["__mainPopUpFormId__"] = '';
53        window.googletag = window.googletag || {};
54        window.googletag.cmd = window.googletag.cmd || [];
55    </script>
55
56    
57
58    
59    
60<!-- AdDaptive Pixel -->
61<script>
62(function () {
63    var tagUrl = "s.dpmsrv.com/dpm_2ef94c5be6406817949fc2211a9cdf209bdd4a1b.min.js";
64
65    function hasAdvertisingConsent() {
66        var match = document.cookie.match(/(?:^|; )cookieyes-consent=([^;]*)/);
67        if (!match) { return false; }
68        var value = decodeURIComponent(match[1]);
69        return /(?:^|,)advertisement:yes(?:,|$)/.test(value);
70    }
71
72    function loadPixel() {
73        var h = document.getElementsByTagName('head')[0];
74        var s = document.createElement('script');
75        var sc = 'https:' == document.location.protocol ? 'https://' : 'http://';
76        s.type = 'text/javascript';
77        s.async = true;
78        s.src = sc + tagUrl;
79        h.appendChild(s);
80    }
81
82    if (hasAdvertisingConsent()) {
83        loadPixel();
84        return;
85    }
86
87    document.addEventListener('cookieyes_consent_update', function onUpdate() {
88        if (hasAdvertisingConsent()) {
89            document.removeEventListener('cookieyes_consent_update', onUpdate);
90            loadPixel();
91        }
92    });
93
94    // CookieYes is installed via a GTM tag here, so its cookie may not exist yet when
95    // this script runs (it renders before GTM's bootstrap). Poll briefly as a fallback
96    // in case this account's CookieYes version doesn't dispatch cookieyes_consent_update.
97    var attempts = 0;
98    var poll = window.setInterval(function () {
99        attempts += 1;
100        if (hasAdvertisingConsent()) {
101            window.clearInterval(poll);
102            loadPixel();
103        } else if (attempts >= 40) {
104            window.clearInterval(poll);
105        }
106    }, 500);
107})();
108</script>
108
109<!-- End AdDaptive Pixel -->
110
111    
111<script src="https://go.lifescienceconnect.com/js/lsc-enhance.js" defer></script>
111
112
113
114    
115        <!-- Google Tag Manager -->
116        
116<script>
vendor: 379 bytes, lines 116-120
116(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
117            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
118            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
119            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
120            })(window,document,'script','dataLayer','
120GTM-NQK6T2M
vendor: 3 bytes, line 120
120');
120</script>
120
121        <!-- End Google Tag Manager -->
122    <!-- Initialize GetSiteControl var-->
123    
123<script>
124        window.gsc = window.gsc || function () {
125            (gsc.q = gsc.q || []).push(arguments);
126        };
127    </script>
127
128</head>
129<body>
130    
131    <!-- Google Tag Manager (noscript) -->
vendor: 73 bytes, lines 131-132
131
132    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
132GTM-NQK6T2M
vendor: 95 bytes, lines 132-134
132"  
133    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
134    
134<!-- End Google Tag Manager (noscript) -->
135
136
137
138
139<div class="container-fluid vm-full-width-header-container">
140    <div class="container vm-header-container">
141        <div class="row pt-2 align-items-end vert-header">
142            <div class="col-sm-auto col-md">
143                <a href="/">
144                    <img src="https://vertassets.blob.core.windows.net/sites/logos/enet.png" class="mb-1"/>
145                </a>
146            </div>
147            <div class="col-auto text-sm-right ml-sm-auto pr-0">
148                    <div class="vm-logged-out-container d-print-none">
149                        <a data-ga-event data-ga-category="Sign-In" data-ga-action="Site-Request" data-ga-label="NA" href="/usersession/login?referringlink=header&amp;docUrl=NA">
150                            Log In
151                        </a> or
152                        <a data-ga-event data-ga-category="Register" data-ga-action="Site-Start" data-ga-label="NA" href="/user/new?referringlink=header&amp;docUrl=NA">
153                            Subscribe
154                        </a>
155                    </div>
156            </div>
157        </div>
158    </div>
159</div>
160<header class="vert-nav">
161    <nav class="navbar navbar-dark bg-dark navbar-expand-md">
162        <div class="container vm-nav-container pr-0 pl-0">
163            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
164                <span class="navbar-toggler-icon text-white"></span>
165            </button>
166            <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
167                <div class="navbar-nav mr-auto">
168                            <a class="nav-item nav-link" href="/resource/electricnet-product-showcase" target="">Product Showcase</a>
169                            <a class="nav-item nav-link" href="/resource/news" target="">News</a>
170                </div>
171            </div>
172            <form method="get" class="form-inline nav-search pr-0" action="/search">
173                <input class="form-control-sm" name="keyword" type="search" maxlength="250" placeholder="Search" aria-label="Search"/>
174                <button type="submit" class="btn-sm btn-dark">
175                    <i class="fas fa-search fa-sm"></i>
176                </button>
177            </form>
178        </div>
179    </nav>
180</header>
181
182
183
184<div class="container vm-main-container">
185    <main role="main">
186        
187<div class="ml-4 mr-4">
188    <h1 class="vm-alt-header">Log in</h1>
189    <div class="row no-gutters m-4">
190        <h2>Welcome Back to the ElectricNet Community</h2>
191        <div class="col-md-12 mt-2">
192            <form method="post" class="login-form vm-form-alt" action="/usersession/login">
193                <p>
194                    Not yet a member of ElectricNet? <a href="/user/new">Subscribe</a> today.
195                </p>
196                <div class="row">
197    <div class="col-lg-6">
198
199        <input type="hidden" id="ReferringLink" name="ReferringLink" value="header" />
200        <input type="hidden" id="DocUrl" name="DocUrl" value="NA" />
201        <input type="hidden" value="false" data-val="true" data-val-required="The ExistingEmail field is required." id="ExistingEmail" name="ExistingEmail" />
202        <div class="row">
203            <div class="form-group col">
204                <label for="Email">E-mail</label>
205                <input type="text" class="form-control" maxlength="100" data-val="true" data-val-maxlength="The field E-mail must be a string or array type with a maximum length of &#x27;100&#x27;." data-val-maxlength-max="100" data-val-regex="The Email field is not a valid email address." data-val-regex-pattern="^(?!.*([!#$%&amp;&#x27;*&#x2B;-/=?^_`{|])\1)[A-Za-z0-9]&#x2B;([!#$%&amp;&#x27;*&#x2B;-/=?^_`{|]?[A-Za-z0-9]&#x2B;)*@[A-Za-z0-9]&#x2B;([.-]?[A-Za-z0-9]&#x2B;)*\.[A-Za-z]{2,}$" data-val-required="The E-mail field is required." id="Email" name="Email" value="" />
206                <span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>
207            </div>
208        </div>
209        <div class="row">
210            <div class="form-group col">
211                <label for="Password">Password</label>
212                <input type="password" class="form-control" maxlength="100" data-val="true" data-val-maxlength="The field Password must be a string or array type with a maximum length of &#x27;100&#x27;." data-val-maxlength-max="100" data-val-required="The Password field is required." id="Password" name="Password" />
213                <span class="field-validation-valid" data-valmsg-for="Password" data-valmsg-replace="true"></span>
214            </div>
215        </div>
216        <div class="row">
217            <div class="form-group col">
218                <small>
219                    <a data-ga-event data-ga-category="Sign-In" data-ga-action="Login-ResetPswd" data-ga-label="" href="/password/forgotpassword">
220                        Forgot your password?
221                    </a>
222                </small>
223            </div>
224        </div>
225    </div>
226    <div class="align-self-center d-none d-lg-block ml-3 mr-3">
227        <div class="vm-vert-line-lg ml-2"></div>
228        <p class="h5">
229            <em>or</em>
230        </p>
231        <div class="vm-vert-line-lg ml-2"></div>
232    </div>
233    <div class="col-8 col-lg-4 py-4">
234        <div class="small mb-4">... or you can:</div>
235        <div class="vm-oauth-providers d-flex flex-row">
236    <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=Google">
237        <i class="fa fa-google" aria-hidden="true"></i>
238    </a>
239
240</div>
241    </div>
242</div>
243
244                <div class="row">
245                    <div class="col">
246                        <button type="submit" name="save" id="save" class="btn vm-button vm-alt-button mt-2">
247                            <span class="vm-button-text pr-2">Login</span>
248                        </button>
249                    </div>
250                </div>
251            <input name="__RequestVerificationToken" type="hidden" value="CfDJ8L4Tx_kqk_hOqQdWmadsynQjjnHJTy9mUZ6A3ZtzxKUtZKR5vXOqcIoTsSfRWcF6sQV-_fpVtQOpqs2cSHIQiFDpyyOXFBwv-qUje7lMxAJjTamQDBQ-8gQFbSjR2PgMXfz80elCF0bk5Jva1w57a3o" /></form>
252        </div>
253    </div>
254</div>
255    </main>
256</div>
257
258
259<footer class="border-top vert-footer d-print-none">
260    <div class="container">
261        <div class="row">
262                <div class="col-sm">
263
264                        <h5 class="text-dark text-primary">About Us</h5>
265                        <ul class="list-unstyled">
266                                <li>
267                                    <a href="/static/about" >Contact ElectricNet</a>
268                                </li>
269                                <li>
270                                    <a href="/doc/guest-expert-article-guidelines-0001" >Editorial Submission Guidelines</a>
271                                </li>
272                        </ul>
273                </div>
274        </div>
275    </div>
276
277    <div class="container small pb-3 text-center">
278        <a href="/static/copyright">Copyright</a>
279        &copy; 1996-2026 <a href="https://www.vertmarkets.com">VertMarkets, Inc.</a>
280        All Rights Reserved.
281        <a href="/static/legal">Terms of Use</a>.
282        <a href="/static/privacy">Privacy Statement</a>.
283        <a href="/user-request">Subscriber Request Form</a>.
284        <a href="/user-request?privacyType=ccpa">Don't sell my information</a>
285    </div>
286</footer>
287
288
289
290<!-- Google Tag Manager -->
291<script type="text/javascript">
292    let score = '';
293    let gtmEvents = [];
294    
295    function loadRecaptcha () {
296        if (vertLib && typeof vertLib.site.Common.getRecaptchaToken === 'function') {
297            // when load and library is loaded then execute           
298                vertLib.site.Common.setupGTM(dataLayer);
299            vertLib.site.Common.getRecaptchaToken('ga').then(function (token) {
300                return $.post('/recaptcha', { token: token });
301            }).then(function (response) {
302                score = response.score.toString();
303                    gtmEvents = [{"$type":"Vert.Sites.Web.Models.Analytics.Events.GtmUserDataEvent, Vert.Sites.Web","event":"page_view","event_category":"","event_action":"","event_source":"server_side","portal":"ENET"}] || [];
304                    vertLib.site.Common.logGTMEvents(gtmEvents, score, dataLayer);
305            });
306        }
307    }
308</script>
308
309
310<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
310
311
312<!-- End Google Tag Manager -->
313    
314 
314<script type="text/javascript">
315    window["munchkinUrl"] = 'https://app-ab30.marketo.com';
316    window["munchkinFormId"] ='1067'
317    window["munchkinInstanceId"] = '075-NVC-086';
318</script>
318
319
320<script>
321    window.addEventListener('load', initMunchkin);
322    
323    function initMunchkin() {
324        if (vertLib && typeof vertLib.site.Common.associateMunchkin === 'function') {
325            vertLib.site.Common.associateMunchkin({ Email: window['__USER_EMAIL__'], UserId: window['__USER_ID__'] });                
326        }
327    }
328</script>
328
329
330<div id="userSubscriptionFormModal" class="modal">
331    <div class="modal-dialog vm-modal">
332        <div class="modal-content">
333            <div class="modal-header">
334                <img src="https://vertassets.blob.core.windows.net/sites/logos/enet.png" class="mt-3" />
335                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
336            </div>
337            <div class="modal-body">
338                <div id="userSubscriptionContainer">
339    <div id="areaOfFocus" class="mt-3 mx-4 mb-4"></div>
340    <div id="login" class="mt-3 mx-4 mb-4"></div>
341</div>
342
343<script id="areaOfFocusTemplate" type="text/x-template">
344    {{@if (it.message)}}
345        <div class="alert alert-success d-flex flex-row p-2 m-0">
346            <i class="fa fa-info mr-2 mt-1"></i>
347            <div>{{it.message | safe}}</div>
348        </div>
349    {{/if}}
350    <form method="post" action="/user-subscription/update" id="areaOfFocusForm" class="vm-form-alt">
351        {{@if (it.showUserInfoFields)}}
352            <div>
353                <div class="pt-3">Please tell us more about you so that we can customize our newsletters to your specific interests:</div>
354                <div class="row">
355                    <div class="form-group col-md-6">
356                        <label for="JobTitle">Job Title</label>
357                        <input type="text" class="form-control form-control-sm" id="JobTitle" name="JobTitle" value="{{ it.jobTitle }}" />
358                    </div>
359                    <div class="form-group col-md-6">
360                        <label for="Company">Company</label>
361                        <input type="text" class="form-control form-control-sm" id="Company" name="Company" value="{{ it.company }}" />
362                    </div>
363                </div>
364            </div>
365        {{/if}}
366        {{@if (it.subscriptions.length)}}
367            <div class="vm-checkbox-container primary">
368                 <div class="form-check-inline p-2 input-container form-check">
369                    {{@if (it.subscriptions[0].isSelected)}}
370                        <input type="checkbox" name="subscriptions" checked="checked" value="{{it.subscriptions[0].id}}" class="form-check-input"/> <label class="form-check-label">{{it.subscriptions[0].text}}</label>
371                    {{#else}}
372                        <input type="checkbox" name="subscriptions" value="{{it.subscriptions[0].id}}" class="form-check-input"/> <label class="form-check-label">{{it.subscriptions[0].text}}</label>
373                    {{/if}}
374                </div>
375            </div>
376        {{/if}}
377        {{@if (it.personas.length)}}
378            <div class="vm-checkbox-container">                
379                <div class="p-4 input-container">
380                    <div class="topics-blurb">What topics interest you?  (Check all that apply.)</div>
381                    {{@each(it.personas) => pers, index}}                        
382                        {{@if (index%2 === 0)}}
383                            <div class="row pl-3 vm-checkbox-container">
384                        {{/if}}
385                         <div class="col-md-6 text-capitalize form-check">
386                            {{@if (pers.isSelected)}}
387                                <input type="checkbox" name="personas" checked="checked" value="{{pers.id}}" class="form-check-input"/> <label class="form-check-label">{{pers.text}}</label>
388                            {{#else}}
389                                <input type="checkbox" name="personas" value="{{pers.id}}" class="form-check-input"/> <label class="form-check-label">{{pers.text}}</label>
390                            {{/if}}
391                        </div>
392                        {{@if (index%2 !== 0 && index > 0)}}
393                            </div>
394                        {{/if}}                       
395                    {{/each}}
396                    {{@if (it.personas.length%2 === 0)}}
397                        </div>
398                    {{/if}}
399                </div>
400            </div>
401        {{#elif (it.subscriptions.length)}}
402            <div class="pt-3">You may also be interested in these industry newsletters:</div>
403            <div class="p-4 input-container">
404                {{@each(it.subscriptions) => sub, index}}
405                    {{@if (index > 0)}}
406                        {{@if (index%2 !== 0)}}
407                            <div class="row pl-3 vm-checkbox-container">
408                        {{/if}}
409                        <div class="col-md-6 text-capitalize form-check">
410                            {{@if (sub.isSelected)}}
411                                <input type="checkbox" name="subscriptions" checked="checked" value="{{sub.id}}" class="form-check-input"/> <label class="form-check-label">{{sub.text}}</label>
412                            {{#else}}
413                                <input type="checkbox" name="subscriptions" value="{{sub.id}}" class="form-check-input"/> <label class="form-check-label">{{sub.text}}</label>
414                            {{/if}}
415                        </div>                        
416                        {{@if (index%2 === 0)}}
417                            </div>                        
418                        {{/if}}
419                    {{/if}}
420                {{/each}}
421                {{@if (it.subscriptions.length%2 === 0)}}
422                    </div>
423                {{/if}}
424                <button id="selectAll" type="button" class="btn btn-link pl-0 pt-2">Select All</button>
425            </div>            
426        {{/if}}
427        <div class="row justify-content-end">
428            <div class="col-12">
429                <button type="submit" class="btn vm-alt-button mt-4">
430                    <span class="vm-button-text">Finish</span>
431                </button>
432            </div>
433        </div>
434        <input type="hidden" name="OnlineId" id="OnlineId" value="{{it.onlineId}}" />
435    </form>
436</script>
436
437
438<script id="loginTemplate" type="text/x-template">
439    {{@if (it.message)}}
440        {{@if (it.hasError)}}
441            <div class="alert alert-danger d-flex flex-row p-2 m-0">
442        {{ #else }}
443            <div class="alert alert-warning d-flex flex-row p-2 m-0">
444        {{/if}}
445            <i class="fa fa-info mr-2 mt-1"></i>
446            <div>{{it.message | safe}}</div>
447        </div>
448    {{/if}}
449    <form method="post" action="/user-subscription/login" id="loginForm" class="vm-form-alt">
450        <div class="row">
451            <div class="form-group col">
452                <label for="Email">Email</label>
453                <input type="text" class="form-control form-control" id="Email" name="Email" maxlength="100" value="{{it.email}}" />
454            </div>
455        </div>
456        <div class="row">
457            <div class="form-group col">
458                <label for="Password">Password</label>
459                <input type="password" class="form-control form-control" id="Password" name="Password" />
460            </div>
461        </div>
462        <div class="row">
463            <div class="form-group col">
464                <small>
465                    <a href="/password/forgotpassword">Forgot your password?</a>
466                </small>
467            </div>
468        </div>
469        
470        <div class="vm-oauth-providers">
471            <span class="small mb-4">... or you can:</span>
472            <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=Google&source=user-sub">
473                <i class="fa fa-google" aria-hidden="true"></i>
474            </a>
475            <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=Facebook&source=user-sub">
476                <i class="fa fa-facebook" aria-hidden="true"></i>
477            </a>
478            <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=LinkedIn&source=user-sub">
479                <i class="fa fa-linkedin" aria-hidden="true"></i>
480            </a>
481        </div>
482
483        <div class="row justify-content-end">
484            <div class="col-12">
485                <button type="submit" class="btn vm-alt-button mt-4">
486                    <span class="vm-button-text">Sign In</span>
487                </button>
488            </div>
489        </div>        
490        
491        <input type="hidden" name="JobTitle" id="JobTitle" value="{{it.jobTitle}}" />
492        <input type="hidden" name="Company" id="Company" value="{{it.company}}" />
493        <input type="hidden" name="OnlineId" id="OnlineId" value="{{it.onlineId}}" />
494        <input type="hidden" name="Privacy" id="OnlineId" value="{{it.privacy}}" />
495    </form>
496</script>
496
497
498<script>
499    window.userSubSettings = undefined;
500</script>
500
501            </div>
502        </div>
503    </div>
504</div>
505
506
507
508<script id="modalTemplate" type="text/x-template">
509    <div class="modal fade" id="{{ it.id }}" role="dialog" tabindex="-1" data-keyboard="false" data-backdrop="{{ (it.backdrop || 'true') }}">
510        <div class="modal-dialog vm-modal">
511            <div class="modal-content">
512                {{ @if(it.title) }}
513                <div class="modal-header no-gutters justify-content-between">
514                    <div class="col">
515                        <h2>{{ it.title | safe }}</h2>
516                    </div>
517                    <div class="col-auto">
518                        <div class="vm-ajax-loader"><span></span></div>
519                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
520                    </div>
521                </div>
522                {{ /if }}
523                <div class="modal-body">{{ it.body | safe }}</div>
524                {{ @if (it.hideFooter !== true) }}
525                <div class="modal-footer">
526                    <div class="row justify-content-end">
527                        <div class="col-12">
528                            <button type="button" data-dismiss="modal" class="btn vm-button">Close</button>
529                        </div>
530                    </div>
531                </div>
532                {{ /if }}
533            </div>
534        </div>
535    </div>
536</script>
536
537
538</body>
539</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.