PageSourceSearch

https://www.textileweb.com/hub/bucket/products

html textileweb.com collected 2026-10-02 18:42:09 UTC 34,817 bytes, 894 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>Products Documents on Textile Web</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" content="Products Documents on Textile Web" />
23<meta name="description" content="Current Products documents from Textile Web." />
24    <meta name="robots" content="noindex" />
25    <meta property="og:image" content="https://vertassets.blob.core.windows.net/sites/logos/texw.png">
26<link rel="canonical" href="https://www.textileweb.com/hub/bucket/products" />
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=
366LcLaKAqAAAAABSYggTjhciseHb2va5CrWEG1Hz5
vendor: 35 bytes, lines 36-37
36&trustedtypes=true"></script>
37    
37<script type="text/javascript">
38        window['__RECAPTCHA_PUBLIC_KEY__'] = '6LcLaKAqAAAAABSYggTjhciseHb2va5CrWEG1Hz5';
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__"]= 'TEXW';        
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-KB9LXSX
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-KB9LXSX
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/texw.png" alt="Products Documents on Textile Web" 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="/hub/bucket/products" 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<div class="container-fluid p-1 vm-top-ads-container overflow-hidden d-print-none">
183    <div class="row mobile-hide justify-content-center">
184        <div class="col-auto">
185            
186
187<!-- Adds PubAds Section -->
188<script>
189    googletag.cmd.push(function () {
190        googletag
191        .defineSlot('/52748101/textileweb/texw-leaderboard', [728,90], 'Ad_e2aac896-dfcd-48e5-baf8-078bc3ff5b72')
192        .addService(googletag.pubads());
193        googletag.pubads().enableLazyLoad({
194            fetchMarginPercent: 50,
195            renderMarginPercent: 0,
196            mobileScaling: 2.0,
197        });
198        googletag.pubads().enableSingleRequest();
199        googletag.enableServices();
200    });
201</script>
201
202<div id="Ad_e2aac896-dfcd-48e5-baf8-078bc3ff5b72" class="ad ">
203        
203<script>
204        googletag.cmd.push(function () { googletag.display("Ad_e2aac896-dfcd-48e5-baf8-078bc3ff5b72"); });
205        </script>
205
206    
207</div>
208
209
210        </div>
211        <div class="col-auto d-none d-lg-block">
212            
213
214<!-- Adds PubAds Section -->
215<script>
216    googletag.cmd.push(function () {
217        googletag
218        .defineSlot('/52748101/textileweb/texw-earpiece', [230,90], 'Ad_c7baea70-1548-42a3-8972-7ae1796fec40')
219        .addService(googletag.pubads());
220        googletag.pubads().enableLazyLoad({
221            fetchMarginPercent: 50,
222            renderMarginPercent: 0,
223            mobileScaling: 2.0,
224        });
225        googletag.pubads().enableSingleRequest();
226        googletag.enableServices();
227    });
228</script>
228
229<div id="Ad_c7baea70-1548-42a3-8972-7ae1796fec40" class="ad ">
230        
230<script>
231        googletag.cmd.push(function () { googletag.display("Ad_c7baea70-1548-42a3-8972-7ae1796fec40"); });
232        </script>
232
233    
234</div>
235
236
237        </div>
238    </div>
239</div>
240
241
242<div class="container vm-main-container">
243    <main role="main">
244        
245<div class="row no-gutters pt-3 vm-hub-page">
246    <div class="vm-layout-content-primary">
247        <h1 class="vm-section-header">Products</h1>
248        <ol class="m-0 pt-3 pl-3"  start="1">
249        </ol>
250
251        <div class="row justify-content-center">
252            <pager></pager>
253        </div>
254    </div>
255
256    <div class="vm-layout-content-secondary  pr-1 pl-4">
257        <div class="row justify-content-center">
258    <div class="row mb-3">
259        <div class="vm-content-item col-sm-12">
260            
261
262<!-- Adds PubAds Section -->
263<script>
264    googletag.cmd.push(function () {
265        googletag
266        .defineSlot('/52748101/textileweb/texw-medium-rectangle', [300,250], 'Ad_bdb5c485-1069-4494-a138-59b231ff34ae')
267        .addService(googletag.pubads());
268        googletag.pubads().enableLazyLoad({
269            fetchMarginPercent: 50,
270            renderMarginPercent: 0,
271            mobileScaling: 2.0,
272        });
273        googletag.pubads().enableSingleRequest();
274        googletag.enableServices();
275    });
276</script>
276
277<div id="Ad_bdb5c485-1069-4494-a138-59b231ff34ae" class="ad ">
278        
278<script>
279        document.addEventListener("DOMContentLoaded", function () { 
280        vertLib.site.Common.setupObserverIntersection("#Ad_bdb5c485-1069-4494-a138-59b231ff34ae", () => {
281                googletag.cmd.push(function () {
282                    googletag.display("Ad_bdb5c485-1069-4494-a138-59b231ff34ae");
283                    });
284                });   
285        });        
286        </script>
286
287    
288</div>
289
290
291        </div>
292    </div>
293
294
295        <div class="row mb-3">
296            <div class="vm-content-item col-sm-12">
297                
298
299<!-- Adds PubAds Section -->
300<script>
301    googletag.cmd.push(function () {
302        googletag
303        .defineSlot('/52748101/textileweb/texw-medium-rectangle', [300,250], 'Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4')
304        .addService(googletag.pubads());
305        googletag.pubads().enableLazyLoad({
306            fetchMarginPercent: 50,
307            renderMarginPercent: 0,
308            mobileScaling: 2.0,
309        });
310        googletag.pubads().enableSingleRequest();
311        googletag.enableServices();
312    });
313</script>
313
314<div id="Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4" class="ad ">
315        
315<script>
316        document.addEventListener("DOMContentLoaded", function () { 
317        vertLib.site.Common.setupObserverIntersection("#Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4", () => {
318                googletag.cmd.push(function () {
319                    googletag.display("Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4");
320                    });
321                });   
322        });        
323        </script>
323
324    
325</div>
326
327
328            </div>
329        </div>
330</div>
331        
332<div class="row mobile-hide justify-content-center">
333    <div class="col-auto pb-3">
334        
335
336<!-- Adds PubAds Section -->
337<script>
338    googletag.cmd.push(function () {
339        googletag
340        .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9')
341        .addService(googletag.pubads());
342        googletag.pubads().enableLazyLoad({
343            fetchMarginPercent: 50,
344            renderMarginPercent: 0,
345            mobileScaling: 2.0,
346        });
347        googletag.pubads().enableSingleRequest();
348        googletag.enableServices();
349    });
350</script>
350
351<div id="Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9" class="ad ">
352        
352<script>
353        document.addEventListener("DOMContentLoaded", function () { 
354        vertLib.site.Common.setupObserverIntersection("#Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9", () => {
355                googletag.cmd.push(function () {
356                    googletag.display("Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9");
357                    });
358                });   
359        });        
360        </script>
360
361    
362</div>
363
364
365    </div>
366    <div class="col-auto pb-3">
367        
368
369<!-- Adds PubAds Section -->
370<script>
371    googletag.cmd.push(function () {
372        googletag
373        .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_59011af4-c98c-481f-a52a-803d2de22cdc')
374        .addService(googletag.pubads());
375        googletag.pubads().enableLazyLoad({
376            fetchMarginPercent: 50,
377            renderMarginPercent: 0,
378            mobileScaling: 2.0,
379        });
380        googletag.pubads().enableSingleRequest();
381        googletag.enableServices();
382    });
383</script>
383
384<div id="Ad_59011af4-c98c-481f-a52a-803d2de22cdc" class="ad ">
385        
385<script>
386        document.addEventListener("DOMContentLoaded", function () { 
387        vertLib.site.Common.setupObserverIntersection("#Ad_59011af4-c98c-481f-a52a-803d2de22cdc", () => {
388                googletag.cmd.push(function () {
389                    googletag.display("Ad_59011af4-c98c-481f-a52a-803d2de22cdc");
390                    });
391                });   
392        });        
393        </script>
393
394    
395</div>
396
397
398    </div>
399</div>
400<div class="row mobile-hide justify-content-center">
401    <div class="col-auto pb-3">
402        
403
404<!-- Adds PubAds Section -->
405<script>
406    googletag.cmd.push(function () {
407        googletag
408        .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0')
409        .addService(googletag.pubads());
410        googletag.pubads().enableLazyLoad({
411            fetchMarginPercent: 50,
412            renderMarginPercent: 0,
413            mobileScaling: 2.0,
414        });
415        googletag.pubads().enableSingleRequest();
416        googletag.enableServices();
417    });
418</script>
418
419<div id="Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0" class="ad ">
420        
420<script>
421        document.addEventListener("DOMContentLoaded", function () { 
422        vertLib.site.Common.setupObserverIntersection("#Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0", () => {
423                googletag.cmd.push(function () {
424                    googletag.display("Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0");
425                    });
426                });   
427        });        
428        </script>
428
429    
430</div>
431
432
433    </div>
434    <div class="col-auto pb-3">
435        
436
437<!-- Adds PubAds Section -->
438<script>
439    googletag.cmd.push(function () {
440        googletag
441        .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_41b301c3-c70f-431d-b726-43465957669d')
442        .addService(googletag.pubads());
443        googletag.pubads().enableLazyLoad({
444            fetchMarginPercent: 50,
445            renderMarginPercent: 0,
446            mobileScaling: 2.0,
447        });
448        googletag.pubads().enableSingleRequest();
449        googletag.enableServices();
450    });
451</script>
451
452<div id="Ad_41b301c3-c70f-431d-b726-43465957669d" class="ad ">
453        
453<script>
454        document.addEventListener("DOMContentLoaded", function () { 
455        vertLib.site.Common.setupObserverIntersection("#Ad_41b301c3-c70f-431d-b726-43465957669d", () => {
456                googletag.cmd.push(function () {
457                    googletag.display("Ad_41b301c3-c70f-431d-b726-43465957669d");
458                    });
459                });   
460        });        
461        </script>
461
462    
463</div>
464
465
466    </div>
467</div>
468<div class="row mobile-hide justify-content-center">
469    <div class="col-auto pb-3">
470        
471
472<!-- Adds PubAds Section -->
473<script>
474    googletag.cmd.push(function () {
475        googletag
476        .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519')
477        .addService(googletag.pubads());
478        googletag.pubads().enableLazyLoad({
479            fetchMarginPercent: 50,
480            renderMarginPercent: 0,
481            mobileScaling: 2.0,
482        });
483        googletag.pubads().enableSingleRequest();
484        googletag.enableServices();
485    });
486</script>
486
487<div id="Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519" class="ad ">
488        
488<script>
489        document.addEventListener("DOMContentLoaded", function () { 
490        vertLib.site.Common.setupObserverIntersection("#Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519", () => {
491                googletag.cmd.push(function () {
492                    googletag.display("Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519");
493                    });
494                });   
495        });        
496        </script>
496
497    
498</div>
499
500
501    </div>
502    <div class="col-auto pb-3">
503        
504
505<!-- Adds PubAds Section -->
506<script>
507    googletag.cmd.push(function () {
508        googletag
509        .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_c6db556b-da83-479b-b57c-fe4beca497de')
510        .addService(googletag.pubads());
511        googletag.pubads().enableLazyLoad({
512            fetchMarginPercent: 50,
513            renderMarginPercent: 0,
514            mobileScaling: 2.0,
515        });
516        googletag.pubads().enableSingleRequest();
517        googletag.enableServices();
518    });
519</script>
519
520<div id="Ad_c6db556b-da83-479b-b57c-fe4beca497de" class="ad ">
521        
521<script>
522        document.addEventListener("DOMContentLoaded", function () { 
523        vertLib.site.Common.setupObserverIntersection("#Ad_c6db556b-da83-479b-b57c-fe4beca497de", () => {
524                googletag.cmd.push(function () {
525                    googletag.display("Ad_c6db556b-da83-479b-b57c-fe4beca497de");
526                    });
527                });   
528        });        
529        </script>
529
530    
531</div>
532
533
534    </div>
535</div>
536
537    </div>
538</div>
539
540    </main>
541</div>
542
543
544<footer class="border-top vert-footer d-print-none">
545    <div class="container">
546        <div class="row">
547                <div class="col-sm">
548
549                        <h5 class="text-dark text-primary">About Us</h5>
550                        <ul class="list-unstyled">
551                                <li>
552                                    <a href="/static/about" >Contact TextileWeb</a>
553                                </li>
554                                <li>
555                                    <a href="/doc/guest-expert-article-guidelines-0001&#x9;" >Editorial Submission Guidelines</a>
556                                </li>
557                        </ul>
558                </div>
559        </div>
560    </div>
561        <div class="container pb-3">
562            <div class="d-print-none row no-gutters justify-content-center">
563                <div class="d-none d-md-block col-auto">
564                    
565
566<!-- Adds PubAds Section -->
567<script>
568    googletag.cmd.push(function () {
569        googletag
570        .defineSlot('/52748101/textileweb/texw-leaderboard', [728,90], 'Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00')
571        .addService(googletag.pubads());
572        googletag.pubads().enableLazyLoad({
573            fetchMarginPercent: 50,
574            renderMarginPercent: 0,
575            mobileScaling: 2.0,
576        });
577        googletag.pubads().enableSingleRequest();
578        googletag.enableServices();
579    });
580</script>
580
581<div id="Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00" class="ad ">
582        
582<script>
583        document.addEventListener("DOMContentLoaded", function () { 
584        vertLib.site.Common.setupObserverIntersection("#Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00", () => {
585                googletag.cmd.push(function () {
586                    googletag.display("Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00");
587                    });
588                });   
589        });        
590        </script>
590
591    
592</div>
593
594
595                </div>
596                <div class="d-none d-md-block col-auto pl-2">
597                    
598
599<!-- Adds PubAds Section -->
600<script>
601    googletag.cmd.push(function () {
602        googletag
603        .defineSlot('/52748101/textileweb/texw-earpiece', [230,90], 'Ad_71dac201-b303-44a3-8c93-c81f3db50a9f')
604        .addService(googletag.pubads());
605        googletag.pubads().enableLazyLoad({
606            fetchMarginPercent: 50,
607            renderMarginPercent: 0,
608            mobileScaling: 2.0,
609        });
610        googletag.pubads().enableSingleRequest();
611        googletag.enableServices();
612    });
613</script>
613
614<div id="Ad_71dac201-b303-44a3-8c93-c81f3db50a9f" class="ad ">
615        
615<script>
616        document.addEventListener("DOMContentLoaded", function () { 
617        vertLib.site.Common.setupObserverIntersection("#Ad_71dac201-b303-44a3-8c93-c81f3db50a9f", () => {
618                googletag.cmd.push(function () {
619                    googletag.display("Ad_71dac201-b303-44a3-8c93-c81f3db50a9f");
620                    });
621                });   
622        });        
623        </script>
623
624    
625</div>
626
627
628                </div>
629            </div>
630        </div>
631
632    <div class="container small pb-3 text-center">
633        <a href="/static/copyright">Copyright</a>
634        &copy; 1996-2026 <a href="https://www.vertmarkets.com">VertMarkets, Inc.</a>
635        All Rights Reserved.
636        <a href="/static/legal">Terms of Use</a>.
637        <a href="/static/privacy">Privacy Statement</a>.
638        <a href="/user-request">Subscriber Request Form</a>.
639        <a href="/user-request?privacyType=ccpa">Don't sell my information</a>
640    </div>
641</footer>
642
643
644
645<!-- Google Tag Manager -->
646<script type="text/javascript">
647    let score = '';
648    let gtmEvents = [];
649    
650    function loadRecaptcha () {
651        if (vertLib && typeof vertLib.site.Common.getRecaptchaToken === 'function') {
652            // when load and library is loaded then execute           
653                vertLib.site.Common.setupGTM(dataLayer);
654            vertLib.site.Common.getRecaptchaToken('ga').then(function (token) {
655                return $.post('/recaptcha', { token: token });
656            }).then(function (response) {
657                score = response.score.toString();
658                    gtmEvents = [{"$type":"Vert.Sites.Web.Models.Analytics.Events.GtmUserDataEvent, Vert.Sites.Web","event":"page_view","event_category":"","event_action":"","event_source":"server_side","portal":"TEXW"}] || [];
659                    vertLib.site.Common.logGTMEvents(gtmEvents, score, dataLayer);
660            });
661        }
662    }
663</script>
663
664
665<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
665
666
667<!-- End Google Tag Manager -->
668    
669 
669<script type="text/javascript">
670    window["munchkinUrl"] = 'https://app-ab30.marketo.com';
671    window["munchkinFormId"] ='1067'
672    window["munchkinInstanceId"] = '075-NVC-086';
673</script>
673
674
675<script>
676    window.addEventListener('load', initMunchkin);
677    
678    function initMunchkin() {
679        if (vertLib && typeof vertLib.site.Common.associateMunchkin === 'function') {
680            vertLib.site.Common.associateMunchkin({ Email: window['__USER_EMAIL__'], UserId: window['__USER_ID__'] });                
681        }
682    }
683</script>
683
684
685<div id="userSubscriptionFormModal" class="modal">
686    <div class="modal-dialog vm-modal">
687        <div class="modal-content">
688            <div class="modal-header">
689                <img src="https://vertassets.blob.core.windows.net/sites/logos/texw.png" alt="Products Documents on Textile Web" class="mt-3" />
690                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
691            </div>
692            <div class="modal-body">
693                <div id="userSubscriptionContainer">
694    <div id="areaOfFocus" class="mt-3 mx-4 mb-4"></div>
695    <div id="login" class="mt-3 mx-4 mb-4"></div>
696</div>
697
698<script id="areaOfFocusTemplate" type="text/x-template">
699    {{@if (it.message)}}
700        <div class="alert alert-success d-flex flex-row p-2 m-0">
701            <i class="fa fa-info mr-2 mt-1"></i>
702            <div>{{it.message | safe}}</div>
703        </div>
704    {{/if}}
705    <form method="post" action="/user-subscription/update" id="areaOfFocusForm" class="vm-form-alt">
706        {{@if (it.showUserInfoFields)}}
707            <div>
708                <div class="pt-3">Please tell us more about you so that we can customize our newsletters to your specific interests:</div>
709                <div class="row">
710                    <div class="form-group col-md-6">
711                        <label for="JobTitle">Job Title</label>
712                        <input type="text" class="form-control form-control-sm" id="JobTitle" name="JobTitle" value="{{ it.jobTitle }}" />
713                    </div>
714                    <div class="form-group col-md-6">
715                        <label for="Company">Company</label>
716                        <input type="text" class="form-control form-control-sm" id="Company" name="Company" value="{{ it.company }}" />
717                    </div>
718                </div>
719            </div>
720        {{/if}}
721        {{@if (it.subscriptions.length)}}
722            <div class="vm-checkbox-container primary">
723                 <div class="form-check-inline p-2 input-container form-check">
724                    {{@if (it.subscriptions[0].isSelected)}}
725                        <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>
726                    {{#else}}
727                        <input type="checkbox" name="subscriptions" value="{{it.subscriptions[0].id}}" class="form-check-input"/> <label class="form-check-label">{{it.subscriptions[0].text}}</label>
728                    {{/if}}
729                </div>
730            </div>
731        {{/if}}
732        {{@if (it.personas.length)}}
733            <div class="vm-checkbox-container">                
734                <div class="p-4 input-container">
735                    <div class="topics-blurb">What topics interest you?  (Check all that apply.)</div>
736                    {{@each(it.personas) => pers, index}}                        
737                        {{@if (index%2 === 0)}}
738                            <div class="row pl-3 vm-checkbox-container">
739                        {{/if}}
740                         <div class="col-md-6 text-capitalize form-check">
741                            {{@if (pers.isSelected)}}
742                                <input type="checkbox" name="personas" checked="checked" value="{{pers.id}}" class="form-check-input"/> <label class="form-check-label">{{pers.text}}</label>
743                            {{#else}}
744                                <input type="checkbox" name="personas" value="{{pers.id}}" class="form-check-input"/> <label class="form-check-label">{{pers.text}}</label>
745                            {{/if}}
746                        </div>
747                        {{@if (index%2 !== 0 && index > 0)}}
748                            </div>
749                        {{/if}}                       
750                    {{/each}}
751                    {{@if (it.personas.length%2 === 0)}}
752                        </div>
753                    {{/if}}
754                </div>
755            </div>
756        {{#elif (it.subscriptions.length)}}
757            <div class="pt-3">You may also be interested in these industry newsletters:</div>
758            <div class="p-4 input-container">
759                {{@each(it.subscriptions) => sub, index}}
760                    {{@if (index > 0)}}
761                        {{@if (index%2 !== 0)}}
762                            <div class="row pl-3 vm-checkbox-container">
763                        {{/if}}
764                        <div class="col-md-6 text-capitalize form-check">
765                            {{@if (sub.isSelected)}}
766                                <input type="checkbox" name="subscriptions" checked="checked" value="{{sub.id}}" class="form-check-input"/> <label class="form-check-label">{{sub.text}}</label>
767                            {{#else}}
768                                <input type="checkbox" name="subscriptions" value="{{sub.id}}" class="form-check-input"/> <label class="form-check-label">{{sub.text}}</label>
769                            {{/if}}
770                        </div>                        
771                        {{@if (index%2 === 0)}}
772                            </div>                        
773                        {{/if}}
774                    {{/if}}
775                {{/each}}
776                {{@if (it.subscriptions.length%2 === 0)}}
777                    </div>
778                {{/if}}
779                <button id="selectAll" type="button" class="btn btn-link pl-0 pt-2">Select All</button>
780            </div>            
781        {{/if}}
782        <div class="row justify-content-end">
783            <div class="col-12">
784                <button type="submit" class="btn vm-alt-button mt-4">
785                    <span class="vm-button-text">Finish</span>
786                </button>
787            </div>
788        </div>
789        <input type="hidden" name="OnlineId" id="OnlineId" value="{{it.onlineId}}" />
790    </form>
791</script>
791
792
793<script id="loginTemplate" type="text/x-template">
794    {{@if (it.message)}}
795        {{@if (it.hasError)}}
796            <div class="alert alert-danger d-flex flex-row p-2 m-0">
797        {{ #else }}
798            <div class="alert alert-warning d-flex flex-row p-2 m-0">
799        {{/if}}
800            <i class="fa fa-info mr-2 mt-1"></i>
801            <div>{{it.message | safe}}</div>
802        </div>
803    {{/if}}
804    <form method="post" action="/user-subscription/login" id="loginForm" class="vm-form-alt">
805        <div class="row">
806            <div class="form-group col">
807                <label for="Email">Email</label>
808                <input type="text" class="form-control form-control" id="Email" name="Email" maxlength="100" value="{{it.email}}" />
809            </div>
810        </div>
811        <div class="row">
812            <div class="form-group col">
813                <label for="Password">Password</label>
814                <input type="password" class="form-control form-control" id="Password" name="Password" />
815            </div>
816        </div>
817        <div class="row">
818            <div class="form-group col">
819                <small>
820                    <a href="/password/forgotpassword">Forgot your password?</a>
821                </small>
822            </div>
823        </div>
824        
825        <div class="vm-oauth-providers">
826            <span class="small mb-4">... or you can:</span>
827            <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=Google&source=user-sub">
828                <i class="fa fa-google" aria-hidden="true"></i>
829            </a>
830            <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=Facebook&source=user-sub">
831                <i class="fa fa-facebook" aria-hidden="true"></i>
832            </a>
833            <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=LinkedIn&source=user-sub">
834                <i class="fa fa-linkedin" aria-hidden="true"></i>
835            </a>
836        </div>
837
838        <div class="row justify-content-end">
839            <div class="col-12">
840                <button type="submit" class="btn vm-alt-button mt-4">
841                    <span class="vm-button-text">Sign In</span>
842                </button>
843            </div>
844        </div>        
845        
846        <input type="hidden" name="JobTitle" id="JobTitle" value="{{it.jobTitle}}" />
847        <input type="hidden" name="Company" id="Company" value="{{it.company}}" />
848        <input type="hidden" name="OnlineId" id="OnlineId" value="{{it.onlineId}}" />
849        <input type="hidden" name="Privacy" id="OnlineId" value="{{it.privacy}}" />
850    </form>
851</script>
851
852
853<script>
854    window.userSubSettings = undefined;
855</script>
855
856            </div>
857        </div>
858    </div>
859</div>
860
861
862
863<script id="modalTemplate" type="text/x-template">
864    <div class="modal fade" id="{{ it.id }}" role="dialog" tabindex="-1" data-keyboard="false" data-backdrop="{{ (it.backdrop || 'true') }}">
865        <div class="modal-dialog vm-modal">
866            <div class="modal-content">
867                {{ @if(it.title) }}
868                <div class="modal-header no-gutters justify-content-between">
869                    <div class="col">
870                        <h2>{{ it.title | safe }}</h2>
871                    </div>
872                    <div class="col-auto">
873                        <div class="vm-ajax-loader"><span></span></div>
874                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
875                    </div>
876                </div>
877                {{ /if }}
878                <div class="modal-body">{{ it.body | safe }}</div>
879                {{ @if (it.hideFooter !== true) }}
880                <div class="modal-footer">
881                    <div class="row justify-content-end">
882                        <div class="col-12">
883                            <button type="button" data-dismiss="modal" class="btn vm-button">Close</button>
884                        </div>
885                    </div>
886                </div>
887                {{ /if }}
888            </div>
889        </div>
890    </div>
891</script>
891
892
893</body>
894</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.