File Coverage

blib/lib/Data/Password/zxcvbn/AdjacencyGraph/English.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1             package Data::Password::zxcvbn::AdjacencyGraph::English;
2 3     3   20 use strict;
  3         8  
  3         87  
3 3     3   16 use warnings;
  3         8  
  3         4601  
4             # VERSION
5             # ABSTRACT: adjacency graphs for English keyboards
6              
7             =head1 DESCRIPTION
8              
9             This is a data file used by L<<
10             C<Data::Password::zxcvbn::Match::Spatial> >>, and is generated by the
11             L<<
12             C<build-keyboard-adjacency-graphs>|https://bitbucket.org/broadbean/p5-data-password-zxcvbn/src/master/maint/build-keyboard-adjacency-graphs
13             >> program when building the distribution.
14              
15              
16             =cut
17              
18             our %graphs = (
19             dvorak => {
20             average_degree => 4.59574468085106,
21             keys => {
22             "!" => [
23             '`~', ( undef ) x 2, '2@', '\'"', undef
24             ],
25             "\"" => [
26             undef, '1!', '2@', ',<', 'aA', undef
27             ],
28             "#" => [
29             '2@', ( undef ) x 2, '4$', '.>', ',<'
30             ],
31             "\$" => [
32             '3#', ( undef ) x 2, '5%', 'pP', '.>'
33             ],
34             "%" => [
35             '4$', ( undef ) x 2, '6^', 'yY', 'pP'
36             ],
37             "&" => [
38             '6^', ( undef ) x 2, '8*', 'gG', 'fF'
39             ],
40             "'" => [
41             undef, '1!', '2@', ',<', 'aA', undef
42             ],
43             "(" => [
44             '8*', ( undef ) x 2, '0)', 'rR', 'cC'
45             ],
46             ")" => [
47             '9(', ( undef ) x 2, '[{', 'lL', 'rR'
48             ],
49             "*" => [
50             '7&', ( undef ) x 2, '9(', 'cC', 'gG'
51             ],
52             "+" => [
53             '/?', ']}', undef, '\\|', undef, '-_'
54             ],
55             "," => [
56             '\'"', '2@', '3#', '.>', 'oO', 'aA'
57             ],
58             "-" => [
59             'sS', '/?', '=+', ( undef ) x 2, 'zZ'
60             ],
61             "." => [
62             ',<', '3#', '4$', 'pP', 'eE', 'oO'
63             ],
64             "/" => [
65             'lL', '[{', ']}', '=+', '-_', 'sS'
66             ],
67             0 => [
68             '9(', ( undef ) x 2, '[{', 'lL', 'rR'
69             ],
70             1 => [
71             '`~', ( undef ) x 2, '2@', '\'"', undef
72             ],
73             2 => [
74             '1!', ( undef ) x 2, '3#', ',<', '\'"'
75             ],
76             3 => [
77             '2@', ( undef ) x 2, '4$', '.>', ',<'
78             ],
79             4 => [
80             '3#', ( undef ) x 2, '5%', 'pP', '.>'
81             ],
82             5 => [
83             '4$', ( undef ) x 2, '6^', 'yY', 'pP'
84             ],
85             6 => [
86             '5%', ( undef ) x 2, '7&', 'fF', 'yY'
87             ],
88             7 => [
89             '6^', ( undef ) x 2, '8*', 'gG', 'fF'
90             ],
91             8 => [
92             '7&', ( undef ) x 2, '9(', 'cC', 'gG'
93             ],
94             9 => [
95             '8*', ( undef ) x 2, '0)', 'rR', 'cC'
96             ],
97             ":" => [
98             undef, 'aA', 'oO', 'qQ', ( undef ) x 2
99             ],
100             ";" => [
101             undef, 'aA', 'oO', 'qQ', ( undef ) x 2
102             ],
103             "<" => [
104             '\'"', '2@', '3#', '.>', 'oO', 'aA'
105             ],
106             "=" => [
107             '/?', ']}', undef, '\\|', undef, '-_'
108             ],
109             ">" => [
110             ',<', '3#', '4$', 'pP', 'eE', 'oO'
111             ],
112             "?" => [
113             'lL', '[{', ']}', '=+', '-_', 'sS'
114             ],
115             "\@" => [
116             '1!', ( undef ) x 2, '3#', ',<', '\'"'
117             ],
118             A => [
119             undef, '\'"', ',<', 'oO', ';:', undef
120             ],
121             B => [
122             'xX', 'dD', 'hH', 'mM', ( undef ) x 2
123             ],
124             C => [
125             'gG', '8*', '9(', 'rR', 'tT', 'hH'
126             ],
127             D => [
128             'iI', 'fF', 'gG', 'hH', 'bB', 'xX'
129             ],
130             E => [
131             'oO', '.>', 'pP', 'uU', 'jJ', 'qQ'
132             ],
133             F => [
134             'yY', '6^', '7&', 'gG', 'dD', 'iI'
135             ],
136             G => [
137             'fF', '7&', '8*', 'cC', 'hH', 'dD'
138             ],
139             H => [
140             'dD', 'gG', 'cC', 'tT', 'mM', 'bB'
141             ],
142             I => [
143             'uU', 'yY', 'fF', 'dD', 'xX', 'kK'
144             ],
145             J => [
146             'qQ', 'eE', 'uU', 'kK', ( undef ) x 2
147             ],
148             K => [
149             'jJ', 'uU', 'iI', 'xX', ( undef ) x 2
150             ],
151             L => [
152             'rR', '0)', '[{', '/?', 'sS', 'nN'
153             ],
154             M => [
155             'bB', 'hH', 'tT', 'wW', ( undef ) x 2
156             ],
157             N => [
158             'tT', 'rR', 'lL', 'sS', 'vV', 'wW'
159             ],
160             O => [
161             'aA', ',<', '.>', 'eE', 'qQ', ';:'
162             ],
163             P => [
164             '.>', '4$', '5%', 'yY', 'uU', 'eE'
165             ],
166             Q => [
167             ';:', 'oO', 'eE', 'jJ', ( undef ) x 2
168             ],
169             R => [
170             'cC', '9(', '0)', 'lL', 'nN', 'tT'
171             ],
172             S => [
173             'nN', 'lL', '/?', '-_', 'zZ', 'vV'
174             ],
175             T => [
176             'hH', 'cC', 'rR', 'nN', 'wW', 'mM'
177             ],
178             U => [
179             'eE', 'pP', 'yY', 'iI', 'kK', 'jJ'
180             ],
181             V => [
182             'wW', 'nN', 'sS', 'zZ', ( undef ) x 2
183             ],
184             W => [
185             'mM', 'tT', 'nN', 'vV', ( undef ) x 2
186             ],
187             X => [
188             'kK', 'iI', 'dD', 'bB', ( undef ) x 2
189             ],
190             Y => [
191             'pP', '5%', '6^', 'fF', 'iI', 'uU'
192             ],
193             Z => [
194             'vV', 'sS', '-_', ( undef ) x 3
195             ],
196             "[" => [
197             '0)', ( undef ) x 2, ']}', '/?', 'lL'
198             ],
199             "\\" => [
200             '=+', ( undef ) x 5
201             ],
202             "]" => [
203             '[{', ( undef ) x 3, '=+', '/?'
204             ],
205             "^" => [
206             '5%', ( undef ) x 2, '7&', 'fF', 'yY'
207             ],
208             _ => [
209             'sS', '/?', '=+', ( undef ) x 2, 'zZ'
210             ],
211             "`" => [
212             ( undef ) x 3, '1!', ( undef ) x 2
213             ],
214             a => [
215             undef, '\'"', ',<', 'oO', ';:', undef
216             ],
217             b => [
218             'xX', 'dD', 'hH', 'mM', ( undef ) x 2
219             ],
220             c => [
221             'gG', '8*', '9(', 'rR', 'tT', 'hH'
222             ],
223             d => [
224             'iI', 'fF', 'gG', 'hH', 'bB', 'xX'
225             ],
226             e => [
227             'oO', '.>', 'pP', 'uU', 'jJ', 'qQ'
228             ],
229             f => [
230             'yY', '6^', '7&', 'gG', 'dD', 'iI'
231             ],
232             g => [
233             'fF', '7&', '8*', 'cC', 'hH', 'dD'
234             ],
235             h => [
236             'dD', 'gG', 'cC', 'tT', 'mM', 'bB'
237             ],
238             i => [
239             'uU', 'yY', 'fF', 'dD', 'xX', 'kK'
240             ],
241             j => [
242             'qQ', 'eE', 'uU', 'kK', ( undef ) x 2
243             ],
244             k => [
245             'jJ', 'uU', 'iI', 'xX', ( undef ) x 2
246             ],
247             l => [
248             'rR', '0)', '[{', '/?', 'sS', 'nN'
249             ],
250             m => [
251             'bB', 'hH', 'tT', 'wW', ( undef ) x 2
252             ],
253             n => [
254             'tT', 'rR', 'lL', 'sS', 'vV', 'wW'
255             ],
256             o => [
257             'aA', ',<', '.>', 'eE', 'qQ', ';:'
258             ],
259             p => [
260             '.>', '4$', '5%', 'yY', 'uU', 'eE'
261             ],
262             q => [
263             ';:', 'oO', 'eE', 'jJ', ( undef ) x 2
264             ],
265             r => [
266             'cC', '9(', '0)', 'lL', 'nN', 'tT'
267             ],
268             s => [
269             'nN', 'lL', '/?', '-_', 'zZ', 'vV'
270             ],
271             t => [
272             'hH', 'cC', 'rR', 'nN', 'wW', 'mM'
273             ],
274             u => [
275             'eE', 'pP', 'yY', 'iI', 'kK', 'jJ'
276             ],
277             v => [
278             'wW', 'nN', 'sS', 'zZ', ( undef ) x 2
279             ],
280             w => [
281             'mM', 'tT', 'nN', 'vV', ( undef ) x 2
282             ],
283             x => [
284             'kK', 'iI', 'dD', 'bB', ( undef ) x 2
285             ],
286             y => [
287             'pP', '5%', '6^', 'fF', 'iI', 'uU'
288             ],
289             z => [
290             'vV', 'sS', '-_', ( undef ) x 3
291             ],
292             "{" => [
293             '0)', ( undef ) x 2, ']}', '/?', 'lL'
294             ],
295             "|" => [
296             '=+', ( undef ) x 5
297             ],
298             "}" => [
299             '[{', ( undef ) x 3, '=+', '/?'
300             ],
301             "~" => [
302             ( undef ) x 3, '1!', ( undef ) x 2
303             ]
304             },
305             starting_positions => 94
306             },
307             qwerty => {
308             average_degree => 4.59574468085106,
309             keys => {
310             "!" => [
311             '`~', ( undef ) x 2, '2@', 'qQ', undef
312             ],
313             "\"" => [
314             ';:', '[{', ']}', ( undef ) x 2, '/?'
315             ],
316             "#" => [
317             '2@', ( undef ) x 2, '4$', 'eE', 'wW'
318             ],
319             "\$" => [
320             '3#', ( undef ) x 2, '5%', 'rR', 'eE'
321             ],
322             "%" => [
323             '4$', ( undef ) x 2, '6^', 'tT', 'rR'
324             ],
325             "&" => [
326             '6^', ( undef ) x 2, '8*', 'uU', 'yY'
327             ],
328             "'" => [
329             ';:', '[{', ']}', ( undef ) x 2, '/?'
330             ],
331             "(" => [
332             '8*', ( undef ) x 2, '0)', 'oO', 'iI'
333             ],
334             ")" => [
335             '9(', ( undef ) x 2, '-_', 'pP', 'oO'
336             ],
337             "*" => [
338             '7&', ( undef ) x 2, '9(', 'iI', 'uU'
339             ],
340             "+" => [
341             '-_', ( undef ) x 3, ']}', '[{'
342             ],
343             "," => [
344             'mM', 'kK', 'lL', '.>', ( undef ) x 2
345             ],
346             "-" => [
347             '0)', ( undef ) x 2, '=+', '[{', 'pP'
348             ],
349             "." => [
350             ',<', 'lL', ';:', '/?', ( undef ) x 2
351             ],
352             "/" => [
353             '.>', ';:', '\'"', ( undef ) x 3
354             ],
355             0 => [
356             '9(', ( undef ) x 2, '-_', 'pP', 'oO'
357             ],
358             1 => [
359             '`~', ( undef ) x 2, '2@', 'qQ', undef
360             ],
361             2 => [
362             '1!', ( undef ) x 2, '3#', 'wW', 'qQ'
363             ],
364             3 => [
365             '2@', ( undef ) x 2, '4$', 'eE', 'wW'
366             ],
367             4 => [
368             '3#', ( undef ) x 2, '5%', 'rR', 'eE'
369             ],
370             5 => [
371             '4$', ( undef ) x 2, '6^', 'tT', 'rR'
372             ],
373             6 => [
374             '5%', ( undef ) x 2, '7&', 'yY', 'tT'
375             ],
376             7 => [
377             '6^', ( undef ) x 2, '8*', 'uU', 'yY'
378             ],
379             8 => [
380             '7&', ( undef ) x 2, '9(', 'iI', 'uU'
381             ],
382             9 => [
383             '8*', ( undef ) x 2, '0)', 'oO', 'iI'
384             ],
385             ":" => [
386             'lL', 'pP', '[{', '\'"', '/?', '.>'
387             ],
388             ";" => [
389             'lL', 'pP', '[{', '\'"', '/?', '.>'
390             ],
391             "<" => [
392             'mM', 'kK', 'lL', '.>', ( undef ) x 2
393             ],
394             "=" => [
395             '-_', ( undef ) x 3, ']}', '[{'
396             ],
397             ">" => [
398             ',<', 'lL', ';:', '/?', ( undef ) x 2
399             ],
400             "?" => [
401             '.>', ';:', '\'"', ( undef ) x 3
402             ],
403             "\@" => [
404             '1!', ( undef ) x 2, '3#', 'wW', 'qQ'
405             ],
406             A => [
407             undef, 'qQ', 'wW', 'sS', 'zZ', undef
408             ],
409             B => [
410             'vV', 'gG', 'hH', 'nN', ( undef ) x 2
411             ],
412             C => [
413             'xX', 'dD', 'fF', 'vV', ( undef ) x 2
414             ],
415             D => [
416             'sS', 'eE', 'rR', 'fF', 'cC', 'xX'
417             ],
418             E => [
419             'wW', '3#', '4$', 'rR', 'dD', 'sS'
420             ],
421             F => [
422             'dD', 'rR', 'tT', 'gG', 'vV', 'cC'
423             ],
424             G => [
425             'fF', 'tT', 'yY', 'hH', 'bB', 'vV'
426             ],
427             H => [
428             'gG', 'yY', 'uU', 'jJ', 'nN', 'bB'
429             ],
430             I => [
431             'uU', '8*', '9(', 'oO', 'kK', 'jJ'
432             ],
433             J => [
434             'hH', 'uU', 'iI', 'kK', 'mM', 'nN'
435             ],
436             K => [
437             'jJ', 'iI', 'oO', 'lL', ',<', 'mM'
438             ],
439             L => [
440             'kK', 'oO', 'pP', ';:', '.>', ',<'
441             ],
442             M => [
443             'nN', 'jJ', 'kK', ',<', ( undef ) x 2
444             ],
445             N => [
446             'bB', 'hH', 'jJ', 'mM', ( undef ) x 2
447             ],
448             O => [
449             'iI', '9(', '0)', 'pP', 'lL', 'kK'
450             ],
451             P => [
452             'oO', '0)', '-_', '[{', ';:', 'lL'
453             ],
454             Q => [
455             undef, '1!', '2@', 'wW', 'aA', undef
456             ],
457             R => [
458             'eE', '4$', '5%', 'tT', 'fF', 'dD'
459             ],
460             S => [
461             'aA', 'wW', 'eE', 'dD', 'xX', 'zZ'
462             ],
463             T => [
464             'rR', '5%', '6^', 'yY', 'gG', 'fF'
465             ],
466             U => [
467             'yY', '7&', '8*', 'iI', 'jJ', 'hH'
468             ],
469             V => [
470             'cC', 'fF', 'gG', 'bB', ( undef ) x 2
471             ],
472             W => [
473             'qQ', '2@', '3#', 'eE', 'sS', 'aA'
474             ],
475             X => [
476             'zZ', 'sS', 'dD', 'cC', ( undef ) x 2
477             ],
478             Y => [
479             'tT', '6^', '7&', 'uU', 'hH', 'gG'
480             ],
481             Z => [
482             undef, 'aA', 'sS', 'xX', ( undef ) x 2
483             ],
484             "[" => [
485             'pP', '-_', '=+', ']}', '\'"', ';:'
486             ],
487             "\\" => [
488             ']}', ( undef ) x 5
489             ],
490             "]" => [
491             '[{', '=+', undef, '\\|', undef, '\'"'
492             ],
493             "^" => [
494             '5%', ( undef ) x 2, '7&', 'yY', 'tT'
495             ],
496             _ => [
497             '0)', ( undef ) x 2, '=+', '[{', 'pP'
498             ],
499             "`" => [
500             ( undef ) x 3, '1!', ( undef ) x 2
501             ],
502             a => [
503             undef, 'qQ', 'wW', 'sS', 'zZ', undef
504             ],
505             b => [
506             'vV', 'gG', 'hH', 'nN', ( undef ) x 2
507             ],
508             c => [
509             'xX', 'dD', 'fF', 'vV', ( undef ) x 2
510             ],
511             d => [
512             'sS', 'eE', 'rR', 'fF', 'cC', 'xX'
513             ],
514             e => [
515             'wW', '3#', '4$', 'rR', 'dD', 'sS'
516             ],
517             f => [
518             'dD', 'rR', 'tT', 'gG', 'vV', 'cC'
519             ],
520             g => [
521             'fF', 'tT', 'yY', 'hH', 'bB', 'vV'
522             ],
523             h => [
524             'gG', 'yY', 'uU', 'jJ', 'nN', 'bB'
525             ],
526             i => [
527             'uU', '8*', '9(', 'oO', 'kK', 'jJ'
528             ],
529             j => [
530             'hH', 'uU', 'iI', 'kK', 'mM', 'nN'
531             ],
532             k => [
533             'jJ', 'iI', 'oO', 'lL', ',<', 'mM'
534             ],
535             l => [
536             'kK', 'oO', 'pP', ';:', '.>', ',<'
537             ],
538             m => [
539             'nN', 'jJ', 'kK', ',<', ( undef ) x 2
540             ],
541             n => [
542             'bB', 'hH', 'jJ', 'mM', ( undef ) x 2
543             ],
544             o => [
545             'iI', '9(', '0)', 'pP', 'lL', 'kK'
546             ],
547             p => [
548             'oO', '0)', '-_', '[{', ';:', 'lL'
549             ],
550             q => [
551             undef, '1!', '2@', 'wW', 'aA', undef
552             ],
553             r => [
554             'eE', '4$', '5%', 'tT', 'fF', 'dD'
555             ],
556             s => [
557             'aA', 'wW', 'eE', 'dD', 'xX', 'zZ'
558             ],
559             t => [
560             'rR', '5%', '6^', 'yY', 'gG', 'fF'
561             ],
562             u => [
563             'yY', '7&', '8*', 'iI', 'jJ', 'hH'
564             ],
565             v => [
566             'cC', 'fF', 'gG', 'bB', ( undef ) x 2
567             ],
568             w => [
569             'qQ', '2@', '3#', 'eE', 'sS', 'aA'
570             ],
571             x => [
572             'zZ', 'sS', 'dD', 'cC', ( undef ) x 2
573             ],
574             y => [
575             'tT', '6^', '7&', 'uU', 'hH', 'gG'
576             ],
577             z => [
578             undef, 'aA', 'sS', 'xX', ( undef ) x 2
579             ],
580             "{" => [
581             'pP', '-_', '=+', ']}', '\'"', ';:'
582             ],
583             "|" => [
584             ']}', ( undef ) x 5
585             ],
586             "}" => [
587             '[{', '=+', undef, '\\|', undef, '\'"'
588             ],
589             "~" => [
590             ( undef ) x 3, '1!', ( undef ) x 2
591             ]
592             },
593             starting_positions => 94
594             }
595             )
596             ;
597              
598             1;