import java.io.BufferedReader ;
import java.io.FileReader ;
import java.io.IOException ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.Random ;
class LoginGenerator
{
private final List< String> words;
private final int size;
{
{
words = new ArrayList< String> ( ) ;
while ( ( line = in.readLine ( ) ) != null )
{
if ( ! line.endsWith ( "'s" ) )
{
words.add ( line) ;
}
}
size = words.size ( ) ;
}
}
{
int randomIndex = rng.nextInt ( size) ;
return words.get ( randomIndex) ;
}
{
return randomWord( ) + "-" + randomWord( ) ;
}
public static void main
( String [ ] args
) {
String dictionary
= "/usr/share/dict/words" ; try
{
LoginGenerator generator = new LoginGenerator( dictionary) ;
for ( int i = 0 ; i < 100 ; ++ i)
{
System .
out .
println ( generator.
randomLogin ( ) ) ; }
}
{
System .
out .
println ( "error reading from " + dictionary
) ; ex.printStackTrace ( ) ;
}
}
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CmltcG9ydCBqYXZhLmlvLkZpbGVSZWFkZXI7CmltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwppbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKCmNsYXNzIExvZ2luR2VuZXJhdG9yCnsKICAgIHByaXZhdGUgZmluYWwgTGlzdDxTdHJpbmc+IHdvcmRzOwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgc2l6ZTsKICAgIHByaXZhdGUgUmFuZG9tIHJuZyA9IG5ldyBSYW5kb20oKTsKCiAgICBwdWJsaWMgTG9naW5HZW5lcmF0b3IoU3RyaW5nIGRpY3Rpb25hcnkpIHRocm93cyBJT0V4Y2VwdGlvbgogICAgewogICAgICAgIHRyeSAoQnVmZmVyZWRSZWFkZXIgaW4gPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IEZpbGVSZWFkZXIoZGljdGlvbmFyeSkpKQogICAgICAgIHsKICAgICAgICAgICAgd29yZHMgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKICAgICAgICAgICAgU3RyaW5nIGxpbmU7CiAgICAgICAgICAgIHdoaWxlICgobGluZSA9IGluLnJlYWRMaW5lKCkpICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICghbGluZS5lbmRzV2l0aCgiJ3MiKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3b3Jkcy5hZGQobGluZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2l6ZSA9IHdvcmRzLnNpemUoKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBTdHJpbmcgcmFuZG9tV29yZCgpCiAgICB7CiAgICAgICAgaW50IHJhbmRvbUluZGV4ID0gcm5nLm5leHRJbnQoc2l6ZSk7CiAgICAgICAgcmV0dXJuIHdvcmRzLmdldChyYW5kb21JbmRleCk7CiAgICB9CiAgICAKICAgIHB1YmxpYyBTdHJpbmcgcmFuZG9tTG9naW4oKQogICAgewogICAgICAgIHJldHVybiByYW5kb21Xb3JkKCkgKyAiLSIgKyByYW5kb21Xb3JkKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICAgIHsKICAgICAgICBTdHJpbmcgZGljdGlvbmFyeSA9ICIvdXNyL3NoYXJlL2RpY3Qvd29yZHMiOyAKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIExvZ2luR2VuZXJhdG9yIGdlbmVyYXRvciA9IG5ldyBMb2dpbkdlbmVyYXRvcihkaWN0aW9uYXJ5KTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDA7ICsraSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGdlbmVyYXRvci5yYW5kb21Mb2dpbigpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVycm9yIHJlYWRpbmcgZnJvbSAiICsgZGljdGlvbmFyeSk7CiAgICAgICAgICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgIH0KICAgIH0KfQo=