GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 089109...ca4c48 )
by Günter
12s
created

valid-hostname.php ➔ hostname()   C

Complexity

Conditions 15
Paths 22

Size

Total Lines 68
Code Lines 32

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 15
eloc 32
nc 22
nop 5
dl 0
loc 68
rs 5.7335
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/**
4
 * This file is part of the php-valid-hostname library.
5
 *
6
 * (c) Gunter Grodotzki <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE file
9
 * that was distributed with this source code.
10
 */
11
12
namespace AfriCC\Valid;
13
14
if (!defined('VALID_HOSTNAME_OK')) {
15
    define('VALID_HOSTNAME_OK', 2);
16
    define('VALID_HOSTNAME_ERROR_INVALID', 3);
17
    define('VALID_HOSTNAME_ERROR_LEADING_HYPHEN', 7);
18
    define('VALID_HOSTNAME_ERROR_TRAILING_HYPHEN', 8);
19
    define('VALID_HOSTNAME_ERROR_DISALLOWED', 9);
20
    define('VALID_HOSTNAME_ERROR_NOTPUBLIC', 10);
21
    define('VALID_HOSTNAME_ERROR_NODNS', 11);
22
}
23
24
function hostname($string, $public = true, $dns = false, $allow_glob = false, &$errno = null)
25
{
26
    $string = mb_strtolower($string, 'UTF-8');
27
28
    $hostname_ascii = idn_to_ascii($string, 0, INTL_IDNA_VARIANT_2003);
29
    $hostname_utf8  = idn_to_utf8($string, 0, INTL_IDNA_VARIANT_2003);
30
31
    // lets verify it converted correctly
32
    // this will also verify:
33
    // * label length
34
    // * empty labels
35
    // * domain length
36
    if ($hostname_ascii === false || $hostname_ascii !== idn_to_ascii($hostname_utf8, 0, INTL_IDNA_VARIANT_2003) || $hostname_ascii === '') {
37
        $errno = VALID_HOSTNAME_ERROR_INVALID;
38
        return false;
39
    }
40
41
    $labels_ascii = explode('.', $hostname_ascii);
42
    $labels_utf8  = explode('.', $hostname_utf8);
43
44
    foreach ($labels_ascii as $n => $label) {
45
46
        // optionally allow globs
47
        if ($allow_glob && $label === '*') {
48
            continue;
49
        }
50
51
        // label is not allowed to start or end with hyphen
52
        if ($labels_utf8[$n]{0} === '-') {
53
            $errno = VALID_HOSTNAME_ERROR_LEADING_HYPHEN;
54
            return false;
55
        }
56
57
        if (mb_substr($labels_utf8[$n], -1, 1, 'UTF-8') === '-') {
58
            $errno = VALID_HOSTNAME_ERROR_TRAILING_HYPHEN;
59
            return false;
60
        }
61
62
        // label must only contain 0-9, a-z or -_
63
        // hotfix: temporarily allow underscore, ideally only subdomains are allowed to have underscores
64
        if (!preg_match('/^([a-z0-9_](-*[a-z0-9_])*)$/', $label)) {
65
            $errno = VALID_HOSTNAME_ERROR_DISALLOWED;
66
            return false;
67
        }
68
    }
69
70
    // check if domain is in the public domain
71
    if ($public) {
72
        // at least two labels are required (SLD + TLD)
73
        if (substr_count($hostname_ascii, '.') === 0) {
74
            $errno = VALID_HOSTNAME_ERROR_NOTPUBLIC;
75
            return false;
76
        }
77
78
        if (!tld(substr(strrchr($hostname_ascii, '.'), 1))) {
79
            $errno = VALID_HOSTNAME_ERROR_NOTPUBLIC;
80
            return false;
81
        }
82
    }
83
84
    // check for dns
85
    if ($dns && gethostbyname($hostname_ascii . '.') === $hostname_ascii . '.') {
86
        $errno = VALID_HOSTNAME_ERROR_NODNS;
87
        return false;
88
    }
89
90
    return true;
91
}
92
93
function tld($tld)
94
{
95
    $tlds = [
96
        'aaa' => true,
97
        'aarp' => true,
98
        'abarth' => true,
99
        'abb' => true,
100
        'abbott' => true,
101
        'abbvie' => true,
102
        'abc' => true,
103
        'able' => true,
104
        'abogado' => true,
105
        'abudhabi' => true,
106
        'ac' => true,
107
        'academy' => true,
108
        'accenture' => true,
109
        'accountant' => true,
110
        'accountants' => true,
111
        'aco' => true,
112
        'active' => true,
113
        'actor' => true,
114
        'ad' => true,
115
        'adac' => true,
116
        'ads' => true,
117
        'adult' => true,
118
        'ae' => true,
119
        'aeg' => true,
120
        'aero' => true,
121
        'aetna' => true,
122
        'af' => true,
123
        'afamilycompany' => true,
124
        'afl' => true,
125
        'africa' => true,
126
        'ag' => true,
127
        'agakhan' => true,
128
        'agency' => true,
129
        'ai' => true,
130
        'aig' => true,
131
        'aigo' => true,
132
        'airbus' => true,
133
        'airforce' => true,
134
        'airtel' => true,
135
        'akdn' => true,
136
        'al' => true,
137
        'alfaromeo' => true,
138
        'alibaba' => true,
139
        'alipay' => true,
140
        'allfinanz' => true,
141
        'allstate' => true,
142
        'ally' => true,
143
        'alsace' => true,
144
        'alstom' => true,
145
        'am' => true,
146
        'americanexpress' => true,
147
        'americanfamily' => true,
148
        'amex' => true,
149
        'amfam' => true,
150
        'amica' => true,
151
        'amsterdam' => true,
152
        'analytics' => true,
153
        'android' => true,
154
        'anquan' => true,
155
        'anz' => true,
156
        'ao' => true,
157
        'aol' => true,
158
        'apartments' => true,
159
        'app' => true,
160
        'apple' => true,
161
        'aq' => true,
162
        'aquarelle' => true,
163
        'ar' => true,
164
        'arab' => true,
165
        'aramco' => true,
166
        'archi' => true,
167
        'army' => true,
168
        'arpa' => true,
169
        'art' => true,
170
        'arte' => true,
171
        'as' => true,
172
        'asda' => true,
173
        'asia' => true,
174
        'associates' => true,
175
        'at' => true,
176
        'athleta' => true,
177
        'attorney' => true,
178
        'au' => true,
179
        'auction' => true,
180
        'audi' => true,
181
        'audible' => true,
182
        'audio' => true,
183
        'auspost' => true,
184
        'author' => true,
185
        'auto' => true,
186
        'autos' => true,
187
        'avianca' => true,
188
        'aw' => true,
189
        'aws' => true,
190
        'ax' => true,
191
        'axa' => true,
192
        'az' => true,
193
        'azure' => true,
194
        'ba' => true,
195
        'baby' => true,
196
        'baidu' => true,
197
        'banamex' => true,
198
        'bananarepublic' => true,
199
        'band' => true,
200
        'bank' => true,
201
        'bar' => true,
202
        'barcelona' => true,
203
        'barclaycard' => true,
204
        'barclays' => true,
205
        'barefoot' => true,
206
        'bargains' => true,
207
        'baseball' => true,
208
        'basketball' => true,
209
        'bauhaus' => true,
210
        'bayern' => true,
211
        'bb' => true,
212
        'bbc' => true,
213
        'bbt' => true,
214
        'bbva' => true,
215
        'bcg' => true,
216
        'bcn' => true,
217
        'bd' => true,
218
        'be' => true,
219
        'beats' => true,
220
        'beauty' => true,
221
        'beer' => true,
222
        'bentley' => true,
223
        'berlin' => true,
224
        'best' => true,
225
        'bestbuy' => true,
226
        'bet' => true,
227
        'bf' => true,
228
        'bg' => true,
229
        'bh' => true,
230
        'bharti' => true,
231
        'bi' => true,
232
        'bible' => true,
233
        'bid' => true,
234
        'bike' => true,
235
        'bing' => true,
236
        'bingo' => true,
237
        'bio' => true,
238
        'biz' => true,
239
        'bj' => true,
240
        'black' => true,
241
        'blackfriday' => true,
242
        'blanco' => true,
243
        'blockbuster' => true,
244
        'blog' => true,
245
        'bloomberg' => true,
246
        'blue' => true,
247
        'bm' => true,
248
        'bms' => true,
249
        'bmw' => true,
250
        'bn' => true,
251
        'bnl' => true,
252
        'bnpparibas' => true,
253
        'bo' => true,
254
        'boats' => true,
255
        'boehringer' => true,
256
        'bofa' => true,
257
        'bom' => true,
258
        'bond' => true,
259
        'boo' => true,
260
        'book' => true,
261
        'booking' => true,
262
        'boots' => true,
263
        'bosch' => true,
264
        'bostik' => true,
265
        'boston' => true,
266
        'bot' => true,
267
        'boutique' => true,
268
        'box' => true,
269
        'br' => true,
270
        'bradesco' => true,
271
        'bridgestone' => true,
272
        'broadway' => true,
273
        'broker' => true,
274
        'brother' => true,
275
        'brussels' => true,
276
        'bs' => true,
277
        'bt' => true,
278
        'budapest' => true,
279
        'bugatti' => true,
280
        'build' => true,
281
        'builders' => true,
282
        'business' => true,
283
        'buy' => true,
284
        'buzz' => true,
285
        'bv' => true,
286
        'bw' => true,
287
        'by' => true,
288
        'bz' => true,
289
        'bzh' => true,
290
        'ca' => true,
291
        'cab' => true,
292
        'cafe' => true,
293
        'cal' => true,
294
        'call' => true,
295
        'calvinklein' => true,
296
        'cam' => true,
297
        'camera' => true,
298
        'camp' => true,
299
        'cancerresearch' => true,
300
        'canon' => true,
301
        'capetown' => true,
302
        'capital' => true,
303
        'capitalone' => true,
304
        'car' => true,
305
        'caravan' => true,
306
        'cards' => true,
307
        'care' => true,
308
        'career' => true,
309
        'careers' => true,
310
        'cars' => true,
311
        'cartier' => true,
312
        'casa' => true,
313
        'case' => true,
314
        'caseih' => true,
315
        'cash' => true,
316
        'casino' => true,
317
        'cat' => true,
318
        'catering' => true,
319
        'catholic' => true,
320
        'cba' => true,
321
        'cbn' => true,
322
        'cbre' => true,
323
        'cbs' => true,
324
        'cc' => true,
325
        'cd' => true,
326
        'ceb' => true,
327
        'center' => true,
328
        'ceo' => true,
329
        'cern' => true,
330
        'cf' => true,
331
        'cfa' => true,
332
        'cfd' => true,
333
        'cg' => true,
334
        'ch' => true,
335
        'chanel' => true,
336
        'channel' => true,
337
        'chase' => true,
338
        'chat' => true,
339
        'cheap' => true,
340
        'chintai' => true,
341
        'christmas' => true,
342
        'chrome' => true,
343
        'chrysler' => true,
344
        'church' => true,
345
        'ci' => true,
346
        'cipriani' => true,
347
        'circle' => true,
348
        'cisco' => true,
349
        'citadel' => true,
350
        'citi' => true,
351
        'citic' => true,
352
        'city' => true,
353
        'cityeats' => true,
354
        'ck' => true,
355
        'cl' => true,
356
        'claims' => true,
357
        'cleaning' => true,
358
        'click' => true,
359
        'clinic' => true,
360
        'clinique' => true,
361
        'clothing' => true,
362
        'cloud' => true,
363
        'club' => true,
364
        'clubmed' => true,
365
        'cm' => true,
366
        'cn' => true,
367
        'co' => true,
368
        'coach' => true,
369
        'codes' => true,
370
        'coffee' => true,
371
        'college' => true,
372
        'cologne' => true,
373
        'com' => true,
374
        'comcast' => true,
375
        'commbank' => true,
376
        'community' => true,
377
        'company' => true,
378
        'compare' => true,
379
        'computer' => true,
380
        'comsec' => true,
381
        'condos' => true,
382
        'construction' => true,
383
        'consulting' => true,
384
        'contact' => true,
385
        'contractors' => true,
386
        'cooking' => true,
387
        'cookingchannel' => true,
388
        'cool' => true,
389
        'coop' => true,
390
        'corsica' => true,
391
        'country' => true,
392
        'coupon' => true,
393
        'coupons' => true,
394
        'courses' => true,
395
        'cr' => true,
396
        'credit' => true,
397
        'creditcard' => true,
398
        'creditunion' => true,
399
        'cricket' => true,
400
        'crown' => true,
401
        'crs' => true,
402
        'cruise' => true,
403
        'cruises' => true,
404
        'csc' => true,
405
        'cu' => true,
406
        'cuisinella' => true,
407
        'cv' => true,
408
        'cw' => true,
409
        'cx' => true,
410
        'cy' => true,
411
        'cymru' => true,
412
        'cyou' => true,
413
        'cz' => true,
414
        'dabur' => true,
415
        'dad' => true,
416
        'dance' => true,
417
        'data' => true,
418
        'date' => true,
419
        'dating' => true,
420
        'datsun' => true,
421
        'day' => true,
422
        'dclk' => true,
423
        'dds' => true,
424
        'de' => true,
425
        'deal' => true,
426
        'dealer' => true,
427
        'deals' => true,
428
        'degree' => true,
429
        'delivery' => true,
430
        'dell' => true,
431
        'deloitte' => true,
432
        'delta' => true,
433
        'democrat' => true,
434
        'dental' => true,
435
        'dentist' => true,
436
        'desi' => true,
437
        'design' => true,
438
        'dev' => true,
439
        'dhl' => true,
440
        'diamonds' => true,
441
        'diet' => true,
442
        'digital' => true,
443
        'direct' => true,
444
        'directory' => true,
445
        'discount' => true,
446
        'discover' => true,
447
        'dish' => true,
448
        'diy' => true,
449
        'dj' => true,
450
        'dk' => true,
451
        'dm' => true,
452
        'dnp' => true,
453
        'do' => true,
454
        'docs' => true,
455
        'doctor' => true,
456
        'dodge' => true,
457
        'dog' => true,
458
        'doha' => true,
459
        'domains' => true,
460
        'dot' => true,
461
        'download' => true,
462
        'drive' => true,
463
        'dtv' => true,
464
        'dubai' => true,
465
        'duck' => true,
466
        'dunlop' => true,
467
        'duns' => true,
468
        'dupont' => true,
469
        'durban' => true,
470
        'dvag' => true,
471
        'dvr' => true,
472
        'dz' => true,
473
        'earth' => true,
474
        'eat' => true,
475
        'ec' => true,
476
        'eco' => true,
477
        'edeka' => true,
478
        'edu' => true,
479
        'education' => true,
480
        'ee' => true,
481
        'eg' => true,
482
        'email' => true,
483
        'emerck' => true,
484
        'energy' => true,
485
        'engineer' => true,
486
        'engineering' => true,
487
        'enterprises' => true,
488
        'epost' => true,
489
        'epson' => true,
490
        'equipment' => true,
491
        'er' => true,
492
        'ericsson' => true,
493
        'erni' => true,
494
        'es' => true,
495
        'esq' => true,
496
        'estate' => true,
497
        'esurance' => true,
498
        'et' => true,
499
        'etisalat' => true,
500
        'eu' => true,
501
        'eurovision' => true,
502
        'eus' => true,
503
        'events' => true,
504
        'everbank' => true,
505
        'exchange' => true,
506
        'expert' => true,
507
        'exposed' => true,
508
        'express' => true,
509
        'extraspace' => true,
510
        'fage' => true,
511
        'fail' => true,
512
        'fairwinds' => true,
513
        'faith' => true,
514
        'family' => true,
515
        'fan' => true,
516
        'fans' => true,
517
        'farm' => true,
518
        'farmers' => true,
519
        'fashion' => true,
520
        'fast' => true,
521
        'fedex' => true,
522
        'feedback' => true,
523
        'ferrari' => true,
524
        'ferrero' => true,
525
        'fi' => true,
526
        'fiat' => true,
527
        'fidelity' => true,
528
        'fido' => true,
529
        'film' => true,
530
        'final' => true,
531
        'finance' => true,
532
        'financial' => true,
533
        'fire' => true,
534
        'firestone' => true,
535
        'firmdale' => true,
536
        'fish' => true,
537
        'fishing' => true,
538
        'fit' => true,
539
        'fitness' => true,
540
        'fj' => true,
541
        'fk' => true,
542
        'flickr' => true,
543
        'flights' => true,
544
        'flir' => true,
545
        'florist' => true,
546
        'flowers' => true,
547
        'fly' => true,
548
        'fm' => true,
549
        'fo' => true,
550
        'foo' => true,
551
        'food' => true,
552
        'foodnetwork' => true,
553
        'football' => true,
554
        'ford' => true,
555
        'forex' => true,
556
        'forsale' => true,
557
        'forum' => true,
558
        'foundation' => true,
559
        'fox' => true,
560
        'fr' => true,
561
        'free' => true,
562
        'fresenius' => true,
563
        'frl' => true,
564
        'frogans' => true,
565
        'frontdoor' => true,
566
        'frontier' => true,
567
        'ftr' => true,
568
        'fujitsu' => true,
569
        'fujixerox' => true,
570
        'fun' => true,
571
        'fund' => true,
572
        'furniture' => true,
573
        'futbol' => true,
574
        'fyi' => true,
575
        'ga' => true,
576
        'gal' => true,
577
        'gallery' => true,
578
        'gallo' => true,
579
        'gallup' => true,
580
        'game' => true,
581
        'games' => true,
582
        'gap' => true,
583
        'garden' => true,
584
        'gb' => true,
585
        'gbiz' => true,
586
        'gd' => true,
587
        'gdn' => true,
588
        'ge' => true,
589
        'gea' => true,
590
        'gent' => true,
591
        'genting' => true,
592
        'george' => true,
593
        'gf' => true,
594
        'gg' => true,
595
        'ggee' => true,
596
        'gh' => true,
597
        'gi' => true,
598
        'gift' => true,
599
        'gifts' => true,
600
        'gives' => true,
601
        'giving' => true,
602
        'gl' => true,
603
        'glade' => true,
604
        'glass' => true,
605
        'gle' => true,
606
        'global' => true,
607
        'globo' => true,
608
        'gm' => true,
609
        'gmail' => true,
610
        'gmbh' => true,
611
        'gmo' => true,
612
        'gmx' => true,
613
        'gn' => true,
614
        'godaddy' => true,
615
        'gold' => true,
616
        'goldpoint' => true,
617
        'golf' => true,
618
        'goo' => true,
619
        'goodhands' => true,
620
        'goodyear' => true,
621
        'goog' => true,
622
        'google' => true,
623
        'gop' => true,
624
        'got' => true,
625
        'gov' => true,
626
        'gp' => true,
627
        'gq' => true,
628
        'gr' => true,
629
        'grainger' => true,
630
        'graphics' => true,
631
        'gratis' => true,
632
        'green' => true,
633
        'gripe' => true,
634
        'grocery' => true,
635
        'group' => true,
636
        'gs' => true,
637
        'gt' => true,
638
        'gu' => true,
639
        'guardian' => true,
640
        'gucci' => true,
641
        'guge' => true,
642
        'guide' => true,
643
        'guitars' => true,
644
        'guru' => true,
645
        'gw' => true,
646
        'gy' => true,
647
        'hair' => true,
648
        'hamburg' => true,
649
        'hangout' => true,
650
        'haus' => true,
651
        'hbo' => true,
652
        'hdfc' => true,
653
        'hdfcbank' => true,
654
        'health' => true,
655
        'healthcare' => true,
656
        'help' => true,
657
        'helsinki' => true,
658
        'here' => true,
659
        'hermes' => true,
660
        'hgtv' => true,
661
        'hiphop' => true,
662
        'hisamitsu' => true,
663
        'hitachi' => true,
664
        'hiv' => true,
665
        'hk' => true,
666
        'hkt' => true,
667
        'hm' => true,
668
        'hn' => true,
669
        'hockey' => true,
670
        'holdings' => true,
671
        'holiday' => true,
672
        'homedepot' => true,
673
        'homegoods' => true,
674
        'homes' => true,
675
        'homesense' => true,
676
        'honda' => true,
677
        'honeywell' => true,
678
        'horse' => true,
679
        'hospital' => true,
680
        'host' => true,
681
        'hosting' => true,
682
        'hot' => true,
683
        'hoteles' => true,
684
        'hotels' => true,
685
        'hotmail' => true,
686
        'house' => true,
687
        'how' => true,
688
        'hr' => true,
689
        'hsbc' => true,
690
        'ht' => true,
691
        'hu' => true,
692
        'hughes' => true,
693
        'hyatt' => true,
694
        'hyundai' => true,
695
        'ibm' => true,
696
        'icbc' => true,
697
        'ice' => true,
698
        'icu' => true,
699
        'id' => true,
700
        'ie' => true,
701
        'ieee' => true,
702
        'ifm' => true,
703
        'ikano' => true,
704
        'il' => true,
705
        'im' => true,
706
        'imamat' => true,
707
        'imdb' => true,
708
        'immo' => true,
709
        'immobilien' => true,
710
        'in' => true,
711
        'industries' => true,
712
        'infiniti' => true,
713
        'info' => true,
714
        'ing' => true,
715
        'ink' => true,
716
        'institute' => true,
717
        'insurance' => true,
718
        'insure' => true,
719
        'int' => true,
720
        'intel' => true,
721
        'international' => true,
722
        'intuit' => true,
723
        'investments' => true,
724
        'io' => true,
725
        'ipiranga' => true,
726
        'iq' => true,
727
        'ir' => true,
728
        'irish' => true,
729
        'is' => true,
730
        'iselect' => true,
731
        'ismaili' => true,
732
        'ist' => true,
733
        'istanbul' => true,
734
        'it' => true,
735
        'itau' => true,
736
        'itv' => true,
737
        'iveco' => true,
738
        'iwc' => true,
739
        'jaguar' => true,
740
        'java' => true,
741
        'jcb' => true,
742
        'jcp' => true,
743
        'je' => true,
744
        'jeep' => true,
745
        'jetzt' => true,
746
        'jewelry' => true,
747
        'jio' => true,
748
        'jlc' => true,
749
        'jll' => true,
750
        'jm' => true,
751
        'jmp' => true,
752
        'jnj' => true,
753
        'jo' => true,
754
        'jobs' => true,
755
        'joburg' => true,
756
        'jot' => true,
757
        'joy' => true,
758
        'jp' => true,
759
        'jpmorgan' => true,
760
        'jprs' => true,
761
        'juegos' => true,
762
        'juniper' => true,
763
        'kaufen' => true,
764
        'kddi' => true,
765
        'ke' => true,
766
        'kerryhotels' => true,
767
        'kerrylogistics' => true,
768
        'kerryproperties' => true,
769
        'kfh' => true,
770
        'kg' => true,
771
        'kh' => true,
772
        'ki' => true,
773
        'kia' => true,
774
        'kim' => true,
775
        'kinder' => true,
776
        'kindle' => true,
777
        'kitchen' => true,
778
        'kiwi' => true,
779
        'km' => true,
780
        'kn' => true,
781
        'koeln' => true,
782
        'komatsu' => true,
783
        'kosher' => true,
784
        'kp' => true,
785
        'kpmg' => true,
786
        'kpn' => true,
787
        'kr' => true,
788
        'krd' => true,
789
        'kred' => true,
790
        'kuokgroup' => true,
791
        'kw' => true,
792
        'ky' => true,
793
        'kyoto' => true,
794
        'kz' => true,
795
        'la' => true,
796
        'lacaixa' => true,
797
        'ladbrokes' => true,
798
        'lamborghini' => true,
799
        'lamer' => true,
800
        'lancaster' => true,
801
        'lancia' => true,
802
        'lancome' => true,
803
        'land' => true,
804
        'landrover' => true,
805
        'lanxess' => true,
806
        'lasalle' => true,
807
        'lat' => true,
808
        'latino' => true,
809
        'latrobe' => true,
810
        'law' => true,
811
        'lawyer' => true,
812
        'lb' => true,
813
        'lc' => true,
814
        'lds' => true,
815
        'lease' => true,
816
        'leclerc' => true,
817
        'lefrak' => true,
818
        'legal' => true,
819
        'lego' => true,
820
        'lexus' => true,
821
        'lgbt' => true,
822
        'li' => true,
823
        'liaison' => true,
824
        'lidl' => true,
825
        'life' => true,
826
        'lifeinsurance' => true,
827
        'lifestyle' => true,
828
        'lighting' => true,
829
        'like' => true,
830
        'lilly' => true,
831
        'limited' => true,
832
        'limo' => true,
833
        'lincoln' => true,
834
        'linde' => true,
835
        'link' => true,
836
        'lipsy' => true,
837
        'live' => true,
838
        'living' => true,
839
        'lixil' => true,
840
        'lk' => true,
841
        'loan' => true,
842
        'loans' => true,
843
        'locker' => true,
844
        'locus' => true,
845
        'loft' => true,
846
        'lol' => true,
847
        'london' => true,
848
        'lotte' => true,
849
        'lotto' => true,
850
        'love' => true,
851
        'lpl' => true,
852
        'lplfinancial' => true,
853
        'lr' => true,
854
        'ls' => true,
855
        'lt' => true,
856
        'ltd' => true,
857
        'ltda' => true,
858
        'lu' => true,
859
        'lundbeck' => true,
860
        'lupin' => true,
861
        'luxe' => true,
862
        'luxury' => true,
863
        'lv' => true,
864
        'ly' => true,
865
        'ma' => true,
866
        'macys' => true,
867
        'madrid' => true,
868
        'maif' => true,
869
        'maison' => true,
870
        'makeup' => true,
871
        'man' => true,
872
        'management' => true,
873
        'mango' => true,
874
        'map' => true,
875
        'market' => true,
876
        'marketing' => true,
877
        'markets' => true,
878
        'marriott' => true,
879
        'marshalls' => true,
880
        'maserati' => true,
881
        'mattel' => true,
882
        'mba' => true,
883
        'mc' => true,
884
        'mckinsey' => true,
885
        'md' => true,
886
        'me' => true,
887
        'med' => true,
888
        'media' => true,
889
        'meet' => true,
890
        'melbourne' => true,
891
        'meme' => true,
892
        'memorial' => true,
893
        'men' => true,
894
        'menu' => true,
895
        'meo' => true,
896
        'merckmsd' => true,
897
        'metlife' => true,
898
        'mg' => true,
899
        'mh' => true,
900
        'miami' => true,
901
        'microsoft' => true,
902
        'mil' => true,
903
        'mini' => true,
904
        'mint' => true,
905
        'mit' => true,
906
        'mitsubishi' => true,
907
        'mk' => true,
908
        'ml' => true,
909
        'mlb' => true,
910
        'mls' => true,
911
        'mm' => true,
912
        'mma' => true,
913
        'mn' => true,
914
        'mo' => true,
915
        'mobi' => true,
916
        'mobile' => true,
917
        'mobily' => true,
918
        'moda' => true,
919
        'moe' => true,
920
        'moi' => true,
921
        'mom' => true,
922
        'monash' => true,
923
        'money' => true,
924
        'monster' => true,
925
        'mopar' => true,
926
        'mormon' => true,
927
        'mortgage' => true,
928
        'moscow' => true,
929
        'moto' => true,
930
        'motorcycles' => true,
931
        'mov' => true,
932
        'movie' => true,
933
        'movistar' => true,
934
        'mp' => true,
935
        'mq' => true,
936
        'mr' => true,
937
        'ms' => true,
938
        'msd' => true,
939
        'mt' => true,
940
        'mtn' => true,
941
        'mtr' => true,
942
        'mu' => true,
943
        'museum' => true,
944
        'mutual' => true,
945
        'mv' => true,
946
        'mw' => true,
947
        'mx' => true,
948
        'my' => true,
949
        'mz' => true,
950
        'na' => true,
951
        'nab' => true,
952
        'nadex' => true,
953
        'nagoya' => true,
954
        'name' => true,
955
        'nationwide' => true,
956
        'natura' => true,
957
        'navy' => true,
958
        'nba' => true,
959
        'nc' => true,
960
        'ne' => true,
961
        'nec' => true,
962
        'net' => true,
963
        'netbank' => true,
964
        'netflix' => true,
965
        'network' => true,
966
        'neustar' => true,
967
        'new' => true,
968
        'newholland' => true,
969
        'news' => true,
970
        'next' => true,
971
        'nextdirect' => true,
972
        'nexus' => true,
973
        'nf' => true,
974
        'nfl' => true,
975
        'ng' => true,
976
        'ngo' => true,
977
        'nhk' => true,
978
        'ni' => true,
979
        'nico' => true,
980
        'nike' => true,
981
        'nikon' => true,
982
        'ninja' => true,
983
        'nissan' => true,
984
        'nissay' => true,
985
        'nl' => true,
986
        'no' => true,
987
        'nokia' => true,
988
        'northwesternmutual' => true,
989
        'norton' => true,
990
        'now' => true,
991
        'nowruz' => true,
992
        'nowtv' => true,
993
        'np' => true,
994
        'nr' => true,
995
        'nra' => true,
996
        'nrw' => true,
997
        'ntt' => true,
998
        'nu' => true,
999
        'nyc' => true,
1000
        'nz' => true,
1001
        'obi' => true,
1002
        'observer' => true,
1003
        'off' => true,
1004
        'office' => true,
1005
        'okinawa' => true,
1006
        'olayan' => true,
1007
        'olayangroup' => true,
1008
        'oldnavy' => true,
1009
        'ollo' => true,
1010
        'om' => true,
1011
        'omega' => true,
1012
        'one' => true,
1013
        'ong' => true,
1014
        'onl' => true,
1015
        'online' => true,
1016
        'onyourside' => true,
1017
        'ooo' => true,
1018
        'open' => true,
1019
        'oracle' => true,
1020
        'orange' => true,
1021
        'org' => true,
1022
        'organic' => true,
1023
        'origins' => true,
1024
        'osaka' => true,
1025
        'otsuka' => true,
1026
        'ott' => true,
1027
        'ovh' => true,
1028
        'pa' => true,
1029
        'page' => true,
1030
        'panasonic' => true,
1031
        'panerai' => true,
1032
        'paris' => true,
1033
        'pars' => true,
1034
        'partners' => true,
1035
        'parts' => true,
1036
        'party' => true,
1037
        'passagens' => true,
1038
        'pay' => true,
1039
        'pccw' => true,
1040
        'pe' => true,
1041
        'pet' => true,
1042
        'pf' => true,
1043
        'pfizer' => true,
1044
        'pg' => true,
1045
        'ph' => true,
1046
        'pharmacy' => true,
1047
        'phd' => true,
1048
        'philips' => true,
1049
        'phone' => true,
1050
        'photo' => true,
1051
        'photography' => true,
1052
        'photos' => true,
1053
        'physio' => true,
1054
        'piaget' => true,
1055
        'pics' => true,
1056
        'pictet' => true,
1057
        'pictures' => true,
1058
        'pid' => true,
1059
        'pin' => true,
1060
        'ping' => true,
1061
        'pink' => true,
1062
        'pioneer' => true,
1063
        'pizza' => true,
1064
        'pk' => true,
1065
        'pl' => true,
1066
        'place' => true,
1067
        'play' => true,
1068
        'playstation' => true,
1069
        'plumbing' => true,
1070
        'plus' => true,
1071
        'pm' => true,
1072
        'pn' => true,
1073
        'pnc' => true,
1074
        'pohl' => true,
1075
        'poker' => true,
1076
        'politie' => true,
1077
        'porn' => true,
1078
        'post' => true,
1079
        'pr' => true,
1080
        'pramerica' => true,
1081
        'praxi' => true,
1082
        'press' => true,
1083
        'prime' => true,
1084
        'pro' => true,
1085
        'prod' => true,
1086
        'productions' => true,
1087
        'prof' => true,
1088
        'progressive' => true,
1089
        'promo' => true,
1090
        'properties' => true,
1091
        'property' => true,
1092
        'protection' => true,
1093
        'pru' => true,
1094
        'prudential' => true,
1095
        'ps' => true,
1096
        'pt' => true,
1097
        'pub' => true,
1098
        'pw' => true,
1099
        'pwc' => true,
1100
        'py' => true,
1101
        'qa' => true,
1102
        'qpon' => true,
1103
        'quebec' => true,
1104
        'quest' => true,
1105
        'qvc' => true,
1106
        'racing' => true,
1107
        'radio' => true,
1108
        'raid' => true,
1109
        're' => true,
1110
        'read' => true,
1111
        'realestate' => true,
1112
        'realtor' => true,
1113
        'realty' => true,
1114
        'recipes' => true,
1115
        'red' => true,
1116
        'redstone' => true,
1117
        'redumbrella' => true,
1118
        'rehab' => true,
1119
        'reise' => true,
1120
        'reisen' => true,
1121
        'reit' => true,
1122
        'reliance' => true,
1123
        'ren' => true,
1124
        'rent' => true,
1125
        'rentals' => true,
1126
        'repair' => true,
1127
        'report' => true,
1128
        'republican' => true,
1129
        'rest' => true,
1130
        'restaurant' => true,
1131
        'review' => true,
1132
        'reviews' => true,
1133
        'rexroth' => true,
1134
        'rich' => true,
1135
        'richardli' => true,
1136
        'ricoh' => true,
1137
        'rightathome' => true,
1138
        'ril' => true,
1139
        'rio' => true,
1140
        'rip' => true,
1141
        'rmit' => true,
1142
        'ro' => true,
1143
        'rocher' => true,
1144
        'rocks' => true,
1145
        'rodeo' => true,
1146
        'rogers' => true,
1147
        'room' => true,
1148
        'rs' => true,
1149
        'rsvp' => true,
1150
        'ru' => true,
1151
        'rugby' => true,
1152
        'ruhr' => true,
1153
        'run' => true,
1154
        'rw' => true,
1155
        'rwe' => true,
1156
        'ryukyu' => true,
1157
        'sa' => true,
1158
        'saarland' => true,
1159
        'safe' => true,
1160
        'safety' => true,
1161
        'sakura' => true,
1162
        'sale' => true,
1163
        'salon' => true,
1164
        'samsclub' => true,
1165
        'samsung' => true,
1166
        'sandvik' => true,
1167
        'sandvikcoromant' => true,
1168
        'sanofi' => true,
1169
        'sap' => true,
1170
        'sapo' => true,
1171
        'sarl' => true,
1172
        'sas' => true,
1173
        'save' => true,
1174
        'saxo' => true,
1175
        'sb' => true,
1176
        'sbi' => true,
1177
        'sbs' => true,
1178
        'sc' => true,
1179
        'sca' => true,
1180
        'scb' => true,
1181
        'schaeffler' => true,
1182
        'schmidt' => true,
1183
        'scholarships' => true,
1184
        'school' => true,
1185
        'schule' => true,
1186
        'schwarz' => true,
1187
        'science' => true,
1188
        'scjohnson' => true,
1189
        'scor' => true,
1190
        'scot' => true,
1191
        'sd' => true,
1192
        'se' => true,
1193
        'search' => true,
1194
        'seat' => true,
1195
        'secure' => true,
1196
        'security' => true,
1197
        'seek' => true,
1198
        'select' => true,
1199
        'sener' => true,
1200
        'services' => true,
1201
        'ses' => true,
1202
        'seven' => true,
1203
        'sew' => true,
1204
        'sex' => true,
1205
        'sexy' => true,
1206
        'sfr' => true,
1207
        'sg' => true,
1208
        'sh' => true,
1209
        'shangrila' => true,
1210
        'sharp' => true,
1211
        'shaw' => true,
1212
        'shell' => true,
1213
        'shia' => true,
1214
        'shiksha' => true,
1215
        'shoes' => true,
1216
        'shop' => true,
1217
        'shopping' => true,
1218
        'shouji' => true,
1219
        'show' => true,
1220
        'showtime' => true,
1221
        'shriram' => true,
1222
        'si' => true,
1223
        'silk' => true,
1224
        'sina' => true,
1225
        'singles' => true,
1226
        'site' => true,
1227
        'sj' => true,
1228
        'sk' => true,
1229
        'ski' => true,
1230
        'skin' => true,
1231
        'sky' => true,
1232
        'skype' => true,
1233
        'sl' => true,
1234
        'sling' => true,
1235
        'sm' => true,
1236
        'smart' => true,
1237
        'smile' => true,
1238
        'sn' => true,
1239
        'sncf' => true,
1240
        'so' => true,
1241
        'soccer' => true,
1242
        'social' => true,
1243
        'softbank' => true,
1244
        'software' => true,
1245
        'sohu' => true,
1246
        'solar' => true,
1247
        'solutions' => true,
1248
        'song' => true,
1249
        'sony' => true,
1250
        'soy' => true,
1251
        'space' => true,
1252
        'spiegel' => true,
1253
        'spot' => true,
1254
        'spreadbetting' => true,
1255
        'sr' => true,
1256
        'srl' => true,
1257
        'srt' => true,
1258
        'st' => true,
1259
        'stada' => true,
1260
        'staples' => true,
1261
        'star' => true,
1262
        'starhub' => true,
1263
        'statebank' => true,
1264
        'statefarm' => true,
1265
        'statoil' => true,
1266
        'stc' => true,
1267
        'stcgroup' => true,
1268
        'stockholm' => true,
1269
        'storage' => true,
1270
        'store' => true,
1271
        'stream' => true,
1272
        'studio' => true,
1273
        'study' => true,
1274
        'style' => true,
1275
        'su' => true,
1276
        'sucks' => true,
1277
        'supplies' => true,
1278
        'supply' => true,
1279
        'support' => true,
1280
        'surf' => true,
1281
        'surgery' => true,
1282
        'suzuki' => true,
1283
        'sv' => true,
1284
        'swatch' => true,
1285
        'swiftcover' => true,
1286
        'swiss' => true,
1287
        'sx' => true,
1288
        'sy' => true,
1289
        'sydney' => true,
1290
        'symantec' => true,
1291
        'systems' => true,
1292
        'sz' => true,
1293
        'tab' => true,
1294
        'taipei' => true,
1295
        'talk' => true,
1296
        'taobao' => true,
1297
        'target' => true,
1298
        'tatamotors' => true,
1299
        'tatar' => true,
1300
        'tattoo' => true,
1301
        'tax' => true,
1302
        'taxi' => true,
1303
        'tc' => true,
1304
        'tci' => true,
1305
        'td' => true,
1306
        'tdk' => true,
1307
        'team' => true,
1308
        'tech' => true,
1309
        'technology' => true,
1310
        'tel' => true,
1311
        'telecity' => true,
1312
        'telefonica' => true,
1313
        'temasek' => true,
1314
        'tennis' => true,
1315
        'teva' => true,
1316
        'tf' => true,
1317
        'tg' => true,
1318
        'th' => true,
1319
        'thd' => true,
1320
        'theater' => true,
1321
        'theatre' => true,
1322
        'tiaa' => true,
1323
        'tickets' => true,
1324
        'tienda' => true,
1325
        'tiffany' => true,
1326
        'tips' => true,
1327
        'tires' => true,
1328
        'tirol' => true,
1329
        'tj' => true,
1330
        'tjmaxx' => true,
1331
        'tjx' => true,
1332
        'tk' => true,
1333
        'tkmaxx' => true,
1334
        'tl' => true,
1335
        'tm' => true,
1336
        'tmall' => true,
1337
        'tn' => true,
1338
        'to' => true,
1339
        'today' => true,
1340
        'tokyo' => true,
1341
        'tools' => true,
1342
        'top' => true,
1343
        'toray' => true,
1344
        'toshiba' => true,
1345
        'total' => true,
1346
        'tours' => true,
1347
        'town' => true,
1348
        'toyota' => true,
1349
        'toys' => true,
1350
        'tr' => true,
1351
        'trade' => true,
1352
        'trading' => true,
1353
        'training' => true,
1354
        'travel' => true,
1355
        'travelchannel' => true,
1356
        'travelers' => true,
1357
        'travelersinsurance' => true,
1358
        'trust' => true,
1359
        'trv' => true,
1360
        'tt' => true,
1361
        'tube' => true,
1362
        'tui' => true,
1363
        'tunes' => true,
1364
        'tushu' => true,
1365
        'tv' => true,
1366
        'tvs' => true,
1367
        'tw' => true,
1368
        'tz' => true,
1369
        'ua' => true,
1370
        'ubank' => true,
1371
        'ubs' => true,
1372
        'uconnect' => true,
1373
        'ug' => true,
1374
        'uk' => true,
1375
        'unicom' => true,
1376
        'university' => true,
1377
        'uno' => true,
1378
        'uol' => true,
1379
        'ups' => true,
1380
        'us' => true,
1381
        'uy' => true,
1382
        'uz' => true,
1383
        'va' => true,
1384
        'vacations' => true,
1385
        'vana' => true,
1386
        'vanguard' => true,
1387
        'vc' => true,
1388
        've' => true,
1389
        'vegas' => true,
1390
        'ventures' => true,
1391
        'verisign' => true,
1392
        'versicherung' => true,
1393
        'vet' => true,
1394
        'vg' => true,
1395
        'vi' => true,
1396
        'viajes' => true,
1397
        'video' => true,
1398
        'vig' => true,
1399
        'viking' => true,
1400
        'villas' => true,
1401
        'vin' => true,
1402
        'vip' => true,
1403
        'virgin' => true,
1404
        'visa' => true,
1405
        'vision' => true,
1406
        'vista' => true,
1407
        'vistaprint' => true,
1408
        'viva' => true,
1409
        'vivo' => true,
1410
        'vlaanderen' => true,
1411
        'vn' => true,
1412
        'vodka' => true,
1413
        'volkswagen' => true,
1414
        'volvo' => true,
1415
        'vote' => true,
1416
        'voting' => true,
1417
        'voto' => true,
1418
        'voyage' => true,
1419
        'vu' => true,
1420
        'vuelos' => true,
1421
        'wales' => true,
1422
        'walmart' => true,
1423
        'walter' => true,
1424
        'wang' => true,
1425
        'wanggou' => true,
1426
        'warman' => true,
1427
        'watch' => true,
1428
        'watches' => true,
1429
        'weather' => true,
1430
        'weatherchannel' => true,
1431
        'webcam' => true,
1432
        'weber' => true,
1433
        'website' => true,
1434
        'wed' => true,
1435
        'wedding' => true,
1436
        'weibo' => true,
1437
        'weir' => true,
1438
        'wf' => true,
1439
        'whoswho' => true,
1440
        'wien' => true,
1441
        'wiki' => true,
1442
        'williamhill' => true,
1443
        'win' => true,
1444
        'windows' => true,
1445
        'wine' => true,
1446
        'winners' => true,
1447
        'wme' => true,
1448
        'wolterskluwer' => true,
1449
        'woodside' => true,
1450
        'work' => true,
1451
        'works' => true,
1452
        'world' => true,
1453
        'wow' => true,
1454
        'ws' => true,
1455
        'wtc' => true,
1456
        'wtf' => true,
1457
        'xbox' => true,
1458
        'xerox' => true,
1459
        'xfinity' => true,
1460
        'xihuan' => true,
1461
        'xin' => true,
1462
        'xn--11b4c3d' => true,
1463
        'xn--1ck2e1b' => true,
1464
        'xn--1qqw23a' => true,
1465
        'xn--2scrj9c' => true,
1466
        'xn--30rr7y' => true,
1467
        'xn--3bst00m' => true,
1468
        'xn--3ds443g' => true,
1469
        'xn--3e0b707e' => true,
1470
        'xn--3hcrj9c' => true,
1471
        'xn--3oq18vl8pn36a' => true,
1472
        'xn--3pxu8k' => true,
1473
        'xn--42c2d9a' => true,
1474
        'xn--45br5cyl' => true,
1475
        'xn--45brj9c' => true,
1476
        'xn--45q11c' => true,
1477
        'xn--4gbrim' => true,
1478
        'xn--54b7fta0cc' => true,
1479
        'xn--55qw42g' => true,
1480
        'xn--55qx5d' => true,
1481
        'xn--5su34j936bgsg' => true,
1482
        'xn--5tzm5g' => true,
1483
        'xn--6frz82g' => true,
1484
        'xn--6qq986b3xl' => true,
1485
        'xn--80adxhks' => true,
1486
        'xn--80ao21a' => true,
1487
        'xn--80aqecdr1a' => true,
1488
        'xn--80asehdb' => true,
1489
        'xn--80aswg' => true,
1490
        'xn--8y0a063a' => true,
1491
        'xn--90a3ac' => true,
1492
        'xn--90ae' => true,
1493
        'xn--90ais' => true,
1494
        'xn--9dbq2a' => true,
1495
        'xn--9et52u' => true,
1496
        'xn--9krt00a' => true,
1497
        'xn--b4w605ferd' => true,
1498
        'xn--bck1b9a5dre4c' => true,
1499
        'xn--c1avg' => true,
1500
        'xn--c2br7g' => true,
1501
        'xn--cck2b3b' => true,
1502
        'xn--cg4bki' => true,
1503
        'xn--clchc0ea0b2g2a9gcd' => true,
1504
        'xn--czr694b' => true,
1505
        'xn--czrs0t' => true,
1506
        'xn--czru2d' => true,
1507
        'xn--d1acj3b' => true,
1508
        'xn--d1alf' => true,
1509
        'xn--e1a4c' => true,
1510
        'xn--eckvdtc9d' => true,
1511
        'xn--efvy88h' => true,
1512
        'xn--estv75g' => true,
1513
        'xn--fct429k' => true,
1514
        'xn--fhbei' => true,
1515
        'xn--fiq228c5hs' => true,
1516
        'xn--fiq64b' => true,
1517
        'xn--fiqs8s' => true,
1518
        'xn--fiqz9s' => true,
1519
        'xn--fjq720a' => true,
1520
        'xn--flw351e' => true,
1521
        'xn--fpcrj9c3d' => true,
1522
        'xn--fzc2c9e2c' => true,
1523
        'xn--fzys8d69uvgm' => true,
1524
        'xn--g2xx48c' => true,
1525
        'xn--gckr3f0f' => true,
1526
        'xn--gecrj9c' => true,
1527
        'xn--gk3at1e' => true,
1528
        'xn--h2breg3eve' => true,
1529
        'xn--h2brj9c' => true,
1530
        'xn--h2brj9c8c' => true,
1531
        'xn--hxt814e' => true,
1532
        'xn--i1b6b1a6a2e' => true,
1533
        'xn--imr513n' => true,
1534
        'xn--io0a7i' => true,
1535
        'xn--j1aef' => true,
1536
        'xn--j1amh' => true,
1537
        'xn--j6w193g' => true,
1538
        'xn--jlq61u9w7b' => true,
1539
        'xn--jvr189m' => true,
1540
        'xn--kcrx77d1x4a' => true,
1541
        'xn--kprw13d' => true,
1542
        'xn--kpry57d' => true,
1543
        'xn--kpu716f' => true,
1544
        'xn--kput3i' => true,
1545
        'xn--l1acc' => true,
1546
        'xn--lgbbat1ad8j' => true,
1547
        'xn--mgb9awbf' => true,
1548
        'xn--mgba3a3ejt' => true,
1549
        'xn--mgba3a4f16a' => true,
1550
        'xn--mgba7c0bbn0a' => true,
1551
        'xn--mgbaakc7dvf' => true,
1552
        'xn--mgbaam7a8h' => true,
1553
        'xn--mgbab2bd' => true,
1554
        'xn--mgbai9azgqp6j' => true,
1555
        'xn--mgbayh7gpa' => true,
1556
        'xn--mgbb9fbpob' => true,
1557
        'xn--mgbbh1a' => true,
1558
        'xn--mgbbh1a71e' => true,
1559
        'xn--mgbc0a9azcg' => true,
1560
        'xn--mgbca7dzdo' => true,
1561
        'xn--mgberp4a5d4ar' => true,
1562
        'xn--mgbgu82a' => true,
1563
        'xn--mgbi4ecexp' => true,
1564
        'xn--mgbpl2fh' => true,
1565
        'xn--mgbt3dhd' => true,
1566
        'xn--mgbtx2b' => true,
1567
        'xn--mgbx4cd0ab' => true,
1568
        'xn--mix891f' => true,
1569
        'xn--mk1bu44c' => true,
1570
        'xn--mxtq1m' => true,
1571
        'xn--ngbc5azd' => true,
1572
        'xn--ngbe9e0a' => true,
1573
        'xn--ngbrx' => true,
1574
        'xn--node' => true,
1575
        'xn--nqv7f' => true,
1576
        'xn--nqv7fs00ema' => true,
1577
        'xn--nyqy26a' => true,
1578
        'xn--o3cw4h' => true,
1579
        'xn--ogbpf8fl' => true,
1580
        'xn--p1acf' => true,
1581
        'xn--p1ai' => true,
1582
        'xn--pbt977c' => true,
1583
        'xn--pgbs0dh' => true,
1584
        'xn--pssy2u' => true,
1585
        'xn--q9jyb4c' => true,
1586
        'xn--qcka1pmc' => true,
1587
        'xn--qxam' => true,
1588
        'xn--rhqv96g' => true,
1589
        'xn--rovu88b' => true,
1590
        'xn--rvc1e0am3e' => true,
1591
        'xn--s9brj9c' => true,
1592
        'xn--ses554g' => true,
1593
        'xn--t60b56a' => true,
1594
        'xn--tckwe' => true,
1595
        'xn--tiq49xqyj' => true,
1596
        'xn--unup4y' => true,
1597
        'xn--vermgensberater-ctb' => true,
1598
        'xn--vermgensberatung-pwb' => true,
1599
        'xn--vhquv' => true,
1600
        'xn--vuq861b' => true,
1601
        'xn--w4r85el8fhu5dnra' => true,
1602
        'xn--w4rs40l' => true,
1603
        'xn--wgbh1c' => true,
1604
        'xn--wgbl6a' => true,
1605
        'xn--xhq521b' => true,
1606
        'xn--xkc2al3hye2a' => true,
1607
        'xn--xkc2dl3a5ee0h' => true,
1608
        'xn--y9a3aq' => true,
1609
        'xn--yfro4i67o' => true,
1610
        'xn--ygbi2ammx' => true,
1611
        'xn--zfr164b' => true,
1612
        'xperia' => true,
1613
        'xxx' => true,
1614
        'xyz' => true,
1615
        'yachts' => true,
1616
        'yahoo' => true,
1617
        'yamaxun' => true,
1618
        'yandex' => true,
1619
        'ye' => true,
1620
        'yodobashi' => true,
1621
        'yoga' => true,
1622
        'yokohama' => true,
1623
        'you' => true,
1624
        'youtube' => true,
1625
        'yt' => true,
1626
        'yun' => true,
1627
        'za' => true,
1628
        'zappos' => true,
1629
        'zara' => true,
1630
        'zero' => true,
1631
        'zip' => true,
1632
        'zippo' => true,
1633
        'zm' => true,
1634
        'zone' => true,
1635
        'zuerich' => true,
1636
        'zw' => true,
1637
    ];
1638
1639
    return (bool) (isset($tlds[$tld]));
1640
}
1641