4 <meta charset=
"utf-8" />
5 <title>BIP39 - Mnemonic Code
</title>
7 * Bootstrap v3.2
.0 (http://getbootstrap.com)
8 * Copyright
2011-
2014 Twitter, Inc.
9 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
10 *//*! normalize.css v3.0
.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:
100%;-ms-text-size-adjust:
100%}body{margin:
0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:
0}[hidden],template{display:none}a{background:
0 0}a:active,a:hover{outline:
0}abbr[title]{border-bottom:
1px dotted}b,strong{font-weight:
700}dfn{font-style:italic}h1{margin:
.67em
0;font-size:
2em}mark{color:#
000;background:#ff0}small{font-size:
80%}sub,sup{position:relative;font-size:
75%;line-height:
0;vertical-align:baseline}sup{top:-
.5em}sub{bottom:-
.25em}img{border:
0}svg:not(:root){overflow:hidden}figure{margin:
1em
40px}hr{height:
0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:
1em}button,input,optgroup,select,textarea{margin:
0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:
0;border:
0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:
0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:
.35em
.625em
.75em;margin:
0 2px;border:
1px solid silver}legend{padding:
0;border:
0}textarea{overflow:auto}optgroup{font-weight:
700}table{border-spacing:
0;border-collapse:collapse}td,th{padding:
0}@media print{*{color:#
000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:
1px solid #
999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:
100%!important}p,h2,h3{orphans:
3;widows:
3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn
>.caret,.dropup
>.btn
>.caret{border-top-color:#
000!important}.label{border:
1px solid #
000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:
1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:
1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:
400;line-height:
1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\
2a"}.glyphicon-plus:before{content:"\
2b"}.glyphicon-euro:before{content:"\
20ac"}.glyphicon-minus:before{content:"\
2212"}.glyphicon-cloud:before{content:"\
2601"}.glyphicon-envelope:before{content:"\
2709"}.glyphicon-pencil:before{content:"\
270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-
5-
1:before{content:"\e191"}.glyphicon-sound-
6-
1:before{content:"\e192"}.glyphicon-sound-
7-
1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:
10px;-webkit-tap-highlight-color:rgba(
0,
0,
0,
0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:
14px;line-height:
1.42857143;color:#
333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#
428bca;text-decoration:none}a:hover,a:focus{color:#
2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}figure{margin:
0}img{vertical-align:middle}.img-responsive,.thumbnail
>img,.thumbnail a
>img,.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{display:block;width:
100% \
9;max-width:
100%;height:auto}.img-rounded{border-radius:
6px}.img-thumbnail{display:inline-block;width:
100% \
9;max-width:
100%;height:auto;padding:
4px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.img-circle{border-radius:
50%}hr{margin-top:
20px;margin-bottom:
20px;border:
0;border-top:
1px solid #eee}.sr-only{position:absolute;width:
1px;height:
1px;padding:
0;margin:-
1px;overflow:hidden;clip:rect(
0,
0,
0,
0);border:
0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:
0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:
500;line-height:
1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:
400;line-height:
1;color:#
777}h1,.h1,h2,.h2,h3,.h3{margin-top:
20px;margin-bottom:
10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:
65%}h4,.h4,h5,.h5,h6,.h6{margin-top:
10px;margin-bottom:
10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:
75%}h1,.h1{font-size:
36px}h2,.h2{font-size:
30px}h3,.h3{font-size:
24px}h4,.h4{font-size:
18px}h5,.h5{font-size:
14px}h6,.h6{font-size:
12px}p{margin:
0 0 10px}.lead{margin-bottom:
20px;font-size:
16px;font-weight:
300;line-height:
1.4}@media (min-width:
768px){.lead{font-size:
21px}}small,.small{font-size:
85%}cite{font-style:normal}mark,.mark{padding:
.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#
777}.text-primary{color:#
428bca}a.text-primary:hover{color:#
3071a9}.text-success{color:#
3c763d}a.text-success:hover{color:#
2b542c}.text-info{color:#
31708f}a.text-info:hover{color:#
245269}.text-warning{color:#
8a6d3b}a.text-warning:hover{color:#
66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#
843534}.bg-primary{color:#fff;background-color:#
428bca}a.bg-primary:hover{background-color:#
3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:
9px;margin:
40px
0 20px;border-bottom:
1px solid #eee}ul,ol{margin-top:
0;margin-bottom:
10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:
0}.list-unstyled{padding-left:
0;list-style:none}.list-inline{padding-left:
0;margin-left:-
5px;list-style:none}.list-inline
>li{display:inline-block;padding-right:
5px;padding-left:
5px}dl{margin-top:
0;margin-bottom:
20px}dt,dd{line-height:
1.42857143}dt{font-weight:
700}dd{margin-left:
0}@media (min-width:
768px){.dl-horizontal dt{float:left;width:
160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:
180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:
1px dotted #
777}.initialism{font-size:
90%;text-transform:uppercase}blockquote{padding:
10px
20px;margin:
0 0 20px;font-size:
17.5px;border-left:
5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:
0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:
80%;line-height:
1.42857143;color:#
777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\
2014 \
00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:
15px;padding-left:
0;text-align:right;border-right:
5px solid #eee;border-left:
0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\
00A0 \
2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:
20px;font-style:normal;line-height:
1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:
2px
4px;font-size:
90%;color:#c7254e;background-color:#f9f2f4;border-radius:
4px}kbd{padding:
2px
4px;font-size:
90%;color:#fff;background-color:#
333;border-radius:
3px;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25)}kbd kbd{padding:
0;font-size:
100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:
9.5px;margin:
0 0 10px;font-size:
13px;line-height:
1.42857143;color:#
333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:
1px solid #ccc;border-radius:
4px}pre code{padding:
0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:
0}.pre-scrollable{max-height:
340px;overflow-y:scroll}.container{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}@media (min-width:
768px){.container{width:
750px}}@media (min-width:
992px){.container{width:
970px}}@media (min-width:
1200px){.container{width:
1170px}}.container-fluid{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}.row{margin-right:-
15px;margin-left:-
15px}.col-xs-
1,.col-sm-
1,.col-md-
1,.col-lg-
1,.col-xs-
2,.col-sm-
2,.col-md-
2,.col-lg-
2,.col-xs-
3,.col-sm-
3,.col-md-
3,.col-lg-
3,.col-xs-
4,.col-sm-
4,.col-md-
4,.col-lg-
4,.col-xs-
5,.col-sm-
5,.col-md-
5,.col-lg-
5,.col-xs-
6,.col-sm-
6,.col-md-
6,.col-lg-
6,.col-xs-
7,.col-sm-
7,.col-md-
7,.col-lg-
7,.col-xs-
8,.col-sm-
8,.col-md-
8,.col-lg-
8,.col-xs-
9,.col-sm-
9,.col-md-
9,.col-lg-
9,.col-xs-
10,.col-sm-
10,.col-md-
10,.col-lg-
10,.col-xs-
11,.col-sm-
11,.col-md-
11,.col-lg-
11,.col-xs-
12,.col-sm-
12,.col-md-
12,.col-lg-
12{position:relative;min-height:
1px;padding-right:
15px;padding-left:
15px}.col-xs-
1,.col-xs-
2,.col-xs-
3,.col-xs-
4,.col-xs-
5,.col-xs-
6,.col-xs-
7,.col-xs-
8,.col-xs-
9,.col-xs-
10,.col-xs-
11,.col-xs-
12{float:left}.col-xs-
12{width:
100%}.col-xs-
11{width:
91.66666667%}.col-xs-
10{width:
83.33333333%}.col-xs-
9{width:
75%}.col-xs-
8{width:
66.66666667%}.col-xs-
7{width:
58.33333333%}.col-xs-
6{width:
50%}.col-xs-
5{width:
41.66666667%}.col-xs-
4{width:
33.33333333%}.col-xs-
3{width:
25%}.col-xs-
2{width:
16.66666667%}.col-xs-
1{width:
8.33333333%}.col-xs-pull-
12{right:
100%}.col-xs-pull-
11{right:
91.66666667%}.col-xs-pull-
10{right:
83.33333333%}.col-xs-pull-
9{right:
75%}.col-xs-pull-
8{right:
66.66666667%}.col-xs-pull-
7{right:
58.33333333%}.col-xs-pull-
6{right:
50%}.col-xs-pull-
5{right:
41.66666667%}.col-xs-pull-
4{right:
33.33333333%}.col-xs-pull-
3{right:
25%}.col-xs-pull-
2{right:
16.66666667%}.col-xs-pull-
1{right:
8.33333333%}.col-xs-pull-
0{right:auto}.col-xs-push-
12{left:
100%}.col-xs-push-
11{left:
91.66666667%}.col-xs-push-
10{left:
83.33333333%}.col-xs-push-
9{left:
75%}.col-xs-push-
8{left:
66.66666667%}.col-xs-push-
7{left:
58.33333333%}.col-xs-push-
6{left:
50%}.col-xs-push-
5{left:
41.66666667%}.col-xs-push-
4{left:
33.33333333%}.col-xs-push-
3{left:
25%}.col-xs-push-
2{left:
16.66666667%}.col-xs-push-
1{left:
8.33333333%}.col-xs-push-
0{left:auto}.col-xs-offset-
12{margin-left:
100%}.col-xs-offset-
11{margin-left:
91.66666667%}.col-xs-offset-
10{margin-left:
83.33333333%}.col-xs-offset-
9{margin-left:
75%}.col-xs-offset-
8{margin-left:
66.66666667%}.col-xs-offset-
7{margin-left:
58.33333333%}.col-xs-offset-
6{margin-left:
50%}.col-xs-offset-
5{margin-left:
41.66666667%}.col-xs-offset-
4{margin-left:
33.33333333%}.col-xs-offset-
3{margin-left:
25%}.col-xs-offset-
2{margin-left:
16.66666667%}.col-xs-offset-
1{margin-left:
8.33333333%}.col-xs-offset-
0{margin-left:
0}@media (min-width:
768px){.col-sm-
1,.col-sm-
2,.col-sm-
3,.col-sm-
4,.col-sm-
5,.col-sm-
6,.col-sm-
7,.col-sm-
8,.col-sm-
9,.col-sm-
10,.col-sm-
11,.col-sm-
12{float:left}.col-sm-
12{width:
100%}.col-sm-
11{width:
91.66666667%}.col-sm-
10{width:
83.33333333%}.col-sm-
9{width:
75%}.col-sm-
8{width:
66.66666667%}.col-sm-
7{width:
58.33333333%}.col-sm-
6{width:
50%}.col-sm-
5{width:
41.66666667%}.col-sm-
4{width:
33.33333333%}.col-sm-
3{width:
25%}.col-sm-
2{width:
16.66666667%}.col-sm-
1{width:
8.33333333%}.col-sm-pull-
12{right:
100%}.col-sm-pull-
11{right:
91.66666667%}.col-sm-pull-
10{right:
83.33333333%}.col-sm-pull-
9{right:
75%}.col-sm-pull-
8{right:
66.66666667%}.col-sm-pull-
7{right:
58.33333333%}.col-sm-pull-
6{right:
50%}.col-sm-pull-
5{right:
41.66666667%}.col-sm-pull-
4{right:
33.33333333%}.col-sm-pull-
3{right:
25%}.col-sm-pull-
2{right:
16.66666667%}.col-sm-pull-
1{right:
8.33333333%}.col-sm-pull-
0{right:auto}.col-sm-push-
12{left:
100%}.col-sm-push-
11{left:
91.66666667%}.col-sm-push-
10{left:
83.33333333%}.col-sm-push-
9{left:
75%}.col-sm-push-
8{left:
66.66666667%}.col-sm-push-
7{left:
58.33333333%}.col-sm-push-
6{left:
50%}.col-sm-push-
5{left:
41.66666667%}.col-sm-push-
4{left:
33.33333333%}.col-sm-push-
3{left:
25%}.col-sm-push-
2{left:
16.66666667%}.col-sm-push-
1{left:
8.33333333%}.col-sm-push-
0{left:auto}.col-sm-offset-
12{margin-left:
100%}.col-sm-offset-
11{margin-left:
91.66666667%}.col-sm-offset-
10{margin-left:
83.33333333%}.col-sm-offset-
9{margin-left:
75%}.col-sm-offset-
8{margin-left:
66.66666667%}.col-sm-offset-
7{margin-left:
58.33333333%}.col-sm-offset-
6{margin-left:
50%}.col-sm-offset-
5{margin-left:
41.66666667%}.col-sm-offset-
4{margin-left:
33.33333333%}.col-sm-offset-
3{margin-left:
25%}.col-sm-offset-
2{margin-left:
16.66666667%}.col-sm-offset-
1{margin-left:
8.33333333%}.col-sm-offset-
0{margin-left:
0}}@media (min-width:
992px){.col-md-
1,.col-md-
2,.col-md-
3,.col-md-
4,.col-md-
5,.col-md-
6,.col-md-
7,.col-md-
8,.col-md-
9,.col-md-
10,.col-md-
11,.col-md-
12{float:left}.col-md-
12{width:
100%}.col-md-
11{width:
91.66666667%}.col-md-
10{width:
83.33333333%}.col-md-
9{width:
75%}.col-md-
8{width:
66.66666667%}.col-md-
7{width:
58.33333333%}.col-md-
6{width:
50%}.col-md-
5{width:
41.66666667%}.col-md-
4{width:
33.33333333%}.col-md-
3{width:
25%}.col-md-
2{width:
16.66666667%}.col-md-
1{width:
8.33333333%}.col-md-pull-
12{right:
100%}.col-md-pull-
11{right:
91.66666667%}.col-md-pull-
10{right:
83.33333333%}.col-md-pull-
9{right:
75%}.col-md-pull-
8{right:
66.66666667%}.col-md-pull-
7{right:
58.33333333%}.col-md-pull-
6{right:
50%}.col-md-pull-
5{right:
41.66666667%}.col-md-pull-
4{right:
33.33333333%}.col-md-pull-
3{right:
25%}.col-md-pull-
2{right:
16.66666667%}.col-md-pull-
1{right:
8.33333333%}.col-md-pull-
0{right:auto}.col-md-push-
12{left:
100%}.col-md-push-
11{left:
91.66666667%}.col-md-push-
10{left:
83.33333333%}.col-md-push-
9{left:
75%}.col-md-push-
8{left:
66.66666667%}.col-md-push-
7{left:
58.33333333%}.col-md-push-
6{left:
50%}.col-md-push-
5{left:
41.66666667%}.col-md-push-
4{left:
33.33333333%}.col-md-push-
3{left:
25%}.col-md-push-
2{left:
16.66666667%}.col-md-push-
1{left:
8.33333333%}.col-md-push-
0{left:auto}.col-md-offset-
12{margin-left:
100%}.col-md-offset-
11{margin-left:
91.66666667%}.col-md-offset-
10{margin-left:
83.33333333%}.col-md-offset-
9{margin-left:
75%}.col-md-offset-
8{margin-left:
66.66666667%}.col-md-offset-
7{margin-left:
58.33333333%}.col-md-offset-
6{margin-left:
50%}.col-md-offset-
5{margin-left:
41.66666667%}.col-md-offset-
4{margin-left:
33.33333333%}.col-md-offset-
3{margin-left:
25%}.col-md-offset-
2{margin-left:
16.66666667%}.col-md-offset-
1{margin-left:
8.33333333%}.col-md-offset-
0{margin-left:
0}}@media (min-width:
1200px){.col-lg-
1,.col-lg-
2,.col-lg-
3,.col-lg-
4,.col-lg-
5,.col-lg-
6,.col-lg-
7,.col-lg-
8,.col-lg-
9,.col-lg-
10,.col-lg-
11,.col-lg-
12{float:left}.col-lg-
12{width:
100%}.col-lg-
11{width:
91.66666667%}.col-lg-
10{width:
83.33333333%}.col-lg-
9{width:
75%}.col-lg-
8{width:
66.66666667%}.col-lg-
7{width:
58.33333333%}.col-lg-
6{width:
50%}.col-lg-
5{width:
41.66666667%}.col-lg-
4{width:
33.33333333%}.col-lg-
3{width:
25%}.col-lg-
2{width:
16.66666667%}.col-lg-
1{width:
8.33333333%}.col-lg-pull-
12{right:
100%}.col-lg-pull-
11{right:
91.66666667%}.col-lg-pull-
10{right:
83.33333333%}.col-lg-pull-
9{right:
75%}.col-lg-pull-
8{right:
66.66666667%}.col-lg-pull-
7{right:
58.33333333%}.col-lg-pull-
6{right:
50%}.col-lg-pull-
5{right:
41.66666667%}.col-lg-pull-
4{right:
33.33333333%}.col-lg-pull-
3{right:
25%}.col-lg-pull-
2{right:
16.66666667%}.col-lg-pull-
1{right:
8.33333333%}.col-lg-pull-
0{right:auto}.col-lg-push-
12{left:
100%}.col-lg-push-
11{left:
91.66666667%}.col-lg-push-
10{left:
83.33333333%}.col-lg-push-
9{left:
75%}.col-lg-push-
8{left:
66.66666667%}.col-lg-push-
7{left:
58.33333333%}.col-lg-push-
6{left:
50%}.col-lg-push-
5{left:
41.66666667%}.col-lg-push-
4{left:
33.33333333%}.col-lg-push-
3{left:
25%}.col-lg-push-
2{left:
16.66666667%}.col-lg-push-
1{left:
8.33333333%}.col-lg-push-
0{left:auto}.col-lg-offset-
12{margin-left:
100%}.col-lg-offset-
11{margin-left:
91.66666667%}.col-lg-offset-
10{margin-left:
83.33333333%}.col-lg-offset-
9{margin-left:
75%}.col-lg-offset-
8{margin-left:
66.66666667%}.col-lg-offset-
7{margin-left:
58.33333333%}.col-lg-offset-
6{margin-left:
50%}.col-lg-offset-
5{margin-left:
41.66666667%}.col-lg-offset-
4{margin-left:
33.33333333%}.col-lg-offset-
3{margin-left:
25%}.col-lg-offset-
2{margin-left:
16.66666667%}.col-lg-offset-
1{margin-left:
8.33333333%}.col-lg-offset-
0{margin-left:
0}}table{background-color:transparent}th{text-align:left}.table{width:
100%;max-width:
100%;margin-bottom:
20px}.table
>thead
>tr
>th,.table
>tbody
>tr
>th,.table
>tfoot
>tr
>th,.table
>thead
>tr
>td,.table
>tbody
>tr
>td,.table
>tfoot
>tr
>td{padding:
8px;line-height:
1.42857143;vertical-align:top;border-top:
1px solid #ddd}.table
>thead
>tr
>th{vertical-align:bottom;border-bottom:
2px solid #ddd}.table
>caption+thead
>tr:first-child
>th,.table
>colgroup+thead
>tr:first-child
>th,.table
>thead:first-child
>tr:first-child
>th,.table
>caption+thead
>tr:first-child
>td,.table
>colgroup+thead
>tr:first-child
>td,.table
>thead:first-child
>tr:first-child
>td{border-top:
0}.table
>tbody+tbody{border-top:
2px solid #ddd}.table .table{background-color:#fff}.table-condensed
>thead
>tr
>th,.table-condensed
>tbody
>tr
>th,.table-condensed
>tfoot
>tr
>th,.table-condensed
>thead
>tr
>td,.table-condensed
>tbody
>tr
>td,.table-condensed
>tfoot
>tr
>td{padding:
5px}.table-bordered{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>tbody
>tr
>th,.table-bordered
>tfoot
>tr
>th,.table-bordered
>thead
>tr
>td,.table-bordered
>tbody
>tr
>td,.table-bordered
>tfoot
>tr
>td{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>thead
>tr
>td{border-bottom-width:
2px}.table-striped
>tbody
>tr:nth-child(odd)
>td,.table-striped
>tbody
>tr:nth-child(odd)
>th{background-color:#f9f9f9}.table-hover
>tbody
>tr:hover
>td,.table-hover
>tbody
>tr:hover
>th{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table
>thead
>tr
>td.active,.table
>tbody
>tr
>td.active,.table
>tfoot
>tr
>td.active,.table
>thead
>tr
>th.active,.table
>tbody
>tr
>th.active,.table
>tfoot
>tr
>th.active,.table
>thead
>tr.active
>td,.table
>tbody
>tr.active
>td,.table
>tfoot
>tr.active
>td,.table
>thead
>tr.active
>th,.table
>tbody
>tr.active
>th,.table
>tfoot
>tr.active
>th{background-color:#f5f5f5}.table-hover
>tbody
>tr
>td.active:hover,.table-hover
>tbody
>tr
>th.active:hover,.table-hover
>tbody
>tr.active:hover
>td,.table-hover
>tbody
>tr:hover
>.active,.table-hover
>tbody
>tr.active:hover
>th{background-color:#e8e8e8}.table
>thead
>tr
>td.success,.table
>tbody
>tr
>td.success,.table
>tfoot
>tr
>td.success,.table
>thead
>tr
>th.success,.table
>tbody
>tr
>th.success,.table
>tfoot
>tr
>th.success,.table
>thead
>tr.success
>td,.table
>tbody
>tr.success
>td,.table
>tfoot
>tr.success
>td,.table
>thead
>tr.success
>th,.table
>tbody
>tr.success
>th,.table
>tfoot
>tr.success
>th{background-color:#dff0d8}.table-hover
>tbody
>tr
>td.success:hover,.table-hover
>tbody
>tr
>th.success:hover,.table-hover
>tbody
>tr.success:hover
>td,.table-hover
>tbody
>tr:hover
>.success,.table-hover
>tbody
>tr.success:hover
>th{background-color:#d0e9c6}.table
>thead
>tr
>td.info,.table
>tbody
>tr
>td.info,.table
>tfoot
>tr
>td.info,.table
>thead
>tr
>th.info,.table
>tbody
>tr
>th.info,.table
>tfoot
>tr
>th.info,.table
>thead
>tr.info
>td,.table
>tbody
>tr.info
>td,.table
>tfoot
>tr.info
>td,.table
>thead
>tr.info
>th,.table
>tbody
>tr.info
>th,.table
>tfoot
>tr.info
>th{background-color:#d9edf7}.table-hover
>tbody
>tr
>td.info:hover,.table-hover
>tbody
>tr
>th.info:hover,.table-hover
>tbody
>tr.info:hover
>td,.table-hover
>tbody
>tr:hover
>.info,.table-hover
>tbody
>tr.info:hover
>th{background-color:#c4e3f3}.table
>thead
>tr
>td.warning,.table
>tbody
>tr
>td.warning,.table
>tfoot
>tr
>td.warning,.table
>thead
>tr
>th.warning,.table
>tbody
>tr
>th.warning,.table
>tfoot
>tr
>th.warning,.table
>thead
>tr.warning
>td,.table
>tbody
>tr.warning
>td,.table
>tfoot
>tr.warning
>td,.table
>thead
>tr.warning
>th,.table
>tbody
>tr.warning
>th,.table
>tfoot
>tr.warning
>th{background-color:#fcf8e3}.table-hover
>tbody
>tr
>td.warning:hover,.table-hover
>tbody
>tr
>th.warning:hover,.table-hover
>tbody
>tr.warning:hover
>td,.table-hover
>tbody
>tr:hover
>.warning,.table-hover
>tbody
>tr.warning:hover
>th{background-color:#faf2cc}.table
>thead
>tr
>td.danger,.table
>tbody
>tr
>td.danger,.table
>tfoot
>tr
>td.danger,.table
>thead
>tr
>th.danger,.table
>tbody
>tr
>th.danger,.table
>tfoot
>tr
>th.danger,.table
>thead
>tr.danger
>td,.table
>tbody
>tr.danger
>td,.table
>tfoot
>tr.danger
>td,.table
>thead
>tr.danger
>th,.table
>tbody
>tr.danger
>th,.table
>tfoot
>tr.danger
>th{background-color:#f2dede}.table-hover
>tbody
>tr
>td.danger:hover,.table-hover
>tbody
>tr
>th.danger:hover,.table-hover
>tbody
>tr.danger:hover
>td,.table-hover
>tbody
>tr:hover
>.danger,.table-hover
>tbody
>tr.danger:hover
>th{background-color:#ebcccc}@media screen and (max-width:
767px){.table-responsive{width:
100%;margin-bottom:
15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:
1px solid #ddd}.table-responsive
>.table{margin-bottom:
0}.table-responsive
>.table
>thead
>tr
>th,.table-responsive
>.table
>tbody
>tr
>th,.table-responsive
>.table
>tfoot
>tr
>th,.table-responsive
>.table
>thead
>tr
>td,.table-responsive
>.table
>tbody
>tr
>td,.table-responsive
>.table
>tfoot
>tr
>td{white-space:nowrap}.table-responsive
>.table-bordered{border:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th,.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td{border-bottom:
0}}fieldset{min-width:
0;padding:
0;margin:
0;border:
0}legend{display:block;width:
100%;padding:
0;margin-bottom:
20px;font-size:
21px;line-height:inherit;color:#
333;border:
0;border-bottom:
1px solid #e5e5e5}label{display:inline-block;max-width:
100%;margin-bottom:
5px;font-weight:
700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:
4px
0 0;margin-top:
1px \
9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:
100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}output{display:block;padding-top:
7px;font-size:
14px;line-height:
1.42857143;color:#
555}.form-control{display:block;width:
100%;height:
34px;padding:
6px
12px;font-size:
14px;line-height:
1.42857143;color:#
555;background-color:#fff;background-image:none;border:
1px solid #ccc;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);-webkit-transition:border-color ease-in-out
.15s,-webkit-box-shadow ease-in-out
.15s;-o-transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s;transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s}.form-control:focus{border-color:#
66afe9;outline:
0;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6)}.form-control::-moz-placeholder{color:#
777;opacity:
1}.form-control:-ms-input-placeholder{color:#
777}.form-control::-webkit-input-placeholder{color:#
777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:
1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:
34px;line-height:
1.42857143 \
0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:
30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:
46px}.form-group{margin-bottom:
15px}.radio,.checkbox{position:relative;display:block;min-height:
20px;margin-top:
10px;margin-bottom:
10px}.radio label,.checkbox label{padding-left:
20px;margin-bottom:
0;font-weight:
400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:
4px \
9;margin-left:-
20px}.radio+.radio,.checkbox+.checkbox{margin-top:-
5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:
20px;margin-bottom:
0;font-weight:
400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:
0;margin-left:
10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:
7px;padding-bottom:
7px;margin-bottom:
0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:
0;padding-left:
0}.input-sm,.form-horizontal .form-group-sm .form-control{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-sm{height:
30px;line-height:
30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-lg{height:
46px;line-height:
46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:
42.5px}.form-control-feedback{position:absolute;top:
25px;right:
0;z-index:
2;display:block;width:
34px;height:
34px;line-height:
34px;text-align:center}.input-lg+.form-control-feedback{width:
46px;height:
46px;line-height:
46px}.input-sm+.form-control-feedback{width:
30px;height:
30px;line-height:
30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#
3c763d}.has-success .form-control{border-color:#
3c763d;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-success .form-control:focus{border-color:#
2b542c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168}.has-success .input-group-addon{color:#
3c763d;background-color:#dff0d8;border-color:#
3c763d}.has-success .form-control-feedback{color:#
3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#
8a6d3b}.has-warning .form-control{border-color:#
8a6d3b;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-warning .form-control:focus{border-color:#
66512c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b}.has-warning .input-group-addon{color:#
8a6d3b;background-color:#fcf8e3;border-color:#
8a6d3b}.has-warning .form-control-feedback{color:#
8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-error .form-control:focus{border-color:#
843534;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:
0}.help-block{display:block;margin-top:
5px;margin-bottom:
10px;color:#
737373}@media (min-width:
768px){.form-inline .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group
>.form-control{width:
100%}.form-inline .control-label{margin-bottom:
0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:
0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:
0}.form-inline .has-feedback .form-control-feedback{top:
0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:
7px;margin-top:
0;margin-bottom:
0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:
27px}.form-horizontal .form-group{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.form-horizontal .control-label{padding-top:
7px;margin-bottom:
0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:
0;right:
15px}@media (min-width:
768px){.form-horizontal .form-group-lg .control-label{padding-top:
14.3px}}@media (min-width:
768px){.form-horizontal .form-group-sm .control-label{padding-top:
6px}}.btn{display:inline-block;padding:
6px
12px;margin-bottom:
0;font-size:
14px;font-weight:
400;line-height:
1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:
1px solid transparent;border-radius:
4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}.btn:hover,.btn:focus{color:#
333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:
0;-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=
65);-webkit-box-shadow:none;box-shadow:none;opacity:
.65}.btn-default{color:#
333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{color:#
333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#
333}.btn-primary{color:#fff;background-color:#
428bca;border-color:#
357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{color:#fff;background-color:#
3071a9;border-color:#
285e8e}.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#
428bca;border-color:#
357ebd}.btn-primary .badge{color:#
428bca;background-color:#fff}.btn-success{color:#fff;background-color:#
5cb85c;border-color:#
4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{color:#fff;background-color:#
449d44;border-color:#
398439}.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#
5cb85c;border-color:#
4cae4c}.btn-success .badge{color:#
5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#
5bc0de;border-color:#
46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{color:#fff;background-color:#
31b0d5;border-color:#
269abc}.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#
5bc0de;border-color:#
46b8da}.btn-info .badge{color:#
5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:
400;color:#
428bca;cursor:pointer;border-radius:
0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#
2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#
777;text-decoration:none}.btn-lg,.btn-group-lg
>.btn{padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}.btn-sm,.btn-group-sm
>.btn{padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-xs,.btn-group-xs
>.btn{padding:
1px
5px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-block{display:block;width:
100%}.btn-block+.btn-block{margin-top:
5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:
100%}.fade{opacity:
0;-webkit-transition:opacity
.15s linear;-o-transition:opacity
.15s linear;transition:opacity
.15s linear}.fade.in{opacity:
1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:
0;overflow:hidden;-webkit-transition:height
.35s ease;-o-transition:height
.35s ease;transition:height
.35s ease}.caret{display:inline-block;width:
0;height:
0;margin-left:
2px;vertical-align:middle;border-top:
4px solid;border-right:
4px solid transparent;border-left:
4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:
0}.dropdown-menu{position:absolute;top:
100%;left:
0;z-index:
1000;display:none;float:left;min-width:
160px;padding:
5px
0;margin:
2px
0 0;font-size:
14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.15);border-radius:
4px;-webkit-box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175);box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175)}.dropdown-menu.pull-right{right:
0;left:auto}.dropdown-menu .divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu
>li
>a{display:block;padding:
3px
20px;clear:both;font-weight:
400;line-height:
1.42857143;color:#
333;white-space:nowrap}.dropdown-menu
>li
>a:hover,.dropdown-menu
>li
>a:focus{color:#
262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu
>.active
>a,.dropdown-menu
>.active
>a:hover,.dropdown-menu
>.active
>a:focus{color:#fff;text-decoration:none;background-color:#
428bca;outline:
0}.dropdown-menu
>.disabled
>a,.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{color:#
777}.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open
>.dropdown-menu{display:block}.open
>a{outline:
0}.dropdown-menu-right{right:
0;left:auto}.dropdown-menu-left{right:auto;left:
0}.dropdown-header{display:block;padding:
3px
20px;font-size:
12px;line-height:
1.42857143;color:#
777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
990}.pull-right
>.dropdown-menu{right:
0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:
0;border-bottom:
4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:
100%;margin-bottom:
1px}@media (min-width:
768px){.navbar-right .dropdown-menu{right:
0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:
0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group
>.btn,.btn-group-vertical
>.btn{position:relative;float:left}.btn-group
>.btn:hover,.btn-group-vertical
>.btn:hover,.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus,.btn-group
>.btn:active,.btn-group-vertical
>.btn:active,.btn-group
>.btn.active,.btn-group-vertical
>.btn.active{z-index:
2}.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus{outline:
0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-
1px}.btn-toolbar{margin-left:-
5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar
>.btn,.btn-toolbar
>.btn-group,.btn-toolbar
>.input-group{margin-left:
5px}.btn-group
>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:
0}.btn-group
>.btn:first-child{margin-left:
0}.btn-group
>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn:last-child:not(:first-child),.btn-group
>.dropdown-toggle:not(:first-child){border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group
>.btn-group{float:left}.btn-group
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group
>.btn-group:first-child
>.btn:last-child,.btn-group
>.btn-group:first-child
>.dropdown-toggle{border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn-group:last-child
>.btn:first-child{border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:
0}.btn-group
>.btn+.dropdown-toggle{padding-right:
8px;padding-left:
8px}.btn-group
>.btn-lg+.dropdown-toggle{padding-right:
12px;padding-left:
12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:
0}.btn-lg .caret{border-width:
5px
5px
0;border-bottom-width:
0}.dropup .btn-lg .caret{border-width:
0 5px
5px}.btn-group-vertical
>.btn,.btn-group-vertical
>.btn-group,.btn-group-vertical
>.btn-group
>.btn{display:block;float:none;width:
100%;max-width:
100%}.btn-group-vertical
>.btn-group
>.btn{float:none}.btn-group-vertical
>.btn+.btn,.btn-group-vertical
>.btn+.btn-group,.btn-group-vertical
>.btn-group+.btn,.btn-group-vertical
>.btn-group+.btn-group{margin-top:-
1px;margin-left:
0}.btn-group-vertical
>.btn:not(:first-child):not(:last-child){border-radius:
0}.btn-group-vertical
>.btn:first-child:not(:last-child){border-top-right-radius:
4px;border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn:last-child:not(:first-child){border-top-left-radius:
0;border-top-right-radius:
0;border-bottom-left-radius:
4px}.btn-group-vertical
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.btn:last-child,.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.dropdown-toggle{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn-group:last-child:not(:first-child)
>.btn:first-child{border-top-left-radius:
0;border-top-right-radius:
0}.btn-group-justified{display:table;width:
100%;table-layout:fixed;border-collapse:separate}.btn-group-justified
>.btn,.btn-group-justified
>.btn-group{display:table-cell;float:none;width:
1%}.btn-group-justified
>.btn-group .btn{width:
100%}.btn-group-justified
>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]
>.btn
>input[type=radio],[data-toggle=buttons]
>.btn
>input[type=checkbox]{position:absolute;z-index:-
1;filter:alpha(opacity=
0);opacity:
0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:
0;padding-left:
0}.input-group .form-control{position:relative;z-index:
2;float:left;width:
100%;margin-bottom:
0}.input-group-lg
>.form-control,.input-group-lg
>.input-group-addon,.input-group-lg
>.input-group-btn
>.btn{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-group-lg
>.form-control,select.input-group-lg
>.input-group-addon,select.input-group-lg
>.input-group-btn
>.btn{height:
46px;line-height:
46px}textarea.input-group-lg
>.form-control,textarea.input-group-lg
>.input-group-addon,textarea.input-group-lg
>.input-group-btn
>.btn,select[multiple].input-group-lg
>.form-control,select[multiple].input-group-lg
>.input-group-addon,select[multiple].input-group-lg
>.input-group-btn
>.btn{height:auto}.input-group-sm
>.form-control,.input-group-sm
>.input-group-addon,.input-group-sm
>.input-group-btn
>.btn{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-group-sm
>.form-control,select.input-group-sm
>.input-group-addon,select.input-group-sm
>.input-group-btn
>.btn{height:
30px;line-height:
30px}textarea.input-group-sm
>.form-control,textarea.input-group-sm
>.input-group-addon,textarea.input-group-sm
>.input-group-btn
>.btn,select[multiple].input-group-sm
>.form-control,select[multiple].input-group-sm
>.input-group-addon,select[multiple].input-group-sm
>.input-group-btn
>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:
0}.input-group-addon,.input-group-btn{width:
1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:
6px
12px;font-size:
14px;font-weight:
400;line-height:
1;color:#
555;text-align:center;background-color:#eee;border:
1px solid #ccc;border-radius:
4px}.input-group-addon.input-sm{padding:
5px
10px;font-size:
12px;border-radius:
3px}.input-group-addon.input-lg{padding:
10px
16px;font-size:
18px;border-radius:
6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:
0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group
>.btn,.input-group-btn:first-child
>.dropdown-toggle,.input-group-btn:last-child
>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child
>.btn-group:not(:last-child)
>.btn{border-top-right-radius:
0;border-bottom-right-radius:
0}.input-group-addon:first-child{border-right:
0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group
>.btn,.input-group-btn:last-child
>.dropdown-toggle,.input-group-btn:first-child
>.btn:not(:first-child),.input-group-btn:first-child
>.btn-group:not(:first-child)
>.btn{border-top-left-radius:
0;border-bottom-left-radius:
0}.input-group-addon:last-child{border-left:
0}.input-group-btn{position:relative;font-size:
0;white-space:nowrap}.input-group-btn
>.btn{position:relative}.input-group-btn
>.btn+.btn{margin-left:-
1px}.input-group-btn
>.btn:hover,.input-group-btn
>.btn:focus,.input-group-btn
>.btn:active{z-index:
2}.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group{margin-right:-
1px}.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group{margin-left:-
1px}.nav{padding-left:
0;margin-bottom:
0;list-style:none}.nav
>li{position:relative;display:block}.nav
>li
>a{position:relative;display:block;padding:
10px
15px}.nav
>li
>a:hover,.nav
>li
>a:focus{text-decoration:none;background-color:#eee}.nav
>li.disabled
>a{color:#
777}.nav
>li.disabled
>a:hover,.nav
>li.disabled
>a:focus{color:#
777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open
>a,.nav .open
>a:hover,.nav .open
>a:focus{background-color:#eee;border-color:#
428bca}.nav .nav-divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.nav
>li
>a
>img{max-width:none}.nav-tabs{border-bottom:
1px solid #ddd}.nav-tabs
>li{float:left;margin-bottom:-
1px}.nav-tabs
>li
>a{margin-right:
2px;line-height:
1.42857143;border:
1px solid transparent;border-radius:
4px
4px
0 0}.nav-tabs
>li
>a:hover{border-color:#eee #eee #ddd}.nav-tabs
>li.active
>a,.nav-tabs
>li.active
>a:hover,.nav-tabs
>li.active
>a:focus{color:#
555;cursor:default;background-color:#fff;border:
1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:
100%;border-bottom:
0}.nav-tabs.nav-justified
>li{float:none}.nav-tabs.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-tabs.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-tabs.nav-justified
>li{display:table-cell;width:
1%}.nav-tabs.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs.nav-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs.nav-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border-bottom-color:#fff}}.nav-pills
>li{float:left}.nav-pills
>li
>a{border-radius:
4px}.nav-pills
>li+li{margin-left:
2px}.nav-pills
>li.active
>a,.nav-pills
>li.active
>a:hover,.nav-pills
>li.active
>a:focus{color:#fff;background-color:#
428bca}.nav-stacked
>li{float:none}.nav-stacked
>li+li{margin-top:
2px;margin-left:
0}.nav-justified{width:
100%}.nav-justified
>li{float:none}.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-justified
>li{display:table-cell;width:
1%}.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs-justified{border-bottom:
0}.nav-tabs-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border-bottom-color:#fff}}.tab-content
>.tab-pane{display:none}.tab-content
>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-
1px;border-top-left-radius:
0;border-top-right-radius:
0}.navbar{position:relative;min-height:
50px;margin-bottom:
20px;border:
1px solid transparent}@media (min-width:
768px){.navbar{border-radius:
4px}}@media (min-width:
768px){.navbar-header{float:left}}.navbar-collapse{padding-right:
15px;padding-left:
15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:
768px){.navbar-collapse{width:auto;border-top:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:
0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:
0;padding-left:
0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
340px}@media (max-width:
480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
200px}}.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:
0;margin-left:
0}}.navbar-static-top{z-index:
1000;border-width:
0 0 1px}@media (min-width:
768px){.navbar-static-top{border-radius:
0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:
0;left:
0;z-index:
1030;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@media (min-width:
768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:
0}}.navbar-fixed-top{top:
0;border-width:
0 0 1px}.navbar-fixed-bottom{bottom:
0;margin-bottom:
0;border-width:
1px
0 0}.navbar-brand{float:left;height:
50px;padding:
15px
15px;font-size:
18px;line-height:
20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:
768px){.navbar
>.container .navbar-brand,.navbar
>.container-fluid .navbar-brand{margin-left:-
15px}}.navbar-toggle{position:relative;float:right;padding:
9px
10px;margin-top:
8px;margin-right:
15px;margin-bottom:
8px;background-color:transparent;background-image:none;border:
1px solid transparent;border-radius:
4px}.navbar-toggle:focus{outline:
0}.navbar-toggle .icon-bar{display:block;width:
22px;height:
2px;border-radius:
1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:
4px}@media (min-width:
768px){.navbar-toggle{display:none}}.navbar-nav{margin:
7.5px -
15px}.navbar-nav
>li
>a{padding-top:
10px;padding-bottom:
10px;line-height:
20px}@media (max-width:
767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:
0;background-color:transparent;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu
>li
>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:
5px
15px
5px
25px}.navbar-nav .open .dropdown-menu
>li
>a{line-height:
20px}.navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-nav .open .dropdown-menu
>li
>a:focus{background-image:none}}@media (min-width:
768px){.navbar-nav{float:left;margin:
0}.navbar-nav
>li{float:left}.navbar-nav
>li
>a{padding-top:
15px;padding-bottom:
15px}.navbar-nav.navbar-right:last-child{margin-right:-
15px}}@media (min-width:
768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:
10px
15px;margin-top:
8px;margin-right:-
15px;margin-bottom:
8px;margin-left:-
15px;border-top:
1px solid transparent;border-bottom:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1)}@media (min-width:
768px){.navbar-form .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group
>.form-control{width:
100%}.navbar-form .control-label{margin-bottom:
0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:
0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:
0}.navbar-form .has-feedback .form-control-feedback{top:
0}}@media (max-width:
767px){.navbar-form .form-group{margin-bottom:
5px}}@media (min-width:
768px){.navbar-form{width:auto;padding-top:
0;padding-bottom:
0;margin-right:
0;margin-left:
0;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-
15px}}.navbar-nav
>li
>.dropdown-menu{margin-top:
0;border-top-left-radius:
0;border-top-right-radius:
0}.navbar-fixed-bottom .navbar-nav
>li
>.dropdown-menu{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.navbar-btn{margin-top:
8px;margin-bottom:
8px}.navbar-btn.btn-sm{margin-top:
10px;margin-bottom:
10px}.navbar-btn.btn-xs{margin-top:
14px;margin-bottom:
14px}.navbar-text{margin-top:
15px;margin-bottom:
15px}@media (min-width:
768px){.navbar-text{float:left;margin-right:
15px;margin-left:
15px}.navbar-text.navbar-right:last-child{margin-right:
0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#
777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#
5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#
777}.navbar-default .navbar-nav
>li
>a{color:#
777}.navbar-default .navbar-nav
>li
>a:hover,.navbar-default .navbar-nav
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav
>.active
>a,.navbar-default .navbar-nav
>.active
>a:hover,.navbar-default .navbar-nav
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav
>.disabled
>a,.navbar-default .navbar-nav
>.disabled
>a:hover,.navbar-default .navbar-nav
>.disabled
>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#
888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav
>.open
>a,.navbar-default .navbar-nav
>.open
>a:hover,.navbar-default .navbar-nav
>.open
>a:focus{color:#
555;background-color:#e7e7e7}@media (max-width:
767px){.navbar-default .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#
777}.navbar-default .navbar-link:hover{color:#
333}.navbar-default .btn-link{color:#
777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#
333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#
222;border-color:#
080808}.navbar-inverse .navbar-brand{color:#
777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#
777}.navbar-inverse .navbar-nav
>li
>a{color:#
777}.navbar-inverse .navbar-nav
>li
>a:hover,.navbar-inverse .navbar-nav
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav
>.active
>a,.navbar-inverse .navbar-nav
>.active
>a:hover,.navbar-inverse .navbar-nav
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav
>.disabled
>a,.navbar-inverse .navbar-nav
>.disabled
>a:hover,.navbar-inverse .navbar-nav
>.disabled
>a:focus{color:#
444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#
333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#
333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#
101010}.navbar-inverse .navbar-nav
>.open
>a,.navbar-inverse .navbar-nav
>.open
>a:hover,.navbar-inverse .navbar-nav
>.open
>a:focus{color:#fff;background-color:#
080808}@media (max-width:
767px){.navbar-inverse .navbar-nav .open .dropdown-menu
>.dropdown-header{border-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#
444;background-color:transparent}}.navbar-inverse .navbar-link{color:#
777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#
777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#
444}.breadcrumb{padding:
8px
15px;margin-bottom:
20px;list-style:none;background-color:#f5f5f5;border-radius:
4px}.breadcrumb
>li{display:inline-block}.breadcrumb
>li+li:before{padding:
0 5px;color:#ccc;content:"/\
00a0"}.breadcrumb
>.active{color:#
777}.pagination{display:inline-block;padding-left:
0;margin:
20px
0;border-radius:
4px}.pagination
>li{display:inline}.pagination
>li
>a,.pagination
>li
>span{position:relative;float:left;padding:
6px
12px;margin-left:-
1px;line-height:
1.42857143;color:#
428bca;text-decoration:none;background-color:#fff;border:
1px solid #ddd}.pagination
>li:first-child
>a,.pagination
>li:first-child
>span{margin-left:
0;border-top-left-radius:
4px;border-bottom-left-radius:
4px}.pagination
>li:last-child
>a,.pagination
>li:last-child
>span{border-top-right-radius:
4px;border-bottom-right-radius:
4px}.pagination
>li
>a:hover,.pagination
>li
>span:hover,.pagination
>li
>a:focus,.pagination
>li
>span:focus{color:#
2a6496;background-color:#eee;border-color:#ddd}.pagination
>.active
>a,.pagination
>.active
>span,.pagination
>.active
>a:hover,.pagination
>.active
>span:hover,.pagination
>.active
>a:focus,.pagination
>.active
>span:focus{z-index:
2;color:#fff;cursor:default;background-color:#
428bca;border-color:#
428bca}.pagination
>.disabled
>span,.pagination
>.disabled
>span:hover,.pagination
>.disabled
>span:focus,.pagination
>.disabled
>a,.pagination
>.disabled
>a:hover,.pagination
>.disabled
>a:focus{color:#
777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg
>li
>a,.pagination-lg
>li
>span{padding:
10px
16px;font-size:
18px}.pagination-lg
>li:first-child
>a,.pagination-lg
>li:first-child
>span{border-top-left-radius:
6px;border-bottom-left-radius:
6px}.pagination-lg
>li:last-child
>a,.pagination-lg
>li:last-child
>span{border-top-right-radius:
6px;border-bottom-right-radius:
6px}.pagination-sm
>li
>a,.pagination-sm
>li
>span{padding:
5px
10px;font-size:
12px}.pagination-sm
>li:first-child
>a,.pagination-sm
>li:first-child
>span{border-top-left-radius:
3px;border-bottom-left-radius:
3px}.pagination-sm
>li:last-child
>a,.pagination-sm
>li:last-child
>span{border-top-right-radius:
3px;border-bottom-right-radius:
3px}.pager{padding-left:
0;margin:
20px
0;text-align:center;list-style:none}.pager li{display:inline}.pager li
>a,.pager li
>span{display:inline-block;padding:
5px
14px;background-color:#fff;border:
1px solid #ddd;border-radius:
15px}.pager li
>a:hover,.pager li
>a:focus{text-decoration:none;background-color:#eee}.pager .next
>a,.pager .next
>span{float:right}.pager .previous
>a,.pager .previous
>span{float:left}.pager .disabled
>a,.pager .disabled
>a:hover,.pager .disabled
>a:focus,.pager .disabled
>span{color:#
777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:
.2em
.6em
.3em;font-size:
75%;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:
.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-
1px}.label-default{background-color:#
777}.label-default[href]:hover,.label-default[href]:focus{background-color:#
5e5e5e}.label-primary{background-color:#
428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#
3071a9}.label-success{background-color:#
5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#
449d44}.label-info{background-color:#
5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#
31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:
10px;padding:
3px
7px;font-size:
12px;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#
777;border-radius:
10px}.badge:empty{display:none}.btn .badge{position:relative;top:-
1px}.btn-xs .badge{top:
0;padding:
1px
5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active
>.badge,.nav-pills
>.active
>a
>.badge{color:#
428bca;background-color:#fff}.nav-pills
>li
>a
>.badge{margin-left:
3px}.jumbotron{padding:
30px;margin-bottom:
30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:
15px;font-size:
21px;font-weight:
200}.jumbotron
>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:
6px}.jumbotron .container{max-width:
100%}@media screen and (min-width:
768px){.jumbotron{padding-top:
48px;padding-bottom:
48px}.container .jumbotron{padding-right:
60px;padding-left:
60px}.jumbotron h1,.jumbotron .h1{font-size:
63px}}.thumbnail{display:block;padding:
4px;margin-bottom:
20px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.thumbnail
>img,.thumbnail a
>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#
428bca}.thumbnail .caption{padding:
9px;color:#
333}.alert{padding:
15px;margin-bottom:
20px;border:
1px solid transparent;border-radius:
4px}.alert h4{margin-top:
0;color:inherit}.alert .alert-link{font-weight:
700}.alert
>p,.alert
>ul{margin-bottom:
0}.alert
>p+p{margin-top:
5px}.alert-dismissable,.alert-dismissible{padding-right:
35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-
2px;right:-
21px;color:inherit}.alert-success{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#
2b542c}.alert-info{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#
245269}.alert-warning{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#
66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#
843534}@-webkit-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@-o-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}.progress{height:
20px;margin-bottom:
20px;overflow:hidden;background-color:#f5f5f5;border-radius:
4px;-webkit-box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1);box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1)}.progress-bar{float:left;width:
0;height:
100%;font-size:
12px;line-height:
20px;color:#fff;text-align:center;background-color:#
428bca;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);-webkit-transition:width
.6s ease;-o-transition:width
.6s ease;transition:width
.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);-webkit-background-size:
40px
40px;background-size:
40px
40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes
2s linear infinite;-o-animation:progress-bar-stripes
2s linear infinite;animation:progress-bar-stripes
2s linear infinite}.progress-bar[
aria-valuenow="
1"],.progress-bar[
aria-valuenow="
2"]{min-width:
30px}.progress-bar[
aria-valuenow="
0"]{min-width:
30px;color:#
777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#
5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-info{background-color:#
5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.media,.media-body{overflow:hidden;zoom:
1}.media,.media .media{margin-top:
15px}.media:first-child{margin-top:
0}.media-object{display:block}.media-heading{margin:
0 0 5px}.media
>.pull-left{margin-right:
10px}.media
>.pull-right{margin-left:
10px}.media-list{padding-left:
0;list-style:none}.list-group{padding-left:
0;margin-bottom:
20px}.list-group-item{position:relative;display:block;padding:
10px
15px;margin-bottom:-
1px;background-color:#fff;border:
1px solid #ddd}.list-group-item:first-child{border-top-left-radius:
4px;border-top-right-radius:
4px}.list-group-item:last-child{margin-bottom:
0;border-bottom-right-radius:
4px;border-bottom-left-radius:
4px}.list-group-item
>.badge{float:right}.list-group-item
>.badge+.badge{margin-right:
5px}a.list-group-item{color:#
555}a.list-group-item .list-group-item-heading{color:#
333}a.list-group-item:hover,a.list-group-item:focus{color:#
555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#
777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#
777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:
2;color:#fff;background-color:#
428bca;border-color:#
428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading
>small,.list-group-item.active:hover .list-group-item-heading
>small,.list-group-item.active:focus .list-group-item-heading
>small,.list-group-item.active .list-group-item-heading
>.small,.list-group-item.active:hover .list-group-item-heading
>.small,.list-group-item.active:focus .list-group-item-heading
>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#
3c763d;background-color:#dff0d8}a.list-group-item-success{color:#
3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#
3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#
3c763d;border-color:#
3c763d}.list-group-item-info{color:#
31708f;background-color:#d9edf7}a.list-group-item-info{color:#
31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#
31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#
31708f;border-color:#
31708f}.list-group-item-warning{color:#
8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#
8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#
8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#
8a6d3b;border-color:#
8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:
0;margin-bottom:
5px}.list-group-item-text{margin-bottom:
0;line-height:
1.3}.panel{margin-bottom:
20px;background-color:#fff;border:
1px solid transparent;border-radius:
4px;-webkit-box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05)}.panel-body{padding:
15px}.panel-heading{padding:
10px
15px;border-bottom:
1px solid transparent;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel-heading
>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:
0;margin-bottom:
0;font-size:
16px;color:inherit}.panel-title
>a{color:inherit}.panel-footer{padding:
10px
15px;background-color:#f5f5f5;border-top:
1px solid #ddd;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.list-group{margin-bottom:
0}.panel
>.list-group .list-group-item{border-width:
1px
0;border-radius:
0}.panel
>.list-group:first-child .list-group-item:first-child{border-top:
0;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.list-group:last-child .list-group-item:last-child{border-bottom:
0;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:
0}.list-group+.panel-footer{border-top-width:
0}.panel
>.table,.panel
>.table-responsive
>.table,.panel
>.panel-collapse
>.table{margin-bottom:
0}.panel
>.table:first-child,.panel
>.table-responsive:first-child
>.table:first-child{border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child{border-top-left-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child{border-top-right-radius:
3px}.panel
>.table:last-child,.panel
>.table-responsive:last-child
>.table:last-child{border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child{border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child{border-bottom-right-radius:
3px}.panel
>.panel-body+.table,.panel
>.panel-body+.table-responsive{border-top:
1px solid #ddd}.panel
>.table
>tbody:first-child
>tr:first-child th,.panel
>.table
>tbody:first-child
>tr:first-child td{border-top:
0}.panel
>.table-bordered,.panel
>.table-responsive
>.table-bordered{border:
0}.panel
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-bordered
>tfoot
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.panel
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-bordered
>tfoot
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.panel
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-bordered
>tbody
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>th{border-bottom:
0}.panel
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-bordered
>tfoot
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th{border-bottom:
0}.panel
>.table-responsive{margin-bottom:
0;border:
0}.panel-group{margin-bottom:
20px}.panel-group .panel{margin-bottom:
0;border-radius:
4px}.panel-group .panel+.panel{margin-top:
5px}.panel-group .panel-heading{border-bottom:
0}.panel-group .panel-heading+.panel-collapse
>.panel-body{border-top:
1px solid #ddd}.panel-group .panel-footer{border-top:
0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:
1px solid #ddd}.panel-default{border-color:#ddd}.panel-default
>.panel-heading{color:#
333;background-color:#f5f5f5;border-color:#ddd}.panel-default
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ddd}.panel-default
>.panel-heading .badge{color:#f5f5f5;background-color:#
333}.panel-default
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#
428bca}.panel-primary
>.panel-heading{color:#fff;background-color:#
428bca;border-color:#
428bca}.panel-primary
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#
428bca}.panel-primary
>.panel-heading .badge{color:#
428bca;background-color:#fff}.panel-primary
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#
428bca}.panel-success{border-color:#d6e9c6}.panel-success
>.panel-heading{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#d6e9c6}.panel-success
>.panel-heading .badge{color:#dff0d8;background-color:#
3c763d}.panel-success
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info
>.panel-heading{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#bce8f1}.panel-info
>.panel-heading .badge{color:#d9edf7;background-color:#
31708f}.panel-info
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning
>.panel-heading{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#faebcc}.panel-warning
>.panel-heading .badge{color:#fcf8e3;background-color:#
8a6d3b}.panel-warning
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger
>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ebccd1}.panel-danger
>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:
0;padding:
0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:
0;bottom:
0;left:
0;width:
100%;height:
100%;border:
0}.embed-responsive.embed-responsive-
16by9{padding-bottom:
56.25%}.embed-responsive.embed-responsive-
4by3{padding-bottom:
75%}.well{min-height:
20px;padding:
19px;margin-bottom:
20px;background-color:#f5f5f5;border:
1px solid #e3e3e3;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05)}.well blockquote{border-color:#ddd;border-color:rgba(
0,
0,
0,
.15)}.well-lg{padding:
24px;border-radius:
6px}.well-sm{padding:
9px;border-radius:
3px}.close{float:right;font-size:
21px;font-weight:
700;line-height:
1;color:#
000;text-shadow:
0 1px
0 #fff;filter:alpha(opacity=
20);opacity:
.2}.close:hover,.close:focus{color:#
000;text-decoration:none;cursor:pointer;filter:alpha(opacity=
50);opacity:
.5}button.close{-webkit-appearance:none;padding:
0;cursor:pointer;background:
0 0;border:
0}.modal-open{overflow:hidden}.modal{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:
0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform
.3s ease-out;-o-transition:-o-transform
.3s ease-out;transition:transform
.3s ease-out;-webkit-transform:translate3d(
0,-
25%,
0);-o-transform:translate3d(
0,-
25%,
0);transform:translate3d(
0,-
25%,
0)}.modal.in .modal-dialog{-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:
10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #
999;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;outline:
0;-webkit-box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5);box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5)}.modal-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1040;background-color:#
000}.modal-backdrop.fade{filter:alpha(opacity=
0);opacity:
0}.modal-backdrop.in{filter:alpha(opacity=
50);opacity:
.5}.modal-header{min-height:
16.43px;padding:
15px;border-bottom:
1px solid #e5e5e5}.modal-header .close{margin-top:-
2px}.modal-title{margin:
0;line-height:
1.42857143}.modal-body{position:relative;padding:
15px}.modal-footer{padding:
15px;text-align:right;border-top:
1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:
0;margin-left:
5px}.modal-footer .btn-group .btn+.btn{margin-left:-
1px}.modal-footer .btn-block+.btn-block{margin-left:
0}.modal-scrollbar-measure{position:absolute;top:-
9999px;width:
50px;height:
50px;overflow:scroll}@media (min-width:
768px){.modal-dialog{width:
600px;margin:
30px auto}.modal-content{-webkit-box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5);box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5)}.modal-sm{width:
300px}}@media (min-width:
992px){.modal-lg{width:
900px}}.tooltip{position:absolute;z-index:
1070;display:block;font-size:
12px;line-height:
1.4;visibility:visible;filter:alpha(opacity=
0);opacity:
0}.tooltip.in{filter:alpha(opacity=
90);opacity:
.9}.tooltip.top{padding:
5px
0;margin-top:-
3px}.tooltip.right{padding:
0 5px;margin-left:
3px}.tooltip.bottom{padding:
5px
0;margin-top:
3px}.tooltip.left{padding:
0 5px;margin-left:-
3px}.tooltip-inner{max-width:
200px;padding:
3px
8px;color:#fff;text-align:center;text-decoration:none;background-color:#
000;border-radius:
4px}.tooltip-arrow{position:absolute;width:
0;height:
0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:
0;left:
50%;margin-left:-
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-left .tooltip-arrow{bottom:
0;left:
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-right .tooltip-arrow{right:
5px;bottom:
0;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.right .tooltip-arrow{top:
50%;left:
0;margin-top:-
5px;border-width:
5px
5px
5px
0;border-right-color:#
000}.tooltip.left .tooltip-arrow{top:
50%;right:
0;margin-top:-
5px;border-width:
5px
0 5px
5px;border-left-color:#
000}.tooltip.bottom .tooltip-arrow{top:
0;left:
50%;margin-left:-
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-left .tooltip-arrow{top:
0;left:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-right .tooltip-arrow{top:
0;right:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.popover{position:absolute;top:
0;left:
0;z-index:
1060;display:none;max-width:
276px;padding:
1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;-webkit-box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2);box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2)}.popover.top{margin-top:-
10px}.popover.right{margin-left:
10px}.popover.bottom{margin-top:
10px}.popover.left{margin-left:-
10px}.popover-title{padding:
8px
14px;margin:
0;font-size:
14px;font-weight:
400;line-height:
18px;background-color:#f7f7f7;border-bottom:
1px solid #ebebeb;border-radius:
5px
5px
0 0}.popover-content{padding:
9px
14px}.popover
>.arrow,.popover
>.arrow:after{position:absolute;display:block;width:
0;height:
0;border-color:transparent;border-style:solid}.popover
>.arrow{border-width:
11px}.popover
>.arrow:after{content:"";border-width:
10px}.popover.top
>.arrow{bottom:-
11px;left:
50%;margin-left:-
11px;border-top-color:#
999;border-top-color:rgba(
0,
0,
0,
.25);border-bottom-width:
0}.popover.top
>.arrow:after{bottom:
1px;margin-left:-
10px;content:" ";border-top-color:#fff;border-bottom-width:
0}.popover.right
>.arrow{top:
50%;left:-
11px;margin-top:-
11px;border-right-color:#
999;border-right-color:rgba(
0,
0,
0,
.25);border-left-width:
0}.popover.right
>.arrow:after{bottom:-
10px;left:
1px;content:" ";border-right-color:#fff;border-left-width:
0}.popover.bottom
>.arrow{top:-
11px;left:
50%;margin-left:-
11px;border-top-width:
0;border-bottom-color:#
999;border-bottom-color:rgba(
0,
0,
0,
.25)}.popover.bottom
>.arrow:after{top:
1px;margin-left:-
10px;content:" ";border-top-width:
0;border-bottom-color:#fff}.popover.left
>.arrow{top:
50%;right:-
11px;margin-top:-
11px;border-right-width:
0;border-left-color:#
999;border-left-color:rgba(
0,
0,
0,
.25)}.popover.left
>.arrow:after{right:
1px;bottom:-
10px;content:" ";border-right-width:
0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:
100%;overflow:hidden}.carousel-inner
>.item{position:relative;display:none;-webkit-transition:
.6s ease-in-out left;-o-transition:
.6s ease-in-out left;transition:
.6s ease-in-out left}.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{line-height:
1}.carousel-inner
>.active,.carousel-inner
>.next,.carousel-inner
>.prev{display:block}.carousel-inner
>.active{left:
0}.carousel-inner
>.next,.carousel-inner
>.prev{position:absolute;top:
0;width:
100%}.carousel-inner
>.next{left:
100%}.carousel-inner
>.prev{left:-
100%}.carousel-inner
>.next.left,.carousel-inner
>.prev.right{left:
0}.carousel-inner
>.active.left{left:-
100%}.carousel-inner
>.active.right{left:
100%}.carousel-control{position:absolute;top:
0;bottom:
0;left:
0;width:
15%;font-size:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6);filter:alpha(opacity=
50);opacity:
.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.5)),to(rgba(
0,
0,
0,
.0001)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
80000000', endColorstr='#
00000000', GradientType=
1);background-repeat:repeat-x}.carousel-control.right{right:
0;left:auto;background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.0001)),to(rgba(
0,
0,
0,
.5)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
00000000', endColorstr='#
80000000', GradientType=
1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=
90);outline:
0;opacity:
.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:
50%;z-index:
5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:
50%;margin-left:-
10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:
50%;margin-right:-
10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:
20px;height:
20px;margin-top:-
10px;font-family:serif}.carousel-control .icon-prev:before{content:'\
2039'}.carousel-control .icon-next:before{content:'\
203a'}.carousel-indicators{position:absolute;bottom:
10px;left:
50%;z-index:
15;width:
60%;padding-left:
0;margin-left:-
30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:
10px;height:
10px;margin:
1px;text-indent:-
999px;cursor:pointer;background-color:#
000 \
9;background-color:rgba(
0,
0,
0,
0);border:
1px solid #fff;border-radius:
10px}.carousel-indicators .active{width:
12px;height:
12px;margin:
0;background-color:#fff}.carousel-caption{position:absolute;right:
15%;bottom:
20px;left:
15%;z-index:
10;padding-top:
20px;padding-bottom:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:
768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:
30px;height:
30px;margin-top:-
15px;font-size:
30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-
15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-
15px}.carousel-caption{right:
20%;left:
20%;padding-bottom:
30px}.carousel-indicators{bottom:
20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical
>.btn-group:before,.btn-group-vertical
>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical
>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:
0/
0 a;color:transparent;text-shadow:none;background-color:transparent;border:
0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:
767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:
767px){.visible-xs-block{display:block!important}}@media (max-width:
767px){.visible-xs-inline{display:inline!important}}@media (max-width:
767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-block{display:block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline{display:inline!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-block{display:block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline{display:inline!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:
1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:
1200px){.visible-lg-block{display:block!important}}@media (min-width:
1200px){.visible-lg-inline{display:inline!important}}@media (min-width:
1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:
767px){.hidden-xs{display:none!important}}@media (min-width:
768px) and (max-width:
991px){.hidden-sm{display:none!important}}@media (min-width:
992px) and (max-width:
1199px){.hidden-md{display:none!important}}@media (min-width:
1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
</style>
11 <meta content=
"Mnemonic code for generating deterministic keys" name=
"description"/>
12 <meta content=
"width=device-width, initial-scale=1.0" name=
"viewport" />
13 <meta content=
"bitcoin mnemonic converter" name=
"description" />
14 <meta content=
"Ian Coleman" name=
"author" />
20 .form-control[readonly] {
33 background-color: orange;
37 border:
2px solid #
555;
39 border-bottom-left-radius:
20px
20px;
40 border-bottom-right-radius:
20px
20px;
44 box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
45 -webkit-box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
50 .generate-container .strength {
51 /* override mobile width from bootstrap */
52 width: auto!important;
53 display: inline-block;
58 .languages a:nth-of-type(
1) {
63 font-family: monospace;
65 .entropy-container .filtered,
66 .entropy-container .binary {
67 word-wrap: break-word;
69 .entropy-container li {
93 background-color: #FFF;
94 border:
1px solid #CCC;
106 border-bottom:
1px dashed #
000;
107 text-decoration: none;
112 <div class=
"container">
114 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
117 <div class=
"col-md-12">
119 <form class=
"form-horizontal" role=
"form">
120 <div class=
"form-group">
121 <div class=
"col-sm-2"></div>
122 <div class=
"col-sm-10">
123 <p data-translate
>You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).
</p>
124 <p data-translate-html
>
125 For more info see the
126 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
130 <div class=
"form-group generate-container">
131 <label class=
"col-sm-2 control-label"></label>
132 <div class=
"col-sm-10">
133 <div class=
"form-inline">
134 <div class=
"input-group-inline">
135 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
136 <button class=
"btn generate">Generate
</button>
137 <select id=
"strength" class=
"strength form-control">
138 <option value=
"3">3</option>
139 <option value=
"6">6</option>
140 <option value=
"9">9</option>
141 <option value=
"12">12</option>
142 <option value=
"15" selected
>15</option>
143 <option value=
"18">18</option>
144 <option value=
"21">21</option>
145 <option value=
"24">24</option>
147 <span data-translate
>words
</span>
152 <div class=
"entropy-container hidden">
153 <div class=
"form-group text-danger">
154 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
155 <div class=
"col-sm-10 form-control-static">
156 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
157 <a href=
"#entropy-notes" data-translate
>Read more
</a>
160 <div class=
"form-group">
161 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
162 <div class=
"col-sm-7">
163 <textarea id=
"entropy" rows=
"2" class=
"entropy form-control" placeholder=
"Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder
></textarea>
165 <label class=
"col-sm-3 control-label" data-translate
>Strength
</label>
166 <div class=
"strength col-sm-3 form-control-static"></div>
167 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
168 <div class=
"event-count col-sm-3 form-control-static"></div>
171 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
172 <div class=
"type col-sm-3 form-control-static"></div>
173 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
174 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
177 <label class=
"col-sm-3 control-label" data-translate
>Word Count
</label>
178 <div class=
"word-count col-sm-3 form-control-static"></div>
179 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
title=
"Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits
</span></label>
180 <div class=
"bits col-sm-3 form-control-static"></div>
182 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
183 <div class=
"filtered col-sm-9 form-control-static"></div>
184 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
185 <div class=
"binary col-sm-9 form-control-static"></div>
186 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
187 <div class=
"col-sm-9">
188 <select class=
"mnemonic-length form-control">
189 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
190 <option value=
"12">12 <span data-translate
>Words
</span></option>
191 <option value=
"15">15 <span data-translate
>Words
</option>
192 <option value=
"18">18 <span data-translate
>Words
</span></option>
193 <option value=
"21">21 <span data-translate
>Words
</span></option>
194 <option value=
"24">24 <span data-translate
>Words
</span></option>
198 <div class=
"col-sm-3">
199 <p data-translate
>Valid entropy values include:
</p>
201 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
202 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
203 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
204 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
205 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
206 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
211 <div class=
"form-group">
212 <div class=
"col-sm-2"></div>
213 <div class=
"col-sm-10 checkbox">
215 <input type=
"checkbox" class=
"use-entropy">
216 <span data-translate
>Supply my own source of entropy
</span>
220 <div class=
"form-group">
221 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
222 <div class=
"col-sm-10 languages">
223 <div class=
"form-control no-border">
224 <a href=
"#english">English
</a>
225 <a href=
"#japanese" title=
"Japanese">日本語
</a>
226 <a href=
"#spanish" title=
"Spanish">Español
</a>
227 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
228 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
229 <a href=
"#french" title=
"French">Français
</a>
230 <a href=
"#italian" title=
"Italian">Italiano
</a>
234 <div class=
"form-group">
235 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
236 <div class=
"col-sm-10">
237 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
240 <div class=
"form-group">
241 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
242 <div class=
"col-sm-10">
243 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
246 <div class=
"form-group">
247 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
248 <div class=
"col-sm-10">
249 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
252 <div class=
"form-group">
253 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
254 <div class=
"col-sm-10">
255 <select id=
"network-phrase" class=
"network form-control">
256 <!-- populated by javascript -->
260 <div class=
"form-group">
261 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
262 <div class=
"col-sm-10">
263 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
273 <div class=
"col-md-12">
274 <h2>Derivation Path
</h2>
275 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
276 <li id=
"bip44-tab" class=
"active">
277 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
280 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
283 <div class=
"derivation-type tab-content">
284 <div id=
"bip44" class=
"tab-pane active">
285 <form class=
"form-horizontal" role=
"form">
287 <div class=
"col-sm-2"></div>
288 <div class=
"col-sm-10">
289 <p data-translate-html
>
290 For more info see the
291 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
294 <div class=
"form-group">
295 <label for=
"purpose" class=
"col-sm-2 control-label">
296 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
298 <div class=
"col-sm-10">
299 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44">
302 <div class=
"form-group">
303 <label for=
"coin" class=
"col-sm-2 control-label">
304 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
306 <div class=
"col-sm-10">
307 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0">
310 <div class=
"form-group">
311 <label for=
"account" class=
"col-sm-2 control-label">
312 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
314 <div class=
"col-sm-10">
315 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
318 <div class=
"form-group">
319 <label for=
"change" class=
"col-sm-2 control-label">
320 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
322 <div class=
"col-sm-10">
323 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
326 <div class=
"form-group">
327 <label class=
"col-sm-2 control-label">
329 <div class=
"col-sm-10">
330 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
333 <div class=
"form-group">
334 <label for=
"account-xprv" class=
"col-sm-2 control-label">
335 <span data-translate
>Account Extended Private Key
</span>
337 <div class=
"col-sm-10">
338 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
341 <div class=
"form-group">
342 <label for=
"account-xpub" class=
"col-sm-2 control-label">
343 <span data-translate
>Account Extended Public Key
</span>
345 <div class=
"col-sm-10">
346 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
349 <div class=
"form-group">
350 <label class=
"col-sm-2 control-label">
352 <div class=
"col-sm-10">
353 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
356 <div class=
"form-group">
357 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
358 <div class=
"col-sm-10">
359 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
364 <div id=
"bip32" class=
"tab-pane">
365 <form class=
"form-horizontal" role=
"form">
367 <div class=
"col-sm-2"></div>
368 <div class=
"col-sm-10">
370 For more info see the
371 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
374 <div class=
"form-group">
375 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
376 <div class=
"col-sm-10">
377 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
380 <div class=
"form-group">
381 <div class=
"col-sm-2"></div>
382 <label class=
"col-sm-10">
383 <input class=
"hardened-addresses" type=
"checkbox">
384 <span data-translate
>Use hardened addresses
</span>
387 <div class=
"form-group">
388 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
389 <div class=
"col-sm-10">
390 <p class=
"form-control no-border" data-translate-html
>
391 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
393 <p class=
"form-control no-border" data-translate-html
>
394 For more info see the
395 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
399 <div class=
"form-group">
400 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
401 <div class=
"col-sm-10">
402 <p class=
"form-control no-border">
403 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
404 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
406 <p class=
"form-control no-border">
407 <span data-translate
>Can be used with
</span>:
408 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
415 <form class=
"form-horizontal" role=
"form">
416 <div class=
"form-group">
417 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
418 <div class=
"col-sm-10">
419 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
422 <div class=
"form-group">
423 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
424 <div class=
"col-sm-10">
425 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
435 <div class=
"col-md-12">
436 <h2>Derived Addresses
</h2>
437 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
438 <table class=
"table table-striped">
441 <div class=
"input-group">
442 <span data-translate
>Path
</span>
443 <button class=
"index-toggle" data-translate
>Toggle
</button>
447 <div class=
"input-group">
448 <span data-translate
>Address
</span>
449 <button class=
"address-toggle" data-translate
>Toggle
</button>
453 <div class=
"input-group">
454 <span data-translate
>Public Key
</span>
455 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
459 <div class=
"input-group">
460 <span data-translate
>Private Key
</span>
461 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
465 <tbody class=
"addresses monospace">
466 <tr><td> </td><td> </td><td> </td><td> </td></tr>
467 <tr><td> </td><td> </td><td> </td><td> </td></tr>
468 <tr><td> </td><td> </td><td> </td><td> </td></tr>
469 <tr><td> </td><td> </td><td> </td><td> </td></tr>
470 <tr><td> </td><td> </td><td> </td><td> </td></tr>
475 <span data-translate
>Show more rows
</span>:
476 <input type=
"number" class=
"rows-to-add" value=
"20">
477 <button class=
"more" data-translate
>Show
</button>
482 <div class=
"col-md-12">
483 <h2 data-translate
>More info
</h2>
484 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
485 <p data-translate-html
>
487 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
489 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
490 <p data-translate-html
>
492 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
494 <p data-translate-html
>
496 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
498 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
499 <p data-translate-html
>
501 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
503 <h3 data-translate
>Private Keys
</h3>
505 <span data-translate-html
>
507 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
509 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
511 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
513 <span data-translate-html
>
514 Entropy values must be sourced from a
515 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
517 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
518 <span data-translate-html
>
519 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
520 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
521 random enough for the needs of this tool.
525 <strong><span data-translate
>Do not store entropy.
</span></strong>
528 <span data-translate
>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
529 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
530 <span data-translate-html
><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
533 <span data-translate-html
>
534 The random mnemonic generator on this page uses a
535 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
537 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
538 <span data-translate
>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
539 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
542 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
544 <h3 data-translate
>License
</h3>
546 <span data-translate-html
>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
549 <p data-translate
>The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
</p>
556 <div class=
"col-md-12">
558 <h2 data-translate
>Offline Usage
</h2>
561 You can use this tool without having to be online.
564 In your browser, select file save-as, and save this page
568 Double-click that file to open it in a browser
569 on any offline computer.
572 <span data-translate
>Alternatively, download the file from the repository
</span>
574 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
583 <div class=
"col-md-12">
585 <h2 data-translate
>This project is
100% open-source code
</h2>
588 <span data-translate
>Get the source code from the repository
</span>
590 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
591 https://github.com/iancoleman/bip39
595 <h3 data-translate
>Libraries
</h3>
598 <span>BitcoinJS -
</span>
599 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
600 https://github.com/bitcoinjs/bitcoinjs-lib
605 <span>jsBIP39 -
</span>
606 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
607 https://github.com/iancoleman/jsbip39
613 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
614 https://github.com/bitwiseshiftleft/sjcl
619 <span>jQuery -
</span>
620 <a href=
"https://jquery.com/" target=
"_blank">
626 <span>Twitter Bootstrap -
</span>
627 <a href=
"http://getbootstrap.com/" target=
"_blank">
628 http://getbootstrap.com/
637 <div class=
"qr-container hidden">
638 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
639 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
640 <div class=
"qr-hider hidden">
641 <div class=
"qr-image"></div>
642 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
646 <div class=
"feedback-container">
647 <div class=
"feedback">Loading...
</div>
650 <script type=
"text/template" id=
"address-row-template">
652 <td class=
"index"><span></span></td>
653 <td class=
"address"><span data-show-qr
></span></td>
654 <td class=
"pubkey"><span data-show-qr
></span></td>
655 <td class=
"privkey"><span data-show-qr
></span></td>
659 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
660 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
661 // but is not required in any modern browsers.
662 // For more information, see
663 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
665 //----------------------------------------------------------------------
667 // ECMAScript
2015 Polyfills
669 //----------------------------------------------------------------------
674 // Set this to always override native implementations, for testing
675 // the polyfill in browsers with partial/full ES2015 support.
676 var OVERRIDE_NATIVE_FOR_TESTING = false;
678 var undefined = (void
0); // Paranoia
683 return o === global ? undefined : o;
686 function hook(o, p, f) {
688 console.assert(typeof op === 'function', 'Hooking a non-function');
690 var o = strict(this);
691 var r = f.apply(o, arguments);
692 return r !== undefined ? r : op.apply(o, arguments);
696 function isSymbol(s) {
697 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
700 function getPropertyDescriptor(target, name) {
701 var desc = Object.getOwnPropertyDescriptor(target, name);
702 var proto = Object.getPrototypeOf(target);
703 while (!desc && proto) {
704 desc = Object.getOwnPropertyDescriptor(proto, name);
705 proto = Object.getPrototypeOf(proto);
710 var enqueue = (function(nativePromise, nativeSetImmediate) {
712 return function(job) { nativePromise.resolve().then(function() { job(); }); };
713 if (nativeSetImmediate)
714 return function(job) { nativeSetImmediate(job); };
715 return function(job) { setTimeout(job,
0); };
716 }(global['Promise'], global['setImmediate']));
718 function define(o, p, v, override) {
719 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
722 if (typeof v === 'function') {
723 // Sanity check that functions are appropriately named (where possible)
724 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
725 Object.defineProperty(o, p, {
732 Object.defineProperty(o, p, {
741 function set_internal(o, p, v) {
742 Object.defineProperty(o, p, {
750 // Snapshot intrinsic functions
751 var $isNaN = global.isNaN,
752 $parseInt = global.parseInt,
753 $parseFloat = global.parseFloat;
756 LOG10E = Math.LOG10E,
766 random = Math.random,
769 var orig_match = String.prototype.match,
770 orig_replace = String.prototype.replace,
771 orig_search = String.prototype.search,
772 orig_split = String.prototype.split;
774 // These are used for implementing the polyfills, but not exported.
776 // Inspired by https://gist.github.com/
1638059
778 function EphemeronTable() {
779 var secretKey = ObjectCreate(null);
781 function conceal(o) {
782 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
783 Object.defineProperty(o, 'valueOf', {
784 value: (function(secretKey) {
785 return function (k) {
786 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
797 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
798 return v === o ? null : v;
803 secretKey = ObjectCreate(null);
805 remove: function(key) {
806 var secrets = reveal(key);
807 if (secrets && HasOwnProperty(secrets, 'value')) {
808 delete secrets.value;
813 get: function(key, defaultValue) {
814 var secrets = reveal(key);
815 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
818 var secrets = reveal(key);
819 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
821 set: function(key, value) {
822 var secrets = reveal(key) || conceal(key);
823 secrets.value = value;
828 var empty = Object.create(null);
830 //----------------------------------------------------------------------
833 // http://www.ecma-international.org/ecma-
262/
6.0/
835 //----------------------------------------------------------------------
837 // ---------------------------------------
838 //
19.4 Symbol Objects
839 // ---------------------------------------
841 // NOTE: Symbols are defined here - out of spec order - since we need the
842 // properties and prototype to be populated for other polyfills.
844 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
848 var secret = Object.create(null);
850 symbolForKey = function(k) {
854 var GlobalSymbolRegistry = [];
856 function unique(bits) {
857 return Array(bits +
1).join('x').replace(/x/g, function() {
858 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
862 //
19.4.1 The Symbol Constructor
863 //
19.4.1.1 Symbol ( description=undefined )
864 function Symbol(description) {
865 if (!(this instanceof Symbol)) return new Symbol(description, secret);
866 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
868 var descString = description === undefined ? undefined : String(description);
870 set_internal(this, '[[SymbolData]]', unique(
128));
871 set_internal(this, '[[Description]]', descString);
873 symbolMap[this] = this;
877 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
878 global.Symbol = Symbol;
880 //
19.4.2 Properties of the Symbol Constructor
882 //
19.4.2.1 Symbol.for (key)
883 define(Symbol, 'for', function for_(key) {
884 var stringKey = String(key);
885 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
886 var e = GlobalSymbolRegistry[i];
887 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
889 var newSymbol = Symbol(key);
890 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
894 //
19.4.2.2 Symbol.hasInstance
895 //
19.4.2.3 Symbol.isConcatSpreadable
897 //
19.4.2.4 Symbol.iterator
898 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
900 //
19.4.2.5 Symbol.keyFor (sym)
901 define(Symbol, 'keyFor', function keyFor(sym) {
902 if (!(sym instanceof Symbol)) throw TypeError();
903 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
904 var e = GlobalSymbolRegistry[i];
905 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
910 //
19.4.2.6 Symbol.match
911 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
913 //
19.4.2.7 Symbol.prototype
915 //
19.4.2.8 Symbol.replace
916 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
918 //
19.4.2.9 Symbol.search
919 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
921 //
19.4.2.10 Symbol.species
923 //
19.4.2.11 Symbol.search
924 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
926 //
19.4.2.12 Symbol.toPrimitive
928 //
19.4.2.13 Symbol.toStringTag
929 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
931 //
19.4.2.14 Symbol.unscopables
933 //
19.4.3 Properties of the Symbol Prototype Object
934 //
19.4.3.1 Symbol.prototype.constructor
936 //
19.4.3.2 Symbol.prototype.toString ( )
937 Object.defineProperty(Symbol.prototype, 'toString', {
938 value: function toString() {
939 var s = strict(this);
940 var desc = s['[[Description]]'];
941 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
943 configurable: true, writeable: true, enumerable: false });
945 //
19.4.3.3 Symbol.prototype.valueOf ( )
946 Object.defineProperty(Symbol.prototype, 'valueOf', {
947 value: function valueOf() {
948 // To prevent automatic string conversion:
951 // Spec has approximately the following:
952 //var s = strict(this);
953 //if (Type(s) === 'symbol') return s;
954 //if (Type(s) !== 'object') throw TypeError();
955 //if (!('[[SymbolData]]' in s)) throw TypeError();
956 //return s['[[SymbolData]]'];
958 configurable: true, writeable: true, enumerable: false });
960 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
961 // (Done later to polyfill partial implementations)
963 //
19.4.4 Properties of Symbol Instances
966 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
968 // Defined here so that other prototypes can reference it
969 //
25.1.2 The %IteratorPrototype% Object
970 var $IteratorPrototype$ = {};
972 //----------------------------------------
973 //
6 ECMAScript Data Types and Values
974 //----------------------------------------
976 //
6.1 ECMAScript Language Types
978 // "Type(x)" is used as shorthand for "the type of x"...
981 case 'undefined': return 'undefined';
982 case 'boolean': return 'boolean';
983 case 'number': return 'number';
984 case 'string': return 'string';
985 case 'symbol': return 'symbol';
987 if (v === null) return 'null';
988 if (v instanceof global.Symbol) return 'symbol';
993 //
6.1.5.1 Well-Known Symbols
994 var $$iterator = global.Symbol.iterator,
995 $$match = global.Symbol.match,
996 $$replace = global.Symbol.replace,
997 $$search = global.Symbol.search,
998 $$split = global.Symbol.split,
999 $$toStringTag = global.Symbol.toStringTag;
1001 //----------------------------------------
1002 //
7 Abstract Operations
1003 //----------------------------------------
1005 //----------------------------------------
1006 //
7.1 Type Conversion
1007 //----------------------------------------
1009 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1010 // just use valueOf()
1012 //
7.1.2 ToBoolean ( argument )
1013 // just use Boolean()
1015 //
7.1.3 ToNumber ( argument )
1016 // just use Number()
1018 //
7.1.4 ToInteger ( argument )
1019 function ToInteger(n) {
1021 if ($isNaN(n)) return
0;
1022 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1023 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1026 //
7.1.5 ToInt32 ( argument )
1027 function ToInt32(v) { return v
>> 0; }
1029 //
7.1.6 ToUint32 ( argument )
1030 function ToUint32(v) { return v
>>> 0; }
1032 //
7.1.7 ToInt16 ( argument )
1033 function ToInt16(v) { return (v <<
16)
>> 16; }
1035 //
7.1.8 ToUint16 ( argument )
1036 function ToUint16(v) { return v &
0xFFFF; }
1038 //
7.1.9 ToInt8 ( argument )
1039 function ToInt8(v) { return (v <<
24)
>> 24; }
1041 //
7.1.10 ToUint8 ( argument )
1042 function ToUint8(v) { return v &
0xFF; }
1044 //
7.1.11 ToUint8Clamp ( argument )
1045 function ToUint8Clamp(argument) {
1046 var number = Number(argument);
1047 if ($isNaN(number)) return
0;
1048 if (number <=
0) return
0;
1049 if (number
>=
255) return
255;
1050 var f = floor(number);
1051 if ((f +
0.5) < number) return f +
1;
1052 if (number < (f +
0.5)) return f;
1053 if (f %
2) return f +
1;
1057 //
7.1.12 ToString ( argument )
1058 // just use String()
1060 //
7.1.13 ToObject ( argument )
1061 function ToObject(v) {
1062 if (v === null || v === undefined) throw TypeError();
1066 //
7.1.14 ToPropertyKey ( argument )
1067 function ToPropertyKey(v) {
1071 //
7.1.15 ToLength ( argument )
1072 function ToLength(v) {
1073 var len = ToInteger(v);
1074 if (len <=
0) return
0;
1075 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1076 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1079 //
7.1.16 CanonicalNumericIndexString ( argument )
1081 //----------------------------------------
1082 //
7.2 Testing and Comparison Operations
1083 //----------------------------------------
1085 //
7.2.1 RequireObjectCoercible ( argument )
1086 //
7.2.2 IsArray ( argument )
1088 //
7.2.3 IsCallable ( argument )
1089 function IsCallable(o) { return typeof o === 'function'; }
1091 //
7.2.4 IsConstructor ( argument )
1092 function IsConstructor(o) {
1093 // Hacks for Safari
7 TypedArray XXXConstructor objects
1094 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1095 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1096 // TODO: Can this be improved on?
1097 return typeof o === 'function';
1100 //
7.2.5 IsExtensible (O)
1101 //
7.2.6 IsInteger ( argument )
1103 //
7.2.7 IsPropertyKey ( argument )
1104 function IsPropertyKey(argument) {
1105 if (Type(argument) === 'string') return true;
1106 if (Type(argument) === 'symbol') return true;
1110 //
7.2.8 IsRegExp ( argument )
1111 //
7.2.5 IsConstructor ( argument )
1113 //
7.2.9 SameValue(x, y)
1114 function SameValue(x, y) {
1115 if (typeof x !== typeof y) return false;
1120 if (x !== x && y !== y) return true;
1121 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1131 //
7.2.10 SameValueZero(x, y)
1132 function SameValueZero(x, y) {
1133 if (typeof x !== typeof y) return false;
1138 if (x !== x && y !== y) return true;
1148 //----------------------------------------
1149 //
7.3 Operations on Objects
1150 //----------------------------------------
1153 // - just use o.p or o[p]
1155 //
7.3.2 GetV (V, P)
1156 function GetV(v, p) {
1157 var o = ToObject(v);
1161 //
7.3.3 Set (O, P, V, Throw)
1162 // - just use o.p = v or o[p] = v
1167 //
7.3.9 GetMethod (O, P)
1168 function GetMethod(o, p) {
1169 var func = GetV(o, p);
1170 if (func === undefined || func === null) return undefined;
1171 if (!IsCallable(func)) throw TypeError();
1175 //
7.3.10 HasProperty (O, P)
1176 function HasProperty(o, p) {
1178 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1179 if (Type(o) !== 'object') return false;
1180 o = Object.getPrototypeOf(o);
1185 //
7.3.11 HasOwnProperty (O, P)
1186 function HasOwnProperty(o, p) {
1187 return Object.prototype.hasOwnProperty.call(o, p);
1190 //----------------------------------------
1191 //
7.4 Operations on Iterator Objects
1192 //----------------------------------------
1194 //
7.4.1 GetIterator ( obj, method )
1195 function GetIterator(obj, method) {
1196 if (arguments.length <
2)
1197 method = GetMethod(obj, $$iterator);
1198 var iterator = method.call(obj);
1199 if (Type(iterator) !== 'object') throw TypeError();
1203 //
7.4.2 IteratorNext ( iterator, value )
1204 function IteratorNext(iterator, value) {
1205 if (arguments.length <
2)
1206 var result = iterator.next();
1208 result = iterator.next(value);
1209 if (Type(result) !== 'object') throw TypeError();
1213 //
7.4.3 IteratorComplete ( iterResult )
1214 function IteratorComplete(iterResult) {
1215 console.assert(Type(iterResult) === 'object');
1216 return Boolean(iterResult.done);
1219 //
7.4.4 IteratorValue ( iterResult )
1220 function IteratorValue(iterResult) {
1221 console.assert(Type(iterResult) === 'object');
1222 return iterResult.value;
1225 //
7.4.5 IteratorStep ( iterator )
1226 function IteratorStep( iterator, value ) {
1227 var result = IteratorNext(iterator, value);
1228 var done = result['done'];
1229 if (Boolean(done) === true) return false;
1233 //
7.4.6 IteratorClose( iterator, completion )
1234 function IteratorClose( iterator, completion ) {
1235 console.assert(Type(iterator) === 'object');
1236 var _return = GetMethod(iterator, 'return');
1237 if (_return === undefined) return completion;
1239 var innerResult = _return[iterator]();
1241 // TODO: If completion.[[type]] is throw, return completion
1244 if (Type(innerResult) !== 'object') throw TypeError();
1248 //
7.4.7 CreateIterResultObject (value, done)
1249 function CreateIterResultObject(value, done) {
1250 console.assert(Type(done) === 'boolean');
1252 obj["value"] = value;
1257 //
7.4.8 CreateListIterator (list)
1258 //
7.4.8.1 ListIterator next( )
1259 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1260 //
7.4.9.1 CompoundIterator next( )
1262 //----------------------------------------
1263 //
8 Executable Code and Execution Contexts
1264 //----------------------------------------
1266 //----------------------------------------
1267 //
8.4 Jobs and Job Queues
1268 //----------------------------------------
1270 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1271 function EnqueueJob(queueName, job, args) {
1272 var fn = function() { job.apply(undefined, args); };
1276 //
8.4.2 NextJob result
1277 function NextJob(result) {
1281 //----------------------------------------
1282 //
9 Ordinary and Exotic Objects Behaviors
1283 //----------------------------------------
1285 //
9.1.11 [[Enumerate]] ()
1286 function Enumerate(obj) {
1288 if (Object(obj) !== obj) return e;
1289 var visited = new Set;
1290 while (obj !== null) {
1291 Object.getOwnPropertyNames(obj).forEach(function(name) {
1292 if (!visited.has(name)) {
1293 var desc = Object.getOwnPropertyDescriptor(obj, name);
1296 if (desc.enumerable) e.push(name);
1300 obj = Object.getPrototypeOf(obj);
1302 return e[$$iterator]();
1305 //
9.1.12 [[OwnPropertyKeys]] ( )
1306 function OwnPropertyKeys(o) {
1307 return Object.getOwnPropertyNames(o);
1310 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1311 function ObjectCreate(proto, internalSlotsList) {
1312 return Object.create(proto, internalSlotsList);
1315 // ---------------------------------------
1316 //
19 Fundamental Objects
1317 // ---------------------------------------
1319 // ---------------------------------------
1320 //
19.1 Object Objects
1321 // ---------------------------------------
1323 //
19.1.1 The Object Constructor
1324 //
19.1.1.1 Object ( [ value ] )
1325 //
19.1.2 Properties of the Object Constructor
1326 //
19.1.2.1 Object.assign ( target, ...sources )
1329 function assign(target, /*...*/sources) {
1330 var to = ToObject(target);
1331 if (arguments.length <
2) return to;
1333 var sourcesIndex =
1;
1334 while (sourcesIndex < arguments.length) {
1335 var nextSource = arguments[sourcesIndex++];
1336 if (nextSource === undefined || nextSource === null) {
1339 var from = ToObject(nextSource);
1340 keys = OwnPropertyKeys(from);
1342 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1343 var nextKey = keys[keysIndex];
1344 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1345 if (desc !== undefined && desc.enumerable) {
1346 var propValue = from[nextKey];
1347 to[nextKey] = propValue;
1354 //
19.1.2.2 Object.create ( O [ , Properties ] )
1355 //
19.1.2.3 Object.defineProperties ( O, Properties )
1356 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1357 //
19.1.2.5 Object.freeze ( O )
1358 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1361 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1362 $getOwnPropertyNames = Object.getOwnPropertyNames,
1363 $keys = Object.keys,
1364 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1366 function isStringKey(k) { return !symbolForKey(k); }
1368 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1370 Object, 'getOwnPropertyNames',
1371 function getOwnPropertyNames(o) {
1372 if (Object.prototype.toString.call(o) === '[object Window]') {
1373 // Workaround for cross-realm calling by IE itself.
1374 // https://github.com/inexorabletash/polyfill/issues/
96
1376 return $getOwnPropertyNames(o).filter(isStringKey);
1378 return $window_names.slice();
1381 return $getOwnPropertyNames(o).filter(isStringKey);
1384 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1386 Object, 'getOwnPropertySymbols',
1387 function getOwnPropertySymbols(o) {
1388 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1391 //
19.1.2.14 Object.keys ( O )
1395 return $keys(o).filter(isStringKey);
1399 //
19.1.2.9 Object.getPrototypeOf ( O )
1400 //
19.1.2.10 Object.is ( value1, value2 )
1403 function is(value1, value2) {
1404 return SameValue(value1, value2);
1407 //
19.1.2.11 Object.isExtensible ( O )
1408 //
19.1.2.12 Object.isFrozen ( O )
1409 //
19.1.2.13 Object.isSealed ( O )
1411 //
19.1.2.14 Object.keys ( O )
1414 //
19.1.2.15 Object.preventExtensions ( O )
1415 //
19.1.2.16 Object.prototype
1416 //
19.1.2.17 Object.seal ( O )
1418 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1420 Object, 'setPrototypeOf',
1421 function setPrototypeOf(o, proto) {
1422 if (Type(o) !== 'object') throw TypeError();
1423 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1424 o.__proto__ = proto;
1429 //
19.1.3 Properties of the Object Prototype Object
1430 //
19.1.3.1 Object.prototype.constructor
1431 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1432 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1433 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1434 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1435 //
19.1.3.6 Object.prototype.toString ( )
1436 hook(Object.prototype, 'toString',
1438 var o = strict(this);
1439 if (o === Object(o) && $$toStringTag in o) {
1440 return '[object ' + o[$$toStringTag] + ']';
1445 //
19.1.3.7 Object.prototype.valueOf ( )
1446 //
19.1.4 Properties of Object Instances
1448 // ---------------------------------------
1449 //
19.2 Function Objects
1450 // ---------------------------------------
1452 //
19.2.1 The Function Constructor
1453 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1454 //
19.2.2 Properties of the Function Constructor
1455 //
19.2.2.1 Function.length
1456 //
19.2.2.2 Function.prototype
1457 //
19.2.3 Properties of the Function Prototype Object
1458 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1459 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1460 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1461 //
19.2.3.4 Function.prototype.constructor
1462 //
19.2.3.5 Function.prototype.toString ( )
1463 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1464 //
19.2.4 Function Instances
1467 //
19.2.4.3 prototype
1469 // (No polyfillable changes from ES5)
1471 // ---------------------------------------
1472 //
19.3 Boolean Objects
1473 // ---------------------------------------
1475 //
19.3.1 The Boolean Constructor
1476 //
19.3.1.1 Boolean ( value )
1477 //
19.3.2 Properties of the Boolean Constructor
1478 //
19.3.2.1 Boolean.prototype
1479 //
19.3.3 Properties of the Boolean Prototype Object
1480 //
19.3.3.1 Boolean.prototype.constructor
1481 //
19.3.3.2 Boolean.prototype.toString ( )
1482 //
19.3.3.3 Boolean.prototype.valueOf ( )
1483 //
19.3.4 Properties of Boolean Instances
1485 // (No polyfillable changes from ES5)
1487 // ---------------------------------------
1488 //
19.4 Symbol Objects
1489 // ---------------------------------------
1491 // Moved earlier in this script, so that other polyfills can depend on them.
1493 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1494 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1496 // ---------------------------------------
1497 //
19.5 Error Objects
1498 // ---------------------------------------
1500 //
19.5.1 The Error Constructor
1501 //
19.5.1.1 Error ( message )
1502 //
19.5.1.2 new Error( ...argumentsList )
1503 //
19.5.2 Properties of the Error Constructor
1504 //
19.5.2.1 Error.prototype
1505 //
19.5.3 Properties of the Error Prototype Object
1506 //
19.5.3.1 Error.prototype.constructor
1507 //
19.5.3.2 Error.prototype.message
1508 //
19.5.3.3 Error.prototype.name
1509 //
19.5.3.4 Error.prototype.toString ( )
1510 //
19.5.4 Properties of Error Instances
1511 //
19.5.5 Native Error Types Used in This Standard
1512 //
19.5.5.1 EvalError
1513 //
19.5.5.2 RangeError
1514 //
19.5.5.3 ReferenceError
1515 //
19.5.5.4 SyntaxError
1516 //
19.5.5.5 TypeError
1517 //
19.5.5.6 URIError
1518 //
19.5.6 NativeError Object Structure
1519 //
19.5.6.1 NativeError Constructors
1520 //
19.5.6.1.1 NativeError ( message )
1521 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1522 //
19.5.6.2 Properties of the NativeError Constructors
1523 //
19.5.6.2.1 NativeError.prototype
1524 //
19.5.6.3 Properties of the NativeError Prototype Objects
1525 //
19.5.6.4 Properties of NativeError Instances
1527 // (No polyfillable changes from ES5)
1529 // ---------------------------------------
1530 //
20 Numbers and Dates
1531 // ---------------------------------------
1533 // ---------------------------------------
1534 //
20.1 Number Objects
1535 // ---------------------------------------
1537 //
20.1.1 The Number Constructor
1538 //
20.1.1.1 Number ( [ value ] )
1539 //
20.1.1.2 new Number ( ...argumentsList )
1540 //
20.1.2 Properties of the Number Constructor
1542 //
20.1.2.1 Number.EPSILON
1547 for (next =
1;
1 + next !==
1; next = next /
2)
1552 //
20.1.2.2 Number.isFinite ( number )
1555 function isFinite(number) {
1556 if (Type(number) !== 'number') return false;
1557 if (number !== number || number === +Infinity || number === -Infinity) return false;
1561 //
20.1.2.3 Number.isInteger ( number )
1563 Number, 'isInteger',
1564 function isInteger(number) {
1565 if (Type(number) !== 'number') return false;
1566 if (number !== number || number === +Infinity || number === -Infinity) return false;
1567 var integer = ToInteger(number);
1568 if (integer !== number) return false;
1572 //
20.1.2.4 Number.isNaN ( number )
1575 function isNaN(number) {
1576 if (Type(number) !== 'number') return false;
1577 if (number !== number) return true;
1581 //
20.1.2.5 Number.isSafeInteger ( number )
1583 Number, 'isSafeInteger',
1584 function isSafeInteger(number) {
1585 if (Type(number) !== 'number') return false;
1586 if (number !== number || number === +Infinity || number === -Infinity) return false;
1587 var integer = ToInteger(number);
1588 if (integer !== number) return false;
1589 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1594 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1596 Number, 'MAX_SAFE_INTEGER',
1597 9007199254740991); //
2^
53-
1
1599 //
20.1.2.7 Number.MAX_VALUE
1601 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1603 Number, 'MIN_SAFE_INTEGER',
1604 -
9007199254740991); // -
2^
53+
1
1606 //
20.1.2.9 Number.MIN_VALUE
1607 //
20.1.2.10 Number.NaN
1608 //
20.1.2.11 Number.NEGATIVE_INFINITY
1610 //
20.1.2.12 Number.parseFloat ( string )
1611 define(Number, 'parseFloat', $parseFloat);
1613 //
20.1.2.13 Number.parseInt ( string, radix )
1614 define(Number, 'parseInt', $parseInt);
1616 //
20.1.2.14 Number.POSITIVE_INFINITY
1617 //
20.1.2.15 Number.prototype
1619 //
20.1.3 Properties of the Number Prototype Object
1620 //
20.1.3.1 Number.prototype.constructor
1621 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1622 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1623 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1624 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1625 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1626 //
20.1.3.7 Number.prototype.valueOf ( )
1627 //
20.1.4 Properties of Number Instances
1629 // ---------------------------------------
1630 //
20.2 The Math Object
1631 // ---------------------------------------
1633 //
20.2.1 Value Properties of the Math Object
1635 //
20.2.1.2 Math.LN10
1636 //
20.2.1.3 Math.LN2
1637 //
20.2.1.4 Math.LOG10E
1638 //
20.2.1.5 Math.LOG2E
1640 //
20.2.1.7 Math.SQRT1_2
1641 //
20.2.1.8 Math.SQRT2
1643 //
20.2.1.9 Math [ @@toStringTag ]
1644 define(Math, $$toStringTag, 'Math');
1646 //
20.2.2 Function Properties of the Math Object
1647 //
20.2.2.1 Math.abs ( x )
1648 //
20.2.2.2 Math.acos ( x )
1650 //
20.2.2.3 Math.acosh(x)
1655 return log(x + sqrt(x * x -
1));
1658 //
20.2.2.4 Math.asin ( x )
1660 //
20.2.2.5 Math.asinh( x )
1665 if (SameValue(x, -
0)) {
1668 var s = sqrt(x * x +
1);
1669 return (s === -x) ? log(
0) : log(x + s);
1672 //
20.2.2.6 Math.atan ( x )
1674 //
20.2.2.7 Math.atanh( x )
1679 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1682 //
20.2.2.8 Math.atan2 ( y, x )
1684 //
20.2.2.9 Math.cbrt ( x )
1692 var r = pow(abs(x),
1/
3);
1694 return r + (r * (t-r) / (
2*r + t));
1697 //
20.2.2.10 Math.ceil ( x )
1699 //
20.2.2.11 Math.clz32 ( x )
1704 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1705 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1708 return x &
0xff000000 ? clz8(x
>> 24) :
1709 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1710 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1715 //
20.2.2.12 Math.cos ( x )
1717 //
20.2.2.13 Math.cosh ( x )
1722 return (pow(E, x) + pow(E, -x)) /
2;
1725 //
20.2.2.14 Math.exp ( x )
1727 //
20.2.2.15 Math.expm1 ( x )
1732 // from: http://www.johndcook.com/cpp_log1p.html
1733 if (SameValue(x, -
0)) {
1735 } else if (abs(x) <
1e-5) {
1736 return x +
0.5 * x * x; // two terms of Taylor expansion
1742 //
20.2.2.16 Math.floor ( x )
1744 //
20.2.2.17 Math.fround ( x )
1747 function fround(x) {
1751 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1754 return (new Float32Array([x]))[
0];
1757 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1762 var m =
0, sawNaN = false;
1763 for (var i =
0; i < arguments.length; ++i) {
1764 var n = abs(Number(arguments[i]));
1765 if (n === Infinity) return n;
1766 if (n !== n) sawNaN = true;
1770 if (sawNaN) return NaN;
1771 if (m ===
0) return +
0;
1773 for (i =
0; i < values.length; ++i) {
1774 var r = values[i] / m;
1777 return m * sqrt(sum);
1780 //
20.2.2.19 Math.imul ( x, y )
1783 function imul(x, y) {
1784 var a = ToUint32(x);
1785 var b = ToUint32(y);
1786 // (slow but accurate)
1787 var ah = (a
>>> 16) &
0xffff;
1788 var al = a &
0xffff;
1789 var bh = (b
>>> 16) &
0xffff;
1790 var bl = b &
0xffff;
1791 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1792 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1795 //
20.2.2.20 Math.log ( x )
1797 //
20.2.2.21 Math.log1p ( x )
1802 // from: http://www.johndcook.com/cpp_expm1.html
1805 } else if (SameValue(x, -
0)) {
1807 } else if (abs(x)
> 1e-4) {
1810 return (-
0.5 * x +
1) * x;
1814 //
20.2.2.22 Math.log10 ( x )
1819 return log(x) * LOG10E;
1822 //
20.2.2.23 Math.log2 ( x )
1827 return log(x) * LOG2E;
1830 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1831 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1832 //
20.2.2.26 Math.pow ( x, y )
1833 //
20.2.2.27 Math.random ( )
1834 //
20.2.2.28 Math.round ( x )
1836 //
20.2.2.29 Math.sign(x)
1841 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1844 //
20.2.2.30 Math.sin ( x )
1846 //
20.2.2.31 Math.sinh( x )
1851 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1854 //
20.2.2.32 Math.sqrt ( x )
1855 //
20.2.2.33 Math.tan ( x )
1857 //
20.2.2.34 Math.tanh ( x )
1862 var n = pow(E,
2 * x) -
1,
1863 d = pow(E,
2 * x) +
1;
1864 if (SameValue(x, -
0))
1866 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1869 //
20.2.2.35 Math.trunc ( x )
1874 return $isNaN(x) ? NaN :
1875 x <
0 ? ceil(x) : floor(x);
1878 // ---------------------------------------
1879 //
20.3 Date Objects
1880 // ---------------------------------------
1882 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
1883 //
20.3.1.1 Time Values and Time Range
1884 //
20.3.1.2 Day Number and Time within Day
1885 //
20.3.1.3 Year Number
1886 //
20.3.1.4 Month Number
1887 //
20.3.1.5 Date Number
1888 //
20.3.1.6 Week Day
1889 //
20.3.1.7 Local Time Zone Adjustment
1890 //
20.3.1.8 Daylight Saving Time Adjustment
1891 //
20.3.1.9 Local Time
1892 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
1893 //
20.3.1.11 MakeTime (hour, min, sec, ms)
1894 //
20.3.1.12 MakeDay (year, month, date)
1895 //
20.3.1.13 MakeDate (day, time)
1896 //
20.3.1.14 TimeClip (time)
1897 //
20.3.1.15 Date Time String Format
1898 //
20.3.1.15.1 Extended years
1899 //
20.3.2 The Date Constructor
1900 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1901 //
20.3.2.2 Date ( value )
1902 //
20.3.2.3 Date ( )
1903 //
20.3.3 Properties of the Date Constructor
1904 //
20.3.3.1 Date.now ( )
1905 //
20.3.3.2 Date.parse (string)
1906 //
20.3.3.3 Date.prototype
1907 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1908 //
20.3.4 Properties of the Date Prototype Object
1909 //
20.3.4.1 Date.prototype.constructor
1910 //
20.3.4.2 Date.prototype.getDate ( )
1911 //
20.3.4.3 Date.prototype.getDay ( )
1912 //
20.3.4.4 Date.prototype.getFullYear ( )
1913 //
20.3.4.5 Date.prototype.getHours ( )
1914 //
20.3.4.6 Date.prototype.getMilliseconds ( )
1915 //
20.3.4.7 Date.prototype.getMinutes ( )
1916 //
20.3.4.8 Date.prototype.getMonth ( )
1917 //
20.3.4.9 Date.prototype.getSeconds ( )
1918 //
20.3.4.10 Date.prototype.getTime ( )
1919 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
1920 //
20.3.4.12 Date.prototype.getUTCDate ( )
1921 //
20.3.4.13 Date.prototype.getUTCDay ( )
1922 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
1923 //
20.3.4.15 Date.prototype.getUTCHours ( )
1924 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
1925 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
1926 //
20.3.4.18 Date.prototype.getUTCMonth ( )
1927 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
1928 //
20.3.4.20 Date.prototype.setDate ( date )
1929 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
1930 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
1931 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
1932 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
1933 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
1934 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
1935 //
20.3.4.27 Date.prototype.setTime ( time )
1936 //
20.3.4.28 Date.prototype.setUTCDate ( date )
1937 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
1938 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
1939 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
1940 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
1941 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
1942 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
1943 //
20.3.4.35 Date.prototype.toDateString ( )
1944 //
20.3.4.36 Date.prototype.toISOString ( )
1945 //
20.3.4.37 Date.prototype.toJSON ( key )
1946 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
1947 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1948 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
1949 //
20.3.4.41 Date.prototype.toString ( )
1950 //
20.3.4.42 Date.prototype.toTimeString ( )
1951 //
20.3.4.43 Date.prototype.toUTCString ( )
1952 //
20.3.4.44 Date.prototype.valueOf ( )
1953 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
1954 //
20.3.5 Properties of Date Instances
1956 // (No polyfillable changes from ES5)
1958 // ---------------------------------------
1959 //
21 Text Processing
1960 // ---------------------------------------
1962 var string_regexp_dispatch = (function() {
1963 var faux = {}, secret = Symbol();
1964 faux[Symbol.match] = function() { return secret; };
1965 return (
"").match(faux) === secret;
1968 //
21.1 String Objects
1969 //
21.1.1 The String Constructor
1970 //
21.1.1.1 String ( value )
1971 //
21.1.2 Properties of the String Constructor
1972 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
1974 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
1976 String, 'fromCodePoint',
1977 function fromCodePoint(/*...codePoints*/) {
1978 var codePoints = arguments,
1979 length = codePoints.length,
1982 while (nextIndex < length) {
1983 var next = codePoints[nextIndex];
1984 var nextCP = Number(next);
1985 if (!SameValue(nextCP, ToInteger(nextCP)) ||
1986 nextCP <
0 || nextCP
> 0x10FFFF) {
1987 throw RangeError('Invalid code point ' + nextCP);
1989 if (nextCP <
0x10000) {
1990 elements.push(String.fromCharCode(nextCP));
1993 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
1994 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
1998 return elements.join('');
2001 //
21.1.2.3 String.prototype
2003 //
21.1.2.4 String.raw ( template , ...substitutions )
2006 function raw(template /*, ...substitutions*/) {
2007 var substitutions = [].slice.call(arguments,
1);
2009 var cooked = Object(template);
2010 var rawValue = cooked['raw'];
2011 var raw = Object(rawValue);
2012 var len = raw['length'];
2013 var literalSegments = ToLength(len);
2014 if (literalSegments <=
0) return '';
2015 var stringElements = [];
2018 var next = raw[nextIndex];
2019 var nextSeg = String(next);
2020 stringElements.push(nextSeg);
2021 if (nextIndex +
1 === literalSegments)
2022 return stringElements.join('');
2023 next = substitutions[nextIndex];
2024 var nextSub = String(next);
2025 stringElements.push(nextSub);
2026 nextIndex = nextIndex +
1;
2030 // See https://githib.com/inexorabletash/uate for a more useful version.
2032 //
21.1.3 Properties of the String Prototype Object
2033 //
21.1.3.1 String.prototype.charAt ( pos )
2034 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2036 //
21.1.3.3 String.prototype.codePointAt ( pos )
2038 String.prototype, 'codePointAt',
2039 function codePointAt(pos) {
2040 var o = strict(this);
2042 var position = ToInteger(pos);
2043 var size = s.length;
2044 if (position <
0 || position
>= size) return undefined;
2045 var first = s.charCodeAt(position);
2046 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2047 var second = s.charCodeAt(position +
1);
2048 if (second <
0xDC00 || second
> 0xDFFF) return first;
2049 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2052 //
21.1.3.4 String.prototype.concat ( ...args )
2053 //
21.1.3.5 String.prototype.constructor
2055 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2057 String.prototype, 'endsWith',
2058 function endsWith(searchString) {
2059 var endPosition = arguments[
1];
2061 var o = strict(this);
2063 var searchStr = String(searchString);
2065 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2066 var end = min(max(pos,
0), len);
2067 var searchLength = searchStr.length;
2068 var start = end - searchLength;
2069 if (start <
0) return false;
2070 if (s.substring(start, start + searchLength) === searchStr) return true;
2074 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2076 String.prototype, 'includes',
2077 function includes(searchString) {
2078 var position = arguments[
1];
2080 var o = strict(this);
2082 var searchStr = String(searchString);
2083 var pos = ToInteger(position);
2085 var start = min(max(pos,
0), len);
2086 return s.indexOf(searchStr, start) !== -
1;
2089 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2090 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2091 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2092 //
21.1.3.11 String.prototype.match ( regexp )
2094 String.prototype, 'match',
2095 function match(regexp) {
2096 var o = strict(this);
2098 if (HasProperty(regexp, $$match)) var rx = regexp;
2099 else rx = new RegExp(regexp);
2100 return rx[$$match](s);
2101 }, !string_regexp_dispatch);
2103 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2105 // Not practical due to table sizes; if needed, pull in:
2106 // https://github.com/walling/unorm/
2108 //
21.1.3.13 String.prototype.repeat ( count )
2110 String.prototype, 'repeat',
2111 function repeat(count) {
2112 var o = strict(this);
2114 var n = ToInteger(count);
2115 if (n <
0) throw RangeError();
2116 if (n === Infinity) throw RangeError();
2117 var t = new Array(n +
1).join(s);
2121 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2123 String.prototype, 'replace',
2124 function replace(searchValue, replaceValue) {
2125 var o = strict(this);
2126 if (HasProperty(searchValue, $$replace))
2127 return searchValue[$$replace](o, replaceValue);
2128 return orig_replace.call(o, searchValue, replaceValue);
2129 }, !string_regexp_dispatch);
2131 //
21.1.3.15 String.prototype.search ( regexp )
2133 String.prototype, 'search',
2134 function search(regexp) {
2135 var o = strict(this);
2136 var string = String(o);
2137 if (HasProperty(regexp, $$search)) var rx = regexp;
2138 else rx = new RegExp(regexp);
2139 return rx[$$search](string);
2140 }, !string_regexp_dispatch);
2142 //
21.1.3.16 String.prototype.slice ( start, end )
2143 //
21.1.3.17 String.prototype.split ( separator, limit )
2145 String.prototype, 'split',
2146 function split(separator, limit) {
2147 var o = strict(this);
2148 if (HasProperty(separator, $$split))
2149 return separator[$$split](o, limit);
2150 return orig_split.call(o, separator, limit);
2151 }, !string_regexp_dispatch);
2153 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2155 String.prototype, 'startsWith',
2156 function startsWith(searchString) {
2157 var position = arguments[
1];
2159 var o = strict(this);
2161 var searchStr = String(searchString);
2162 var pos = ToInteger(position);
2164 var start = min(max(pos,
0), len);
2165 var searchLength = searchStr.length;
2166 if (searchLength + start
> len) return false;
2167 if (s.substring(start, start + searchLength) === searchStr) return true;
2171 //
21.1.3.19 String.prototype.substring ( start, end )
2172 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2173 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2174 //
21.1.3.22 String.prototype.toLowerCase ( )
2175 //
21.1.3.23 String.prototype.toString ( )
2176 //
21.1.3.24 String.prototype.toUpperCase ( )
2177 //
21.1.3.25 String.prototype.trim ( )
2178 //
21.1.3.26 String.prototype.valueOf ( )
2180 //
21.1.3.27 String.prototype [ @@iterator ]( )
2182 String.prototype, $$iterator,
2183 function entries() {
2184 return CreateStringIterator(this, 'value');
2187 //
21.1.4 Properties of String Instances
2190 //
21.1.5 String Iterator Objects
2192 function StringIterator() {}
2194 //
21.1.5.1 CreateStringIterator Abstract Operation
2195 function CreateStringIterator(string, kind) {
2196 var s = String(string);
2197 var iterator = new StringIterator;
2198 set_internal(iterator, '[[IteratedString]]', s);
2199 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2200 set_internal(iterator, '[[StringIterationKind]]', kind);
2204 //
21.1.5.2 The %StringIteratorPrototype% Object
2205 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2206 StringIterator.prototype = $StringIteratorPrototype$;
2208 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2210 $StringIteratorPrototype$, 'next',
2212 var o = ToObject(this);
2213 var s = String(o['[[IteratedString]]']),
2214 index = o['[[StringIteratorNextIndex]]'],
2217 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2218 return CreateIterResultObject(undefined, true);
2220 var cp = s.codePointAt(index);
2221 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2222 return CreateIterResultObject(String.fromCodePoint(cp), false);
2225 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2226 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2228 //
21.1.5.3 Properties of String Iterator Instances
2230 // ---------------------------------------
2231 //
21.2 RegExp (Regular Expression) Objects
2232 // ---------------------------------------
2235 //
21.2.2 Pattern Semantics
2236 //
21.2.2.1 Notation
2238 //
21.2.2.3 Disjunction
2239 //
21.2.2.4 Alternative
2241 //
21.2.2.6 Assertion
2242 //
21.2.2.7 Quantifier
2244 //
21.2.2.9 AtomEscape
2245 //
21.2.2.10 CharacterEscape
2246 //
21.2.2.11 DecimalEscape
2247 //
21.2.2.12 CharacterClassEscape
2248 //
21.2.2.13 CharacterClass
2249 //
21.2.2.14 ClassRanges
2250 //
21.2.2.15 NonemptyClassRanges
2251 //
21.2.2.16 NonemptyClassRangesNoDash
2252 //
21.2.2.17 ClassAtom
2253 //
21.2.2.18 ClassAtomNoDash
2254 //
21.2.2.19 ClassEscape
2255 //
21.2.3 The RegExp Constructor
2256 //
21.2.3.1 RegExp ( pattern, flags )
2257 //
21.2.3.2 new RegExp( ...argumentsList )
2258 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2259 //
21.2.4 Properties of the RegExp Constructor
2260 //
21.2.4.1 RegExp.prototype
2261 //
21.2.5 Properties of the RegExp Prototype Object
2262 //
21.2.5.1 RegExp.prototype.constructor
2263 //
21.2.5.2 RegExp.prototype.exec ( string )
2265 //
21.2.5.3 get RegExp.prototype.flags
2266 if (!('flags' in RegExp.prototype)) {
2267 Object.defineProperty(
2268 RegExp.prototype, 'flags', {
2270 var s = String(this);
2271 return s.substring(s.lastIndexOf('/') +
1);
2276 //
21.2.5.4 get RegExp.prototype.global
2277 //
21.2.5.5 get RegExp.prototype.ignoreCase
2279 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2280 define(RegExp.prototype, $$match, function(string) {
2281 var o = strict(this);
2282 return orig_match.call(string, o);
2285 //
21.2.5.7 get RegExp.prototype.multiline
2287 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2288 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2289 var o = strict(this);
2290 return orig_replace.call(string, o, replaceValue);
2293 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2294 define(RegExp.prototype, $$search, function(string) {
2295 var o = strict(this);
2296 return orig_search.call(string, o);
2299 //
21.2.5.10 get RegExp.prototype.source
2301 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2302 define(RegExp.prototype, $$split, function(string, limit) {
2303 var o = strict(this);
2304 return orig_split.call(string, o, limit);
2307 //
21.2.5.12 get RegExp.prototype.sticky
2308 //
21.2.5.13 RegExp.prototype.test( S )
2309 //
21.2.5.14 RegExp.prototype.toString ( )
2310 //
21.2.5.15 get RegExp.prototype.unicode
2312 //
21.2.6 Properties of RegExp Instances
2313 //
21.2.6.1 lastIndex
2315 // (No polyfillable changes from ES5)
2317 // ---------------------------------------
2318 //
22 Indexed Collections
2319 // ---------------------------------------
2321 // ---------------------------------------
2322 //
22.1 Array Objects
2323 // ---------------------------------------
2325 //
22.1.1 The Array Constructor
2326 //
22.1.1.1 Array ( )
2327 //
22.1.1.2 Array (len)
2328 //
22.1.1.3 Array (...items )
2330 //
22.1.2 Properties of the Array Constructor
2332 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2335 function from(items) {
2336 var mapfn = arguments[
1];
2337 var thisArg = arguments[
2];
2339 var c = strict(this);
2340 if (mapfn === undefined) {
2341 var mapping = false;
2343 if (!IsCallable(mapfn)) throw TypeError();
2347 var usingIterator = GetMethod(items, $$iterator);
2348 if (usingIterator !== undefined) {
2349 if (IsConstructor(c)) {
2354 var iterator = GetIterator(items, usingIterator);
2357 var next = IteratorStep(iterator);
2358 if (next === false) {
2362 var nextValue = IteratorValue(next);
2364 var mappedValue = mapfn.call(t, nextValue);
2366 mappedValue = nextValue;
2371 var arrayLike = ToObject(items);
2372 var lenValue = arrayLike.length;
2373 var len = ToLength(lenValue);
2374 if (IsConstructor(c)) {
2381 var kValue = arrayLike[k];
2383 mappedValue = mapfn.call(t, kValue, k);
2385 mappedValue = kValue;
2393 //
22.1.2.2 Array.isArray ( arg )
2395 //
22.1.2.3 Array.of ( ...items )
2399 var items = arguments;
2401 var lenValue = items.length;
2402 var len = ToUint32(lenValue);
2403 var c = strict(this), a;
2404 if (IsConstructor(c)) {
2419 //
22.1.2.4 Array.prototype
2420 //
22.1.2.5 get Array [ @@species ]
2421 //
22.1.3 Properties of the Array Prototype Object
2422 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2423 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2424 //
22.1.3.2 Array.prototype.constructor
2425 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2427 Array.prototype, 'copyWithin',
2428 function copyWithin(target, start/*, end*/) {
2429 var end = arguments[
2];
2431 var o = ToObject(this);
2432 var lenVal = o.length;
2433 var len = ToLength(lenVal);
2435 var relativeTarget = ToInteger(target);
2437 if (relativeTarget <
0)
2438 to = max(len + relativeTarget,
0);
2440 to = min(relativeTarget, len);
2441 var relativeStart = ToInteger(start);
2443 if (relativeStart <
0)
2444 from = max(len + relativeStart,
0);
2446 from = min(relativeStart, len);
2448 if (end === undefined)
2451 relativeEnd = ToInteger(end);
2453 if (relativeEnd <
0)
2454 final = max(len + relativeEnd,
0);
2456 final = min(relativeEnd, len);
2457 var count = min(final - from, len - to);
2459 if (from < to && to < from + count) {
2461 from = from + count -
1;
2462 to = to + count -
1;
2467 var fromKey = String(from);
2468 var toKey = String(to);
2469 var fromPresent = HasProperty(o, fromKey);
2471 var fromVal = o[fromKey];
2476 from = from + direction;
2477 to = to + direction;
2483 //
22.1.3.4 Array.prototype.entries ( )
2484 var nativeArrayIteratorMethods =
2485 ('entries' in Array.prototype && 'next' in [].entries());
2488 Array.prototype, 'entries',
2489 function entries() {
2490 return CreateArrayIterator(this, 'key+value');
2491 }, !nativeArrayIteratorMethods);
2493 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2495 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2497 Array.prototype, 'fill',
2498 function fill(value/*, start, end*/) {
2499 var start = arguments[
1],
2502 var o = ToObject(this);
2503 var lenVal = o.length;
2504 var len = ToLength(lenVal);
2506 var relativeStart = ToInteger(start);
2508 if (relativeStart <
0)
2509 k = max((len + relativeStart),
0);
2511 k = min(relativeStart, len);
2513 if (end === undefined)
2516 relativeEnd = ToInteger(end);
2518 if (relativeEnd <
0)
2519 final = max((len + relativeEnd),
0);
2521 final = min(relativeEnd, len);
2530 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2532 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2534 Array.prototype, 'find',
2535 function find(predicate) {
2536 var o = ToObject(this);
2537 var lenValue = o.length;
2538 var len = ToInteger(lenValue);
2539 if (!IsCallable(predicate)) throw TypeError();
2540 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2544 var kPresent = HasProperty(o, pk);
2547 var testResult = predicate.call(t, kValue, k, o);
2548 if (Boolean(testResult)) {
2557 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2559 Array.prototype, 'findIndex',
2560 function findIndex(predicate) {
2561 var o = ToObject(this);
2562 var lenValue = o.length;
2563 var len = ToLength(lenValue);
2564 if (!IsCallable(predicate)) throw TypeError();
2565 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2569 var kPresent = HasProperty(o, pk);
2572 var testResult = predicate.call(t, kValue, k, o);
2573 if (Boolean(testResult)) {
2582 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2583 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2584 //
22.1.3.12 Array.prototype.join (separator)
2586 //
22.1.3.13 Array.prototype.keys ( )
2588 Array.prototype, 'keys',
2590 return CreateArrayIterator(this, 'key');
2591 }, !nativeArrayIteratorMethods);
2593 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2594 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2595 //
22.1.3.16 Array.prototype.pop ( )
2596 //
22.1.3.17 Array.prototype.push ( ...items )
2597 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2598 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2599 //
22.1.3.20 Array.prototype.reverse ( )
2600 //
22.1.3.21 Array.prototype.shift ( )
2601 //
22.1.3.22 Array.prototype.slice (start, end)
2602 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2603 //
22.1.3.24 Array.prototype.sort (comparefn)
2604 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2605 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2606 //
22.1.3.27 Array.prototype.toString ( )
2607 //
22.1.3.28 Array.prototype.unshift ( ...items )
2609 //
22.1.3.29 Array.prototype.values ( )
2611 Array.prototype, 'values',
2613 return CreateArrayIterator(this, 'value');
2614 }, !nativeArrayIteratorMethods);
2616 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2618 Array.prototype, $$iterator,
2619 Array.prototype.values
2622 //
22.1.3.31 Array.prototype [ @@unscopables ]
2623 //
22.1.4 Properties of Array Instances
2626 //
22.1.5 Array Iterator Objects
2627 function ArrayIterator() {}
2629 //
22.1.5.1 CreateArrayIterator Abstract Operation
2630 function CreateArrayIterator(array, kind) {
2631 var o = ToObject(array);
2632 var iterator = new ArrayIterator;
2633 set_internal(iterator, '[[IteratedObject]]', o);
2634 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2635 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2639 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2640 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2641 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2643 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2645 $ArrayIteratorPrototype$, 'next',
2647 var o = strict(this);
2648 if (Type(o) !== 'object') throw TypeError();
2649 var a = o['[[IteratedObject]]'],
2650 index = o['[[ArrayIteratorNextIndex]]'],
2651 itemKind = o['[[ArrayIterationKind]]'],
2652 lenValue = a.length,
2653 len = ToUint32(lenValue),
2656 if (itemKind.indexOf('sparse') !== -
1) {
2658 while (!found && index < len) {
2659 elementKey = String(index);
2660 found = HasProperty(a, elementKey);
2667 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2668 return CreateIterResultObject(undefined, true);
2671 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2672 if (itemKind.indexOf('value') !== -
1)
2673 elementValue = a[elementKey];
2674 if (itemKind.indexOf('key+value') !== -
1)
2675 return CreateIterResultObject([elementKey, elementValue], false);
2676 if (itemKind.indexOf('key') !== -
1)
2677 return CreateIterResultObject(elementKey, false);
2678 if (itemKind === 'value')
2679 return CreateIterResultObject(elementValue, false);
2680 throw Error('Internal error');
2683 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2684 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2686 //
22.1.5.3 Properties of Array Iterator Instances
2689 // ---------------------------------------
2690 //
22.2 TypedArray Objects
2691 // ---------------------------------------
2693 // See typedarray.js for TypedArray polyfill
2695 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2696 'Int16Array', 'Uint16Array',
2697 'Int32Array', 'Uint32Array',
2698 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2699 if (!($TypedArrayName$ in global))
2701 var $TypedArray$ = global[$TypedArrayName$];
2703 //
22.2.1 The %TypedArray% Intrinsic Object
2704 //
22.2.1.1 %TypedArray% ( length )
2705 //
22.2.1.2 %TypedArray% ( typedArray )
2706 //
22.2.1.3 %TypedArray% ( object )
2707 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2708 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2709 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2711 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2713 $TypedArray$, 'from',
2714 function from(source) {
2715 var mapfn = arguments[
1];
2716 var thisArg = arguments[
2];
2718 var c = strict(this);
2719 if (!IsConstructor(c)) throw TypeError();
2720 if (mapfn === undefined) {
2721 var mapping = false;
2723 if (IsCallable(mapfn)) throw TypeError();
2727 var usingIterator = GetMethod(source, $$iterator);
2728 if (usingIterator !== undefined) {
2729 var iterator = GetIterator(source, usingIterator);
2732 while (next !== false) {
2733 next = IteratorStep(iterator);
2734 if (next !== false) {
2735 var nextValue = IteratorValue(next);
2736 values.push(nextValue);
2739 var len = values.length;
2740 var newObj = new c(len);
2743 var kValue = values.shift();
2745 var mappedValue = mapfn.call(t, kValue);
2747 mappedValue = kValue;
2749 newObj[k] = mappedValue;
2752 console.assert(values.length ===
0);
2755 var arrayLike = ToObject(source);
2756 var lenValue = arrayLike.length;
2757 len = ToLength(lenValue);
2758 newObj = new c(len);
2761 kValue = arrayLike[k];
2763 mappedValue = mapfn.call(t, kValue, k);
2765 mappedValue = kValue;
2767 newObj[k] = mappedValue;
2773 //
22.2.2.2 %TypedArray%.of ( ...items )
2777 var items = arguments;
2779 var len = items.length;
2780 var c = strict(this);
2781 var newObj = new c(len);
2784 newObj[k] = items[k];
2790 //
22.2.2.3 %TypedArray%.prototype
2791 //
22.2.2.4 get %TypedArray% [ @@species ]
2792 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2793 //
22.2.3.1 get %TypedArray%.prototype.buffer
2794 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2795 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2796 //
22.2.3.4 %TypedArray%.prototype.constructor
2798 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2799 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2801 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2802 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2804 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2805 define($TypedArray$.prototype, 'every', Array.prototype.every);
2807 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2809 $TypedArray$.prototype, 'fill',
2810 //Array.prototype.fill // Doesn't work in Safari
7
2811 function fill(value/*, start, end*/) {
2812 var start = arguments[
1],
2815 var o = ToObject(this);
2816 var lenVal = o.length;
2817 var len = ToLength(lenVal);
2819 var relativeStart = ToInteger(start);
2821 if (relativeStart <
0) k = max((len + relativeStart),
0);
2822 else k = min(relativeStart, len);
2824 if (end === undefined) relativeEnd = len;
2825 else relativeEnd = ToInteger(end);
2827 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2828 else final = min(relativeEnd, len);
2837 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2839 $TypedArray$.prototype, 'filter',
2840 function filter(callbackfn) {
2841 var thisArg = arguments[
1];
2843 var o = ToObject(this);
2844 var lenVal = o.length;
2845 var len = ToLength(lenVal);
2846 if (!IsCallable(callbackfn)) throw TypeError();
2848 var c = o.constructor;
2854 var selected = callbackfn.call(t, kValue, k, o);
2861 var a = new c(captured);
2863 for (var i =
0; i < kept.length; ++i) {
2871 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2872 define($TypedArray$.prototype, 'find', Array.prototype.find);
2874 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2875 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2877 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2878 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
2880 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
2881 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
2883 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
2884 define($TypedArray$.prototype, 'join', Array.prototype.join);
2886 //
22.2.3.15 %TypedArray%.prototype.keys ( )
2887 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
2889 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2890 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
2892 //
22.2.3.17 get %TypedArray%.prototype.length
2894 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
2896 $TypedArray$.prototype, 'map',
2897 function map(callbackfn) {
2898 var thisArg = arguments[
1];
2900 var o = ToObject(this);
2901 var lenValue = o.length;
2902 var len = ToLength(lenValue);
2903 if (!IsCallable(callbackfn)) throw TypeError();
2906 var c = o.constructor;
2907 if (IsConstructor(c))
2909 if (a === undefined)
2913 var kPresent = HasProperty(o, k);
2916 var mappedValue = callbackfn.call(t, kValue, k, o);
2924 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
2925 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
2927 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
2928 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
2930 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
2931 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
2933 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
2934 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
2935 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
2937 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
2939 $TypedArray$.prototype, 'slice',
2940 function slice(start, end) {
2941 var o = ToObject(this);
2942 var lenVal = o.length;
2943 var len = ToLength(lenVal);
2944 var relativeStart = ToInteger(start);
2945 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
2946 var relativeEnd = (end === undefined) ? len : ToInteger(end);
2947 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
2948 var count = final - k;
2949 var c = o.constructor;
2950 if (IsConstructor(c)) {
2951 var a = new c(count);
2965 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
2966 define($TypedArray$.prototype, 'some', Array.prototype.some);
2968 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
2970 $TypedArray$.prototype, 'sort',
2972 var comparefn = arguments[
0];
2974 function sortCompare(x, y) {
2975 console.assert(Type(x) === 'number' && Type(y) === 'number');
2976 if (x !== x && y !== y) return +
0;
2977 if (x !== x) return
1;
2978 if (y !== y) return -
1;
2979 if (comparefn !== undefined) {
2980 return comparefn(x, y);
2982 if (x < y) return -
1;
2983 if (x
> y) return
1;
2986 return Array.prototype.sort.call(this, sortCompare);
2989 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
2990 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
2991 //
22.2.3.28 %TypedArray%.prototype.toString ( )
2993 //
22.2.3.29 %TypedArray%.prototype.values ( )
2994 define($TypedArray$.prototype, 'values', Array.prototype.values);
2996 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
2998 $TypedArray$.prototype, $$iterator,
2999 $TypedArray$.prototype.values
3002 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3003 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3005 //
22.2.4 The TypedArray Constructors
3006 //
22.2.4.1TypedArray( ... argumentsList)
3007 //
22.2.5 Properties of the TypedArray Constructors
3008 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3009 //
22.2.5.2 TypedArray.prototype
3010 //
22.2.6 Properties of TypedArray Prototype Objects
3011 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3012 //
22.2.6.2 TypedArray.prototype.constructor
3013 //
22.2.7 Properties of TypedArray Instances
3016 // ---------------------------------------
3017 //
23 Keyed Collection
3018 // ---------------------------------------
3020 // ---------------------------------------
3022 // ---------------------------------------
3025 //
23.1.1 The Map Constructor
3027 //
23.1.1.1 Map ( [ iterable ] )
3029 function Map(/*iterable*/) {
3030 var map = strict(this);
3031 var iterable = arguments[
0];
3033 if (Type(map) !== 'object') throw TypeError();
3034 if ('[[MapData]]' in map) throw TypeError();
3036 if (iterable !== undefined) {
3037 var adder = map['set'];
3038 if (!IsCallable(adder)) throw TypeError();
3039 var iter = GetIterator(ToObject(iterable));
3041 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3042 if (iter === undefined) return map;
3044 var next = IteratorStep(iter);
3047 var nextItem = IteratorValue(next);
3048 if (Type(nextItem) !== 'object') throw TypeError();
3049 var k = nextItem[
0];
3050 var v = nextItem[
1];
3051 adder.call(map, k, v);
3057 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3058 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3059 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3060 (new global.Map([['a',
1]]).size !==
1))
3064 function MapDataIndexOf(mapData, key) {
3066 if (key === key) return mapData.keys.indexOf(key);
3067 // Slow case for NaN
3068 for (i =
0; i < mapData.keys.length; i +=
1)
3069 if (SameValueZero(mapData.keys[i], key)) return i;
3073 //
23.1.1.2 new Map ( ... argumentsList )
3074 //
23.1.2 Properties of the Map Constructor
3075 //
23.1.2.1 Map.prototype
3076 var $MapPrototype$ = {};
3077 Map.prototype = $MapPrototype$;
3079 //
23.1.2.2 get Map [ @@species ]
3081 //
23.1.3 Properties of the Map Prototype Object
3082 //
23.1.3.1 Map.prototype.clear ()
3084 Map.prototype, 'clear',
3086 var m = strict(this);
3087 if (Type(m) !== 'object') throw TypeError();
3088 if (!('[[MapData]]' in m)) throw TypeError();
3089 if (m['[[MapData]]'] === undefined) throw TypeError();
3090 var entries = m['[[MapData]]'];
3091 entries.keys.length =
0;
3092 entries.values.length =
0;
3096 //
23.1.3.2 Map.prototype.constructor
3098 //
23.1.3.3 Map.prototype.delete ( key )
3100 Map.prototype, 'delete',
3101 function delete_(key) {
3102 var m = strict(this);
3103 if (Type(m) !== 'object') throw TypeError();
3104 if (!('[[MapData]]' in m)) throw TypeError();
3105 if (m['[[MapData]]'] === undefined) throw TypeError();
3106 var entries = m['[[MapData]]'];
3107 var i = MapDataIndexOf(entries, key);
3108 if (i <
0) return false;
3109 entries.keys[i] = empty;
3110 entries.values[i] = empty;
3114 //
23.1.3.4 Map.prototype.entries ( )
3116 Map.prototype, 'entries',
3117 function entries() {
3118 var m = strict(this);
3119 if (Type(m) !== 'object') throw TypeError();
3120 return CreateMapIterator(m, 'key+value');
3123 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3125 Map.prototype, 'forEach',
3126 function forEach(callbackfn /*, thisArg*/) {
3127 var thisArg = arguments[
1];
3129 var m = strict(this);
3130 if (Type(m) !== 'object') throw TypeError();
3131 if (!('[[MapData]]' in m)) throw TypeError();
3132 if (m['[[MapData]]'] === undefined) throw TypeError();
3133 var entries = m['[[MapData]]'];
3135 if (!IsCallable(callbackfn)) {
3136 throw TypeError('First argument to forEach is not callable.');
3138 for (var i =
0; i < entries.keys.length; ++i) {
3139 if (entries.keys[i] !== empty) {
3140 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3146 //
23.1.3.6 Map.prototype.get ( key )
3148 Map.prototype, 'get',
3150 var m = strict(this);
3151 if (Type(m) !== 'object') throw TypeError();
3152 if (!('[[MapData]]' in m)) throw TypeError();
3153 if (m['[[MapData]]'] === undefined) throw TypeError();
3154 var entries = m['[[MapData]]'];
3155 var i = MapDataIndexOf(entries, key);
3156 if (i
>=
0) return entries.values[i];
3160 //
23.1.3.7 Map.prototype.has ( key )
3162 Map.prototype, 'has',
3164 var m = strict(this);
3165 if (Type(m) !== 'object') throw TypeError();
3166 if (!('[[MapData]]' in m)) throw TypeError();
3167 if (m['[[MapData]]'] === undefined) throw TypeError();
3168 var entries = m['[[MapData]]'];
3169 if (MapDataIndexOf(entries, key)
>=
0) return true;
3173 //
23.1.3.8 Map.prototype.keys ( )
3175 Map.prototype, 'keys',
3177 var m = strict(this);
3178 if (Type(m) !== 'object') throw TypeError();
3179 return CreateMapIterator(m, 'key');
3182 //
23.1.3.9 Map.prototype.set ( key , value )
3184 Map.prototype, 'set',
3185 function set(key, value) {
3186 var m = strict(this);
3187 if (Type(m) !== 'object') throw TypeError();
3188 if (!('[[MapData]]' in m)) throw TypeError();
3189 if (m['[[MapData]]'] === undefined) throw TypeError();
3190 var entries = m['[[MapData]]'];
3191 var i = MapDataIndexOf(entries, key);
3192 if (i <
0) i = entries.keys.length;
3193 if (SameValue(key, -
0)) key =
0;
3194 entries.keys[i] = key;
3195 entries.values[i] = value;
3199 //
23.1.3.10 get Map.prototype.size
3200 Object.defineProperty(
3201 Map.prototype, 'size', {
3203 var m = strict(this);
3204 if (Type(m) !== 'object') throw TypeError();
3205 if (!('[[MapData]]' in m)) throw TypeError();
3206 if (m['[[MapData]]'] === undefined) throw TypeError();
3207 var entries = m['[[MapData]]'];
3209 for (var i =
0; i < entries.keys.length; ++i) {
3210 if (entries.keys[i] !== empty)
3217 //
23.1.3.11 Map.prototype.values ( )
3219 Map.prototype, 'values',
3221 var m = strict(this);
3222 if (Type(m) !== 'object') throw TypeError();
3223 return CreateMapIterator(m, 'value');
3226 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3228 Map.prototype, $$iterator,
3230 var m = strict(this);
3231 if (Type(m) !== 'object') throw TypeError();
3232 return CreateMapIterator(m, 'key+value');
3235 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3236 define(global.Map.prototype, $$toStringTag, 'Map');
3238 //
23.1.4 Properties of Map Instances
3239 //
23.1.5 Map Iterator Objects
3242 function MapIterator() {}
3244 //
23.1.5.1 CreateMapIterator Abstract Operation
3245 function CreateMapIterator(map, kind) {
3246 if (Type(map) !== 'object') throw TypeError();
3247 if (!('[[MapData]]' in map)) throw TypeError();
3248 if (map['[[MapData]]'] === undefined) throw TypeError();
3249 var iterator = new MapIterator;
3250 set_internal(iterator, '[[Map]]', map);
3251 set_internal(iterator, '[[MapNextIndex]]',
0);
3252 set_internal(iterator, '[[MapIterationKind]]', kind);
3256 //
23.1.5.2 The %MapIteratorPrototype% Object
3257 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3258 MapIterator.prototype = $MapIteratorPrototype$;
3260 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3262 $MapIteratorPrototype$, 'next',
3264 var o = strict(this);
3265 if (Type(o) !== 'object') throw TypeError();
3266 var m = o['[[Map]]'],
3267 index = o['[[MapNextIndex]]'],
3268 itemKind = o['[[MapIterationKind]]'],
3269 entries = m['[[MapData]]'];
3270 while (index < entries.keys.length) {
3271 var e = {key: entries.keys[index], value: entries.values[index]};
3273 set_internal(o, '[[MapNextIndex]]', index);
3274 if (e.key !== empty) {
3275 if (itemKind === 'key') {
3276 return CreateIterResultObject(e.key, false);
3277 } else if (itemKind === 'value') {
3278 return CreateIterResultObject(e.value, false);
3280 return CreateIterResultObject([e.key, e.value], false);
3284 return CreateIterResultObject(undefined, true);
3287 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3288 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3290 //
23.1.5.3 Properties of Map Iterator Instances
3293 // ---------------------------------------
3295 // ---------------------------------------
3298 //
23.2.1 The Set Constructor
3299 //
23.2.1.1 Set ( [ iterable ] )
3302 function Set(/*iterable*/) {
3303 var set = strict(this);
3304 var iterable = arguments[
0];
3306 if (Type(set) !== 'object') throw TypeError();
3307 if ('[[SetData]]' in set) throw TypeError();
3309 if (iterable !== undefined) {
3310 var adder = set['add'];
3311 if (!IsCallable(adder)) throw TypeError();
3312 var iter = GetIterator(ToObject(iterable));
3314 set_internal(set, '[[SetData]]', []);
3315 if (iter === undefined) return set;
3317 var next = IteratorStep(iter);
3320 var nextValue = IteratorValue(next);
3321 adder.call(set, nextValue);
3327 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3328 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3329 (new global.Set([
1]).size !==
1))
3332 function SetDataIndexOf(setData, key) {
3335 return setData.indexOf(key);
3336 // Slow case for NaN
3337 for (i =
0; i < setData.length; i +=
1)
3338 if (SameValueZero(setData[i], key)) return i;
3342 //
23.2.1.2 new Set ( ...argumentsList )
3343 //
23.2.2 Properties of the Set Constructor
3345 //
23.2.2.1 Set.prototype
3346 var $SetPrototype$ = {};
3347 Set.prototype = $SetPrototype$;
3349 //
23.2.2.2 get Set [ @@species ]
3350 //
23.2.3 Properties of the Set Prototype Object
3352 //
23.2.3.1 Set.prototype.add (value )
3354 Set.prototype, 'add',
3355 function add(value) {
3356 var s = strict(this);
3357 if (Type(s) !== 'object') throw TypeError();
3358 if (!('[[SetData]]' in s)) throw TypeError();
3359 if (s['[[SetData]]'] === undefined) throw TypeError();
3360 if (SameValue(value, -
0)) value =
0;
3361 var entries = s['[[SetData]]'];
3362 var i = SetDataIndexOf(entries, value);
3363 if (i <
0) i = s['[[SetData]]'].length;
3364 s['[[SetData]]'][i] = value;
3369 //
23.2.3.2 Set.prototype.clear ()
3371 Set.prototype, 'clear',
3373 var s = strict(this);
3374 if (Type(s) !== 'object') throw TypeError();
3375 if (!('[[SetData]]' in s)) throw TypeError();
3376 if (s['[[SetData]]'] === undefined) throw TypeError();
3377 var entries = s['[[SetData]]'];
3382 //
23.2.3.3 Set.prototype.constructor
3383 //
23.2.3.4 Set.prototype.delete ( value )
3385 Set.prototype, 'delete',
3386 function delete_(value) {
3387 var s = strict(this);
3388 if (Type(s) !== 'object') throw TypeError();
3389 if (!('[[SetData]]' in s)) throw TypeError();
3390 if (s['[[SetData]]'] === undefined) throw TypeError();
3391 var entries = s['[[SetData]]'];
3392 var i = SetDataIndexOf(entries, value);
3393 if (i <
0) return false;
3398 //
23.2.3.5 Set.prototype.entries ( )
3400 Set.prototype, 'entries',
3401 function entries() {
3402 var s = strict(this);
3403 if (Type(s) !== 'object') throw TypeError();
3404 return CreateSetIterator(s, 'key+value');
3407 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3409 Set.prototype, 'forEach',
3410 function forEach(callbackfn/*, thisArg*/) {
3411 var thisArg = arguments[
1];
3413 var s = strict(this);
3414 if (Type(s) !== 'object') throw TypeError();
3415 if (!('[[SetData]]' in s)) throw TypeError();
3416 if (s['[[SetData]]'] === undefined) throw TypeError();
3417 var entries = s['[[SetData]]'];
3419 if (!IsCallable(callbackfn)) {
3420 throw TypeError('First argument to forEach is not callable.');
3422 for (var i =
0; i < entries.length; ++i) {
3423 if (entries[i] !== empty) {
3424 callbackfn.call(thisArg, entries[i], entries[i], s);
3429 //
23.2.3.7 Set.prototype.has ( value )
3431 Set.prototype, 'has',
3433 var s = strict(this);
3434 if (Type(s) !== 'object') throw TypeError();
3435 if (!('[[SetData]]' in s)) throw TypeError();
3436 if (s['[[SetData]]'] === undefined) throw TypeError();
3437 var entries = s['[[SetData]]'];
3438 return SetDataIndexOf(entries, key) !== -
1;
3441 //
23.2.3.8 Set.prototype.keys ( )
3442 // See Set.prototype.values
3444 //
23.2.3.9 get Set.prototype.size
3445 Object.defineProperty(
3446 Set.prototype, 'size', {
3448 var s = strict(this);
3449 if (Type(s) !== 'object') throw TypeError();
3450 if (!('[[SetData]]' in s)) throw TypeError();
3451 if (s['[[SetData]]'] === undefined) throw TypeError();
3452 var entries = s['[[SetData]]'];
3454 for (var i =
0; i < entries.length; ++i) {
3455 if (entries[i] !== empty)
3462 //
23.2.3.10 Set.prototype.values ( )
3464 Set.prototype, 'values',
3466 var s = strict(this);
3467 if (Type(s) !== 'object') throw TypeError();
3468 return CreateSetIterator(s, 'value');
3470 // NOTE: function name is still 'values':
3471 Set.prototype.keys = Set.prototype.values;
3473 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3475 Set.prototype, $$iterator,
3477 var s = strict(this);
3478 if (Type(s) !== 'object') throw TypeError();
3479 return CreateSetIterator(s);
3482 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3483 define(global.Set.prototype, $$toStringTag, 'Set');
3485 //
23.2.4 Properties of Set Instances
3486 //
23.2.5 Set Iterator Objects
3488 function SetIterator() {}
3490 //
23.2.5.1 CreateSetIterator Abstract Operation
3491 function CreateSetIterator(set, kind) {
3492 if (Type(set) !== 'object') throw TypeError();
3493 if (!('[[SetData]]' in set)) throw TypeError();
3494 if (set['[[SetData]]'] === undefined) throw TypeError();
3495 var iterator = new SetIterator;
3496 set_internal(iterator, '[[IteratedSet]]', set);
3497 set_internal(iterator, '[[SetNextIndex]]',
0);
3498 set_internal(iterator, '[[SetIterationKind]]', kind);
3502 //
23.2.5.2 The %SetIteratorPrototype% Object
3503 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3504 SetIterator.prototype = $SetIteratorPrototype$;
3506 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3508 $SetIteratorPrototype$, 'next',
3510 var o = strict(this);
3511 if (Type(o) !== 'object') throw TypeError();
3512 var s = o['[[IteratedSet]]'],
3513 index = o['[[SetNextIndex]]'],
3514 itemKind = o['[[SetIterationKind]]'],
3515 entries = s['[[SetData]]'];
3516 while (index < entries.length) {
3517 var e = entries[index];
3519 set_internal(o, '[[SetNextIndex]]', index);
3521 if (itemKind === 'key+value')
3522 return CreateIterResultObject([e, e], false);
3523 return CreateIterResultObject(e, false);
3526 return CreateIterResultObject(undefined, true);
3529 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3530 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3532 //
23.2.5.3 Properties of Set Iterator Instances
3536 // ---------------------------------------
3537 //
23.3 WeakMap Objects
3538 // ---------------------------------------
3541 //
23.3.1 The WeakMap Constructor
3542 //
23.3.1.1 WeakMap ( [ iterable ] )
3544 function WeakMap(/*iterable*/) {
3545 var map = strict(this);
3546 var iterable = arguments[
0];
3548 if (Type(map) !== 'object') throw TypeError();
3549 if ('[[WeakMapData]]' in map) throw TypeError();
3551 if (iterable !== undefined) {
3552 var adder = map['set'];
3553 if (!IsCallable(adder)) throw TypeError();
3554 var iter = GetIterator(ToObject(iterable));
3556 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3557 if (iter === undefined) return map;
3559 var next = IteratorStep(iter);
3562 var nextValue = IteratorValue(next);
3563 if (Type(nextValue) !== 'object') throw TypeError();
3564 var k = nextValue[
0];
3565 var v = nextValue[
1];
3566 adder.call(map, k, v);
3572 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3573 global.WeakMap = WeakMap;
3575 //
23.3.2 Properties of the WeakMap Constructor
3576 //
23.3.2.1 WeakMap.prototype
3577 var $WeakMapPrototype$ = {};
3578 WeakMap.prototype = $WeakMapPrototype$;
3582 //
23.3.2.2 WeakMap[ @@create ] ( )
3583 //
23.3.3 Properties of the WeakMap Prototype Object
3585 //
23.3.3.1 WeakMap.prototype.constructor
3587 //
23.3.3.2 WeakMap.prototype.delete ( key )
3589 WeakMap.prototype, 'delete',
3590 function delete_(key) {
3591 var M = strict(this);
3592 if (Type(M) !== 'object') throw TypeError();
3593 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3594 if (Type(key) !== 'object') throw TypeError('Expected object');
3595 return M['[[WeakMapData]]'].remove(key);
3598 //
23.3.3.3 WeakMap.prototype.get ( key )
3600 WeakMap.prototype, 'get',
3601 function get(key, defaultValue) {
3602 var M = strict(this);
3603 if (Type(M) !== 'object') throw TypeError();
3604 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3605 if (Type(key) !== 'object') throw TypeError('Expected object');
3606 return M['[[WeakMapData]]'].get(key, defaultValue);
3609 //
23.3.3.4 WeakMap.prototype.has ( key )
3611 WeakMap.prototype, 'has',
3613 var M = strict(this);
3614 if (Type(M) !== 'object') throw TypeError();
3615 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3616 if (Type(key) !== 'object') throw TypeError('Expected object');
3617 return M['[[WeakMapData]]'].has(key);
3620 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3622 WeakMap.prototype, 'set',
3623 function set(key, value) {
3624 var M = strict(this);
3625 if (Type(M) !== 'object') throw TypeError();
3626 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3627 if (Type(key) !== 'object') throw TypeError('Expected object');
3628 M['[[WeakMapData]]'].set(key, value);
3632 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3633 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3635 //
23.3.4 Properties of WeakMap Instances
3637 // Polyfills for incomplete native implementations:
3639 var wm = new global.WeakMap();
3640 var orig = global.WeakMap.prototype.set;
3641 define(global.WeakMap.prototype, 'set', function set() {
3642 orig.apply(this, arguments);
3644 }, wm.set({},
0) !== wm);
3648 // ---------------------------------------
3649 //
23.4 WeakSet Objects
3650 // ---------------------------------------
3653 //
23.4.1 The WeakSet Constructor
3654 //
23.4.1.1 WeakSet ( [ iterable ] )
3656 function WeakSet(/*iterable*/) {
3657 var set = strict(this);
3658 var iterable = arguments[
0];
3660 if (Type(set) !== 'object') throw TypeError();
3661 if ('[[WeakSetData]]' in set) throw TypeError();
3663 if (iterable !== undefined) {
3664 var adder = set['add'];
3665 if (!IsCallable(adder)) throw TypeError();
3666 var iter = GetIterator(ToObject(iterable));
3668 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3669 if (iter === undefined) return set;
3671 var next = IteratorStep(iter);
3674 var nextValue = IteratorValue(next);
3675 adder.call(set, nextValue);
3681 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3682 global.WeakSet = WeakSet;
3684 //
23.4.2 Properties of the WeakSet Constructor
3685 //
23.4.2.1 WeakSet.prototype
3686 var $WeakSetPrototype$ = {};
3687 WeakSet.prototype = $WeakSetPrototype$;
3689 //
23.4.3 Properties of the WeakSet Prototype Object
3690 //
23.4.3.1 WeakSet.prototype.add (value )
3692 WeakSet.prototype, 'add',
3693 function add(value) {
3694 var S = strict(this);
3695 if (Type(S) !== 'object') throw TypeError();
3696 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3697 if (Type(value) !== 'object') throw TypeError('Expected object');
3698 S['[[WeakSetData]]'].set(value, true);
3702 //
23.4.3.2 WeakSet.prototype.constructor
3703 //
23.4.3.3 WeakSet.prototype.delete ( value )
3705 WeakSet.prototype, 'delete',
3706 function delete_(value) {
3707 var S = strict(this);
3708 if (Type(S) !== 'object') throw TypeError();
3709 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3710 if (Type(value) !== 'object') throw TypeError('Expected object');
3711 return S['[[WeakSetData]]'].remove(value);
3714 //
23.4.3.4 WeakSet.prototype.has ( value )
3716 WeakSet.prototype, 'has',
3718 var S = strict(this);
3719 if (Type(S) !== 'object') throw TypeError();
3720 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3721 if (Type(key) !== 'object') throw TypeError('Expected object');
3722 return S['[[WeakSetData]]'].has(key);
3725 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3726 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3728 //
23.4.4 Properties of WeakSet Instances
3730 // Polyfills for incomplete native implementations:
3732 var ws = new global.WeakSet();
3733 var orig = global.WeakSet.prototype.add;
3734 define(global.WeakSet.prototype, 'add', function add() {
3735 orig.apply(this, arguments);
3737 }, ws.add({}) !== ws);
3741 // ---------------------------------------
3742 //
24 Structured Data
3743 // ---------------------------------------
3745 // ---------------------------------------
3746 //
24.1 ArrayBuffer Objects
3747 // ---------------------------------------
3749 // See typedarray.js for TypedArray polyfill
3752 if (!('ArrayBuffer' in global))
3755 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3756 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3757 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3758 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3759 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3760 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3761 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3762 //
24.1.2 The ArrayBuffer Constructor
3763 //
24.1.2.1 ArrayBuffer( length )
3764 //
24.1.3 Properties of the ArrayBuffer Constructor
3766 //
24.1.3.1 ArrayBuffer.isView ( arg )
3768 ArrayBuffer, 'isView',
3769 function isView(arg) {
3770 if (Type(arg) !== 'object') return false;
3771 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3775 //
24.1.3.2 ArrayBuffer.prototype
3776 //
24.1.3.3 get ArrayBuffer [ @@species ]
3777 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3778 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3779 //
24.1.4.2 ArrayBuffer.prototype.constructor
3780 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3782 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3783 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3785 //
24.1.5 Properties of the ArrayBuffer Instances
3788 // ---------------------------------------
3789 //
24.2 DataView Objects
3790 // ---------------------------------------
3792 // See typedarray.js for TypedArray polyfill
3795 if (!('DataView' in global))
3798 //
24.2.1 Abstract Operations For DataView Objects
3799 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3800 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3801 //
24.2.2 The DataView Constructor
3802 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3803 //
24.2.3 Properties of the DataView Constructor
3804 //
24.2.3.1 DataView.prototype
3805 //
24.2.4 Properties of the DataView Prototype Object
3806 //
24.2.4.1 get DataView.prototype.buffer
3807 //
24.2.4.2 get DataView.prototype.byteLength
3808 //
24.2.4.3 get DataView.prototype.byteOffset
3809 //
24.2.4.4 DataView.prototype.constructor
3810 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3811 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3812 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3813 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3814 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3815 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3816 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3817 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3818 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3819 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3820 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3821 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3822 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3823 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3824 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3825 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3827 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3828 define(DataView.prototype, $$toStringTag, 'DataView');
3830 //
24.2.5 Properties of DataView Instances
3833 // ---------------------------------------
3834 //
24.3 The JSON Object
3835 // ---------------------------------------
3837 //
24.3.1 JSON.parse ( text [ , reviver ] )
3838 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3839 //
24.3.3 JSON [ @@toStringTag ]
3840 define(JSON, $$toStringTag, 'JSON');
3842 // ---------------------------------------
3844 // ---------------------------------------
3846 //
25.1.1 Common Iteration Interfaces
3847 //
25.1.1.1 The Iterable Interface
3848 //
25.1.1.2 The Iterator Interface
3849 //
25.1.1.3 The IteratorResult Interface
3851 //
25.1.2 The %IteratorPrototype% Object
3852 // Defined earlier, so other prototypes can reference it.
3853 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3854 define($IteratorPrototype$, $$iterator, function() {
3859 // ---------------------------------------
3860 //
25.4 Promise Objects
3861 // ---------------------------------------
3864 //
25.4 Promise Objects
3866 //
25.4.1 Promise Abstract Operations
3868 //
25.4.1.1 PromiseCapability Records
3869 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3871 function IfAbruptRejectPromise(value, capability) {
3872 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3873 return capability['[[Promise]]'];
3876 //
25.4.1.2 PromiseReaction Records
3878 //
25.4.1.3 CreateResolvingFunctions ( promise )
3880 function CreateResolvingFunctions(promise) {
3881 var alreadyResolved = {'[[value]]': false};
3882 var resolve = PromiseResolveFunction();
3883 set_internal(resolve, '[[Promise]]', promise);
3884 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
3885 var reject = PromiseRejectFunction();
3886 set_internal(reject, '[[Promise]]', promise);
3887 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
3888 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
3891 //
25.4.1.3.1 Promise Reject Functions
3893 function PromiseRejectFunction() {
3894 var F = function(reason) {
3895 console.assert(Type(F['[[Promise]]']) === 'object');
3896 var promise = F['[[Promise]]'];
3897 var alreadyResolved = F['[[AlreadyResolved]]'];
3898 if (alreadyResolved['[[value]]']) return undefined;
3899 set_internal(alreadyResolved, '[[value]]', true);
3900 return RejectPromise(promise, reason);
3905 //
25.4.1.3.2 Promise Resolve Functions
3907 function PromiseResolveFunction() {
3908 var F = function(resolution) {
3909 console.assert(Type(F['[[Promise]]']) === 'object');
3910 var promise = F['[[Promise]]'];
3911 var alreadyResolved = F['[[AlreadyResolved]]'];
3912 if (alreadyResolved['[[value]]']) return undefined;
3913 set_internal(alreadyResolved, '[[value]]', true);
3915 if (SameValue(resolution, promise)) {
3916 var selfResolutionError = TypeError();
3917 return RejectPromise(promise, selfResolutionError);
3919 if (Type(resolution) !== 'object')
3920 return FulfillPromise(promise, resolution);
3922 var then = resolution['then'];
3924 return RejectPromise(promise, then);
3926 if (!IsCallable(then))
3927 return FulfillPromise(promise, resolution);
3928 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
3934 //
25.4.1.4 FulfillPromise ( promise, value )
3936 function FulfillPromise(promise, value) {
3937 console.assert(promise['[[PromiseState]]'] === 'pending');
3938 var reactions = promise['[[PromiseFulfillReactions]]'];
3939 set_internal(promise, '[[PromiseResult]]', value);
3940 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
3941 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
3942 set_internal(promise, '[[PromiseState]]', 'fulfilled');
3943 return TriggerPromiseReactions(reactions, value);
3946 //
25.4.1.5 NewPromiseCapability ( C )
3948 function NewPromiseCapability(c) {
3949 // To keep Promise hermetic, this doesn't look much like the spec.
3950 return CreatePromiseCapabilityRecord(undefined, c);
3953 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
3955 function CreatePromiseCapabilityRecord(promise, constructor) {
3956 // To keep Promise hermetic, this doesn't look much like the spec.
3957 console.assert(IsConstructor(constructor));
3958 var promiseCapability = {};
3959 set_internal(promiseCapability, '[[Promise]]', promise);
3960 set_internal(promiseCapability, '[[Resolve]]', undefined);
3961 set_internal(promiseCapability, '[[Reject]]', undefined);
3962 var executor = GetCapabilitiesExecutor();
3963 set_internal(executor, '[[Capability]]', promiseCapability);
3965 // NOTE: Differs from spec; object is constructed here
3966 var constructorResult = promise = new constructor(executor);
3967 set_internal(promiseCapability, '[[Promise]]', promise);
3969 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
3970 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
3971 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
3972 return promiseCapability;
3975 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
3977 function GetCapabilitiesExecutor() {
3978 var F = function(resolve, reject) {
3979 console.assert(F['[[Capability]]']);
3980 var promiseCapability = F['[[Capability]]'];
3981 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
3982 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
3983 set_internal(promiseCapability, '[[Resolve]]', resolve);
3984 set_internal(promiseCapability, '[[Reject]]', reject);
3990 //
25.4.1.6 IsPromise ( x )
3992 function IsPromise(x) {
3993 if (Type(x) !== 'object') return false;
3994 if (!('[[PromiseState]]' in x)) return false;
3995 if (x['[[PromiseState]]'] === undefined) return false;
3999 //
25.4.1.7 RejectPromise ( promise, reason )
4001 function RejectPromise(promise, reason) {
4002 console.assert(promise['[[PromiseState]]'] === 'pending');
4003 var reactions = promise['[[PromiseRejectReactions]]'];
4004 set_internal(promise, '[[PromiseResult]]', reason);
4005 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4006 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4007 set_internal(promise, '[[PromiseState]]', 'rejected');
4008 return TriggerPromiseReactions(reactions, reason);
4011 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4013 function TriggerPromiseReactions(reactions, argument) {
4014 for (var i =
0, len = reactions.length; i < len; ++i)
4015 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4019 //
25.4.2 Promise Jobs
4021 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4023 function PromiseReactionJob(reaction, argument) {
4024 var promiseCapability = reaction['[[Capabilities]]'];
4025 var handler = reaction['[[Handler]]'];
4026 var handlerResult, status;
4028 if (handler === 'Identity') handlerResult = argument;
4029 else if (handler === 'Thrower') throw argument;
4030 else handlerResult = handler.call(undefined, argument);
4031 } catch (handlerResult) {
4032 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4033 NextJob(status); return;
4035 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4039 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4041 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4042 // SPEC BUG: promise vs. promiseToResolve
4043 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4045 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4046 resolvingFunctions['[[Reject]]']);
4047 } catch (thenCallResult) {
4048 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4049 NextJob(status); return;
4051 NextJob(thenCallResult);
4054 //
25.4.3 The Promise Constructor
4056 //
25.4.3.1 Promise ( executor )
4058 function Promise(executor) {
4059 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4060 Object.defineProperty(this, '[[PromiseState]]', config);
4061 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4062 Object.defineProperty(this, '[[PromiseResult]]', config);
4063 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4064 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4067 if (Type(promise) !== 'object') throw new TypeError();
4068 if (!('[[PromiseState]]' in promise)) throw TypeError();
4069 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4070 if (!IsCallable(executor)) throw TypeError();
4072 set_internal(promise, '[[PromiseConstructor]]', Promise);
4074 return InitializePromise(promise, executor);
4077 //
25.4.3.1.1 InitializePromise ( promise, executor )
4079 function InitializePromise(promise, executor) {
4080 console.assert('[[PromiseState]]' in promise);
4081 console.assert(IsCallable(executor));
4082 set_internal(promise, '[[PromiseState]]', 'pending');
4083 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4084 set_internal(promise, '[[PromiseRejectReactions]]', []);
4085 var resolvingFunctions = CreateResolvingFunctions(promise);
4087 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4088 resolvingFunctions['[[Reject]]']);
4089 } catch (completion) {
4090 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4095 //
25.4.4 Properties of the Promise Constructor
4096 //
25.4.4.1 Promise.all ( iterable )
4098 define(Promise, 'all', function all(iterable) {
4099 var c = strict(this);
4100 var promiseCapability = NewPromiseCapability(c);
4102 var iterator = GetIterator(iterable);
4104 promiseCapability['[[Reject]]'].call(undefined, value);
4105 return promiseCapability['[[Promise]]'];
4108 var remainingElementsCount = { value:
1 };
4112 var next = IteratorStep(iterator);
4114 promiseCapability['[[Reject]]'].call(undefined, value);
4115 return promiseCapability['[[Promise]]'];
4118 remainingElementsCount.value -=
1;
4119 if (remainingElementsCount.value ===
0) {
4120 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4124 return promiseCapability['[[Promise]]'];
4127 var nextValue = IteratorValue(next);
4129 promiseCapability['[[Reject]]'].call(undefined, value);
4130 return promiseCapability['[[Promise]]'];
4133 var nextPromise = c.resolve(nextValue);
4135 promiseCapability['[[Reject]]'].call(undefined, value);
4136 return promiseCapability['[[Promise]]'];
4138 var resolveElement = PromiseAllResolveElementFunction();
4139 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4140 set_internal(resolveElement, '[[Index]]', index);
4141 set_internal(resolveElement, '[[Values]]', values);
4142 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4143 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4144 remainingElementsCount.value +=
1;
4146 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4148 promiseCapability['[[Reject]]'].call(undefined, value);
4149 return promiseCapability['[[Promise]]'];
4155 //
25.4.4.1.1 Promise.all Resolve Element Functions
4157 function PromiseAllResolveElementFunction() {
4158 var F = function(x) {
4159 var alreadyCalled = F['[[AlreadyCalled]]'];
4160 if (alreadyCalled.value) return undefined;
4161 alreadyCalled.value = true;
4162 var index = F['[[Index]]'];
4163 var values = F['[[Values]]'];
4164 var promiseCapability = F['[[Capabilities]]'];
4165 var remainingElementsCount = F['[[RemainingElements]]'];
4169 promiseCapability['[[Reject]]'].call(undefined, result);
4170 return promiseCapability['[[Promise]]'];
4172 remainingElementsCount.value -=
1;
4173 if (remainingElementsCount.value ===
0)
4174 return promiseCapability['[[Resolve]]'].call(undefined, values);
4180 //
25.4.4.2 Promise.prototype
4182 Promise.prototype = {};
4184 //
25.4.4.3 Promise.race ( iterable )
4186 define(Promise, 'race', function race(iterable) {
4187 var c = strict(this);
4188 var promiseCapability = NewPromiseCapability(c);
4190 var iterator = GetIterator(iterable);
4192 promiseCapability['[[Reject]]'].call(undefined, value);
4193 return promiseCapability['[[Promise]]'];
4197 var next = IteratorStep(iterator);
4199 promiseCapability['[[Reject]]'].call(undefined, value);
4200 return promiseCapability['[[Promise]]'];
4202 if (!next) return promiseCapability['[[Promise]]'];
4204 var nextValue = IteratorValue(next);
4206 promiseCapability['[[Reject]]'].call(undefined, value);
4207 return promiseCapability['[[Promise]]'];
4210 var nextPromise = c.resolve(nextValue);
4212 promiseCapability['[[Reject]]'].call(undefined, value);
4213 return promiseCapability['[[Promise]]'];
4216 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4218 promiseCapability['[[Reject]]'].call(undefined, value);
4219 return promiseCapability['[[Promise]]'];
4224 //
25.4.4.4 Promise.reject ( r )
4226 define(Promise, 'reject', function reject(r) {
4227 var c = strict(this);
4228 var promiseCapability = NewPromiseCapability(c);
4229 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4230 return promiseCapability['[[Promise]]'];
4233 //
25.4.4.5 Promise.resolve ( x )
4235 define(Promise, 'resolve', function resolve(x) {
4236 var c = strict(this);
4238 var constructor = x['[[PromiseConstructor]]'];
4239 if (SameValue(constructor, c)) return x;
4241 var promiseCapability = NewPromiseCapability(c);
4242 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4243 return promiseCapability['[[Promise]]'];
4246 //
25.4.4.6 Promise [ @@create ] ( )
4247 //
25.4.4.6.1 AllocatePromise ( constructor )
4248 //
25.4.5 Properties of the Promise Prototype Object
4249 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4251 define(Promise.prototype, 'catch', function catch_(onRejected) {
4253 return promise.then(undefined, onRejected);
4256 //
25.4.5.2 Promise.prototype.constructor
4258 Promise.prototype.constructor = Promise;
4260 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4262 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4264 if (!IsPromise(promise)) throw TypeError();
4265 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4266 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4267 var c = promise.constructor;
4268 var promiseCapability = NewPromiseCapability(c);
4269 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4270 '[[Handler]]': onFulfilled };
4271 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4272 '[[Handler]]': onRejected };
4273 if (promise['[[PromiseState]]'] === 'pending') {
4274 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4275 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4276 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4277 var value = promise['[[PromiseResult]]'];
4278 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4279 } else if (promise['[[PromiseState]]'] === 'rejected') {
4280 var reason = promise['[[PromiseResult]]'];
4281 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4283 return promiseCapability['[[Promise]]'];
4286 //
25.4.6 Properties of Promise Instances
4288 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4289 global.Promise = Promise;
4291 // Patch early Promise.cast vs. Promise.resolve implementations
4292 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4295 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4296 define(Promise.prototype, $$toStringTag, 'Promise');
4298 // ---------------------------------------
4300 // ---------------------------------------
4303 //
26.1 The Reflect Object
4304 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4305 global.Reflect = {};
4307 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4310 function apply(target, thisArgument, argumentsList) {
4311 if (!IsCallable(target)) throw TypeError();
4312 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4315 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4317 Reflect, 'construct',
4318 function construct(target, argumentsList) {
4319 return __cons(target, argumentsList);
4322 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4324 Reflect, 'defineProperty',
4325 function defineProperty(target, propertyKey, attributes) {
4327 Object.defineProperty(target, propertyKey, attributes);
4334 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4336 Reflect, 'deleteProperty',
4337 function deleteProperty(target,name) {
4339 delete target[name];
4340 return !HasOwnProperty(target, name);
4346 //
26.1.5 Reflect.enumerate ( target )
4348 Reflect, 'enumerate',
4349 function enumerate(target) {
4350 target = ToObject(target);
4351 var iterator = Enumerate(target);
4355 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4358 function get(target, name, receiver) {
4359 target = ToObject(target);
4360 name = String(name);
4361 receiver = (receiver === undefined) ? target : ToObject(receiver);
4362 var desc = getPropertyDescriptor(target, name);
4363 if (desc && 'get' in desc)
4364 return Function.prototype.call.call(desc['get'], receiver);
4365 return target[name];
4368 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4370 Reflect, 'getOwnPropertyDescriptor',
4371 Object.getOwnPropertyDescriptor);
4373 //
26.1.8 Reflect.getPrototypeOf ( target )
4375 Reflect, 'getPrototypeOf',
4376 Object.getPrototypeOf);
4378 //
26.1.9 Reflect.has ( target, propertyKey )
4381 function has(target,name) {
4382 return String(name) in ToObject(target);
4385 //
26.1.10 Reflect.isExtensible (target)
4387 Reflect, 'isExtensible',
4388 Object.isExtensible);
4390 //
26.1.11 Reflect.ownKeys ( target )
4393 function ownKeys(target) {
4394 var obj = ToObject(target);
4395 return Object.getOwnPropertyNames(obj);
4398 //
26.1.12 Reflect.preventExtensions ( target )
4400 Reflect, 'preventExtensions',
4401 function preventExtensions(target) {
4402 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4405 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4408 function set(target, name, value, receiver) {
4409 target = ToObject(target);
4410 name = String(name);
4411 receiver = (receiver === undefined) ? target : ToObject(receiver);
4412 var desc = getPropertyDescriptor(target, name);
4414 if (desc && 'set' in desc)
4415 Function.prototype.call.call(desc['set'], receiver, value);
4417 target[name] = value;
4424 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4426 Reflect, 'setPrototypeOf',
4427 function setPrototypeOf(target, proto) {
4429 target.__proto__ = proto;
4430 return Reflect.getPrototypeOf(target) === proto;
4438 // ---------------------------------------
4439 //
26.2 Proxy Objects
4440 // ---------------------------------------
4442 // Not polyfillable.
4446 // This helper is defined outside the main scope so that the use of
4447 // 'eval' does not taint the scope for minifiers.
4448 function __cons(t, a) {
4449 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4452 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
4453 !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!
0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,
m="
2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:
0,toArray:function(){return d.call(this)},get:function(a){return null!=a?
0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(
0)},last:function(){return this.eq(-
1)},eq:function(a){var b=this.length,c=+a+(
0>a?b:
0);return this.pushStack(c
>=
0&&b
>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[
0]||{},h=
1,i=arguments.length,j=!
1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i
>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!
1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void
0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!
0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)
>=
0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!
1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!
1:!
0},isEmptyObject:function(a){var b;for(b in a)return!
1;return!
0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(
1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=
0,f=a.length,g=s(a);if(c){if(g){for(;f
>e;e++)if(d=b.apply(a[e],c),d===!
1)break}else for(e in a)if(d=b.apply(a[e],c),d===!
1)break}else if(g){for(;f
>e;e++)if(d=b.call(a[e],e,a[e]),d===!
1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!
1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-
1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=
0,e=a.length;c
>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=
0,g=a.length,h=!c;g
>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=
0,g=a.length,h=s(a),i=[];if(h)for(;g
>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:
1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,
2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void
0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!
1:
1===a.nodeType&&b?!
0:"array"===c||
0===b||"number"==typeof b&&b
>0&&b-
1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,
u=
"sizzle"+-new Date,v=a.document,w=
0,x=
0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!
0),
0},
C=
"undefined",D=
1<
<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=
0,c=this.length;c
>b;b++)if(this[b]===a)return b;return-
1},
L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
M="[\\x20\\t\\r\\n\\f]",
N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),
P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",
Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([
>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[
>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{
1,
6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var
d="
0x"+b-
65536;return d!==d||c?b:
0>d?String.fromCharCode(d+
65536):String.fromCharCode(d
>>10|
55296,
1023&d|
56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=
0;while(a[c++]=b[d++]);a.length=c-
1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||
"string"!=typeof a)return d;if(
1!==(k=b.nodeType)&&
9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[
1]){if(
9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[
2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[
3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=
9===k&&a,
1===k&&
"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(
"id"))?s=r.replace(bb,
"\\$&"):b.setAttribute(
"id",s),
s=
"[id='"+s+
"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(
",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(
"id")}}}return i(a.replace(R,
"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+
" ")
>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!
0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!
1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&
1===a.nodeType&&
1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-
1;return a?
1:-
1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!
1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&
9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!
1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.
className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.
innerHTML="
<div class='a'
></div><div class='a i'
></div>",a.firstChild.className="i
",2===a.getElementsByClassName("i
").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id
")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id
");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*
"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''
><option selected=''
></option></select>",a.querySelectorAll("[msallowclip^='']
").length&&q.push("[*^$]=
"+M+"*(?:''|\
"\")
"),a.querySelectorAll("[selected]
").length||q.push("\\[
"+M+"*(?:value|
"+L+")
"),a.querySelectorAll(":checked
").length||q.push(":checked
")}),ib(function(a){var b=e.createElement("input
");b.setAttribute("type
","hidden
"),a.appendChild(b).setAttribute("name
","D
"),a.querySelectorAll("[name=d]
").length&&q.push("name
"+M+"*[*^$|!~]?=
"),a.querySelectorAll(":enabled
").length||q.push(":enabled
",":disabled
"),a.querySelectorAll("*,:x
"),q.push(",.*:
")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div
"),s.call(a,"[s!='']:x
"),r.push("!=
",Q)}),q=q.length&&new RegExp(q.join("|
")),r=r.length&&new RegExp(r.join("|
")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$
1']
"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression:
"+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string
"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode
",first:!0}," ":{dir:"parentNode
"},"+
":{dir:"previousSibling
",first:!0},"~
":{dir:"previousSibling
"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~=
"===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth
"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even
"===a[3]||"odd
"===a[3])),a[5]=+(a[7]+a[8]||"odd
"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")
",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*
"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|
"+M+")
"+a+"(
"+M+"|$)
"))&&y(a,function(a){return b.test("string
"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class
")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!=
"===b:b?(e+="","=
"===b?e===c:"!=
"===b?e!==c:"^=
"===b?c&&0===e.indexOf(c):"*=
"===b?c&&e.indexOf(c)>-1:"$=
"===b?c&&e.slice(-c.length)===c:"~=
"===b?(" "+e+" ").indexOf(c)>-1:"|=
"===b?e===c||e.slice(0,c.length+1)===c+"-
":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth
"!==a.slice(0,3),g="last
"!==a.slice(-4),h="of-type
"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling
":"previousSibling
",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only
"===a&&!o&&"nextSibling
"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo:
"+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$
1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang:
"+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang
")||b.getAttribute("lang
"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-
");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&!!a.checked||"option
"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&"button
"===a.type||"button
"===b},text:function(a){var b;return"input
"===a.nodeName.toLowerCase()&&"text
"===a.type&&(null==(b=a.getAttribute("type
"))||"text
"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(
1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((
1===b.nodeType||e)&&a(b,c,g))return!
0}else while(b=b[d])if(
1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[
0]===w&&h[
1]===f)return j[
2]=h[
2];if(i[d]=j,j[
2]=a(b,c,g))return!
0}}}function sb(a){return a.length
>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!
1;return!
0}:a[
0]}function tb(a,b,c){for(var d=
0,e=b.length;e
>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=
0,i=a.length,j=null!=b;i
>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])
>-
1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[
0].type],h=g||d.relative[" "],i=g?
1:
0,k=rb(function(a){return a===b},h,!
0),l=rb(function(a){return K.call(b,a)
>-
1},h,!
0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f
>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f
>e;e++)if(d.relative[a[e].type])break;return vb(i
>1&&sb(m),i
>1&&qb(a.slice(
0,i-
1).concat({value:
" "===a[i-
2].type?
"*":
""})).replace(R,
"$1"),c,e
>i&&wb(a.slice(i,e)),f
>e&&wb(a=a.slice(e)),f
>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length
>0,e=a.length
>0,f=function(f,g,h,i,k){var l,m,o,p=
0,
q=
"0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(
"*",k),v=w+=null==t?
1:Math.random()||
.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=
0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=
0;while(o=b[m++])o(r,s,g,h);if(f){if(p
>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length
>0&&p+b.length
>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+
" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,
n=
"function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],
1===o.length){if(j=o[
0]=o[
0].slice(
0),j.length
>2&&
"ID"===(k=j[
0]).type&&c.getById&&
9===b.nodeType&&p&&d.relative[j[
1].type]){if(b=(d.find.ID(k.matches[
0].replace(cb,db),b)||[])[
0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?
0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[
0].replace(cb,db),ab.test(j[
0].type)&&ob(b.parentNode)||b))){if(j.splice(i,
1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split(
"").sort(B).join(
"")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return
1&a.compareDocumentPosition(n.createElement(
"div"))}),ib(function(a){return a.
innerHTML=
"<a href='#'></a>",
"#"===a.firstChild.getAttribute(
"href")})||jb(
"type|href|height|width",function(a,b,c){return c?void
0:a.getAttribute(b,
"type"===b.toLowerCase()?
1:
2)}),c.attributes&&ib(function(a){return a.
innerHTML=
"<input/>",a.firstChild.setAttribute(
"value",
""),
""===a.firstChild.getAttribute(
"value")})||jb(
"value",function(a,b,c){return c||
"input"!==a.nodeName.toLowerCase()?void
0:a.defaultValue}),ib(function(a){return null==a.getAttribute(
"disabled")})||jb(L,function(a,b,c){var d;return c?void
0:a[b]===!
0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[
":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/
?>(?:<\/\
1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)
>=
0!==c})}n.filter=function(a,b,c){var d=b[
0];return c&&(
a=":not("+a+")"),
1===b.length&&
1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return
1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=
0;c
>b;b++)if(n.contains(e[b],this))return!
0}));for(b=
0;c
>b;b++)n.find(a,e[b],d);return d=this.pushStack(c
>1?n.unique(d):d),d.selector=this.selector?this.selector+
" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!
1))},not:function(a){return this.pushStack(x(this,a||[],!
0))},is:function(a){return!!x(this,
"string"==typeof a&&u.test(a)?n(a):a||[],!
1).length}});var y,z=/^(?:\s*(<[\w\W]+
>)[^
>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(
c="<"===a[
0]&&"
>"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined
"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):
0;e
>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType
<11&&(g?g.index(c)
>-
1:
1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length
>1?n.unique(f):f)},index:function(a){return a?
"string"==typeof a?g.call(n(a),this[
0]):g.call(this,a.jquery?a[
0]:a):this[
0]&&this[
0].parentNode?this.first().prevAll().length:-
1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&
1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&
11!==b.nodeType?b:null},parents:function(a){return n.dir(a,
"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,
"parentNode",c)},next:function(a){return D(a,
"nextSibling")},prev:function(a){return D(a,
"previousSibling")},nextAll:function(a){return n.dir(a,
"nextSibling")},prevAll:function(a){return n.dir(a,
"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,
"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,
"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return
"Until"!==a.slice(-
5)&&(d=c),d&&
"string"==typeof d&&(e=n.filter(d,e)),this.length
>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!
0}),b}n.Callbacks=function(a){
a=
"string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!
0,g=e||
0,e=
0,f=h.length,d=!
0;h&&f
>g;g++)if(h[g].apply(l[
0],l[
1])===!
1&&a.stopOnFalse){b=!
1;break}d=!
1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))
>-
1)h.splice(c,
1),d&&(f
>=c&&f--,g
>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)
>-
1:!(!h||!h.length)},empty:function(){return h=[],f=
0,this},disable:function(){return h=i=b=void
0,this},disabled:function(){return!h},lock:function(){return i=void
0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],
c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[
1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[
0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[
2],h=f[
3];d[f[
1]]=g.add,h&&g.add(function(){c=h},b[
1^a][
2].disable,b[
2][
2].lock),e[f[
0]]=function(){return e[f[
0]+"With"](this===e?d:this,arguments),this},e[f[
0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=
0,c=d.call(arguments),e=c.length,f=
1!==e||a&&n.isFunction(a.promise)?e:
0,g=
1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length
>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e
>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e
>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!
1,readyWait:
1,holdReady:function(a){a?n.readyWait++:n.ready(!
0)},ready:function(a){(a===!
0?--n.readyWait:n.isReady)||(n.isReady=!
0,a!==!
0&&--n.readyWait
>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(
"ready"),n(l).off(
"ready"))))}});function I(){l.removeEventListener(
"DOMContentLoaded",I,!
1),a.removeEventListener(
"load",I,!
1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),
"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener(
"DOMContentLoaded",I,!
1),a.addEventListener(
"load",I,!
1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=
0,i=a.length,j=null==c;if(
"object"===n.type(c)){e=!
0;for(h in c)n.access(a,b,h,c[h],!
0,f,g)}else if(void
0!==d&&(e=!
0,n.isFunction(d)||(g=!
0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i
>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[
0],c):f};n.acceptData=function(a){return
1===a.nodeType||
9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},
0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=
1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return
0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void
0===b?c:c[b]},access:function(a,b,c){var d;return void
0===b||b&&"string"==typeof b&&void
0===c?(d=this.get(a,b),void
0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void
0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void
0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void
0===c&&
1===a.nodeType)if(
d="data-"+b.replace(O,"-$
1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{
c="true"===c?!
0:"false"===c?!
1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void
0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
4454 },_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[
0],g=f&&f.attributes;if(void
0===a){if(this.length&&(e=M.get(f),
1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,
0===d.indexOf("data-")&&(d=n.camelCase(d.slice(
5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!
0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void
0===b){if(c=M.get(f,a),void
0!==c)return c;if(c=M.get(f,d),void
0!==c)return c;if(c=P(f,d,void
0),void
0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-
1!==a.indexOf("-")&&void
0!==c&&M.set(this,a,b)})},null,b,arguments.length
>1,null,!
0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||
"fx")+
"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void
0},dequeue:function(a,b){b=b||
"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};
"inprogress"===e&&(e=c.shift(),d--),e&&(
"fx"===b&&c.unshift(
"inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+
"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(
"once memory").add(function(){L.remove(a,[b+
"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=
2;return
"string"!=typeof a&&(b=a,
a=
"fx",c--),arguments.length
<c?n.queue(this[
0],a):void
0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),
"fx"===a&&
"inprogress"!==c[
0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||
"fx",[])},promise:function(a,b){var c,d=
1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};
"string"!=typeof a&&(b=a,a=void
0),a=a||
"fx";while(g--)c=L.get(f[g],a+
"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=[
"Top",
"Right",
"Bottom",
"Left"],S=function(a,b){return a=b||a,
"none"===n.css(a,
"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement(
"div")),c=l.createElement(
"input");c.setAttribute(
"type",
"radio"),c.setAttribute(
"checked",
"checked"),c.setAttribute(
"name",
"t"),b.appendChild(c),k.checkClone=b.cloneNode(!
0).cloneNode(!
0).lastChild.checked,b.
innerHTML=
"<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!
0).lastChild.defaultValue}();var
U=
"undefined";k.
focusinBubbles=
"onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!
0}function $(){return!
1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void
0}),b=(b||
"").match(E)||[
""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(
".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=
0,l.setup&&l.setup.call(a,d,p,g)!==!
1||a.addEventListener&&a.addEventListener(o,g,!
1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,
0,k):m.push(k),n.event.global[o]=!
0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||
"").match(E)||[
""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[
2]&&new RegExp(
"(^|\\.)"+p.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(
"**"!==d||!k.selector)||(m.splice(f,
1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!
1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!
0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,
"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,
"type")?b.type:b,r=j.call(b,
"namespace")?b.namespace.split(
"."):[];if(g=h=d=d||l,
3!==d.nodeType&&
8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(
".")
>=
0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")
<0&&
"on"+q,b=b[n.expando]?b:new n.Event(q,
"object"==typeof b&&b),b.isTrigger=e?
2:
3,b.namespace=r.join(
"."),b.namespace_re=b.namespace?new RegExp(
"(^|\\.)"+r.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"):null,b.result=void
0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!
1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=
0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f
>1?i:o.bindType||q,m=(L.get(g,
"events")||{})[b.type]&&L.get(g,
"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!
1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!
1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void
0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,
"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[
0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!
1){h=n.event.handlers.call(this,a,j),b=
0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=
0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void
0!==e&&(a.result=e)===!
1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||
"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!
0||
"click"!==a.type){for(d=[],c=
0;h
>c;c++)f=b[c],e=f.selector+" ",void
0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)
>=
0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h
<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:
"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
" "),fixHooks:{},keyHooks:{props:
"char charCode key keyCode".split(
" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:
"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(
" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||
0)-(d&&d.clientLeft||e&&e.clientLeft||
0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||
0)-(d&&d.clientTop||e&&e.clientTop||
0)),a.which||void
0===f||(a.which=
1&f?
1:
2&f?
3:
4&f?
2:
0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),
3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!
0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!
1):void
0},delegateType:
"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!
1):void
0},delegateType:
"focusout"},click:{trigger:function(){return
"checkbox"===this.type&&this.click&&n.nodeName(this,
"input")?(this.click(),!
1):void
0},_default:function(a){return n.nodeName(a.target,
"a")}},beforeunload:{postDispatch:function(a){void
0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!
0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!
1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void
0===a.defaultPrevented&&a.returnValue===!
1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!
0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:
"mouseover",mouseleave:
"mouseout",pointerenter:
"pointerover",pointerleave:
"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:
"focusin",blur:
"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!
0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!
0),L.access(d,b,(e||
0)+
1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-
1;e?L.access(d,b,e):(d.removeEventListener(a,c,!
0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if(
"object"==typeof a){
"string"!=typeof b&&(c=c||b,b=void
0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void
0):null==d&&(
"string"==typeof b?(d=c,c=void
0):(d=c,c=b,b=void
0)),d===!
1)d=$;else if(!d)return this;return
1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,
1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+
"."+d.namespace:d.origType,d.selector,d.handler),this;if(
"object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!
1||
"function"==typeof b)&&(c=b,b=void
0),c===!
1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[
0];return c?n.event.trigger(a,b,c,!
0):void
0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^
>]*)\
/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)
>\s*$/g,ib={option:[
1,"
<select multiple='multiple'
>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table
")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr
")?a.getElementsByTagName("tbody
")[0]||a.appendChild(a.ownerDocument.createElement("tbody
")):a}function kb(a){return a.type=(null!==a.getAttribute("type
"))+"/
"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type
"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(
1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=
0,d=j[e].length;d
>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void
0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!
0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||
1!==a.nodeType&&
11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=
0,e=f.length;e
>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=
0,e=f.length;e
>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length
>0&&mb(g,!i&&ob(a,
"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=
0,o=a.length;o
>m;m++)if(e=a[m],e||
0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[
1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[
1]+e.replace(ab,"<$
1></$
2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script
"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script
")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string
"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$
1></$
2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string
"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script
"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-
1].ownerDocument,n.map(f,lb),j=
0;g
>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-
1,h=
0;g
>=h;h++)c=h===g?this:this.clone(!
0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[
0]))?d.display:n.css(e[
0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("
<iframe frameborder='
0' width='
0' height='
0'
/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^(
"+Q+")(?!px)[a-z%]+$
","i
"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div
"),f=l.createElement("div
");if(f.style){f.style.backgroundClip="content-box
",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box
"===f.style.backgroundClip,e.style.cssText="border:
0;width:
0;height:
0;top:
0;left:-
9999px;margin-top:
1px;position:absolute
",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:
1%;top:
1%;border:
1px;padding:
1px;width:
4px;position:absolute
",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%
"!==g.top,c="4px
"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div
"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:
0;border:
0;padding:
0",c.style.marginRight=c.style.width="0",f.style.width="1px
",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^(
"+Q+")(.*)$
","i
"),Bb=new RegExp("^([+-])=(
"+Q+")
","i
"),Cb={position:"absolute
",visibility:"hidden
",display:"block
"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit
","O
","Moz
","ms
"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px
"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border
":"content
")?4:"width
"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!
0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!
0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!
0,e))):(g+=n.css(a,"padding"+R[f],!
0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!
0,e)));return g}function Ib(a,b,c){var d=!
0,
e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),
g="border-box"===n.css(a,"boxSizing",!
1,f);if(
0>=e||null==e){if(e=xb(a,b,f),(
0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||
0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=
0,h=a.length;h
>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.
display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=
0;h
>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"
1":c}}}},cssNumber:{columnCount:!
0,fillOpacity:!
0,flexGrow:!
0,flexShrink:!
0,fontWeight:!
0,lineHeight:!
0,opacity:!
0,order:!
0,orphans:!
0,widows:!
0,zIndex:!
0,zoom:!
0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&
3!==a.nodeType&&
8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void
0===c?g&&"get"in g&&void
0!==(e=g.get(a,!
1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[
1]+
1)*e[
2]+parseFloat(n.css(a,b)),
f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||
0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void
0===(c=g.set(a,c,d))||(i[b]=c)),void
0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!
0,c)),void
0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!
0||n.isNumeric(f)?f||
0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&
0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void
0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!
1,e),e):
0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void
0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=
0,e={},
f="string"==typeof c?c.split(" "):[c];
4>d;d++)e[a+R[d]+b]=f[d]||f[d-
2]||f[
0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=
0;if(n.isArray(b)){for(d=wb(a),e=b.length;e
>g;g++)f[b[g]]=n.css(a,b[g],!
1,d);return f}return void
0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length
>1)},show:function(){return Jb(this,!
0)},hide:function(){return Jb(this)},toggle:function(a){return
"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||
"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?
"":
"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,
0,
1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,
""),b&&
"auto"!==b?b:
0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return
.5-Math.cos(a*Math.PI)/
2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp(
"^(?:([+-])=|)("+Q+
")([a-z%]*)$",
"i"),Pb=/queueHooks$/,Qb=[Vb],Rb={
"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[
3]||(n.cssNumber[a]?
"":
"px"),g=(n.cssNumber[a]||
"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=
1,i=
20;if(g&&g[
3]!==f){f=f||g[
3],e=e||[],g=+d||
1;do h=h||
".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&
1!==h&&--i)}return e&&(g=c.start=+g||+d||
0,c.unit=f,c.end=e[
1]?g+(e[
1]+
1)*e[
2]:+e[
2]),c}]};function Sb(){return setTimeout(function(){Lb=void
0}),Lb=n.now()}function Tb(a,b){var c,d=
0,e={height:a};for(b=b?
1:
0;
4>d;d+=
2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=
0,g=e.length;g
>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=
0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),
1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),
k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.
display="inline-block")),c.overflow&&(o.
overflow="hidden",l.always(function(){o.overflow=c.overflow[
0],o.overflowX=c.overflow[
1],o.overflowY=c.overflow[
2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void
0===q[d])continue;p=!
0}m[d]=q&&q[d]||n.style(a,d)}else j=void
0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:
0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.
start="width"===d||"height"===d?
1:
0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[
1],f=a[c]=f[
0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=
0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!
1;for(var b=Lb||Sb(),c=Math.max(
0,j.startTime+j.duration-b),d=c/j.duration||
0,f=
1-d,g=
0,i=j.tweens.length;i
>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),
1>f&&i?c:(h.resolveWith(a,[j]),!
1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!
0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=
0,d=b?j.tweens.length:
0;if(e)return this;for(e=!
0;d
>c;c++)j.tweens[c].run(
1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g
>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=
0,e=a.length;e
>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?
0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!
0)&&(d.
queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",
0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!
0)};return g.finish=g,e||f.queue===!
1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void
0),b&&a!==!
1&&this.queue(a||"fx",[]),this.each(function(){var b=!
0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!
1,f.splice(e,
1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!
1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:
0;for(c.finish=!
0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!
0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!
0),f.splice(b,
1));for(b=
0;g
>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!
0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=
0,c=n.timers;for(Lb=n.now();b
<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,
1);c.length||n.fx.stop(),Lb=void
0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=
13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:
600,fast:
200,_default:
400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||
"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement(
"input"),b=l.createElement(
"select"),c=b.appendChild(l.createElement(
"option"));a.
type=
"checkbox",k.
checkOn=
""!==a.value,k.optSelected=c.selected,b.disabled=!
0,k.optDisabled=!c.disabled,a=l.createElement(
"input"),a.
value=
"t",a.
type=
"radio",k.
radioValue=
"t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length
>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&
3!==f&&
8!==f&&
2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(
1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void
0===c?d&&
"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void
0:e):null!==c?d&&
"set"in d&&void
0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+
""),c):void n.removeAttr(a,b))
4455 },removeAttr:function(a,b){var c,d,e=
0,f=b&&b.match(E);if(f&&
1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!
1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&
"radio"===b&&n.nodeName(a,
"input")){var c=a.value;return a.setAttribute(
"type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!
1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length
>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{
"for":
"htmlFor",
"class":
"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&
3!==g&&
8!==g&&
2!==g)return f=
1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void
0!==c?e&&
"set"in e&&void
0!==(d=e.set(a,c,b))?d:a[b]=c:e&&
"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute(
"tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-
1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each([
"tabIndex",
"readOnly",
"maxLength",
"cellSpacing",
"cellPadding",
"rowSpan",
"colSpan",
"useMap",
"frameBorder",
"contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,
h=
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=
0;while(e=b[f++])d.indexOf(" "+e+" ")
<0&&(d+=e+
" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=
0===arguments.length||
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=
0;while(e=b[f++])while(d.indexOf(" "+e+" ")
>=
0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=
0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!
1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var
b=" "+a+" ",c=
0,d=this.length;d
>c;c++)if(
1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)
>=
0)return!
0;return!
1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[
0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;
1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?
e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void
0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void
0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,
f="select-one"===a.type||
0>e,g=f?null:[],h=f?e+
1:d.length,i=
0>e?h:f?e:
0;h
>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)
>=
0)&&(c=!
0);return c||(a.selectedIndex=-
1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)
>=
0:void
0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length
>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return
1===arguments.length?this.off(a,
"**"):this.off(b,a||
"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+
"")},n.parseXML=function(a){var b,c;if(!a||
"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,
"text/xml")}catch(d){b=void
0}return(!b||b.getElementsByTagName(
"parsererror").length)&&n.error(
"Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},
pc=
"*/".concat(
"*");try{fc=location.href}catch(qc){fc=l.createElement(
"a"),fc.
href=
"",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){
"string"!=typeof b&&(c=b,
b=
"*");var d,e=
0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])
"+"===d[
0]?(d=d.slice(
1)||
"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!
0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return
"string"!=typeof j||f||e[j]?f?!(i=j):void
0:(b.dataTypes.unshift(j),g(j),!
1)}),i}return g(b.dataTypes[
0])||!e[
"*"]&&g(
"*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void
0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!
0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(
"*"===i[
0])i.shift(),void
0===d&&(d=a.mimeType||b.getResponseHeader(
"Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[
0]in c)f=i[
0];else{for(e in c){if(!i[
0]||a.converters[e+
" "+i[
0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[
0]&&i.unshift(f),c[f]):void
0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[
1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(
"*"===f)f=i;else if(
"*"!==i&&i!==f){if(g=j[i+
" "+f]||j[
"* "+f],!g)for(e in j)if(h=e.split(
" "),h[
1]===f&&(g=j[i+
" "+h[
0]]||j[
"* "+h[
0]])){g===!
0?g=j[e]:j[e]!==!
0&&(f=h[
0],k.unshift(h[
1]));break}if(g!==!
0)if(g&&a[
"throws"])b=g(b);else try{b=g(b)}catch(l){return{state:
"parsererror",error:g?l:
"No conversion from "+i+
" to "+f}}}return{state:
"success",data:b}}n.extend({active:
0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:
"GET",isLocal:jc.test(ec[
1]),global:!
0,processData:!
0,async:!
0,contentType:
"application/x-www-form-urlencoded; charset=UTF-8",accepts:{
"*":pc,text:
"text/plain",html:
"text/html",xml:
"application/xml, text/xml",json:
"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:
"responseXML",text:
"responseText",json:
"responseJSON"},converters:{
"* text":String,
"text html":!
0,
"text json":n.parseJSON,
"text xml":n.parseXML},flatOptions:{url:!
0,context:!
0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){
"object"==typeof a&&(b=a,a=void
0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks(
"once memory"),q=k.statusCode||{},r={},s={},t=
0,
u=
"canceled",v={readyState:
0,getResponseHeader:function(a){var b;if(
2===t){if(!f){f={};while(b=ic.exec(e))f[b[
1].toLowerCase()]=b[
2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return
2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(
2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(
0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[
1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[
1]===ec[
1]&&h[
2]===ec[
2]&&(h[
3]||("http:"===h[
1]?"
80":"
443"))===(ec[
3]||("http:"===ec[
1]?"
80":"
443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),
2===t)return v;i=k.global,i&&
0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!
1&&(k.url=hc.test(d)?d.replace(hc,"$
1_="+cc++):d+(dc.test(d)?"&":"?")+"
_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!
1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[
0]&&k.accepts[k.dataTypes[
0]]?k.accepts[k.dataTypes[
0]]+("*"!==k.dataTypes[
0]?", "+pc+"; q=
0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!
1||
2===t))return v.abort();
u="abort";for(j in{success:
1,error:
1,complete:
1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=
1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout
>0&&(g=setTimeout(function(){v.abort(
"timeout")},k.timeout));try{t=
1,c.send(r,x)}catch(w){if(!(
2>t))throw w;x(-
1,w)}}else x(-
1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;
2!==t&&(t=
2,g&&clearTimeout(g),c=void
0,e=h||"",v.readyState=a
>0?
4:
0,j=a
>=
200&&
300>a||
304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),
204===a||"HEAD"===k.type?
x="nocontent":
304===a?
x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(
x="error",
0>a&&(a=
0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void
0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void
0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void
0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!
1,global:!
1,"throws":!
0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[
0]&&(b=n(a,this[
0].ownerDocument).eq(
0).clone(!
0),this[
0].parentNode&&b.insertBefore(this[
0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=
0&&a.offsetHeight<=
0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%
20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void
0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=
0,Dc={},Ec={
0:
200,
1223:
204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void
0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void
0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void
0===a.cache&&(a.cache=!
1),a.crossDomain&&(a.
type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("
<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error
",c=function(a){b.remove(),c=null,a&&e("error
"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback
",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_
"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp
",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url
":"string
"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded
")&&Hc.test(b.data)&&"data
");return h||"jsonp
"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$
1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&
":"?
")+b.jsonp+"=
"+e),b.converters["script json
"]=function(){return g||n.error(e+" was not called
"),g[0]},b.dataTypes[0]="json
",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script
"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string
"!=typeof a)return null;"boolean
"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string
"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object
"==typeof b&&(e="POST
"),g.length>0&&n.ajax({url:a,type:e,dataType:"html
",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position
"),l=n(a),m={};"static
"===k&&(a.style.position="relative
"),h=l.offset(),f=n.css(a,"top
"),i=n.css(a,"left
"),j=("absolute
"===k||"fixed
"===k)&&(f+i).indexOf("auto
")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using
"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed
"===n.css(c,"position
")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html
")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth
",!0),d.left+=n.css(a[0],"borderLeftWidth
",!0)),{top:b.top-d.top-n.css(c,"marginTop
",!0),left:b.left-d.left-n.css(c,"marginLeft
",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html
")&&"static
"===n.css(a,"position
"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset
",scrollTop:"pageYOffset
"},function(b,c){var d="pageYOffset
"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top
","left
"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px
":c):void 0})}),n.each({Height:"height
",Width:"width
"},function(a,b){n.each({padding:"inner
"+a,content:b,"":"outer
"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean
"!=typeof d),g=c||(d===!0||e===!0?"margin
":"border
");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client
"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll
"+a],e["scroll
"+a],b.body["offset
"+a],e["offset
"+a],e["client
"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function
"==typeof define&&define.amd&&define("jquery
",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
4458 * Bootstrap v3.2.0 (http://getbootstrap.com)
4459 * Copyright 2011-2014 Twitter, Inc.
4460 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4462 if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void
0!==a.style[c])return{end:b[c]};return!
1}a.fn.emulateTransitionEnd=function(b){var c=!
1,d=this;a(this).one("bsTransitionEnd",function(){c=!
0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void
0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[
data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.
VERSION="
3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(
150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),
f="object"==typeof b&
&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!
1};c.
VERSION="
3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var
c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!
0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!
1,d.removeClass(c).removeAttr(c))},this),
0)},c.prototype.toggle=function(){var a=!
0,b=this.$element.closest('[
data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!
1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),
g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.
VERSION="
3.2.0",c.DEFAULTS={interval:
5e3,pause:"hover",wrap:!
0},c.prototype.keydown=function(a){switch(a.which){case
37:this.prev();break;case
39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!
1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b
>this.$items.length-
1||
0>b?void
0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b
>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!
0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!
0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void
0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void
0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,
g="next"==b?"left":"right",
h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!
1;var j=e[
0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!
0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[
0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!
1,setTimeout(function(){i.$element.trigger(m)},
0)}).emulateTransitionEnd(
1e3*d.css("transition-duration").slice(
0,-
1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!
1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!
1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[
data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.
VERSION="
3.2.0",c.DEFAULTS={toggle:!
0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("
> .panel
> .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](
0),this.transitioning=
1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=
0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(
350)[f](this.$element[
0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[
0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=
1;var d=function(){this.transitioning=
0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](
0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(
350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[
data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[
data-toggle="collapse"][
data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&
3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var
e=".dropdown-backdrop",f='[
data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.
VERSION="
3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
<div class=
"dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!
1}},g.prototype.keydown=function(b){if(/(
38|
40|
27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&
27==b.keyCode)return
27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var
h=" li:not(.divider):visible a",i=e.find('[
role="menu"]'+h+', [
role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));
38==b.keyCode&&j
>0&&j--,
40==b.keyCode&&j
<i.length-
1&&j++,~j||(j=
0),i.eq(j).trigger(
"focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on(
"click.bs.dropdown.data-api",b).on(
"click.bs.dropdown.data-api",
".dropdown form",function(a){a.stopPropagation()}).on(
"click.bs.dropdown.data-api",f,g.prototype.toggle).on(
"keydown.bs.dropdown.data-api",f+', [
role=
"menu"], [
role=
"listbox"]',g.prototype.keydown)}(jQuery),+function(a){
"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data(
"bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),
"object"==typeof b&&b);f||e.data(
"bs.modal",f=new c(this,g)),
"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=
0,this.options.remote&&this.$element.find(
".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger(
"loaded.bs.modal")},this))};c.
VERSION=
"3.2.0",c.DEFAULTS={backdrop:!
0,keyboard:!
0,show:!
0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event(
"show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!
0,this.checkScrollbar(),this.$body.addClass(
"modal-open"),this.setScrollbar(),this.escape(),this.$element.on(
"click.dismiss.bs.modal",'[
data-dismiss=
"modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass(
"fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(
0),d&&c.$element[
0].offsetWidth,c.$element.addClass(
"in").attr(
"aria-hidden",!
1),c.enforceFocus();var e=a.Event(
"shown.bs.modal",{relatedTarget:b});d?c.$element.find(
".modal-dialog").one(
"bsTransitionEnd",function(){c.$element.trigger(
"focus").trigger(e)}).emulateTransitionEnd(
300):c.$element.trigger(
"focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event(
"hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!
1,this.$body.removeClass(
"modal-open"),this.resetScrollbar(),this.escape(),a(document).off(
"focusin.bs.modal"),this.$element.removeClass(
"in").attr(
"aria-hidden",!
0).off(
"click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass(
"fade")?this.$element.one(
"bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(
300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off(
"focusin.bs.modal").on(
"focusin.bs.modal",a.proxy(function(a){this.$element[
0]===a.target||this.$element.has(a.target).length||this.$element.trigger(
"focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on(
"keyup.dismiss.bs.modal",a.proxy(function(a){
27==a.which&&this.hide()},this)):this.isShown||this.$element.off(
"keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger(
"hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass(
"fade")?
"fade":
"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&
&d;if(this.$backdrop=a('
<div class=
"modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[
0].focus.call(this.$element[
0]):this.hide.call(this))},this)),e&&this.$backdrop[
0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(
150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(
150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth
>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||
0,
10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.
className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[
0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[
data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.
VERSION="
3.2.0",c.DEFAULTS={animation:!
0,placement:"top",selector:!
1,template:'
<div class=
"tooltip" role=
"tooltip"><div class=
"tooltip-arrow"></div><div class=
"tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:
0,html:!
1,container:!
1,viewport:{selector:"body",padding:
0}},c.prototype.init=function(b,c,d){this.enabled=!
0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var
h="hover"==g?"mouseenter":"focusin",
i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[
0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var
g="function"==typeof this.options.placement?this.options.placement.call(this,e[
0],this.$element[
0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:
0,left:
0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[
0].offsetWidth,l=e[
0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);
g="bottom"==g&&j.top+j.height+l-o.scroll
>o.height?"top":"top"==g&&j.top-o.scroll-l
<0?
"bottom":
"right"==g&&j.right+k
>o.width?"left":"left"==g&&j.left-k
<o.left?
"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger(
"shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass(
"fade")?e.one(
"bsTransitionEnd",q).emulateTransitionEnd(
150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[
0].offsetWidth,f=d[
0].offsetHeight,g=parseInt(d.css(
"margin-top"),
10),h=parseInt(d.css(
"margin-left"),
10);isNaN(g)&&(g=
0),isNaN(h)&&(h=
0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[
0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),
0),d.addClass(
"in");var i=d[
0].offsetWidth,j=d[
0].offsetHeight;
"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?
2*k.left-e+i:
2*k.top-f+j,m=k.left?
"left":
"top",n=k.left?
"offsetWidth":
"offsetHeight";d.offset(b),this.replaceArrow(l,d[
0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?
50*(
1-a/b)+
"%":
"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(
".tooltip-inner")[this.options.html?
"html":
"text"](b),a.removeClass(
"fade in top bottom left right")},c.prototype.hide=function(){function b(){
"in"!=c.hoverState&&d.detach(),c.$element.trigger(
"hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event(
"hide.bs."+this.type);return this.$element.removeAttr(
"aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void
0:(d.removeClass(
"in"),a.support.transition&&this.$tip.hasClass(
"fade")?d.one(
"bsTransitionEnd",b).emulateTransitionEnd(
150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr(
"title")||
"string"!=typeof a.attr(
"data-original-title"))&&a.attr(
"data-original-title",a.attr(
"title")||
"").attr(
"title",
"")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[
0],
d=
"BODY"==c.tagName;return a.extend({},
"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:
0,left:
0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return
"bottom"==a?{top:b.top+b.height,left:b.left+b.width/
2-c/
2}:
"top"==a?{top:b.top-d,left:b.left+b.width/
2-c/
2}:
"left"==a?{top:b.top+b.height/
2-d/
2,left:b.left-c}:{top:b.top+b.height/
2-d/
2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:
0,left:
0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||
0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h
<g.top?e.top=g.top-h:i
>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j
<g.left?e.left=g.left-j:k
>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[
0]):c.title)},c.prototype.getUID=function(a){do a+=~~(
1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[
0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!
0},c.prototype.disable=function(){this.enabled=!
1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.
VERSION="
3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'
<div class=
"popover" role=
"tooltip"><div class=
"arrow"></div><h3 class=
"popover-title"></h3><div class=
"popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[
0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li
> a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=
0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),
f="object"==typeof c&
&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.
VERSION="
3.2.0",b.DEFAULTS={offset:
10},b.prototype.getScrollHeight=function(){return this.$scrollElement[
0].scrollHeight||Math.max(this.$body[
0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var
b="offset",c=
0;a.isWindow(this.$scrollElement[
0])||(
b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[
0]-b[
0]}).each(function(){d.offsets.push(this[
0]),d.targets.push(this[
1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b
>=d)return g!=(a=f[f.length-
1])&&this.activate(a);if(g&&b<=e[
0])return g!=(a=f[
0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b
>=e[a]&&(!e[a+
1]||b<=e[a+
1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[
data-target="'+b+'"],'+this.selector+'[
href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[
data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.
VERSION="
3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[
0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("
> .dropdown-menu
> .active").removeClass("active"),b.addClass("active"),g?(b[
0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("
> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(
150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[
data-toggle="tab"], [
data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),
f="object"==typeof b&
&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.
VERSION="
3.2.0",c.
RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:
0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),
1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!
1:null!=h&&e.top+this.$element.height()
>=b-h?"bottom":null!=g&&g
>=d?"top":!
1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var
j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.
unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[
data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
</script>
4463 <script>(function() {
4467 * Extend an Object with another Object's properties.
4469 * The source objects are specified as additional arguments.
4471 * @param dst Object the object to extend.
4473 * @return Object the final object.
4475 var _extend = function(dst) {
4476 var sources = Array.prototype.slice.call(arguments,
1);
4477 for (var i=
0; i
<sources.length; ++i) {
4478 var src = sources[i];
4479 for (var p in src) {
4480 if (src.hasOwnProperty(p)) dst[p] = src[p];
4488 * Defer execution of given function.
4489 * @param {Function} func
4491 var _defer = function(func) {
4492 if (typeof setImmediate === 'function') {
4493 return setImmediate(func);
4495 return setTimeout(func,
0);
4500 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
4504 * Calculate levenshtein distance of the two strings.
4506 * @param str1 String the first string.
4507 * @param str2 String the second string.
4508 * @return Integer the levenshtein distance (
0 and above).
4510 get: function(str1, str2) {
4512 if (str1 === str2) return
0;
4513 if (str1.length ===
0) return str2.length;
4514 if (str2.length ===
0) return str1.length;
4517 var prevRow = new Array(str2.length +
1),
4518 curCol, nextCol, i, j, tmp;
4520 // initialise previous row
4521 for (i=
0; i
<prevRow.length; ++i) {
4525 // calculate current row distance from previous row
4526 for (i=
0; i
<str1.length; ++i) {
4529 for (j=
0; j
<str2.length; ++j) {
4533 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
4536 if (nextCol
> tmp) {
4540 tmp = prevRow[j +
1] +
1;
4541 if (nextCol
> tmp) {
4545 // copy current col value into previous (in preparation for next iteration)
4546 prevRow[j] = curCol;
4549 // copy last col value into previous (in preparation for next iteration)
4550 prevRow[j] = nextCol;
4557 * Asynchronously calculate levenshtein distance of the two strings.
4559 * @param str1 String the first string.
4560 * @param str2 String the second string.
4561 * @param cb Function callback function with signature: function(Error err, int distance)
4562 * @param [options] Object additional options.
4563 * @param [options.progress] Function progress callback with signature: function(percentComplete)
4565 getAsync: function(str1, str2, cb, options) {
4566 options = _extend({}, {
4571 if (str1 === str2) return cb(null,
0);
4572 if (str1.length ===
0) return cb(null, str2.length);
4573 if (str2.length ===
0) return cb(null, str1.length);
4576 var prevRow = new Array(str2.length +
1),
4579 startTime, currentTime;
4581 // initialise previous row
4582 for (i=
0; i
<prevRow.length; ++i) {
4590 var __calculate = function() {
4592 startTime = new Date().valueOf();
4593 currentTime = startTime;
4595 // keep going until one second has elapsed
4596 while (currentTime - startTime <
1000) {
4597 // reached end of current row?
4598 if (str2.length <= (++j)) {
4599 // copy current into previous (in preparation for next iteration)
4600 prevRow[j] = nextCol;
4602 // if already done all chars
4603 if (str1.length <= (++i)) {
4604 return cb(null, nextCol);
4606 // else if we have more left to do
4617 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
4620 if (nextCol
> tmp) {
4624 tmp = prevRow[j +
1] +
1;
4625 if (nextCol
> tmp) {
4629 // copy current into previous (in preparation for next iteration)
4630 prevRow[j] = curCol;
4633 currentTime = new Date().valueOf();
4636 // send a progress update?
4637 if (null !== options.progress) {
4639 options.progress.call(null, (i *
100.0/ str1.length));
4641 return cb('Progress callback: ' + err.toString());
4646 _defer(__calculate);
4655 if (typeof define !== "undefined" && define !== null && define.amd) {
4661 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
4662 module.exports = Levenshtein;
4665 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
4666 self.Levenshtein = Levenshtein;
4668 // browser main thread
4669 else if (typeof window !== "undefined" && window !== null) {
4670 window.Levenshtein = Levenshtein;
4675 <script>(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=
0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void
0==a.length)throw Error(a.length+"/"+c);for(var d=
0;d
<a.length&&
0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=
0;b
<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=
0}u.prototype={getLength:function(){return this.data.length},
4676 write:function(a){for(var c=
0;c
<this.data.length;c++)a.put(this.data.charCodeAt(c),
8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(
0>a||this.moduleCount<=a||
0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(
1>this.typeNumber){for(var a=
1,a=
1;
40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=
0,e=
0;e
<c.length;e++)b+=c[e].dataCount;
4677 for(e=
0;e
<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,
4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=
8*b)break}this.typeNumber=a}this.makeImpl(!
1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=
4*this.typeNumber+
17;this.modules=Array(this.moduleCount);for(var d=
0;d
<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=
0;b
<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(
0,
0);this.setupPositionProbePattern(this.moduleCount-
4678 7,
0);this.setupPositionProbePattern(
0,this.moduleCount-
7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);
7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-
1;
7>=d;d++)if(!(-
1>=a+d||this.moduleCount<=a+d))for(var b=-
1;
7>=b;b++)-
1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
4679 0<=d&&
6>=d&&(
0==b||
6==b)||
0<=b&&
6>=b&&(
0==d||
6==d)||
2<=d&&
4>=d&&
2<=b&&
4>=b?!
0:!
1)},getBestMaskPattern:function(){for(var a=
0,c=
0,d=
0;
8>d;d++){this.makeImpl(!
0,d);var b=j.getLostPoint(this);if(
0==d||a
>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=
0;c
<this.modules.length;c++)for(var d=
1*c,b=
0;b
<this.modules[c].length;b++){var e=
1*b;this.modules[c][b]&&(a.beginFill(
0,
100),a.moveTo(e,d),a.lineTo(e+
1,d),a.lineTo(e+
1,d+
1),a.lineTo(e,d+
1),a.endFill())}return a},
4680 setupTimingPattern:function(){for(var a=
8;a
<this.moduleCount-
8;a++)null==this.modules[a][
6]&&(this.modules[a][
6]=
0==a%
2);for(a=
8;a
<this.moduleCount-
8;a++)null==this.modules[
6][a]&&(this.modules[
6][a]=
0==a%
2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=
0;c
<a.length;c++)for(var d=
0;d
<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-
2;
2>=f;f++)for(var i=-
2;
2>=i;i++)this.modules[b+f][e+i]=-
2==f||
2==f||-
2==i||
2==i||
0==f&&
0==i?!
0:!
1}},setupTypeNumber:function(a){for(var c=
4681 j.getBCHTypeNumber(this.typeNumber),d=
0;
18>d;d++){var b=!a&&
1==(c
>>d&
1);this.modules[Math.floor(d/
3)][d%
3+this.moduleCount-
8-
3]=b}for(d=
0;
18>d;d++)b=!a&&
1==(c
>>d&
1),this.modules[d%
3+this.moduleCount-
8-
3][Math.floor(d/
3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<
<3|c),b=
0;
15>b;b++){var e=!a&&
1==(d
>>b&
1);
6>b?this.modules[b][
8]=e:
8>b?this.modules[b+
1][
8]=e:this.modules[this.moduleCount-
15+b][
8]=e}for(b=
0;
15>b;b++)e=!a&&
1==(d
>>b&
1),
8>b?this.modules[
8][this.moduleCount-
4682 b-
1]=e:
9>b?this.modules[
8][
15-b-
1+
1]=e:this.modules[
8][
15-b-
1]=e;this.modules[this.moduleCount-
8][
8]=!a},mapData:function(a,c){for(var d=-
1,b=this.moduleCount-
1,e=
7,f=
0,i=this.moduleCount-
1;
0<i;i-=
2)for(
6==i&&i--;;){for(var g=
0;
2>g;g++)if(null==this.modules[b][i-g]){var n=!
1;f
<a.length&&(n=
1==(a[f]
>>>e&
1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -
1==e&&(f++,e=
7)}b+=d;if(
0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=
236;o.PAD1=
17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
4683 c),b=new t,e=
0;e
<d.length;e++){var f=d[e];b.put(f.mode,
4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=
0;e
<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()
>8*a)throw Error(
"code length overflow. ("+b.getLengthInBits()+
">"+
8*a+
")");for(b.getLengthInBits()+
4<=
8*a&&b.put(
0,
4);
0!=b.getLengthInBits()%
8;)b.putBit(!
1);for(;!(b.getLengthInBits()
>=
8*a);){b.put(o.PAD0,
8);if(b.getLengthInBits()
>=
8*a)break;b.put(o.PAD1,
8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
4684 0,b=
0,e=
0,f=Array(c.length),i=Array(c.length),g=
0;g
<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=
0;k
<f[g].length;k++)f[g][k]=
255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-
1)).mod(k);i[g]=Array(k.getLength()-
1);for(k=
0;k
<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=
0<=h?n.get(h):
0}for(k=g=
0;k
<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=
0;k
<b;k++)for(g=
0;g
<c.length;g++)k
<f[g].length&&
4685 (d[n++]=f[g][k]);for(k=
0;k
<e;k++)for(g=
0;g
<c.length;g++)k
<i[g].length&&(d[n++]=i[g][k]);return d};s=
4;for(var j={PATTERN_POSITION_TABLE:[[],[
6,
18],[
6,
22],[
6,
26],[
6,
30],[
6,
34],[
6,
22,
38],[
6,
24,
42],[
6,
26,
46],[
6,
28,
50],[
6,
30,
54],[
6,
32,
58],[
6,
34,
62],[
6,
26,
46,
66],[
6,
26,
48,
70],[
6,
26,
50,
74],[
6,
30,
54,
78],[
6,
30,
56,
82],[
6,
30,
58,
86],[
6,
34,
62,
90],[
6,
28,
50,
72,
94],[
6,
26,
50,
74,
98],[
6,
30,
54,
78,
102],[
6,
28,
54,
80,
106],[
6,
32,
58,
84,
110],[
6,
30,
58,
86,
114],[
6,
34,
62,
90,
118],[
6,
26,
50,
74,
98,
122],[
6,
30,
54,
78,
102,
126],[
6,
26,
52,
4686 78,
104,
130],[
6,
30,
56,
82,
108,
134],[
6,
34,
60,
86,
112,
138],[
6,
30,
58,
86,
114,
142],[
6,
34,
62,
90,
118,
146],[
6,
30,
54,
78,
102,
126,
150],[
6,
24,
50,
76,
102,
128,
154],[
6,
28,
54,
80,
106,
132,
158],[
6,
32,
58,
84,
110,
136,
162],[
6,
26,
54,
82,
110,
138,
166],[
6,
30,
58,
86,
114,
142,
170]],G15:
1335,G18:
7973,G15_MASK:
21522,getBCHTypeInfo:function(a){for(var c=a<
<10;
0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<
<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<
<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<
<12;
0<=j.getBCHDigit(c)-
4687 j.getBCHDigit(j.G18);)c^=j.G18<
<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<
<12|c},getBCHDigit:function(a){for(var c=
0;
0!=a;)c++,a
>>>=
1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-
1]},getMask:function(a,c,d){switch(a){case
0:return
0==(c+d)%
2;case
1:return
0==c%
2;case
2:return
0==d%
3;case
3:return
0==(c+d)%
3;case
4:return
0==(Math.floor(c/
2)+Math.floor(d/
3))%
2;case
5:return
0==c*d%
2+c*d%
3;case
6:return
0==(c*d%
2+c*d%
3)%
2;case
7:return
0==(c*d%
3+(c+d)%
2)%
2;default:throw Error("bad maskPattern:"+
4688 a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([
1],
0),d=
0;d
<a;d++)c=c.multiply(new q([
1,l.gexp(d)],
0));return c},getLengthInBits:function(a,c){if(
1<=c&&
10>c)switch(a){case
1:return
10;case
2:return
9;case s:return
8;case
8:return
8;default:throw Error("mode:"+a);}else if(
27>c)switch(a){case
1:return
12;case
2:return
11;case s:return
16;case
8:return
10;default:throw Error("mode:"+a);}else if(
41>c)switch(a){case
1:return
14;case
2:return
13;case s:return
16;case
8:return
12;default:throw Error("mode:"+
4689 a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=
0,b=
0;b
<c;b++)for(var e=
0;e
<c;e++){for(var f=
0,i=a.isDark(b,e),g=-
1;
1>=g;g++)if(!(
0>b+g||c<=b+g))for(var h=-
1;
1>=h;h++)
0>e+h||c<=e+h||
0==g&&
0==h||i==a.isDark(b+g,e+h)&&f++;
5<f&&(d+=
3+f-
5)}for(b=
0;b
<c-1;b++)for(e=
0;e
<c-1;e++)if(f=
0,a.isDark(b,e)&&f++,a.isDark(b+
1,e)&&f++,a.isDark(b,e+
1)&&f++,a.isDark(b+
1,e+
1)&&f++,
0==f||
4==f)d+=
3;for(b=
0;b
<c;b++)for(e=
0;e
<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+
1)&&a.isDark(b,e+
4690 2)&&a.isDark(b,e+
3)&&a.isDark(b,e+
4)&&!a.isDark(b,e+
5)&&a.isDark(b,e+
6)&&(d+=
40);for(e=
0;e
<c;e++)for(b=
0;b
<c-6;b++)a.isDark(b,e)&&!a.isDark(b+
1,e)&&a.isDark(b+
2,e)&&a.isDark(b+
3,e)&&a.isDark(b+
4,e)&&!a.isDark(b+
5,e)&&a.isDark(b+
6,e)&&(d+=
40);for(e=f=
0;e
<c;e++)for(b=
0;b
<c;b++)a.isDark(b,e)&&f++;a=Math.abs(
100*f/c/c-
50)/
5;return d+
10*a}},l={glog:function(a){if(
1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;
0>a;)a+=
255;for(;
256<=a;)a-=
255;return l.EXP_TABLE[a]},EXP_TABLE:Array(
256),
4691 LOG_TABLE:Array(
256)},m=
0;
8>m;m++)l.EXP_TABLE[m]=
1<
<m;for(m=
8;
256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-
4]^l.EXP_TABLE[m-
5]^l.EXP_TABLE[m-
6]^l.EXP_TABLE[m-
8];for(m=
0;
255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-
1),d=
0;d
<this.getLength();d++)for(var b=
0;b
<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,
0)},mod:function(a){if(
0>
4692 this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(
0))-l.glog(a.get(
0)),d=Array(this.getLength()),b=
0;b
<this.getLength();b++)d[b]=this.get(b);for(b=
0;b
<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,
0)).mod(a)}};p.RS_BLOCK_TABLE=[[
1,
26,
19],[
1,
26,
16],[
1,
26,
13],[
1,
26,
9],[
1,
44,
34],[
1,
44,
28],[
1,
44,
22],[
1,
44,
16],[
1,
70,
55],[
1,
70,
44],[
2,
35,
17],[
2,
35,
13],[
1,
100,
80],[
2,
50,
32],[
2,
50,
24],[
4,
25,
9],[
1,
134,
108],[
2,
67,
43],[
2,
33,
15,
2,
34,
16],[
2,
33,
11,
2,
34,
12],[
2,
86,
68],[
4,
43,
27],
4693 [
4,
43,
19],[
4,
43,
15],[
2,
98,
78],[
4,
49,
31],[
2,
32,
14,
4,
33,
15],[
4,
39,
13,
1,
40,
14],[
2,
121,
97],[
2,
60,
38,
2,
61,
39],[
4,
40,
18,
2,
41,
19],[
4,
40,
14,
2,
41,
15],[
2,
146,
116],[
3,
58,
36,
2,
59,
37],[
4,
36,
16,
4,
37,
17],[
4,
36,
12,
4,
37,
13],[
2,
86,
68,
2,
87,
69],[
4,
69,
43,
1,
70,
44],[
6,
43,
19,
2,
44,
20],[
6,
43,
15,
2,
44,
16],[
4,
101,
81],[
1,
80,
50,
4,
81,
51],[
4,
50,
22,
4,
51,
23],[
3,
36,
12,
8,
37,
13],[
2,
116,
92,
2,
117,
93],[
6,
58,
36,
2,
59,
37],[
4,
46,
20,
6,
47,
21],[
7,
42,
14,
4,
43,
15],[
4,
133,
107],[
8,
59,
37,
1,
60,
38],[
8,
44,
20,
4,
45,
21],[
12,
33,
11,
4,
34,
12],[
3,
145,
115,
1,
146,
4694 116],[
4,
64,
40,
5,
65,
41],[
11,
36,
16,
5,
37,
17],[
11,
36,
12,
5,
37,
13],[
5,
109,
87,
1,
110,
88],[
5,
65,
41,
5,
66,
42],[
5,
54,
24,
7,
55,
25],[
11,
36,
12],[
5,
122,
98,
1,
123,
99],[
7,
73,
45,
3,
74,
46],[
15,
43,
19,
2,
44,
20],[
3,
45,
15,
13,
46,
16],[
1,
135,
107,
5,
136,
108],[
10,
74,
46,
1,
75,
47],[
1,
50,
22,
15,
51,
23],[
2,
42,
14,
17,
43,
15],[
5,
150,
120,
1,
151,
121],[
9,
69,
43,
4,
70,
44],[
17,
50,
22,
1,
51,
23],[
2,
42,
14,
19,
43,
15],[
3,
141,
113,
4,
142,
114],[
3,
70,
44,
11,
71,
45],[
17,
47,
21,
4,
48,
22],[
9,
39,
13,
16,
40,
14],[
3,
135,
107,
5,
136,
108],[
3,
67,
41,
13,
68,
42],[
15,
54,
24,
5,
55,
25],[
15,
4695 43,
15,
10,
44,
16],[
4,
144,
116,
4,
145,
117],[
17,
68,
42],[
17,
50,
22,
6,
51,
23],[
19,
46,
16,
6,
47,
17],[
2,
139,
111,
7,
140,
112],[
17,
74,
46],[
7,
54,
24,
16,
55,
25],[
34,
37,
13],[
4,
151,
121,
5,
152,
122],[
4,
75,
47,
14,
76,
48],[
11,
54,
24,
14,
55,
25],[
16,
45,
15,
14,
46,
16],[
6,
147,
117,
4,
148,
118],[
6,
73,
45,
14,
74,
46],[
11,
54,
24,
16,
55,
25],[
30,
46,
16,
2,
47,
17],[
8,
132,
106,
4,
133,
107],[
8,
75,
47,
13,
76,
48],[
7,
54,
24,
22,
55,
25],[
22,
45,
15,
13,
46,
16],[
10,
142,
114,
2,
143,
115],[
19,
74,
46,
4,
75,
47],[
28,
50,
22,
6,
51,
23],[
33,
46,
16,
4,
47,
17],[
8,
152,
122,
4,
153,
123],[
22,
73,
45,
4696 3,
74,
46],[
8,
53,
23,
26,
54,
24],[
12,
45,
15,
28,
46,
16],[
3,
147,
117,
10,
148,
118],[
3,
73,
45,
23,
74,
46],[
4,
54,
24,
31,
55,
25],[
11,
45,
15,
31,
46,
16],[
7,
146,
116,
7,
147,
117],[
21,
73,
45,
7,
74,
46],[
1,
53,
23,
37,
54,
24],[
19,
45,
15,
26,
46,
16],[
5,
145,
115,
10,
146,
116],[
19,
75,
47,
10,
76,
48],[
15,
54,
24,
25,
55,
25],[
23,
45,
15,
25,
46,
16],[
13,
145,
115,
3,
146,
116],[
2,
74,
46,
29,
75,
47],[
42,
54,
24,
1,
55,
25],[
23,
45,
15,
28,
46,
16],[
17,
145,
115],[
10,
74,
46,
23,
75,
47],[
10,
54,
24,
35,
55,
25],[
19,
45,
15,
35,
46,
16],[
17,
145,
115,
1,
146,
116],[
14,
74,
46,
21,
75,
47],[
29,
54,
24,
19,
4697 55,
25],[
11,
45,
15,
46,
46,
16],[
13,
145,
115,
6,
146,
116],[
14,
74,
46,
23,
75,
47],[
44,
54,
24,
7,
55,
25],[
59,
46,
16,
1,
47,
17],[
12,
151,
121,
7,
152,
122],[
12,
75,
47,
26,
76,
48],[
39,
54,
24,
14,
55,
25],[
22,
45,
15,
41,
46,
16],[
6,
151,
121,
14,
152,
122],[
6,
75,
47,
34,
76,
48],[
46,
54,
24,
10,
55,
25],[
2,
45,
15,
64,
46,
16],[
17,
152,
122,
4,
153,
123],[
29,
74,
46,
14,
75,
47],[
49,
54,
24,
10,
55,
25],[
24,
45,
15,
46,
46,
16],[
4,
152,
122,
18,
153,
123],[
13,
74,
46,
32,
75,
47],[
48,
54,
24,
14,
55,
25],[
42,
45,
15,
32,
46,
16],[
20,
147,
117,
4,
148,
118],[
40,
75,
47,
7,
76,
48],[
43,
54,
24,
22,
55,
25],[
10,
4698 45,
15,
67,
46,
16],[
19,
148,
118,
6,
149,
119],[
18,
75,
47,
31,
76,
48],[
34,
54,
24,
34,
55,
25],[
20,
45,
15,
61,
46,
16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void
0==d)throw Error(
"bad rs block @ typeNumber:"+a+
"/errorCorrectLevel:"+c);for(var b=d.length/
3,e=[],f=
0;f
<b;f++)for(var h=d[
3*f+
0],g=d[
3*f+
1],j=d[
3*f+
2],l=
0;l
<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case
1:return p.RS_BLOCK_TABLE[
4*(a-
1)+
0];case
0:return p.RS_BLOCK_TABLE[
4*(a-
1)+
1];case
3:return p.RS_BLOCK_TABLE[
4*
4699 (a-
1)+
2];case
2:return p.RS_BLOCK_TABLE[
4*(a-
1)+
3]}};t.prototype={get:function(a){return
1==(this.buffer[Math.floor(a/
8)]
>>>7-a%
8&
1)},put:function(a,c){for(var d=
0;d
<c;d++)this.putBit(
1==(a
>>>c-d-
1&
1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/
8);this.buffer.length<=c&&this.buffer.push(
0);a&&(this.buffer[c]|=
128>>>this.length%
8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:
256,height:
256,typeNumber:-
1,
4700 correctLevel:
2,background:"#ffffff",foreground:"#
000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("
2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=
0;f
<a.getModuleCount();f++)for(var i=
0;i
<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+
1)*b)-Math.floor(i*b),
4701 j=Math.ceil((f+
1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r(
"<table></table>").css(
"width",h.width+
"px").css(
"height",h.height+
"px").css(
"border",
"0px").css(
"border-collapse",
"collapse").css(
"background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=
0;e
<a.getModuleCount();e++){f=r(
"<tr></tr>").css(
"height",b+
"px").appendTo(c);for(i=
0;i
<a.getModuleCount();i++)r(
"<td></td>").css(
"width",
4702 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
4704 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.bitcoin = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
4705 // (public) Constructor
4706 function BigInteger(a, b, c) {
4707 if (!(this instanceof BigInteger))
4708 return new BigInteger(a, b, c)
4711 if (
"number" == typeof a) this.fromNumber(a, b, c)
4712 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
4713 else this.fromString(a, b)
4717 var proto = BigInteger.prototype
4719 // duck-typed isBigInteger
4720 proto.__bigi = require('../package.json').version
4721 BigInteger.isBigInteger = function (obj, check_ver) {
4722 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
4728 // am: Compute w_j += (x*this_i), propagate carries,
4729 // c is initial carry, returns final carry.
4730 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
4731 // We need to select the fastest one that works in this environment.
4733 // am1: use a single mult and divide to get the high bits,
4734 // max digit bits should be
26 because
4735 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
4736 function am1(i, x, w, j, c, n) {
4738 var v = x * this[i++] + w[j] + c
4739 c = Math.floor(v /
0x4000000)
4740 w[j++] = v &
0x3ffffff
4744 // am2 avoids a big mult-and-extract completely.
4745 // Max digit bits should be <=
30 because we do bitwise ops
4746 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
4747 function am2(i, x, w, j, c, n) {
4748 var xl = x &
0x7fff,
4751 var l = this[i] &
0x7fff
4752 var h = this[i++]
>> 15
4753 var m = xh * l + h * xl
4754 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
4755 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
4756 w[j++] = l &
0x3fffffff
4760 // Alternately, set max digit bits to
28 since some
4761 // browsers slow down when dealing with
32-bit numbers.
4762 function am3(i, x, w, j, c, n) {
4763 var xl = x &
0x3fff,
4766 var l = this[i] &
0x3fff
4767 var h = this[i++]
>> 14
4768 var m = xh * l + h * xl
4769 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
4770 c = (l
>> 28) + (m
>> 14) + xh * h
4771 w[j++] = l &
0xfffffff
4777 BigInteger.prototype.am = am1
4780 BigInteger.prototype.DB = dbits
4781 BigInteger.prototype.DM = ((
1 << dbits) -
1)
4782 var DV = BigInteger.prototype.DV = (
1 << dbits)
4785 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
4786 BigInteger.prototype.F1 = BI_FP - dbits
4787 BigInteger.prototype.F2 =
2 * dbits - BI_FP
4789 // Digit conversions
4790 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
4791 var BI_RC = new Array()
4793 rr =
"0".charCodeAt(
0)
4794 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
4795 rr =
"a".charCodeAt(
0)
4796 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
4797 rr =
"A".charCodeAt(
0)
4798 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
4800 function int2char(n) {
4801 return BI_RM.charAt(n)
4804 function intAt(s, i) {
4805 var c = BI_RC[s.charCodeAt(i)]
4806 return (c == null) ? -
1 : c
4809 // (protected) copy this to r
4810 function bnpCopyTo(r) {
4811 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
4816 // (protected) set from integer value x, -DV <= x < DV
4817 function bnpFromInt(x) {
4819 this.s = (x <
0) ? -
1 :
0
4820 if (x
> 0) this[
0] = x
4821 else if (x < -
1) this[
0] = x + DV
4825 // return bigint initialized to value
4827 var r = new BigInteger()
4832 // (protected) set from string and radix
4833 function bnpFromString(s, b) {
4838 else if (b ==
8) k =
3
4839 else if (b ==
256) k =
8; // byte array
4840 else if (b ==
2) k =
1
4841 else if (b ==
32) k =
5
4842 else if (b ==
4) k =
2
4844 self.fromRadix(s, b)
4853 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
4855 if (s.charAt(i) == "-") mi = true
4861 else if (sh + k
> self.DB) {
4862 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
4863 self[self.t++] = (x
>> (self.DB - sh))
4865 self[self.t -
1] |= x << sh
4867 if (sh
>= self.DB) sh -= self.DB
4869 if (k ==
8 && (s[
0] &
0x80) !=
0) {
4871 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
4874 if (mi) BigInteger.ZERO.subTo(self, self)
4877 // (protected) clamp off excess high words
4878 function bnpClamp() {
4879 var c = this.s & this.DM
4880 while (this.t
> 0 && this[this.t -
1] == c)--this.t
4883 // (public) return string representation in given radix
4884 function bnToString(b) {
4886 if (self.s <
0) return
"-" + self.negate()
4890 else if (b ==
8) k =
3
4891 else if (b ==
2) k =
1
4892 else if (b ==
32) k =
5
4893 else if (b ==
4) k =
2
4894 else return self.toRadix(b)
4895 var km = (
1 << k) -
1,
4899 var p = self.DB - (i * self.DB) % k
4901 if (p < self.DB && (d = self[i]
>> p)
> 0) {
4907 d = (self[i] & ((
1 << p) -
1)) << (k - p)
4908 d |= self[--i]
>> (p += self.DB - k)
4910 d = (self[i]
>> (p -= k)) & km
4917 if (m) r += int2char(d)
4924 function bnNegate() {
4925 var r = new BigInteger()
4926 BigInteger.ZERO.subTo(this, r)
4932 return (this.s <
0) ? this.negate() : this
4935 // (public) return + if this
> a, - if this < a,
0 if equal
4936 function bnCompareTo(a) {
4937 var r = this.s - a.s
4938 if (r !=
0) return r
4941 if (r !=
0) return (this.s <
0) ? -r : r
4943 if ((r = this[i] - a[i]) !=
0) return r
4947 // returns bit length of the integer x
4951 if ((t = x
>>> 16) !=
0) {
4955 if ((t = x
>> 8) !=
0) {
4959 if ((t = x
>> 4) !=
0) {
4963 if ((t = x
>> 2) !=
0) {
4967 if ((t = x
>> 1) !=
0) {
4974 // (public) return the number of bits in
"this"
4975 function bnBitLength() {
4976 if (this.t <=
0) return
0
4977 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
4980 // (public) return the number of bytes in
"this"
4981 function bnByteLength() {
4982 return this.bitLength()
>> 3
4985 // (protected) r = this << n*DB
4986 function bnpDLShiftTo(n, r) {
4988 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
4989 for (i = n -
1; i
>=
0; --i) r[i] =
0
4994 // (protected) r = this
>> n*DB
4995 function bnpDRShiftTo(n, r) {
4996 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
4997 r.t = Math.max(this.t - n,
0)
5001 // (protected) r = this << n
5002 function bnpLShiftTo(n, r) {
5004 var bs = n % self.DB
5005 var cbs = self.DB - bs
5006 var bm = (
1 << cbs) -
1
5007 var ds = Math.floor(n / self.DB),
5008 c = (self.s << bs) & self.DM,
5010 for (i = self.t -
1; i
>=
0; --i) {
5011 r[i + ds +
1] = (self[i]
>> cbs) | c
5012 c = (self[i] & bm) << bs
5014 for (i = ds -
1; i
>=
0; --i) r[i] =
0
5016 r.t = self.t + ds +
1
5021 // (protected) r = this
>> n
5022 function bnpRShiftTo(n, r) {
5025 var ds = Math.floor(n / self.DB)
5030 var bs = n % self.DB
5031 var cbs = self.DB - bs
5032 var bm = (
1 << bs) -
1
5033 r[
0] = self[ds]
>> bs
5034 for (var i = ds +
1; i < self.t; ++i) {
5035 r[i - ds -
1] |= (self[i] & bm) << cbs
5036 r[i - ds] = self[i]
>> bs
5038 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
5043 // (protected) r = this - a
5044 function bnpSubTo(a, r) {
5048 m = Math.min(a.t, self.t)
5051 r[i++] = c & self.DM
5056 while (i < self.t) {
5058 r[i++] = c & self.DM
5066 r[i++] = c & self.DM
5071 r.s = (c <
0) ? -
1 :
0
5072 if (c < -
1) r[i++] = self.DV + c
5073 else if (c
> 0) r[i++] = c
5078 // (protected) r = this * a, r != this,a (HAC
14.12)
5079 //
"this" should be the larger one if appropriate.
5080 function bnpMultiplyTo(a, r) {
5085 while (--i
>=
0) r[i] =
0
5086 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
5089 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
5092 // (protected) r = this^
2, r != this (HAC
14.16)
5093 function bnpSquareTo(r) {
5095 var i = r.t =
2 * x.t
5096 while (--i
>=
0) r[i] =
0
5097 for (i =
0; i < x.t -
1; ++i) {
5098 var c = x.am(i, x[i], r,
2 * i,
0,
1)
5099 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
5104 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
5109 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
5110 // r != q, this != m. q or r may be null.
5111 function bnpDivRemTo(m, q, r) {
5114 if (pm.t <=
0) return
5117 if (q != null) q.fromInt(
0)
5118 if (r != null) self.copyTo(r)
5121 if (r == null) r = new BigInteger()
5122 var y = new BigInteger(),
5125 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
5136 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
5137 var d1 = self.FV / yt,
5138 d2 = (
1 << self.F1) / yt,
5142 t = (q == null) ? new BigInteger() : q
5144 if (r.compareTo(t)
>=
0) {
5148 BigInteger.ONE.dlShiftTo(ys, t)
5149 t.subTo(y, y); // "negative" y so we can replace sub with am later
5150 while (y.t < ys) y[y.t++] =
0
5152 // Estimate quotient digit
5153 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
5154 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
5157 while (r[i] < --qd) r.subTo(t, r)
5162 if (ts != ms) BigInteger.ZERO.subTo(q, q)
5166 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
5167 if (ts <
0) BigInteger.ZERO.subTo(r, r)
5170 // (public) this mod a
5172 var r = new BigInteger()
5174 .divRemTo(a, null, r)
5175 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
5179 // Modular reduction using
"classic" algorithm
5180 function Classic(m) {
5184 function cConvert(x) {
5185 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
5189 function cRevert(x) {
5193 function cReduce(x) {
5194 x.divRemTo(this.m, null, x)
5197 function cMulTo(x, y, r) {
5202 function cSqrTo(x, r) {
5207 Classic.prototype.convert = cConvert
5208 Classic.prototype.revert = cRevert
5209 Classic.prototype.reduce = cReduce
5210 Classic.prototype.mulTo = cMulTo
5211 Classic.prototype.sqrTo = cSqrTo
5213 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
5217 // xy(
2-xy) = (
1+km)(
1-km)
5218 // x[y(
2-xy)] =
1-k^
2m^
2
5219 // x[y(
2-xy)] ==
1 (mod m^
2)
5220 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
5221 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
5222 // JS multiply "overflows" differently from C/C++, so care is needed here.
5223 function bnpInvDigit() {
5224 if (this.t <
1) return
0
5226 if ((x &
1) ==
0) return
0
5227 var y = x &
3; // y ==
1/x mod
2^
2
5228 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
5229 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
5230 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
5231 // last step - calculate inverse mod DV directly
5232 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
5233 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
5234 // we really want the negative inverse, and -DV < y < DV
5235 return (y
> 0) ? this.DV - y : -y
5238 // Montgomery reduction
5239 function Montgomery(m) {
5241 this.mp = m.invDigit()
5242 this.mpl = this.mp &
0x7fff
5243 this.mph = this.mp
>> 15
5244 this.um = (
1 << (m.DB -
15)) -
1
5249 function montConvert(x) {
5250 var r = new BigInteger()
5252 .dlShiftTo(this.m.t, r)
5253 r.divRemTo(this.m, null, r)
5254 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
5259 function montRevert(x) {
5260 var r = new BigInteger()
5266 // x = x/R mod m (HAC
14.32)
5267 function montReduce(x) {
5268 while (x.t <= this.mt2) // pad x so am has enough room later
5270 for (var i =
0; i < this.m.t; ++i) {
5271 // faster way of calculating u0 = x[i]*mp mod DV
5272 var j = x[i] &
0x7fff
5273 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
5274 // use am to combine the multiply-shift-add into one call
5276 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
5278 while (x[j]
>= x.DV) {
5284 x.drShiftTo(this.m.t, x)
5285 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
5288 // r = "x^
2/R mod m"; x != r
5289 function montSqrTo(x, r) {
5294 // r = "xy/R mod m"; x,y != r
5295 function montMulTo(x, y, r) {
5300 Montgomery.prototype.convert = montConvert
5301 Montgomery.prototype.revert = montRevert
5302 Montgomery.prototype.reduce = montReduce
5303 Montgomery.prototype.mulTo = montMulTo
5304 Montgomery.prototype.sqrTo = montSqrTo
5306 // (protected) true iff this is even
5307 function bnpIsEven() {
5308 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
5311 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
5312 function bnpExp(e, z) {
5313 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
5314 var r = new BigInteger(),
5315 r2 = new BigInteger(),
5316 g = z.convert(this),
5321 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
5331 // (public) this^e % m,
0 <= e <
2^
32
5332 function bnModPowInt(e, m) {
5334 if (e <
256 || m.isEven()) z = new Classic(m)
5335 else z = new Montgomery(m)
5336 return this.exp(e, z)
5340 proto.copyTo = bnpCopyTo
5341 proto.fromInt = bnpFromInt
5342 proto.fromString = bnpFromString
5343 proto.clamp = bnpClamp
5344 proto.dlShiftTo = bnpDLShiftTo
5345 proto.drShiftTo = bnpDRShiftTo
5346 proto.lShiftTo = bnpLShiftTo
5347 proto.rShiftTo = bnpRShiftTo
5348 proto.subTo = bnpSubTo
5349 proto.multiplyTo = bnpMultiplyTo
5350 proto.squareTo = bnpSquareTo
5351 proto.divRemTo = bnpDivRemTo
5352 proto.invDigit = bnpInvDigit
5353 proto.isEven = bnpIsEven
5357 proto.toString = bnToString
5358 proto.negate = bnNegate
5360 proto.compareTo = bnCompareTo
5361 proto.bitLength = bnBitLength
5362 proto.byteLength = bnByteLength
5364 proto.modPowInt = bnModPowInt
5367 function bnClone() {
5368 var r = new BigInteger()
5373 // (public) return value as integer
5374 function bnIntValue() {
5376 if (this.t ==
1) return this[
0] - this.DV
5377 else if (this.t ==
0) return -
1
5378 } else if (this.t ==
1) return this[
0]
5379 else if (this.t ==
0) return
0
5380 // assumes
16 < DB <
32
5381 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
5384 // (public) return value as byte
5385 function bnByteValue() {
5386 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
5389 // (public) return value as short (assumes DB
>=
16)
5390 function bnShortValue() {
5391 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
5394 // (protected) return x s.t. r^x < DV
5395 function bnpChunkSize(r) {
5396 return Math.floor(Math.LN2 * this.DB / Math.log(r))
5399 // (public)
0 if this ==
0,
1 if this
> 0
5400 function bnSigNum() {
5401 if (this.s <
0) return -
1
5402 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
5406 // (protected) convert to radix string
5407 function bnpToRadix(b) {
5408 if (b == null) b =
10
5409 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
5410 var cs = this.chunkSize(b)
5411 var a = Math.pow(b, cs)
5413 y = new BigInteger(),
5414 z = new BigInteger(),
5416 this.divRemTo(d, y, z)
5417 while (y.signum()
> 0) {
5418 r = (a + z.intValue())
5427 // (protected) convert from radix string
5428 function bnpFromRadix(s, b) {
5431 if (b == null) b =
10
5432 var cs = self.chunkSize(b)
5433 var d = Math.pow(b, cs),
5437 for (var i =
0; i < s.length; ++i) {
5440 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
5446 self.dAddOffset(w,
0)
5452 self.dMultiply(Math.pow(b, j))
5453 self.dAddOffset(w,
0)
5455 if (mi) BigInteger.ZERO.subTo(self, self)
5458 // (protected) alternate constructor
5459 function bnpFromNumber(a, b, c) {
5461 if (
"number" == typeof b) {
5462 // new BigInteger(int,int,RNG)
5463 if (a <
2) self.fromInt(
1)
5465 self.fromNumber(a, c)
5466 if (!self.testBit(a -
1)) // force MSB set
5467 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
5468 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
5469 while (!self.isProbablePrime(b)) {
5470 self.dAddOffset(
2,
0)
5471 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
5475 // new BigInteger(int,RNG)
5476 var x = new Array(),
5478 x.length = (a
>> 3) +
1
5480 if (t
> 0) x[
0] &= ((
1 << t) -
1)
5482 self.fromString(x,
256)
5486 // (public) convert to bigendian byte array
5487 function bnToByteArray() {
5492 var p = self.DB - (i * self.DB) %
8,
5495 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
5496 r[k++] = d | (self.s << (self.DB - p))
5499 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
5500 d |= self[--i]
>> (p += self.DB -
8)
5502 d = (self[i]
>> (p -=
8)) &
0xff
5508 if ((d &
0x80) !=
0) d |= -
256
5509 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
5510 if (k
> 0 || d != self.s) r[k++] = d
5516 function bnEquals(a) {
5517 return (this.compareTo(a) ==
0)
5521 return (this.compareTo(a) <
0) ? this : a
5525 return (this.compareTo(a)
> 0) ? this : a
5528 // (protected) r = this op a (bitwise)
5529 function bnpBitwiseTo(a, op, r) {
5531 var i, f, m = Math.min(a.t, self.t)
5532 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
5535 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
5538 f = self.s & self.DM
5539 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
5542 r.s = op(self.s, a.s)
5546 // (public) this & a
5547 function op_and(x, y) {
5552 var r = new BigInteger()
5553 this.bitwiseTo(a, op_and, r)
5557 // (public) this | a
5558 function op_or(x, y) {
5563 var r = new BigInteger()
5564 this.bitwiseTo(a, op_or, r)
5568 // (public) this ^ a
5569 function op_xor(x, y) {
5574 var r = new BigInteger()
5575 this.bitwiseTo(a, op_xor, r)
5579 // (public) this & ~a
5580 function op_andnot(x, y) {
5584 function bnAndNot(a) {
5585 var r = new BigInteger()
5586 this.bitwiseTo(a, op_andnot, r)
5592 var r = new BigInteger()
5593 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
5599 // (public) this << n
5600 function bnShiftLeft(n) {
5601 var r = new BigInteger()
5602 if (n <
0) this.rShiftTo(-n, r)
5603 else this.lShiftTo(n, r)
5607 // (public) this
>> n
5608 function bnShiftRight(n) {
5609 var r = new BigInteger()
5610 if (n <
0) this.lShiftTo(-n, r)
5611 else this.rShiftTo(n, r)
5615 // return index of lowest
1-bit in x, x <
2^
31
5617 if (x ==
0) return -
1
5619 if ((x &
0xffff) ==
0) {
5623 if ((x &
0xff) ==
0) {
5627 if ((x &
0xf) ==
0) {
5635 if ((x &
1) ==
0)++r
5639 // (public) returns index of lowest
1-bit (or -
1 if none)
5640 function bnGetLowestSetBit() {
5641 for (var i =
0; i < this.t; ++i)
5642 if (this[i] !=
0) return i * this.DB + lbit(this[i])
5643 if (this.s <
0) return this.t * this.DB
5647 // return number of
1 bits in x
5657 // (public) return number of set bits
5658 function bnBitCount() {
5660 x = this.s & this.DM
5661 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
5665 // (public) true iff nth bit is set
5666 function bnTestBit(n) {
5667 var j = Math.floor(n / this.DB)
5668 if (j
>= this.t) return (this.s !=
0)
5669 return ((this[j] & (
1 << (n % this.DB))) !=
0)
5672 // (protected) this op (
1<
<n)
5673 function bnpChangeBit(n, op) {
5674 var r = BigInteger.ONE.shiftLeft(n)
5675 this.bitwiseTo(r, op, r)
5679 // (public) this | (
1<
<n)
5680 function bnSetBit(n) {
5681 return this.changeBit(n, op_or)
5684 // (public) this & ~(
1<
<n)
5685 function bnClearBit(n) {
5686 return this.changeBit(n, op_andnot)
5689 // (public) this ^ (
1<
<n)
5690 function bnFlipBit(n) {
5691 return this.changeBit(n, op_xor)
5694 // (protected) r = this + a
5695 function bnpAddTo(a, r) {
5700 m = Math.min(a.t, self.t)
5703 r[i++] = c & self.DM
5708 while (i < self.t) {
5710 r[i++] = c & self.DM
5718 r[i++] = c & self.DM
5723 r.s = (c <
0) ? -
1 :
0
5724 if (c
> 0) r[i++] = c
5725 else if (c < -
1) r[i++] = self.DV + c
5730 // (public) this + a
5732 var r = new BigInteger()
5737 // (public) this - a
5738 function bnSubtract(a) {
5739 var r = new BigInteger()
5744 // (public) this * a
5745 function bnMultiply(a) {
5746 var r = new BigInteger()
5747 this.multiplyTo(a, r)
5752 function bnSquare() {
5753 var r = new BigInteger()
5758 // (public) this / a
5759 function bnDivide(a) {
5760 var r = new BigInteger()
5761 this.divRemTo(a, r, null)
5765 // (public) this % a
5766 function bnRemainder(a) {
5767 var r = new BigInteger()
5768 this.divRemTo(a, null, r)
5772 // (public) [this/a,this%a]
5773 function bnDivideAndRemainder(a) {
5774 var q = new BigInteger(),
5775 r = new BigInteger()
5776 this.divRemTo(a, q, r)
5777 return new Array(q, r)
5780 // (protected) this *= n, this
>=
0,
1 < n < DV
5781 function bnpDMultiply(n) {
5782 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
5787 // (protected) this += n << w words, this
>=
0
5788 function bnpDAddOffset(n, w) {
5790 while (this.t <= w) this[this.t++] =
0
5792 while (this[w]
>= this.DV) {
5794 if (++w
>= this.t) this[this.t++] =
0
5800 function NullExp() {}
5806 function nMulTo(x, y, r) {
5810 function nSqrTo(x, r) {
5814 NullExp.prototype.convert = nNop
5815 NullExp.prototype.revert = nNop
5816 NullExp.prototype.mulTo = nMulTo
5817 NullExp.prototype.sqrTo = nSqrTo
5821 return this.exp(e, new NullExp())
5824 // (protected) r = lower n words of "this * a", a.t <= n
5825 // "this" should be the larger one if appropriate.
5826 function bnpMultiplyLowerTo(a, n, r) {
5827 var i = Math.min(this.t + a.t, n)
5828 r.s =
0; // assumes a,this
>=
0
5830 while (i
> 0) r[--i] =
0
5832 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
5833 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
5837 // (protected) r =
"this * a" without lower n words, n
> 0
5838 //
"this" should be the larger one if appropriate.
5839 function bnpMultiplyUpperTo(a, n, r) {
5841 var i = r.t = this.t + a.t - n
5842 r.s =
0; // assumes a,this
>=
0
5843 while (--i
>=
0) r[i] =
0
5844 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
5845 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
5850 // Barrett modular reduction
5851 function Barrett(m) {
5853 this.r2 = new BigInteger()
5854 this.q3 = new BigInteger()
5855 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
5856 this.mu = this.r2.divide(m)
5860 function barrettConvert(x) {
5861 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
5862 else if (x.compareTo(this.m) <
0) return x
5864 var r = new BigInteger()
5871 function barrettRevert(x) {
5875 // x = x mod m (HAC
14.42)
5876 function barrettReduce(x) {
5878 x.drShiftTo(self.m.t -
1, self.r2)
5879 if (x.t
> self.m.t +
1) {
5883 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
5884 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
5885 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
5887 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
5890 // r = x^
2 mod m; x != r
5891 function barrettSqrTo(x, r) {
5896 // r = x*y mod m; x,y != r
5897 function barrettMulTo(x, y, r) {
5902 Barrett.prototype.convert = barrettConvert
5903 Barrett.prototype.revert = barrettRevert
5904 Barrett.prototype.reduce = barrettReduce
5905 Barrett.prototype.mulTo = barrettMulTo
5906 Barrett.prototype.sqrTo = barrettSqrTo
5908 // (public) this^e % m (HAC
14.85)
5909 function bnModPow(e, m) {
5910 var i = e.bitLength(),
5913 if (i <=
0) return r
5914 else if (i <
18) k =
1
5915 else if (i <
48) k =
3
5916 else if (i <
144) k =
4
5917 else if (i <
768) k =
5
5921 else if (m.isEven())
5924 z = new Montgomery(m)
5927 var g = new Array(),
5931 g[
1] = z.convert(this)
5933 var g2 = new BigInteger()
5936 g[n] = new BigInteger()
5937 z.mulTo(g2, g[n -
2], g[n])
5944 r2 = new BigInteger(),
5948 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
5950 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
5951 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
5955 while ((w &
1) ==
0) {
5963 if (is1) { // ret ==
1, don't bother squaring or multiplying it
5972 if (n
> 0) z.sqrTo(r, r2)
5978 z.mulTo(r2, g[w], r)
5981 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
5995 // (public) gcd(this,a) (HAC
14.54)
5997 var x = (this.s <
0) ? this.negate() : this.clone()
5998 var y = (a.s <
0) ? a.negate() : a.clone()
5999 if (x.compareTo(y) <
0) {
6004 var i = x.getLowestSetBit(),
6005 g = y.getLowestSetBit()
6012 while (x.signum()
> 0) {
6013 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
6014 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
6015 if (x.compareTo(y)
>=
0) {
6023 if (g
> 0) y.lShiftTo(g, y)
6027 // (protected) this % n, n <
2^
26
6028 function bnpModInt(n) {
6029 if (n <=
0) return
0
6030 var d = this.DV % n,
6031 r = (this.s <
0) ? n -
1 :
0
6033 if (d ==
0) r = this[
0] % n
6035 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
6039 // (public)
1/this % m (HAC
14.61)
6040 function bnModInverse(m) {
6042 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
6049 while (u.signum() !=
0) {
6050 while (u.isEven()) {
6053 if (!a.isEven() || !b.isEven()) {
6058 } else if (!b.isEven()) b.subTo(m, b)
6061 while (v.isEven()) {
6064 if (!c.isEven() || !d.isEven()) {
6069 } else if (!d.isEven()) d.subTo(m, d)
6072 if (u.compareTo(v)
>=
0) {
6074 if (ac) a.subTo(c, a)
6078 if (ac) c.subTo(a, c)
6082 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
6083 if (d.compareTo(m)
>=
0) return d.subtract(m)
6084 if (d.signum() <
0) d.addTo(m, d)
6086 if (d.signum() <
0) return d.add(m)
6091 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
6092 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
6093 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
6094 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
6095 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
6096 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
6097 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
6098 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
6099 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
6100 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
6101 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
6104 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
6106 // (public) test primality with certainty
>=
1-
.5^t
6107 function bnIsProbablePrime(t) {
6108 var i, x = this.abs()
6109 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
6110 for (i =
0; i < lowprimes.length; ++i)
6111 if (x[
0] == lowprimes[i]) return true
6114 if (x.isEven()) return false
6116 while (i < lowprimes.length) {
6117 var m = lowprimes[i],
6119 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
6121 while (i < j) if (m % lowprimes[i++] ==
0) return false
6123 return x.millerRabin(t)
6126 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
6127 function bnpMillerRabin(t) {
6128 var n1 = this.subtract(BigInteger.ONE)
6129 var k = n1.getLowestSetBit()
6130 if (k <=
0) return false
6131 var r = n1.shiftRight(k)
6133 if (t
> lowprimes.length) t = lowprimes.length
6134 var a = new BigInteger(null)
6136 for (var i =
0; i < t; ++i) {
6138 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
6139 if (bases.indexOf(j) == -
1) break
6143 var y = a.modPow(r, this)
6144 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
6146 while (j++ < k && y.compareTo(n1) !=
0) {
6147 y = y.modPowInt(
2, this)
6148 if (y.compareTo(BigInteger.ONE) ==
0) return false
6150 if (y.compareTo(n1) !=
0) return false
6157 proto.chunkSize = bnpChunkSize
6158 proto.toRadix = bnpToRadix
6159 proto.fromRadix = bnpFromRadix
6160 proto.fromNumber = bnpFromNumber
6161 proto.bitwiseTo = bnpBitwiseTo
6162 proto.changeBit = bnpChangeBit
6163 proto.addTo = bnpAddTo
6164 proto.dMultiply = bnpDMultiply
6165 proto.dAddOffset = bnpDAddOffset
6166 proto.multiplyLowerTo = bnpMultiplyLowerTo
6167 proto.multiplyUpperTo = bnpMultiplyUpperTo
6168 proto.modInt = bnpModInt
6169 proto.millerRabin = bnpMillerRabin
6172 proto.clone = bnClone
6173 proto.intValue = bnIntValue
6174 proto.byteValue = bnByteValue
6175 proto.shortValue = bnShortValue
6176 proto.signum = bnSigNum
6177 proto.toByteArray = bnToByteArray
6178 proto.equals = bnEquals
6184 proto.andNot = bnAndNot
6186 proto.shiftLeft = bnShiftLeft
6187 proto.shiftRight = bnShiftRight
6188 proto.getLowestSetBit = bnGetLowestSetBit
6189 proto.bitCount = bnBitCount
6190 proto.testBit = bnTestBit
6191 proto.setBit = bnSetBit
6192 proto.clearBit = bnClearBit
6193 proto.flipBit = bnFlipBit
6195 proto.subtract = bnSubtract
6196 proto.multiply = bnMultiply
6197 proto.divide = bnDivide
6198 proto.remainder = bnRemainder
6199 proto.divideAndRemainder = bnDivideAndRemainder
6200 proto.modPow = bnModPow
6201 proto.modInverse = bnModInverse
6204 proto.isProbablePrime = bnIsProbablePrime
6206 // JSBN-specific extension
6207 proto.square = bnSquare
6210 BigInteger.ZERO = nbv(
0)
6211 BigInteger.ONE = nbv(
1)
6212 BigInteger.valueOf = nbv
6214 module.exports = BigInteger
6216 },{"../package.json":
4}],
2:[function(require,module,exports){
6218 // FIXME: Kind of a weird way to throw exceptions, consider removing
6219 var assert = require('assert')
6220 var BigInteger = require('./bigi')
6223 * Turns a byte array into a big integer.
6225 * This function will interpret a byte array as a big integer in big
6228 BigInteger.fromByteArrayUnsigned = function(byteArray) {
6229 // BigInteger expects a DER integer conformant byte array
6230 if (byteArray[
0] &
0x80) {
6231 return new BigInteger([
0].concat(byteArray))
6234 return new BigInteger(byteArray)
6238 * Returns a byte array representation of the big integer.
6240 * This returns the absolute of the contained value in big endian
6241 * form. A value of zero results in an empty array.
6243 BigInteger.prototype.toByteArrayUnsigned = function() {
6244 var byteArray = this.toByteArray()
6245 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
6248 BigInteger.fromDERInteger = function(byteArray) {
6249 return new BigInteger(byteArray)
6253 * Converts BigInteger to a DER integer representation.
6255 * The format for this value uses the most significant bit as a sign
6256 * bit. If the most significant bit is already set and the integer is
6257 * positive, a
0x00 is prepended.
6273 * -
62300 =
> 0xff0ca4
6275 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
6277 BigInteger.fromBuffer = function(buffer) {
6278 // BigInteger expects a DER integer conformant byte array
6279 if (buffer[
0] &
0x80) {
6280 var byteArray = Array.prototype.slice.call(buffer)
6282 return new BigInteger([
0].concat(byteArray))
6285 return new BigInteger(buffer)
6288 BigInteger.fromHex = function(hex) {
6289 if (hex === '') return BigInteger.ZERO
6291 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
6292 assert.equal(hex.length %
2,
0, 'Incomplete hex')
6293 return new BigInteger(hex,
16)
6296 BigInteger.prototype.toBuffer = function(size) {
6297 var byteArray = this.toByteArrayUnsigned()
6300 var padding = size - byteArray.length
6301 while (zeros.length < padding) zeros.push(
0)
6303 return new Buffer(zeros.concat(byteArray))
6306 BigInteger.prototype.toHex = function(size) {
6307 return this.toBuffer(size).toString('hex')
6310 }).call(this,require(
"buffer").Buffer)
6311 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
6312 var BigInteger = require('./bigi')
6315 require('./convert')
6317 module.exports = BigInteger
6318 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
6322 "description":
"Big integers.",
6340 "devDependencies": {
6343 "coveralls":
"^2.10.0",
6344 "istanbul":
"^0.2.11"
6347 "url":
"https://github.com/cryptocoinjs/bigi",
6350 "main":
"./lib/index.js",
6352 "test":
"_mocha -- test/*.js",
6353 "jshint":
"jshint --config jshint.json lib/*.js ; true",
6355 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
6356 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
6360 "files":
"test/*.js",
6366 "safari/6.0..latest",
6367 "iphone/6.0..latest",
6368 "android-browser/4.2..latest"
6372 "url":
"https://github.com/cryptocoinjs/bigi/issues"
6374 "homepage":
"https://github.com/cryptocoinjs/bigi",
6375 "_id":
"bigi@1.4.0",
6377 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6378 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6380 "_from":
"bigi@^1.4.0",
6381 "_npmVersion":
"1.4.3",
6384 "email":
"jprichardson@gmail.com"
6389 "email":
"jprichardson@gmail.com"
6392 "name":
"midnightlightning",
6393 "email":
"boydb@midnightdesign.ws"
6396 "name":
"sidazhang",
6397 "email":
"sidazhang89@gmail.com"
6401 "email":
"npm@shesek.info"
6405 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6406 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6409 },{}],
5:[function(require,module,exports){
6410 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
6412 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
6414 // Originally from narwhal.js (http://narwhaljs.org)
6415 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
6417 // Permission is hereby granted, free of charge, to any person obtaining a copy
6418 // of this software and associated documentation files (the 'Software'), to
6419 // deal in the Software without restriction, including without limitation the
6420 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
6421 // sell copies of the Software, and to permit persons to whom the Software is
6422 // furnished to do so, subject to the following conditions:
6424 // The above copyright notice and this permission notice shall be included in
6425 // all copies or substantial portions of the Software.
6427 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6428 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
6429 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
6430 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
6431 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
6432 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6434 // when used in node, this will actually load the util module we depend on
6435 // versus loading the builtin util module as happens otherwise
6436 // this is a bug in node module loading as far as I am concerned
6437 var util = require('util/');
6439 var pSlice = Array.prototype.slice;
6440 var hasOwn = Object.prototype.hasOwnProperty;
6442 //
1. The assert module provides functions that throw
6443 // AssertionError's when particular conditions are not met. The
6444 // assert module must conform to the following interface.
6446 var assert = module.exports = ok;
6448 //
2. The AssertionError is defined in assert.
6449 // new assert.AssertionError({ message: message,
6451 // expected: expected })
6453 assert.AssertionError = function AssertionError(options) {
6454 this.name = 'AssertionError';
6455 this.actual = options.actual;
6456 this.expected = options.expected;
6457 this.operator = options.operator;
6458 if (options.message) {
6459 this.message = options.message;
6460 this.generatedMessage = false;
6462 this.message = getMessage(this);
6463 this.generatedMessage = true;
6465 var stackStartFunction = options.stackStartFunction || fail;
6467 if (Error.captureStackTrace) {
6468 Error.captureStackTrace(this, stackStartFunction);
6471 // non v8 browsers so we can have a stacktrace
6472 var err = new Error();
6474 var out = err.stack;
6476 // try to strip useless frames
6477 var fn_name = stackStartFunction.name;
6478 var idx = out.indexOf('\n' + fn_name);
6480 // once we have located the function frame
6481 // we need to strip out everything before it (and its line)
6482 var next_line = out.indexOf('\n', idx +
1);
6483 out = out.substring(next_line +
1);
6491 // assert.AssertionError instanceof Error
6492 util.inherits(assert.AssertionError, Error);
6494 function replacer(key, value) {
6495 if (util.isUndefined(value)) {
6498 if (util.isNumber(value) && !isFinite(value)) {
6499 return value.toString();
6501 if (util.isFunction(value) || util.isRegExp(value)) {
6502 return value.toString();
6507 function truncate(s, n) {
6508 if (util.isString(s)) {
6509 return s.length < n ? s : s.slice(
0, n);
6515 function getMessage(self) {
6516 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
6517 self.operator + ' ' +
6518 truncate(JSON.stringify(self.expected, replacer),
128);
6521 // At present only the three keys mentioned above are used and
6522 // understood by the spec. Implementations or sub modules can pass
6523 // other keys to the AssertionError's constructor - they will be
6526 //
3. All of the following functions must throw an AssertionError
6527 // when a corresponding condition is not met, with a message that
6528 // may be undefined if not provided. All assertion methods provide
6529 // both the actual and expected values to the assertion error for
6530 // display purposes.
6532 function fail(actual, expected, message, operator, stackStartFunction) {
6533 throw new assert.AssertionError({
6538 stackStartFunction: stackStartFunction
6542 // EXTENSION! allows for well behaved errors defined elsewhere.
6545 //
4. Pure assertion tests whether a value is truthy, as determined
6547 // assert.ok(guard, message_opt);
6548 // This statement is equivalent to assert.equal(true, !!guard,
6549 // message_opt);. To test strictly for the value true, use
6550 // assert.strictEqual(true, guard, message_opt);.
6552 function ok(value, message) {
6553 if (!value) fail(value, true, message, '==', assert.ok);
6557 //
5. The equality assertion tests shallow, coercive equality with
6559 // assert.equal(actual, expected, message_opt);
6561 assert.equal = function equal(actual, expected, message) {
6562 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
6565 //
6. The non-equality assertion tests for whether two objects are not equal
6566 // with != assert.notEqual(actual, expected, message_opt);
6568 assert.notEqual = function notEqual(actual, expected, message) {
6569 if (actual == expected) {
6570 fail(actual, expected, message, '!=', assert.notEqual);
6574 //
7. The equivalence assertion tests a deep equality relation.
6575 // assert.deepEqual(actual, expected, message_opt);
6577 assert.deepEqual = function deepEqual(actual, expected, message) {
6578 if (!_deepEqual(actual, expected)) {
6579 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
6583 function _deepEqual(actual, expected) {
6584 //
7.1. All identical values are equivalent, as determined by ===.
6585 if (actual === expected) {
6588 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
6589 if (actual.length != expected.length) return false;
6591 for (var i =
0; i < actual.length; i++) {
6592 if (actual[i] !== expected[i]) return false;
6597 //
7.2. If the expected value is a Date object, the actual value is
6598 // equivalent if it is also a Date object that refers to the same time.
6599 } else if (util.isDate(actual) && util.isDate(expected)) {
6600 return actual.getTime() === expected.getTime();
6602 //
7.3 If the expected value is a RegExp object, the actual value is
6603 // equivalent if it is also a RegExp object with the same source and
6604 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
6605 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
6606 return actual.source === expected.source &&
6607 actual.global === expected.global &&
6608 actual.multiline === expected.multiline &&
6609 actual.lastIndex === expected.lastIndex &&
6610 actual.ignoreCase === expected.ignoreCase;
6612 //
7.4. Other pairs that do not both pass typeof value == 'object',
6613 // equivalence is determined by ==.
6614 } else if (!util.isObject(actual) && !util.isObject(expected)) {
6615 return actual == expected;
6617 //
7.5 For all other Object pairs, including Array objects, equivalence is
6618 // determined by having the same number of owned properties (as verified
6619 // with Object.prototype.hasOwnProperty.call), the same set of keys
6620 // (although not necessarily the same order), equivalent values for every
6621 // corresponding key, and an identical 'prototype' property. Note: this
6622 // accounts for both named and indexed properties on Arrays.
6624 return objEquiv(actual, expected);
6628 function isArguments(object) {
6629 return Object.prototype.toString.call(object) == '[object Arguments]';
6632 function objEquiv(a, b) {
6633 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
6635 // an identical 'prototype' property.
6636 if (a.prototype !== b.prototype) return false;
6637 // if one is a primitive, the other must be same
6638 if (util.isPrimitive(a) || util.isPrimitive(b)) {
6641 var aIsArgs = isArguments(a),
6642 bIsArgs = isArguments(b);
6643 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
6648 return _deepEqual(a, b);
6650 var ka = objectKeys(a),
6653 // having the same number of owned properties (keys incorporates
6655 if (ka.length != kb.length)
6657 //the same set of keys (although not necessarily the same order),
6661 for (i = ka.length -
1; i
>=
0; i--) {
6665 //equivalent values for every corresponding key, and
6666 //~~~possibly expensive deep test
6667 for (i = ka.length -
1; i
>=
0; i--) {
6669 if (!_deepEqual(a[key], b[key])) return false;
6674 //
8. The non-equivalence assertion tests for any deep inequality.
6675 // assert.notDeepEqual(actual, expected, message_opt);
6677 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
6678 if (_deepEqual(actual, expected)) {
6679 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
6683 //
9. The strict equality assertion tests strict equality, as determined by ===.
6684 // assert.strictEqual(actual, expected, message_opt);
6686 assert.strictEqual = function strictEqual(actual, expected, message) {
6687 if (actual !== expected) {
6688 fail(actual, expected, message, '===', assert.strictEqual);
6692 //
10. The strict non-equality assertion tests for strict inequality, as
6693 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
6695 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
6696 if (actual === expected) {
6697 fail(actual, expected, message, '!==', assert.notStrictEqual);
6701 function expectedException(actual, expected) {
6702 if (!actual || !expected) {
6706 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
6707 return expected.test(actual);
6708 } else if (actual instanceof expected) {
6710 } else if (expected.call({}, actual) === true) {
6717 function _throws(shouldThrow, block, expected, message) {
6720 if (util.isString(expected)) {
6731 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
6732 (message ? ' ' + message : '.');
6734 if (shouldThrow && !actual) {
6735 fail(actual, expected, 'Missing expected exception' + message);
6738 if (!shouldThrow && expectedException(actual, expected)) {
6739 fail(actual, expected, 'Got unwanted exception' + message);
6742 if ((shouldThrow && actual && expected &&
6743 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
6748 //
11. Expected to throw an error:
6749 // assert.throws(block, Error_opt, message_opt);
6751 assert.throws = function(block, /*optional*/error, /*optional*/message) {
6752 _throws.apply(this, [true].concat(pSlice.call(arguments)));
6755 // EXTENSION! This is annoying to write outside this module.
6756 assert.doesNotThrow = function(block, /*optional*/message) {
6757 _throws.apply(this, [false].concat(pSlice.call(arguments)));
6760 assert.ifError = function(err) { if (err) {throw err;}};
6762 var objectKeys = Object.keys || function (obj) {
6764 for (var key in obj) {
6765 if (hasOwn.call(obj, key)) keys.push(key);
6770 },{"util/":
29}],
6:[function(require,module,exports){
6772 },{}],
7:[function(require,module,exports){
6774 * The buffer module from node.js, for the browser.
6776 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
6780 var base64 = require('base64-js')
6781 var ieee754 = require('ieee754')
6782 var isArray = require('is-array')
6784 exports.Buffer = Buffer
6785 exports.SlowBuffer = SlowBuffer
6786 exports.INSPECT_MAX_BYTES =
50
6787 Buffer.poolSize =
8192 // not used by this implementation
6792 * If `Buffer.TYPED_ARRAY_SUPPORT`:
6793 * === true Use Uint8Array implementation (fastest)
6794 * === false Use Object implementation (most compatible, even IE6)
6796 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
6797 * Opera
11.6+, iOS
4.2+.
6799 * Due to various browser bugs, sometimes the Object implementation will be used even
6800 * when the browser supports typed arrays.
6804 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
6805 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
6807 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
6810 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
6812 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
6813 * incorrect length in some situations.
6815 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
6816 * get the Object implementation, which is slower but behaves correctly.
6818 Buffer.TYPED_ARRAY_SUPPORT = (function () {
6821 var arr = new Uint8Array(
1)
6822 arr.foo = function () { return
42 }
6823 arr.constructor = Bar
6824 return arr.foo() ===
42 && // typed array instances can be augmented
6825 arr.constructor === Bar && // constructor can be set
6826 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
6827 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
6833 function kMaxLength () {
6834 return Buffer.TYPED_ARRAY_SUPPORT
6843 * The Buffer constructor returns instances of `Uint8Array` that are augmented
6844 * with function properties for all the node `Buffer` API functions. We use
6845 * `Uint8Array` so that square bracket notation works as expected -- it returns
6848 * By augmenting the instances, we can avoid modifying the `Uint8Array`
6851 function Buffer (arg) {
6852 if (!(this instanceof Buffer)) {
6853 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
6854 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
6855 return new Buffer(arg)
6859 this.parent = undefined
6862 if (typeof arg === 'number') {
6863 return fromNumber(this, arg)
6866 // Slightly less common case.
6867 if (typeof arg === 'string') {
6868 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
6872 return fromObject(this, arg)
6875 function fromNumber (that, length) {
6876 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
6877 if (!Buffer.TYPED_ARRAY_SUPPORT) {
6878 for (var i =
0; i < length; i++) {
6885 function fromString (that, string, encoding) {
6886 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
6888 // Assumption: byteLength() return value is always < kMaxLength.
6889 var length = byteLength(string, encoding) |
0
6890 that = allocate(that, length)
6892 that.write(string, encoding)
6896 function fromObject (that, object) {
6897 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
6899 if (isArray(object)) return fromArray(that, object)
6901 if (object == null) {
6902 throw new TypeError('must start with number, buffer, array or string')
6905 if (typeof ArrayBuffer !== 'undefined') {
6906 if (object.buffer instanceof ArrayBuffer) {
6907 return fromTypedArray(that, object)
6909 if (object instanceof ArrayBuffer) {
6910 return fromArrayBuffer(that, object)
6914 if (object.length) return fromArrayLike(that, object)
6916 return fromJsonObject(that, object)
6919 function fromBuffer (that, buffer) {
6920 var length = checked(buffer.length) |
0
6921 that = allocate(that, length)
6922 buffer.copy(that,
0,
0, length)
6926 function fromArray (that, array) {
6927 var length = checked(array.length) |
0
6928 that = allocate(that, length)
6929 for (var i =
0; i < length; i +=
1) {
6930 that[i] = array[i] &
255
6935 // Duplicate of fromArray() to keep fromArray() monomorphic.
6936 function fromTypedArray (that, array) {
6937 var length = checked(array.length) |
0
6938 that = allocate(that, length)
6939 // Truncating the elements is probably not what people expect from typed
6940 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
6941 // of the old Buffer constructor.
6942 for (var i =
0; i < length; i +=
1) {
6943 that[i] = array[i] &
255
6948 function fromArrayBuffer (that, array) {
6949 if (Buffer.TYPED_ARRAY_SUPPORT) {
6950 // Return an augmented `Uint8Array` instance, for best performance
6952 that = Buffer._augment(new Uint8Array(array))
6954 // Fallback: Return an object instance of the Buffer class
6955 that = fromTypedArray(that, new Uint8Array(array))
6960 function fromArrayLike (that, array) {
6961 var length = checked(array.length) |
0
6962 that = allocate(that, length)
6963 for (var i =
0; i < length; i +=
1) {
6964 that[i] = array[i] &
255
6969 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
6970 // Returns a zero-length buffer for inputs that don't conform to the spec.
6971 function fromJsonObject (that, object) {
6975 if (object.type === 'Buffer' && isArray(object.data)) {
6977 length = checked(array.length) |
0
6979 that = allocate(that, length)
6981 for (var i =
0; i < length; i +=
1) {
6982 that[i] = array[i] &
255
6987 function allocate (that, length) {
6988 if (Buffer.TYPED_ARRAY_SUPPORT) {
6989 // Return an augmented `Uint8Array` instance, for best performance
6990 that = Buffer._augment(new Uint8Array(length))
6992 // Fallback: Return an object instance of the Buffer class
6993 that.length = length
6994 that._isBuffer = true
6997 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
6998 if (fromPool) that.parent = rootParent
7003 function checked (length) {
7004 // Note: cannot use `length < kMaxLength` here because that fails when
7005 // length is NaN (which is otherwise coerced to zero.)
7006 if (length
>= kMaxLength()) {
7007 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
7008 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
7013 function SlowBuffer (subject, encoding) {
7014 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
7016 var buf = new Buffer(subject, encoding)
7021 Buffer.isBuffer = function isBuffer (b) {
7022 return !!(b != null && b._isBuffer)
7025 Buffer.compare = function compare (a, b) {
7026 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
7027 throw new TypeError('Arguments must be Buffers')
7030 if (a === b) return
0
7036 var len = Math.min(x, y)
7038 if (a[i] !== b[i]) break
7048 if (x < y) return -
1
7053 Buffer.isEncoding = function isEncoding (encoding) {
7054 switch (String(encoding).toLowerCase()) {
7072 Buffer.concat = function concat (list, length) {
7073 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
7075 if (list.length ===
0) {
7076 return new Buffer(
0)
7080 if (length === undefined) {
7082 for (i =
0; i < list.length; i++) {
7083 length += list[i].length
7087 var buf = new Buffer(length)
7089 for (i =
0; i < list.length; i++) {
7097 function byteLength (string, encoding) {
7098 if (typeof string !== 'string') string = '' + string
7100 var len = string.length
7101 if (len ===
0) return
0
7103 // Use a for loop to avoid recursion
7104 var loweredCase = false
7115 return utf8ToBytes(string).length
7124 return base64ToBytes(string).length
7126 if (loweredCase) return utf8ToBytes(string).length // assume utf8
7127 encoding = ('' + encoding).toLowerCase()
7132 Buffer.byteLength = byteLength
7134 // pre-set for values that may exist in the future
7135 Buffer.prototype.length = undefined
7136 Buffer.prototype.parent = undefined
7138 function slowToString (encoding, start, end) {
7139 var loweredCase = false
7142 end = end === undefined || end === Infinity ? this.length : end |
0
7144 if (!encoding) encoding = 'utf8'
7145 if (start <
0) start =
0
7146 if (end
> this.length) end = this.length
7147 if (end <= start) return ''
7152 return hexSlice(this, start, end)
7156 return utf8Slice(this, start, end)
7159 return asciiSlice(this, start, end)
7162 return binarySlice(this, start, end)
7165 return base64Slice(this, start, end)
7171 return utf16leSlice(this, start, end)
7174 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7175 encoding = (encoding + '').toLowerCase()
7181 Buffer.prototype.toString = function toString () {
7182 var length = this.length |
0
7183 if (length ===
0) return ''
7184 if (arguments.length ===
0) return utf8Slice(this,
0, length)
7185 return slowToString.apply(this, arguments)
7188 Buffer.prototype.equals = function equals (b) {
7189 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7190 if (this === b) return true
7191 return Buffer.compare(this, b) ===
0
7194 Buffer.prototype.inspect = function inspect () {
7196 var max = exports.INSPECT_MAX_BYTES
7197 if (this.length
> 0) {
7198 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
7199 if (this.length
> max) str += ' ... '
7201 return '
<Buffer ' + str + '
>'
7204 Buffer.prototype.compare = function compare (b) {
7205 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7206 if (this === b) return
0
7207 return Buffer.compare(this, b)
7210 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
7211 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
7212 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
7215 if (this.length ===
0) return -
1
7216 if (byteOffset
>= this.length) return -
1
7218 // Negative offsets start from the end of the buffer
7219 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
7221 if (typeof val === 'string') {
7222 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
7223 return String.prototype.indexOf.call(this, val, byteOffset)
7225 if (Buffer.isBuffer(val)) {
7226 return arrayIndexOf(this, val, byteOffset)
7228 if (typeof val === 'number') {
7229 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
7230 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
7232 return arrayIndexOf(this, [ val ], byteOffset)
7235 function arrayIndexOf (arr, val, byteOffset) {
7237 for (var i =
0; byteOffset + i < arr.length; i++) {
7238 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
7239 if (foundIndex === -
1) foundIndex = i
7240 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
7248 throw new TypeError('val must be string, number or Buffer')
7251 // `get` is deprecated
7252 Buffer.prototype.get = function get (offset) {
7253 console.log('.get() is deprecated. Access using array indexes instead.')
7254 return this.readUInt8(offset)
7257 // `set` is deprecated
7258 Buffer.prototype.set = function set (v, offset) {
7259 console.log('.set() is deprecated. Access using array indexes instead.')
7260 return this.writeUInt8(v, offset)
7263 function hexWrite (buf, string, offset, length) {
7264 offset = Number(offset) ||
0
7265 var remaining = buf.length - offset
7269 length = Number(length)
7270 if (length
> remaining) {
7275 // must be an even number of digits
7276 var strLen = string.length
7277 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
7279 if (length
> strLen /
2) {
7282 for (var i =
0; i < length; i++) {
7283 var parsed = parseInt(string.substr(i *
2,
2),
16)
7284 if (isNaN(parsed)) throw new Error('Invalid hex string')
7285 buf[offset + i] = parsed
7290 function utf8Write (buf, string, offset, length) {
7291 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
7294 function asciiWrite (buf, string, offset, length) {
7295 return blitBuffer(asciiToBytes(string), buf, offset, length)
7298 function binaryWrite (buf, string, offset, length) {
7299 return asciiWrite(buf, string, offset, length)
7302 function base64Write (buf, string, offset, length) {
7303 return blitBuffer(base64ToBytes(string), buf, offset, length)
7306 function ucs2Write (buf, string, offset, length) {
7307 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
7310 Buffer.prototype.write = function write (string, offset, length, encoding) {
7311 // Buffer#write(string)
7312 if (offset === undefined) {
7314 length = this.length
7316 // Buffer#write(string, encoding)
7317 } else if (length === undefined && typeof offset === 'string') {
7319 length = this.length
7321 // Buffer#write(string, offset[, length][, encoding])
7322 } else if (isFinite(offset)) {
7324 if (isFinite(length)) {
7326 if (encoding === undefined) encoding = 'utf8'
7331 // legacy write(string, encoding, offset, length) - remove in v0.13
7339 var remaining = this.length - offset
7340 if (length === undefined || length
> remaining) length = remaining
7342 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
7343 throw new RangeError('attempt to write outside buffer bounds')
7346 if (!encoding) encoding = 'utf8'
7348 var loweredCase = false
7352 return hexWrite(this, string, offset, length)
7356 return utf8Write(this, string, offset, length)
7359 return asciiWrite(this, string, offset, length)
7362 return binaryWrite(this, string, offset, length)
7365 // Warning: maxLength not taken into account in base64Write
7366 return base64Write(this, string, offset, length)
7372 return ucs2Write(this, string, offset, length)
7375 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7376 encoding = ('' + encoding).toLowerCase()
7382 Buffer.prototype.toJSON = function toJSON () {
7385 data: Array.prototype.slice.call(this._arr || this,
0)
7389 function base64Slice (buf, start, end) {
7390 if (start ===
0 && end === buf.length) {
7391 return base64.fromByteArray(buf)
7393 return base64.fromByteArray(buf.slice(start, end))
7397 function utf8Slice (buf, start, end) {
7398 end = Math.min(buf.length, end)
7403 var bytesPerSequence
7409 for (; i < end; i += bytesPerSequence) {
7413 if (firstByte
> 0xEF) {
7414 bytesPerSequence =
4
7415 } else if (firstByte
> 0xDF) {
7416 bytesPerSequence =
3
7417 } else if (firstByte
> 0xBF) {
7418 bytesPerSequence =
2
7420 bytesPerSequence =
1
7423 if (i + bytesPerSequence <= end) {
7424 switch (bytesPerSequence) {
7426 if (firstByte <
0x80) {
7427 codePoint = firstByte
7431 secondByte = buf[i +
1]
7432 if ((secondByte &
0xC0) ===
0x80) {
7433 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
7434 if (tempCodePoint
> 0x7F) {
7435 codePoint = tempCodePoint
7440 secondByte = buf[i +
1]
7441 thirdByte = buf[i +
2]
7442 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
7443 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
7444 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
7445 codePoint = tempCodePoint
7450 secondByte = buf[i +
1]
7451 thirdByte = buf[i +
2]
7452 fourthByte = buf[i +
3]
7453 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
7454 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
7455 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
7456 codePoint = tempCodePoint
7462 if (codePoint ===
0xFFFD) {
7463 // we generated an invalid codePoint so make sure to only advance by
1 byte
7464 bytesPerSequence =
1
7465 } else if (codePoint
> 0xFFFF) {
7466 // encode to utf16 (surrogate pair dance)
7467 codePoint -=
0x10000
7468 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
7469 codePoint =
0xDC00 | codePoint &
0x3FF
7475 return String.fromCharCode.apply(String, res)
7478 function asciiSlice (buf, start, end) {
7480 end = Math.min(buf.length, end)
7482 for (var i = start; i < end; i++) {
7483 ret += String.fromCharCode(buf[i] &
0x7F)
7488 function binarySlice (buf, start, end) {
7490 end = Math.min(buf.length, end)
7492 for (var i = start; i < end; i++) {
7493 ret += String.fromCharCode(buf[i])
7498 function hexSlice (buf, start, end) {
7499 var len = buf.length
7501 if (!start || start <
0) start =
0
7502 if (!end || end <
0 || end
> len) end = len
7505 for (var i = start; i < end; i++) {
7506 out += toHex(buf[i])
7511 function utf16leSlice (buf, start, end) {
7512 var bytes = buf.slice(start, end)
7514 for (var i =
0; i < bytes.length; i +=
2) {
7515 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
7520 Buffer.prototype.slice = function slice (start, end) {
7521 var len = this.length
7523 end = end === undefined ? len : ~~end
7527 if (start <
0) start =
0
7528 } else if (start
> len) {
7534 if (end <
0) end =
0
7535 } else if (end
> len) {
7539 if (end < start) end = start
7542 if (Buffer.TYPED_ARRAY_SUPPORT) {
7543 newBuf = Buffer._augment(this.subarray(start, end))
7545 var sliceLen = end - start
7546 newBuf = new Buffer(sliceLen, undefined)
7547 for (var i =
0; i < sliceLen; i++) {
7548 newBuf[i] = this[i + start]
7552 if (newBuf.length) newBuf.parent = this.parent || this
7558 * Need to make sure that buffer isn't trying to write out of bounds.
7560 function checkOffset (offset, ext, length) {
7561 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
7562 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
7565 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
7567 byteLength = byteLength |
0
7568 if (!noAssert) checkOffset(offset, byteLength, this.length)
7570 var val = this[offset]
7573 while (++i < byteLength && (mul *=
0x100)) {
7574 val += this[offset + i] * mul
7580 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
7582 byteLength = byteLength |
0
7584 checkOffset(offset, byteLength, this.length)
7587 var val = this[offset + --byteLength]
7589 while (byteLength
> 0 && (mul *=
0x100)) {
7590 val += this[offset + --byteLength] * mul
7596 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
7597 if (!noAssert) checkOffset(offset,
1, this.length)
7601 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
7602 if (!noAssert) checkOffset(offset,
2, this.length)
7603 return this[offset] | (this[offset +
1] <<
8)
7606 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
7607 if (!noAssert) checkOffset(offset,
2, this.length)
7608 return (this[offset] <<
8) | this[offset +
1]
7611 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
7612 if (!noAssert) checkOffset(offset,
4, this.length)
7614 return ((this[offset]) |
7615 (this[offset +
1] <<
8) |
7616 (this[offset +
2] <<
16)) +
7617 (this[offset +
3] *
0x1000000)
7620 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
7621 if (!noAssert) checkOffset(offset,
4, this.length)
7623 return (this[offset] *
0x1000000) +
7624 ((this[offset +
1] <<
16) |
7625 (this[offset +
2] <<
8) |
7629 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
7631 byteLength = byteLength |
0
7632 if (!noAssert) checkOffset(offset, byteLength, this.length)
7634 var val = this[offset]
7637 while (++i < byteLength && (mul *=
0x100)) {
7638 val += this[offset + i] * mul
7642 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
7647 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
7649 byteLength = byteLength |
0
7650 if (!noAssert) checkOffset(offset, byteLength, this.length)
7654 var val = this[offset + --i]
7655 while (i
> 0 && (mul *=
0x100)) {
7656 val += this[offset + --i] * mul
7660 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
7665 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
7666 if (!noAssert) checkOffset(offset,
1, this.length)
7667 if (!(this[offset] &
0x80)) return (this[offset])
7668 return ((
0xff - this[offset] +
1) * -
1)
7671 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
7672 if (!noAssert) checkOffset(offset,
2, this.length)
7673 var val = this[offset] | (this[offset +
1] <<
8)
7674 return (val &
0x8000) ? val |
0xFFFF0000 : val
7677 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
7678 if (!noAssert) checkOffset(offset,
2, this.length)
7679 var val = this[offset +
1] | (this[offset] <<
8)
7680 return (val &
0x8000) ? val |
0xFFFF0000 : val
7683 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
7684 if (!noAssert) checkOffset(offset,
4, this.length)
7686 return (this[offset]) |
7687 (this[offset +
1] <<
8) |
7688 (this[offset +
2] <<
16) |
7689 (this[offset +
3] <<
24)
7692 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
7693 if (!noAssert) checkOffset(offset,
4, this.length)
7695 return (this[offset] <<
24) |
7696 (this[offset +
1] <<
16) |
7697 (this[offset +
2] <<
8) |
7701 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
7702 if (!noAssert) checkOffset(offset,
4, this.length)
7703 return ieee754.read(this, offset, true,
23,
4)
7706 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
7707 if (!noAssert) checkOffset(offset,
4, this.length)
7708 return ieee754.read(this, offset, false,
23,
4)
7711 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
7712 if (!noAssert) checkOffset(offset,
8, this.length)
7713 return ieee754.read(this, offset, true,
52,
8)
7716 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
7717 if (!noAssert) checkOffset(offset,
8, this.length)
7718 return ieee754.read(this, offset, false,
52,
8)
7721 function checkInt (buf, value, offset, ext, max, min) {
7722 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
7723 if (value
> max || value < min) throw new RangeError('value is out of bounds')
7724 if (offset + ext
> buf.length) throw new RangeError('index out of range')
7727 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
7730 byteLength = byteLength |
0
7731 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
7735 this[offset] = value &
0xFF
7736 while (++i < byteLength && (mul *=
0x100)) {
7737 this[offset + i] = (value / mul) &
0xFF
7740 return offset + byteLength
7743 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
7746 byteLength = byteLength |
0
7747 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
7749 var i = byteLength -
1
7751 this[offset + i] = value &
0xFF
7752 while (--i
>=
0 && (mul *=
0x100)) {
7753 this[offset + i] = (value / mul) &
0xFF
7756 return offset + byteLength
7759 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
7762 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
7763 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
7764 this[offset] = value
7768 function objectWriteUInt16 (buf, value, offset, littleEndian) {
7769 if (value <
0) value =
0xffff + value +
1
7770 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
7771 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
7772 (littleEndian ? i :
1 - i) *
8
7776 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
7779 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
7780 if (Buffer.TYPED_ARRAY_SUPPORT) {
7781 this[offset] = value
7782 this[offset +
1] = (value
>>> 8)
7784 objectWriteUInt16(this, value, offset, true)
7789 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
7792 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
7793 if (Buffer.TYPED_ARRAY_SUPPORT) {
7794 this[offset] = (value
>>> 8)
7795 this[offset +
1] = value
7797 objectWriteUInt16(this, value, offset, false)
7802 function objectWriteUInt32 (buf, value, offset, littleEndian) {
7803 if (value <
0) value =
0xffffffff + value +
1
7804 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
7805 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
7809 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
7812 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
7813 if (Buffer.TYPED_ARRAY_SUPPORT) {
7814 this[offset +
3] = (value
>>> 24)
7815 this[offset +
2] = (value
>>> 16)
7816 this[offset +
1] = (value
>>> 8)
7817 this[offset] = value
7819 objectWriteUInt32(this, value, offset, true)
7824 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
7827 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
7828 if (Buffer.TYPED_ARRAY_SUPPORT) {
7829 this[offset] = (value
>>> 24)
7830 this[offset +
1] = (value
>>> 16)
7831 this[offset +
2] = (value
>>> 8)
7832 this[offset +
3] = value
7834 objectWriteUInt32(this, value, offset, false)
7839 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
7843 var limit = Math.pow(
2,
8 * byteLength -
1)
7845 checkInt(this, value, offset, byteLength, limit -
1, -limit)
7850 var sub = value <
0 ?
1 :
0
7851 this[offset] = value &
0xFF
7852 while (++i < byteLength && (mul *=
0x100)) {
7853 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
7856 return offset + byteLength
7859 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
7863 var limit = Math.pow(
2,
8 * byteLength -
1)
7865 checkInt(this, value, offset, byteLength, limit -
1, -limit)
7868 var i = byteLength -
1
7870 var sub = value <
0 ?
1 :
0
7871 this[offset + i] = value &
0xFF
7872 while (--i
>=
0 && (mul *=
0x100)) {
7873 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
7876 return offset + byteLength
7879 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
7882 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
7883 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
7884 if (value <
0) value =
0xff + value +
1
7885 this[offset] = value
7889 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
7892 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
7893 if (Buffer.TYPED_ARRAY_SUPPORT) {
7894 this[offset] = value
7895 this[offset +
1] = (value
>>> 8)
7897 objectWriteUInt16(this, value, offset, true)
7902 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
7905 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
7906 if (Buffer.TYPED_ARRAY_SUPPORT) {
7907 this[offset] = (value
>>> 8)
7908 this[offset +
1] = value
7910 objectWriteUInt16(this, value, offset, false)
7915 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
7918 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
7919 if (Buffer.TYPED_ARRAY_SUPPORT) {
7920 this[offset] = value
7921 this[offset +
1] = (value
>>> 8)
7922 this[offset +
2] = (value
>>> 16)
7923 this[offset +
3] = (value
>>> 24)
7925 objectWriteUInt32(this, value, offset, true)
7930 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
7933 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
7934 if (value <
0) value =
0xffffffff + value +
1
7935 if (Buffer.TYPED_ARRAY_SUPPORT) {
7936 this[offset] = (value
>>> 24)
7937 this[offset +
1] = (value
>>> 16)
7938 this[offset +
2] = (value
>>> 8)
7939 this[offset +
3] = value
7941 objectWriteUInt32(this, value, offset, false)
7946 function checkIEEE754 (buf, value, offset, ext, max, min) {
7947 if (value
> max || value < min) throw new RangeError('value is out of bounds')
7948 if (offset + ext
> buf.length) throw new RangeError('index out of range')
7949 if (offset <
0) throw new RangeError('index out of range')
7952 function writeFloat (buf, value, offset, littleEndian, noAssert) {
7954 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
7956 ieee754.write(buf, value, offset, littleEndian,
23,
4)
7960 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
7961 return writeFloat(this, value, offset, true, noAssert)
7964 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
7965 return writeFloat(this, value, offset, false, noAssert)
7968 function writeDouble (buf, value, offset, littleEndian, noAssert) {
7970 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
7972 ieee754.write(buf, value, offset, littleEndian,
52,
8)
7976 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
7977 return writeDouble(this, value, offset, true, noAssert)
7980 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
7981 return writeDouble(this, value, offset, false, noAssert)
7984 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
7985 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
7986 if (!start) start =
0
7987 if (!end && end !==
0) end = this.length
7988 if (targetStart
>= target.length) targetStart = target.length
7989 if (!targetStart) targetStart =
0
7990 if (end
> 0 && end < start) end = start
7992 // Copy
0 bytes; we're done
7993 if (end === start) return
0
7994 if (target.length ===
0 || this.length ===
0) return
0
7996 // Fatal error conditions
7997 if (targetStart <
0) {
7998 throw new RangeError('targetStart out of bounds')
8000 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
8001 if (end <
0) throw new RangeError('sourceEnd out of bounds')
8004 if (end
> this.length) end = this.length
8005 if (target.length - targetStart < end - start) {
8006 end = target.length - targetStart + start
8009 var len = end - start
8012 if (this === target && start < targetStart && targetStart < end) {
8013 // descending copy from end
8014 for (i = len -
1; i
>=
0; i--) {
8015 target[i + targetStart] = this[i + start]
8017 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
8018 // ascending copy from start
8019 for (i =
0; i < len; i++) {
8020 target[i + targetStart] = this[i + start]
8023 target._set(this.subarray(start, start + len), targetStart)
8029 // fill(value, start=
0, end=buffer.length)
8030 Buffer.prototype.fill = function fill (value, start, end) {
8031 if (!value) value =
0
8032 if (!start) start =
0
8033 if (!end) end = this.length
8035 if (end < start) throw new RangeError('end < start')
8037 // Fill
0 bytes; we're done
8038 if (end === start) return
8039 if (this.length ===
0) return
8041 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
8042 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
8045 if (typeof value === 'number') {
8046 for (i = start; i < end; i++) {
8050 var bytes = utf8ToBytes(value.toString())
8051 var len = bytes.length
8052 for (i = start; i < end; i++) {
8053 this[i] = bytes[i % len]
8061 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
8062 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
8064 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
8065 if (typeof Uint8Array !== 'undefined') {
8066 if (Buffer.TYPED_ARRAY_SUPPORT) {
8067 return (new Buffer(this)).buffer
8069 var buf = new Uint8Array(this.length)
8070 for (var i =
0, len = buf.length; i < len; i +=
1) {
8076 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
8083 var BP = Buffer.prototype
8086 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
8088 Buffer._augment = function _augment (arr) {
8089 arr.constructor = Buffer
8090 arr._isBuffer = true
8092 // save reference to original Uint8Array set method before overwriting
8099 arr.write = BP.write
8100 arr.toString = BP.toString
8101 arr.toLocaleString = BP.toString
8102 arr.toJSON = BP.toJSON
8103 arr.equals = BP.equals
8104 arr.compare = BP.compare
8105 arr.indexOf = BP.indexOf
8107 arr.slice = BP.slice
8108 arr.readUIntLE = BP.readUIntLE
8109 arr.readUIntBE = BP.readUIntBE
8110 arr.readUInt8 = BP.readUInt8
8111 arr.readUInt16LE = BP.readUInt16LE
8112 arr.readUInt16BE = BP.readUInt16BE
8113 arr.readUInt32LE = BP.readUInt32LE
8114 arr.readUInt32BE = BP.readUInt32BE
8115 arr.readIntLE = BP.readIntLE
8116 arr.readIntBE = BP.readIntBE
8117 arr.readInt8 = BP.readInt8
8118 arr.readInt16LE = BP.readInt16LE
8119 arr.readInt16BE = BP.readInt16BE
8120 arr.readInt32LE = BP.readInt32LE
8121 arr.readInt32BE = BP.readInt32BE
8122 arr.readFloatLE = BP.readFloatLE
8123 arr.readFloatBE = BP.readFloatBE
8124 arr.readDoubleLE = BP.readDoubleLE
8125 arr.readDoubleBE = BP.readDoubleBE
8126 arr.writeUInt8 = BP.writeUInt8
8127 arr.writeUIntLE = BP.writeUIntLE
8128 arr.writeUIntBE = BP.writeUIntBE
8129 arr.writeUInt16LE = BP.writeUInt16LE
8130 arr.writeUInt16BE = BP.writeUInt16BE
8131 arr.writeUInt32LE = BP.writeUInt32LE
8132 arr.writeUInt32BE = BP.writeUInt32BE
8133 arr.writeIntLE = BP.writeIntLE
8134 arr.writeIntBE = BP.writeIntBE
8135 arr.writeInt8 = BP.writeInt8
8136 arr.writeInt16LE = BP.writeInt16LE
8137 arr.writeInt16BE = BP.writeInt16BE
8138 arr.writeInt32LE = BP.writeInt32LE
8139 arr.writeInt32BE = BP.writeInt32BE
8140 arr.writeFloatLE = BP.writeFloatLE
8141 arr.writeFloatBE = BP.writeFloatBE
8142 arr.writeDoubleLE = BP.writeDoubleLE
8143 arr.writeDoubleBE = BP.writeDoubleBE
8145 arr.inspect = BP.inspect
8146 arr.toArrayBuffer = BP.toArrayBuffer
8151 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
8153 function base64clean (str) {
8154 // Node strips out invalid characters like \n and \t from the string, base64-js does not
8155 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
8156 // Node converts strings with length <
2 to ''
8157 if (str.length <
2) return ''
8158 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
8159 while (str.length %
4 !==
0) {
8165 function stringtrim (str) {
8166 if (str.trim) return str.trim()
8167 return str.replace(/^\s+|\s+$/g, '')
8170 function toHex (n) {
8171 if (n <
16) return '
0' + n.toString(
16)
8172 return n.toString(
16)
8175 function utf8ToBytes (string, units) {
8176 units = units || Infinity
8178 var length = string.length
8179 var leadSurrogate = null
8182 for (var i =
0; i < length; i++) {
8183 codePoint = string.charCodeAt(i)
8185 // is surrogate component
8186 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
8187 // last char was a lead
8188 if (!leadSurrogate) {
8190 if (codePoint
> 0xDBFF) {
8192 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8195 } else if (i +
1 === length) {
8197 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8202 leadSurrogate = codePoint
8208 if (codePoint <
0xDC00) {
8209 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8210 leadSurrogate = codePoint
8214 // valid surrogate pair
8215 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
8217 } else if (leadSurrogate) {
8218 // valid bmp char, but last char was a lead
8219 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8222 leadSurrogate = null
8225 if (codePoint <
0x80) {
8226 if ((units -=
1) <
0) break
8227 bytes.push(codePoint)
8228 } else if (codePoint <
0x800) {
8229 if ((units -=
2) <
0) break
8231 codePoint
>> 0x6 |
0xC0,
8232 codePoint &
0x3F |
0x80
8234 } else if (codePoint <
0x10000) {
8235 if ((units -=
3) <
0) break
8237 codePoint
>> 0xC |
0xE0,
8238 codePoint
>> 0x6 &
0x3F |
0x80,
8239 codePoint &
0x3F |
0x80
8241 } else if (codePoint <
0x110000) {
8242 if ((units -=
4) <
0) break
8244 codePoint
>> 0x12 |
0xF0,
8245 codePoint
>> 0xC &
0x3F |
0x80,
8246 codePoint
>> 0x6 &
0x3F |
0x80,
8247 codePoint &
0x3F |
0x80
8250 throw new Error('Invalid code point')
8257 function asciiToBytes (str) {
8259 for (var i =
0; i < str.length; i++) {
8260 // Node's code seems to be doing this and not &
0x7F..
8261 byteArray.push(str.charCodeAt(i) &
0xFF)
8266 function utf16leToBytes (str, units) {
8269 for (var i =
0; i < str.length; i++) {
8270 if ((units -=
2) <
0) break
8272 c = str.charCodeAt(i)
8282 function base64ToBytes (str) {
8283 return base64.toByteArray(base64clean(str))
8286 function blitBuffer (src, dst, offset, length) {
8287 for (var i =
0; i < length; i++) {
8288 if ((i + offset
>= dst.length) || (i
>= src.length)) break
8289 dst[i + offset] = src[i]
8294 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
8295 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
8297 ;(function (exports) {
8300 var Arr = (typeof Uint8Array !== 'undefined')
8304 var PLUS = '+'.charCodeAt(
0)
8305 var SLASH = '/'.charCodeAt(
0)
8306 var NUMBER = '
0'.charCodeAt(
0)
8307 var LOWER = 'a'.charCodeAt(
0)
8308 var UPPER = 'A'.charCodeAt(
0)
8309 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
8310 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
8312 function decode (elt) {
8313 var code = elt.charCodeAt(
0)
8314 if (code === PLUS ||
8315 code === PLUS_URL_SAFE)
8317 if (code === SLASH ||
8318 code === SLASH_URL_SAFE)
8321 return -
1 //no match
8322 if (code < NUMBER +
10)
8323 return code - NUMBER +
26 +
26
8324 if (code < UPPER +
26)
8326 if (code < LOWER +
26)
8327 return code - LOWER +
26
8330 function b64ToByteArray (b64) {
8331 var i, j, l, tmp, placeHolders, arr
8333 if (b64.length %
4 > 0) {
8334 throw new Error('Invalid string. Length must be a multiple of
4')
8337 // the number of equal signs (place holders)
8338 // if there are two placeholders, than the two characters before it
8339 // represent one byte
8340 // if there is only one, then the three characters before it represent
2 bytes
8341 // this is just a cheap hack to not do indexOf twice
8342 var len = b64.length
8343 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
8345 // base64 is
4/
3 + up to two characters of the original data
8346 arr = new Arr(b64.length *
3 /
4 - placeHolders)
8348 // if there are placeholders, only get up to the last complete
4 chars
8349 l = placeHolders
> 0 ? b64.length -
4 : b64.length
8357 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
8358 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
8359 push((tmp &
0xFF0000)
>> 16)
8360 push((tmp &
0xFF00)
>> 8)
8364 if (placeHolders ===
2) {
8365 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
8367 } else if (placeHolders ===
1) {
8368 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
8369 push((tmp
>> 8) &
0xFF)
8376 function uint8ToBase64 (uint8) {
8378 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
8382 function encode (num) {
8383 return lookup.charAt(num)
8386 function tripletToBase64 (num) {
8387 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
8390 // go through the array every three bytes, we'll deal with trailing stuff later
8391 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
8392 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
8393 output += tripletToBase64(temp)
8396 // pad the end with zeros, but make sure to not forget the extra bytes
8397 switch (extraBytes) {
8399 temp = uint8[uint8.length -
1]
8400 output += encode(temp
>> 2)
8401 output += encode((temp <<
4) &
0x3F)
8405 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
8406 output += encode(temp
>> 10)
8407 output += encode((temp
>> 4) &
0x3F)
8408 output += encode((temp <<
2) &
0x3F)
8416 exports.toByteArray = b64ToByteArray
8417 exports.fromByteArray = uint8ToBase64
8418 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
8420 },{}],
9:[function(require,module,exports){
8421 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
8423 var eLen = nBytes *
8 - mLen -
1
8424 var eMax = (
1 << eLen) -
1
8425 var eBias = eMax
>> 1
8427 var i = isLE ? (nBytes -
1) :
0
8428 var d = isLE ? -
1 :
1
8429 var s = buffer[offset + i]
8433 e = s & ((
1 << (-nBits)) -
1)
8436 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8438 m = e & ((
1 << (-nBits)) -
1)
8441 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8445 } else if (e === eMax) {
8446 return m ? NaN : ((s ? -
1 :
1) * Infinity)
8448 m = m + Math.pow(
2, mLen)
8451 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
8454 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
8456 var eLen = nBytes *
8 - mLen -
1
8457 var eMax = (
1 << eLen) -
1
8458 var eBias = eMax
>> 1
8459 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
8460 var i = isLE ?
0 : (nBytes -
1)
8461 var d = isLE ?
1 : -
1
8462 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
8464 value = Math.abs(value)
8466 if (isNaN(value) || value === Infinity) {
8467 m = isNaN(value) ?
1 :
0
8470 e = Math.floor(Math.log(value) / Math.LN2)
8471 if (value * (c = Math.pow(
2, -e)) <
1) {
8475 if (e + eBias
>=
1) {
8478 value += rt * Math.pow(
2,
1 - eBias)
8480 if (value * c
>=
2) {
8485 if (e + eBias
>= eMax) {
8488 } else if (e + eBias
>=
1) {
8489 m = (value * c -
1) * Math.pow(
2, mLen)
8492 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
8497 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
8501 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
8503 buffer[offset + i - d] |= s *
128
8506 },{}],
10:[function(require,module,exports){
8512 var isArray = Array.isArray;
8518 var str = Object.prototype.toString;
8521 * Whether or not the given `val`
8528 * isArray(arguments);
8533 * @param {mixed} val
8537 module.exports = isArray || function (val) {
8538 return !! val && '[object Array]' == str.call(val);
8541 },{}],
11:[function(require,module,exports){
8542 // Copyright Joyent, Inc. and other Node contributors.
8544 // Permission is hereby granted, free of charge, to any person obtaining a
8545 // copy of this software and associated documentation files (the
8546 // "Software"), to deal in the Software without restriction, including
8547 // without limitation the rights to use, copy, modify, merge, publish,
8548 // distribute, sublicense, and/or sell copies of the Software, and to permit
8549 // persons to whom the Software is furnished to do so, subject to the
8550 // following conditions:
8552 // The above copyright notice and this permission notice shall be included
8553 // in all copies or substantial portions of the Software.
8555 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
8556 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
8557 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
8558 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
8559 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
8560 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
8561 // USE OR OTHER DEALINGS IN THE SOFTWARE.
8563 function EventEmitter() {
8564 this._events = this._events || {};
8565 this._maxListeners = this._maxListeners || undefined;
8567 module.exports = EventEmitter;
8569 // Backwards-compat with node
0.10.x
8570 EventEmitter.EventEmitter = EventEmitter;
8572 EventEmitter.prototype._events = undefined;
8573 EventEmitter.prototype._maxListeners = undefined;
8575 // By default EventEmitters will print a warning if more than
10 listeners are
8576 // added to it. This is a useful default which helps finding memory leaks.
8577 EventEmitter.defaultMaxListeners =
10;
8579 // Obviously not all Emitters should be limited to
10. This function allows
8580 // that to be increased. Set to zero for unlimited.
8581 EventEmitter.prototype.setMaxListeners = function(n) {
8582 if (!isNumber(n) || n <
0 || isNaN(n))
8583 throw TypeError('n must be a positive number');
8584 this._maxListeners = n;
8588 EventEmitter.prototype.emit = function(type) {
8589 var er, handler, len, args, i, listeners;
8594 // If there is no 'error' event listener then throw.
8595 if (type === 'error') {
8596 if (!this._events.error ||
8597 (isObject(this._events.error) && !this._events.error.length)) {
8599 if (er instanceof Error) {
8600 throw er; // Unhandled 'error' event
8602 throw TypeError('Uncaught, unspecified "error" event.');
8606 handler = this._events[type];
8608 if (isUndefined(handler))
8611 if (isFunction(handler)) {
8612 switch (arguments.length) {
8618 handler.call(this, arguments[
1]);
8621 handler.call(this, arguments[
1], arguments[
2]);
8625 len = arguments.length;
8626 args = new Array(len -
1);
8627 for (i =
1; i < len; i++)
8628 args[i -
1] = arguments[i];
8629 handler.apply(this, args);
8631 } else if (isObject(handler)) {
8632 len = arguments.length;
8633 args = new Array(len -
1);
8634 for (i =
1; i < len; i++)
8635 args[i -
1] = arguments[i];
8637 listeners = handler.slice();
8638 len = listeners.length;
8639 for (i =
0; i < len; i++)
8640 listeners[i].apply(this, args);
8646 EventEmitter.prototype.addListener = function(type, listener) {
8649 if (!isFunction(listener))
8650 throw TypeError('listener must be a function');
8655 // To avoid recursion in the case that type === "newListener"! Before
8656 // adding it to the listeners, first emit "newListener".
8657 if (this._events.newListener)
8658 this.emit('newListener', type,
8659 isFunction(listener.listener) ?
8660 listener.listener : listener);
8662 if (!this._events[type])
8663 // Optimize the case of one listener. Don't need the extra array object.
8664 this._events[type] = listener;
8665 else if (isObject(this._events[type]))
8666 // If we've already got an array, just append.
8667 this._events[type].push(listener);
8669 // Adding the second element, need to change to array.
8670 this._events[type] = [this._events[type], listener];
8672 // Check for listener leak
8673 if (isObject(this._events[type]) && !this._events[type].warned) {
8675 if (!isUndefined(this._maxListeners)) {
8676 m = this._maxListeners;
8678 m = EventEmitter.defaultMaxListeners;
8681 if (m && m
> 0 && this._events[type].length
> m) {
8682 this._events[type].warned = true;
8683 console.error('(node) warning: possible EventEmitter memory ' +
8684 'leak detected. %d listeners added. ' +
8685 'Use emitter.setMaxListeners() to increase limit.',
8686 this._events[type].length);
8687 if (typeof console.trace === 'function') {
8688 // not supported in IE
10
8697 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
8699 EventEmitter.prototype.once = function(type, listener) {
8700 if (!isFunction(listener))
8701 throw TypeError('listener must be a function');
8706 this.removeListener(type, g);
8710 listener.apply(this, arguments);
8714 g.listener = listener;
8720 // emits a 'removeListener' event iff the listener was removed
8721 EventEmitter.prototype.removeListener = function(type, listener) {
8722 var list, position, length, i;
8724 if (!isFunction(listener))
8725 throw TypeError('listener must be a function');
8727 if (!this._events || !this._events[type])
8730 list = this._events[type];
8731 length = list.length;
8734 if (list === listener ||
8735 (isFunction(list.listener) && list.listener === listener)) {
8736 delete this._events[type];
8737 if (this._events.removeListener)
8738 this.emit('removeListener', type, listener);
8740 } else if (isObject(list)) {
8741 for (i = length; i--
> 0;) {
8742 if (list[i] === listener ||
8743 (list[i].listener && list[i].listener === listener)) {
8752 if (list.length ===
1) {
8754 delete this._events[type];
8756 list.splice(position,
1);
8759 if (this._events.removeListener)
8760 this.emit('removeListener', type, listener);
8766 EventEmitter.prototype.removeAllListeners = function(type) {
8772 // not listening for removeListener, no need to emit
8773 if (!this._events.removeListener) {
8774 if (arguments.length ===
0)
8776 else if (this._events[type])
8777 delete this._events[type];
8781 // emit removeListener for all listeners on all events
8782 if (arguments.length ===
0) {
8783 for (key in this._events) {
8784 if (key === 'removeListener') continue;
8785 this.removeAllListeners(key);
8787 this.removeAllListeners('removeListener');
8792 listeners = this._events[type];
8794 if (isFunction(listeners)) {
8795 this.removeListener(type, listeners);
8798 while (listeners.length)
8799 this.removeListener(type, listeners[listeners.length -
1]);
8801 delete this._events[type];
8806 EventEmitter.prototype.listeners = function(type) {
8808 if (!this._events || !this._events[type])
8810 else if (isFunction(this._events[type]))
8811 ret = [this._events[type]];
8813 ret = this._events[type].slice();
8817 EventEmitter.listenerCount = function(emitter, type) {
8819 if (!emitter._events || !emitter._events[type])
8821 else if (isFunction(emitter._events[type]))
8824 ret = emitter._events[type].length;
8828 function isFunction(arg) {
8829 return typeof arg === 'function';
8832 function isNumber(arg) {
8833 return typeof arg === 'number';
8836 function isObject(arg) {
8837 return typeof arg === 'object' && arg !== null;
8840 function isUndefined(arg) {
8841 return arg === void
0;
8844 },{}],
12:[function(require,module,exports){
8845 if (typeof Object.create === 'function') {
8846 // implementation from standard node.js 'util' module
8847 module.exports = function inherits(ctor, superCtor) {
8848 ctor.super_ = superCtor
8849 ctor.prototype = Object.create(superCtor.prototype, {
8859 // old school shim for old browsers
8860 module.exports = function inherits(ctor, superCtor) {
8861 ctor.super_ = superCtor
8862 var TempCtor = function () {}
8863 TempCtor.prototype = superCtor.prototype
8864 ctor.prototype = new TempCtor()
8865 ctor.prototype.constructor = ctor
8869 },{}],
13:[function(require,module,exports){
8870 module.exports = Array.isArray || function (arr) {
8871 return Object.prototype.toString.call(arr) == '[object Array]';
8874 },{}],
14:[function(require,module,exports){
8875 // shim for using process in browser
8877 var process = module.exports = {};
8879 var draining = false;
8881 var queueIndex = -
1;
8883 function cleanUpNextTick() {
8885 if (currentQueue.length) {
8886 queue = currentQueue.concat(queue);
8895 function drainQueue() {
8899 var timeout = setTimeout(cleanUpNextTick);
8902 var len = queue.length;
8904 currentQueue = queue;
8906 while (++queueIndex < len) {
8907 currentQueue[queueIndex].run();
8912 currentQueue = null;
8914 clearTimeout(timeout);
8917 process.nextTick = function (fun) {
8918 var args = new Array(arguments.length -
1);
8919 if (arguments.length
> 1) {
8920 for (var i =
1; i < arguments.length; i++) {
8921 args[i -
1] = arguments[i];
8924 queue.push(new Item(fun, args));
8925 if (queue.length ===
1 && !draining) {
8926 setTimeout(drainQueue,
0);
8930 // v8 likes predictible objects
8931 function Item(fun, array) {
8935 Item.prototype.run = function () {
8936 this.fun.apply(null, this.array);
8938 process.title = 'browser';
8939 process.browser = true;
8942 process.version = ''; // empty string to avoid regexp issues
8943 process.versions = {};
8948 process.addListener = noop;
8949 process.once = noop;
8951 process.removeListener = noop;
8952 process.removeAllListeners = noop;
8953 process.emit = noop;
8955 process.binding = function (name) {
8956 throw new Error('process.binding is not supported');
8960 process.cwd = function () { return '/' };
8961 process.chdir = function (dir) {
8962 throw new Error('process.chdir is not supported');
8964 process.umask = function() { return
0; };
8966 },{}],
15:[function(require,module,exports){
8967 module.exports = require(
"./lib/_stream_duplex.js")
8969 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
8970 (function (process){
8971 // Copyright Joyent, Inc. and other Node contributors.
8973 // Permission is hereby granted, free of charge, to any person obtaining a
8974 // copy of this software and associated documentation files (the
8975 //
"Software"), to deal in the Software without restriction, including
8976 // without limitation the rights to use, copy, modify, merge, publish,
8977 // distribute, sublicense, and/or sell copies of the Software, and to permit
8978 // persons to whom the Software is furnished to do so, subject to the
8979 // following conditions:
8981 // The above copyright notice and this permission notice shall be included
8982 // in all copies or substantial portions of the Software.
8984 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
8985 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
8986 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
8987 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
8988 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
8989 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
8990 // USE OR OTHER DEALINGS IN THE SOFTWARE.
8992 // a duplex stream is just a stream that is both readable and writable.
8993 // Since JS doesn't have multiple prototypal inheritance, this class
8994 // prototypally inherits from Readable, and then parasitically from
8997 module.exports = Duplex;
9000 var objectKeys = Object.keys || function (obj) {
9002 for (var key in obj) keys.push(key);
9009 var util = require('core-util-is');
9010 util.inherits = require('inherits');
9013 var Readable = require('./_stream_readable');
9014 var Writable = require('./_stream_writable');
9016 util.inherits(Duplex, Readable);
9018 forEach(objectKeys(Writable.prototype), function(method) {
9019 if (!Duplex.prototype[method])
9020 Duplex.prototype[method] = Writable.prototype[method];
9023 function Duplex(options) {
9024 if (!(this instanceof Duplex))
9025 return new Duplex(options);
9027 Readable.call(this, options);
9028 Writable.call(this, options);
9030 if (options && options.readable === false)
9031 this.readable = false;
9033 if (options && options.writable === false)
9034 this.writable = false;
9036 this.allowHalfOpen = true;
9037 if (options && options.allowHalfOpen === false)
9038 this.allowHalfOpen = false;
9040 this.once('end', onend);
9043 // the no-half-open enforcer
9045 // if we allow half-open state, or if the writable side ended,
9047 if (this.allowHalfOpen || this._writableState.ended)
9050 // no more data can be written.
9051 // But allow more writes to happen in this tick.
9052 process.nextTick(this.end.bind(this));
9055 function forEach (xs, f) {
9056 for (var i =
0, l = xs.length; i < l; i++) {
9061 }).call(this,require('_process'))
9062 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
9063 // Copyright Joyent, Inc. and other Node contributors.
9065 // Permission is hereby granted, free of charge, to any person obtaining a
9066 // copy of this software and associated documentation files (the
9067 // "Software"), to deal in the Software without restriction, including
9068 // without limitation the rights to use, copy, modify, merge, publish,
9069 // distribute, sublicense, and/or sell copies of the Software, and to permit
9070 // persons to whom the Software is furnished to do so, subject to the
9071 // following conditions:
9073 // The above copyright notice and this permission notice shall be included
9074 // in all copies or substantial portions of the Software.
9076 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9077 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9078 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9079 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9080 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9081 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9082 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9084 // a passthrough stream.
9085 // basically just the most minimal sort of Transform stream.
9086 // Every written chunk gets output as-is.
9088 module.exports = PassThrough;
9090 var Transform = require('./_stream_transform');
9093 var util = require('core-util-is');
9094 util.inherits = require('inherits');
9097 util.inherits(PassThrough, Transform);
9099 function PassThrough(options) {
9100 if (!(this instanceof PassThrough))
9101 return new PassThrough(options);
9103 Transform.call(this, options);
9106 PassThrough.prototype._transform = function(chunk, encoding, cb) {
9110 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
9111 (function (process){
9112 // Copyright Joyent, Inc. and other Node contributors.
9114 // Permission is hereby granted, free of charge, to any person obtaining a
9115 // copy of this software and associated documentation files (the
9116 // "Software"), to deal in the Software without restriction, including
9117 // without limitation the rights to use, copy, modify, merge, publish,
9118 // distribute, sublicense, and/or sell copies of the Software, and to permit
9119 // persons to whom the Software is furnished to do so, subject to the
9120 // following conditions:
9122 // The above copyright notice and this permission notice shall be included
9123 // in all copies or substantial portions of the Software.
9125 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9126 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9127 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9128 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9129 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9130 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9131 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9133 module.exports = Readable;
9136 var isArray = require('isarray');
9141 var Buffer = require('buffer').Buffer;
9144 Readable.ReadableState = ReadableState;
9146 var EE = require('events').EventEmitter;
9149 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
9150 return emitter.listeners(type).length;
9154 var Stream = require('stream');
9157 var util = require('core-util-is');
9158 util.inherits = require('inherits');
9165 var debug = require('util');
9166 if (debug && debug.debuglog) {
9167 debug = debug.debuglog('stream');
9169 debug = function () {};
9174 util.inherits(Readable, Stream);
9176 function ReadableState(options, stream) {
9177 var Duplex = require('./_stream_duplex');
9179 options = options || {};
9181 // the point at which it stops calling _read() to fill the buffer
9182 // Note:
0 is a valid value, means "don't call _read preemptively ever"
9183 var hwm = options.highWaterMark;
9184 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
9185 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
9188 this.highWaterMark = ~~this.highWaterMark;
9193 this.pipesCount =
0;
9194 this.flowing = null;
9196 this.endEmitted = false;
9197 this.reading = false;
9199 // a flag to be able to tell if the onwrite cb is called immediately,
9200 // or on a later tick. We set this to true at first, because any
9201 // actions that shouldn't happen until "later" should generally also
9202 // not happen before the first write call.
9205 // whenever we return null, then we set a flag to say
9206 // that we're awaiting a 'readable' event emission.
9207 this.needReadable = false;
9208 this.emittedReadable = false;
9209 this.readableListening = false;
9212 // object stream flag. Used to make read(n) ignore n and to
9213 // make all the buffer merging and length checks go away
9214 this.objectMode = !!options.objectMode;
9216 if (stream instanceof Duplex)
9217 this.objectMode = this.objectMode || !!options.readableObjectMode;
9219 // Crypto is kind of old and crusty. Historically, its default string
9220 // encoding is 'binary' so we have to make this configurable.
9221 // Everything else in the universe uses 'utf8', though.
9222 this.defaultEncoding = options.defaultEncoding || 'utf8';
9224 // when piping, we only care about 'readable' events that happen
9225 // after read()ing all the bytes and not getting any pushback.
9226 this.ranOut = false;
9228 // the number of writers that are awaiting a drain event in .pipe()s
9229 this.awaitDrain =
0;
9231 // if true, a maybeReadMore has been scheduled
9232 this.readingMore = false;
9234 this.decoder = null;
9235 this.encoding = null;
9236 if (options.encoding) {
9238 StringDecoder = require('string_decoder/').StringDecoder;
9239 this.decoder = new StringDecoder(options.encoding);
9240 this.encoding = options.encoding;
9244 function Readable(options) {
9245 var Duplex = require('./_stream_duplex');
9247 if (!(this instanceof Readable))
9248 return new Readable(options);
9250 this._readableState = new ReadableState(options, this);
9253 this.readable = true;
9258 // Manually shove something into the read() buffer.
9259 // This returns true if the highWaterMark has not been hit yet,
9260 // similar to how Writable.write() returns true if you should
9261 // write() some more.
9262 Readable.prototype.push = function(chunk, encoding) {
9263 var state = this._readableState;
9265 if (util.isString(chunk) && !state.objectMode) {
9266 encoding = encoding || state.defaultEncoding;
9267 if (encoding !== state.encoding) {
9268 chunk = new Buffer(chunk, encoding);
9273 return readableAddChunk(this, state, chunk, encoding, false);
9276 // Unshift should *always* be something directly out of read()
9277 Readable.prototype.unshift = function(chunk) {
9278 var state = this._readableState;
9279 return readableAddChunk(this, state, chunk, '', true);
9282 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
9283 var er = chunkInvalid(state, chunk);
9285 stream.emit('error', er);
9286 } else if (util.isNullOrUndefined(chunk)) {
9287 state.reading = false;
9289 onEofChunk(stream, state);
9290 } else if (state.objectMode || chunk && chunk.length
> 0) {
9291 if (state.ended && !addToFront) {
9292 var e = new Error('stream.push() after EOF');
9293 stream.emit('error', e);
9294 } else if (state.endEmitted && addToFront) {
9295 var e = new Error('stream.unshift() after end event');
9296 stream.emit('error', e);
9298 if (state.decoder && !addToFront && !encoding)
9299 chunk = state.decoder.write(chunk);
9302 state.reading = false;
9304 // if we want the data now, just emit it.
9305 if (state.flowing && state.length ===
0 && !state.sync) {
9306 stream.emit('data', chunk);
9309 // update the buffer info.
9310 state.length += state.objectMode ?
1 : chunk.length;
9312 state.buffer.unshift(chunk);
9314 state.buffer.push(chunk);
9316 if (state.needReadable)
9317 emitReadable(stream);
9320 maybeReadMore(stream, state);
9322 } else if (!addToFront) {
9323 state.reading = false;
9326 return needMoreData(state);
9331 // if it's past the high water mark, we can push in some more.
9332 // Also, if we have no data yet, we can stand some
9333 // more bytes. This is to work around cases where hwm=
0,
9334 // such as the repl. Also, if the push() triggered a
9335 // readable event, and the user called read(largeNumber) such that
9336 // needReadable was set, then we ought to push more, so that another
9337 // 'readable' event will be triggered.
9338 function needMoreData(state) {
9339 return !state.ended &&
9340 (state.needReadable ||
9341 state.length < state.highWaterMark ||
9342 state.length ===
0);
9345 // backwards compatibility.
9346 Readable.prototype.setEncoding = function(enc) {
9348 StringDecoder = require('string_decoder/').StringDecoder;
9349 this._readableState.decoder = new StringDecoder(enc);
9350 this._readableState.encoding = enc;
9354 // Don't raise the hwm
> 128MB
9355 var MAX_HWM =
0x800000;
9356 function roundUpToNextPowerOf2(n) {
9360 // Get the next highest power of
2
9362 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
9368 function howMuchToRead(n, state) {
9369 if (state.length ===
0 && state.ended)
9372 if (state.objectMode)
9373 return n ===
0 ?
0 :
1;
9375 if (isNaN(n) || util.isNull(n)) {
9376 // only flow one buffer at a time
9377 if (state.flowing && state.buffer.length)
9378 return state.buffer[
0].length;
9380 return state.length;
9386 // If we're asking for more than the target buffer level,
9387 // then raise the water mark. Bump up to the next highest
9388 // power of
2, to prevent increasing it excessively in tiny
9390 if (n
> state.highWaterMark)
9391 state.highWaterMark = roundUpToNextPowerOf2(n);
9393 // don't have that much. return null, unless we've ended.
9394 if (n
> state.length) {
9396 state.needReadable = true;
9399 return state.length;
9405 // you can override either this method, or the async _read(n) below.
9406 Readable.prototype.read = function(n) {
9408 var state = this._readableState;
9411 if (!util.isNumber(n) || n
> 0)
9412 state.emittedReadable = false;
9414 // if we're doing read(
0) to trigger a readable event, but we
9415 // already have a bunch of data in the buffer, then just trigger
9416 // the 'readable' event and move on.
9418 state.needReadable &&
9419 (state.length
>= state.highWaterMark || state.ended)) {
9420 debug('read: emitReadable', state.length, state.ended);
9421 if (state.length ===
0 && state.ended)
9428 n = howMuchToRead(n, state);
9430 // if we've ended, and we're now clear, then finish it up.
9431 if (n ===
0 && state.ended) {
9432 if (state.length ===
0)
9437 // All the actual chunk generation logic needs to be
9438 // *below* the call to _read. The reason is that in certain
9439 // synthetic stream cases, such as passthrough streams, _read
9440 // may be a completely synchronous operation which may change
9441 // the state of the read buffer, providing enough data when
9442 // before there was *not* enough.
9444 // So, the steps are:
9445 //
1. Figure out what the state of things will be after we do
9446 // a read from the buffer.
9448 //
2. If that resulting state will trigger a _read, then call _read.
9449 // Note that this may be asynchronous, or synchronous. Yes, it is
9450 // deeply ugly to write APIs this way, but that still doesn't mean
9451 // that the Readable class should behave improperly, as streams are
9452 // designed to be sync/async agnostic.
9453 // Take note if the _read call is sync or async (ie, if the read call
9454 // has returned yet), so that we know whether or not it's safe to emit
9457 //
3. Actually pull the requested chunks out of the buffer and return.
9459 // if we need a readable event, then we need to do some reading.
9460 var doRead = state.needReadable;
9461 debug('need readable', doRead);
9463 // if we currently have less than the highWaterMark, then also read some
9464 if (state.length ===
0 || state.length - n < state.highWaterMark) {
9466 debug('length less than watermark', doRead);
9469 // however, if we've ended, then there's no point, and if we're already
9470 // reading, then it's unnecessary.
9471 if (state.ended || state.reading) {
9473 debug('reading or ended', doRead);
9478 state.reading = true;
9480 // if the length is currently zero, then we *need* a readable event.
9481 if (state.length ===
0)
9482 state.needReadable = true;
9483 // call internal read method
9484 this._read(state.highWaterMark);
9488 // If _read pushed data synchronously, then `reading` will be false,
9489 // and we need to re-evaluate how much data we can return to the user.
9490 if (doRead && !state.reading)
9491 n = howMuchToRead(nOrig, state);
9495 ret = fromList(n, state);
9499 if (util.isNull(ret)) {
9500 state.needReadable = true;
9506 // If we have nothing in the buffer, then we want to know
9507 // as soon as we *do* get something into the buffer.
9508 if (state.length ===
0 && !state.ended)
9509 state.needReadable = true;
9511 // If we tried to read() past the EOF, then emit end on the next tick.
9512 if (nOrig !== n && state.ended && state.length ===
0)
9515 if (!util.isNull(ret))
9516 this.emit('data', ret);
9521 function chunkInvalid(state, chunk) {
9523 if (!util.isBuffer(chunk) &&
9524 !util.isString(chunk) &&
9525 !util.isNullOrUndefined(chunk) &&
9526 !state.objectMode) {
9527 er = new TypeError('Invalid non-string/buffer chunk');
9533 function onEofChunk(stream, state) {
9534 if (state.decoder && !state.ended) {
9535 var chunk = state.decoder.end();
9536 if (chunk && chunk.length) {
9537 state.buffer.push(chunk);
9538 state.length += state.objectMode ?
1 : chunk.length;
9543 // emit 'readable' now to make sure it gets picked up.
9544 emitReadable(stream);
9547 // Don't emit readable right away in sync mode, because this can trigger
9548 // another read() call =
> stack overflow. This way, it might trigger
9549 // a nextTick recursion warning, but that's not so bad.
9550 function emitReadable(stream) {
9551 var state = stream._readableState;
9552 state.needReadable = false;
9553 if (!state.emittedReadable) {
9554 debug('emitReadable', state.flowing);
9555 state.emittedReadable = true;
9557 process.nextTick(function() {
9558 emitReadable_(stream);
9561 emitReadable_(stream);
9565 function emitReadable_(stream) {
9566 debug('emit readable');
9567 stream.emit('readable');
9572 // at this point, the user has presumably seen the 'readable' event,
9573 // and called read() to consume some data. that may have triggered
9574 // in turn another _read(n) call, in which case reading = true if
9575 // it's in progress.
9576 // However, if we're not ended, or reading, and the length < hwm,
9577 // then go ahead and try to read some more preemptively.
9578 function maybeReadMore(stream, state) {
9579 if (!state.readingMore) {
9580 state.readingMore = true;
9581 process.nextTick(function() {
9582 maybeReadMore_(stream, state);
9587 function maybeReadMore_(stream, state) {
9588 var len = state.length;
9589 while (!state.reading && !state.flowing && !state.ended &&
9590 state.length < state.highWaterMark) {
9591 debug('maybeReadMore read
0');
9593 if (len === state.length)
9594 // didn't get any data, stop spinning.
9599 state.readingMore = false;
9602 // abstract method. to be overridden in specific implementation classes.
9603 // call cb(er, data) where data is <= n in length.
9604 // for virtual (non-string, non-buffer) streams, "length" is somewhat
9605 // arbitrary, and perhaps not very meaningful.
9606 Readable.prototype._read = function(n) {
9607 this.emit('error', new Error('not implemented'));
9610 Readable.prototype.pipe = function(dest, pipeOpts) {
9612 var state = this._readableState;
9614 switch (state.pipesCount) {
9619 state.pipes = [state.pipes, dest];
9622 state.pipes.push(dest);
9625 state.pipesCount +=
1;
9626 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
9628 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
9629 dest !== process.stdout &&
9630 dest !== process.stderr;
9632 var endFn = doEnd ? onend : cleanup;
9633 if (state.endEmitted)
9634 process.nextTick(endFn);
9636 src.once('end', endFn);
9638 dest.on('unpipe', onunpipe);
9639 function onunpipe(readable) {
9641 if (readable === src) {
9651 // when the dest drains, it reduces the awaitDrain counter
9652 // on the source. This would be more elegant with a .once()
9653 // handler in flow(), but adding and removing repeatedly is
9655 var ondrain = pipeOnDrain(src);
9656 dest.on('drain', ondrain);
9658 function cleanup() {
9660 // cleanup event handlers once the pipe is broken
9661 dest.removeListener('close', onclose);
9662 dest.removeListener('finish', onfinish);
9663 dest.removeListener('drain', ondrain);
9664 dest.removeListener('error', onerror);
9665 dest.removeListener('unpipe', onunpipe);
9666 src.removeListener('end', onend);
9667 src.removeListener('end', cleanup);
9668 src.removeListener('data', ondata);
9670 // if the reader is waiting for a drain event from this
9671 // specific writer, then it would cause it to never start
9673 // So, if this is awaiting a drain, then we just call it now.
9674 // If we don't know, then assume that we are waiting for one.
9675 if (state.awaitDrain &&
9676 (!dest._writableState || dest._writableState.needDrain))
9680 src.on('data', ondata);
9681 function ondata(chunk) {
9683 var ret = dest.write(chunk);
9684 if (false === ret) {
9685 debug('false write response, pause',
9686 src._readableState.awaitDrain);
9687 src._readableState.awaitDrain++;
9692 // if the dest has an error, then stop piping into it.
9693 // however, don't suppress the throwing behavior for this.
9694 function onerror(er) {
9695 debug('onerror', er);
9697 dest.removeListener('error', onerror);
9698 if (EE.listenerCount(dest, 'error') ===
0)
9699 dest.emit('error', er);
9701 // This is a brutally ugly hack to make sure that our error handler
9702 // is attached before any userland ones. NEVER DO THIS.
9703 if (!dest._events || !dest._events.error)
9704 dest.on('error', onerror);
9705 else if (isArray(dest._events.error))
9706 dest._events.error.unshift(onerror);
9708 dest._events.error = [onerror, dest._events.error];
9712 // Both close and finish should trigger unpipe, but only once.
9713 function onclose() {
9714 dest.removeListener('finish', onfinish);
9717 dest.once('close', onclose);
9718 function onfinish() {
9720 dest.removeListener('close', onclose);
9723 dest.once('finish', onfinish);
9730 // tell the dest that it's being piped to
9731 dest.emit('pipe', src);
9733 // start the flow if it hasn't been started already.
9734 if (!state.flowing) {
9735 debug('pipe resume');
9742 function pipeOnDrain(src) {
9744 var state = src._readableState;
9745 debug('pipeOnDrain', state.awaitDrain);
9746 if (state.awaitDrain)
9748 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
9749 state.flowing = true;
9756 Readable.prototype.unpipe = function(dest) {
9757 var state = this._readableState;
9759 // if we're not piping anywhere, then do nothing.
9760 if (state.pipesCount ===
0)
9763 // just one destination. most common case.
9764 if (state.pipesCount ===
1) {
9765 // passed in one, but it's not the right one.
9766 if (dest && dest !== state.pipes)
9774 state.pipesCount =
0;
9775 state.flowing = false;
9777 dest.emit('unpipe', this);
9781 // slow case. multiple pipe destinations.
9785 var dests = state.pipes;
9786 var len = state.pipesCount;
9788 state.pipesCount =
0;
9789 state.flowing = false;
9791 for (var i =
0; i < len; i++)
9792 dests[i].emit('unpipe', this);
9796 // try to find the right one.
9797 var i = indexOf(state.pipes, dest);
9801 state.pipes.splice(i,
1);
9802 state.pipesCount -=
1;
9803 if (state.pipesCount ===
1)
9804 state.pipes = state.pipes[
0];
9806 dest.emit('unpipe', this);
9811 // set up data events if they are asked for
9812 // Ensure readable listeners eventually get something
9813 Readable.prototype.on = function(ev, fn) {
9814 var res = Stream.prototype.on.call(this, ev, fn);
9816 // If listening to data, and it has not explicitly been paused,
9817 // then call resume to start the flow of data on the next tick.
9818 if (ev === 'data' && false !== this._readableState.flowing) {
9822 if (ev === 'readable' && this.readable) {
9823 var state = this._readableState;
9824 if (!state.readableListening) {
9825 state.readableListening = true;
9826 state.emittedReadable = false;
9827 state.needReadable = true;
9828 if (!state.reading) {
9830 process.nextTick(function() {
9831 debug('readable nexttick read
0');
9834 } else if (state.length) {
9835 emitReadable(this, state);
9842 Readable.prototype.addListener = Readable.prototype.on;
9844 // pause() and resume() are remnants of the legacy readable stream API
9845 // If the user uses them, then switch into old mode.
9846 Readable.prototype.resume = function() {
9847 var state = this._readableState;
9848 if (!state.flowing) {
9850 state.flowing = true;
9851 if (!state.reading) {
9852 debug('resume read
0');
9855 resume(this, state);
9860 function resume(stream, state) {
9861 if (!state.resumeScheduled) {
9862 state.resumeScheduled = true;
9863 process.nextTick(function() {
9864 resume_(stream, state);
9869 function resume_(stream, state) {
9870 state.resumeScheduled = false;
9871 stream.emit('resume');
9873 if (state.flowing && !state.reading)
9877 Readable.prototype.pause = function() {
9878 debug('call pause flowing=%j', this._readableState.flowing);
9879 if (false !== this._readableState.flowing) {
9881 this._readableState.flowing = false;
9887 function flow(stream) {
9888 var state = stream._readableState;
9889 debug('flow', state.flowing);
9890 if (state.flowing) {
9892 var chunk = stream.read();
9893 } while (null !== chunk && state.flowing);
9897 // wrap an old-style stream as the async data source.
9898 // This is *not* part of the readable stream interface.
9899 // It is an ugly unfortunate mess of history.
9900 Readable.prototype.wrap = function(stream) {
9901 var state = this._readableState;
9905 stream.on('end', function() {
9906 debug('wrapped end');
9907 if (state.decoder && !state.ended) {
9908 var chunk = state.decoder.end();
9909 if (chunk && chunk.length)
9916 stream.on('data', function(chunk) {
9917 debug('wrapped data');
9919 chunk = state.decoder.write(chunk);
9920 if (!chunk || !state.objectMode && !chunk.length)
9923 var ret = self.push(chunk);
9930 // proxy all the other methods.
9931 // important when wrapping filters and duplexes.
9932 for (var i in stream) {
9933 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
9934 this[i] = function(method) { return function() {
9935 return stream[method].apply(stream, arguments);
9940 // proxy certain important events.
9941 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
9942 forEach(events, function(ev) {
9943 stream.on(ev, self.emit.bind(self, ev));
9946 // when we try to consume some more bytes, simply unpause the
9947 // underlying stream.
9948 self._read = function(n) {
9949 debug('wrapped _read', n);
9961 // exposed for testing purposes only.
9962 Readable._fromList = fromList;
9964 // Pluck off n bytes from an array of buffers.
9965 // Length is the combined lengths of all the buffers in the list.
9966 function fromList(n, state) {
9967 var list = state.buffer;
9968 var length = state.length;
9969 var stringMode = !!state.decoder;
9970 var objectMode = !!state.objectMode;
9973 // nothing in the list, definitely empty.
9974 if (list.length ===
0)
9979 else if (objectMode)
9981 else if (!n || n
>= length) {
9982 // read it all, truncate the array.
9984 ret = list.join('');
9986 ret = Buffer.concat(list, length);
9989 // read just some of it.
9990 if (n < list[
0].length) {
9991 // just take a part of the first list item.
9992 // slice is the same for buffers and strings.
9994 ret = buf.slice(
0, n);
9995 list[
0] = buf.slice(n);
9996 } else if (n === list[
0].length) {
9997 // first list is a perfect match
10001 // we have enough to cover it, but it spans past the first buffer.
10005 ret = new Buffer(n);
10008 for (var i =
0, l = list.length; i < l && c < n; i++) {
10010 var cpy = Math.min(n - c, buf.length);
10013 ret += buf.slice(
0, cpy);
10015 buf.copy(ret, c,
0, cpy);
10017 if (cpy < buf.length)
10018 list[
0] = buf.slice(cpy);
10030 function endReadable(stream) {
10031 var state = stream._readableState;
10033 // If we get here before consuming all the bytes, then that is a
10034 // bug in node. Should never happen.
10035 if (state.length
> 0)
10036 throw new Error('endReadable called on non-empty stream');
10038 if (!state.endEmitted) {
10039 state.ended = true;
10040 process.nextTick(function() {
10041 // Check that we didn't get one last unshift.
10042 if (!state.endEmitted && state.length ===
0) {
10043 state.endEmitted = true;
10044 stream.readable = false;
10045 stream.emit('end');
10051 function forEach (xs, f) {
10052 for (var i =
0, l = xs.length; i < l; i++) {
10057 function indexOf (xs, x) {
10058 for (var i =
0, l = xs.length; i < l; i++) {
10059 if (xs[i] === x) return i;
10064 }).call(this,require('_process'))
10065 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"events":
11,
"inherits":
12,
"isarray":
13,
"stream":
26,
"string_decoder/":
27,
"util":
6}],
19:[function(require,module,exports){
10066 // Copyright Joyent, Inc. and other Node contributors.
10068 // Permission is hereby granted, free of charge, to any person obtaining a
10069 // copy of this software and associated documentation files (the
10070 //
"Software"), to deal in the Software without restriction, including
10071 // without limitation the rights to use, copy, modify, merge, publish,
10072 // distribute, sublicense, and/or sell copies of the Software, and to permit
10073 // persons to whom the Software is furnished to do so, subject to the
10074 // following conditions:
10076 // The above copyright notice and this permission notice shall be included
10077 // in all copies or substantial portions of the Software.
10079 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10080 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10081 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10082 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10083 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10084 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10085 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10088 // a transform stream is a readable/writable stream where you do
10089 // something with the data. Sometimes it's called a
"filter",
10090 // but that's not a great name for it, since that implies a thing where
10091 // some bits pass through, and others are simply ignored. (That would
10092 // be a valid example of a transform, of course.)
10094 // While the output is causally related to the input, it's not a
10095 // necessarily symmetric or synchronous transformation. For example,
10096 // a zlib stream might take multiple plain-text writes(), and then
10097 // emit a single compressed chunk some time in the future.
10099 // Here's how this works:
10101 // The Transform stream has all the aspects of the readable and writable
10102 // stream classes. When you write(chunk), that calls _write(chunk,cb)
10103 // internally, and returns false if there's a lot of pending writes
10104 // buffered up. When you call read(), that calls _read(n) until
10105 // there's enough pending readable data buffered up.
10107 // In a transform stream, the written data is placed in a buffer. When
10108 // _read(n) is called, it transforms the queued up data, calling the
10109 // buffered _write cb's as it consumes chunks. If consuming a single
10110 // written chunk would result in multiple output chunks, then the first
10111 // outputted bit calls the readcb, and subsequent chunks just go into
10112 // the read buffer, and will cause it to emit 'readable' if necessary.
10114 // This way, back-pressure is actually determined by the reading side,
10115 // since _read has to be called to start processing a new chunk. However,
10116 // a pathological inflate type of transform can cause excessive buffering
10117 // here. For example, imagine a stream where every byte of input is
10118 // interpreted as an integer from
0-
255, and then results in that many
10119 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
10120 //
1kb of data being output. In this case, you could write a very small
10121 // amount of input, and end up with a very large amount of output. In
10122 // such a pathological inflating mechanism, there'd be no way to tell
10123 // the system to stop doing the transform. A single
4MB write could
10124 // cause the system to run out of memory.
10126 // However, even in such a pathological case, only a single written chunk
10127 // would be consumed, and then the rest would wait (un-transformed) until
10128 // the results of the previous transformed chunk were consumed.
10130 module.exports = Transform;
10132 var Duplex = require('./_stream_duplex');
10135 var util = require('core-util-is');
10136 util.inherits = require('inherits');
10139 util.inherits(Transform, Duplex);
10142 function TransformState(options, stream) {
10143 this.afterTransform = function(er, data) {
10144 return afterTransform(stream, er, data);
10147 this.needTransform = false;
10148 this.transforming = false;
10149 this.writecb = null;
10150 this.writechunk = null;
10153 function afterTransform(stream, er, data) {
10154 var ts = stream._transformState;
10155 ts.transforming = false;
10157 var cb = ts.writecb;
10160 return stream.emit('error', new Error('no writecb in Transform class'));
10162 ts.writechunk = null;
10165 if (!util.isNullOrUndefined(data))
10171 var rs = stream._readableState;
10172 rs.reading = false;
10173 if (rs.needReadable || rs.length < rs.highWaterMark) {
10174 stream._read(rs.highWaterMark);
10179 function Transform(options) {
10180 if (!(this instanceof Transform))
10181 return new Transform(options);
10183 Duplex.call(this, options);
10185 this._transformState = new TransformState(options, this);
10187 // when the writable side finishes, then flush out anything remaining.
10190 // start out asking for a readable event once data is transformed.
10191 this._readableState.needReadable = true;
10193 // we have implemented the _read method, and done the other things
10194 // that Readable wants before the first _read call, so unset the
10195 // sync guard flag.
10196 this._readableState.sync = false;
10198 this.once('prefinish', function() {
10199 if (util.isFunction(this._flush))
10200 this._flush(function(er) {
10208 Transform.prototype.push = function(chunk, encoding) {
10209 this._transformState.needTransform = false;
10210 return Duplex.prototype.push.call(this, chunk, encoding);
10213 // This is the part where you do stuff!
10214 // override this function in implementation classes.
10215 // 'chunk' is an input chunk.
10217 // Call `push(newChunk)` to pass along transformed output
10218 // to the readable side. You may call 'push' zero or more times.
10220 // Call `cb(err)` when you are done with this chunk. If you pass
10221 // an error, then that'll put the hurt on the whole operation. If you
10222 // never call cb(), then you'll never get another chunk.
10223 Transform.prototype._transform = function(chunk, encoding, cb) {
10224 throw new Error('not implemented');
10227 Transform.prototype._write = function(chunk, encoding, cb) {
10228 var ts = this._transformState;
10230 ts.writechunk = chunk;
10231 ts.writeencoding = encoding;
10232 if (!ts.transforming) {
10233 var rs = this._readableState;
10234 if (ts.needTransform ||
10236 rs.length < rs.highWaterMark)
10237 this._read(rs.highWaterMark);
10241 // Doesn't matter what the args are here.
10242 // _transform does all the work.
10243 // That we got here means that the readable side wants more data.
10244 Transform.prototype._read = function(n) {
10245 var ts = this._transformState;
10247 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
10248 ts.transforming = true;
10249 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
10251 // mark that we need a transform, so that any data that comes in
10252 // will get processed, now that we've asked for it.
10253 ts.needTransform = true;
10258 function done(stream, er) {
10260 return stream.emit('error', er);
10262 // if there's nothing in the write buffer, then that means
10263 // that nothing more will ever be provided
10264 var ws = stream._writableState;
10265 var ts = stream._transformState;
10268 throw new Error('calling transform done when ws.length !=
0');
10270 if (ts.transforming)
10271 throw new Error('calling transform done when still transforming');
10273 return stream.push(null);
10276 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
10277 (function (process){
10278 // Copyright Joyent, Inc. and other Node contributors.
10280 // Permission is hereby granted, free of charge, to any person obtaining a
10281 // copy of this software and associated documentation files (the
10282 // "Software"), to deal in the Software without restriction, including
10283 // without limitation the rights to use, copy, modify, merge, publish,
10284 // distribute, sublicense, and/or sell copies of the Software, and to permit
10285 // persons to whom the Software is furnished to do so, subject to the
10286 // following conditions:
10288 // The above copyright notice and this permission notice shall be included
10289 // in all copies or substantial portions of the Software.
10291 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10292 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10293 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10294 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10295 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10296 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10297 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10299 // A bit simpler than readable streams.
10300 // Implement an async ._write(chunk, cb), and it'll handle all
10301 // the drain event emission and buffering.
10303 module.exports = Writable;
10306 var Buffer = require('buffer').Buffer;
10309 Writable.WritableState = WritableState;
10313 var util = require('core-util-is');
10314 util.inherits = require('inherits');
10317 var Stream = require('stream');
10319 util.inherits(Writable, Stream);
10321 function WriteReq(chunk, encoding, cb) {
10322 this.chunk = chunk;
10323 this.encoding = encoding;
10324 this.callback = cb;
10327 function WritableState(options, stream) {
10328 var Duplex = require('./_stream_duplex');
10330 options = options || {};
10332 // the point at which write() starts returning false
10333 // Note:
0 is a valid value, means that we always return false if
10334 // the entire buffer is not flushed immediately on write()
10335 var hwm = options.highWaterMark;
10336 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
10337 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
10339 // object stream flag to indicate whether or not this stream
10340 // contains buffers or objects.
10341 this.objectMode = !!options.objectMode;
10343 if (stream instanceof Duplex)
10344 this.objectMode = this.objectMode || !!options.writableObjectMode;
10347 this.highWaterMark = ~~this.highWaterMark;
10349 this.needDrain = false;
10350 // at the start of calling end()
10351 this.ending = false;
10352 // when end() has been called, and returned
10353 this.ended = false;
10354 // when 'finish' is emitted
10355 this.finished = false;
10357 // should we decode strings into buffers before passing to _write?
10358 // this is here so that some node-core streams can optimize string
10359 // handling at a lower level.
10360 var noDecode = options.decodeStrings === false;
10361 this.decodeStrings = !noDecode;
10363 // Crypto is kind of old and crusty. Historically, its default string
10364 // encoding is 'binary' so we have to make this configurable.
10365 // Everything else in the universe uses 'utf8', though.
10366 this.defaultEncoding = options.defaultEncoding || 'utf8';
10368 // not an actual buffer we keep track of, but a measurement
10369 // of how much we're waiting to get pushed to some underlying
10373 // a flag to see when we're in the middle of a write.
10374 this.writing = false;
10376 // when true all writes will be buffered until .uncork() call
10379 // a flag to be able to tell if the onwrite cb is called immediately,
10380 // or on a later tick. We set this to true at first, because any
10381 // actions that shouldn't happen until "later" should generally also
10382 // not happen before the first write call.
10385 // a flag to know if we're processing previously buffered items, which
10386 // may call the _write() callback in the same tick, so that we don't
10387 // end up in an overlapped onwrite situation.
10388 this.bufferProcessing = false;
10390 // the callback that's passed to _write(chunk,cb)
10391 this.onwrite = function(er) {
10392 onwrite(stream, er);
10395 // the callback that the user supplies to write(chunk,encoding,cb)
10396 this.writecb = null;
10398 // the amount that is being written when _write is called.
10403 // number of pending user-supplied write callbacks
10404 // this must be
0 before 'finish' can be emitted
10405 this.pendingcb =
0;
10407 // emit prefinish if the only thing we're waiting for is _write cbs
10408 // This is relevant for synchronous Transform streams
10409 this.prefinished = false;
10411 // True if the error was already emitted and should not be thrown again
10412 this.errorEmitted = false;
10415 function Writable(options) {
10416 var Duplex = require('./_stream_duplex');
10418 // Writable ctor is applied to Duplexes, though they're not
10419 // instanceof Writable, they're instanceof Readable.
10420 if (!(this instanceof Writable) && !(this instanceof Duplex))
10421 return new Writable(options);
10423 this._writableState = new WritableState(options, this);
10426 this.writable = true;
10431 // Otherwise people can pipe Writable streams, which is just wrong.
10432 Writable.prototype.pipe = function() {
10433 this.emit('error', new Error('Cannot pipe. Not readable.'));
10437 function writeAfterEnd(stream, state, cb) {
10438 var er = new Error('write after end');
10439 // TODO: defer error events consistently everywhere, not just the cb
10440 stream.emit('error', er);
10441 process.nextTick(function() {
10446 // If we get something that is not a buffer, string, null, or undefined,
10447 // and we're not in objectMode, then that's an error.
10448 // Otherwise stream chunks are all considered to be of length=
1, and the
10449 // watermarks determine how many objects to keep in the buffer, rather than
10450 // how many bytes or characters.
10451 function validChunk(stream, state, chunk, cb) {
10453 if (!util.isBuffer(chunk) &&
10454 !util.isString(chunk) &&
10455 !util.isNullOrUndefined(chunk) &&
10456 !state.objectMode) {
10457 var er = new TypeError('Invalid non-string/buffer chunk');
10458 stream.emit('error', er);
10459 process.nextTick(function() {
10467 Writable.prototype.write = function(chunk, encoding, cb) {
10468 var state = this._writableState;
10471 if (util.isFunction(encoding)) {
10476 if (util.isBuffer(chunk))
10477 encoding = 'buffer';
10478 else if (!encoding)
10479 encoding = state.defaultEncoding;
10481 if (!util.isFunction(cb))
10482 cb = function() {};
10485 writeAfterEnd(this, state, cb);
10486 else if (validChunk(this, state, chunk, cb)) {
10488 ret = writeOrBuffer(this, state, chunk, encoding, cb);
10494 Writable.prototype.cork = function() {
10495 var state = this._writableState;
10500 Writable.prototype.uncork = function() {
10501 var state = this._writableState;
10503 if (state.corked) {
10506 if (!state.writing &&
10509 !state.bufferProcessing &&
10510 state.buffer.length)
10511 clearBuffer(this, state);
10515 function decodeChunk(state, chunk, encoding) {
10516 if (!state.objectMode &&
10517 state.decodeStrings !== false &&
10518 util.isString(chunk)) {
10519 chunk = new Buffer(chunk, encoding);
10524 // if we're already writing something, then just put this
10525 // in the queue, and wait our turn. Otherwise, call _write
10526 // If we return false, then we need a drain event, so set that flag.
10527 function writeOrBuffer(stream, state, chunk, encoding, cb) {
10528 chunk = decodeChunk(state, chunk, encoding);
10529 if (util.isBuffer(chunk))
10530 encoding = 'buffer';
10531 var len = state.objectMode ?
1 : chunk.length;
10533 state.length += len;
10535 var ret = state.length < state.highWaterMark;
10536 // we must ensure that previous needDrain will not be reset to false.
10538 state.needDrain = true;
10540 if (state.writing || state.corked)
10541 state.buffer.push(new WriteReq(chunk, encoding, cb));
10543 doWrite(stream, state, false, len, chunk, encoding, cb);
10548 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
10549 state.writelen = len;
10550 state.writecb = cb;
10551 state.writing = true;
10554 stream._writev(chunk, state.onwrite);
10556 stream._write(chunk, encoding, state.onwrite);
10557 state.sync = false;
10560 function onwriteError(stream, state, sync, er, cb) {
10562 process.nextTick(function() {
10571 stream._writableState.errorEmitted = true;
10572 stream.emit('error', er);
10575 function onwriteStateUpdate(state) {
10576 state.writing = false;
10577 state.writecb = null;
10578 state.length -= state.writelen;
10579 state.writelen =
0;
10582 function onwrite(stream, er) {
10583 var state = stream._writableState;
10584 var sync = state.sync;
10585 var cb = state.writecb;
10587 onwriteStateUpdate(state);
10590 onwriteError(stream, state, sync, er, cb);
10592 // Check if we're actually ready to finish, but don't emit yet
10593 var finished = needFinish(stream, state);
10597 !state.bufferProcessing &&
10598 state.buffer.length) {
10599 clearBuffer(stream, state);
10603 process.nextTick(function() {
10604 afterWrite(stream, state, finished, cb);
10607 afterWrite(stream, state, finished, cb);
10612 function afterWrite(stream, state, finished, cb) {
10614 onwriteDrain(stream, state);
10617 finishMaybe(stream, state);
10620 // Must force callback to be called on nextTick, so that we don't
10621 // emit 'drain' before the write() consumer gets the 'false' return
10622 // value, and has a chance to attach a 'drain' listener.
10623 function onwriteDrain(stream, state) {
10624 if (state.length ===
0 && state.needDrain) {
10625 state.needDrain = false;
10626 stream.emit('drain');
10631 // if there's something in the buffer waiting, then process it
10632 function clearBuffer(stream, state) {
10633 state.bufferProcessing = true;
10635 if (stream._writev && state.buffer.length
> 1) {
10636 // Fast case, write everything using _writev()
10638 for (var c =
0; c < state.buffer.length; c++)
10639 cbs.push(state.buffer[c].callback);
10641 // count the one we are adding, as well.
10642 // TODO(isaacs) clean this up
10644 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
10645 for (var i =
0; i < cbs.length; i++) {
10654 // Slow case, write chunks one-by-one
10655 for (var c =
0; c < state.buffer.length; c++) {
10656 var entry = state.buffer[c];
10657 var chunk = entry.chunk;
10658 var encoding = entry.encoding;
10659 var cb = entry.callback;
10660 var len = state.objectMode ?
1 : chunk.length;
10662 doWrite(stream, state, false, len, chunk, encoding, cb);
10664 // if we didn't call the onwrite immediately, then
10665 // it means that we need to wait until it does.
10666 // also, that means that the chunk and cb are currently
10667 // being processed, so move the buffer counter past them.
10668 if (state.writing) {
10674 if (c < state.buffer.length)
10675 state.buffer = state.buffer.slice(c);
10677 state.buffer.length =
0;
10680 state.bufferProcessing = false;
10683 Writable.prototype._write = function(chunk, encoding, cb) {
10684 cb(new Error('not implemented'));
10688 Writable.prototype._writev = null;
10690 Writable.prototype.end = function(chunk, encoding, cb) {
10691 var state = this._writableState;
10693 if (util.isFunction(chunk)) {
10697 } else if (util.isFunction(encoding)) {
10702 if (!util.isNullOrUndefined(chunk))
10703 this.write(chunk, encoding);
10705 // .end() fully uncorks
10706 if (state.corked) {
10711 // ignore unnecessary end() calls.
10712 if (!state.ending && !state.finished)
10713 endWritable(this, state, cb);
10717 function needFinish(stream, state) {
10718 return (state.ending &&
10719 state.length ===
0 &&
10724 function prefinish(stream, state) {
10725 if (!state.prefinished) {
10726 state.prefinished = true;
10727 stream.emit('prefinish');
10731 function finishMaybe(stream, state) {
10732 var need = needFinish(stream, state);
10734 if (state.pendingcb ===
0) {
10735 prefinish(stream, state);
10736 state.finished = true;
10737 stream.emit('finish');
10739 prefinish(stream, state);
10744 function endWritable(stream, state, cb) {
10745 state.ending = true;
10746 finishMaybe(stream, state);
10748 if (state.finished)
10749 process.nextTick(cb);
10751 stream.once('finish', cb);
10753 state.ended = true;
10756 }).call(this,require('_process'))
10757 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
10758 (function (Buffer){
10759 // Copyright Joyent, Inc. and other Node contributors.
10761 // Permission is hereby granted, free of charge, to any person obtaining a
10762 // copy of this software and associated documentation files (the
10763 //
"Software"), to deal in the Software without restriction, including
10764 // without limitation the rights to use, copy, modify, merge, publish,
10765 // distribute, sublicense, and/or sell copies of the Software, and to permit
10766 // persons to whom the Software is furnished to do so, subject to the
10767 // following conditions:
10769 // The above copyright notice and this permission notice shall be included
10770 // in all copies or substantial portions of the Software.
10772 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10773 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10774 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10775 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10776 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10777 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10778 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10780 // NOTE: These type checking functions intentionally don't use `instanceof`
10781 // because it is fragile and can be easily faked with `Object.create()`.
10782 function isArray(ar) {
10783 return Array.isArray(ar);
10785 exports.isArray = isArray;
10787 function isBoolean(arg) {
10788 return typeof arg === 'boolean';
10790 exports.isBoolean = isBoolean;
10792 function isNull(arg) {
10793 return arg === null;
10795 exports.isNull = isNull;
10797 function isNullOrUndefined(arg) {
10798 return arg == null;
10800 exports.isNullOrUndefined = isNullOrUndefined;
10802 function isNumber(arg) {
10803 return typeof arg === 'number';
10805 exports.isNumber = isNumber;
10807 function isString(arg) {
10808 return typeof arg === 'string';
10810 exports.isString = isString;
10812 function isSymbol(arg) {
10813 return typeof arg === 'symbol';
10815 exports.isSymbol = isSymbol;
10817 function isUndefined(arg) {
10818 return arg === void
0;
10820 exports.isUndefined = isUndefined;
10822 function isRegExp(re) {
10823 return isObject(re) && objectToString(re) === '[object RegExp]';
10825 exports.isRegExp = isRegExp;
10827 function isObject(arg) {
10828 return typeof arg === 'object' && arg !== null;
10830 exports.isObject = isObject;
10832 function isDate(d) {
10833 return isObject(d) && objectToString(d) === '[object Date]';
10835 exports.isDate = isDate;
10837 function isError(e) {
10838 return isObject(e) &&
10839 (objectToString(e) === '[object Error]' || e instanceof Error);
10841 exports.isError = isError;
10843 function isFunction(arg) {
10844 return typeof arg === 'function';
10846 exports.isFunction = isFunction;
10848 function isPrimitive(arg) {
10849 return arg === null ||
10850 typeof arg === 'boolean' ||
10851 typeof arg === 'number' ||
10852 typeof arg === 'string' ||
10853 typeof arg === 'symbol' || // ES6 symbol
10854 typeof arg === 'undefined';
10856 exports.isPrimitive = isPrimitive;
10858 function isBuffer(arg) {
10859 return Buffer.isBuffer(arg);
10861 exports.isBuffer = isBuffer;
10863 function objectToString(o) {
10864 return Object.prototype.toString.call(o);
10866 }).call(this,require(
"buffer").Buffer)
10867 },{
"buffer":
7}],
22:[function(require,module,exports){
10868 module.exports = require(
"./lib/_stream_passthrough.js")
10870 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
10871 exports = module.exports = require('./lib/_stream_readable.js');
10872 exports.Stream = require('stream');
10873 exports.Readable = exports;
10874 exports.Writable = require('./lib/_stream_writable.js');
10875 exports.Duplex = require('./lib/_stream_duplex.js');
10876 exports.Transform = require('./lib/_stream_transform.js');
10877 exports.PassThrough = require('./lib/_stream_passthrough.js');
10879 },{
"./lib/_stream_duplex.js":
16,
"./lib/_stream_passthrough.js":
17,
"./lib/_stream_readable.js":
18,
"./lib/_stream_transform.js":
19,
"./lib/_stream_writable.js":
20,
"stream":
26}],
24:[function(require,module,exports){
10880 module.exports = require(
"./lib/_stream_transform.js")
10882 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
10883 module.exports = require(
"./lib/_stream_writable.js")
10885 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
10886 // Copyright Joyent, Inc. and other Node contributors.
10888 // Permission is hereby granted, free of charge, to any person obtaining a
10889 // copy of this software and associated documentation files (the
10890 //
"Software"), to deal in the Software without restriction, including
10891 // without limitation the rights to use, copy, modify, merge, publish,
10892 // distribute, sublicense, and/or sell copies of the Software, and to permit
10893 // persons to whom the Software is furnished to do so, subject to the
10894 // following conditions:
10896 // The above copyright notice and this permission notice shall be included
10897 // in all copies or substantial portions of the Software.
10899 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10900 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10901 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10902 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10903 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10904 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10905 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10907 module.exports = Stream;
10909 var EE = require('events').EventEmitter;
10910 var inherits = require('inherits');
10912 inherits(Stream, EE);
10913 Stream.Readable = require('readable-stream/readable.js');
10914 Stream.Writable = require('readable-stream/writable.js');
10915 Stream.Duplex = require('readable-stream/duplex.js');
10916 Stream.Transform = require('readable-stream/transform.js');
10917 Stream.PassThrough = require('readable-stream/passthrough.js');
10919 // Backwards-compat with node
0.4.x
10920 Stream.Stream = Stream;
10924 // old-style streams. Note that the pipe method (the only relevant
10925 // part of this class) is overridden in the Readable class.
10927 function Stream() {
10931 Stream.prototype.pipe = function(dest, options) {
10934 function ondata(chunk) {
10935 if (dest.writable) {
10936 if (false === dest.write(chunk) && source.pause) {
10942 source.on('data', ondata);
10944 function ondrain() {
10945 if (source.readable && source.resume) {
10950 dest.on('drain', ondrain);
10952 // If the 'end' option is not supplied, dest.end() will be called when
10953 // source gets the 'end' or 'close' events. Only dest.end() once.
10954 if (!dest._isStdio && (!options || options.end !== false)) {
10955 source.on('end', onend);
10956 source.on('close', onclose);
10959 var didOnEnd = false;
10961 if (didOnEnd) return;
10968 function onclose() {
10969 if (didOnEnd) return;
10972 if (typeof dest.destroy === 'function') dest.destroy();
10975 // don't leave dangling pipes when there are errors.
10976 function onerror(er) {
10978 if (EE.listenerCount(this, 'error') ===
0) {
10979 throw er; // Unhandled stream error in pipe.
10983 source.on('error', onerror);
10984 dest.on('error', onerror);
10986 // remove all the event listeners that were added.
10987 function cleanup() {
10988 source.removeListener('data', ondata);
10989 dest.removeListener('drain', ondrain);
10991 source.removeListener('end', onend);
10992 source.removeListener('close', onclose);
10994 source.removeListener('error', onerror);
10995 dest.removeListener('error', onerror);
10997 source.removeListener('end', cleanup);
10998 source.removeListener('close', cleanup);
11000 dest.removeListener('close', cleanup);
11003 source.on('end', cleanup);
11004 source.on('close', cleanup);
11006 dest.on('close', cleanup);
11008 dest.emit('pipe', source);
11010 // Allow for unix-like usage: A.pipe(B).pipe(C)
11014 },{
"events":
11,
"inherits":
12,
"readable-stream/duplex.js":
15,
"readable-stream/passthrough.js":
22,
"readable-stream/readable.js":
23,
"readable-stream/transform.js":
24,
"readable-stream/writable.js":
25}],
27:[function(require,module,exports){
11015 // Copyright Joyent, Inc. and other Node contributors.
11017 // Permission is hereby granted, free of charge, to any person obtaining a
11018 // copy of this software and associated documentation files (the
11019 //
"Software"), to deal in the Software without restriction, including
11020 // without limitation the rights to use, copy, modify, merge, publish,
11021 // distribute, sublicense, and/or sell copies of the Software, and to permit
11022 // persons to whom the Software is furnished to do so, subject to the
11023 // following conditions:
11025 // The above copyright notice and this permission notice shall be included
11026 // in all copies or substantial portions of the Software.
11028 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11029 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11030 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11031 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11032 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11033 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11034 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11036 var Buffer = require('buffer').Buffer;
11038 var isBufferEncoding = Buffer.isEncoding
11039 || function(encoding) {
11040 switch (encoding && encoding.toLowerCase()) {
11041 case 'hex': case 'utf8': case 'utf-
8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-
2': case 'utf16le': case 'utf-
16le': case 'raw': return true;
11042 default: return false;
11047 function assertEncoding(encoding) {
11048 if (encoding && !isBufferEncoding(encoding)) {
11049 throw new Error('Unknown encoding: ' + encoding);
11053 // StringDecoder provides an interface for efficiently splitting a series of
11054 // buffers into a series of JS strings without breaking apart multi-byte
11055 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
11057 // @TODO Handling all encodings inside a single object makes it very difficult
11058 // to reason about this code, so it should be split up in the future.
11059 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
11060 // points as used by CESU-
8.
11061 var StringDecoder = exports.StringDecoder = function(encoding) {
11062 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
11063 assertEncoding(encoding);
11064 switch (this.encoding) {
11066 // CESU-
8 represents each of Surrogate Pair by
3-bytes
11067 this.surrogateSize =
3;
11071 // UTF-
16 represents each of Surrogate Pair by
2-bytes
11072 this.surrogateSize =
2;
11073 this.detectIncompleteChar = utf16DetectIncompleteChar;
11076 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
11077 this.surrogateSize =
3;
11078 this.detectIncompleteChar = base64DetectIncompleteChar;
11081 this.write = passThroughWrite;
11085 // Enough space to store all bytes of a single character. UTF-
8 needs
4
11086 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
11087 this.charBuffer = new Buffer(
6);
11088 // Number of bytes received for the current incomplete multi-byte character.
11089 this.charReceived =
0;
11090 // Number of bytes expected for the current incomplete multi-byte character.
11091 this.charLength =
0;
11095 // write decodes the given buffer and returns it as JS string that is
11096 // guaranteed to not contain any partial multi-byte characters. Any partial
11097 // character found at the end of the buffer is buffered up, and will be
11098 // returned when calling write again with the remaining bytes.
11100 // Note: Converting a Buffer containing an orphan surrogate to a String
11101 // currently works, but converting a String to a Buffer (via `new Buffer`, or
11102 // Buffer#write) will replace incomplete surrogates with the unicode
11103 // replacement character. See https://codereview.chromium.org/
121173009/ .
11104 StringDecoder.prototype.write = function(buffer) {
11106 // if our last write ended with an incomplete multibyte character
11107 while (this.charLength) {
11108 // determine how many remaining bytes this buffer has to offer for this char
11109 var available = (buffer.length
>= this.charLength - this.charReceived) ?
11110 this.charLength - this.charReceived :
11113 // add the new bytes to the char buffer
11114 buffer.copy(this.charBuffer, this.charReceived,
0, available);
11115 this.charReceived += available;
11117 if (this.charReceived < this.charLength) {
11118 // still not enough chars in this buffer? wait for more ...
11122 // remove bytes belonging to the current character from the buffer
11123 buffer = buffer.slice(available, buffer.length);
11125 // get the character that was split
11126 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
11128 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11129 var charCode = charStr.charCodeAt(charStr.length -
1);
11130 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11131 this.charLength += this.surrogateSize;
11135 this.charReceived = this.charLength =
0;
11137 // if there are no more bytes in this buffer, just emit our char
11138 if (buffer.length ===
0) {
11144 // determine and set charLength / charReceived
11145 this.detectIncompleteChar(buffer);
11147 var end = buffer.length;
11148 if (this.charLength) {
11149 // buffer the incomplete character bytes we got
11150 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
11151 end -= this.charReceived;
11154 charStr += buffer.toString(this.encoding,
0, end);
11156 var end = charStr.length -
1;
11157 var charCode = charStr.charCodeAt(end);
11158 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11159 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11160 var size = this.surrogateSize;
11161 this.charLength += size;
11162 this.charReceived += size;
11163 this.charBuffer.copy(this.charBuffer, size,
0, size);
11164 buffer.copy(this.charBuffer,
0,
0, size);
11165 return charStr.substring(
0, end);
11168 // or just emit the charStr
11172 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
11173 // the end of the given buffer. If so, it sets this.charLength to the byte
11174 // length that character, and sets this.charReceived to the number of bytes
11175 // that are available for this character.
11176 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
11177 // determine how many bytes we have to check at the end of this buffer
11178 var i = (buffer.length
>=
3) ?
3 : buffer.length;
11180 // Figure out if one of the last i bytes of our buffer announces an
11181 // incomplete char.
11182 for (; i
> 0; i--) {
11183 var c = buffer[buffer.length - i];
11185 // See http://en.wikipedia.org/wiki/UTF-
8#Description
11188 if (i ==
1 && c
>> 5 ==
0x06) {
11189 this.charLength =
2;
11194 if (i <=
2 && c
>> 4 ==
0x0E) {
11195 this.charLength =
3;
11200 if (i <=
3 && c
>> 3 ==
0x1E) {
11201 this.charLength =
4;
11205 this.charReceived = i;
11208 StringDecoder.prototype.end = function(buffer) {
11210 if (buffer && buffer.length)
11211 res = this.write(buffer);
11213 if (this.charReceived) {
11214 var cr = this.charReceived;
11215 var buf = this.charBuffer;
11216 var enc = this.encoding;
11217 res += buf.slice(
0, cr).toString(enc);
11223 function passThroughWrite(buffer) {
11224 return buffer.toString(this.encoding);
11227 function utf16DetectIncompleteChar(buffer) {
11228 this.charReceived = buffer.length %
2;
11229 this.charLength = this.charReceived ?
2 :
0;
11232 function base64DetectIncompleteChar(buffer) {
11233 this.charReceived = buffer.length %
3;
11234 this.charLength = this.charReceived ?
3 :
0;
11237 },{
"buffer":
7}],
28:[function(require,module,exports){
11238 module.exports = function isBuffer(arg) {
11239 return arg && typeof arg === 'object'
11240 && typeof arg.copy === 'function'
11241 && typeof arg.fill === 'function'
11242 && typeof arg.readUInt8 === 'function';
11244 },{}],
29:[function(require,module,exports){
11245 (function (process,global){
11246 // Copyright Joyent, Inc. and other Node contributors.
11248 // Permission is hereby granted, free of charge, to any person obtaining a
11249 // copy of this software and associated documentation files (the
11250 //
"Software"), to deal in the Software without restriction, including
11251 // without limitation the rights to use, copy, modify, merge, publish,
11252 // distribute, sublicense, and/or sell copies of the Software, and to permit
11253 // persons to whom the Software is furnished to do so, subject to the
11254 // following conditions:
11256 // The above copyright notice and this permission notice shall be included
11257 // in all copies or substantial portions of the Software.
11259 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11260 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11261 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11262 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11263 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11264 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11265 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11267 var formatRegExp = /%[sdj%]/g;
11268 exports.format = function(f) {
11269 if (!isString(f)) {
11271 for (var i =
0; i < arguments.length; i++) {
11272 objects.push(inspect(arguments[i]));
11274 return objects.join(' ');
11278 var args = arguments;
11279 var len = args.length;
11280 var str = String(f).replace(formatRegExp, function(x) {
11281 if (x === '%%') return '%';
11282 if (i
>= len) return x;
11284 case '%s': return String(args[i++]);
11285 case '%d': return Number(args[i++]);
11288 return JSON.stringify(args[i++]);
11290 return '[Circular]';
11296 for (var x = args[i]; i < len; x = args[++i]) {
11297 if (isNull(x) || !isObject(x)) {
11300 str += ' ' + inspect(x);
11307 // Mark that a method should not be used.
11308 // Returns a modified function which warns once by default.
11309 // If --no-deprecation is set, then it is a no-op.
11310 exports.deprecate = function(fn, msg) {
11311 // Allow for deprecating things in the process of starting up.
11312 if (isUndefined(global.process)) {
11313 return function() {
11314 return exports.deprecate(fn, msg).apply(this, arguments);
11318 if (process.noDeprecation === true) {
11322 var warned = false;
11323 function deprecated() {
11325 if (process.throwDeprecation) {
11326 throw new Error(msg);
11327 } else if (process.traceDeprecation) {
11328 console.trace(msg);
11330 console.error(msg);
11334 return fn.apply(this, arguments);
11343 exports.debuglog = function(set) {
11344 if (isUndefined(debugEnviron))
11345 debugEnviron = process.env.NODE_DEBUG || '';
11346 set = set.toUpperCase();
11347 if (!debugs[set]) {
11348 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
11349 var pid = process.pid;
11350 debugs[set] = function() {
11351 var msg = exports.format.apply(exports, arguments);
11352 console.error('%s %d: %s', set, pid, msg);
11355 debugs[set] = function() {};
11358 return debugs[set];
11363 * Echos the value of a value. Trys to print the value out
11364 * in the best way possible given the different types.
11366 * @param {Object} obj The object to print out.
11367 * @param {Object} opts Optional options object that alters the output.
11369 /* legacy: obj, showHidden, depth, colors*/
11370 function inspect(obj, opts) {
11374 stylize: stylizeNoColor
11377 if (arguments.length
>=
3) ctx.depth = arguments[
2];
11378 if (arguments.length
>=
4) ctx.colors = arguments[
3];
11379 if (isBoolean(opts)) {
11381 ctx.showHidden = opts;
11383 // got an "options" object
11384 exports._extend(ctx, opts);
11386 // set default options
11387 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
11388 if (isUndefined(ctx.depth)) ctx.depth =
2;
11389 if (isUndefined(ctx.colors)) ctx.colors = false;
11390 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
11391 if (ctx.colors) ctx.stylize = stylizeWithColor;
11392 return formatValue(ctx, obj, ctx.depth);
11394 exports.inspect = inspect;
11397 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
11400 'italic' : [
3,
23],
11401 'underline' : [
4,
24],
11402 'inverse' : [
7,
27],
11403 'white' : [
37,
39],
11405 'black' : [
30,
39],
11408 'green' : [
32,
39],
11409 'magenta' : [
35,
39],
11411 'yellow' : [
33,
39]
11414 // Don't use 'blue' not visible on cmd.exe
11417 'number': 'yellow',
11418 'boolean': 'yellow',
11419 'undefined': 'grey',
11423 // "name": intentionally not styling
11428 function stylizeWithColor(str, styleType) {
11429 var style = inspect.styles[styleType];
11432 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
11433 '\u001b[' + inspect.colors[style][
1] + 'm';
11440 function stylizeNoColor(str, styleType) {
11445 function arrayToHash(array) {
11448 array.forEach(function(val, idx) {
11456 function formatValue(ctx, value, recurseTimes) {
11457 // Provide a hook for user-specified inspect functions.
11458 // Check that value is an object with an inspect function on it
11459 if (ctx.customInspect &&
11461 isFunction(value.inspect) &&
11462 // Filter out the util module, it's inspect function is special
11463 value.inspect !== exports.inspect &&
11464 // Also filter out any prototype objects using the circular check.
11465 !(value.constructor && value.constructor.prototype === value)) {
11466 var ret = value.inspect(recurseTimes, ctx);
11467 if (!isString(ret)) {
11468 ret = formatValue(ctx, ret, recurseTimes);
11473 // Primitive types cannot have properties
11474 var primitive = formatPrimitive(ctx, value);
11479 // Look up the keys of the object.
11480 var keys = Object.keys(value);
11481 var visibleKeys = arrayToHash(keys);
11483 if (ctx.showHidden) {
11484 keys = Object.getOwnPropertyNames(value);
11487 // IE doesn't make error fields non-enumerable
11488 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
11490 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
11491 return formatError(value);
11494 // Some type of object without properties can be shortcutted.
11495 if (keys.length ===
0) {
11496 if (isFunction(value)) {
11497 var name = value.name ? ': ' + value.name : '';
11498 return ctx.stylize('[Function' + name + ']', 'special');
11500 if (isRegExp(value)) {
11501 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
11503 if (isDate(value)) {
11504 return ctx.stylize(Date.prototype.toString.call(value), 'date');
11506 if (isError(value)) {
11507 return formatError(value);
11511 var base = '', array = false, braces = ['{', '}'];
11513 // Make Array say that they are Array
11514 if (isArray(value)) {
11516 braces = ['[', ']'];
11519 // Make functions say that they are functions
11520 if (isFunction(value)) {
11521 var n = value.name ? ': ' + value.name : '';
11522 base = ' [Function' + n + ']';
11525 // Make RegExps say that they are RegExps
11526 if (isRegExp(value)) {
11527 base = ' ' + RegExp.prototype.toString.call(value);
11530 // Make dates with properties first say the date
11531 if (isDate(value)) {
11532 base = ' ' + Date.prototype.toUTCString.call(value);
11535 // Make error with message first say the error
11536 if (isError(value)) {
11537 base = ' ' + formatError(value);
11540 if (keys.length ===
0 && (!array || value.length ==
0)) {
11541 return braces[
0] + base + braces[
1];
11544 if (recurseTimes <
0) {
11545 if (isRegExp(value)) {
11546 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
11548 return ctx.stylize('[Object]', 'special');
11552 ctx.seen.push(value);
11556 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
11558 output = keys.map(function(key) {
11559 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
11565 return reduceToSingleString(output, base, braces);
11569 function formatPrimitive(ctx, value) {
11570 if (isUndefined(value))
11571 return ctx.stylize('undefined', 'undefined');
11572 if (isString(value)) {
11573 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
11574 .replace(/'/g, "\\'")
11575 .replace(/\\"/g, '"') + '\'';
11576 return ctx.stylize(simple, 'string');
11578 if (isNumber(value))
11579 return ctx.stylize('' + value, 'number');
11580 if (isBoolean(value))
11581 return ctx.stylize('' + value, 'boolean');
11582 // For some reason typeof null is "object", so special case here.
11584 return ctx.stylize('null', 'null');
11588 function formatError(value) {
11589 return '[' + Error.prototype.toString.call(value) + ']';
11593 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
11595 for (var i =
0, l = value.length; i < l; ++i) {
11596 if (hasOwnProperty(value, String(i))) {
11597 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
11603 keys.forEach(function(key) {
11604 if (!key.match(/^\d+$/)) {
11605 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
11613 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
11614 var name, str, desc;
11615 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
11618 str = ctx.stylize('[Getter/Setter]', 'special');
11620 str = ctx.stylize('[Getter]', 'special');
11624 str = ctx.stylize('[Setter]', 'special');
11627 if (!hasOwnProperty(visibleKeys, key)) {
11628 name = '[' + key + ']';
11631 if (ctx.seen.indexOf(desc.value) <
0) {
11632 if (isNull(recurseTimes)) {
11633 str = formatValue(ctx, desc.value, null);
11635 str = formatValue(ctx, desc.value, recurseTimes -
1);
11637 if (str.indexOf('\n')
> -
1) {
11639 str = str.split('\n').map(function(line) {
11641 }).join('\n').substr(
2);
11643 str = '\n' + str.split('\n').map(function(line) {
11649 str = ctx.stylize('[Circular]', 'special');
11652 if (isUndefined(name)) {
11653 if (array && key.match(/^\d+$/)) {
11656 name = JSON.stringify('' + key);
11657 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
11658 name = name.substr(
1, name.length -
2);
11659 name = ctx.stylize(name, 'name');
11661 name = name.replace(/'/g, "\\'")
11662 .replace(/\\"/g, '"')
11663 .replace(/(^"|"$)/g, "'");
11664 name = ctx.stylize(name, 'string');
11668 return name + ': ' + str;
11672 function reduceToSingleString(output, base, braces) {
11673 var numLinesEst =
0;
11674 var length = output.reduce(function(prev, cur) {
11676 if (cur.indexOf('\n')
>=
0) numLinesEst++;
11677 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
11682 (base === '' ? '' : base + '\n ') +
11684 output.join(',\n ') +
11689 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
11693 // NOTE: These type checking functions intentionally don't use `instanceof`
11694 // because it is fragile and can be easily faked with `Object.create()`.
11695 function isArray(ar) {
11696 return Array.isArray(ar);
11698 exports.isArray = isArray;
11700 function isBoolean(arg) {
11701 return typeof arg === 'boolean';
11703 exports.isBoolean = isBoolean;
11705 function isNull(arg) {
11706 return arg === null;
11708 exports.isNull = isNull;
11710 function isNullOrUndefined(arg) {
11711 return arg == null;
11713 exports.isNullOrUndefined = isNullOrUndefined;
11715 function isNumber(arg) {
11716 return typeof arg === 'number';
11718 exports.isNumber = isNumber;
11720 function isString(arg) {
11721 return typeof arg === 'string';
11723 exports.isString = isString;
11725 function isSymbol(arg) {
11726 return typeof arg === 'symbol';
11728 exports.isSymbol = isSymbol;
11730 function isUndefined(arg) {
11731 return arg === void
0;
11733 exports.isUndefined = isUndefined;
11735 function isRegExp(re) {
11736 return isObject(re) && objectToString(re) === '[object RegExp]';
11738 exports.isRegExp = isRegExp;
11740 function isObject(arg) {
11741 return typeof arg === 'object' && arg !== null;
11743 exports.isObject = isObject;
11745 function isDate(d) {
11746 return isObject(d) && objectToString(d) === '[object Date]';
11748 exports.isDate = isDate;
11750 function isError(e) {
11751 return isObject(e) &&
11752 (objectToString(e) === '[object Error]' || e instanceof Error);
11754 exports.isError = isError;
11756 function isFunction(arg) {
11757 return typeof arg === 'function';
11759 exports.isFunction = isFunction;
11761 function isPrimitive(arg) {
11762 return arg === null ||
11763 typeof arg === 'boolean' ||
11764 typeof arg === 'number' ||
11765 typeof arg === 'string' ||
11766 typeof arg === 'symbol' || // ES6 symbol
11767 typeof arg === 'undefined';
11769 exports.isPrimitive = isPrimitive;
11771 exports.isBuffer = require('./support/isBuffer');
11773 function objectToString(o) {
11774 return Object.prototype.toString.call(o);
11779 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
11783 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
11784 'Oct', 'Nov', 'Dec'];
11787 function timestamp() {
11788 var d = new Date();
11789 var time = [pad(d.getHours()),
11790 pad(d.getMinutes()),
11791 pad(d.getSeconds())].join(':');
11792 return [d.getDate(), months[d.getMonth()], time].join(' ');
11796 // log is just a thin wrapper to console.log that prepends a timestamp
11797 exports.log = function() {
11798 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
11803 * Inherit the prototype methods from one constructor into another.
11805 * The Function.prototype.inherits from lang.js rewritten as a standalone
11806 * function (not on Function.prototype). NOTE: If this file is to be loaded
11807 * during bootstrapping this function needs to be rewritten using some native
11808 * functions as prototype setup using normal JavaScript does not work as
11809 * expected during bootstrapping (see mirror.js in r114903).
11811 * @param {function} ctor Constructor function which needs to inherit the
11813 * @param {function} superCtor Constructor function to inherit prototype from.
11815 exports.inherits = require('inherits');
11817 exports._extend = function(origin, add) {
11818 // Don't do anything if add isn't an object
11819 if (!add || !isObject(add)) return origin;
11821 var keys = Object.keys(add);
11822 var i = keys.length;
11824 origin[keys[i]] = add[keys[i]];
11829 function hasOwnProperty(obj, prop) {
11830 return Object.prototype.hasOwnProperty.call(obj, prop);
11833 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11834 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
11835 // Base58 encoding/decoding
11836 // Originally written by Mike Hearn for BitcoinJ
11837 // Copyright (c)
2011 Google Inc
11838 // Ported to JavaScript by Stefan Thomas
11839 // Merged Buffer refactorings from base58-native by Stephen Pair
11840 // Copyright (c)
2013 BitPay Inc
11842 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
11843 var ALPHABET_MAP = {}
11844 for(var i =
0; i < ALPHABET.length; i++) {
11845 ALPHABET_MAP[ALPHABET.charAt(i)] = i
11849 function encode(buffer) {
11850 if (buffer.length ===
0) return ''
11852 var i, j, digits = [
0]
11853 for (i =
0; i < buffer.length; i++) {
11854 for (j =
0; j < digits.length; j++) digits[j] <<=
8
11856 digits[
0] += buffer[i]
11859 for (j =
0; j < digits.length; ++j) {
11862 carry = (digits[j] / BASE) |
0
11867 digits.push(carry % BASE)
11869 carry = (carry / BASE) |
0
11873 // deal with leading zeros
11874 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
11876 // convert digits to a string
11877 var stringOutput =
""
11878 for (var i = digits.length -
1; i
>=
0; i--) {
11879 stringOutput = stringOutput + ALPHABET[digits[i]]
11881 return stringOutput
11884 function decode(string) {
11885 if (string.length ===
0) return []
11887 var i, j, bytes = [
0]
11888 for (i =
0; i < string.length; i++) {
11890 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
11892 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
11893 bytes[
0] += ALPHABET_MAP[c]
11896 for (j =
0; j < bytes.length; ++j) {
11899 carry = bytes[j]
>> 8
11904 bytes.push(carry &
0xff)
11910 // deal with leading zeros
11911 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
11913 return bytes.reverse()
11921 },{}],
31:[function(require,module,exports){
11922 (function (Buffer){
11925 var base58 = require('bs58')
11926 var createHash = require('create-hash')
11928 // SHA256(SHA256(buffer))
11929 function sha256x2 (buffer) {
11930 buffer = createHash('sha256').update(buffer).digest()
11931 return createHash('sha256').update(buffer).digest()
11934 // Encode a buffer as a base58-check encoded string
11935 function encode (payload) {
11936 var checksum = sha256x2(payload).slice(
0,
4)
11938 return base58.encode(Buffer.concat([
11944 // Decode a base58-check encoded string to a buffer
11945 function decode (string) {
11946 var buffer = new Buffer(base58.decode(string))
11948 var payload = buffer.slice(
0, -
4)
11949 var checksum = buffer.slice(-
4)
11950 var newChecksum = sha256x2(payload).slice(
0,
4)
11952 for (var i =
0; i < newChecksum.length; ++i) {
11953 if (newChecksum[i] === checksum[i]) continue
11955 throw new Error('Invalid checksum')
11966 }).call(this,require("buffer").Buffer)
11967 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
11968 (function (Buffer){
11970 var inherits = require('inherits')
11971 var md5 = require('./md5')
11972 var rmd160 = require('ripemd160')
11973 var sha = require('sha.js')
11975 var Transform = require('stream').Transform
11977 function HashNoConstructor(hash) {
11978 Transform.call(this)
11984 inherits(HashNoConstructor, Transform)
11986 HashNoConstructor.prototype._transform = function (data, _, next) {
11987 this.buffers.push(data)
11992 HashNoConstructor.prototype._flush = function (next) {
11993 this.push(this.digest())
11997 HashNoConstructor.prototype.update = function (data, enc) {
11998 if (typeof data === 'string') {
11999 data = new Buffer(data, enc)
12002 this.buffers.push(data)
12006 HashNoConstructor.prototype.digest = function (enc) {
12007 var buf = Buffer.concat(this.buffers)
12008 var r = this._hash(buf)
12009 this.buffers = null
12011 return enc ? r.toString(enc) : r
12014 function Hash(hash) {
12015 Transform.call(this)
12020 inherits(Hash, Transform)
12022 Hash.prototype._transform = function (data, enc, next) {
12023 if (enc) data = new Buffer(data, enc)
12025 this._hash.update(data)
12030 Hash.prototype._flush = function (next) {
12031 this.push(this._hash.digest())
12037 Hash.prototype.update = function (data, enc) {
12038 if (typeof data === 'string') {
12039 data = new Buffer(data, enc)
12042 this._hash.update(data)
12046 Hash.prototype.digest = function (enc) {
12047 var outData = this._hash.digest()
12049 return enc ? outData.toString(enc) : outData
12052 module.exports = function createHash (alg) {
12053 if ('md5' === alg) return new HashNoConstructor(md5)
12054 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
12056 return new Hash(sha(alg))
12059 }).call(this,require("buffer").Buffer)
12060 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
12061 (function (Buffer){
12064 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
12067 function toArray(buf, bigEndian) {
12068 if ((buf.length % intSize) !==
0) {
12069 var len = buf.length + (intSize - (buf.length % intSize));
12070 buf = Buffer.concat([buf, zeroBuffer], len);
12074 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
12075 for (var i =
0; i < buf.length; i += intSize) {
12076 arr.push(fn.call(buf, i));
12081 function toBuffer(arr, size, bigEndian) {
12082 var buf = new Buffer(size);
12083 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
12084 for (var i =
0; i < arr.length; i++) {
12085 fn.call(buf, arr[i], i *
4, true);
12090 function hash(buf, fn, hashSize, bigEndian) {
12091 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
12092 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
12093 return toBuffer(arr, hashSize, bigEndian);
12095 exports.hash = hash;
12096 }).call(this,require("buffer").Buffer)
12097 },{"buffer":
7}],
34:[function(require,module,exports){
12100 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
12101 * Digest Algorithm, as defined in RFC
1321.
12102 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
12103 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12104 * Distributed under the BSD License
12105 * See http://pajhome.org.uk/crypt/md5 for more info.
12108 var helpers = require('./helpers');
12111 * Calculate the MD5 of an array of little-endian words, and a bit length
12113 function core_md5(x, len)
12115 /* append padding */
12116 x[len
>> 5] |=
0x80 << ((len) %
32);
12117 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
12119 var a =
1732584193;
12120 var b = -
271733879;
12121 var c = -
1732584194;
12124 for(var i =
0; i < x.length; i +=
16)
12131 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
12132 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
12133 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
12134 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
12135 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
12136 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
12137 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
12138 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
12139 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
12140 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
12141 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
12142 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
12143 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
12144 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
12145 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
12146 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
12148 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
12149 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
12150 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
12151 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
12152 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
12153 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
12154 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
12155 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
12156 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
12157 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
12158 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
12159 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
12160 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
12161 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
12162 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
12163 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
12165 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
12166 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
12167 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
12168 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
12169 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
12170 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
12171 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
12172 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
12173 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
12174 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
12175 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
12176 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
12177 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
12178 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
12179 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
12180 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
12182 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
12183 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
12184 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
12185 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
12186 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
12187 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
12188 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
12189 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
12190 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
12191 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
12192 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
12193 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
12194 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
12195 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
12196 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
12197 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
12199 a = safe_add(a, olda);
12200 b = safe_add(b, oldb);
12201 c = safe_add(c, oldc);
12202 d = safe_add(d, oldd);
12204 return Array(a, b, c, d);
12209 * These functions implement the four basic operations the algorithm uses.
12211 function md5_cmn(q, a, b, x, s, t)
12213 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
12215 function md5_ff(a, b, c, d, x, s, t)
12217 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
12219 function md5_gg(a, b, c, d, x, s, t)
12221 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
12223 function md5_hh(a, b, c, d, x, s, t)
12225 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
12227 function md5_ii(a, b, c, d, x, s, t)
12229 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
12233 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
12234 * to work around bugs in some JS interpreters.
12236 function safe_add(x, y)
12238 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
12239 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
12240 return (msw <<
16) | (lsw &
0xFFFF);
12244 * Bitwise rotate a
32-bit number to the left.
12246 function bit_rol(num, cnt)
12248 return (num << cnt) | (num
>>> (
32 - cnt));
12251 module.exports = function md5(buf) {
12252 return helpers.hash(buf, core_md5,
16);
12254 },{"./helpers":
33}],
35:[function(require,module,exports){
12255 arguments[
4][
12][
0].apply(exports,arguments)
12256 },{"dup":
12}],
36:[function(require,module,exports){
12257 (function (Buffer){
12260 code.google.com/p/crypto-js
12261 (c)
2009-
2013 by Jeff Mott. All rights reserved.
12262 code.google.com/p/crypto-js/wiki/License
12265 (c)
2012 by Cédric Mesnil. All rights reserved.
12267 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12269 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
12270 - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
12272 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12277 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
12278 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
12279 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
12280 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
12281 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
12285 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
12286 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
12287 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
12288 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
12289 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
12293 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
12294 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
12295 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
12296 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
12297 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
12301 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
12302 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
12303 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
12304 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
12305 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
12308 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
12309 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
12311 function bytesToWords (bytes) {
12313 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
12314 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
12319 function wordsToBytes (words) {
12321 for (var b =
0; b < words.length *
32; b +=
8) {
12322 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
12327 function processBlock (H, M, offset) {
12329 for (var i =
0; i <
16; i++) {
12330 var offset_i = offset + i
12331 var M_offset_i = M[offset_i]
12335 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
12336 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
12340 // Working variables
12341 var al, bl, cl, dl, el
12342 var ar, br, cr, dr, er
12352 for (i =
0; i <
80; i +=
1) {
12353 t = (al + M[offset + zl[i]]) |
0
12355 t += f1(bl, cl, dl) + hl[
0]
12356 } else if (i <
32) {
12357 t += f2(bl, cl, dl) + hl[
1]
12358 } else if (i <
48) {
12359 t += f3(bl, cl, dl) + hl[
2]
12360 } else if (i <
64) {
12361 t += f4(bl, cl, dl) + hl[
3]
12362 } else {// if (i
<80) {
12363 t += f5(bl, cl, dl) + hl[
4]
12374 t = (ar + M[offset + zr[i]]) |
0
12376 t += f5(br, cr, dr) + hr[
0]
12377 } else if (i <
32) {
12378 t += f4(br, cr, dr) + hr[
1]
12379 } else if (i <
48) {
12380 t += f3(br, cr, dr) + hr[
2]
12381 } else if (i <
64) {
12382 t += f2(br, cr, dr) + hr[
3]
12383 } else {// if (i
<80) {
12384 t += f1(br, cr, dr) + hr[
4]
12397 // intermediate hash value
12398 t = (H[
1] + cl + dr) |
0
12399 H[
1] = (H[
2] + dl + er) |
0
12400 H[
2] = (H[
3] + el + ar) |
0
12401 H[
3] = (H[
4] + al + br) |
0
12402 H[
4] = (H[
0] + bl + cr) |
0
12406 function f1 (x, y, z) {
12407 return ((x) ^ (y) ^ (z))
12410 function f2 (x, y, z) {
12411 return (((x) & (y)) | ((~x) & (z)))
12414 function f3 (x, y, z) {
12415 return (((x) | (~(y))) ^ (z))
12418 function f4 (x, y, z) {
12419 return (((x) & (z)) | ((y) & (~(z))))
12422 function f5 (x, y, z) {
12423 return ((x) ^ ((y) | (~(z))))
12426 function rotl (x, n) {
12427 return (x << n) | (x
>>> (
32 - n))
12430 function ripemd160 (message) {
12431 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
12433 if (typeof message === 'string') {
12434 message = new Buffer(message, 'utf8')
12437 var m = bytesToWords(message)
12439 var nBitsLeft = message.length *
8
12440 var nBitsTotal = message.length *
8
12443 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
12444 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
12445 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
12446 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
12449 for (var i =
0; i < m.length; i +=
16) {
12450 processBlock(H, m, i)
12454 for (i =
0; i <
5; i++) {
12459 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
12460 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
12463 var digestbytes = wordsToBytes(H)
12464 return new Buffer(digestbytes)
12467 module.exports = ripemd160
12469 }).call(this,require(
"buffer").Buffer)
12470 },{
"buffer":
7}],
37:[function(require,module,exports){
12471 (function (Buffer){
12472 // prototype class for hash functions
12473 function Hash (blockSize, finalSize) {
12474 this._block = new Buffer(blockSize)
12475 this._finalSize = finalSize
12476 this._blockSize = blockSize
12481 Hash.prototype.update = function (data, enc) {
12482 if (typeof data === 'string') {
12483 enc = enc || 'utf8'
12484 data = new Buffer(data, enc)
12487 var l = this._len += data.length
12488 var s = this._s ||
0
12490 var buffer = this._block
12493 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
12496 for (var i =
0; i < ch; i++) {
12497 buffer[(s % this._blockSize) + i] = data[i + f]
12503 if ((s % this._blockSize) ===
0) {
12504 this._update(buffer)
12512 Hash.prototype.digest = function (enc) {
12513 // Suppose the length of the message M, in bits, is l
12514 var l = this._len *
8
12516 // Append the bit
1 to the end of the message
12517 this._block[this._len % this._blockSize] =
0x80
12519 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
12520 this._block.fill(
0, this._len % this._blockSize +
1)
12522 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
12523 this._update(this._block)
12524 this._block.fill(
0)
12527 // to this append the block which is equal to the number l written in binary
12528 // TODO: handle case where l is
> Math.pow(
2,
29)
12529 this._block.writeInt32BE(l, this._blockSize -
4)
12531 var hash = this._update(this._block) || this._hash()
12533 return enc ? hash.toString(enc) : hash
12536 Hash.prototype._update = function () {
12537 throw new Error('_update must be implemented by subclass')
12540 module.exports = Hash
12542 }).call(this,require("buffer").Buffer)
12543 },{"buffer":
7}],
38:[function(require,module,exports){
12544 var exports = module.exports = function SHA (algorithm) {
12545 algorithm = algorithm.toLowerCase()
12547 var Algorithm = exports[algorithm]
12548 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
12550 return new Algorithm()
12553 exports.sha = require('./sha')
12554 exports.sha1 = require('./sha1')
12555 exports.sha224 = require('./sha224')
12556 exports.sha256 = require('./sha256')
12557 exports.sha384 = require('./sha384')
12558 exports.sha512 = require('./sha512')
12560 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
12561 (function (Buffer){
12563 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
12564 * in FIPS PUB
180-
1
12565 * This source code is derived from sha1.js of the same repository.
12566 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
12567 * operation was added.
12570 var inherits = require('inherits')
12571 var Hash = require('./hash')
12573 var W = new Array(
80)
12579 Hash.call(this,
64,
56)
12582 inherits(Sha, Hash)
12584 Sha.prototype.init = function () {
12585 this._a =
0x67452301 |
0
12586 this._b =
0xefcdab89 |
0
12587 this._c =
0x98badcfe |
0
12588 this._d =
0x10325476 |
0
12589 this._e =
0xc3d2e1f0 |
0
12595 * Bitwise rotate a
32-bit number to the left.
12597 function rol (num, cnt) {
12598 return (num << cnt) | (num
>>> (
32 - cnt))
12601 Sha.prototype._update = function (M) {
12613 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
12614 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
12616 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
12617 function loop (w, f) {
12620 var t = rol(a,
5) + f + e + w + k
12631 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
12632 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
12634 while (j <
40) loop(calcW(), b ^ c ^ d)
12636 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
12638 while (j <
80) loop(calcW(), b ^ c ^ d)
12640 this._a = (a + this._a) |
0
12641 this._b = (b + this._b) |
0
12642 this._c = (c + this._c) |
0
12643 this._d = (d + this._d) |
0
12644 this._e = (e + this._e) |
0
12647 Sha.prototype._hash = function () {
12648 var H = new Buffer(
20)
12650 H.writeInt32BE(this._a |
0,
0)
12651 H.writeInt32BE(this._b |
0,
4)
12652 H.writeInt32BE(this._c |
0,
8)
12653 H.writeInt32BE(this._d |
0,
12)
12654 H.writeInt32BE(this._e |
0,
16)
12659 module.exports = Sha
12662 }).call(this,require("buffer").Buffer)
12663 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
12664 (function (Buffer){
12666 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
12667 * in FIPS PUB
180-
1
12668 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
12669 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12670 * Distributed under the BSD License
12671 * See http://pajhome.org.uk/crypt/md5 for details.
12674 var inherits = require('inherits')
12675 var Hash = require('./hash')
12677 var W = new Array(
80)
12683 Hash.call(this,
64,
56)
12686 inherits(Sha1, Hash)
12688 Sha1.prototype.init = function () {
12689 this._a =
0x67452301 |
0
12690 this._b =
0xefcdab89 |
0
12691 this._c =
0x98badcfe |
0
12692 this._d =
0x10325476 |
0
12693 this._e =
0xc3d2e1f0 |
0
12699 * Bitwise rotate a
32-bit number to the left.
12701 function rol (num, cnt) {
12702 return (num << cnt) | (num
>>> (
32 - cnt))
12705 Sha1.prototype._update = function (M) {
12716 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
12717 function loop (w, f) {
12720 var t = rol(a,
5) + f + e + w + k
12731 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
12732 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
12734 while (j <
40) loop(calcW(), b ^ c ^ d)
12736 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
12738 while (j <
80) loop(calcW(), b ^ c ^ d)
12740 this._a = (a + this._a) |
0
12741 this._b = (b + this._b) |
0
12742 this._c = (c + this._c) |
0
12743 this._d = (d + this._d) |
0
12744 this._e = (e + this._e) |
0
12747 Sha1.prototype._hash = function () {
12748 var H = new Buffer(
20)
12750 H.writeInt32BE(this._a |
0,
0)
12751 H.writeInt32BE(this._b |
0,
4)
12752 H.writeInt32BE(this._c |
0,
8)
12753 H.writeInt32BE(this._d |
0,
12)
12754 H.writeInt32BE(this._e |
0,
16)
12759 module.exports = Sha1
12761 }).call(this,require("buffer").Buffer)
12762 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
12763 (function (Buffer){
12765 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
12767 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
12768 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12772 var inherits = require('inherits')
12773 var Sha256 = require('./sha256')
12774 var Hash = require('./hash')
12776 var W = new Array(
64)
12778 function Sha224 () {
12781 this._w = W // new Array(
64)
12783 Hash.call(this,
64,
56)
12786 inherits(Sha224, Sha256)
12788 Sha224.prototype.init = function () {
12789 this._a =
0xc1059ed8 |
0
12790 this._b =
0x367cd507 |
0
12791 this._c =
0x3070dd17 |
0
12792 this._d =
0xf70e5939 |
0
12793 this._e =
0xffc00b31 |
0
12794 this._f =
0x68581511 |
0
12795 this._g =
0x64f98fa7 |
0
12796 this._h =
0xbefa4fa4 |
0
12801 Sha224.prototype._hash = function () {
12802 var H = new Buffer(
28)
12804 H.writeInt32BE(this._a,
0)
12805 H.writeInt32BE(this._b,
4)
12806 H.writeInt32BE(this._c,
8)
12807 H.writeInt32BE(this._d,
12)
12808 H.writeInt32BE(this._e,
16)
12809 H.writeInt32BE(this._f,
20)
12810 H.writeInt32BE(this._g,
24)
12815 module.exports = Sha224
12817 }).call(this,require("buffer").Buffer)
12818 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
12819 (function (Buffer){
12821 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
12823 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
12824 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12828 var inherits = require('inherits')
12829 var Hash = require('./hash')
12832 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
12833 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
12834 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
12835 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
12836 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
12837 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
12838 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
12839 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
12840 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
12841 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
12842 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
12843 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
12844 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
12845 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
12846 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
12847 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
12850 var W = new Array(
64)
12852 function Sha256 () {
12855 this._w = W // new Array(
64)
12857 Hash.call(this,
64,
56)
12860 inherits(Sha256, Hash)
12862 Sha256.prototype.init = function () {
12863 this._a =
0x6a09e667 |
0
12864 this._b =
0xbb67ae85 |
0
12865 this._c =
0x3c6ef372 |
0
12866 this._d =
0xa54ff53a |
0
12867 this._e =
0x510e527f |
0
12868 this._f =
0x9b05688c |
0
12869 this._g =
0x1f83d9ab |
0
12870 this._h =
0x5be0cd19 |
0
12875 function S (X, n) {
12876 return (X
>>> n) | (X << (
32 - n))
12879 function R (X, n) {
12883 function Ch (x, y, z) {
12884 return ((x & y) ^ ((~x) & z))
12887 function Maj (x, y, z) {
12888 return ((x & y) ^ (x & z) ^ (y & z))
12891 function Sigma0256 (x) {
12892 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
12895 function Sigma1256 (x) {
12896 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
12899 function Gamma0256 (x) {
12900 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
12903 function Gamma1256 (x) {
12904 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
12907 Sha256.prototype._update = function (M) {
12910 var a = this._a |
0
12911 var b = this._b |
0
12912 var c = this._c |
0
12913 var d = this._d |
0
12914 var e = this._e |
0
12915 var f = this._f |
0
12916 var g = this._g |
0
12917 var h = this._h |
0
12921 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
12922 function loop (w) {
12925 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
12926 var T2 = Sigma0256(a) + Maj(a, b, c)
12940 while (j <
16) loop(M.readInt32BE(j *
4))
12941 while (j <
64) loop(calcW())
12943 this._a = (a + this._a) |
0
12944 this._b = (b + this._b) |
0
12945 this._c = (c + this._c) |
0
12946 this._d = (d + this._d) |
0
12947 this._e = (e + this._e) |
0
12948 this._f = (f + this._f) |
0
12949 this._g = (g + this._g) |
0
12950 this._h = (h + this._h) |
0
12953 Sha256.prototype._hash = function () {
12954 var H = new Buffer(
32)
12956 H.writeInt32BE(this._a,
0)
12957 H.writeInt32BE(this._b,
4)
12958 H.writeInt32BE(this._c,
8)
12959 H.writeInt32BE(this._d,
12)
12960 H.writeInt32BE(this._e,
16)
12961 H.writeInt32BE(this._f,
20)
12962 H.writeInt32BE(this._g,
24)
12963 H.writeInt32BE(this._h,
28)
12968 module.exports = Sha256
12970 }).call(this,require("buffer").Buffer)
12971 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
12972 (function (Buffer){
12973 var inherits = require('inherits')
12974 var SHA512 = require('./sha512')
12975 var Hash = require('./hash')
12977 var W = new Array(
160)
12979 function Sha384 () {
12983 Hash.call(this,
128,
112)
12986 inherits(Sha384, SHA512)
12988 Sha384.prototype.init = function () {
12989 this._a =
0xcbbb9d5d |
0
12990 this._b =
0x629a292a |
0
12991 this._c =
0x9159015a |
0
12992 this._d =
0x152fecd8 |
0
12993 this._e =
0x67332667 |
0
12994 this._f =
0x8eb44a87 |
0
12995 this._g =
0xdb0c2e0d |
0
12996 this._h =
0x47b5481d |
0
12998 this._al =
0xc1059ed8 |
0
12999 this._bl =
0x367cd507 |
0
13000 this._cl =
0x3070dd17 |
0
13001 this._dl =
0xf70e5939 |
0
13002 this._el =
0xffc00b31 |
0
13003 this._fl =
0x68581511 |
0
13004 this._gl =
0x64f98fa7 |
0
13005 this._hl =
0xbefa4fa4 |
0
13010 Sha384.prototype._hash = function () {
13011 var H = new Buffer(
48)
13013 function writeInt64BE (h, l, offset) {
13014 H.writeInt32BE(h, offset)
13015 H.writeInt32BE(l, offset +
4)
13018 writeInt64BE(this._a, this._al,
0)
13019 writeInt64BE(this._b, this._bl,
8)
13020 writeInt64BE(this._c, this._cl,
16)
13021 writeInt64BE(this._d, this._dl,
24)
13022 writeInt64BE(this._e, this._el,
32)
13023 writeInt64BE(this._f, this._fl,
40)
13028 module.exports = Sha384
13030 }).call(this,require("buffer").Buffer)
13031 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
13032 (function (Buffer){
13033 var inherits = require('inherits')
13034 var Hash = require('./hash')
13037 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
13038 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
13039 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
13040 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
13041 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
13042 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
13043 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
13044 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
13045 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
13046 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
13047 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
13048 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
13049 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
13050 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
13051 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
13052 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
13053 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
13054 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
13055 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
13056 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
13057 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
13058 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
13059 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
13060 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
13061 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
13062 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
13063 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
13064 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
13065 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
13066 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
13067 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
13068 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
13069 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
13070 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
13071 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
13072 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
13073 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
13074 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
13075 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
13076 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
13079 var W = new Array(
160)
13081 function Sha512 () {
13085 Hash.call(this,
128,
112)
13088 inherits(Sha512, Hash)
13090 Sha512.prototype.init = function () {
13091 this._a =
0x6a09e667 |
0
13092 this._b =
0xbb67ae85 |
0
13093 this._c =
0x3c6ef372 |
0
13094 this._d =
0xa54ff53a |
0
13095 this._e =
0x510e527f |
0
13096 this._f =
0x9b05688c |
0
13097 this._g =
0x1f83d9ab |
0
13098 this._h =
0x5be0cd19 |
0
13100 this._al =
0xf3bcc908 |
0
13101 this._bl =
0x84caa73b |
0
13102 this._cl =
0xfe94f82b |
0
13103 this._dl =
0x5f1d36f1 |
0
13104 this._el =
0xade682d1 |
0
13105 this._fl =
0x2b3e6c1f |
0
13106 this._gl =
0xfb41bd6b |
0
13107 this._hl =
0x137e2179 |
0
13112 function S (X, Xl, n) {
13113 return (X
>>> n) | (Xl << (
32 - n))
13116 function Ch (x, y, z) {
13117 return ((x & y) ^ ((~x) & z))
13120 function Maj (x, y, z) {
13121 return ((x & y) ^ (x & z) ^ (y & z))
13124 Sha512.prototype._update = function (M) {
13127 var a = this._a |
0
13128 var b = this._b |
0
13129 var c = this._c |
0
13130 var d = this._d |
0
13131 var e = this._e |
0
13132 var f = this._f |
0
13133 var g = this._g |
0
13134 var h = this._h |
0
13136 var al = this._al |
0
13137 var bl = this._bl |
0
13138 var cl = this._cl |
0
13139 var dl = this._dl |
0
13140 var el = this._el |
0
13141 var fl = this._fl |
0
13142 var gl = this._gl |
0
13143 var hl = this._hl |
0
13147 function calcW () {
13148 var x = W[j -
15 *
2]
13149 var xl = W[j -
15 *
2 +
1]
13150 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
13151 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
13154 xl = W[j -
2 *
2 +
1]
13155 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
13156 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
13158 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
13159 var Wi7 = W[j -
7 *
2]
13160 var Wi7l = W[j -
7 *
2 +
1]
13162 var Wi16 = W[j -
16 *
2]
13163 var Wi16l = W[j -
16 *
2 +
1]
13165 Wil = gamma0l + Wi7l
13166 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
13167 Wil = Wil + gamma1l
13168 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
13170 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
13177 var maj = Maj(a, b, c)
13178 var majl = Maj(al, bl, cl)
13180 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
13181 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
13182 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
13183 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
13185 // t1 = h + sigma1 + ch + K[i] + W[i]
13189 var ch = Ch(e, f, g)
13190 var chl = Ch(el, fl, gl)
13192 var t1l = hl + sigma1l
13193 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
13195 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
13197 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
13199 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
13201 // t2 = sigma0 + maj
13202 var t2l = sigma0l + majl
13203 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
13211 el = (dl + t1l) |
0
13212 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13219 al = (t1l + t2l) |
0
13220 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
13227 Wi = M.readInt32BE(j *
4)
13228 Wil = M.readInt32BE(j *
4 +
4)
13238 this._al = (this._al + al) |
0
13239 this._bl = (this._bl + bl) |
0
13240 this._cl = (this._cl + cl) |
0
13241 this._dl = (this._dl + dl) |
0
13242 this._el = (this._el + el) |
0
13243 this._fl = (this._fl + fl) |
0
13244 this._gl = (this._gl + gl) |
0
13245 this._hl = (this._hl + hl) |
0
13247 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
13248 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
13249 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
13250 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13251 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
13252 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
13253 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
13254 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
13257 Sha512.prototype._hash = function () {
13258 var H = new Buffer(
64)
13260 function writeInt64BE (h, l, offset) {
13261 H.writeInt32BE(h, offset)
13262 H.writeInt32BE(l, offset +
4)
13265 writeInt64BE(this._a, this._al,
0)
13266 writeInt64BE(this._b, this._bl,
8)
13267 writeInt64BE(this._c, this._cl,
16)
13268 writeInt64BE(this._d, this._dl,
24)
13269 writeInt64BE(this._e, this._el,
32)
13270 writeInt64BE(this._f, this._fl,
40)
13271 writeInt64BE(this._g, this._gl,
48)
13272 writeInt64BE(this._h, this._hl,
56)
13277 module.exports = Sha512
13279 }).call(this,require(
"buffer").Buffer)
13280 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
13281 (function (Buffer){
13283 var createHash = require('create-hash/browser');
13284 var inherits = require('inherits')
13286 var Transform = require('stream').Transform
13288 var ZEROS = new Buffer(
128)
13291 function Hmac(alg, key) {
13292 Transform.call(this)
13294 if (typeof key === 'string') {
13295 key = new Buffer(key)
13298 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
13303 if (key.length
> blocksize) {
13304 key = createHash(alg).update(key).digest()
13306 } else if (key.length < blocksize) {
13307 key = Buffer.concat([key, ZEROS], blocksize)
13310 var ipad = this._ipad = new Buffer(blocksize)
13311 var opad = this._opad = new Buffer(blocksize)
13313 for (var i =
0; i < blocksize; i++) {
13314 ipad[i] = key[i] ^
0x36
13315 opad[i] = key[i] ^
0x5C
13318 this._hash = createHash(alg).update(ipad)
13321 inherits(Hmac, Transform)
13323 Hmac.prototype.update = function (data, enc) {
13324 this._hash.update(data, enc)
13329 Hmac.prototype._transform = function (data, _, next) {
13330 this._hash.update(data)
13335 Hmac.prototype._flush = function (next) {
13336 this.push(this.digest())
13341 Hmac.prototype.digest = function (enc) {
13342 var h = this._hash.digest()
13344 return createHash(this._alg).update(this._opad).update(h).digest(enc)
13347 module.exports = function createHmac(alg, key) {
13348 return new Hmac(alg, key)
13351 }).call(this,require("buffer").Buffer)
13352 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
13353 arguments[
4][
12][
0].apply(exports,arguments)
13354 },{"dup":
12}],
47:[function(require,module,exports){
13355 var assert = require('assert')
13356 var BigInteger = require('bigi')
13358 var Point = require('./point')
13360 function Curve(p, a, b, Gx, Gy, n, h) {
13364 this.G = Point.fromAffine(this, Gx, Gy)
13368 this.infinity = new Point(this, null, null, BigInteger.ZERO)
13371 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
13374 Curve.prototype.pointFromX = function(isOdd, x) {
13375 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
13376 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
13379 if (beta.isEven() ^ !isOdd) {
13380 y = this.p.subtract(y) // -y % p
13383 return Point.fromAffine(this, x, y)
13386 Curve.prototype.isInfinity = function(Q) {
13387 if (Q === this.infinity) return true
13389 return Q.z.signum() ===
0 && Q.y.signum() !==
0
13392 Curve.prototype.isOnCurve = function(Q) {
13393 if (this.isInfinity(Q)) return true
13401 // Check that xQ and yQ are integers in the interval [
0, p -
1]
13402 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
13403 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
13405 // and check that y^
2 = x^
3 + ax + b (mod p)
13406 var lhs = y.square().mod(p)
13407 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
13408 return lhs.equals(rhs)
13412 * Validate an elliptic curve point.
13414 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
13416 Curve.prototype.validate = function(Q) {
13418 assert(!this.isInfinity(Q), 'Point is at infinity')
13419 assert(this.isOnCurve(Q), 'Point is not on the curve')
13421 // Check nQ = O (where Q is a scalar multiple of G)
13422 var nQ = Q.multiply(this.n)
13423 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
13428 module.exports = Curve
13430 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
13433 "p": "fffffffdffffffffffffffffffffffff",
13434 "a": "fffffffdfffffffffffffffffffffffc",
13435 "b": "e87579c11079f43dd824993c2cee5ed3",
13436 "n": "fffffffe0000000075a30d1b9038a115",
13438 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
13439 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
13442 "p": "fffffffffffffffffffffffffffffffeffffac73",
13445 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
13447 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
13448 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
13451 "p": "ffffffffffffffffffffffffffffffff7fffffff",
13452 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
13453 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
13454 "n": "
0100000000000000000001f4c8f927aed3ca752257",
13456 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
13457 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
13460 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
13463 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
13465 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
13466 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
13469 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
13470 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
13471 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
13472 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
13474 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
13475 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
13478 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
13481 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
13483 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
13484 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
13487 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
13488 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
13489 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
13490 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
13492 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
13493 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
13497 },{}],
49:[function(require,module,exports){
13498 var Point = require('./point')
13499 var Curve = require('./curve')
13501 var getCurveByName = require('./names')
13506 getCurveByName: getCurveByName
13509 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
13510 var BigInteger = require('bigi')
13512 var curves = require('./curves')
13513 var Curve = require('./curve')
13515 function getCurveByName(name) {
13516 var curve = curves[name]
13517 if (!curve) return null
13519 var p = new BigInteger(curve.p,
16)
13520 var a = new BigInteger(curve.a,
16)
13521 var b = new BigInteger(curve.b,
16)
13522 var n = new BigInteger(curve.n,
16)
13523 var h = new BigInteger(curve.h,
16)
13524 var Gx = new BigInteger(curve.Gx,
16)
13525 var Gy = new BigInteger(curve.Gy,
16)
13527 return new Curve(p, a, b, Gx, Gy, n, h)
13530 module.exports = getCurveByName
13532 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
13533 (function (Buffer){
13534 var assert = require('assert')
13535 var BigInteger = require('bigi')
13537 var THREE = BigInteger.valueOf(
3)
13539 function Point(curve, x, y, z) {
13540 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
13548 this.compressed = true
13551 Object.defineProperty(Point.prototype, 'zInv', {
13553 if (this._zInv === null) {
13554 this._zInv = this.z.modInverse(this.curve.p)
13561 Object.defineProperty(Point.prototype, 'affineX', {
13563 return this.x.multiply(this.zInv).mod(this.curve.p)
13567 Object.defineProperty(Point.prototype, 'affineY', {
13569 return this.y.multiply(this.zInv).mod(this.curve.p)
13573 Point.fromAffine = function(curve, x, y) {
13574 return new Point(curve, x, y, BigInteger.ONE)
13577 Point.prototype.equals = function(other) {
13578 if (other === this) return true
13579 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
13580 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
13582 // u = Y2 * Z1 - Y1 * Z2
13583 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
13585 if (u.signum() !==
0) return false
13587 // v = X2 * Z1 - X1 * Z2
13588 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
13590 return v.signum() ===
0
13593 Point.prototype.negate = function() {
13594 var y = this.curve.p.subtract(this.y)
13596 return new Point(this.curve, this.x, y, this.z)
13599 Point.prototype.add = function(b) {
13600 if (this.curve.isInfinity(this)) return b
13601 if (this.curve.isInfinity(b)) return this
13608 // u = Y2 * Z1 - Y1 * Z2
13609 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
13610 // v = X2 * Z1 - X1 * Z2
13611 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
13613 if (v.signum() ===
0) {
13614 if (u.signum() ===
0) {
13615 return this.twice() // this == b, so double
13618 return this.curve.infinity // this = -b, so infinity
13621 var v2 = v.square()
13622 var v3 = v2.multiply(v)
13623 var x1v2 = x1.multiply(v2)
13624 var zu2 = u.square().multiply(this.z)
13626 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
13627 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
13628 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
13629 var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p)
13630 // z3 = v^
3 * z1 * z2
13631 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
13633 return new Point(this.curve, x3, y3, z3)
13636 Point.prototype.twice = function() {
13637 if (this.curve.isInfinity(this)) return this
13638 if (this.y.signum() ===
0) return this.curve.infinity
13643 var y1z1 = y1.multiply(this.z)
13644 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
13645 var a = this.curve.a
13647 // w =
3 * x1^
2 + a * z1^
2
13648 var w = x1.square().multiply(THREE)
13650 if (a.signum() !==
0) {
13651 w = w.add(this.z.square().multiply(a))
13654 w = w.mod(this.curve.p)
13655 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
13656 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
13657 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
13658 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
13659 // z3 =
8 * (y1 * z1)^
3
13660 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
13662 return new Point(this.curve, x3, y3, z3)
13665 // Simple NAF (Non-Adjacent Form) multiplication algorithm
13666 // TODO: modularize the multiplication algorithm
13667 Point.prototype.multiply = function(k) {
13668 if (this.curve.isInfinity(this)) return this
13669 if (k.signum() ===
0) return this.curve.infinity
13672 var h = e.multiply(THREE)
13674 var neg = this.negate()
13677 for (var i = h.bitLength() -
2; i
> 0; --i) {
13680 var hBit = h.testBit(i)
13681 var eBit = e.testBit(i)
13683 if (hBit != eBit) {
13684 R = R.add(hBit ? this : neg)
13691 // Compute this*j + x*k (simultaneous multiplication)
13692 Point.prototype.multiplyTwo = function(j, x, k) {
13695 if (j.bitLength()
> k.bitLength())
13696 i = j.bitLength() -
1
13698 i = k.bitLength() -
1
13700 var R = this.curve.infinity
13701 var both = this.add(x)
13706 var jBit = j.testBit(i)
13707 var kBit = k.testBit(i)
13728 Point.prototype.getEncoded = function(compressed) {
13729 if (compressed == undefined) compressed = this.compressed
13730 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
13732 var x = this.affineX
13733 var y = this.affineY
13737 // Determine size of q in bytes
13738 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
13742 buffer = new Buffer(
1 + byteLength)
13743 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
13747 buffer = new Buffer(
1 + byteLength + byteLength)
13748 buffer.writeUInt8(
0x04,
0)
13750 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
13753 x.toBuffer(byteLength).copy(buffer,
1)
13758 Point.decodeFrom = function(curve, buffer) {
13759 var type = buffer.readUInt8(
0)
13760 var compressed = (type !==
4)
13762 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
13763 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
13767 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
13768 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
13770 var isOdd = (type ===
0x03)
13771 Q = curve.pointFromX(isOdd, x)
13774 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
13776 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
13777 Q = Point.fromAffine(curve, x, y)
13780 Q.compressed = compressed
13784 Point.prototype.toString = function () {
13785 if (this.curve.isInfinity(this)) return '(INFINITY)'
13787 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
13790 module.exports = Point
13792 }).call(this,require("buffer").Buffer)
13793 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
13794 (function (process,global,Buffer){
13797 var crypto = global.crypto || global.msCrypto
13798 if(crypto && crypto.getRandomValues) {
13799 module.exports = randomBytes;
13801 module.exports = oldBrowser;
13803 function randomBytes(size, cb) {
13804 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
13805 /* This will not work in older browsers.
13806 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
13809 crypto.getRandomValues(bytes);
13810 if (typeof cb === 'function') {
13811 return process.nextTick(function () {
13817 function oldBrowser() {
13819 'secure random number generation not supported by this browser\n'+
13820 'use chrome, FireFox or Internet Explorer
11'
13824 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
13825 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
13826 (function (Buffer){
13829 function getFunctionName(fn) {
13830 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
13833 function getTypeTypeName(type) {
13834 if (nativeTypes.Function(type)) {
13835 type = type.toJSON ? type.toJSON() : getFunctionName(type);
13837 if (nativeTypes.Object(type)) return JSON.stringify(type);
13842 function getValueTypeName(value) {
13843 if (nativeTypes.Null(value)) return '';
13845 return getFunctionName(value.constructor);
13848 function tfErrorString(type, value) {
13849 var typeTypeName = getTypeTypeName(type);
13850 var valueTypeName = getValueTypeName(value);
13852 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
13855 function tfPropertyErrorString(type, name, value) {
13856 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
13859 var nativeTypes = {
13860 Array: (function (_Array) {
13861 function Array(_x) {
13862 return _Array.apply(this, arguments);
13865 Array.toString = function () {
13866 return _Array.toString();
13870 })(function (value) {
13871 return value !== null && value !== undefined && value.constructor === Array;
13873 Boolean: function Boolean(value) {
13874 return typeof value === 'boolean';
13876 Buffer: (function (_Buffer) {
13877 function Buffer(_x2) {
13878 return _Buffer.apply(this, arguments);
13881 Buffer.toString = function () {
13882 return _Buffer.toString();
13886 })(function (value) {
13887 return Buffer.isBuffer(value);
13889 Function: function Function(value) {
13890 return typeof value === 'function';
13892 Null: function Null(value) {
13893 return value === undefined || value === null;
13895 Number: function Number(value) {
13896 return typeof value === 'number';
13898 Object: function Object(value) {
13899 return typeof value === 'object';
13901 String: function String(value) {
13902 return typeof value === 'string';
13909 function tJSON(type) {
13910 return type && type.toJSON ? type.toJSON() : type;
13913 function sJSON(type) {
13914 var json = tJSON(type);
13915 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
13919 arrayOf: function arrayOf(type) {
13920 function arrayOf(value, strict) {
13922 return nativeTypes.Array(value) && value.every(function (x) {
13923 return typeforce(type, x, strict);
13929 arrayOf.toJSON = function () {
13930 return [tJSON(type)];
13936 maybe: function maybe(type) {
13937 function maybe(value, strict) {
13938 return nativeTypes.Null(value) || typeforce(type, value, strict);
13940 maybe.toJSON = function () {
13941 return '?' + sJSON(type);
13947 object: function object(type) {
13948 function object(value, strict) {
13949 typeforce(nativeTypes.Object, value, strict);
13951 var propertyName, propertyType, propertyValue;
13954 for (propertyName in type) {
13955 propertyType = type[propertyName];
13956 propertyValue = value[propertyName];
13958 typeforce(propertyType, propertyValue, strict);
13961 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
13965 for (propertyName in value) {
13966 if (type[propertyName]) continue;
13968 throw new TypeError('Unexpected property "' + propertyName + '"');
13974 object.toJSON = function () {
13981 oneOf: function oneOf() {
13982 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
13983 types[_key] = arguments[_key];
13986 function oneOf(value, strict) {
13987 return types.some(function (type) {
13989 return typeforce(type, value, strict);
13995 oneOf.toJSON = function () {
13996 return types.map(sJSON).join('|');
14002 quacksLike: function quacksLike(type) {
14003 function quacksLike(value, strict) {
14004 return type === getValueTypeName(value);
14006 quacksLike.toJSON = function () {
14013 tuple: function tuple() {
14014 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
14015 types[_key2] = arguments[_key2];
14018 function tuple(value, strict) {
14019 return types.every(function (type, i) {
14020 return typeforce(type, value[i], strict);
14023 tuple.toJSON = function () {
14024 return '(' + types.map(sJSON).join(', ') + ')';
14030 value: function value(expected) {
14031 function value(actual) {
14032 return actual === expected;
14034 value.toJSON = function () {
14042 function compile(type) {
14043 if (nativeTypes.String(type)) {
14044 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
14046 return nativeTypes[type] || otherTypes.quacksLike(type);
14047 } else if (type && nativeTypes.Object(type)) {
14048 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
14052 for (var propertyName in type) {
14053 compiled[propertyName] = compile(type[propertyName]);
14056 return otherTypes.object(compiled);
14057 } else if (nativeTypes.Function(type)) {
14061 return otherTypes.value(type);
14064 function typeforce(_x3, _x4, _x5) {
14067 _function: while (_again) {
14073 if (nativeTypes.Function(type)) {
14074 if (type(value, strict)) return true;
14076 throw new TypeError(tfErrorString(type, value));
14080 _x3 = compile(type);
14084 continue _function;
14088 // assign all types to typeforce function
14090 Object.keys(nativeTypes).forEach(function (typeName) {
14091 var nativeType = nativeTypes[typeName];
14092 nativeType.toJSON = function () {
14096 typeforce[typeName] = nativeType;
14099 for (typeName in otherTypes) {
14100 typeforce[typeName] = otherTypes[typeName];
14103 module.exports = typeforce;
14104 module.exports.compile = compile;
14105 }).call(this,require("buffer").Buffer)
14106 },{"buffer":
7}],
54:[function(require,module,exports){
14107 (function (Buffer){
14108 var assert = require('assert')
14109 var base58check = require('bs58check')
14110 var typeForce = require('typeforce')
14111 var networks = require('./networks')
14112 var scripts = require('./scripts')
14114 function findScriptTypeByVersion (version) {
14115 for (var networkName in networks) {
14116 var network = networks[networkName]
14118 if (version === network.pubKeyHash) return 'pubkeyhash'
14119 if (version === network.scriptHash) return 'scripthash'
14123 function Address (hash, version) {
14124 typeForce('Buffer', hash)
14126 assert.strictEqual(hash.length,
20, 'Invalid hash length')
14127 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
14130 this.version = version
14133 Address.fromBase58Check = function (string) {
14134 var payload = base58check.decode(string)
14135 var version = payload.readUInt8(
0)
14136 var hash = payload.slice(
1)
14138 return new Address(hash, version)
14141 Address.fromOutputScript = function (script, network) {
14142 network = network || networks.bitcoin
14144 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
14145 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
14147 assert(false, script.toASM() + ' has no matching Address')
14150 Address.prototype.toBase58Check = function () {
14151 var payload = new Buffer(
21)
14152 payload.writeUInt8(this.version,
0)
14153 this.hash.copy(payload,
1)
14155 return base58check.encode(payload)
14158 Address.prototype.toOutputScript = function () {
14159 var scriptType = findScriptTypeByVersion(this.version)
14161 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
14162 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
14164 assert(false, this.toString() + ' has no matching Script')
14167 Address.prototype.toString = Address.prototype.toBase58Check
14169 module.exports = Address
14171 }).call(this,require("buffer").Buffer)
14172 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
14173 var bs58check = require('bs58check')
14175 function decode () {
14176 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14178 return bs58check.decode.apply(undefined, arguments)
14181 function encode () {
14182 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14184 return bs58check.encode.apply(undefined, arguments)
14192 },{"bs58check":
31}],
56:[function(require,module,exports){
14193 (function (Buffer){
14194 var assert = require('assert')
14195 var bufferutils = require('./bufferutils')
14196 var crypto = require('./crypto')
14198 var Transaction = require('./transaction')
14200 function Block () {
14202 this.prevHash = null
14203 this.merkleRoot = null
14209 Block.fromBuffer = function (buffer) {
14210 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
14213 function readSlice (n) {
14215 return buffer.slice(offset - n, offset)
14218 function readUInt32 () {
14219 var i = buffer.readUInt32LE(offset)
14224 var block = new Block()
14225 block.version = readUInt32()
14226 block.prevHash = readSlice(
32)
14227 block.merkleRoot = readSlice(
32)
14228 block.timestamp = readUInt32()
14229 block.bits = readUInt32()
14230 block.nonce = readUInt32()
14232 if (buffer.length ===
80) return block
14234 function readVarInt () {
14235 var vi = bufferutils.readVarInt(buffer, offset)
14240 // FIXME: poor performance
14241 function readTransaction () {
14242 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
14244 offset += tx.toBuffer().length
14248 var nTransactions = readVarInt()
14249 block.transactions = []
14251 for (var i =
0; i < nTransactions; ++i) {
14252 var tx = readTransaction()
14253 block.transactions.push(tx)
14259 Block.fromHex = function (hex) {
14260 return Block.fromBuffer(new Buffer(hex, 'hex'))
14263 Block.prototype.getHash = function () {
14264 return crypto.hash256(this.toBuffer(true))
14267 Block.prototype.getId = function () {
14268 return bufferutils.reverse(this.getHash()).toString('hex')
14271 Block.prototype.getUTCDate = function () {
14272 var date = new Date(
0) // epoch
14273 date.setUTCSeconds(this.timestamp)
14278 Block.prototype.toBuffer = function (headersOnly) {
14279 var buffer = new Buffer(
80)
14282 function writeSlice (slice) {
14283 slice.copy(buffer, offset)
14284 offset += slice.length
14287 function writeUInt32 (i) {
14288 buffer.writeUInt32LE(i, offset)
14292 writeUInt32(this.version)
14293 writeSlice(this.prevHash)
14294 writeSlice(this.merkleRoot)
14295 writeUInt32(this.timestamp)
14296 writeUInt32(this.bits)
14297 writeUInt32(this.nonce)
14299 if (headersOnly || !this.transactions) return buffer
14301 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
14302 var txBuffers = this.transactions.map(function (tx) {
14303 return tx.toBuffer()
14306 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
14309 Block.prototype.toHex = function (headersOnly) {
14310 return this.toBuffer(headersOnly).toString('hex')
14313 module.exports = Block
14315 }).call(this,require("buffer").Buffer)
14316 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
14317 (function (Buffer){
14318 var assert = require('assert')
14319 var opcodes = require('./opcodes')
14321 // https://github.com/feross/buffer/blob/master/index.js#L1127
14322 function verifuint (value, max) {
14323 assert(typeof value === 'number', 'cannot write a non-number as a number')
14324 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
14325 assert(value <= max, 'value is larger than maximum value for type')
14326 assert(Math.floor(value) === value, 'value has a fractional component')
14329 function pushDataSize (i) {
14330 return i < opcodes.OP_PUSHDATA1 ?
1
14336 function readPushDataInt (buffer, offset) {
14337 var opcode = buffer.readUInt8(offset)
14341 if (opcode < opcodes.OP_PUSHDATA1) {
14346 } else if (opcode === opcodes.OP_PUSHDATA1) {
14347 if (offset +
2 > buffer.length) return null
14348 number = buffer.readUInt8(offset +
1)
14352 } else if (opcode === opcodes.OP_PUSHDATA2) {
14353 if (offset +
3 > buffer.length) return null
14354 number = buffer.readUInt16LE(offset +
1)
14359 if (offset +
5 > buffer.length) return null
14360 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
14362 number = buffer.readUInt32LE(offset +
1)
14373 function readUInt64LE (buffer, offset) {
14374 var a = buffer.readUInt32LE(offset)
14375 var b = buffer.readUInt32LE(offset +
4)
14378 verifuint(b + a,
0x001fffffffffffff)
14383 function readVarInt (buffer, offset) {
14384 var t = buffer.readUInt8(offset)
14393 } else if (t <
254) {
14394 number = buffer.readUInt16LE(offset +
1)
14398 } else if (t <
255) {
14399 number = buffer.readUInt32LE(offset +
1)
14404 number = readUInt64LE(buffer, offset +
1)
14414 function writePushDataInt (buffer, number, offset) {
14415 var size = pushDataSize(number)
14419 buffer.writeUInt8(number, offset)
14422 } else if (size ===
2) {
14423 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
14424 buffer.writeUInt8(number, offset +
1)
14427 } else if (size ===
3) {
14428 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
14429 buffer.writeUInt16LE(number, offset +
1)
14433 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
14434 buffer.writeUInt32LE(number, offset +
1)
14440 function writeUInt64LE (buffer, value, offset) {
14441 verifuint(value,
0x001fffffffffffff)
14443 buffer.writeInt32LE(value & -
1, offset)
14444 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
14447 function varIntSize (i) {
14450 : i <
0x100000000 ?
5
14454 function writeVarInt (buffer, number, offset) {
14455 var size = varIntSize(number)
14459 buffer.writeUInt8(number, offset)
14462 } else if (size ===
3) {
14463 buffer.writeUInt8(
253, offset)
14464 buffer.writeUInt16LE(number, offset +
1)
14467 } else if (size ===
5) {
14468 buffer.writeUInt8(
254, offset)
14469 buffer.writeUInt32LE(number, offset +
1)
14473 buffer.writeUInt8(
255, offset)
14474 writeUInt64LE(buffer, number, offset +
1)
14480 function varIntBuffer (i) {
14481 var size = varIntSize(i)
14482 var buffer = new Buffer(size)
14483 writeVarInt(buffer, i,
0)
14488 function reverse (buffer) {
14489 var buffer2 = new Buffer(buffer)
14490 Array.prototype.reverse.call(buffer2)
14495 pushDataSize: pushDataSize,
14496 readPushDataInt: readPushDataInt,
14497 readUInt64LE: readUInt64LE,
14498 readVarInt: readVarInt,
14500 varIntBuffer: varIntBuffer,
14501 varIntSize: varIntSize,
14502 writePushDataInt: writePushDataInt,
14503 writeUInt64LE: writeUInt64LE,
14504 writeVarInt: writeVarInt
14507 }).call(this,require("buffer").Buffer)
14508 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
14509 var createHash = require('create-hash')
14511 function hash160 (buffer) {
14512 return ripemd160(sha256(buffer))
14515 function hash256 (buffer) {
14516 return sha256(sha256(buffer))
14519 function ripemd160 (buffer) {
14520 return createHash('rmd160').update(buffer).digest()
14523 function sha1 (buffer) {
14524 return createHash('sha1').update(buffer).digest()
14527 function sha256 (buffer) {
14528 return createHash('sha256').update(buffer).digest()
14531 // FIXME: Name not consistent with others
14532 var createHmac = require('create-hmac')
14534 function HmacSHA256 (buffer, secret) {
14535 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
14536 return createHmac('sha256', secret).update(buffer).digest()
14539 function HmacSHA512 (buffer, secret) {
14540 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
14541 return createHmac('sha512', secret).update(buffer).digest()
14545 ripemd160: ripemd160,
14550 HmacSHA256: HmacSHA256,
14551 HmacSHA512: HmacSHA512
14554 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
14555 (function (Buffer){
14556 var assert = require('assert')
14557 var createHmac = require('create-hmac')
14558 var typeForce = require('typeforce')
14560 var BigInteger = require('bigi')
14561 var ECSignature = require('./ecsignature')
14563 var ZERO = new Buffer([
0])
14564 var ONE = new Buffer([
1])
14566 // https://tools.ietf.org/html/rfc6979#section-
3.2
14567 function deterministicGenerateK (curve, hash, d, checkSig) {
14568 typeForce('Buffer', hash)
14569 typeForce('BigInteger', d)
14571 // FIXME: remove/uncomment for
2.0.0
14572 // typeForce('Function', checkSig)
14574 if (typeof checkSig !== 'function') {
14575 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
14577 checkSig = function (k) {
14580 var e = BigInteger.fromBuffer(hash)
14582 var Q = G.multiply(k)
14584 if (curve.isInfinity(Q))
14587 var r = Q.affineX.mod(n)
14588 if (r.signum() ===
0)
14591 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
14592 if (s.signum() ===
0)
14600 assert.equal(hash.length,
32, 'Hash must be
256 bit')
14602 var x = d.toBuffer(
32)
14603 var k = new Buffer(
32)
14604 var v = new Buffer(
32)
14606 // Step A, ignored as hash already provided
14614 k = createHmac('sha256', k)
14622 v = createHmac('sha256', k).update(v).digest()
14625 k = createHmac('sha256', k)
14633 v = createHmac('sha256', k).update(v).digest()
14635 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
14637 v = createHmac('sha256', k).update(v).digest()
14639 var T = BigInteger.fromBuffer(v)
14641 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
14642 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
14643 k = createHmac('sha256', k)
14648 v = createHmac('sha256', k).update(v).digest()
14650 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
14652 v = createHmac('sha256', k).update(v).digest()
14653 T = BigInteger.fromBuffer(v)
14659 function sign (curve, hash, d) {
14662 var e = BigInteger.fromBuffer(hash)
14666 deterministicGenerateK(curve, hash, d, function (k) {
14667 var Q = G.multiply(k)
14669 if (curve.isInfinity(Q))
14672 r = Q.affineX.mod(n)
14673 if (r.signum() ===
0)
14676 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
14677 if (s.signum() ===
0)
14683 var N_OVER_TWO = n.shiftRight(
1)
14685 // enforce low S values, see bip62: 'low s values in signatures'
14686 if (s.compareTo(N_OVER_TWO)
> 0) {
14690 return new ECSignature(r, s)
14693 function verifyRaw (curve, e, signature, Q) {
14697 var r = signature.r
14698 var s = signature.s
14700 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
14701 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
14702 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
14705 var c = s.modInverse(n)
14707 //
1.4.4 Compute u1 = es^−
1 mod n
14708 // u2 = rs^−
1 mod n
14709 var u1 = e.multiply(c).mod(n)
14710 var u2 = r.multiply(c).mod(n)
14712 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
14713 var R = G.multiplyTwo(u1, Q, u2)
14714 var v = R.affineX.mod(n)
14716 //
1.4.5 (cont.) Enforce R is not at infinity
14717 if (curve.isInfinity(R)) return false
14719 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
14723 function verify (curve, hash, signature, Q) {
14724 //
1.4.2 H = Hash(M), already done by the user
14726 var e = BigInteger.fromBuffer(hash)
14728 return verifyRaw(curve, e, signature, Q)
14732 * Recover a public key from a signature.
14734 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
14735 * Key Recovery Operation".
14737 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
14739 function recoverPubKey (curve, e, signature, i) {
14740 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
14745 var r = signature.r
14746 var s = signature.s
14748 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
14749 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
14751 // A set LSB signifies that the y-coordinate is odd
14754 // The more significant bit specifies whether we should use the
14755 // first or second candidate key.
14756 var isSecondKey = i
>> 1
14758 //
1.1 Let x = r + jn
14759 var x = isSecondKey ? r.add(n) : r
14760 var R = curve.pointFromX(isYOdd, x)
14762 //
1.4 Check that nR is at infinity
14763 var nR = R.multiply(n)
14764 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
14766 // Compute -e from e
14767 var eNeg = e.negate().mod(n)
14769 //
1.6.1 Compute Q = r^-
1 (sR - eG)
14770 // Q = r^-
1 (sR + -eG)
14771 var rInv = r.modInverse(n)
14773 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
14780 * Calculate pubkey extraction parameter.
14782 * When extracting a pubkey from a signature, we have to
14783 * distinguish four different cases. Rather than putting this
14784 * burden on the verifier, Bitcoin includes a
2-bit value with the
14787 * This function simply tries all four cases and returns the value
14788 * that resulted in a successful pubkey recovery.
14790 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
14791 for (var i =
0; i <
4; i++) {
14792 var Qprime = recoverPubKey(curve, e, signature, i)
14795 if (Qprime.equals(Q)) {
14800 throw new Error('Unable to find valid recovery factor')
14804 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
14805 deterministicGenerateK: deterministicGenerateK,
14806 recoverPubKey: recoverPubKey,
14809 verifyRaw: verifyRaw
14812 }).call(this,require(
"buffer").Buffer)
14813 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
14814 (function (Buffer){
14815 var assert = require('assert')
14816 var base58check = require('bs58check')
14817 var ecdsa = require('./ecdsa')
14818 var networks = require('./networks')
14819 var randomBytes = require('randombytes')
14820 var typeForce = require('typeforce')
14822 var BigInteger = require('bigi')
14823 var ECPubKey = require('./ecpubkey')
14825 var ecurve = require('ecurve')
14826 var secp256k1 = ecurve.getCurveByName('secp256k1')
14828 function ECKey (d, compressed) {
14829 assert(d.signum()
> 0, 'Private key must be greater than
0')
14830 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
14832 var Q = ECKey.curve.G.multiply(d)
14835 this.pub = new ECPubKey(Q, compressed)
14839 ECKey.curve = secp256k1
14841 // Static constructors
14842 ECKey.fromWIF = function (string) {
14843 var payload = base58check.decode(string)
14844 var compressed = false
14846 // Ignore the version byte
14847 payload = payload.slice(
1)
14849 if (payload.length ===
33) {
14850 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
14852 // Truncate the compression flag
14853 payload = payload.slice(
0, -
1)
14857 assert.equal(payload.length,
32, 'Invalid WIF payload length')
14859 var d = BigInteger.fromBuffer(payload)
14860 return new ECKey(d, compressed)
14863 ECKey.makeRandom = function (compressed, rng) {
14864 rng = rng || randomBytes
14866 var buffer = rng(
32)
14867 typeForce('Buffer', buffer)
14868 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
14870 var d = BigInteger.fromBuffer(buffer)
14871 d = d.mod(ECKey.curve.n)
14873 return new ECKey(d, compressed)
14876 // Export functions
14877 ECKey.prototype.toWIF = function (network) {
14878 network = network || networks.bitcoin
14880 var bufferLen = this.pub.compressed ?
34 :
33
14881 var buffer = new Buffer(bufferLen)
14883 buffer.writeUInt8(network.wif,
0)
14884 this.d.toBuffer(
32).copy(buffer,
1)
14886 if (this.pub.compressed) {
14887 buffer.writeUInt8(
0x01,
33)
14890 return base58check.encode(buffer)
14894 ECKey.prototype.sign = function (hash) {
14895 return ecdsa.sign(ECKey.curve, hash, this.d)
14898 module.exports = ECKey
14900 }).call(this,require(
"buffer").Buffer)
14901 },{
"./ecdsa":
59,
"./ecpubkey":
61,
"./networks":
66,
"assert":
5,
"bigi":
3,
"bs58check":
31,
"buffer":
7,
"ecurve":
49,
"randombytes":
52,
"typeforce":
53}],
61:[function(require,module,exports){
14902 (function (Buffer){
14903 var crypto = require('./crypto')
14904 var ecdsa = require('./ecdsa')
14905 var typeForce = require('typeforce')
14906 var networks = require('./networks')
14908 var Address = require('./address')
14910 var ecurve = require('ecurve')
14911 var secp256k1 = ecurve.getCurveByName('secp256k1')
14913 function ECPubKey (Q, compressed) {
14914 if (compressed === undefined) {
14918 typeForce('Point', Q)
14919 typeForce('Boolean', compressed)
14921 this.compressed = compressed
14926 ECPubKey.curve = secp256k1
14928 // Static constructors
14929 ECPubKey.fromBuffer = function (buffer) {
14930 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
14931 return new ECPubKey(Q, Q.compressed)
14934 ECPubKey.fromHex = function (hex) {
14935 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
14939 ECPubKey.prototype.getAddress = function (network) {
14940 network = network || networks.bitcoin
14942 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
14945 ECPubKey.prototype.verify = function (hash, signature) {
14946 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
14949 // Export functions
14950 ECPubKey.prototype.toBuffer = function () {
14951 return this.Q.getEncoded(this.compressed)
14954 ECPubKey.prototype.toHex = function () {
14955 return this.toBuffer().toString('hex')
14958 module.exports = ECPubKey
14960 }).call(this,require(
"buffer").Buffer)
14961 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
14962 (function (Buffer){
14963 var assert = require('assert')
14964 var typeForce = require('typeforce')
14966 var BigInteger = require('bigi')
14968 function ECSignature (r, s) {
14969 typeForce('BigInteger', r)
14970 typeForce('BigInteger', s)
14976 ECSignature.parseCompact = function (buffer) {
14977 assert.equal(buffer.length,
65, 'Invalid signature length')
14978 var i = buffer.readUInt8(
0) -
27
14981 assert.equal(i, i &
7, 'Invalid signature parameter')
14982 var compressed = !!(i &
4)
14984 // Recovery param only
14987 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
14988 var s = BigInteger.fromBuffer(buffer.slice(
33))
14991 compressed: compressed,
14993 signature: new ECSignature(r, s)
14997 ECSignature.fromDER = function (buffer) {
14998 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
14999 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
15000 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
15002 var rLen = buffer.readUInt8(
3)
15003 assert(rLen
> 0, 'R length is zero')
15005 var offset =
4 + rLen
15006 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
15008 var sLen = buffer.readUInt8(offset +
1)
15009 assert(sLen
> 0, 'S length is zero')
15011 var rB = buffer.slice(
4, offset)
15012 var sB = buffer.slice(offset +
2)
15015 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
15016 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
15019 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
15020 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
15023 assert.equal(offset, buffer.length, 'Invalid DER encoding')
15024 var r = BigInteger.fromDERInteger(rB)
15025 var s = BigInteger.fromDERInteger(sB)
15027 assert(r.signum()
>=
0, 'R value is negative')
15028 assert(s.signum()
>=
0, 'S value is negative')
15030 return new ECSignature(r, s)
15033 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
15034 ECSignature.parseScriptSignature = function (buffer) {
15035 var hashType = buffer.readUInt8(buffer.length -
1)
15036 var hashTypeMod = hashType & ~
0x80
15038 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15041 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
15046 ECSignature.prototype.toCompact = function (i, compressed) {
15053 var buffer = new Buffer(
65)
15054 buffer.writeUInt8(i,
0)
15056 this.r.toBuffer(
32).copy(buffer,
1)
15057 this.s.toBuffer(
32).copy(buffer,
33)
15062 ECSignature.prototype.toDER = function () {
15063 var rBa = this.r.toDERInteger()
15064 var sBa = this.s.toDERInteger()
15069 sequence.push(
0x02, rBa.length)
15070 sequence = sequence.concat(rBa)
15073 sequence.push(
0x02, sBa.length)
15074 sequence = sequence.concat(sBa)
15077 sequence.unshift(
0x30, sequence.length)
15079 return new Buffer(sequence)
15082 ECSignature.prototype.toScriptSignature = function (hashType) {
15083 var hashTypeMod = hashType & ~
0x80
15084 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15086 var hashTypeBuffer = new Buffer(
1)
15087 hashTypeBuffer.writeUInt8(hashType,
0)
15089 return Buffer.concat([this.toDER(), hashTypeBuffer])
15092 module.exports = ECSignature
15094 }).call(this,require(
"buffer").Buffer)
15095 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
15096 (function (Buffer){
15097 var assert = require('assert')
15098 var base58check = require('bs58check')
15099 var bcrypto = require('./crypto')
15100 var createHmac = require('create-hmac')
15101 var typeForce = require('typeforce')
15102 var networks = require('./networks')
15104 var BigInteger = require('bigi')
15105 var ECKey = require('./eckey')
15106 var ECPubKey = require('./ecpubkey')
15108 var ecurve = require('ecurve')
15109 var curve = ecurve.getCurveByName('secp256k1')
15111 function findBIP32NetworkByVersion (version) {
15112 for (var name in networks) {
15113 var network = networks[name]
15115 if (version === network.bip32.private || version === network.bip32.public) {
15120 assert(false, 'Could not find network for ' + version.toString(
16))
15123 function HDNode (K, chainCode, network) {
15124 network = network || networks.bitcoin
15126 typeForce('Buffer', chainCode)
15128 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
15129 assert(network.bip32, 'Unknown BIP32 constants for network')
15131 this.chainCode = chainCode
15134 this.parentFingerprint =
0x00000000
15135 this.network = network
15137 if (K instanceof BigInteger) {
15138 this.privKey = new ECKey(K, true)
15139 this.pubKey = this.privKey.pub
15140 } else if (K instanceof ECKey) {
15141 assert(K.pub.compressed, 'ECKey must be compressed')
15143 this.pubKey = K.pub
15144 } else if (K instanceof ECPubKey) {
15145 assert(K.compressed, 'ECPubKey must be compressed')
15148 this.pubKey = new ECPubKey(K, true)
15152 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
15153 HDNode.HIGHEST_BIT =
0x80000000
15156 HDNode.fromSeedBuffer = function (seed, network) {
15157 typeForce('Buffer', seed)
15159 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
15160 assert(seed.length <=
64, 'Seed should be at most
512 bits')
15162 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
15163 var IL = I.slice(
0,
32)
15164 var IR = I.slice(
32)
15166 // In case IL is
0 or
>= n, the master key is invalid
15167 // This is handled by `new ECKey` in the HDNode constructor
15168 var pIL = BigInteger.fromBuffer(IL)
15170 return new HDNode(pIL, IR, network)
15173 HDNode.fromSeedHex = function (hex, network) {
15174 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
15177 HDNode.fromBase58 = function (string, network) {
15178 return HDNode.fromBuffer(base58check.decode(string), network, true)
15181 // FIXME: remove in
2.x.y
15182 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
15183 if (!__ignoreDeprecation) {
15184 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
15187 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
15189 //
4 byte: version bytes
15190 var version = buffer.readUInt32BE(
0)
15193 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
15197 network = findBIP32NetworkByVersion(version)
15200 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
15201 var depth = buffer.readUInt8(
4)
15203 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15204 var parentFingerprint = buffer.readUInt32BE(
5)
15206 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
15209 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15210 // This is encoded in MSB order. (
0x00000000 if master key)
15211 var index = buffer.readUInt32BE(
9)
15212 assert(depth
> 0 || index ===
0, 'Invalid index')
15214 //
32 bytes: the chain code
15215 var chainCode = buffer.slice(
13,
45)
15218 //
33 bytes: private key data (
0x00 + k)
15219 if (version === network.bip32.private) {
15220 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
15221 data = buffer.slice(
46,
78)
15222 var d = BigInteger.fromBuffer(data)
15223 hd = new HDNode(d, chainCode, network)
15225 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
15227 data = buffer.slice(
45,
78)
15228 var Q = ecurve.Point.decodeFrom(curve, data)
15229 assert.equal(Q.compressed, true, 'Invalid public key')
15231 // Verify that the X coordinate in the public point corresponds to a point on the curve.
15232 // If not, the extended public key is invalid.
15235 hd = new HDNode(Q, chainCode, network)
15240 hd.parentFingerprint = parentFingerprint
15245 // FIXME: remove in
2.x.y
15246 HDNode.fromHex = function (hex, network) {
15247 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
15250 HDNode.prototype.getIdentifier = function () {
15251 return bcrypto.hash160(this.pubKey.toBuffer())
15254 HDNode.prototype.getFingerprint = function () {
15255 return this.getIdentifier().slice(
0,
4)
15258 HDNode.prototype.getAddress = function () {
15259 return this.pubKey.getAddress(this.network)
15262 HDNode.prototype.neutered = function () {
15263 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
15264 neutered.depth = this.depth
15265 neutered.index = this.index
15266 neutered.parentFingerprint = this.parentFingerprint
15271 HDNode.prototype.toBase58 = function (isPrivate) {
15272 return base58check.encode(this.toBuffer(isPrivate, true))
15275 // FIXME: remove in
2.x.y
15276 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
15277 if (isPrivate === undefined) {
15278 isPrivate = !!this.privKey
15280 // FIXME: remove in
2.x.y
15282 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
15285 if (!__ignoreDeprecation) {
15286 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
15290 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
15291 var buffer = new Buffer(HDNode.LENGTH)
15293 //
4 bytes: version bytes
15294 buffer.writeUInt32BE(version,
0)
15297 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
15298 buffer.writeUInt8(this.depth,
4)
15300 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15301 buffer.writeUInt32BE(this.parentFingerprint,
5)
15303 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15304 // This is encoded in Big endian. (
0x00000000 if master key)
15305 buffer.writeUInt32BE(this.index,
9)
15307 //
32 bytes: the chain code
15308 this.chainCode.copy(buffer,
13)
15310 //
33 bytes: the public key or private key data
15312 // FIXME: remove in
2.x.y
15313 assert(this.privKey, 'Missing private key')
15315 //
0x00 + k for private keys
15316 buffer.writeUInt8(
0,
45)
15317 this.privKey.d.toBuffer(
32).copy(buffer,
46)
15319 // X9.62 encoding for public keys
15320 this.pubKey.toBuffer().copy(buffer,
45)
15326 // FIXME: remove in
2.x.y
15327 HDNode.prototype.toHex = function (isPrivate) {
15328 return this.toBuffer(isPrivate).toString('hex')
15331 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
15332 HDNode.prototype.derive = function (index) {
15333 var isHardened = index
>= HDNode.HIGHEST_BIT
15334 var indexBuffer = new Buffer(
4)
15335 indexBuffer.writeUInt32BE(index,
0)
15341 assert(this.privKey, 'Could not derive hardened child key')
15343 // data =
0x00 || ser256(kpar) || ser32(index)
15344 data = Buffer.concat([
15345 this.privKey.d.toBuffer(
33),
15351 // data = serP(point(kpar)) || ser32(index)
15352 // = serP(Kpar) || ser32(index)
15353 data = Buffer.concat([
15354 this.pubKey.toBuffer(),
15359 var I = createHmac('sha512', this.chainCode).update(data).digest()
15360 var IL = I.slice(
0,
32)
15361 var IR = I.slice(
32)
15363 var pIL = BigInteger.fromBuffer(IL)
15365 // In case parse256(IL)
>= n, proceed with the next value for i
15366 if (pIL.compareTo(curve.n)
>=
0) {
15367 return this.derive(index +
1)
15370 // Private parent key -
> private child key
15372 if (this.privKey) {
15373 // ki = parse256(IL) + kpar (mod n)
15374 var ki = pIL.add(this.privKey.d).mod(curve.n)
15376 // In case ki ==
0, proceed with the next value for i
15377 if (ki.signum() ===
0) {
15378 return this.derive(index +
1)
15381 hd = new HDNode(ki, IR, this.network)
15383 // Public parent key -
> public child key
15385 // Ki = point(parse256(IL)) + Kpar
15387 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
15389 // In case Ki is the point at infinity, proceed with the next value for i
15390 if (curve.isInfinity(Ki)) {
15391 return this.derive(index +
1)
15394 hd = new HDNode(Ki, IR, this.network)
15397 hd.depth = this.depth +
1
15399 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
15404 HDNode.prototype.deriveHardened = function (index) {
15405 // Only derives hardened private keys by default
15406 return this.derive(index + HDNode.HIGHEST_BIT)
15409 HDNode.prototype.toString = HDNode.prototype.toBase58
15411 module.exports = HDNode
15413 }).call(this,require("buffer").Buffer)
15414 },{"./crypto":
58,"./eckey":
60,"./ecpubkey":
61,"./networks":
66,"assert":
5,"bigi":
3,"bs58check":
31,"buffer":
7,"create-hmac":
45,"ecurve":
49,"typeforce":
53}],
64:[function(require,module,exports){
15416 Address: require('./address'),
15417 base58check: require('./base58check'),
15418 Block: require('./block'),
15419 bufferutils: require('./bufferutils'),
15420 crypto: require('./crypto'),
15421 ecdsa: require('./ecdsa'),
15422 ECKey: require('./eckey'),
15423 ECPubKey: require('./ecpubkey'),
15424 ECSignature: require('./ecsignature'),
15425 Message: require('./message'),
15426 opcodes: require('./opcodes'),
15427 HDNode: require('./hdnode'),
15428 Script: require('./script'),
15429 scripts: require('./scripts'),
15430 Transaction: require('./transaction'),
15431 TransactionBuilder: require('./transaction_builder'),
15432 networks: require('./networks'),
15433 Wallet: require('./wallet')
15436 },{"./address":
54,"./base58check":
55,"./block":
56,"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./eckey":
60,"./ecpubkey":
61,"./ecsignature":
62,"./hdnode":
63,"./message":
65,"./networks":
66,"./opcodes":
67,"./script":
68,"./scripts":
69,"./transaction":
70,"./transaction_builder":
71,"./wallet":
72}],
65:[function(require,module,exports){
15437 (function (Buffer){
15438 var bufferutils = require('./bufferutils')
15439 var crypto = require('./crypto')
15440 var ecdsa = require('./ecdsa')
15441 var networks = require('./networks')
15443 var BigInteger = require('bigi')
15444 var ECPubKey = require('./ecpubkey')
15445 var ECSignature = require('./ecsignature')
15447 var ecurve = require('ecurve')
15448 var ecparams = ecurve.getCurveByName('secp256k1')
15450 function magicHash (message, network) {
15451 var magicPrefix = new Buffer(network.magicPrefix)
15452 var messageBuffer = new Buffer(message)
15453 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
15455 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
15456 return crypto.hash256(buffer)
15459 function sign (privKey, message, network) {
15460 network = network || networks.bitcoin
15462 var hash = magicHash(message, network)
15463 var signature = privKey.sign(hash)
15464 var e = BigInteger.fromBuffer(hash)
15465 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
15467 return signature.toCompact(i, privKey.pub.compressed)
15470 // TODO: network could be implied from address
15471 function verify (address, signature, message, network) {
15472 if (!Buffer.isBuffer(signature)) {
15473 signature = new Buffer(signature, 'base64')
15476 network = network || networks.bitcoin
15478 var hash = magicHash(message, network)
15479 var parsed = ECSignature.parseCompact(signature)
15480 var e = BigInteger.fromBuffer(hash)
15481 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
15483 var pubKey = new ECPubKey(Q, parsed.compressed)
15484 return pubKey.getAddress(network).toString() === address.toString()
15488 magicHash: magicHash,
15493 }).call(this,require("buffer").Buffer)
15494 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
15495 // https://en.bitcoin.it/wiki/List_of_address_prefixes
15496 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
15500 magicPrefix: '\x18Bitcoin Signed Message:\n',
15502 public:
0x0488b21e,
15503 private:
0x0488ade4
15508 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
15509 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
15510 estimateFee: estimateFee('bitcoin')
15513 magicPrefix: '\x18Bitcoin Signed Message:\n',
15515 public:
0x043587cf,
15516 private:
0x04358394
15521 dustThreshold:
546,
15523 estimateFee: estimateFee('testnet')
15526 magicPrefix: '\x19Litecoin Signed Message:\n',
15528 public:
0x019da462,
15529 private:
0x019d9cfe
15534 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
15535 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
15536 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
15537 estimateFee: estimateFee('litecoin')
15540 magicPrefix: '\x19Dogecoin Signed Message:\n',
15542 public:
0x02facafd,
15543 private:
0x02fac398
15548 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
15549 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
15550 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
15551 estimateFee: estimateFee('dogecoin')
15554 magicPrefix: '\x18Viacoin Signed Message:\n',
15556 public:
0x0488b21e,
15557 private:
0x0488ade4
15562 dustThreshold:
560,
15563 dustSoftThreshold:
100000,
15564 feePerKb:
100000, //
15565 estimateFee: estimateFee('viacoin')
15568 magicPrefix: '\x18Viacoin Signed Message:\n',
15570 public:
0x043587cf,
15571 private:
0x04358394
15576 dustThreshold:
560,
15577 dustSoftThreshold:
100000,
15579 estimateFee: estimateFee('viacointestnet')
15582 magicPrefix: '\x19Gamerscoin Signed Message:\n',
15584 public:
0x019da462,
15585 private:
0x019d9cfe
15590 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
15591 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
15592 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
15593 estimateFee: estimateFee('gamerscoin')
15596 magicPrefix: '\x19Jumbucks Signed Message:\n',
15598 public:
0x037a689a,
15599 private:
0x037a6460
15605 dustSoftThreshold:
10000,
15607 estimateFee: estimateFee('jumbucks')
15610 magicPrefix: '\x18Zetacoin Signed Message:\n',
15612 public:
0x0488b21e,
15613 private:
0x0488ade4
15618 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
15619 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
15620 estimateFee: estimateFee('zetacoin')
15624 function estimateFee (type) {
15625 return function (tx) {
15626 var network = networks[type]
15627 var baseFee = network.feePerKb
15628 var byteSize = tx.toBuffer().length
15630 var fee = baseFee * Math.ceil(byteSize /
1000)
15631 if (network.dustSoftThreshold === undefined) return fee
15633 tx.outs.forEach(function (e) {
15634 if (e.value < network.dustSoftThreshold) {
15643 module.exports = networks
15645 },{}],
67:[function(require,module,exports){
15686 OP_TOALTSTACK:
107,
15687 OP_FROMALTSTACK:
108,
15719 OP_EQUALVERIFY:
136,
15744 OP_NUMEQUALVERIFY:
157,
15745 OP_NUMNOTEQUAL:
158,
15747 OP_GREATERTHAN:
160,
15748 OP_LESSTHANOREQUAL:
161,
15749 OP_GREATERTHANOREQUAL:
162,
15761 OP_CODESEPARATOR:
171,
15763 OP_CHECKSIGVERIFY:
173,
15764 OP_CHECKMULTISIG:
174,
15765 OP_CHECKMULTISIGVERIFY:
175,
15779 // template matching params
15780 OP_PUBKEYHASH:
253,
15782 OP_INVALIDOPCODE:
255
15785 },{}],
68:[function(require,module,exports){
15786 (function (Buffer){
15787 var assert = require('assert')
15788 var bufferutils = require('./bufferutils')
15789 var crypto = require('./crypto')
15790 var typeForce = require('typeforce')
15791 var opcodes = require('./opcodes')
15793 function Script (buffer, chunks) {
15794 typeForce('Buffer', buffer)
15795 typeForce('Array', chunks)
15797 this.buffer = buffer
15798 this.chunks = chunks
15801 Script.fromASM = function (asm) {
15802 var strChunks = asm.split(' ')
15803 var chunks = strChunks.map(function (strChunk) {
15805 if (strChunk in opcodes) {
15806 return opcodes[strChunk]
15810 return new Buffer(strChunk, 'hex')
15814 return Script.fromChunks(chunks)
15817 Script.fromBuffer = function (buffer) {
15821 while (i < buffer.length) {
15822 var opcode = buffer.readUInt8(i)
15825 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
15826 var d = bufferutils.readPushDataInt(buffer, i)
15828 // did reading a pushDataInt fail? return non-chunked script
15829 if (d === null) return new Script(buffer, [])
15832 // attempt to read too much data?
15833 if (i + d.number
> buffer.length) return new Script(buffer, [])
15835 var data = buffer.slice(i, i + d.number)
15842 chunks.push(opcode)
15848 return new Script(buffer, chunks)
15851 Script.fromChunks = function (chunks) {
15852 typeForce('Array', chunks)
15854 var bufferSize = chunks.reduce(function (accum, chunk) {
15856 if (Buffer.isBuffer(chunk)) {
15857 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
15864 var buffer = new Buffer(bufferSize)
15867 chunks.forEach(function (chunk) {
15869 if (Buffer.isBuffer(chunk)) {
15870 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
15872 chunk.copy(buffer, offset)
15873 offset += chunk.length
15877 buffer.writeUInt8(chunk, offset)
15882 assert.equal(offset, buffer.length, 'Could not decode chunks')
15883 return new Script(buffer, chunks)
15886 Script.fromHex = function (hex) {
15887 return Script.fromBuffer(new Buffer(hex, 'hex'))
15890 Script.EMPTY = Script.fromChunks([])
15892 Script.prototype.getHash = function () {
15893 return crypto.hash160(this.buffer)
15896 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
15897 Script.prototype.without = function (needle) {
15898 return Script.fromChunks(this.chunks.filter(function (op) {
15899 return op !== needle
15903 var reverseOps = []
15904 for (var op in opcodes) {
15905 var code = opcodes[op]
15906 reverseOps[code] = op
15909 Script.prototype.toASM = function () {
15910 return this.chunks.map(function (chunk) {
15912 if (Buffer.isBuffer(chunk)) {
15913 return chunk.toString('hex')
15917 return reverseOps[chunk]
15922 Script.prototype.toBuffer = function () {
15926 Script.prototype.toHex = function () {
15927 return this.toBuffer().toString('hex')
15930 module.exports = Script
15932 }).call(this,require("buffer").Buffer)
15933 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
15934 (function (Buffer){
15935 var assert = require('assert')
15936 var ops = require('./opcodes')
15937 var typeForce = require('typeforce')
15939 var ecurve = require('ecurve')
15940 var curve = ecurve.getCurveByName('secp256k1')
15942 var ECSignature = require('./ecsignature')
15943 var Script = require('./script')
15945 function isCanonicalPubKey (buffer) {
15946 if (!Buffer.isBuffer(buffer)) return false
15949 ecurve.Point.decodeFrom(curve, buffer)
15951 if (!(e.message.match(/Invalid sequence (length|tag)/)))
15960 function isCanonicalSignature (buffer) {
15961 if (!Buffer.isBuffer(buffer)) return false
15964 ECSignature.parseScriptSignature(buffer)
15966 if (!(e.message.match(/Not a DER sequence|Invalid sequence length|Expected a DER integer|R length is zero|S length is zero|R value excessively padded|S value excessively padded|R value is negative|S value is negative|Invalid hashType/))) {
15976 function isPubKeyHashInput (script) {
15977 return script.chunks.length ===
2 &&
15978 isCanonicalSignature(script.chunks[
0]) &&
15979 isCanonicalPubKey(script.chunks[
1])
15982 function isPubKeyHashOutput (script) {
15983 return script.chunks.length ===
5 &&
15984 script.chunks[
0] === ops.OP_DUP &&
15985 script.chunks[
1] === ops.OP_HASH160 &&
15986 Buffer.isBuffer(script.chunks[
2]) &&
15987 script.chunks[
2].length ===
20 &&
15988 script.chunks[
3] === ops.OP_EQUALVERIFY &&
15989 script.chunks[
4] === ops.OP_CHECKSIG
15992 function isPubKeyInput (script) {
15993 return script.chunks.length ===
1 &&
15994 isCanonicalSignature(script.chunks[
0])
15997 function isPubKeyOutput (script) {
15998 return script.chunks.length ===
2 &&
15999 isCanonicalPubKey(script.chunks[
0]) &&
16000 script.chunks[
1] === ops.OP_CHECKSIG
16003 function isScriptHashInput (script, allowIncomplete) {
16004 if (script.chunks.length <
2) return false
16006 var lastChunk = script.chunks[script.chunks.length -
1]
16007 if (!Buffer.isBuffer(lastChunk)) return false
16009 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
16010 var redeemScript = Script.fromBuffer(lastChunk)
16012 // is redeemScript a valid script?
16013 if (redeemScript.chunks.length ===
0) return false
16015 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
16018 function isScriptHashOutput (script) {
16019 return script.chunks.length ===
3 &&
16020 script.chunks[
0] === ops.OP_HASH160 &&
16021 Buffer.isBuffer(script.chunks[
1]) &&
16022 script.chunks[
1].length ===
20 &&
16023 script.chunks[
2] === ops.OP_EQUAL
16026 // allowIncomplete is to account for combining signatures
16027 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
16028 function isMultisigInput (script, allowIncomplete) {
16029 if (script.chunks.length <
2) return false
16030 if (script.chunks[
0] !== ops.OP_0) return false
16032 if (allowIncomplete) {
16033 return script.chunks.slice(
1).every(function (chunk) {
16034 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
16038 return script.chunks.slice(
1).every(isCanonicalSignature)
16041 function isMultisigOutput (script) {
16042 if (script.chunks.length <
4) return false
16043 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
16045 var mOp = script.chunks[
0]
16046 if (mOp === ops.OP_0) return false
16047 if (mOp < ops.OP_1) return false
16048 if (mOp
> ops.OP_16) return false
16050 var nOp = script.chunks[script.chunks.length -
2]
16051 if (nOp === ops.OP_0) return false
16052 if (nOp < ops.OP_1) return false
16053 if (nOp
> ops.OP_16) return false
16055 var m = mOp - (ops.OP_1 -
1)
16056 var n = nOp - (ops.OP_1 -
1)
16057 if (n < m) return false
16059 var pubKeys = script.chunks.slice(
1, -
2)
16060 if (n < pubKeys.length) return false
16062 return pubKeys.every(isCanonicalPubKey)
16065 function isNullDataOutput (script) {
16066 return script.chunks[
0] === ops.OP_RETURN
16069 function classifyOutput (script) {
16070 typeForce('Script', script)
16072 if (isPubKeyHashOutput(script)) {
16073 return 'pubkeyhash'
16074 } else if (isScriptHashOutput(script)) {
16075 return 'scripthash'
16076 } else if (isMultisigOutput(script)) {
16078 } else if (isPubKeyOutput(script)) {
16080 } else if (isNullDataOutput(script)) {
16084 return 'nonstandard'
16087 function classifyInput (script, allowIncomplete) {
16088 typeForce('Script', script)
16090 if (isPubKeyHashInput(script)) {
16091 return 'pubkeyhash'
16092 } else if (isMultisigInput(script, allowIncomplete)) {
16094 } else if (isScriptHashInput(script, allowIncomplete)) {
16095 return 'scripthash'
16096 } else if (isPubKeyInput(script)) {
16100 return 'nonstandard'
16103 // Standard Script Templates
16104 // {pubKey} OP_CHECKSIG
16105 function pubKeyOutput (pubKey) {
16106 return Script.fromChunks([
16112 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
16113 function pubKeyHashOutput (hash) {
16114 typeForce('Buffer', hash)
16116 return Script.fromChunks([
16120 ops.OP_EQUALVERIFY,
16125 // OP_HASH160 {scriptHash} OP_EQUAL
16126 function scriptHashOutput (hash) {
16127 typeForce('Buffer', hash)
16129 return Script.fromChunks([
16136 // m [pubKeys ...] n OP_CHECKMULTISIG
16137 function multisigOutput (m, pubKeys) {
16138 typeForce(['ECPubKey'], pubKeys)
16140 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
16142 var pubKeyBuffers = pubKeys.map(function (pubKey) {
16143 return pubKey.toBuffer()
16145 var n = pubKeys.length
16147 return Script.fromChunks([].concat(
16148 (ops.OP_1 -
1) + m,
16150 (ops.OP_1 -
1) + n,
16151 ops.OP_CHECKMULTISIG
16156 function pubKeyInput (signature) {
16157 typeForce('Buffer', signature)
16159 return Script.fromChunks([signature])
16162 // {signature} {pubKey}
16163 function pubKeyHashInput (signature, pubKey) {
16164 typeForce('Buffer', signature)
16166 return Script.fromChunks([signature, pubKey.toBuffer()])
16169 //
<scriptSig> {serialized scriptPubKey script}
16170 function scriptHashInput (scriptSig, scriptPubKey) {
16171 return Script.fromChunks([].concat(
16173 scriptPubKey.toBuffer()
16177 // OP_0 [signatures ...]
16178 function multisigInput (signatures, scriptPubKey) {
16179 if (scriptPubKey) {
16180 assert(isMultisigOutput(scriptPubKey))
16182 var mOp = scriptPubKey.chunks[
0]
16183 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
16184 var m = mOp - (ops.OP_1 -
1)
16185 var n = nOp - (ops.OP_1 -
1)
16187 assert(signatures.length
>= m, 'Not enough signatures provided')
16188 assert(signatures.length <= n, 'Too many signatures provided')
16191 return Script.fromChunks([].concat(ops.OP_0, signatures))
16194 function nullDataOutput (data) {
16195 return Script.fromChunks([ops.OP_RETURN, data])
16199 isCanonicalPubKey: isCanonicalPubKey,
16200 isCanonicalSignature: isCanonicalSignature,
16201 isPubKeyHashInput: isPubKeyHashInput,
16202 isPubKeyHashOutput: isPubKeyHashOutput,
16203 isPubKeyInput: isPubKeyInput,
16204 isPubKeyOutput: isPubKeyOutput,
16205 isScriptHashInput: isScriptHashInput,
16206 isScriptHashOutput: isScriptHashOutput,
16207 isMultisigInput: isMultisigInput,
16208 isMultisigOutput: isMultisigOutput,
16209 isNullDataOutput: isNullDataOutput,
16210 classifyOutput: classifyOutput,
16211 classifyInput: classifyInput,
16212 pubKeyOutput: pubKeyOutput,
16213 pubKeyHashOutput: pubKeyHashOutput,
16214 scriptHashOutput: scriptHashOutput,
16215 multisigOutput: multisigOutput,
16216 pubKeyInput: pubKeyInput,
16217 pubKeyHashInput: pubKeyHashInput,
16218 scriptHashInput: scriptHashInput,
16219 multisigInput: multisigInput,
16220 dataOutput: function (data) {
16221 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
16222 return nullDataOutput(data)
16224 nullDataOutput: nullDataOutput
16227 }).call(this,require("buffer").Buffer)
16228 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
16229 (function (Buffer){
16230 var assert = require('assert')
16231 var bufferutils = require('./bufferutils')
16232 var crypto = require('./crypto')
16233 var typeForce = require('typeforce')
16234 var opcodes = require('./opcodes')
16235 var scripts = require('./scripts')
16237 var Address = require('./address')
16238 var ECSignature = require('./ecsignature')
16239 var Script = require('./script')
16241 function Transaction () {
16248 Transaction.DEFAULT_SEQUENCE =
0xffffffff
16249 Transaction.SIGHASH_ALL =
0x01
16250 Transaction.SIGHASH_NONE =
0x02
16251 Transaction.SIGHASH_SINGLE =
0x03
16252 Transaction.SIGHASH_ANYONECANPAY =
0x80
16254 Transaction.fromBuffer = function (buffer, __disableAssert) {
16256 function readSlice (n) {
16258 return buffer.slice(offset - n, offset)
16261 function readUInt32 () {
16262 var i = buffer.readUInt32LE(offset)
16267 function readUInt64 () {
16268 var i = bufferutils.readUInt64LE(buffer, offset)
16273 function readVarInt () {
16274 var vi = bufferutils.readVarInt(buffer, offset)
16279 function readScript () {
16280 return Script.fromBuffer(readSlice(readVarInt()))
16283 function readGenerationScript () {
16284 return new Script(readSlice(readVarInt()), [])
16287 var tx = new Transaction()
16288 tx.version = readUInt32()
16290 var vinLen = readVarInt()
16291 for (var i =
0; i < vinLen; ++i) {
16292 var hash = readSlice(
32)
16294 if (Transaction.isCoinbaseHash(hash)) {
16297 index: readUInt32(),
16298 script: readGenerationScript(),
16299 sequence: readUInt32()
16304 index: readUInt32(),
16305 script: readScript(),
16306 sequence: readUInt32()
16311 var voutLen = readVarInt()
16312 for (i =
0; i < voutLen; ++i) {
16314 value: readUInt64(),
16315 script: readScript()
16319 tx.locktime = readUInt32()
16321 if (!__disableAssert) {
16322 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
16328 Transaction.fromHex = function (hex) {
16329 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
16332 Transaction.isCoinbaseHash = function (buffer) {
16333 return Array.prototype.every.call(buffer, function (x) {
16339 * Create a new txIn.
16341 * Can be called with any of:
16343 * - A transaction and an index
16344 * - A transaction hash and an index
16346 * Note that this method does not sign the created input.
16348 Transaction.prototype.addInput = function (hash, index, sequence, script) {
16349 if (sequence === undefined || sequence === null) {
16350 sequence = Transaction.DEFAULT_SEQUENCE
16353 script = script || Script.EMPTY
16355 if (typeof hash === 'string') {
16356 // TxId hex is big-endian, we need little-endian
16357 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
16358 } else if (hash instanceof Transaction) {
16359 hash = hash.getHash()
16362 typeForce('Buffer', hash)
16363 typeForce('Number', index)
16364 typeForce('Number', sequence)
16365 typeForce('Script', script)
16367 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
16369 // Add the input and return the input's index
16370 return (this.ins.push({
16379 * Create a new txOut.
16381 * Can be called with:
16383 * - A base58 address string and a value
16384 * - An Address object and a value
16385 * - A scriptPubKey Script and a value
16387 Transaction.prototype.addOutput = function (scriptPubKey, value) {
16388 // Attempt to get a valid address if it's a base58 address string
16389 if (typeof scriptPubKey === 'string') {
16390 scriptPubKey = Address.fromBase58Check(scriptPubKey)
16393 // Attempt to get a valid script if it's an Address object
16394 if (scriptPubKey instanceof Address) {
16395 scriptPubKey = scriptPubKey.toOutputScript()
16398 typeForce('Script', scriptPubKey)
16399 typeForce('Number', value)
16401 // Add the output and return the output's index
16402 return (this.outs.push({
16403 script: scriptPubKey,
16408 Transaction.prototype.clone = function () {
16409 var newTx = new Transaction()
16410 newTx.version = this.version
16411 newTx.locktime = this.locktime
16413 newTx.ins = this.ins.map(function (txIn) {
16417 script: txIn.script,
16418 sequence: txIn.sequence
16422 newTx.outs = this.outs.map(function (txOut) {
16424 script: txOut.script,
16433 * Hash transaction for signing a specific input.
16435 * Bitcoin uses a different hash for each signed transaction input. This
16436 * method copies the transaction, makes the necessary changes based on the
16437 * hashType, serializes and finally hashes the result. This hash can then be
16438 * used to sign the transaction input in question.
16440 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
16441 // FIXME: remove in
2.x.y
16442 if (arguments[
0] instanceof Script) {
16443 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
16445 // swap the arguments (must be stored in tmp, arguments is special)
16446 var tmp = arguments[
0]
16447 inIndex = arguments[
1]
16448 prevOutScript = tmp
16451 typeForce('Number', inIndex)
16452 typeForce('Script', prevOutScript)
16453 typeForce('Number', hashType)
16455 assert(inIndex
>=
0, 'Invalid vin index')
16456 assert(inIndex < this.ins.length, 'Invalid vin index')
16458 var txTmp = this.clone()
16459 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
16461 // Blank out other inputs' signatures
16462 txTmp.ins.forEach(function (txIn) {
16463 txIn.script = Script.EMPTY
16465 txTmp.ins[inIndex].script = hashScript
16467 var hashTypeModifier = hashType &
0x1f
16469 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
16470 assert(false, 'SIGHASH_NONE not yet supported')
16471 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
16472 assert(false, 'SIGHASH_SINGLE not yet supported')
16475 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
16476 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
16479 var hashTypeBuffer = new Buffer(
4)
16480 hashTypeBuffer.writeInt32LE(hashType,
0)
16482 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
16483 return crypto.hash256(buffer)
16486 Transaction.prototype.getHash = function () {
16487 return crypto.hash256(this.toBuffer())
16490 Transaction.prototype.getId = function () {
16491 // TxHash is little-endian, we need big-endian
16492 return bufferutils.reverse(this.getHash()).toString('hex')
16495 Transaction.prototype.toBuffer = function () {
16496 function scriptSize (script) {
16497 var length = script.buffer.length
16499 return bufferutils.varIntSize(length) + length
16502 var buffer = new Buffer(
16504 bufferutils.varIntSize(this.ins.length) +
16505 bufferutils.varIntSize(this.outs.length) +
16506 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
16507 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
16511 function writeSlice (slice) {
16512 slice.copy(buffer, offset)
16513 offset += slice.length
16516 function writeUInt32 (i) {
16517 buffer.writeUInt32LE(i, offset)
16521 function writeUInt64 (i) {
16522 bufferutils.writeUInt64LE(buffer, i, offset)
16526 function writeVarInt (i) {
16527 var n = bufferutils.writeVarInt(buffer, i, offset)
16531 writeUInt32(this.version)
16532 writeVarInt(this.ins.length)
16534 this.ins.forEach(function (txIn) {
16535 writeSlice(txIn.hash)
16536 writeUInt32(txIn.index)
16537 writeVarInt(txIn.script.buffer.length)
16538 writeSlice(txIn.script.buffer)
16539 writeUInt32(txIn.sequence)
16542 writeVarInt(this.outs.length)
16543 this.outs.forEach(function (txOut) {
16544 writeUInt64(txOut.value)
16545 writeVarInt(txOut.script.buffer.length)
16546 writeSlice(txOut.script.buffer)
16549 writeUInt32(this.locktime)
16554 Transaction.prototype.toHex = function () {
16555 return this.toBuffer().toString('hex')
16558 Transaction.prototype.setInputScript = function (index, script) {
16559 typeForce('Number', index)
16560 typeForce('Script', script)
16562 this.ins[index].script = script
16565 // FIXME: remove in
2.x.y
16566 Transaction.prototype.sign = function (index, privKey, hashType) {
16567 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
16569 var prevOutScript = privKey.pub.getAddress().toOutputScript()
16570 var signature = this.signInput(index, prevOutScript, privKey, hashType)
16572 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
16573 this.setInputScript(index, scriptSig)
16576 // FIXME: remove in
2.x.y
16577 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
16578 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
16580 hashType = hashType || Transaction.SIGHASH_ALL
16582 var hash = this.hashForSignature(index, prevOutScript, hashType)
16583 var signature = privKey.sign(hash)
16585 return signature.toScriptSignature(hashType)
16588 // FIXME: remove in
2.x.y
16589 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
16590 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
16592 var parsed = ECSignature.parseScriptSignature(buffer)
16593 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
16595 return pubKey.verify(hash, parsed.signature)
16598 module.exports = Transaction
16600 }).call(this,require("buffer").Buffer)
16601 },{"./address":
54,"./bufferutils":
57,"./crypto":
58,"./ecsignature":
62,"./opcodes":
67,"./script":
68,"./scripts":
69,"assert":
5,"buffer":
7,"typeforce":
53}],
71:[function(require,module,exports){
16602 (function (Buffer){
16603 var assert = require('assert')
16604 var ops = require('./opcodes')
16605 var scripts = require('./scripts')
16607 var ECPubKey = require('./ecpubkey')
16608 var ECSignature = require('./ecsignature')
16609 var Script = require('./script')
16610 var Transaction = require('./transaction')
16612 function extractInput (txIn) {
16614 var scriptSig = txIn.script
16616 var prevOutType = scripts.classifyInput(scriptSig, true)
16619 // Re-classify if scriptHash
16620 if (prevOutType === 'scripthash') {
16621 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
16622 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
16624 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
16625 scriptType = scripts.classifyInput(scriptSig, true)
16627 scriptType = prevOutType
16630 // Extract hashType, pubKeys and signatures
16631 var hashType, parsed, pubKeys, signatures
16633 switch (scriptType) {
16634 case 'pubkeyhash': {
16635 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
16636 hashType = parsed.hashType
16637 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
16638 signatures = [parsed.signature]
16639 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
16645 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
16646 hashType = parsed.hashType
16647 signatures = [parsed.signature]
16649 if (redeemScript) {
16650 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
16657 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
16658 if (chunk === ops.OP_0) return chunk
16660 var parsed = ECSignature.parseScriptSignature(chunk)
16661 hashType = parsed.hashType
16663 return parsed.signature
16666 if (redeemScript) {
16667 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16675 hashType: hashType,
16676 prevOutScript: prevOutScript,
16677 prevOutType: prevOutType,
16679 redeemScript: redeemScript,
16680 scriptType: scriptType,
16681 signatures: signatures
16685 function TransactionBuilder () {
16686 this.prevTxMap = {}
16687 this.prevOutScripts = {}
16688 this.prevOutTypes = {}
16691 this.tx = new Transaction()
16694 TransactionBuilder.fromTransaction = function (transaction) {
16695 var txb = new TransactionBuilder()
16697 // Copy other transaction fields
16698 txb.tx.version = transaction.version
16699 txb.tx.locktime = transaction.locktime
16701 // Extract/add inputs
16702 transaction.ins.forEach(function (txIn) {
16703 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
16706 // Extract/add outputs
16707 transaction.outs.forEach(function (txOut) {
16708 txb.addOutput(txOut.script, txOut.value)
16711 // Extract/add signatures
16712 txb.inputs = transaction.ins.map(function (txIn) {
16713 // TODO: remove me after testcase added
16714 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
16716 // Ignore empty scripts
16717 if (txIn.script.buffer.length ===
0) return {}
16719 return extractInput(txIn)
16725 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
16729 if (typeof prevTx === 'string') {
16730 prevOutHash = new Buffer(prevTx, 'hex')
16732 // TxId hex is big-endian, we want little-endian hash
16733 Array.prototype.reverse.call(prevOutHash)
16736 } else if (prevTx instanceof Transaction) {
16737 prevOutHash = prevTx.getHash()
16738 prevOutScript = prevTx.outs[index].script
16742 prevOutHash = prevTx
16746 if (prevOutScript) {
16747 var prevOutType = scripts.classifyOutput(prevOutScript)
16749 // if we can, extract pubKey information
16750 switch (prevOutType) {
16752 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16757 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
16762 if (prevOutType !== 'scripthash') {
16763 input.scriptType = prevOutType
16766 input.prevOutScript = prevOutScript
16767 input.prevOutType = prevOutType
16770 assert(this.inputs.every(function (input2) {
16771 if (input2.hashType === undefined) return true
16773 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
16774 }), 'No, this would invalidate signatures')
16776 var prevOut = prevOutHash.toString('hex') + ':' + index
16777 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
16779 var vin = this.tx.addInput(prevOutHash, index, sequence)
16780 this.inputs[vin] = input
16781 this.prevTxMap[prevOut] = vin
16786 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
16787 assert(this.inputs.every(function (input) {
16788 if (input.hashType === undefined) return true
16790 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
16791 }), 'No, this would invalidate signatures')
16793 return this.tx.addOutput(scriptPubKey, value)
16796 TransactionBuilder.prototype.build = function () {
16797 return this.__build(false)
16799 TransactionBuilder.prototype.buildIncomplete = function () {
16800 return this.__build(true)
16803 var canSignTypes = {
16804 'pubkeyhash': true,
16809 TransactionBuilder.prototype.__build = function (allowIncomplete) {
16810 if (!allowIncomplete) {
16811 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
16812 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
16815 var tx = this.tx.clone()
16817 // Create script signatures from signature meta-data
16818 this.inputs.forEach(function (input, index) {
16819 var scriptType = input.scriptType
16822 if (!allowIncomplete) {
16823 assert(!!scriptType, 'Transaction is not complete')
16824 assert(scriptType in canSignTypes, scriptType + ' not supported')
16825 assert(input.signatures, 'Transaction is missing signatures')
16828 if (input.signatures) {
16829 switch (scriptType) {
16830 case 'pubkeyhash': {
16831 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
16832 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
16837 // Array.prototype.map is sparse-compatible
16838 var msSignatures = input.signatures.map(function (signature) {
16839 return signature && signature.toScriptSignature(input.hashType)
16842 // fill in blanks with OP_0
16843 if (allowIncomplete) {
16844 for (var i =
0; i < msSignatures.length; ++i) {
16845 if (msSignatures[i]) continue
16847 msSignatures[i] = ops.OP_0
16850 // Array.prototype.filter returns non-sparse array
16851 msSignatures = msSignatures.filter(function (x) { return x })
16854 var redeemScript = allowIncomplete ? undefined : input.redeemScript
16855 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
16860 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
16861 scriptSig = scripts.pubKeyInput(pkSignature)
16867 // did we build a scriptSig?
16869 // wrap as scriptHash if necessary
16870 if (input.prevOutType === 'scripthash') {
16871 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
16874 tx.setInputScript(index, scriptSig)
16881 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
16882 assert(index in this.inputs, 'No input at index: ' + index)
16883 hashType = hashType || Transaction.SIGHASH_ALL
16885 var input = this.inputs[index]
16886 var canSign = input.hashType &&
16887 input.prevOutScript &&
16888 input.prevOutType &&
16890 input.scriptType &&
16893 // are we almost ready to sign?
16895 // if redeemScript was provided, enforce consistency
16896 if (redeemScript) {
16897 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
16900 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
16904 // must be pay-to-scriptHash?
16905 if (redeemScript) {
16906 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
16907 if (input.prevOutScript) {
16908 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
16910 var scriptHash = input.prevOutScript.chunks[
1]
16911 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
16914 var scriptType = scripts.classifyOutput(redeemScript)
16915 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
16918 switch (scriptType) {
16920 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16924 case 'pubkeyhash': {
16925 var pkh1 = redeemScript.chunks[
2]
16926 var pkh2 = privKey.pub.getAddress().hash
16928 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
16929 pubKeys = [privKey.pub]
16934 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
16939 if (!input.prevOutScript) {
16940 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
16941 input.prevOutType = 'scripthash'
16944 input.pubKeys = pubKeys
16945 input.redeemScript = redeemScript
16946 input.scriptType = scriptType
16948 // cannot be pay-to-scriptHash
16950 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
16952 // can we otherwise sign this?
16953 if (input.scriptType) {
16954 assert(input.pubKeys, input.scriptType + ' not supported')
16956 // we know nothin' Jon Snow, assume pubKeyHash
16958 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
16959 input.prevOutType = 'pubkeyhash'
16960 input.pubKeys = [privKey.pub]
16961 input.scriptType = input.prevOutType
16965 input.hashType = hashType
16966 input.signatures = input.signatures || []
16969 var signatureScript = input.redeemScript || input.prevOutScript
16970 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
16972 // enforce signature order matches public keys
16973 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
16974 // maintain a local copy of unmatched signatures
16975 var unmatched = input.signatures.slice()
16977 input.signatures = input.pubKeys.map(function (pubKey) {
16980 // check for any matching signatures
16981 unmatched.some(function (signature, i) {
16982 if (!pubKey.verify(signatureHash, signature)) return false
16985 // remove matched signature from unmatched
16986 unmatched.splice(i,
1)
16991 return match || undefined
16995 // enforce in order signing of public keys
16996 assert(input.pubKeys.some(function (pubKey, i) {
16997 if (!privKey.pub.Q.equals(pubKey.Q)) return false
16999 assert(!input.signatures[i], 'Signature already exists')
17000 var signature = privKey.sign(signatureHash)
17001 input.signatures[i] = signature
17004 }, this), 'privateKey cannot sign for this input')
17007 module.exports = TransactionBuilder
17009 }).call(this,require(
"buffer").Buffer)
17010 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
17011 (function (Buffer){
17012 var assert = require('assert')
17013 var bufferutils = require('./bufferutils')
17014 var typeForce = require('typeforce')
17015 var networks = require('./networks')
17016 var randomBytes = require('randombytes')
17018 var Address = require('./address')
17019 var HDNode = require('./hdnode')
17020 var TransactionBuilder = require('./transaction_builder')
17021 var Script = require('./script')
17023 function Wallet (seed, network) {
17024 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
17026 seed = seed || randomBytes(
32)
17027 network = network || networks.bitcoin
17029 // Stored in a closure to make accidental serialization less likely
17030 var masterKey = HDNode.fromSeedBuffer(seed, network)
17032 // HD first-level child derivation method should be hardened
17033 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
17034 var accountZero = masterKey.deriveHardened(
0)
17035 var externalAccount = accountZero.derive(
0)
17036 var internalAccount = accountZero.derive(
1)
17038 this.addresses = []
17039 this.changeAddresses = []
17040 this.network = network
17043 // FIXME: remove in
2.0.0
17044 this.unspentMap = {}
17046 // FIXME: remove in
2.0.0
17048 this.newMasterKey = function (seed) {
17049 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
17051 seed = seed || randomBytes(
32)
17052 masterKey = HDNode.fromSeedBuffer(seed, network)
17054 accountZero = masterKey.deriveHardened(
0)
17055 externalAccount = accountZero.derive(
0)
17056 internalAccount = accountZero.derive(
1)
17059 me.changeAddresses = []
17065 this.getMasterKey = function () {
17068 this.getAccountZero = function () {
17071 this.getExternalAccount = function () {
17072 return externalAccount
17074 this.getInternalAccount = function () {
17075 return internalAccount
17079 Wallet.prototype.createTransaction = function (to, value, options) {
17080 // FIXME: remove in
2.0.0
17081 if (typeof options !== 'object') {
17082 if (options !== undefined) {
17083 console.warn('Non options object parameters are deprecated, use options object instead')
17086 fixedFee: arguments[
2],
17087 changeAddress: arguments[
3]
17092 options = options || {}
17094 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
17096 var changeAddress = options.changeAddress
17097 var fixedFee = options.fixedFee
17098 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
17100 // filter by minConf, then pending and sort by descending value
17101 var unspents = this.unspents.filter(function (unspent) {
17102 return unspent.confirmations
>= minConf
17103 }).filter(function (unspent) {
17104 return !unspent.pending
17105 }).sort(function (o1, o2) {
17106 return o2.value - o1.value
17111 var subTotal = value
17113 var txb = new TransactionBuilder()
17114 txb.addOutput(to, value)
17116 for (var i =
0; i < unspents.length; ++i) {
17117 var unspent = unspents[i]
17118 addresses.push(unspent.address)
17120 txb.addInput(unspent.txHash, unspent.index)
17122 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
17124 accum += unspent.value
17125 subTotal = value + fee
17127 if (accum
>= subTotal) {
17128 var change = accum - subTotal
17130 if (change
> this.network.dustThreshold) {
17131 txb.addOutput(changeAddress || this.getChangeAddress(), change)
17138 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
17140 return this.signWith(txb, addresses).build()
17143 // FIXME: remove in
2.0.0
17144 Wallet.prototype.processPendingTx = function (tx) {
17145 this.__processTx(tx, true)
17148 // FIXME: remove in
2.0.0
17149 Wallet.prototype.processConfirmedTx = function (tx) {
17150 this.__processTx(tx, false)
17153 // FIXME: remove in
2.0.0
17154 Wallet.prototype.__processTx = function (tx, isPending) {
17155 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
17157 var txId = tx.getId()
17158 var txHash = tx.getHash()
17160 tx.outs.forEach(function (txOut, i) {
17164 address = Address.fromOutputScript(txOut.script, this.network).toString()
17166 if (!(e.message.match(/has no matching Address/)))
17170 var myAddresses = this.addresses.concat(this.changeAddresses)
17171 if (myAddresses.indexOf(address)
> -
1) {
17172 var lookup = txId + ':' + i
17173 if (lookup in this.unspentMap) return
17175 // its unique, add it
17178 confirmations:
0, // no way to determine this without more information
17182 value: txOut.value,
17186 this.unspentMap[lookup] = unspent
17187 this.unspents.push(unspent)
17191 tx.ins.forEach(function (txIn) {
17192 // copy and convert to big-endian hex
17193 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
17195 var lookup = txInId + ':' + txIn.index
17196 if (!(lookup in this.unspentMap)) return
17198 var unspent = this.unspentMap[lookup]
17201 unspent.pending = true
17202 unspent.spent = true
17204 delete this.unspentMap[lookup]
17206 this.unspents = this.unspents.filter(function (unspent2) {
17207 return unspent !== unspent2
17213 Wallet.prototype.generateAddress = function () {
17214 var k = this.addresses.length
17215 var address = this.getExternalAccount().derive(k).getAddress()
17217 this.addresses.push(address.toString())
17219 return this.getReceiveAddress()
17222 Wallet.prototype.generateChangeAddress = function () {
17223 var k = this.changeAddresses.length
17224 var address = this.getInternalAccount().derive(k).getAddress()
17226 this.changeAddresses.push(address.toString())
17228 return this.getChangeAddress()
17231 Wallet.prototype.getAddress = function () {
17232 if (this.addresses.length ===
0) {
17233 this.generateAddress()
17236 return this.addresses[this.addresses.length -
1]
17239 Wallet.prototype.getBalance = function (minConf) {
17240 minConf = minConf ||
0
17242 return this.unspents.filter(function (unspent) {
17243 return unspent.confirmations
>= minConf
17245 // FIXME: remove spent filter in
2.0.0
17246 }).filter(function (unspent) {
17247 return !unspent.spent
17248 }).reduce(function (accum, unspent) {
17249 return accum + unspent.value
17253 Wallet.prototype.getChangeAddress = function () {
17254 if (this.changeAddresses.length ===
0) {
17255 this.generateChangeAddress()
17258 return this.changeAddresses[this.changeAddresses.length -
1]
17261 Wallet.prototype.getInternalPrivateKey = function (index) {
17262 return this.getInternalAccount().derive(index).privKey
17265 Wallet.prototype.getPrivateKey = function (index) {
17266 return this.getExternalAccount().derive(index).privKey
17269 Wallet.prototype.getPrivateKeyForAddress = function (address) {
17272 if ((index = this.addresses.indexOf(address))
> -
1) {
17273 return this.getPrivateKey(index)
17276 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
17277 return this.getInternalPrivateKey(index)
17280 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
17283 Wallet.prototype.getUnspentOutputs = function (minConf) {
17284 minConf = minConf ||
0
17286 return this.unspents.filter(function (unspent) {
17287 return unspent.confirmations
>= minConf
17289 // FIXME: remove spent filter in
2.0.0
17290 }).filter(function (unspent) {
17291 return !unspent.spent
17292 }).map(function (unspent) {
17294 address: unspent.address,
17295 confirmations: unspent.confirmations,
17296 index: unspent.index,
17297 txId: unspent.txId,
17298 value: unspent.value,
17300 // FIXME: remove in
2.0.0
17301 hash: unspent.txId,
17302 pending: unspent.pending
17307 Wallet.prototype.setUnspentOutputs = function (unspents) {
17308 this.unspentMap = {}
17309 this.unspents = unspents.map(function (unspent) {
17310 // FIXME: remove unspent.hash in
2.0.0
17311 var txId = unspent.txId || unspent.hash
17312 var index = unspent.index
17314 // FIXME: remove in
2.0.0
17315 if (unspent.hash !== undefined) {
17316 console.warn('unspent.hash is deprecated, use unspent.txId instead')
17319 // FIXME: remove in
2.0.0
17320 if (index === undefined) {
17321 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
17322 index = unspent.outputIndex
17325 typeForce('String', txId)
17326 typeForce('Number', index)
17327 typeForce('Number', unspent.value)
17329 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
17330 assert.doesNotThrow(function () {
17331 Address.fromBase58Check(unspent.address)
17332 }, 'Expected Base58 Address, got ' + unspent.address)
17333 assert(isFinite(index), 'Expected finite index, got ' + index)
17335 // FIXME: remove branch in
2.0.0
17336 if (unspent.confirmations !== undefined) {
17337 typeForce('Number', unspent.confirmations)
17340 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
17343 address: unspent.address,
17344 confirmations: unspent.confirmations ||
0,
17348 value: unspent.value,
17350 // FIXME: remove in
2.0.0
17351 pending: unspent.pending || false
17354 // FIXME: remove in
2.0.0
17355 this.unspentMap[txId + ':' + index] = unspent
17361 Wallet.prototype.signWith = function (tx, addresses) {
17362 addresses.forEach(function (address, i) {
17363 var privKey = this.getPrivateKeyForAddress(address)
17365 tx.sign(i, privKey)
17371 function estimatePaddedFee (tx, network) {
17372 var tmpTx = tx.clone()
17373 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
17375 return network.estimateFee(tmpTx)
17378 // FIXME:
1.0.0 shims, remove in
2.0.0
17379 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
17380 Wallet.prototype.createTx = Wallet.prototype.createTransaction
17382 module.exports = Wallet
17384 }).call(this,require("buffer").Buffer)
17385 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
17387 <script>bitcoin.networks.shadow = {
17388 magicPrefix: '\x19ShadowCash Signed Message:\n',
17390 public:
0xEE80286A,
17391 private:
0xEE8031E8
17398 estimateFee: function() { return "unused in this app" },
17401 bitcoin.networks.shadowtn = {
17402 magicPrefix: '\x19ShadowCash Signed Message:\n',
17404 public:
0x76C0FDFB,
17405 private:
0x76C1077A
17412 estimateFee: function() { return "unused in this app" },
17415 bitcoin.networks.clam = {
17417 public:
0xa8c26d64,
17418 private:
0xa8c17826
17424 bitcoin.networks.dash = {
17426 public:
0x0488b21e,
17427 private:
0x0488ade4
17434 bitcoin.networks.namecoin = {
17436 public:
0x0488b21e,
17437 private:
0x0488ade4
17440 //scriptHash:
0x10,
17444 bitcoin.networks.peercoin = {
17446 public:
0x0488b21e,
17447 private:
0x0488ade4
17450 //scriptHash:
0x10,
17455 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ethUtil = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
17456 (function (global){
17459 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
17460 // original notice:
17463 * The buffer module from node.js, for the browser.
17465 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
17468 function compare(a, b) {
17476 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
17477 if (a[i] !== b[i]) {
17492 function isBuffer(b) {
17493 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
17494 return global.Buffer.isBuffer(b);
17496 return !!(b != null && b._isBuffer);
17499 // based on node assert, original notice:
17501 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
17503 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
17505 // Originally from narwhal.js (http://narwhaljs.org)
17506 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
17508 // Permission is hereby granted, free of charge, to any person obtaining a copy
17509 // of this software and associated documentation files (the 'Software'), to
17510 // deal in the Software without restriction, including without limitation the
17511 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
17512 // sell copies of the Software, and to permit persons to whom the Software is
17513 // furnished to do so, subject to the following conditions:
17515 // The above copyright notice and this permission notice shall be included in
17516 // all copies or substantial portions of the Software.
17518 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17519 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17520 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17521 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
17522 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
17523 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17525 var util = require('util/');
17526 var hasOwn = Object.prototype.hasOwnProperty;
17527 var pSlice = Array.prototype.slice;
17528 var functionsHaveNames = (function () {
17529 return function foo() {}.name === 'foo';
17531 function pToString (obj) {
17532 return Object.prototype.toString.call(obj);
17534 function isView(arrbuf) {
17535 if (isBuffer(arrbuf)) {
17538 if (typeof global.ArrayBuffer !== 'function') {
17541 if (typeof ArrayBuffer.isView === 'function') {
17542 return ArrayBuffer.isView(arrbuf);
17547 if (arrbuf instanceof DataView) {
17550 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
17555 //
1. The assert module provides functions that throw
17556 // AssertionError's when particular conditions are not met. The
17557 // assert module must conform to the following interface.
17559 var assert = module.exports = ok;
17561 //
2. The AssertionError is defined in assert.
17562 // new assert.AssertionError({ message: message,
17564 // expected: expected })
17566 var regex = /\s*function\s+([^\(\s]*)\s*/;
17567 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
17568 function getName(func) {
17569 if (!util.isFunction(func)) {
17572 if (functionsHaveNames) {
17575 var str = func.toString();
17576 var match = str.match(regex);
17577 return match && match[
1];
17579 assert.AssertionError = function AssertionError(options) {
17580 this.name = 'AssertionError';
17581 this.actual = options.actual;
17582 this.expected = options.expected;
17583 this.operator = options.operator;
17584 if (options.message) {
17585 this.message = options.message;
17586 this.generatedMessage = false;
17588 this.message = getMessage(this);
17589 this.generatedMessage = true;
17591 var stackStartFunction = options.stackStartFunction || fail;
17592 if (Error.captureStackTrace) {
17593 Error.captureStackTrace(this, stackStartFunction);
17595 // non v8 browsers so we can have a stacktrace
17596 var err = new Error();
17598 var out = err.stack;
17600 // try to strip useless frames
17601 var fn_name = getName(stackStartFunction);
17602 var idx = out.indexOf('\n' + fn_name);
17604 // once we have located the function frame
17605 // we need to strip out everything before it (and its line)
17606 var next_line = out.indexOf('\n', idx +
1);
17607 out = out.substring(next_line +
1);
17615 // assert.AssertionError instanceof Error
17616 util.inherits(assert.AssertionError, Error);
17618 function truncate(s, n) {
17619 if (typeof s === 'string') {
17620 return s.length < n ? s : s.slice(
0, n);
17625 function inspect(something) {
17626 if (functionsHaveNames || !util.isFunction(something)) {
17627 return util.inspect(something);
17629 var rawname = getName(something);
17630 var name = rawname ? ': ' + rawname : '';
17631 return '[Function' + name + ']';
17633 function getMessage(self) {
17634 return truncate(inspect(self.actual),
128) + ' ' +
17635 self.operator + ' ' +
17636 truncate(inspect(self.expected),
128);
17639 // At present only the three keys mentioned above are used and
17640 // understood by the spec. Implementations or sub modules can pass
17641 // other keys to the AssertionError's constructor - they will be
17644 //
3. All of the following functions must throw an AssertionError
17645 // when a corresponding condition is not met, with a message that
17646 // may be undefined if not provided. All assertion methods provide
17647 // both the actual and expected values to the assertion error for
17648 // display purposes.
17650 function fail(actual, expected, message, operator, stackStartFunction) {
17651 throw new assert.AssertionError({
17654 expected: expected,
17655 operator: operator,
17656 stackStartFunction: stackStartFunction
17660 // EXTENSION! allows for well behaved errors defined elsewhere.
17661 assert.fail = fail;
17663 //
4. Pure assertion tests whether a value is truthy, as determined
17665 // assert.ok(guard, message_opt);
17666 // This statement is equivalent to assert.equal(true, !!guard,
17667 // message_opt);. To test strictly for the value true, use
17668 // assert.strictEqual(true, guard, message_opt);.
17670 function ok(value, message) {
17671 if (!value) fail(value, true, message, '==', assert.ok);
17675 //
5. The equality assertion tests shallow, coercive equality with
17677 // assert.equal(actual, expected, message_opt);
17679 assert.equal = function equal(actual, expected, message) {
17680 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
17683 //
6. The non-equality assertion tests for whether two objects are not equal
17684 // with != assert.notEqual(actual, expected, message_opt);
17686 assert.notEqual = function notEqual(actual, expected, message) {
17687 if (actual == expected) {
17688 fail(actual, expected, message, '!=', assert.notEqual);
17692 //
7. The equivalence assertion tests a deep equality relation.
17693 // assert.deepEqual(actual, expected, message_opt);
17695 assert.deepEqual = function deepEqual(actual, expected, message) {
17696 if (!_deepEqual(actual, expected, false)) {
17697 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
17701 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
17702 if (!_deepEqual(actual, expected, true)) {
17703 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
17707 function _deepEqual(actual, expected, strict, memos) {
17708 //
7.1. All identical values are equivalent, as determined by ===.
17709 if (actual === expected) {
17711 } else if (isBuffer(actual) && isBuffer(expected)) {
17712 return compare(actual, expected) ===
0;
17714 //
7.2. If the expected value is a Date object, the actual value is
17715 // equivalent if it is also a Date object that refers to the same time.
17716 } else if (util.isDate(actual) && util.isDate(expected)) {
17717 return actual.getTime() === expected.getTime();
17719 //
7.3 If the expected value is a RegExp object, the actual value is
17720 // equivalent if it is also a RegExp object with the same source and
17721 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
17722 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
17723 return actual.source === expected.source &&
17724 actual.global === expected.global &&
17725 actual.multiline === expected.multiline &&
17726 actual.lastIndex === expected.lastIndex &&
17727 actual.ignoreCase === expected.ignoreCase;
17729 //
7.4. Other pairs that do not both pass typeof value == 'object',
17730 // equivalence is determined by ==.
17731 } else if ((actual === null || typeof actual !== 'object') &&
17732 (expected === null || typeof expected !== 'object')) {
17733 return strict ? actual === expected : actual == expected;
17735 // If both values are instances of typed arrays, wrap their underlying
17736 // ArrayBuffers in a Buffer each to increase performance
17737 // This optimization requires the arrays to have the same type as checked by
17738 // Object.prototype.toString (aka pToString). Never perform binary
17739 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
17740 // bit patterns are not identical.
17741 } else if (isView(actual) && isView(expected) &&
17742 pToString(actual) === pToString(expected) &&
17743 !(actual instanceof Float32Array ||
17744 actual instanceof Float64Array)) {
17745 return compare(new Uint8Array(actual.buffer),
17746 new Uint8Array(expected.buffer)) ===
0;
17748 //
7.5 For all other Object pairs, including Array objects, equivalence is
17749 // determined by having the same number of owned properties (as verified
17750 // with Object.prototype.hasOwnProperty.call), the same set of keys
17751 // (although not necessarily the same order), equivalent values for every
17752 // corresponding key, and an identical 'prototype' property. Note: this
17753 // accounts for both named and indexed properties on Arrays.
17754 } else if (isBuffer(actual) !== isBuffer(expected)) {
17757 memos = memos || {actual: [], expected: []};
17759 var actualIndex = memos.actual.indexOf(actual);
17760 if (actualIndex !== -
1) {
17761 if (actualIndex === memos.expected.indexOf(expected)) {
17766 memos.actual.push(actual);
17767 memos.expected.push(expected);
17769 return objEquiv(actual, expected, strict, memos);
17773 function isArguments(object) {
17774 return Object.prototype.toString.call(object) == '[object Arguments]';
17777 function objEquiv(a, b, strict, actualVisitedObjects) {
17778 if (a === null || a === undefined || b === null || b === undefined)
17780 // if one is a primitive, the other must be same
17781 if (util.isPrimitive(a) || util.isPrimitive(b))
17783 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
17785 var aIsArgs = isArguments(a);
17786 var bIsArgs = isArguments(b);
17787 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
17790 a = pSlice.call(a);
17791 b = pSlice.call(b);
17792 return _deepEqual(a, b, strict);
17794 var ka = objectKeys(a);
17795 var kb = objectKeys(b);
17797 // having the same number of owned properties (keys incorporates
17799 if (ka.length !== kb.length)
17801 //the same set of keys (although not necessarily the same order),
17804 //~~~cheap key test
17805 for (i = ka.length -
1; i
>=
0; i--) {
17806 if (ka[i] !== kb[i])
17809 //equivalent values for every corresponding key, and
17810 //~~~possibly expensive deep test
17811 for (i = ka.length -
1; i
>=
0; i--) {
17813 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
17819 //
8. The non-equivalence assertion tests for any deep inequality.
17820 // assert.notDeepEqual(actual, expected, message_opt);
17822 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
17823 if (_deepEqual(actual, expected, false)) {
17824 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
17828 assert.notDeepStrictEqual = notDeepStrictEqual;
17829 function notDeepStrictEqual(actual, expected, message) {
17830 if (_deepEqual(actual, expected, true)) {
17831 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
17836 //
9. The strict equality assertion tests strict equality, as determined by ===.
17837 // assert.strictEqual(actual, expected, message_opt);
17839 assert.strictEqual = function strictEqual(actual, expected, message) {
17840 if (actual !== expected) {
17841 fail(actual, expected, message, '===', assert.strictEqual);
17845 //
10. The strict non-equality assertion tests for strict inequality, as
17846 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
17848 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
17849 if (actual === expected) {
17850 fail(actual, expected, message, '!==', assert.notStrictEqual);
17854 function expectedException(actual, expected) {
17855 if (!actual || !expected) {
17859 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
17860 return expected.test(actual);
17864 if (actual instanceof expected) {
17868 // Ignore. The instanceof check doesn't work for arrow functions.
17871 if (Error.isPrototypeOf(expected)) {
17875 return expected.call({}, actual) === true;
17878 function _tryBlock(block) {
17888 function _throws(shouldThrow, block, expected, message) {
17891 if (typeof block !== 'function') {
17892 throw new TypeError('"block" argument must be a function');
17895 if (typeof expected === 'string') {
17896 message = expected;
17900 actual = _tryBlock(block);
17902 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
17903 (message ? ' ' + message : '.');
17905 if (shouldThrow && !actual) {
17906 fail(actual, expected, 'Missing expected exception' + message);
17909 var userProvidedMessage = typeof message === 'string';
17910 var isUnwantedException = !shouldThrow && util.isError(actual);
17911 var isUnexpectedException = !shouldThrow && actual && !expected;
17913 if ((isUnwantedException &&
17914 userProvidedMessage &&
17915 expectedException(actual, expected)) ||
17916 isUnexpectedException) {
17917 fail(actual, expected, 'Got unwanted exception' + message);
17920 if ((shouldThrow && actual && expected &&
17921 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
17926 //
11. Expected to throw an error:
17927 // assert.throws(block, Error_opt, message_opt);
17929 assert.throws = function(block, /*optional*/error, /*optional*/message) {
17930 _throws(true, block, error, message);
17933 // EXTENSION! This is annoying to write outside this module.
17934 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
17935 _throws(false, block, error, message);
17938 assert.ifError = function(err) { if (err) throw err; };
17940 var objectKeys = Object.keys || function (obj) {
17942 for (var key in obj) {
17943 if (hasOwn.call(obj, key)) keys.push(key);
17948 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
17949 },{"util/":
30}],
2:[function(require,module,exports){
17952 exports.byteLength = byteLength
17953 exports.toByteArray = toByteArray
17954 exports.fromByteArray = fromByteArray
17958 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
17960 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
17961 for (var i =
0, len = code.length; i < len; ++i) {
17962 lookup[i] = code[i]
17963 revLookup[code.charCodeAt(i)] = i
17966 revLookup['-'.charCodeAt(
0)] =
62
17967 revLookup['_'.charCodeAt(
0)] =
63
17969 function placeHoldersCount (b64) {
17970 var len = b64.length
17972 throw new Error('Invalid string. Length must be a multiple of
4')
17975 // the number of equal signs (place holders)
17976 // if there are two placeholders, than the two characters before it
17977 // represent one byte
17978 // if there is only one, then the three characters before it represent
2 bytes
17979 // this is just a cheap hack to not do indexOf twice
17980 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
17983 function byteLength (b64) {
17984 // base64 is
4/
3 + up to two characters of the original data
17985 return b64.length *
3 /
4 - placeHoldersCount(b64)
17988 function toByteArray (b64) {
17989 var i, j, l, tmp, placeHolders, arr
17990 var len = b64.length
17991 placeHolders = placeHoldersCount(b64)
17993 arr = new Arr(len *
3 /
4 - placeHolders)
17995 // if there are placeholders, only get up to the last complete
4 chars
17996 l = placeHolders
> 0 ? len -
4 : len
18000 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
18001 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
18002 arr[L++] = (tmp
>> 16) &
0xFF
18003 arr[L++] = (tmp
>> 8) &
0xFF
18004 arr[L++] = tmp &
0xFF
18007 if (placeHolders ===
2) {
18008 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
18009 arr[L++] = tmp &
0xFF
18010 } else if (placeHolders ===
1) {
18011 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
18012 arr[L++] = (tmp
>> 8) &
0xFF
18013 arr[L++] = tmp &
0xFF
18019 function tripletToBase64 (num) {
18020 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
18023 function encodeChunk (uint8, start, end) {
18026 for (var i = start; i < end; i +=
3) {
18027 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
18028 output.push(tripletToBase64(tmp))
18030 return output.join('')
18033 function fromByteArray (uint8) {
18035 var len = uint8.length
18036 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
18039 var maxChunkLength =
16383 // must be multiple of
3
18041 // go through the array every three bytes, we'll deal with trailing stuff later
18042 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
18043 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
18046 // pad the end with zeros, but make sure to not forget the extra bytes
18047 if (extraBytes ===
1) {
18048 tmp = uint8[len -
1]
18049 output += lookup[tmp
>> 2]
18050 output += lookup[(tmp <<
4) &
0x3F]
18052 } else if (extraBytes ===
2) {
18053 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
18054 output += lookup[tmp
>> 10]
18055 output += lookup[(tmp
>> 4) &
0x3F]
18056 output += lookup[(tmp <<
2) &
0x3F]
18062 return parts.join('')
18065 },{}],
3:[function(require,module,exports){
18067 },{}],
4:[function(require,module,exports){
18068 (function (global){
18071 var buffer = require('buffer');
18072 var Buffer = buffer.Buffer;
18073 var SlowBuffer = buffer.SlowBuffer;
18074 var MAX_LEN = buffer.kMaxLength ||
2147483647;
18075 exports.alloc = function alloc(size, fill, encoding) {
18076 if (typeof Buffer.alloc === 'function') {
18077 return Buffer.alloc(size, fill, encoding);
18079 if (typeof encoding === 'number') {
18080 throw new TypeError('encoding must not be number');
18082 if (typeof size !== 'number') {
18083 throw new TypeError('size must be a number');
18085 if (size
> MAX_LEN) {
18086 throw new RangeError('size is too large');
18088 var enc = encoding;
18090 if (_fill === undefined) {
18094 var buf = new Buffer(size);
18095 if (typeof _fill === 'string') {
18096 var fillBuf = new Buffer(_fill, enc);
18097 var flen = fillBuf.length;
18099 while (++i < size) {
18100 buf[i] = fillBuf[i % flen];
18107 exports.allocUnsafe = function allocUnsafe(size) {
18108 if (typeof Buffer.allocUnsafe === 'function') {
18109 return Buffer.allocUnsafe(size);
18111 if (typeof size !== 'number') {
18112 throw new TypeError('size must be a number');
18114 if (size
> MAX_LEN) {
18115 throw new RangeError('size is too large');
18117 return new Buffer(size);
18119 exports.from = function from(value, encodingOrOffset, length) {
18120 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
18121 return Buffer.from(value, encodingOrOffset, length);
18123 if (typeof value === 'number') {
18124 throw new TypeError('"value" argument must not be a number');
18126 if (typeof value === 'string') {
18127 return new Buffer(value, encodingOrOffset);
18129 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
18130 var offset = encodingOrOffset;
18131 if (arguments.length ===
1) {
18132 return new Buffer(value);
18134 if (typeof offset === 'undefined') {
18138 if (typeof len === 'undefined') {
18139 len = value.byteLength - offset;
18141 if (offset
>= value.byteLength) {
18142 throw new RangeError('\'offset\' is out of bounds');
18144 if (len
> value.byteLength - offset) {
18145 throw new RangeError('\'length\' is out of bounds');
18147 return new Buffer(value.slice(offset, offset + len));
18149 if (Buffer.isBuffer(value)) {
18150 var out = new Buffer(value.length);
18151 value.copy(out,
0,
0, value.length);
18155 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
18156 return new Buffer(value);
18158 if (value.type === 'Buffer' && Array.isArray(value.data)) {
18159 return new Buffer(value.data);
18163 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
18165 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
18166 if (typeof Buffer.allocUnsafeSlow === 'function') {
18167 return Buffer.allocUnsafeSlow(size);
18169 if (typeof size !== 'number') {
18170 throw new TypeError('size must be a number');
18172 if (size
>= MAX_LEN) {
18173 throw new RangeError('size is too large');
18175 return new SlowBuffer(size);
18178 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
18179 },{"buffer":
5}],
5:[function(require,module,exports){
18181 * The buffer module from node.js, for the browser.
18183 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
18186 /* eslint-disable no-proto */
18190 var base64 = require('base64-js')
18191 var ieee754 = require('ieee754')
18193 exports.Buffer = Buffer
18194 exports.SlowBuffer = SlowBuffer
18195 exports.INSPECT_MAX_BYTES =
50
18197 var K_MAX_LENGTH =
0x7fffffff
18198 exports.kMaxLength = K_MAX_LENGTH
18201 * If `Buffer.TYPED_ARRAY_SUPPORT`:
18202 * === true Use Uint8Array implementation (fastest)
18203 * === false Print warning and recommend using `buffer` v4.x which has an Object
18204 * implementation (most compatible, even IE6)
18206 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
18207 * Opera
11.6+, iOS
4.2+.
18209 * We report that the browser does not support typed arrays if the are not subclassable
18210 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
18211 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
18212 * for __proto__ and has a buggy typed array implementation.
18214 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
18216 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
18217 typeof console.error === 'function') {
18219 'This browser lacks typed array (Uint8Array) support which is required by ' +
18220 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
18224 function typedArraySupport () {
18225 // Can typed array instances can be augmented?
18227 var arr = new Uint8Array(
1)
18228 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
18229 return arr.foo() ===
42
18235 function createBuffer (length) {
18236 if (length
> K_MAX_LENGTH) {
18237 throw new RangeError('Invalid typed array length')
18239 // Return an augmented `Uint8Array` instance
18240 var buf = new Uint8Array(length)
18241 buf.__proto__ = Buffer.prototype
18246 * The Buffer constructor returns instances of `Uint8Array` that have their
18247 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
18248 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
18249 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
18250 * returns a single octet.
18252 * The `Uint8Array` prototype remains unmodified.
18255 function Buffer (arg, encodingOrOffset, length) {
18257 if (typeof arg === 'number') {
18258 if (typeof encodingOrOffset === 'string') {
18260 'If encoding is specified then the first argument must be a string'
18263 return allocUnsafe(arg)
18265 return from(arg, encodingOrOffset, length)
18268 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
18269 if (typeof Symbol !== 'undefined' && Symbol.species &&
18270 Buffer[Symbol.species] === Buffer) {
18271 Object.defineProperty(Buffer, Symbol.species, {
18273 configurable: true,
18279 Buffer.poolSize =
8192 // not used by this implementation
18281 function from (value, encodingOrOffset, length) {
18282 if (typeof value === 'number') {
18283 throw new TypeError('"value" argument must not be a number')
18286 if (value instanceof ArrayBuffer) {
18287 return fromArrayBuffer(value, encodingOrOffset, length)
18290 if (typeof value === 'string') {
18291 return fromString(value, encodingOrOffset)
18294 return fromObject(value)
18298 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
18299 * if value is a number.
18300 * Buffer.from(str[, encoding])
18301 * Buffer.from(array)
18302 * Buffer.from(buffer)
18303 * Buffer.from(arrayBuffer[, byteOffset[, length]])
18305 Buffer.from = function (value, encodingOrOffset, length) {
18306 return from(value, encodingOrOffset, length)
18309 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
18310 // https://github.com/feross/buffer/pull/
148
18311 Buffer.prototype.__proto__ = Uint8Array.prototype
18312 Buffer.__proto__ = Uint8Array
18314 function assertSize (size) {
18315 if (typeof size !== 'number') {
18316 throw new TypeError('"size" argument must be a number')
18317 } else if (size <
0) {
18318 throw new RangeError('"size" argument must not be negative')
18322 function alloc (size, fill, encoding) {
18325 return createBuffer(size)
18327 if (fill !== undefined) {
18328 // Only pay attention to encoding if it's a string. This
18329 // prevents accidentally sending in a number that would
18330 // be interpretted as a start offset.
18331 return typeof encoding === 'string'
18332 ? createBuffer(size).fill(fill, encoding)
18333 : createBuffer(size).fill(fill)
18335 return createBuffer(size)
18339 * Creates a new filled Buffer instance.
18340 * alloc(size[, fill[, encoding]])
18342 Buffer.alloc = function (size, fill, encoding) {
18343 return alloc(size, fill, encoding)
18346 function allocUnsafe (size) {
18348 return createBuffer(size <
0 ?
0 : checked(size) |
0)
18352 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
18354 Buffer.allocUnsafe = function (size) {
18355 return allocUnsafe(size)
18358 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
18360 Buffer.allocUnsafeSlow = function (size) {
18361 return allocUnsafe(size)
18364 function fromString (string, encoding) {
18365 if (typeof encoding !== 'string' || encoding === '') {
18369 if (!Buffer.isEncoding(encoding)) {
18370 throw new TypeError('"encoding" must be a valid string encoding')
18373 var length = byteLength(string, encoding) |
0
18374 var buf = createBuffer(length)
18376 var actual = buf.write(string, encoding)
18378 if (actual !== length) {
18379 // Writing a hex string, for example, that contains invalid characters will
18380 // cause everything after the first invalid character to be ignored. (e.g.
18381 // 'abxxcd' will be treated as 'ab')
18382 buf = buf.slice(
0, actual)
18388 function fromArrayLike (array) {
18389 var length = array.length <
0 ?
0 : checked(array.length) |
0
18390 var buf = createBuffer(length)
18391 for (var i =
0; i < length; i +=
1) {
18392 buf[i] = array[i] &
255
18397 function fromArrayBuffer (array, byteOffset, length) {
18398 if (byteOffset <
0 || array.byteLength < byteOffset) {
18399 throw new RangeError('\'offset\' is out of bounds')
18402 if (array.byteLength < byteOffset + (length ||
0)) {
18403 throw new RangeError('\'length\' is out of bounds')
18407 if (byteOffset === undefined && length === undefined) {
18408 buf = new Uint8Array(array)
18409 } else if (length === undefined) {
18410 buf = new Uint8Array(array, byteOffset)
18412 buf = new Uint8Array(array, byteOffset, length)
18415 // Return an augmented `Uint8Array` instance
18416 buf.__proto__ = Buffer.prototype
18420 function fromObject (obj) {
18421 if (Buffer.isBuffer(obj)) {
18422 var len = checked(obj.length) |
0
18423 var buf = createBuffer(len)
18425 if (buf.length ===
0) {
18429 obj.copy(buf,
0,
0, len)
18434 if (ArrayBuffer.isView(obj) || 'length' in obj) {
18435 if (typeof obj.length !== 'number' || isnan(obj.length)) {
18436 return createBuffer(
0)
18438 return fromArrayLike(obj)
18441 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
18442 return fromArrayLike(obj.data)
18446 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
18449 function checked (length) {
18450 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
18451 // length is NaN (which is otherwise coerced to zero.)
18452 if (length
>= K_MAX_LENGTH) {
18453 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
18454 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
18459 function SlowBuffer (length) {
18460 if (+length != length) { // eslint-disable-line eqeqeq
18463 return Buffer.alloc(+length)
18466 Buffer.isBuffer = function isBuffer (b) {
18467 return b != null && b._isBuffer === true
18470 Buffer.compare = function compare (a, b) {
18471 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
18472 throw new TypeError('Arguments must be Buffers')
18475 if (a === b) return
0
18480 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
18481 if (a[i] !== b[i]) {
18488 if (x < y) return -
1
18489 if (y < x) return
1
18493 Buffer.isEncoding = function isEncoding (encoding) {
18494 switch (String(encoding).toLowerCase()) {
18512 Buffer.concat = function concat (list, length) {
18513 if (!Array.isArray(list)) {
18514 throw new TypeError('"list" argument must be an Array of Buffers')
18517 if (list.length ===
0) {
18518 return Buffer.alloc(
0)
18522 if (length === undefined) {
18524 for (i =
0; i < list.length; ++i) {
18525 length += list[i].length
18529 var buffer = Buffer.allocUnsafe(length)
18531 for (i =
0; i < list.length; ++i) {
18533 if (!Buffer.isBuffer(buf)) {
18534 throw new TypeError('"list" argument must be an Array of Buffers')
18536 buf.copy(buffer, pos)
18542 function byteLength (string, encoding) {
18543 if (Buffer.isBuffer(string)) {
18544 return string.length
18546 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
18547 return string.byteLength
18549 if (typeof string !== 'string') {
18550 string = '' + string
18553 var len = string.length
18554 if (len ===
0) return
0
18556 // Use a for loop to avoid recursion
18557 var loweredCase = false
18559 switch (encoding) {
18567 return utf8ToBytes(string).length
18576 return base64ToBytes(string).length
18578 if (loweredCase) return utf8ToBytes(string).length // assume utf8
18579 encoding = ('' + encoding).toLowerCase()
18584 Buffer.byteLength = byteLength
18586 function slowToString (encoding, start, end) {
18587 var loweredCase = false
18589 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
18590 // property of a typed array.
18592 // This behaves neither like String nor Uint8Array in that we set start/end
18593 // to their upper/lower bounds if the value passed is out of range.
18594 // undefined is handled specially as per ECMA-
262 6th Edition,
18595 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
18596 if (start === undefined || start <
0) {
18599 // Return early if start
> this.length. Done here to prevent potential uint32
18600 // coercion fail below.
18601 if (start
> this.length) {
18605 if (end === undefined || end
> this.length) {
18613 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
18617 if (end <= start) {
18621 if (!encoding) encoding = 'utf8'
18624 switch (encoding) {
18626 return hexSlice(this, start, end)
18630 return utf8Slice(this, start, end)
18633 return asciiSlice(this, start, end)
18637 return latin1Slice(this, start, end)
18640 return base64Slice(this, start, end)
18646 return utf16leSlice(this, start, end)
18649 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
18650 encoding = (encoding + '').toLowerCase()
18656 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
18657 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
18658 // reliably in a browserify context because there could be multiple different
18659 // copies of the 'buffer' package in use. This method works even for Buffer
18660 // instances that were created from another copy of the `buffer` package.
18661 // See: https://github.com/feross/buffer/issues/
154
18662 Buffer.prototype._isBuffer = true
18664 function swap (b, n, m) {
18670 Buffer.prototype.swap16 = function swap16 () {
18671 var len = this.length
18672 if (len %
2 !==
0) {
18673 throw new RangeError('Buffer size must be a multiple of
16-bits')
18675 for (var i =
0; i < len; i +=
2) {
18676 swap(this, i, i +
1)
18681 Buffer.prototype.swap32 = function swap32 () {
18682 var len = this.length
18683 if (len %
4 !==
0) {
18684 throw new RangeError('Buffer size must be a multiple of
32-bits')
18686 for (var i =
0; i < len; i +=
4) {
18687 swap(this, i, i +
3)
18688 swap(this, i +
1, i +
2)
18693 Buffer.prototype.swap64 = function swap64 () {
18694 var len = this.length
18695 if (len %
8 !==
0) {
18696 throw new RangeError('Buffer size must be a multiple of
64-bits')
18698 for (var i =
0; i < len; i +=
8) {
18699 swap(this, i, i +
7)
18700 swap(this, i +
1, i +
6)
18701 swap(this, i +
2, i +
5)
18702 swap(this, i +
3, i +
4)
18707 Buffer.prototype.toString = function toString () {
18708 var length = this.length
18709 if (length ===
0) return ''
18710 if (arguments.length ===
0) return utf8Slice(this,
0, length)
18711 return slowToString.apply(this, arguments)
18714 Buffer.prototype.equals = function equals (b) {
18715 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
18716 if (this === b) return true
18717 return Buffer.compare(this, b) ===
0
18720 Buffer.prototype.inspect = function inspect () {
18722 var max = exports.INSPECT_MAX_BYTES
18723 if (this.length
> 0) {
18724 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
18725 if (this.length
> max) str += ' ... '
18727 return '
<Buffer ' + str + '
>'
18730 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
18731 if (!Buffer.isBuffer(target)) {
18732 throw new TypeError('Argument must be a Buffer')
18735 if (start === undefined) {
18738 if (end === undefined) {
18739 end = target ? target.length :
0
18741 if (thisStart === undefined) {
18744 if (thisEnd === undefined) {
18745 thisEnd = this.length
18748 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
18749 throw new RangeError('out of range index')
18752 if (thisStart
>= thisEnd && start
>= end) {
18755 if (thisStart
>= thisEnd) {
18758 if (start
>= end) {
18767 if (this === target) return
0
18769 var x = thisEnd - thisStart
18770 var y = end - start
18771 var len = Math.min(x, y)
18773 var thisCopy = this.slice(thisStart, thisEnd)
18774 var targetCopy = target.slice(start, end)
18776 for (var i =
0; i < len; ++i) {
18777 if (thisCopy[i] !== targetCopy[i]) {
18784 if (x < y) return -
1
18785 if (y < x) return
1
18789 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
18790 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
18793 // - buffer - a Buffer to search
18794 // - val - a string, Buffer, or number
18795 // - byteOffset - an index into `buffer`; will be clamped to an int32
18796 // - encoding - an optional encoding, relevant is val is a string
18797 // - dir - true for indexOf, false for lastIndexOf
18798 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
18799 // Empty buffer means no match
18800 if (buffer.length ===
0) return -
1
18802 // Normalize byteOffset
18803 if (typeof byteOffset === 'string') {
18804 encoding = byteOffset
18806 } else if (byteOffset
> 0x7fffffff) {
18807 byteOffset =
0x7fffffff
18808 } else if (byteOffset < -
0x80000000) {
18809 byteOffset = -
0x80000000
18811 byteOffset = +byteOffset // Coerce to Number.
18812 if (isNaN(byteOffset)) {
18813 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
18814 byteOffset = dir ?
0 : (buffer.length -
1)
18817 // Normalize byteOffset: negative offsets start from the end of the buffer
18818 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
18819 if (byteOffset
>= buffer.length) {
18821 else byteOffset = buffer.length -
1
18822 } else if (byteOffset <
0) {
18823 if (dir) byteOffset =
0
18828 if (typeof val === 'string') {
18829 val = Buffer.from(val, encoding)
18832 // Finally, search either indexOf (if dir is true) or lastIndexOf
18833 if (Buffer.isBuffer(val)) {
18834 // Special case: looking for empty string/buffer always fails
18835 if (val.length ===
0) {
18838 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
18839 } else if (typeof val === 'number') {
18840 val = val &
0xFF // Search for a byte value [
0-
255]
18841 if (typeof Uint8Array.prototype.indexOf === 'function') {
18843 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
18845 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
18848 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
18851 throw new TypeError('val must be string, number or Buffer')
18854 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
18856 var arrLength = arr.length
18857 var valLength = val.length
18859 if (encoding !== undefined) {
18860 encoding = String(encoding).toLowerCase()
18861 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
18862 encoding === 'utf16le' || encoding === 'utf-
16le') {
18863 if (arr.length <
2 || val.length <
2) {
18873 function read (buf, i) {
18874 if (indexSize ===
1) {
18877 return buf.readUInt16BE(i * indexSize)
18883 var foundIndex = -
1
18884 for (i = byteOffset; i < arrLength; i++) {
18885 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
18886 if (foundIndex === -
1) foundIndex = i
18887 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
18889 if (foundIndex !== -
1) i -= i - foundIndex
18894 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
18895 for (i = byteOffset; i
>=
0; i--) {
18897 for (var j =
0; j < valLength; j++) {
18898 if (read(arr, i + j) !== read(val, j)) {
18903 if (found) return i
18910 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
18911 return this.indexOf(val, byteOffset, encoding) !== -
1
18914 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
18915 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
18918 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
18919 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
18922 function hexWrite (buf, string, offset, length) {
18923 offset = Number(offset) ||
0
18924 var remaining = buf.length - offset
18928 length = Number(length)
18929 if (length
> remaining) {
18934 // must be an even number of digits
18935 var strLen = string.length
18936 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
18938 if (length
> strLen /
2) {
18939 length = strLen /
2
18941 for (var i =
0; i < length; ++i) {
18942 var parsed = parseInt(string.substr(i *
2,
2),
16)
18943 if (isNaN(parsed)) return i
18944 buf[offset + i] = parsed
18949 function utf8Write (buf, string, offset, length) {
18950 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
18953 function asciiWrite (buf, string, offset, length) {
18954 return blitBuffer(asciiToBytes(string), buf, offset, length)
18957 function latin1Write (buf, string, offset, length) {
18958 return asciiWrite(buf, string, offset, length)
18961 function base64Write (buf, string, offset, length) {
18962 return blitBuffer(base64ToBytes(string), buf, offset, length)
18965 function ucs2Write (buf, string, offset, length) {
18966 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
18969 Buffer.prototype.write = function write (string, offset, length, encoding) {
18970 // Buffer#write(string)
18971 if (offset === undefined) {
18973 length = this.length
18975 // Buffer#write(string, encoding)
18976 } else if (length === undefined && typeof offset === 'string') {
18978 length = this.length
18980 // Buffer#write(string, offset[, length][, encoding])
18981 } else if (isFinite(offset)) {
18982 offset = offset
>>> 0
18983 if (isFinite(length)) {
18984 length = length
>>> 0
18985 if (encoding === undefined) encoding = 'utf8'
18992 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
18996 var remaining = this.length - offset
18997 if (length === undefined || length
> remaining) length = remaining
18999 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
19000 throw new RangeError('Attempt to write outside buffer bounds')
19003 if (!encoding) encoding = 'utf8'
19005 var loweredCase = false
19007 switch (encoding) {
19009 return hexWrite(this, string, offset, length)
19013 return utf8Write(this, string, offset, length)
19016 return asciiWrite(this, string, offset, length)
19020 return latin1Write(this, string, offset, length)
19023 // Warning: maxLength not taken into account in base64Write
19024 return base64Write(this, string, offset, length)
19030 return ucs2Write(this, string, offset, length)
19033 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
19034 encoding = ('' + encoding).toLowerCase()
19040 Buffer.prototype.toJSON = function toJSON () {
19043 data: Array.prototype.slice.call(this._arr || this,
0)
19047 function base64Slice (buf, start, end) {
19048 if (start ===
0 && end === buf.length) {
19049 return base64.fromByteArray(buf)
19051 return base64.fromByteArray(buf.slice(start, end))
19055 function utf8Slice (buf, start, end) {
19056 end = Math.min(buf.length, end)
19061 var firstByte = buf[i]
19062 var codePoint = null
19063 var bytesPerSequence = (firstByte
> 0xEF) ?
4
19064 : (firstByte
> 0xDF) ?
3
19065 : (firstByte
> 0xBF) ?
2
19068 if (i + bytesPerSequence <= end) {
19069 var secondByte, thirdByte, fourthByte, tempCodePoint
19071 switch (bytesPerSequence) {
19073 if (firstByte <
0x80) {
19074 codePoint = firstByte
19078 secondByte = buf[i +
1]
19079 if ((secondByte &
0xC0) ===
0x80) {
19080 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
19081 if (tempCodePoint
> 0x7F) {
19082 codePoint = tempCodePoint
19087 secondByte = buf[i +
1]
19088 thirdByte = buf[i +
2]
19089 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
19090 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
19091 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
19092 codePoint = tempCodePoint
19097 secondByte = buf[i +
1]
19098 thirdByte = buf[i +
2]
19099 fourthByte = buf[i +
3]
19100 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
19101 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
19102 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
19103 codePoint = tempCodePoint
19109 if (codePoint === null) {
19110 // we did not generate a valid codePoint so insert a
19111 // replacement char (U+FFFD) and advance only
1 byte
19113 bytesPerSequence =
1
19114 } else if (codePoint
> 0xFFFF) {
19115 // encode to utf16 (surrogate pair dance)
19116 codePoint -=
0x10000
19117 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
19118 codePoint =
0xDC00 | codePoint &
0x3FF
19121 res.push(codePoint)
19122 i += bytesPerSequence
19125 return decodeCodePointsArray(res)
19128 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
19129 // the lowest limit is Chrome, with
0x10000 args.
19130 // We go
1 magnitude less, for safety
19131 var MAX_ARGUMENTS_LENGTH =
0x1000
19133 function decodeCodePointsArray (codePoints) {
19134 var len = codePoints.length
19135 if (len <= MAX_ARGUMENTS_LENGTH) {
19136 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
19139 // Decode in chunks to avoid
"call stack size exceeded".
19143 res += String.fromCharCode.apply(
19145 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
19151 function asciiSlice (buf, start, end) {
19153 end = Math.min(buf.length, end)
19155 for (var i = start; i < end; ++i) {
19156 ret += String.fromCharCode(buf[i] &
0x7F)
19161 function latin1Slice (buf, start, end) {
19163 end = Math.min(buf.length, end)
19165 for (var i = start; i < end; ++i) {
19166 ret += String.fromCharCode(buf[i])
19171 function hexSlice (buf, start, end) {
19172 var len = buf.length
19174 if (!start || start <
0) start =
0
19175 if (!end || end <
0 || end
> len) end = len
19178 for (var i = start; i < end; ++i) {
19179 out += toHex(buf[i])
19184 function utf16leSlice (buf, start, end) {
19185 var bytes = buf.slice(start, end)
19187 for (var i =
0; i < bytes.length; i +=
2) {
19188 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
19193 Buffer.prototype.slice = function slice (start, end) {
19194 var len = this.length
19196 end = end === undefined ? len : ~~end
19200 if (start <
0) start =
0
19201 } else if (start
> len) {
19207 if (end <
0) end =
0
19208 } else if (end
> len) {
19212 if (end < start) end = start
19214 var newBuf = this.subarray(start, end)
19215 // Return an augmented `Uint8Array` instance
19216 newBuf.__proto__ = Buffer.prototype
19221 * Need to make sure that buffer isn't trying to write out of bounds.
19223 function checkOffset (offset, ext, length) {
19224 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
19225 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
19228 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
19229 offset = offset
>>> 0
19230 byteLength = byteLength
>>> 0
19231 if (!noAssert) checkOffset(offset, byteLength, this.length)
19233 var val = this[offset]
19236 while (++i < byteLength && (mul *=
0x100)) {
19237 val += this[offset + i] * mul
19243 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
19244 offset = offset
>>> 0
19245 byteLength = byteLength
>>> 0
19247 checkOffset(offset, byteLength, this.length)
19250 var val = this[offset + --byteLength]
19252 while (byteLength
> 0 && (mul *=
0x100)) {
19253 val += this[offset + --byteLength] * mul
19259 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
19260 offset = offset
>>> 0
19261 if (!noAssert) checkOffset(offset,
1, this.length)
19262 return this[offset]
19265 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
19266 offset = offset
>>> 0
19267 if (!noAssert) checkOffset(offset,
2, this.length)
19268 return this[offset] | (this[offset +
1] <<
8)
19271 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
19272 offset = offset
>>> 0
19273 if (!noAssert) checkOffset(offset,
2, this.length)
19274 return (this[offset] <<
8) | this[offset +
1]
19277 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
19278 offset = offset
>>> 0
19279 if (!noAssert) checkOffset(offset,
4, this.length)
19281 return ((this[offset]) |
19282 (this[offset +
1] <<
8) |
19283 (this[offset +
2] <<
16)) +
19284 (this[offset +
3] *
0x1000000)
19287 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
19288 offset = offset
>>> 0
19289 if (!noAssert) checkOffset(offset,
4, this.length)
19291 return (this[offset] *
0x1000000) +
19292 ((this[offset +
1] <<
16) |
19293 (this[offset +
2] <<
8) |
19297 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
19298 offset = offset
>>> 0
19299 byteLength = byteLength
>>> 0
19300 if (!noAssert) checkOffset(offset, byteLength, this.length)
19302 var val = this[offset]
19305 while (++i < byteLength && (mul *=
0x100)) {
19306 val += this[offset + i] * mul
19310 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19315 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
19316 offset = offset
>>> 0
19317 byteLength = byteLength
>>> 0
19318 if (!noAssert) checkOffset(offset, byteLength, this.length)
19322 var val = this[offset + --i]
19323 while (i
> 0 && (mul *=
0x100)) {
19324 val += this[offset + --i] * mul
19328 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19333 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
19334 offset = offset
>>> 0
19335 if (!noAssert) checkOffset(offset,
1, this.length)
19336 if (!(this[offset] &
0x80)) return (this[offset])
19337 return ((
0xff - this[offset] +
1) * -
1)
19340 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
19341 offset = offset
>>> 0
19342 if (!noAssert) checkOffset(offset,
2, this.length)
19343 var val = this[offset] | (this[offset +
1] <<
8)
19344 return (val &
0x8000) ? val |
0xFFFF0000 : val
19347 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
19348 offset = offset
>>> 0
19349 if (!noAssert) checkOffset(offset,
2, this.length)
19350 var val = this[offset +
1] | (this[offset] <<
8)
19351 return (val &
0x8000) ? val |
0xFFFF0000 : val
19354 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
19355 offset = offset
>>> 0
19356 if (!noAssert) checkOffset(offset,
4, this.length)
19358 return (this[offset]) |
19359 (this[offset +
1] <<
8) |
19360 (this[offset +
2] <<
16) |
19361 (this[offset +
3] <<
24)
19364 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
19365 offset = offset
>>> 0
19366 if (!noAssert) checkOffset(offset,
4, this.length)
19368 return (this[offset] <<
24) |
19369 (this[offset +
1] <<
16) |
19370 (this[offset +
2] <<
8) |
19374 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
19375 offset = offset
>>> 0
19376 if (!noAssert) checkOffset(offset,
4, this.length)
19377 return ieee754.read(this, offset, true,
23,
4)
19380 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
19381 offset = offset
>>> 0
19382 if (!noAssert) checkOffset(offset,
4, this.length)
19383 return ieee754.read(this, offset, false,
23,
4)
19386 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
19387 offset = offset
>>> 0
19388 if (!noAssert) checkOffset(offset,
8, this.length)
19389 return ieee754.read(this, offset, true,
52,
8)
19392 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
19393 offset = offset
>>> 0
19394 if (!noAssert) checkOffset(offset,
8, this.length)
19395 return ieee754.read(this, offset, false,
52,
8)
19398 function checkInt (buf, value, offset, ext, max, min) {
19399 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
19400 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
19401 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
19404 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
19406 offset = offset
>>> 0
19407 byteLength = byteLength
>>> 0
19409 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19410 checkInt(this, value, offset, byteLength, maxBytes,
0)
19415 this[offset] = value &
0xFF
19416 while (++i < byteLength && (mul *=
0x100)) {
19417 this[offset + i] = (value / mul) &
0xFF
19420 return offset + byteLength
19423 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
19425 offset = offset
>>> 0
19426 byteLength = byteLength
>>> 0
19428 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19429 checkInt(this, value, offset, byteLength, maxBytes,
0)
19432 var i = byteLength -
1
19434 this[offset + i] = value &
0xFF
19435 while (--i
>=
0 && (mul *=
0x100)) {
19436 this[offset + i] = (value / mul) &
0xFF
19439 return offset + byteLength
19442 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
19444 offset = offset
>>> 0
19445 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
19446 this[offset] = (value &
0xff)
19450 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
19452 offset = offset
>>> 0
19453 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19454 this[offset] = (value &
0xff)
19455 this[offset +
1] = (value
>>> 8)
19459 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
19461 offset = offset
>>> 0
19462 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19463 this[offset] = (value
>>> 8)
19464 this[offset +
1] = (value &
0xff)
19468 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
19470 offset = offset
>>> 0
19471 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19472 this[offset +
3] = (value
>>> 24)
19473 this[offset +
2] = (value
>>> 16)
19474 this[offset +
1] = (value
>>> 8)
19475 this[offset] = (value &
0xff)
19479 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
19481 offset = offset
>>> 0
19482 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19483 this[offset] = (value
>>> 24)
19484 this[offset +
1] = (value
>>> 16)
19485 this[offset +
2] = (value
>>> 8)
19486 this[offset +
3] = (value &
0xff)
19490 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
19492 offset = offset
>>> 0
19494 var limit = Math.pow(
2, (
8 * byteLength) -
1)
19496 checkInt(this, value, offset, byteLength, limit -
1, -limit)
19502 this[offset] = value &
0xFF
19503 while (++i < byteLength && (mul *=
0x100)) {
19504 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
19507 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
19510 return offset + byteLength
19513 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
19515 offset = offset
>>> 0
19517 var limit = Math.pow(
2, (
8 * byteLength) -
1)
19519 checkInt(this, value, offset, byteLength, limit -
1, -limit)
19522 var i = byteLength -
1
19525 this[offset + i] = value &
0xFF
19526 while (--i
>=
0 && (mul *=
0x100)) {
19527 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
19530 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
19533 return offset + byteLength
19536 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
19538 offset = offset
>>> 0
19539 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
19540 if (value <
0) value =
0xff + value +
1
19541 this[offset] = (value &
0xff)
19545 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
19547 offset = offset
>>> 0
19548 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
19549 this[offset] = (value &
0xff)
19550 this[offset +
1] = (value
>>> 8)
19554 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
19556 offset = offset
>>> 0
19557 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
19558 this[offset] = (value
>>> 8)
19559 this[offset +
1] = (value &
0xff)
19563 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
19565 offset = offset
>>> 0
19566 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
19567 this[offset] = (value &
0xff)
19568 this[offset +
1] = (value
>>> 8)
19569 this[offset +
2] = (value
>>> 16)
19570 this[offset +
3] = (value
>>> 24)
19574 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
19576 offset = offset
>>> 0
19577 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
19578 if (value <
0) value =
0xffffffff + value +
1
19579 this[offset] = (value
>>> 24)
19580 this[offset +
1] = (value
>>> 16)
19581 this[offset +
2] = (value
>>> 8)
19582 this[offset +
3] = (value &
0xff)
19586 function checkIEEE754 (buf, value, offset, ext, max, min) {
19587 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
19588 if (offset <
0) throw new RangeError('Index out of range')
19591 function writeFloat (buf, value, offset, littleEndian, noAssert) {
19593 offset = offset
>>> 0
19595 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
19597 ieee754.write(buf, value, offset, littleEndian,
23,
4)
19601 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
19602 return writeFloat(this, value, offset, true, noAssert)
19605 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
19606 return writeFloat(this, value, offset, false, noAssert)
19609 function writeDouble (buf, value, offset, littleEndian, noAssert) {
19611 offset = offset
>>> 0
19613 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
19615 ieee754.write(buf, value, offset, littleEndian,
52,
8)
19619 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
19620 return writeDouble(this, value, offset, true, noAssert)
19623 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
19624 return writeDouble(this, value, offset, false, noAssert)
19627 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
19628 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
19629 if (!start) start =
0
19630 if (!end && end !==
0) end = this.length
19631 if (targetStart
>= target.length) targetStart = target.length
19632 if (!targetStart) targetStart =
0
19633 if (end
> 0 && end < start) end = start
19635 // Copy
0 bytes; we're done
19636 if (end === start) return
0
19637 if (target.length ===
0 || this.length ===
0) return
0
19639 // Fatal error conditions
19640 if (targetStart <
0) {
19641 throw new RangeError('targetStart out of bounds')
19643 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
19644 if (end <
0) throw new RangeError('sourceEnd out of bounds')
19647 if (end
> this.length) end = this.length
19648 if (target.length - targetStart < end - start) {
19649 end = target.length - targetStart + start
19652 var len = end - start
19655 if (this === target && start < targetStart && targetStart < end) {
19656 // descending copy from end
19657 for (i = len -
1; i
>=
0; --i) {
19658 target[i + targetStart] = this[i + start]
19660 } else if (len <
1000) {
19661 // ascending copy from start
19662 for (i =
0; i < len; ++i) {
19663 target[i + targetStart] = this[i + start]
19666 Uint8Array.prototype.set.call(
19668 this.subarray(start, start + len),
19677 // buffer.fill(number[, offset[, end]])
19678 // buffer.fill(buffer[, offset[, end]])
19679 // buffer.fill(string[, offset[, end]][, encoding])
19680 Buffer.prototype.fill = function fill (val, start, end, encoding) {
19681 // Handle string cases:
19682 if (typeof val === 'string') {
19683 if (typeof start === 'string') {
19687 } else if (typeof end === 'string') {
19691 if (val.length ===
1) {
19692 var code = val.charCodeAt(
0)
19697 if (encoding !== undefined && typeof encoding !== 'string') {
19698 throw new TypeError('encoding must be a string')
19700 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
19701 throw new TypeError('Unknown encoding: ' + encoding)
19703 } else if (typeof val === 'number') {
19707 // Invalid ranges are not set to a default, so can range check early.
19708 if (start <
0 || this.length < start || this.length < end) {
19709 throw new RangeError('Out of range index')
19712 if (end <= start) {
19716 start = start
>>> 0
19717 end = end === undefined ? this.length : end
>>> 0
19722 if (typeof val === 'number') {
19723 for (i = start; i < end; ++i) {
19727 var bytes = Buffer.isBuffer(val)
19729 : new Buffer(val, encoding)
19730 var len = bytes.length
19731 for (i =
0; i < end - start; ++i) {
19732 this[i + start] = bytes[i % len]
19739 // HELPER FUNCTIONS
19740 // ================
19742 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
19744 function base64clean (str) {
19745 // Node strips out invalid characters like \n and \t from the string, base64-js does not
19746 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
19747 // Node converts strings with length <
2 to ''
19748 if (str.length <
2) return ''
19749 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
19750 while (str.length %
4 !==
0) {
19756 function stringtrim (str) {
19757 if (str.trim) return str.trim()
19758 return str.replace(/^\s+|\s+$/g, '')
19761 function toHex (n) {
19762 if (n <
16) return '
0' + n.toString(
16)
19763 return n.toString(
16)
19766 function utf8ToBytes (string, units) {
19767 units = units || Infinity
19769 var length = string.length
19770 var leadSurrogate = null
19773 for (var i =
0; i < length; ++i) {
19774 codePoint = string.charCodeAt(i)
19776 // is surrogate component
19777 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
19778 // last char was a lead
19779 if (!leadSurrogate) {
19781 if (codePoint
> 0xDBFF) {
19782 // unexpected trail
19783 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19785 } else if (i +
1 === length) {
19787 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19792 leadSurrogate = codePoint
19797 //
2 leads in a row
19798 if (codePoint <
0xDC00) {
19799 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19800 leadSurrogate = codePoint
19804 // valid surrogate pair
19805 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
19806 } else if (leadSurrogate) {
19807 // valid bmp char, but last char was a lead
19808 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19811 leadSurrogate = null
19814 if (codePoint <
0x80) {
19815 if ((units -=
1) <
0) break
19816 bytes.push(codePoint)
19817 } else if (codePoint <
0x800) {
19818 if ((units -=
2) <
0) break
19820 codePoint
>> 0x6 |
0xC0,
19821 codePoint &
0x3F |
0x80
19823 } else if (codePoint <
0x10000) {
19824 if ((units -=
3) <
0) break
19826 codePoint
>> 0xC |
0xE0,
19827 codePoint
>> 0x6 &
0x3F |
0x80,
19828 codePoint &
0x3F |
0x80
19830 } else if (codePoint <
0x110000) {
19831 if ((units -=
4) <
0) break
19833 codePoint
>> 0x12 |
0xF0,
19834 codePoint
>> 0xC &
0x3F |
0x80,
19835 codePoint
>> 0x6 &
0x3F |
0x80,
19836 codePoint &
0x3F |
0x80
19839 throw new Error('Invalid code point')
19846 function asciiToBytes (str) {
19848 for (var i =
0; i < str.length; ++i) {
19849 // Node's code seems to be doing this and not &
0x7F..
19850 byteArray.push(str.charCodeAt(i) &
0xFF)
19855 function utf16leToBytes (str, units) {
19858 for (var i =
0; i < str.length; ++i) {
19859 if ((units -=
2) <
0) break
19861 c = str.charCodeAt(i)
19871 function base64ToBytes (str) {
19872 return base64.toByteArray(base64clean(str))
19875 function blitBuffer (src, dst, offset, length) {
19876 for (var i =
0; i < length; ++i) {
19877 if ((i + offset
>= dst.length) || (i
>= src.length)) break
19878 dst[i + offset] = src[i]
19883 function isnan (val) {
19884 return val !== val // eslint-disable-line no-self-compare
19887 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
19888 (function (Buffer){
19889 // Copyright Joyent, Inc. and other Node contributors.
19891 // Permission is hereby granted, free of charge, to any person obtaining a
19892 // copy of this software and associated documentation files (the
19893 // "Software"), to deal in the Software without restriction, including
19894 // without limitation the rights to use, copy, modify, merge, publish,
19895 // distribute, sublicense, and/or sell copies of the Software, and to permit
19896 // persons to whom the Software is furnished to do so, subject to the
19897 // following conditions:
19899 // The above copyright notice and this permission notice shall be included
19900 // in all copies or substantial portions of the Software.
19902 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19903 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19904 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
19905 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
19906 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19907 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
19908 // USE OR OTHER DEALINGS IN THE SOFTWARE.
19910 // NOTE: These type checking functions intentionally don't use `instanceof`
19911 // because it is fragile and can be easily faked with `Object.create()`.
19913 function isArray(arg) {
19914 if (Array.isArray) {
19915 return Array.isArray(arg);
19917 return objectToString(arg) === '[object Array]';
19919 exports.isArray = isArray;
19921 function isBoolean(arg) {
19922 return typeof arg === 'boolean';
19924 exports.isBoolean = isBoolean;
19926 function isNull(arg) {
19927 return arg === null;
19929 exports.isNull = isNull;
19931 function isNullOrUndefined(arg) {
19932 return arg == null;
19934 exports.isNullOrUndefined = isNullOrUndefined;
19936 function isNumber(arg) {
19937 return typeof arg === 'number';
19939 exports.isNumber = isNumber;
19941 function isString(arg) {
19942 return typeof arg === 'string';
19944 exports.isString = isString;
19946 function isSymbol(arg) {
19947 return typeof arg === 'symbol';
19949 exports.isSymbol = isSymbol;
19951 function isUndefined(arg) {
19952 return arg === void
0;
19954 exports.isUndefined = isUndefined;
19956 function isRegExp(re) {
19957 return objectToString(re) === '[object RegExp]';
19959 exports.isRegExp = isRegExp;
19961 function isObject(arg) {
19962 return typeof arg === 'object' && arg !== null;
19964 exports.isObject = isObject;
19966 function isDate(d) {
19967 return objectToString(d) === '[object Date]';
19969 exports.isDate = isDate;
19971 function isError(e) {
19972 return (objectToString(e) === '[object Error]' || e instanceof Error);
19974 exports.isError = isError;
19976 function isFunction(arg) {
19977 return typeof arg === 'function';
19979 exports.isFunction = isFunction;
19981 function isPrimitive(arg) {
19982 return arg === null ||
19983 typeof arg === 'boolean' ||
19984 typeof arg === 'number' ||
19985 typeof arg === 'string' ||
19986 typeof arg === 'symbol' || // ES6 symbol
19987 typeof arg === 'undefined';
19989 exports.isPrimitive = isPrimitive;
19991 exports.isBuffer = Buffer.isBuffer;
19993 function objectToString(o) {
19994 return Object.prototype.toString.call(o);
19997 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
19998 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
19999 // Copyright Joyent, Inc. and other Node contributors.
20001 // Permission is hereby granted, free of charge, to any person obtaining a
20002 // copy of this software and associated documentation files (the
20003 // "Software"), to deal in the Software without restriction, including
20004 // without limitation the rights to use, copy, modify, merge, publish,
20005 // distribute, sublicense, and/or sell copies of the Software, and to permit
20006 // persons to whom the Software is furnished to do so, subject to the
20007 // following conditions:
20009 // The above copyright notice and this permission notice shall be included
20010 // in all copies or substantial portions of the Software.
20012 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20013 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20014 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
20015 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20016 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20017 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20018 // USE OR OTHER DEALINGS IN THE SOFTWARE.
20020 function EventEmitter() {
20021 this._events = this._events || {};
20022 this._maxListeners = this._maxListeners || undefined;
20024 module.exports = EventEmitter;
20026 // Backwards-compat with node
0.10.x
20027 EventEmitter.EventEmitter = EventEmitter;
20029 EventEmitter.prototype._events = undefined;
20030 EventEmitter.prototype._maxListeners = undefined;
20032 // By default EventEmitters will print a warning if more than
10 listeners are
20033 // added to it. This is a useful default which helps finding memory leaks.
20034 EventEmitter.defaultMaxListeners =
10;
20036 // Obviously not all Emitters should be limited to
10. This function allows
20037 // that to be increased. Set to zero for unlimited.
20038 EventEmitter.prototype.setMaxListeners = function(n) {
20039 if (!isNumber(n) || n <
0 || isNaN(n))
20040 throw TypeError('n must be a positive number');
20041 this._maxListeners = n;
20045 EventEmitter.prototype.emit = function(type) {
20046 var er, handler, len, args, i, listeners;
20051 // If there is no 'error' event listener then throw.
20052 if (type === 'error') {
20053 if (!this._events.error ||
20054 (isObject(this._events.error) && !this._events.error.length)) {
20056 if (er instanceof Error) {
20057 throw er; // Unhandled 'error' event
20059 // At least give some kind of context to the user
20060 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
20067 handler = this._events[type];
20069 if (isUndefined(handler))
20072 if (isFunction(handler)) {
20073 switch (arguments.length) {
20076 handler.call(this);
20079 handler.call(this, arguments[
1]);
20082 handler.call(this, arguments[
1], arguments[
2]);
20086 args = Array.prototype.slice.call(arguments,
1);
20087 handler.apply(this, args);
20089 } else if (isObject(handler)) {
20090 args = Array.prototype.slice.call(arguments,
1);
20091 listeners = handler.slice();
20092 len = listeners.length;
20093 for (i =
0; i < len; i++)
20094 listeners[i].apply(this, args);
20100 EventEmitter.prototype.addListener = function(type, listener) {
20103 if (!isFunction(listener))
20104 throw TypeError('listener must be a function');
20109 // To avoid recursion in the case that type === "newListener"! Before
20110 // adding it to the listeners, first emit "newListener".
20111 if (this._events.newListener)
20112 this.emit('newListener', type,
20113 isFunction(listener.listener) ?
20114 listener.listener : listener);
20116 if (!this._events[type])
20117 // Optimize the case of one listener. Don't need the extra array object.
20118 this._events[type] = listener;
20119 else if (isObject(this._events[type]))
20120 // If we've already got an array, just append.
20121 this._events[type].push(listener);
20123 // Adding the second element, need to change to array.
20124 this._events[type] = [this._events[type], listener];
20126 // Check for listener leak
20127 if (isObject(this._events[type]) && !this._events[type].warned) {
20128 if (!isUndefined(this._maxListeners)) {
20129 m = this._maxListeners;
20131 m = EventEmitter.defaultMaxListeners;
20134 if (m && m
> 0 && this._events[type].length
> m) {
20135 this._events[type].warned = true;
20136 console.error('(node) warning: possible EventEmitter memory ' +
20137 'leak detected. %d listeners added. ' +
20138 'Use emitter.setMaxListeners() to increase limit.',
20139 this._events[type].length);
20140 if (typeof console.trace === 'function') {
20141 // not supported in IE
10
20150 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
20152 EventEmitter.prototype.once = function(type, listener) {
20153 if (!isFunction(listener))
20154 throw TypeError('listener must be a function');
20159 this.removeListener(type, g);
20163 listener.apply(this, arguments);
20167 g.listener = listener;
20173 // emits a 'removeListener' event iff the listener was removed
20174 EventEmitter.prototype.removeListener = function(type, listener) {
20175 var list, position, length, i;
20177 if (!isFunction(listener))
20178 throw TypeError('listener must be a function');
20180 if (!this._events || !this._events[type])
20183 list = this._events[type];
20184 length = list.length;
20187 if (list === listener ||
20188 (isFunction(list.listener) && list.listener === listener)) {
20189 delete this._events[type];
20190 if (this._events.removeListener)
20191 this.emit('removeListener', type, listener);
20193 } else if (isObject(list)) {
20194 for (i = length; i--
> 0;) {
20195 if (list[i] === listener ||
20196 (list[i].listener && list[i].listener === listener)) {
20205 if (list.length ===
1) {
20207 delete this._events[type];
20209 list.splice(position,
1);
20212 if (this._events.removeListener)
20213 this.emit('removeListener', type, listener);
20219 EventEmitter.prototype.removeAllListeners = function(type) {
20220 var key, listeners;
20225 // not listening for removeListener, no need to emit
20226 if (!this._events.removeListener) {
20227 if (arguments.length ===
0)
20229 else if (this._events[type])
20230 delete this._events[type];
20234 // emit removeListener for all listeners on all events
20235 if (arguments.length ===
0) {
20236 for (key in this._events) {
20237 if (key === 'removeListener') continue;
20238 this.removeAllListeners(key);
20240 this.removeAllListeners('removeListener');
20245 listeners = this._events[type];
20247 if (isFunction(listeners)) {
20248 this.removeListener(type, listeners);
20249 } else if (listeners) {
20251 while (listeners.length)
20252 this.removeListener(type, listeners[listeners.length -
1]);
20254 delete this._events[type];
20259 EventEmitter.prototype.listeners = function(type) {
20261 if (!this._events || !this._events[type])
20263 else if (isFunction(this._events[type]))
20264 ret = [this._events[type]];
20266 ret = this._events[type].slice();
20270 EventEmitter.prototype.listenerCount = function(type) {
20271 if (this._events) {
20272 var evlistener = this._events[type];
20274 if (isFunction(evlistener))
20276 else if (evlistener)
20277 return evlistener.length;
20282 EventEmitter.listenerCount = function(emitter, type) {
20283 return emitter.listenerCount(type);
20286 function isFunction(arg) {
20287 return typeof arg === 'function';
20290 function isNumber(arg) {
20291 return typeof arg === 'number';
20294 function isObject(arg) {
20295 return typeof arg === 'object' && arg !== null;
20298 function isUndefined(arg) {
20299 return arg === void
0;
20302 },{}],
8:[function(require,module,exports){
20303 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
20305 var eLen = nBytes *
8 - mLen -
1
20306 var eMax = (
1 << eLen) -
1
20307 var eBias = eMax
>> 1
20309 var i = isLE ? (nBytes -
1) :
0
20310 var d = isLE ? -
1 :
1
20311 var s = buffer[offset + i]
20315 e = s & ((
1 << (-nBits)) -
1)
20318 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20320 m = e & ((
1 << (-nBits)) -
1)
20323 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20327 } else if (e === eMax) {
20328 return m ? NaN : ((s ? -
1 :
1) * Infinity)
20330 m = m + Math.pow(
2, mLen)
20333 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
20336 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
20338 var eLen = nBytes *
8 - mLen -
1
20339 var eMax = (
1 << eLen) -
1
20340 var eBias = eMax
>> 1
20341 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
20342 var i = isLE ?
0 : (nBytes -
1)
20343 var d = isLE ?
1 : -
1
20344 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
20346 value = Math.abs(value)
20348 if (isNaN(value) || value === Infinity) {
20349 m = isNaN(value) ?
1 :
0
20352 e = Math.floor(Math.log(value) / Math.LN2)
20353 if (value * (c = Math.pow(
2, -e)) <
1) {
20357 if (e + eBias
>=
1) {
20360 value += rt * Math.pow(
2,
1 - eBias)
20362 if (value * c
>=
2) {
20367 if (e + eBias
>= eMax) {
20370 } else if (e + eBias
>=
1) {
20371 m = (value * c -
1) * Math.pow(
2, mLen)
20374 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
20379 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
20381 e = (e << mLen) | m
20383 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
20385 buffer[offset + i - d] |= s *
128
20388 },{}],
9:[function(require,module,exports){
20389 if (typeof Object.create === 'function') {
20390 // implementation from standard node.js 'util' module
20391 module.exports = function inherits(ctor, superCtor) {
20392 ctor.super_ = superCtor
20393 ctor.prototype = Object.create(superCtor.prototype, {
20403 // old school shim for old browsers
20404 module.exports = function inherits(ctor, superCtor) {
20405 ctor.super_ = superCtor
20406 var TempCtor = function () {}
20407 TempCtor.prototype = superCtor.prototype
20408 ctor.prototype = new TempCtor()
20409 ctor.prototype.constructor = ctor
20413 },{}],
10:[function(require,module,exports){
20415 * Determine if an object is a Buffer
20417 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20421 // The _isBuffer check is for Safari
5-
7 support, because it's missing
20422 // Object.prototype.constructor. Remove this eventually
20423 module.exports = function (obj) {
20424 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
20427 function isBuffer (obj) {
20428 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
20431 // For Node v0.10 support. Remove this eventually.
20432 function isSlowBuffer (obj) {
20433 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
20436 },{}],
11:[function(require,module,exports){
20437 var toString = {}.toString;
20439 module.exports = Array.isArray || function (arr) {
20440 return toString.call(arr) == '[object Array]';
20443 },{}],
12:[function(require,module,exports){
20444 (function (process){
20447 if (!process.version ||
20448 process.version.indexOf('v0.') ===
0 ||
20449 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
20450 module.exports = nextTick;
20452 module.exports = process.nextTick;
20455 function nextTick(fn, arg1, arg2, arg3) {
20456 if (typeof fn !== 'function') {
20457 throw new TypeError('"callback" argument must be a function');
20459 var len = arguments.length;
20464 return process.nextTick(fn);
20466 return process.nextTick(function afterTickOne() {
20467 fn.call(null, arg1);
20470 return process.nextTick(function afterTickTwo() {
20471 fn.call(null, arg1, arg2);
20474 return process.nextTick(function afterTickThree() {
20475 fn.call(null, arg1, arg2, arg3);
20478 args = new Array(len -
1);
20480 while (i < args.length) {
20481 args[i++] = arguments[i];
20483 return process.nextTick(function afterTick() {
20484 fn.apply(null, args);
20489 }).call(this,require('_process'))
20490 },{"_process":
13}],
13:[function(require,module,exports){
20491 // shim for using process in browser
20492 var process = module.exports = {};
20494 // cached from whatever global is present so that test runners that stub it
20495 // don't break things. But we need to wrap it in a try catch in case it is
20496 // wrapped in strict mode code which doesn't define any globals. It's inside a
20497 // function because try/catches deoptimize in certain engines.
20499 var cachedSetTimeout;
20500 var cachedClearTimeout;
20502 function defaultSetTimout() {
20503 throw new Error('setTimeout has not been defined');
20505 function defaultClearTimeout () {
20506 throw new Error('clearTimeout has not been defined');
20510 if (typeof setTimeout === 'function') {
20511 cachedSetTimeout = setTimeout;
20513 cachedSetTimeout = defaultSetTimout;
20516 cachedSetTimeout = defaultSetTimout;
20519 if (typeof clearTimeout === 'function') {
20520 cachedClearTimeout = clearTimeout;
20522 cachedClearTimeout = defaultClearTimeout;
20525 cachedClearTimeout = defaultClearTimeout;
20528 function runTimeout(fun) {
20529 if (cachedSetTimeout === setTimeout) {
20530 //normal enviroments in sane situations
20531 return setTimeout(fun,
0);
20533 // if setTimeout wasn't available but was latter defined
20534 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
20535 cachedSetTimeout = setTimeout;
20536 return setTimeout(fun,
0);
20539 // when when somebody has screwed with setTimeout but no I.E. maddness
20540 return cachedSetTimeout(fun,
0);
20543 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
20544 return cachedSetTimeout.call(null, fun,
0);
20546 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
20547 return cachedSetTimeout.call(this, fun,
0);
20553 function runClearTimeout(marker) {
20554 if (cachedClearTimeout === clearTimeout) {
20555 //normal enviroments in sane situations
20556 return clearTimeout(marker);
20558 // if clearTimeout wasn't available but was latter defined
20559 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
20560 cachedClearTimeout = clearTimeout;
20561 return clearTimeout(marker);
20564 // when when somebody has screwed with setTimeout but no I.E. maddness
20565 return cachedClearTimeout(marker);
20568 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
20569 return cachedClearTimeout.call(null, marker);
20571 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
20572 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
20573 return cachedClearTimeout.call(this, marker);
20581 var draining = false;
20583 var queueIndex = -
1;
20585 function cleanUpNextTick() {
20586 if (!draining || !currentQueue) {
20590 if (currentQueue.length) {
20591 queue = currentQueue.concat(queue);
20595 if (queue.length) {
20600 function drainQueue() {
20604 var timeout = runTimeout(cleanUpNextTick);
20607 var len = queue.length;
20609 currentQueue = queue;
20611 while (++queueIndex < len) {
20612 if (currentQueue) {
20613 currentQueue[queueIndex].run();
20617 len = queue.length;
20619 currentQueue = null;
20621 runClearTimeout(timeout);
20624 process.nextTick = function (fun) {
20625 var args = new Array(arguments.length -
1);
20626 if (arguments.length
> 1) {
20627 for (var i =
1; i < arguments.length; i++) {
20628 args[i -
1] = arguments[i];
20631 queue.push(new Item(fun, args));
20632 if (queue.length ===
1 && !draining) {
20633 runTimeout(drainQueue);
20637 // v8 likes predictible objects
20638 function Item(fun, array) {
20640 this.array = array;
20642 Item.prototype.run = function () {
20643 this.fun.apply(null, this.array);
20645 process.title = 'browser';
20646 process.browser = true;
20649 process.version = ''; // empty string to avoid regexp issues
20650 process.versions = {};
20655 process.addListener = noop;
20656 process.once = noop;
20657 process.off = noop;
20658 process.removeListener = noop;
20659 process.removeAllListeners = noop;
20660 process.emit = noop;
20662 process.binding = function (name) {
20663 throw new Error('process.binding is not supported');
20666 process.cwd = function () { return '/' };
20667 process.chdir = function (dir) {
20668 throw new Error('process.chdir is not supported');
20670 process.umask = function() { return
0; };
20672 },{}],
14:[function(require,module,exports){
20673 module.exports = require(
"./lib/_stream_duplex.js")
20675 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
20676 // a duplex stream is just a stream that is both readable and writable.
20677 // Since JS doesn't have multiple prototypal inheritance, this class
20678 // prototypally inherits from Readable, and then parasitically from
20685 var objectKeys = Object.keys || function (obj) {
20687 for (var key in obj) {
20693 module.exports = Duplex;
20696 var processNextTick = require('process-nextick-args');
20700 var util = require('core-util-is');
20701 util.inherits = require('inherits');
20704 var Readable = require('./_stream_readable');
20705 var Writable = require('./_stream_writable');
20707 util.inherits(Duplex, Readable);
20709 var keys = objectKeys(Writable.prototype);
20710 for (var v =
0; v < keys.length; v++) {
20711 var method = keys[v];
20712 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
20715 function Duplex(options) {
20716 if (!(this instanceof Duplex)) return new Duplex(options);
20718 Readable.call(this, options);
20719 Writable.call(this, options);
20721 if (options && options.readable === false) this.readable = false;
20723 if (options && options.writable === false) this.writable = false;
20725 this.allowHalfOpen = true;
20726 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
20728 this.once('end', onend);
20731 // the no-half-open enforcer
20733 // if we allow half-open state, or if the writable side ended,
20735 if (this.allowHalfOpen || this._writableState.ended) return;
20737 // no more data can be written.
20738 // But allow more writes to happen in this tick.
20739 processNextTick(onEndNT, this);
20742 function onEndNT(self) {
20746 function forEach(xs, f) {
20747 for (var i =
0, l = xs.length; i < l; i++) {
20751 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
20752 // a passthrough stream.
20753 // basically just the most minimal sort of Transform stream.
20754 // Every written chunk gets output as-is.
20758 module.exports = PassThrough;
20760 var Transform = require('./_stream_transform');
20763 var util = require('core-util-is');
20764 util.inherits = require('inherits');
20767 util.inherits(PassThrough, Transform);
20769 function PassThrough(options) {
20770 if (!(this instanceof PassThrough)) return new PassThrough(options);
20772 Transform.call(this, options);
20775 PassThrough.prototype._transform = function (chunk, encoding, cb) {
20778 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
20779 (function (process){
20782 module.exports = Readable;
20785 var processNextTick = require('process-nextick-args');
20789 var isArray = require('isarray');
20796 Readable.ReadableState = ReadableState;
20799 var EE = require('events').EventEmitter;
20801 var EElistenerCount = function (emitter, type) {
20802 return emitter.listeners(type).length;
20810 Stream = require('st' + 'ream');
20811 } catch (_) {} finally {
20812 if (!Stream) Stream = require('events').EventEmitter;
20817 var Buffer = require('buffer').Buffer;
20819 var bufferShim = require('buffer-shims');
20823 var util = require('core-util-is');
20824 util.inherits = require('inherits');
20828 var debugUtil = require('util');
20829 var debug = void
0;
20830 if (debugUtil && debugUtil.debuglog) {
20831 debug = debugUtil.debuglog('stream');
20833 debug = function () {};
20837 var BufferList = require('./internal/streams/BufferList');
20840 util.inherits(Readable, Stream);
20842 function prependListener(emitter, event, fn) {
20843 // Sadly this is not cacheable as some libraries bundle their own
20844 // event emitter implementation with them.
20845 if (typeof emitter.prependListener === 'function') {
20846 return emitter.prependListener(event, fn);
20848 // This is a hack to make sure that our error handler is attached before any
20849 // userland ones. NEVER DO THIS. This is here only because this code needs
20850 // to continue to work with older versions of Node.js that do not include
20851 // the prependListener() method. The goal is to eventually remove this hack.
20852 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
20856 function ReadableState(options, stream) {
20857 Duplex = Duplex || require('./_stream_duplex');
20859 options = options || {};
20861 // object stream flag. Used to make read(n) ignore n and to
20862 // make all the buffer merging and length checks go away
20863 this.objectMode = !!options.objectMode;
20865 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
20867 // the point at which it stops calling _read() to fill the buffer
20868 // Note:
0 is a valid value, means "don't call _read preemptively ever"
20869 var hwm = options.highWaterMark;
20870 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
20871 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
20874 this.highWaterMark = ~ ~this.highWaterMark;
20876 // A linked list is used to store data chunks instead of an array because the
20877 // linked list can remove elements from the beginning faster than
20879 this.buffer = new BufferList();
20882 this.pipesCount =
0;
20883 this.flowing = null;
20884 this.ended = false;
20885 this.endEmitted = false;
20886 this.reading = false;
20888 // a flag to be able to tell if the onwrite cb is called immediately,
20889 // or on a later tick. We set this to true at first, because any
20890 // actions that shouldn't happen until "later" should generally also
20891 // not happen before the first write call.
20894 // whenever we return null, then we set a flag to say
20895 // that we're awaiting a 'readable' event emission.
20896 this.needReadable = false;
20897 this.emittedReadable = false;
20898 this.readableListening = false;
20899 this.resumeScheduled = false;
20901 // Crypto is kind of old and crusty. Historically, its default string
20902 // encoding is 'binary' so we have to make this configurable.
20903 // Everything else in the universe uses 'utf8', though.
20904 this.defaultEncoding = options.defaultEncoding || 'utf8';
20906 // when piping, we only care about 'readable' events that happen
20907 // after read()ing all the bytes and not getting any pushback.
20908 this.ranOut = false;
20910 // the number of writers that are awaiting a drain event in .pipe()s
20911 this.awaitDrain =
0;
20913 // if true, a maybeReadMore has been scheduled
20914 this.readingMore = false;
20916 this.decoder = null;
20917 this.encoding = null;
20918 if (options.encoding) {
20919 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
20920 this.decoder = new StringDecoder(options.encoding);
20921 this.encoding = options.encoding;
20925 function Readable(options) {
20926 Duplex = Duplex || require('./_stream_duplex');
20928 if (!(this instanceof Readable)) return new Readable(options);
20930 this._readableState = new ReadableState(options, this);
20933 this.readable = true;
20935 if (options && typeof options.read === 'function') this._read = options.read;
20940 // Manually shove something into the read() buffer.
20941 // This returns true if the highWaterMark has not been hit yet,
20942 // similar to how Writable.write() returns true if you should
20943 // write() some more.
20944 Readable.prototype.push = function (chunk, encoding) {
20945 var state = this._readableState;
20947 if (!state.objectMode && typeof chunk === 'string') {
20948 encoding = encoding || state.defaultEncoding;
20949 if (encoding !== state.encoding) {
20950 chunk = bufferShim.from(chunk, encoding);
20955 return readableAddChunk(this, state, chunk, encoding, false);
20958 // Unshift should *always* be something directly out of read()
20959 Readable.prototype.unshift = function (chunk) {
20960 var state = this._readableState;
20961 return readableAddChunk(this, state, chunk, '', true);
20964 Readable.prototype.isPaused = function () {
20965 return this._readableState.flowing === false;
20968 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
20969 var er = chunkInvalid(state, chunk);
20971 stream.emit('error', er);
20972 } else if (chunk === null) {
20973 state.reading = false;
20974 onEofChunk(stream, state);
20975 } else if (state.objectMode || chunk && chunk.length
> 0) {
20976 if (state.ended && !addToFront) {
20977 var e = new Error('stream.push() after EOF');
20978 stream.emit('error', e);
20979 } else if (state.endEmitted && addToFront) {
20980 var _e = new Error('stream.unshift() after end event');
20981 stream.emit('error', _e);
20984 if (state.decoder && !addToFront && !encoding) {
20985 chunk = state.decoder.write(chunk);
20986 skipAdd = !state.objectMode && chunk.length ===
0;
20989 if (!addToFront) state.reading = false;
20991 // Don't add to the buffer if we've decoded to an empty string chunk and
20992 // we're not in object mode
20994 // if we want the data now, just emit it.
20995 if (state.flowing && state.length ===
0 && !state.sync) {
20996 stream.emit('data', chunk);
20999 // update the buffer info.
21000 state.length += state.objectMode ?
1 : chunk.length;
21001 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
21003 if (state.needReadable) emitReadable(stream);
21007 maybeReadMore(stream, state);
21009 } else if (!addToFront) {
21010 state.reading = false;
21013 return needMoreData(state);
21016 // if it's past the high water mark, we can push in some more.
21017 // Also, if we have no data yet, we can stand some
21018 // more bytes. This is to work around cases where hwm=
0,
21019 // such as the repl. Also, if the push() triggered a
21020 // readable event, and the user called read(largeNumber) such that
21021 // needReadable was set, then we ought to push more, so that another
21022 // 'readable' event will be triggered.
21023 function needMoreData(state) {
21024 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
21027 // backwards compatibility.
21028 Readable.prototype.setEncoding = function (enc) {
21029 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
21030 this._readableState.decoder = new StringDecoder(enc);
21031 this._readableState.encoding = enc;
21035 // Don't raise the hwm
> 8MB
21036 var MAX_HWM =
0x800000;
21037 function computeNewHighWaterMark(n) {
21038 if (n
>= MAX_HWM) {
21041 // Get the next highest power of
2 to prevent increasing hwm excessively in
21054 // This function is designed to be inlinable, so please take care when making
21055 // changes to the function body.
21056 function howMuchToRead(n, state) {
21057 if (n <=
0 || state.length ===
0 && state.ended) return
0;
21058 if (state.objectMode) return
1;
21060 // Only flow one buffer at a time
21061 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
21063 // If we're asking for more than the current hwm, then raise the hwm.
21064 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
21065 if (n <= state.length) return n;
21066 // Don't have enough
21067 if (!state.ended) {
21068 state.needReadable = true;
21071 return state.length;
21074 // you can override either this method, or the async _read(n) below.
21075 Readable.prototype.read = function (n) {
21077 n = parseInt(n,
10);
21078 var state = this._readableState;
21081 if (n !==
0) state.emittedReadable = false;
21083 // if we're doing read(
0) to trigger a readable event, but we
21084 // already have a bunch of data in the buffer, then just trigger
21085 // the 'readable' event and move on.
21086 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
21087 debug('read: emitReadable', state.length, state.ended);
21088 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
21092 n = howMuchToRead(n, state);
21094 // if we've ended, and we're now clear, then finish it up.
21095 if (n ===
0 && state.ended) {
21096 if (state.length ===
0) endReadable(this);
21100 // All the actual chunk generation logic needs to be
21101 // *below* the call to _read. The reason is that in certain
21102 // synthetic stream cases, such as passthrough streams, _read
21103 // may be a completely synchronous operation which may change
21104 // the state of the read buffer, providing enough data when
21105 // before there was *not* enough.
21107 // So, the steps are:
21108 //
1. Figure out what the state of things will be after we do
21109 // a read from the buffer.
21111 //
2. If that resulting state will trigger a _read, then call _read.
21112 // Note that this may be asynchronous, or synchronous. Yes, it is
21113 // deeply ugly to write APIs this way, but that still doesn't mean
21114 // that the Readable class should behave improperly, as streams are
21115 // designed to be sync/async agnostic.
21116 // Take note if the _read call is sync or async (ie, if the read call
21117 // has returned yet), so that we know whether or not it's safe to emit
21120 //
3. Actually pull the requested chunks out of the buffer and return.
21122 // if we need a readable event, then we need to do some reading.
21123 var doRead = state.needReadable;
21124 debug('need readable', doRead);
21126 // if we currently have less than the highWaterMark, then also read some
21127 if (state.length ===
0 || state.length - n < state.highWaterMark) {
21129 debug('length less than watermark', doRead);
21132 // however, if we've ended, then there's no point, and if we're already
21133 // reading, then it's unnecessary.
21134 if (state.ended || state.reading) {
21136 debug('reading or ended', doRead);
21137 } else if (doRead) {
21139 state.reading = true;
21141 // if the length is currently zero, then we *need* a readable event.
21142 if (state.length ===
0) state.needReadable = true;
21143 // call internal read method
21144 this._read(state.highWaterMark);
21145 state.sync = false;
21146 // If _read pushed data synchronously, then `reading` will be false,
21147 // and we need to re-evaluate how much data we can return to the user.
21148 if (!state.reading) n = howMuchToRead(nOrig, state);
21152 if (n
> 0) ret = fromList(n, state);else ret = null;
21154 if (ret === null) {
21155 state.needReadable = true;
21161 if (state.length ===
0) {
21162 // If we have nothing in the buffer, then we want to know
21163 // as soon as we *do* get something into the buffer.
21164 if (!state.ended) state.needReadable = true;
21166 // If we tried to read() past the EOF, then emit end on the next tick.
21167 if (nOrig !== n && state.ended) endReadable(this);
21170 if (ret !== null) this.emit('data', ret);
21175 function chunkInvalid(state, chunk) {
21177 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
21178 er = new TypeError('Invalid non-string/buffer chunk');
21183 function onEofChunk(stream, state) {
21184 if (state.ended) return;
21185 if (state.decoder) {
21186 var chunk = state.decoder.end();
21187 if (chunk && chunk.length) {
21188 state.buffer.push(chunk);
21189 state.length += state.objectMode ?
1 : chunk.length;
21192 state.ended = true;
21194 // emit 'readable' now to make sure it gets picked up.
21195 emitReadable(stream);
21198 // Don't emit readable right away in sync mode, because this can trigger
21199 // another read() call =
> stack overflow. This way, it might trigger
21200 // a nextTick recursion warning, but that's not so bad.
21201 function emitReadable(stream) {
21202 var state = stream._readableState;
21203 state.needReadable = false;
21204 if (!state.emittedReadable) {
21205 debug('emitReadable', state.flowing);
21206 state.emittedReadable = true;
21207 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
21211 function emitReadable_(stream) {
21212 debug('emit readable');
21213 stream.emit('readable');
21217 // at this point, the user has presumably seen the 'readable' event,
21218 // and called read() to consume some data. that may have triggered
21219 // in turn another _read(n) call, in which case reading = true if
21220 // it's in progress.
21221 // However, if we're not ended, or reading, and the length < hwm,
21222 // then go ahead and try to read some more preemptively.
21223 function maybeReadMore(stream, state) {
21224 if (!state.readingMore) {
21225 state.readingMore = true;
21226 processNextTick(maybeReadMore_, stream, state);
21230 function maybeReadMore_(stream, state) {
21231 var len = state.length;
21232 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
21233 debug('maybeReadMore read
0');
21235 if (len === state.length)
21236 // didn't get any data, stop spinning.
21237 break;else len = state.length;
21239 state.readingMore = false;
21242 // abstract method. to be overridden in specific implementation classes.
21243 // call cb(er, data) where data is <= n in length.
21244 // for virtual (non-string, non-buffer) streams, "length" is somewhat
21245 // arbitrary, and perhaps not very meaningful.
21246 Readable.prototype._read = function (n) {
21247 this.emit('error', new Error('_read() is not implemented'));
21250 Readable.prototype.pipe = function (dest, pipeOpts) {
21252 var state = this._readableState;
21254 switch (state.pipesCount) {
21256 state.pipes = dest;
21259 state.pipes = [state.pipes, dest];
21262 state.pipes.push(dest);
21265 state.pipesCount +=
1;
21266 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
21268 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
21270 var endFn = doEnd ? onend : cleanup;
21271 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
21273 dest.on('unpipe', onunpipe);
21274 function onunpipe(readable) {
21276 if (readable === src) {
21286 // when the dest drains, it reduces the awaitDrain counter
21287 // on the source. This would be more elegant with a .once()
21288 // handler in flow(), but adding and removing repeatedly is
21290 var ondrain = pipeOnDrain(src);
21291 dest.on('drain', ondrain);
21293 var cleanedUp = false;
21294 function cleanup() {
21296 // cleanup event handlers once the pipe is broken
21297 dest.removeListener('close', onclose);
21298 dest.removeListener('finish', onfinish);
21299 dest.removeListener('drain', ondrain);
21300 dest.removeListener('error', onerror);
21301 dest.removeListener('unpipe', onunpipe);
21302 src.removeListener('end', onend);
21303 src.removeListener('end', cleanup);
21304 src.removeListener('data', ondata);
21308 // if the reader is waiting for a drain event from this
21309 // specific writer, then it would cause it to never start
21311 // So, if this is awaiting a drain, then we just call it now.
21312 // If we don't know, then assume that we are waiting for one.
21313 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
21316 // If the user pushes more data while we're writing to dest then we'll end up
21317 // in ondata again. However, we only want to increase awaitDrain once because
21318 // dest will only emit one 'drain' event for the multiple writes.
21319 // =
> Introduce a guard on increasing awaitDrain.
21320 var increasedAwaitDrain = false;
21321 src.on('data', ondata);
21322 function ondata(chunk) {
21324 increasedAwaitDrain = false;
21325 var ret = dest.write(chunk);
21326 if (false === ret && !increasedAwaitDrain) {
21327 // If the user unpiped during `dest.write()`, it is possible
21328 // to get stuck in a permanently paused state if that write
21329 // also returned false.
21330 // =
> Check whether `dest` is still a piping destination.
21331 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
21332 debug('false write response, pause', src._readableState.awaitDrain);
21333 src._readableState.awaitDrain++;
21334 increasedAwaitDrain = true;
21340 // if the dest has an error, then stop piping into it.
21341 // however, don't suppress the throwing behavior for this.
21342 function onerror(er) {
21343 debug('onerror', er);
21345 dest.removeListener('error', onerror);
21346 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
21349 // Make sure our error handler is attached before userland ones.
21350 prependListener(dest, 'error', onerror);
21352 // Both close and finish should trigger unpipe, but only once.
21353 function onclose() {
21354 dest.removeListener('finish', onfinish);
21357 dest.once('close', onclose);
21358 function onfinish() {
21360 dest.removeListener('close', onclose);
21363 dest.once('finish', onfinish);
21365 function unpipe() {
21370 // tell the dest that it's being piped to
21371 dest.emit('pipe', src);
21373 // start the flow if it hasn't been started already.
21374 if (!state.flowing) {
21375 debug('pipe resume');
21382 function pipeOnDrain(src) {
21383 return function () {
21384 var state = src._readableState;
21385 debug('pipeOnDrain', state.awaitDrain);
21386 if (state.awaitDrain) state.awaitDrain--;
21387 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
21388 state.flowing = true;
21394 Readable.prototype.unpipe = function (dest) {
21395 var state = this._readableState;
21397 // if we're not piping anywhere, then do nothing.
21398 if (state.pipesCount ===
0) return this;
21400 // just one destination. most common case.
21401 if (state.pipesCount ===
1) {
21402 // passed in one, but it's not the right one.
21403 if (dest && dest !== state.pipes) return this;
21405 if (!dest) dest = state.pipes;
21408 state.pipes = null;
21409 state.pipesCount =
0;
21410 state.flowing = false;
21411 if (dest) dest.emit('unpipe', this);
21415 // slow case. multiple pipe destinations.
21419 var dests = state.pipes;
21420 var len = state.pipesCount;
21421 state.pipes = null;
21422 state.pipesCount =
0;
21423 state.flowing = false;
21425 for (var i =
0; i < len; i++) {
21426 dests[i].emit('unpipe', this);
21430 // try to find the right one.
21431 var index = indexOf(state.pipes, dest);
21432 if (index === -
1) return this;
21434 state.pipes.splice(index,
1);
21435 state.pipesCount -=
1;
21436 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
21438 dest.emit('unpipe', this);
21443 // set up data events if they are asked for
21444 // Ensure readable listeners eventually get something
21445 Readable.prototype.on = function (ev, fn) {
21446 var res = Stream.prototype.on.call(this, ev, fn);
21448 if (ev === 'data') {
21449 // Start flowing on next tick if stream isn't explicitly paused
21450 if (this._readableState.flowing !== false) this.resume();
21451 } else if (ev === 'readable') {
21452 var state = this._readableState;
21453 if (!state.endEmitted && !state.readableListening) {
21454 state.readableListening = state.needReadable = true;
21455 state.emittedReadable = false;
21456 if (!state.reading) {
21457 processNextTick(nReadingNextTick, this);
21458 } else if (state.length) {
21459 emitReadable(this, state);
21466 Readable.prototype.addListener = Readable.prototype.on;
21468 function nReadingNextTick(self) {
21469 debug('readable nexttick read
0');
21473 // pause() and resume() are remnants of the legacy readable stream API
21474 // If the user uses them, then switch into old mode.
21475 Readable.prototype.resume = function () {
21476 var state = this._readableState;
21477 if (!state.flowing) {
21479 state.flowing = true;
21480 resume(this, state);
21485 function resume(stream, state) {
21486 if (!state.resumeScheduled) {
21487 state.resumeScheduled = true;
21488 processNextTick(resume_, stream, state);
21492 function resume_(stream, state) {
21493 if (!state.reading) {
21494 debug('resume read
0');
21498 state.resumeScheduled = false;
21499 state.awaitDrain =
0;
21500 stream.emit('resume');
21502 if (state.flowing && !state.reading) stream.read(
0);
21505 Readable.prototype.pause = function () {
21506 debug('call pause flowing=%j', this._readableState.flowing);
21507 if (false !== this._readableState.flowing) {
21509 this._readableState.flowing = false;
21510 this.emit('pause');
21515 function flow(stream) {
21516 var state = stream._readableState;
21517 debug('flow', state.flowing);
21518 while (state.flowing && stream.read() !== null) {}
21521 // wrap an old-style stream as the async data source.
21522 // This is *not* part of the readable stream interface.
21523 // It is an ugly unfortunate mess of history.
21524 Readable.prototype.wrap = function (stream) {
21525 var state = this._readableState;
21526 var paused = false;
21529 stream.on('end', function () {
21530 debug('wrapped end');
21531 if (state.decoder && !state.ended) {
21532 var chunk = state.decoder.end();
21533 if (chunk && chunk.length) self.push(chunk);
21539 stream.on('data', function (chunk) {
21540 debug('wrapped data');
21541 if (state.decoder) chunk = state.decoder.write(chunk);
21543 // don't skip over falsy values in objectMode
21544 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
21546 var ret = self.push(chunk);
21553 // proxy all the other methods.
21554 // important when wrapping filters and duplexes.
21555 for (var i in stream) {
21556 if (this[i] === undefined && typeof stream[i] === 'function') {
21557 this[i] = function (method) {
21558 return function () {
21559 return stream[method].apply(stream, arguments);
21565 // proxy certain important events.
21566 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
21567 forEach(events, function (ev) {
21568 stream.on(ev, self.emit.bind(self, ev));
21571 // when we try to consume some more bytes, simply unpause the
21572 // underlying stream.
21573 self._read = function (n) {
21574 debug('wrapped _read', n);
21584 // exposed for testing purposes only.
21585 Readable._fromList = fromList;
21587 // Pluck off n bytes from an array of buffers.
21588 // Length is the combined lengths of all the buffers in the list.
21589 // This function is designed to be inlinable, so please take care when making
21590 // changes to the function body.
21591 function fromList(n, state) {
21592 // nothing buffered
21593 if (state.length ===
0) return null;
21596 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
21597 // read it all, truncate the list
21598 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length ===
1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
21599 state.buffer.clear();
21601 // read part of list
21602 ret = fromListPartial(n, state.buffer, state.decoder);
21608 // Extracts only enough buffered data to satisfy the amount requested.
21609 // This function is designed to be inlinable, so please take care when making
21610 // changes to the function body.
21611 function fromListPartial(n, list, hasStrings) {
21613 if (n < list.head.data.length) {
21614 // slice is the same for buffers and strings
21615 ret = list.head.data.slice(
0, n);
21616 list.head.data = list.head.data.slice(n);
21617 } else if (n === list.head.data.length) {
21618 // first chunk is a perfect match
21619 ret = list.shift();
21621 // result spans more than one buffer
21622 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
21627 // Copies a specified amount of characters from the list of buffered data
21629 // This function is designed to be inlinable, so please take care when making
21630 // changes to the function body.
21631 function copyFromBufferString(n, list) {
21636 while (p = p.next) {
21638 var nb = n
> str.length ? str.length : n;
21639 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
21642 if (nb === str.length) {
21644 if (p.next) list.head = p.next;else list.head = list.tail = null;
21647 p.data = str.slice(nb);
21657 // Copies a specified amount of bytes from the list of buffered data chunks.
21658 // This function is designed to be inlinable, so please take care when making
21659 // changes to the function body.
21660 function copyFromBuffer(n, list) {
21661 var ret = bufferShim.allocUnsafe(n);
21665 n -= p.data.length;
21666 while (p = p.next) {
21668 var nb = n
> buf.length ? buf.length : n;
21669 buf.copy(ret, ret.length - n,
0, nb);
21672 if (nb === buf.length) {
21674 if (p.next) list.head = p.next;else list.head = list.tail = null;
21677 p.data = buf.slice(nb);
21687 function endReadable(stream) {
21688 var state = stream._readableState;
21690 // If we get here before consuming all the bytes, then that is a
21691 // bug in node. Should never happen.
21692 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
21694 if (!state.endEmitted) {
21695 state.ended = true;
21696 processNextTick(endReadableNT, state, stream);
21700 function endReadableNT(state, stream) {
21701 // Check that we didn't get one last unshift.
21702 if (!state.endEmitted && state.length ===
0) {
21703 state.endEmitted = true;
21704 stream.readable = false;
21705 stream.emit('end');
21709 function forEach(xs, f) {
21710 for (var i =
0, l = xs.length; i < l; i++) {
21715 function indexOf(xs, x) {
21716 for (var i =
0, l = xs.length; i < l; i++) {
21717 if (xs[i] === x) return i;
21721 }).call(this,require('_process'))
21722 },{
"./_stream_duplex":
15,
"./internal/streams/BufferList":
20,
"_process":
13,
"buffer":
5,
"buffer-shims":
4,
"core-util-is":
6,
"events":
7,
"inherits":
9,
"isarray":
11,
"process-nextick-args":
12,
"string_decoder/":
26,
"util":
3}],
18:[function(require,module,exports){
21723 // a transform stream is a readable/writable stream where you do
21724 // something with the data. Sometimes it's called a
"filter",
21725 // but that's not a great name for it, since that implies a thing where
21726 // some bits pass through, and others are simply ignored. (That would
21727 // be a valid example of a transform, of course.)
21729 // While the output is causally related to the input, it's not a
21730 // necessarily symmetric or synchronous transformation. For example,
21731 // a zlib stream might take multiple plain-text writes(), and then
21732 // emit a single compressed chunk some time in the future.
21734 // Here's how this works:
21736 // The Transform stream has all the aspects of the readable and writable
21737 // stream classes. When you write(chunk), that calls _write(chunk,cb)
21738 // internally, and returns false if there's a lot of pending writes
21739 // buffered up. When you call read(), that calls _read(n) until
21740 // there's enough pending readable data buffered up.
21742 // In a transform stream, the written data is placed in a buffer. When
21743 // _read(n) is called, it transforms the queued up data, calling the
21744 // buffered _write cb's as it consumes chunks. If consuming a single
21745 // written chunk would result in multiple output chunks, then the first
21746 // outputted bit calls the readcb, and subsequent chunks just go into
21747 // the read buffer, and will cause it to emit 'readable' if necessary.
21749 // This way, back-pressure is actually determined by the reading side,
21750 // since _read has to be called to start processing a new chunk. However,
21751 // a pathological inflate type of transform can cause excessive buffering
21752 // here. For example, imagine a stream where every byte of input is
21753 // interpreted as an integer from
0-
255, and then results in that many
21754 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
21755 //
1kb of data being output. In this case, you could write a very small
21756 // amount of input, and end up with a very large amount of output. In
21757 // such a pathological inflating mechanism, there'd be no way to tell
21758 // the system to stop doing the transform. A single
4MB write could
21759 // cause the system to run out of memory.
21761 // However, even in such a pathological case, only a single written chunk
21762 // would be consumed, and then the rest would wait (un-transformed) until
21763 // the results of the previous transformed chunk were consumed.
21767 module.exports = Transform;
21769 var Duplex = require('./_stream_duplex');
21772 var util = require('core-util-is');
21773 util.inherits = require('inherits');
21776 util.inherits(Transform, Duplex);
21778 function TransformState(stream) {
21779 this.afterTransform = function (er, data) {
21780 return afterTransform(stream, er, data);
21783 this.needTransform = false;
21784 this.transforming = false;
21785 this.writecb = null;
21786 this.writechunk = null;
21787 this.writeencoding = null;
21790 function afterTransform(stream, er, data) {
21791 var ts = stream._transformState;
21792 ts.transforming = false;
21794 var cb = ts.writecb;
21796 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
21798 ts.writechunk = null;
21801 if (data !== null && data !== undefined) stream.push(data);
21805 var rs = stream._readableState;
21806 rs.reading = false;
21807 if (rs.needReadable || rs.length < rs.highWaterMark) {
21808 stream._read(rs.highWaterMark);
21812 function Transform(options) {
21813 if (!(this instanceof Transform)) return new Transform(options);
21815 Duplex.call(this, options);
21817 this._transformState = new TransformState(this);
21821 // start out asking for a readable event once data is transformed.
21822 this._readableState.needReadable = true;
21824 // we have implemented the _read method, and done the other things
21825 // that Readable wants before the first _read call, so unset the
21826 // sync guard flag.
21827 this._readableState.sync = false;
21830 if (typeof options.transform === 'function') this._transform = options.transform;
21832 if (typeof options.flush === 'function') this._flush = options.flush;
21835 // When the writable side finishes, then flush out anything remaining.
21836 this.once('prefinish', function () {
21837 if (typeof this._flush === 'function') this._flush(function (er, data) {
21838 done(stream, er, data);
21839 });else done(stream);
21843 Transform.prototype.push = function (chunk, encoding) {
21844 this._transformState.needTransform = false;
21845 return Duplex.prototype.push.call(this, chunk, encoding);
21848 // This is the part where you do stuff!
21849 // override this function in implementation classes.
21850 // 'chunk' is an input chunk.
21852 // Call `push(newChunk)` to pass along transformed output
21853 // to the readable side. You may call 'push' zero or more times.
21855 // Call `cb(err)` when you are done with this chunk. If you pass
21856 // an error, then that'll put the hurt on the whole operation. If you
21857 // never call cb(), then you'll never get another chunk.
21858 Transform.prototype._transform = function (chunk, encoding, cb) {
21859 throw new Error('_transform() is not implemented');
21862 Transform.prototype._write = function (chunk, encoding, cb) {
21863 var ts = this._transformState;
21865 ts.writechunk = chunk;
21866 ts.writeencoding = encoding;
21867 if (!ts.transforming) {
21868 var rs = this._readableState;
21869 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
21873 // Doesn't matter what the args are here.
21874 // _transform does all the work.
21875 // That we got here means that the readable side wants more data.
21876 Transform.prototype._read = function (n) {
21877 var ts = this._transformState;
21879 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
21880 ts.transforming = true;
21881 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
21883 // mark that we need a transform, so that any data that comes in
21884 // will get processed, now that we've asked for it.
21885 ts.needTransform = true;
21889 function done(stream, er, data) {
21890 if (er) return stream.emit('error', er);
21892 if (data !== null && data !== undefined) stream.push(data);
21894 // if there's nothing in the write buffer, then that means
21895 // that nothing more will ever be provided
21896 var ws = stream._writableState;
21897 var ts = stream._transformState;
21899 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
21901 if (ts.transforming) throw new Error('Calling transform done when still transforming');
21903 return stream.push(null);
21905 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
21906 (function (process){
21907 // A bit simpler than readable streams.
21908 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
21909 // the drain event emission and buffering.
21913 module.exports = Writable;
21916 var processNextTick = require('process-nextick-args');
21920 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
21927 Writable.WritableState = WritableState;
21930 var util = require('core-util-is');
21931 util.inherits = require('inherits');
21935 var internalUtil = {
21936 deprecate: require('util-deprecate')
21944 Stream = require('st' + 'ream');
21945 } catch (_) {} finally {
21946 if (!Stream) Stream = require('events').EventEmitter;
21951 var Buffer = require('buffer').Buffer;
21953 var bufferShim = require('buffer-shims');
21956 util.inherits(Writable, Stream);
21960 function WriteReq(chunk, encoding, cb) {
21961 this.chunk = chunk;
21962 this.encoding = encoding;
21963 this.callback = cb;
21967 function WritableState(options, stream) {
21968 Duplex = Duplex || require('./_stream_duplex');
21970 options = options || {};
21972 // object stream flag to indicate whether or not this stream
21973 // contains buffers or objects.
21974 this.objectMode = !!options.objectMode;
21976 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
21978 // the point at which write() starts returning false
21979 // Note:
0 is a valid value, means that we always return false if
21980 // the entire buffer is not flushed immediately on write()
21981 var hwm = options.highWaterMark;
21982 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
21983 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
21986 this.highWaterMark = ~ ~this.highWaterMark;
21988 // drain event flag.
21989 this.needDrain = false;
21990 // at the start of calling end()
21991 this.ending = false;
21992 // when end() has been called, and returned
21993 this.ended = false;
21994 // when 'finish' is emitted
21995 this.finished = false;
21997 // should we decode strings into buffers before passing to _write?
21998 // this is here so that some node-core streams can optimize string
21999 // handling at a lower level.
22000 var noDecode = options.decodeStrings === false;
22001 this.decodeStrings = !noDecode;
22003 // Crypto is kind of old and crusty. Historically, its default string
22004 // encoding is 'binary' so we have to make this configurable.
22005 // Everything else in the universe uses 'utf8', though.
22006 this.defaultEncoding = options.defaultEncoding || 'utf8';
22008 // not an actual buffer we keep track of, but a measurement
22009 // of how much we're waiting to get pushed to some underlying
22013 // a flag to see when we're in the middle of a write.
22014 this.writing = false;
22016 // when true all writes will be buffered until .uncork() call
22019 // a flag to be able to tell if the onwrite cb is called immediately,
22020 // or on a later tick. We set this to true at first, because any
22021 // actions that shouldn't happen until "later" should generally also
22022 // not happen before the first write call.
22025 // a flag to know if we're processing previously buffered items, which
22026 // may call the _write() callback in the same tick, so that we don't
22027 // end up in an overlapped onwrite situation.
22028 this.bufferProcessing = false;
22030 // the callback that's passed to _write(chunk,cb)
22031 this.onwrite = function (er) {
22032 onwrite(stream, er);
22035 // the callback that the user supplies to write(chunk,encoding,cb)
22036 this.writecb = null;
22038 // the amount that is being written when _write is called.
22041 this.bufferedRequest = null;
22042 this.lastBufferedRequest = null;
22044 // number of pending user-supplied write callbacks
22045 // this must be
0 before 'finish' can be emitted
22046 this.pendingcb =
0;
22048 // emit prefinish if the only thing we're waiting for is _write cbs
22049 // This is relevant for synchronous Transform streams
22050 this.prefinished = false;
22052 // True if the error was already emitted and should not be thrown again
22053 this.errorEmitted = false;
22055 // count buffered requests
22056 this.bufferedRequestCount =
0;
22058 // allocate the first CorkedRequest, there is always
22059 // one allocated and free to use, and we maintain at most two
22060 this.corkedRequestsFree = new CorkedRequest(this);
22063 WritableState.prototype.getBuffer = function getBuffer() {
22064 var current = this.bufferedRequest;
22068 current = current.next;
22075 Object.defineProperty(WritableState.prototype, 'buffer', {
22076 get: internalUtil.deprecate(function () {
22077 return this.getBuffer();
22078 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
22083 // Test _writableState for inheritance to account for Duplex streams,
22084 // whose prototype chain only points to Readable.
22085 var realHasInstance;
22086 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
22087 realHasInstance = Function.prototype[Symbol.hasInstance];
22088 Object.defineProperty(Writable, Symbol.hasInstance, {
22089 value: function (object) {
22090 if (realHasInstance.call(this, object)) return true;
22092 return object && object._writableState instanceof WritableState;
22096 realHasInstance = function (object) {
22097 return object instanceof this;
22101 function Writable(options) {
22102 Duplex = Duplex || require('./_stream_duplex');
22104 // Writable ctor is applied to Duplexes, too.
22105 // `realHasInstance` is necessary because using plain `instanceof`
22106 // would return false, as no `_writableState` property is attached.
22108 // Trying to use the custom `instanceof` for Writable here will also break the
22109 // Node.js LazyTransform implementation, which has a non-trivial getter for
22110 // `_writableState` that would lead to infinite recursion.
22111 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
22112 return new Writable(options);
22115 this._writableState = new WritableState(options, this);
22118 this.writable = true;
22121 if (typeof options.write === 'function') this._write = options.write;
22123 if (typeof options.writev === 'function') this._writev = options.writev;
22129 // Otherwise people can pipe Writable streams, which is just wrong.
22130 Writable.prototype.pipe = function () {
22131 this.emit('error', new Error('Cannot pipe, not readable'));
22134 function writeAfterEnd(stream, cb) {
22135 var er = new Error('write after end');
22136 // TODO: defer error events consistently everywhere, not just the cb
22137 stream.emit('error', er);
22138 processNextTick(cb, er);
22141 // If we get something that is not a buffer, string, null, or undefined,
22142 // and we're not in objectMode, then that's an error.
22143 // Otherwise stream chunks are all considered to be of length=
1, and the
22144 // watermarks determine how many objects to keep in the buffer, rather than
22145 // how many bytes or characters.
22146 function validChunk(stream, state, chunk, cb) {
22149 // Always throw error if a null is written
22150 // if we are not in object mode then throw
22151 // if it is not a buffer, string, or undefined.
22152 if (chunk === null) {
22153 er = new TypeError('May not write null values to stream');
22154 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
22155 er = new TypeError('Invalid non-string/buffer chunk');
22158 stream.emit('error', er);
22159 processNextTick(cb, er);
22165 Writable.prototype.write = function (chunk, encoding, cb) {
22166 var state = this._writableState;
22169 if (typeof encoding === 'function') {
22174 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
22176 if (typeof cb !== 'function') cb = nop;
22178 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
22180 ret = writeOrBuffer(this, state, chunk, encoding, cb);
22186 Writable.prototype.cork = function () {
22187 var state = this._writableState;
22192 Writable.prototype.uncork = function () {
22193 var state = this._writableState;
22195 if (state.corked) {
22198 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
22202 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
22203 // node::ParseEncoding() requires lower case.
22204 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
22205 if (!(['hex', 'utf8', 'utf-
8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-
2', 'utf16le', 'utf-
16le', 'raw'].indexOf((encoding + '').toLowerCase())
> -
1)) throw new TypeError('Unknown encoding: ' + encoding);
22206 this._writableState.defaultEncoding = encoding;
22210 function decodeChunk(state, chunk, encoding) {
22211 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
22212 chunk = bufferShim.from(chunk, encoding);
22217 // if we're already writing something, then just put this
22218 // in the queue, and wait our turn. Otherwise, call _write
22219 // If we return false, then we need a drain event, so set that flag.
22220 function writeOrBuffer(stream, state, chunk, encoding, cb) {
22221 chunk = decodeChunk(state, chunk, encoding);
22223 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
22224 var len = state.objectMode ?
1 : chunk.length;
22226 state.length += len;
22228 var ret = state.length < state.highWaterMark;
22229 // we must ensure that previous needDrain will not be reset to false.
22230 if (!ret) state.needDrain = true;
22232 if (state.writing || state.corked) {
22233 var last = state.lastBufferedRequest;
22234 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
22236 last.next = state.lastBufferedRequest;
22238 state.bufferedRequest = state.lastBufferedRequest;
22240 state.bufferedRequestCount +=
1;
22242 doWrite(stream, state, false, len, chunk, encoding, cb);
22248 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
22249 state.writelen = len;
22250 state.writecb = cb;
22251 state.writing = true;
22253 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
22254 state.sync = false;
22257 function onwriteError(stream, state, sync, er, cb) {
22259 if (sync) processNextTick(cb, er);else cb(er);
22261 stream._writableState.errorEmitted = true;
22262 stream.emit('error', er);
22265 function onwriteStateUpdate(state) {
22266 state.writing = false;
22267 state.writecb = null;
22268 state.length -= state.writelen;
22269 state.writelen =
0;
22272 function onwrite(stream, er) {
22273 var state = stream._writableState;
22274 var sync = state.sync;
22275 var cb = state.writecb;
22277 onwriteStateUpdate(state);
22279 if (er) onwriteError(stream, state, sync, er, cb);else {
22280 // Check if we're actually ready to finish, but don't emit yet
22281 var finished = needFinish(state);
22283 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
22284 clearBuffer(stream, state);
22289 asyncWrite(afterWrite, stream, state, finished, cb);
22292 afterWrite(stream, state, finished, cb);
22297 function afterWrite(stream, state, finished, cb) {
22298 if (!finished) onwriteDrain(stream, state);
22301 finishMaybe(stream, state);
22304 // Must force callback to be called on nextTick, so that we don't
22305 // emit 'drain' before the write() consumer gets the 'false' return
22306 // value, and has a chance to attach a 'drain' listener.
22307 function onwriteDrain(stream, state) {
22308 if (state.length ===
0 && state.needDrain) {
22309 state.needDrain = false;
22310 stream.emit('drain');
22314 // if there's something in the buffer waiting, then process it
22315 function clearBuffer(stream, state) {
22316 state.bufferProcessing = true;
22317 var entry = state.bufferedRequest;
22319 if (stream._writev && entry && entry.next) {
22320 // Fast case, write everything using _writev()
22321 var l = state.bufferedRequestCount;
22322 var buffer = new Array(l);
22323 var holder = state.corkedRequestsFree;
22324 holder.entry = entry;
22328 buffer[count] = entry;
22329 entry = entry.next;
22333 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
22335 // doWrite is almost always async, defer these to save a bit of time
22336 // as the hot path ends with doWrite
22338 state.lastBufferedRequest = null;
22340 state.corkedRequestsFree = holder.next;
22341 holder.next = null;
22343 state.corkedRequestsFree = new CorkedRequest(state);
22346 // Slow case, write chunks one-by-one
22348 var chunk = entry.chunk;
22349 var encoding = entry.encoding;
22350 var cb = entry.callback;
22351 var len = state.objectMode ?
1 : chunk.length;
22353 doWrite(stream, state, false, len, chunk, encoding, cb);
22354 entry = entry.next;
22355 // if we didn't call the onwrite immediately, then
22356 // it means that we need to wait until it does.
22357 // also, that means that the chunk and cb are currently
22358 // being processed, so move the buffer counter past them.
22359 if (state.writing) {
22364 if (entry === null) state.lastBufferedRequest = null;
22367 state.bufferedRequestCount =
0;
22368 state.bufferedRequest = entry;
22369 state.bufferProcessing = false;
22372 Writable.prototype._write = function (chunk, encoding, cb) {
22373 cb(new Error('_write() is not implemented'));
22376 Writable.prototype._writev = null;
22378 Writable.prototype.end = function (chunk, encoding, cb) {
22379 var state = this._writableState;
22381 if (typeof chunk === 'function') {
22385 } else if (typeof encoding === 'function') {
22390 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
22392 // .end() fully uncorks
22393 if (state.corked) {
22398 // ignore unnecessary end() calls.
22399 if (!state.ending && !state.finished) endWritable(this, state, cb);
22402 function needFinish(state) {
22403 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
22406 function prefinish(stream, state) {
22407 if (!state.prefinished) {
22408 state.prefinished = true;
22409 stream.emit('prefinish');
22413 function finishMaybe(stream, state) {
22414 var need = needFinish(state);
22416 if (state.pendingcb ===
0) {
22417 prefinish(stream, state);
22418 state.finished = true;
22419 stream.emit('finish');
22421 prefinish(stream, state);
22427 function endWritable(stream, state, cb) {
22428 state.ending = true;
22429 finishMaybe(stream, state);
22431 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
22433 state.ended = true;
22434 stream.writable = false;
22437 // It seems a linked list but it is not
22438 // there will be only
2 of these for each stream
22439 function CorkedRequest(state) {
22445 this.finish = function (err) {
22446 var entry = _this.entry;
22447 _this.entry = null;
22449 var cb = entry.callback;
22452 entry = entry.next;
22454 if (state.corkedRequestsFree) {
22455 state.corkedRequestsFree.next = _this;
22457 state.corkedRequestsFree = _this;
22461 }).call(this,require('_process'))
22462 },{"./_stream_duplex":
15,"_process":
13,"buffer":
5,"buffer-shims":
4,"core-util-is":
6,"events":
7,"inherits":
9,"process-nextick-args":
12,"util-deprecate":
27}],
20:[function(require,module,exports){
22465 var Buffer = require('buffer').Buffer;
22467 var bufferShim = require('buffer-shims');
22470 module.exports = BufferList;
22472 function BufferList() {
22478 BufferList.prototype.push = function (v) {
22479 var entry = { data: v, next: null };
22480 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
22485 BufferList.prototype.unshift = function (v) {
22486 var entry = { data: v, next: this.head };
22487 if (this.length ===
0) this.tail = entry;
22492 BufferList.prototype.shift = function () {
22493 if (this.length ===
0) return;
22494 var ret = this.head.data;
22495 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
22500 BufferList.prototype.clear = function () {
22501 this.head = this.tail = null;
22505 BufferList.prototype.join = function (s) {
22506 if (this.length ===
0) return '';
22508 var ret = '' + p.data;
22509 while (p = p.next) {
22514 BufferList.prototype.concat = function (n) {
22515 if (this.length ===
0) return bufferShim.alloc(
0);
22516 if (this.length ===
1) return this.head.data;
22517 var ret = bufferShim.allocUnsafe(n
>>> 0);
22521 p.data.copy(ret, i);
22522 i += p.data.length;
22527 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
22528 module.exports = require(
"./lib/_stream_passthrough.js")
22530 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
22531 (function (process){
22532 var Stream = (function (){
22534 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
22537 exports = module.exports = require('./lib/_stream_readable.js');
22538 exports.Stream = Stream || exports;
22539 exports.Readable = exports;
22540 exports.Writable = require('./lib/_stream_writable.js');
22541 exports.Duplex = require('./lib/_stream_duplex.js');
22542 exports.Transform = require('./lib/_stream_transform.js');
22543 exports.PassThrough = require('./lib/_stream_passthrough.js');
22545 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
22546 module.exports = Stream;
22549 }).call(this,require('_process'))
22550 },{
"./lib/_stream_duplex.js":
15,
"./lib/_stream_passthrough.js":
16,
"./lib/_stream_readable.js":
17,
"./lib/_stream_transform.js":
18,
"./lib/_stream_writable.js":
19,
"_process":
13}],
23:[function(require,module,exports){
22551 module.exports = require(
"./lib/_stream_transform.js")
22553 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
22554 module.exports = require(
"./lib/_stream_writable.js")
22556 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
22557 // Copyright Joyent, Inc. and other Node contributors.
22559 // Permission is hereby granted, free of charge, to any person obtaining a
22560 // copy of this software and associated documentation files (the
22561 //
"Software"), to deal in the Software without restriction, including
22562 // without limitation the rights to use, copy, modify, merge, publish,
22563 // distribute, sublicense, and/or sell copies of the Software, and to permit
22564 // persons to whom the Software is furnished to do so, subject to the
22565 // following conditions:
22567 // The above copyright notice and this permission notice shall be included
22568 // in all copies or substantial portions of the Software.
22570 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22571 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22572 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22573 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22574 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22575 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22576 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22578 module.exports = Stream;
22580 var EE = require('events').EventEmitter;
22581 var inherits = require('inherits');
22583 inherits(Stream, EE);
22584 Stream.Readable = require('readable-stream/readable.js');
22585 Stream.Writable = require('readable-stream/writable.js');
22586 Stream.Duplex = require('readable-stream/duplex.js');
22587 Stream.Transform = require('readable-stream/transform.js');
22588 Stream.PassThrough = require('readable-stream/passthrough.js');
22590 // Backwards-compat with node
0.4.x
22591 Stream.Stream = Stream;
22595 // old-style streams. Note that the pipe method (the only relevant
22596 // part of this class) is overridden in the Readable class.
22598 function Stream() {
22602 Stream.prototype.pipe = function(dest, options) {
22605 function ondata(chunk) {
22606 if (dest.writable) {
22607 if (false === dest.write(chunk) && source.pause) {
22613 source.on('data', ondata);
22615 function ondrain() {
22616 if (source.readable && source.resume) {
22621 dest.on('drain', ondrain);
22623 // If the 'end' option is not supplied, dest.end() will be called when
22624 // source gets the 'end' or 'close' events. Only dest.end() once.
22625 if (!dest._isStdio && (!options || options.end !== false)) {
22626 source.on('end', onend);
22627 source.on('close', onclose);
22630 var didOnEnd = false;
22632 if (didOnEnd) return;
22639 function onclose() {
22640 if (didOnEnd) return;
22643 if (typeof dest.destroy === 'function') dest.destroy();
22646 // don't leave dangling pipes when there are errors.
22647 function onerror(er) {
22649 if (EE.listenerCount(this, 'error') ===
0) {
22650 throw er; // Unhandled stream error in pipe.
22654 source.on('error', onerror);
22655 dest.on('error', onerror);
22657 // remove all the event listeners that were added.
22658 function cleanup() {
22659 source.removeListener('data', ondata);
22660 dest.removeListener('drain', ondrain);
22662 source.removeListener('end', onend);
22663 source.removeListener('close', onclose);
22665 source.removeListener('error', onerror);
22666 dest.removeListener('error', onerror);
22668 source.removeListener('end', cleanup);
22669 source.removeListener('close', cleanup);
22671 dest.removeListener('close', cleanup);
22674 source.on('end', cleanup);
22675 source.on('close', cleanup);
22677 dest.on('close', cleanup);
22679 dest.emit('pipe', source);
22681 // Allow for unix-like usage: A.pipe(B).pipe(C)
22685 },{
"events":
7,
"inherits":
9,
"readable-stream/duplex.js":
14,
"readable-stream/passthrough.js":
21,
"readable-stream/readable.js":
22,
"readable-stream/transform.js":
23,
"readable-stream/writable.js":
24}],
26:[function(require,module,exports){
22686 // Copyright Joyent, Inc. and other Node contributors.
22688 // Permission is hereby granted, free of charge, to any person obtaining a
22689 // copy of this software and associated documentation files (the
22690 //
"Software"), to deal in the Software without restriction, including
22691 // without limitation the rights to use, copy, modify, merge, publish,
22692 // distribute, sublicense, and/or sell copies of the Software, and to permit
22693 // persons to whom the Software is furnished to do so, subject to the
22694 // following conditions:
22696 // The above copyright notice and this permission notice shall be included
22697 // in all copies or substantial portions of the Software.
22699 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22700 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22701 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22702 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22703 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22704 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22705 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22707 var Buffer = require('buffer').Buffer;
22709 var isBufferEncoding = Buffer.isEncoding
22710 || function(encoding) {
22711 switch (encoding && encoding.toLowerCase()) {
22712 case 'hex': case 'utf8': case 'utf-
8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-
2': case 'utf16le': case 'utf-
16le': case 'raw': return true;
22713 default: return false;
22718 function assertEncoding(encoding) {
22719 if (encoding && !isBufferEncoding(encoding)) {
22720 throw new Error('Unknown encoding: ' + encoding);
22724 // StringDecoder provides an interface for efficiently splitting a series of
22725 // buffers into a series of JS strings without breaking apart multi-byte
22726 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
22728 // @TODO Handling all encodings inside a single object makes it very difficult
22729 // to reason about this code, so it should be split up in the future.
22730 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
22731 // points as used by CESU-
8.
22732 var StringDecoder = exports.StringDecoder = function(encoding) {
22733 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
22734 assertEncoding(encoding);
22735 switch (this.encoding) {
22737 // CESU-
8 represents each of Surrogate Pair by
3-bytes
22738 this.surrogateSize =
3;
22742 // UTF-
16 represents each of Surrogate Pair by
2-bytes
22743 this.surrogateSize =
2;
22744 this.detectIncompleteChar = utf16DetectIncompleteChar;
22747 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
22748 this.surrogateSize =
3;
22749 this.detectIncompleteChar = base64DetectIncompleteChar;
22752 this.write = passThroughWrite;
22756 // Enough space to store all bytes of a single character. UTF-
8 needs
4
22757 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
22758 this.charBuffer = new Buffer(
6);
22759 // Number of bytes received for the current incomplete multi-byte character.
22760 this.charReceived =
0;
22761 // Number of bytes expected for the current incomplete multi-byte character.
22762 this.charLength =
0;
22766 // write decodes the given buffer and returns it as JS string that is
22767 // guaranteed to not contain any partial multi-byte characters. Any partial
22768 // character found at the end of the buffer is buffered up, and will be
22769 // returned when calling write again with the remaining bytes.
22771 // Note: Converting a Buffer containing an orphan surrogate to a String
22772 // currently works, but converting a String to a Buffer (via `new Buffer`, or
22773 // Buffer#write) will replace incomplete surrogates with the unicode
22774 // replacement character. See https://codereview.chromium.org/
121173009/ .
22775 StringDecoder.prototype.write = function(buffer) {
22777 // if our last write ended with an incomplete multibyte character
22778 while (this.charLength) {
22779 // determine how many remaining bytes this buffer has to offer for this char
22780 var available = (buffer.length
>= this.charLength - this.charReceived) ?
22781 this.charLength - this.charReceived :
22784 // add the new bytes to the char buffer
22785 buffer.copy(this.charBuffer, this.charReceived,
0, available);
22786 this.charReceived += available;
22788 if (this.charReceived < this.charLength) {
22789 // still not enough chars in this buffer? wait for more ...
22793 // remove bytes belonging to the current character from the buffer
22794 buffer = buffer.slice(available, buffer.length);
22796 // get the character that was split
22797 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
22799 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
22800 var charCode = charStr.charCodeAt(charStr.length -
1);
22801 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
22802 this.charLength += this.surrogateSize;
22806 this.charReceived = this.charLength =
0;
22808 // if there are no more bytes in this buffer, just emit our char
22809 if (buffer.length ===
0) {
22815 // determine and set charLength / charReceived
22816 this.detectIncompleteChar(buffer);
22818 var end = buffer.length;
22819 if (this.charLength) {
22820 // buffer the incomplete character bytes we got
22821 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
22822 end -= this.charReceived;
22825 charStr += buffer.toString(this.encoding,
0, end);
22827 var end = charStr.length -
1;
22828 var charCode = charStr.charCodeAt(end);
22829 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
22830 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
22831 var size = this.surrogateSize;
22832 this.charLength += size;
22833 this.charReceived += size;
22834 this.charBuffer.copy(this.charBuffer, size,
0, size);
22835 buffer.copy(this.charBuffer,
0,
0, size);
22836 return charStr.substring(
0, end);
22839 // or just emit the charStr
22843 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
22844 // the end of the given buffer. If so, it sets this.charLength to the byte
22845 // length that character, and sets this.charReceived to the number of bytes
22846 // that are available for this character.
22847 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
22848 // determine how many bytes we have to check at the end of this buffer
22849 var i = (buffer.length
>=
3) ?
3 : buffer.length;
22851 // Figure out if one of the last i bytes of our buffer announces an
22852 // incomplete char.
22853 for (; i
> 0; i--) {
22854 var c = buffer[buffer.length - i];
22856 // See http://en.wikipedia.org/wiki/UTF-
8#Description
22859 if (i ==
1 && c
>> 5 ==
0x06) {
22860 this.charLength =
2;
22865 if (i <=
2 && c
>> 4 ==
0x0E) {
22866 this.charLength =
3;
22871 if (i <=
3 && c
>> 3 ==
0x1E) {
22872 this.charLength =
4;
22876 this.charReceived = i;
22879 StringDecoder.prototype.end = function(buffer) {
22881 if (buffer && buffer.length)
22882 res = this.write(buffer);
22884 if (this.charReceived) {
22885 var cr = this.charReceived;
22886 var buf = this.charBuffer;
22887 var enc = this.encoding;
22888 res += buf.slice(
0, cr).toString(enc);
22894 function passThroughWrite(buffer) {
22895 return buffer.toString(this.encoding);
22898 function utf16DetectIncompleteChar(buffer) {
22899 this.charReceived = buffer.length %
2;
22900 this.charLength = this.charReceived ?
2 :
0;
22903 function base64DetectIncompleteChar(buffer) {
22904 this.charReceived = buffer.length %
3;
22905 this.charLength = this.charReceived ?
3 :
0;
22908 },{
"buffer":
5}],
27:[function(require,module,exports){
22909 (function (global){
22915 module.exports = deprecate;
22918 * Mark that a method should not be used.
22919 * Returns a modified function which warns once by default.
22921 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
22923 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
22924 * will throw an Error when invoked.
22926 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
22927 * will invoke `console.trace()` instead of `console.error()`.
22929 * @param {Function} fn - the function to deprecate
22930 * @param {String} msg - the string to print to the console when `fn` is invoked
22931 * @returns {Function} a new
"deprecated" version of `fn`
22935 function deprecate (fn, msg) {
22936 if (config('noDeprecation')) {
22940 var warned = false;
22941 function deprecated() {
22943 if (config('throwDeprecation')) {
22944 throw new Error(msg);
22945 } else if (config('traceDeprecation')) {
22946 console.trace(msg);
22952 return fn.apply(this, arguments);
22959 * Checks `localStorage` for boolean values for the given `name`.
22961 * @param {String} name
22962 * @returns {Boolean}
22966 function config (name) {
22967 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
22969 if (!global.localStorage) return false;
22973 var val = global.localStorage[name];
22974 if (null == val) return false;
22975 return String(val).toLowerCase() === 'true';
22978 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
22979 },{}],
28:[function(require,module,exports){
22980 arguments[
4][
9][
0].apply(exports,arguments)
22981 },{
"dup":
9}],
29:[function(require,module,exports){
22982 module.exports = function isBuffer(arg) {
22983 return arg && typeof arg === 'object'
22984 && typeof arg.copy === 'function'
22985 && typeof arg.fill === 'function'
22986 && typeof arg.readUInt8 === 'function';
22988 },{}],
30:[function(require,module,exports){
22989 (function (process,global){
22990 // Copyright Joyent, Inc. and other Node contributors.
22992 // Permission is hereby granted, free of charge, to any person obtaining a
22993 // copy of this software and associated documentation files (the
22994 //
"Software"), to deal in the Software without restriction, including
22995 // without limitation the rights to use, copy, modify, merge, publish,
22996 // distribute, sublicense, and/or sell copies of the Software, and to permit
22997 // persons to whom the Software is furnished to do so, subject to the
22998 // following conditions:
23000 // The above copyright notice and this permission notice shall be included
23001 // in all copies or substantial portions of the Software.
23003 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23004 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23005 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
23006 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
23007 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
23008 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
23009 // USE OR OTHER DEALINGS IN THE SOFTWARE.
23011 var formatRegExp = /%[sdj%]/g;
23012 exports.format = function(f) {
23013 if (!isString(f)) {
23015 for (var i =
0; i < arguments.length; i++) {
23016 objects.push(inspect(arguments[i]));
23018 return objects.join(' ');
23022 var args = arguments;
23023 var len = args.length;
23024 var str = String(f).replace(formatRegExp, function(x) {
23025 if (x === '%%') return '%';
23026 if (i
>= len) return x;
23028 case '%s': return String(args[i++]);
23029 case '%d': return Number(args[i++]);
23032 return JSON.stringify(args[i++]);
23034 return '[Circular]';
23040 for (var x = args[i]; i < len; x = args[++i]) {
23041 if (isNull(x) || !isObject(x)) {
23044 str += ' ' + inspect(x);
23051 // Mark that a method should not be used.
23052 // Returns a modified function which warns once by default.
23053 // If --no-deprecation is set, then it is a no-op.
23054 exports.deprecate = function(fn, msg) {
23055 // Allow for deprecating things in the process of starting up.
23056 if (isUndefined(global.process)) {
23057 return function() {
23058 return exports.deprecate(fn, msg).apply(this, arguments);
23062 if (process.noDeprecation === true) {
23066 var warned = false;
23067 function deprecated() {
23069 if (process.throwDeprecation) {
23070 throw new Error(msg);
23071 } else if (process.traceDeprecation) {
23072 console.trace(msg);
23074 console.error(msg);
23078 return fn.apply(this, arguments);
23087 exports.debuglog = function(set) {
23088 if (isUndefined(debugEnviron))
23089 debugEnviron = process.env.NODE_DEBUG || '';
23090 set = set.toUpperCase();
23091 if (!debugs[set]) {
23092 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
23093 var pid = process.pid;
23094 debugs[set] = function() {
23095 var msg = exports.format.apply(exports, arguments);
23096 console.error('%s %d: %s', set, pid, msg);
23099 debugs[set] = function() {};
23102 return debugs[set];
23107 * Echos the value of a value. Trys to print the value out
23108 * in the best way possible given the different types.
23110 * @param {Object} obj The object to print out.
23111 * @param {Object} opts Optional options object that alters the output.
23113 /* legacy: obj, showHidden, depth, colors*/
23114 function inspect(obj, opts) {
23118 stylize: stylizeNoColor
23121 if (arguments.length
>=
3) ctx.depth = arguments[
2];
23122 if (arguments.length
>=
4) ctx.colors = arguments[
3];
23123 if (isBoolean(opts)) {
23125 ctx.showHidden = opts;
23127 // got an "options" object
23128 exports._extend(ctx, opts);
23130 // set default options
23131 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
23132 if (isUndefined(ctx.depth)) ctx.depth =
2;
23133 if (isUndefined(ctx.colors)) ctx.colors = false;
23134 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
23135 if (ctx.colors) ctx.stylize = stylizeWithColor;
23136 return formatValue(ctx, obj, ctx.depth);
23138 exports.inspect = inspect;
23141 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
23144 'italic' : [
3,
23],
23145 'underline' : [
4,
24],
23146 'inverse' : [
7,
27],
23147 'white' : [
37,
39],
23149 'black' : [
30,
39],
23152 'green' : [
32,
39],
23153 'magenta' : [
35,
39],
23155 'yellow' : [
33,
39]
23158 // Don't use 'blue' not visible on cmd.exe
23161 'number': 'yellow',
23162 'boolean': 'yellow',
23163 'undefined': 'grey',
23167 // "name": intentionally not styling
23172 function stylizeWithColor(str, styleType) {
23173 var style = inspect.styles[styleType];
23176 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
23177 '\u001b[' + inspect.colors[style][
1] + 'm';
23184 function stylizeNoColor(str, styleType) {
23189 function arrayToHash(array) {
23192 array.forEach(function(val, idx) {
23200 function formatValue(ctx, value, recurseTimes) {
23201 // Provide a hook for user-specified inspect functions.
23202 // Check that value is an object with an inspect function on it
23203 if (ctx.customInspect &&
23205 isFunction(value.inspect) &&
23206 // Filter out the util module, it's inspect function is special
23207 value.inspect !== exports.inspect &&
23208 // Also filter out any prototype objects using the circular check.
23209 !(value.constructor && value.constructor.prototype === value)) {
23210 var ret = value.inspect(recurseTimes, ctx);
23211 if (!isString(ret)) {
23212 ret = formatValue(ctx, ret, recurseTimes);
23217 // Primitive types cannot have properties
23218 var primitive = formatPrimitive(ctx, value);
23223 // Look up the keys of the object.
23224 var keys = Object.keys(value);
23225 var visibleKeys = arrayToHash(keys);
23227 if (ctx.showHidden) {
23228 keys = Object.getOwnPropertyNames(value);
23231 // IE doesn't make error fields non-enumerable
23232 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
23234 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
23235 return formatError(value);
23238 // Some type of object without properties can be shortcutted.
23239 if (keys.length ===
0) {
23240 if (isFunction(value)) {
23241 var name = value.name ? ': ' + value.name : '';
23242 return ctx.stylize('[Function' + name + ']', 'special');
23244 if (isRegExp(value)) {
23245 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23247 if (isDate(value)) {
23248 return ctx.stylize(Date.prototype.toString.call(value), 'date');
23250 if (isError(value)) {
23251 return formatError(value);
23255 var base = '', array = false, braces = ['{', '}'];
23257 // Make Array say that they are Array
23258 if (isArray(value)) {
23260 braces = ['[', ']'];
23263 // Make functions say that they are functions
23264 if (isFunction(value)) {
23265 var n = value.name ? ': ' + value.name : '';
23266 base = ' [Function' + n + ']';
23269 // Make RegExps say that they are RegExps
23270 if (isRegExp(value)) {
23271 base = ' ' + RegExp.prototype.toString.call(value);
23274 // Make dates with properties first say the date
23275 if (isDate(value)) {
23276 base = ' ' + Date.prototype.toUTCString.call(value);
23279 // Make error with message first say the error
23280 if (isError(value)) {
23281 base = ' ' + formatError(value);
23284 if (keys.length ===
0 && (!array || value.length ==
0)) {
23285 return braces[
0] + base + braces[
1];
23288 if (recurseTimes <
0) {
23289 if (isRegExp(value)) {
23290 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23292 return ctx.stylize('[Object]', 'special');
23296 ctx.seen.push(value);
23300 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
23302 output = keys.map(function(key) {
23303 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
23309 return reduceToSingleString(output, base, braces);
23313 function formatPrimitive(ctx, value) {
23314 if (isUndefined(value))
23315 return ctx.stylize('undefined', 'undefined');
23316 if (isString(value)) {
23317 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
23318 .replace(/'/g, "\\'")
23319 .replace(/\\"/g, '"') + '\'';
23320 return ctx.stylize(simple, 'string');
23322 if (isNumber(value))
23323 return ctx.stylize('' + value, 'number');
23324 if (isBoolean(value))
23325 return ctx.stylize('' + value, 'boolean');
23326 // For some reason typeof null is "object", so special case here.
23328 return ctx.stylize('null', 'null');
23332 function formatError(value) {
23333 return '[' + Error.prototype.toString.call(value) + ']';
23337 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
23339 for (var i =
0, l = value.length; i < l; ++i) {
23340 if (hasOwnProperty(value, String(i))) {
23341 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23347 keys.forEach(function(key) {
23348 if (!key.match(/^\d+$/)) {
23349 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23357 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
23358 var name, str, desc;
23359 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
23362 str = ctx.stylize('[Getter/Setter]', 'special');
23364 str = ctx.stylize('[Getter]', 'special');
23368 str = ctx.stylize('[Setter]', 'special');
23371 if (!hasOwnProperty(visibleKeys, key)) {
23372 name = '[' + key + ']';
23375 if (ctx.seen.indexOf(desc.value) <
0) {
23376 if (isNull(recurseTimes)) {
23377 str = formatValue(ctx, desc.value, null);
23379 str = formatValue(ctx, desc.value, recurseTimes -
1);
23381 if (str.indexOf('\n')
> -
1) {
23383 str = str.split('\n').map(function(line) {
23385 }).join('\n').substr(
2);
23387 str = '\n' + str.split('\n').map(function(line) {
23393 str = ctx.stylize('[Circular]', 'special');
23396 if (isUndefined(name)) {
23397 if (array && key.match(/^\d+$/)) {
23400 name = JSON.stringify('' + key);
23401 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
23402 name = name.substr(
1, name.length -
2);
23403 name = ctx.stylize(name, 'name');
23405 name = name.replace(/'/g, "\\'")
23406 .replace(/\\"/g, '"')
23407 .replace(/(^"|"$)/g, "'");
23408 name = ctx.stylize(name, 'string');
23412 return name + ': ' + str;
23416 function reduceToSingleString(output, base, braces) {
23417 var numLinesEst =
0;
23418 var length = output.reduce(function(prev, cur) {
23420 if (cur.indexOf('\n')
>=
0) numLinesEst++;
23421 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
23426 (base === '' ? '' : base + '\n ') +
23428 output.join(',\n ') +
23433 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
23437 // NOTE: These type checking functions intentionally don't use `instanceof`
23438 // because it is fragile and can be easily faked with `Object.create()`.
23439 function isArray(ar) {
23440 return Array.isArray(ar);
23442 exports.isArray = isArray;
23444 function isBoolean(arg) {
23445 return typeof arg === 'boolean';
23447 exports.isBoolean = isBoolean;
23449 function isNull(arg) {
23450 return arg === null;
23452 exports.isNull = isNull;
23454 function isNullOrUndefined(arg) {
23455 return arg == null;
23457 exports.isNullOrUndefined = isNullOrUndefined;
23459 function isNumber(arg) {
23460 return typeof arg === 'number';
23462 exports.isNumber = isNumber;
23464 function isString(arg) {
23465 return typeof arg === 'string';
23467 exports.isString = isString;
23469 function isSymbol(arg) {
23470 return typeof arg === 'symbol';
23472 exports.isSymbol = isSymbol;
23474 function isUndefined(arg) {
23475 return arg === void
0;
23477 exports.isUndefined = isUndefined;
23479 function isRegExp(re) {
23480 return isObject(re) && objectToString(re) === '[object RegExp]';
23482 exports.isRegExp = isRegExp;
23484 function isObject(arg) {
23485 return typeof arg === 'object' && arg !== null;
23487 exports.isObject = isObject;
23489 function isDate(d) {
23490 return isObject(d) && objectToString(d) === '[object Date]';
23492 exports.isDate = isDate;
23494 function isError(e) {
23495 return isObject(e) &&
23496 (objectToString(e) === '[object Error]' || e instanceof Error);
23498 exports.isError = isError;
23500 function isFunction(arg) {
23501 return typeof arg === 'function';
23503 exports.isFunction = isFunction;
23505 function isPrimitive(arg) {
23506 return arg === null ||
23507 typeof arg === 'boolean' ||
23508 typeof arg === 'number' ||
23509 typeof arg === 'string' ||
23510 typeof arg === 'symbol' || // ES6 symbol
23511 typeof arg === 'undefined';
23513 exports.isPrimitive = isPrimitive;
23515 exports.isBuffer = require('./support/isBuffer');
23517 function objectToString(o) {
23518 return Object.prototype.toString.call(o);
23523 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
23527 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
23528 'Oct', 'Nov', 'Dec'];
23531 function timestamp() {
23532 var d = new Date();
23533 var time = [pad(d.getHours()),
23534 pad(d.getMinutes()),
23535 pad(d.getSeconds())].join(':');
23536 return [d.getDate(), months[d.getMonth()], time].join(' ');
23540 // log is just a thin wrapper to console.log that prepends a timestamp
23541 exports.log = function() {
23542 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
23547 * Inherit the prototype methods from one constructor into another.
23549 * The Function.prototype.inherits from lang.js rewritten as a standalone
23550 * function (not on Function.prototype). NOTE: If this file is to be loaded
23551 * during bootstrapping this function needs to be rewritten using some native
23552 * functions as prototype setup using normal JavaScript does not work as
23553 * expected during bootstrapping (see mirror.js in r114903).
23555 * @param {function} ctor Constructor function which needs to inherit the
23557 * @param {function} superCtor Constructor function to inherit prototype from.
23559 exports.inherits = require('inherits');
23561 exports._extend = function(origin, add) {
23562 // Don't do anything if add isn't an object
23563 if (!add || !isObject(add)) return origin;
23565 var keys = Object.keys(add);
23566 var i = keys.length;
23568 origin[keys[i]] = add[keys[i]];
23573 function hasOwnProperty(obj, prop) {
23574 return Object.prototype.hasOwnProperty.call(obj, prop);
23577 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
23578 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
23579 (function (Buffer){
23580 const createKeccakHash = require('keccak')
23581 const secp256k1 = require('secp256k1')
23582 const assert = require('assert')
23583 const rlp = require('rlp')
23584 const BN = require('bn.js')
23585 const createHash = require('create-hash')
23586 Object.assign(exports, require('ethjs-util'))
23589 * the max integer that this VM can handle (a ```BN```)
23590 * @var {BN} MAX_INTEGER
23592 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
23595 *
2^
256 (a ```BN```)
23596 * @var {BN} TWO_POW256
23598 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
23601 * SHA3-
256 hash of null (a ```String```)
23602 * @var {String} SHA3_NULL_S
23604 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
23607 * SHA3-
256 hash of null (a ```Buffer```)
23608 * @var {Buffer} SHA3_NULL
23610 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
23613 * SHA3-
256 of an RLP of an empty array (a ```String```)
23614 * @var {String} SHA3_RLP_ARRAY_S
23616 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
23619 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
23620 * @var {Buffer} SHA3_RLP_ARRAY
23622 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
23625 * SHA3-
256 hash of the RLP of null (a ```String```)
23626 * @var {String} SHA3_RLP_S
23628 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
23631 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
23632 * @var {Buffer} SHA3_RLP
23634 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
23637 * [`BN`](https://github.com/indutny/bn.js)
23643 * [`rlp`](https://github.com/ethereumjs/rlp)
23649 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
23652 exports.secp256k1 = secp256k1
23655 * Returns a buffer filled with
0s
23657 * @param {Number} bytes the number of bytes the buffer should be
23660 exports.zeros = function (bytes) {
23661 return Buffer.allocUnsafe(bytes).fill(
0)
23665 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
23666 * Or it truncates the beginning if it exceeds.
23667 * @method lsetLength
23668 * @param {Buffer|Array} msg the value to pad
23669 * @param {Number} length the number of bytes the output should be
23670 * @param {Boolean} [right=false] whether to start padding form the left or right
23671 * @return {Buffer|Array}
23673 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
23674 var buf = exports.zeros(length)
23675 msg = exports.toBuffer(msg)
23677 if (msg.length < length) {
23681 return msg.slice(
0, length)
23683 if (msg.length < length) {
23684 msg.copy(buf, length - msg.length)
23687 return msg.slice(-length)
23692 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
23693 * Or it truncates the beginning if it exceeds.
23694 * @param {Buffer|Array} msg the value to pad
23695 * @param {Number} length the number of bytes the output should be
23696 * @return {Buffer|Array}
23698 exports.setLengthRight = function (msg, length) {
23699 return exports.setLength(msg, length, true)
23703 * Trims leading zeros from a `Buffer` or an `Array`
23704 * @param {Buffer|Array|String} a
23705 * @return {Buffer|Array|String}
23707 exports.unpad = exports.stripZeros = function (a) {
23708 a = exports.stripHexPrefix(a)
23710 while (a.length
> 0 && first.toString() === '
0') {
23717 * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.
23718 * @param {*} v the value
23720 exports.toBuffer = function (v) {
23721 if (!Buffer.isBuffer(v)) {
23722 if (Array.isArray(v)) {
23724 } else if (typeof v === 'string') {
23725 if (exports.isHexPrefixed(v)) {
23726 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
23730 } else if (typeof v === 'number') {
23731 v = exports.intToBuffer(v)
23732 } else if (v === null || v === undefined) {
23733 v = Buffer.allocUnsafe(
0)
23734 } else if (v.toArray) {
23735 // converts a BN to a Buffer
23736 v = Buffer.from(v.toArray())
23738 throw new Error('invalid type')
23745 * Converts a `Buffer` to a `Number`
23746 * @param {Buffer} buf
23748 * @throws If the input number exceeds
53 bits.
23750 exports.bufferToInt = function (buf) {
23751 return new BN(exports.toBuffer(buf)).toNumber()
23755 * Converts a `Buffer` into a hex `String`
23756 * @param {Buffer} buf
23759 exports.bufferToHex = function (buf) {
23760 buf = exports.toBuffer(buf)
23761 return '
0x' + buf.toString('hex')
23765 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
23766 * @param {Buffer} num
23769 exports.fromSigned = function (num) {
23770 return new BN(num).fromTwos(
256)
23774 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
23778 exports.toUnsigned = function (num) {
23779 return Buffer.from(num.toTwos(
256).toArray())
23783 * Creates SHA-
3 hash of the input
23784 * @param {Buffer|Array|String|Number} a the input data
23785 * @param {Number} [bits=
256] the SHA width
23788 exports.sha3 = function (a, bits) {
23789 a = exports.toBuffer(a)
23790 if (!bits) bits =
256
23792 return createKeccakHash('keccak' + bits).update(a).digest()
23796 * Creates SHA256 hash of the input
23797 * @param {Buffer|Array|String|Number} a the input data
23800 exports.sha256 = function (a) {
23801 a = exports.toBuffer(a)
23802 return createHash('sha256').update(a).digest()
23806 * Creates RIPEMD160 hash of the input
23807 * @param {Buffer|Array|String|Number} a the input data
23808 * @param {Boolean} padded whether it should be padded to
256 bits or not
23811 exports.ripemd160 = function (a, padded) {
23812 a = exports.toBuffer(a)
23813 var hash = createHash('rmd160').update(a).digest()
23814 if (padded === true) {
23815 return exports.setLength(hash,
32)
23822 * Creates SHA-
3 hash of the RLP encoded version of the input
23823 * @param {Buffer|Array|String|Number} a the input data
23826 exports.rlphash = function (a) {
23827 return exports.sha3(rlp.encode(a))
23831 * Checks if the private key satisfies the rules of the curve secp256k1.
23832 * @param {Buffer} privateKey
23833 * @return {Boolean}
23835 exports.isValidPrivate = function (privateKey) {
23836 return secp256k1.privateKeyVerify(privateKey)
23840 * Checks if the public key satisfies the rules of the curve secp256k1
23841 * and the requirements of Ethereum.
23842 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
23843 * @param {Boolean} [sanitize=false] Accept public keys in other formats
23844 * @return {Boolean}
23846 exports.isValidPublic = function (publicKey, sanitize) {
23847 if (publicKey.length ===
64) {
23848 // Convert to SEC1 for secp256k1
23849 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
23856 return secp256k1.publicKeyVerify(publicKey)
23860 * Returns the ethereum address of a given public key.
23861 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
23862 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
23863 * @param {Boolean} [sanitize=false] Accept public keys in other formats
23866 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
23867 pubKey = exports.toBuffer(pubKey)
23868 if (sanitize && (pubKey.length !==
64)) {
23869 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
23871 assert(pubKey.length ===
64)
23872 // Only take the lower
160bits of the hash
23873 return exports.sha3(pubKey).slice(-
20)
23877 * Returns the ethereum public key of a given private key
23878 * @param {Buffer} privateKey A private key must be
256 bits wide
23881 var privateToPublic = exports.privateToPublic = function (privateKey) {
23882 privateKey = exports.toBuffer(privateKey)
23883 // skip the type flag and use the X, Y points
23884 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
23888 * Converts a public key to the Ethereum format.
23889 * @param {Buffer} publicKey
23892 exports.importPublic = function (publicKey) {
23893 publicKey = exports.toBuffer(publicKey)
23894 if (publicKey.length !==
64) {
23895 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
23902 * @param {Buffer} msgHash
23903 * @param {Buffer} privateKey
23906 exports.ecsign = function (msgHash, privateKey) {
23907 var sig = secp256k1.sign(msgHash, privateKey)
23910 ret.r = sig.signature.slice(
0,
32)
23911 ret.s = sig.signature.slice(
32,
64)
23912 ret.v = sig.recovery +
27
23917 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
23918 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
23919 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
23920 * used to produce the signature.
23922 * @returns {Buffer} hash
23924 exports.hashPersonalMessage = function (message) {
23925 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
23926 return exports.sha3(Buffer.concat([prefix, message]))
23930 * ECDSA public key recovery from signature
23931 * @param {Buffer} msgHash
23932 * @param {Number} v
23933 * @param {Buffer} r
23934 * @param {Buffer} s
23935 * @return {Buffer} publicKey
23937 exports.ecrecover = function (msgHash, v, r, s) {
23938 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
23939 var recovery = v -
27
23940 if (recovery !==
0 && recovery !==
1) {
23941 throw new Error('Invalid signature v value')
23943 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
23944 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
23948 * Convert signature parameters into the format of `eth_sign` RPC method
23949 * @param {Number} v
23950 * @param {Buffer} r
23951 * @param {Buffer} s
23952 * @return {String} sig
23954 exports.toRpcSig = function (v, r, s) {
23955 // NOTE: with potential introduction of chainId this might need to be updated
23956 if (v !==
27 && v !==
28) {
23957 throw new Error('Invalid recovery id')
23960 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
23961 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
23962 return exports.bufferToHex(Buffer.concat([
23963 exports.setLengthLeft(r,
32),
23964 exports.setLengthLeft(s,
32),
23965 exports.toBuffer(v -
27)
23970 * Convert signature format of the `eth_sign` RPC method to signature parameters
23971 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
23972 * @param {String} sig
23975 exports.fromRpcSig = function (sig) {
23976 sig = exports.toBuffer(sig)
23978 // NOTE: with potential introduction of chainId this might need to be updated
23979 if (sig.length !==
65) {
23980 throw new Error('Invalid signature length')
23984 // support both versions of `eth_sign` responses
23991 r: sig.slice(
0,
32),
23992 s: sig.slice(
32,
64)
23997 * Returns the ethereum address of a given private key
23998 * @param {Buffer} privateKey A private key must be
256 bits wide
24001 exports.privateToAddress = function (privateKey) {
24002 return exports.publicToAddress(privateToPublic(privateKey))
24006 * Checks if the address is a valid. Accepts checksummed addresses too
24007 * @param {String} address
24008 * @return {Boolean}
24010 exports.isValidAddress = function (address) {
24011 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
24015 * Returns a checksummed address
24016 * @param {String} address
24019 exports.toChecksumAddress = function (address) {
24020 address = exports.stripHexPrefix(address).toLowerCase()
24021 var hash = exports.sha3(address).toString('hex')
24024 for (var i =
0; i < address.length; i++) {
24025 if (parseInt(hash[i],
16)
>=
8) {
24026 ret += address[i].toUpperCase()
24036 * Checks if the address is a valid checksummed address
24037 * @param {Buffer} address
24038 * @return {Boolean}
24040 exports.isValidChecksumAddress = function (address) {
24041 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
24045 * Generates an address of a newly created contract
24046 * @param {Buffer} from the address which is creating this new address
24047 * @param {Buffer} nonce the nonce of the from account
24050 exports.generateAddress = function (from, nonce) {
24051 from = exports.toBuffer(from)
24052 nonce = new BN(nonce)
24054 if (nonce.isZero()) {
24055 // in RLP we want to encode null in the case of zero nonce
24056 // read the RLP documentation for an answer if you dare
24059 nonce = Buffer.from(nonce.toArray())
24062 // Only take the lower
160bits of the hash
24063 return exports.rlphash([from, nonce]).slice(-
20)
24067 * Returns true if the supplied address belongs to a precompiled account
24068 * @param {Buffer|String} address
24069 * @return {Boolean}
24071 exports.isPrecompiled = function (address) {
24072 var a = exports.unpad(address)
24073 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
24077 * Adds
"0x" to a given `String` if it does not already start with
"0x"
24078 * @param {String} str
24081 exports.addHexPrefix = function (str) {
24082 if (typeof str !== 'string') {
24086 return exports.isHexPrefixed(str) ? str : '
0x' + str
24090 * Validate ECDSA signature
24091 * @method isValidSignature
24092 * @param {Buffer} v
24093 * @param {Buffer} r
24094 * @param {Buffer} s
24095 * @param {Boolean} [homestead=true]
24096 * @return {Boolean}
24099 exports.isValidSignature = function (v, r, s, homestead) {
24100 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
24101 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
24103 if (r.length !==
32 || s.length !==
32) {
24107 if (v !==
27 && v !==
28) {
24114 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
24118 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
24126 * Converts a `Buffer` or `Array` to JSON
24127 * @param {Buffer|Array} ba
24128 * @return {Array|String|null}
24130 exports.baToJSON = function (ba) {
24131 if (Buffer.isBuffer(ba)) {
24132 return '
0x' + ba.toString('hex')
24133 } else if (ba instanceof Array) {
24135 for (var i =
0; i < ba.length; i++) {
24136 array.push(exports.baToJSON(ba[i]))
24143 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
24144 * @param {Object} self the `Object` to define properties on
24145 * @param {Array} fields an array fields to define. Fields can contain:
24146 * * `name` - the name of the properties
24147 * * `length` - the number of bytes the field can have
24148 * * `allowLess` - if the field can be less than the length
24150 * @param {*} data data to be validated against the definitions
24152 exports.defineProperties = function (self, fields, data) {
24156 // attach the `toJSON`
24157 self.toJSON = function (label) {
24160 self._fields.forEach(function (field) {
24161 obj[field] = '
0x' + self[field].toString('hex')
24165 return exports.baToJSON(this.raw)
24168 self.serialize = function serialize () {
24169 return rlp.encode(self.raw)
24172 fields.forEach(function (field, i) {
24173 self._fields.push(field.name)
24174 function getter () {
24177 function setter (v) {
24178 v = exports.toBuffer(v)
24180 if (v.toString('hex') === '
00' && !field.allowZero) {
24181 v = Buffer.allocUnsafe(
0)
24184 if (field.allowLess && field.length) {
24185 v = exports.stripZeros(v)
24186 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
24187 } else if (!(field.allowZero && v.length ===
0) && field.length) {
24188 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
24194 Object.defineProperty(self, field.name, {
24196 configurable: true,
24201 if (field.default) {
24202 self[field.name] = field.default
24207 Object.defineProperty(self, field.alias, {
24209 configurable: true,
24216 // if the constuctor is passed data
24218 if (typeof data === 'string') {
24219 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
24222 if (Buffer.isBuffer(data)) {
24223 data = rlp.decode(data)
24226 if (Array.isArray(data)) {
24227 if (data.length
> self._fields.length) {
24228 throw (new Error('wrong number of fields in data'))
24231 // make sure all the items are buffers
24232 data.forEach(function (d, i) {
24233 self[self._fields[i]] = exports.toBuffer(d)
24235 } else if (typeof data === 'object') {
24236 const keys = Object.keys(data)
24237 fields.forEach(function (field) {
24238 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
24239 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
24242 throw new Error('invalid data')
24247 }).call(this,require("buffer").Buffer)
24248 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
24249 (function (Buffer){
24250 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
24251 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24252 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
24254 function check (buffer) {
24255 if (buffer.length <
8) return false
24256 if (buffer.length
> 72) return false
24257 if (buffer[
0] !==
0x30) return false
24258 if (buffer[
1] !== buffer.length -
2) return false
24259 if (buffer[
2] !==
0x02) return false
24261 var lenR = buffer[
3]
24262 if (lenR ===
0) return false
24263 if (
5 + lenR
>= buffer.length) return false
24264 if (buffer[
4 + lenR] !==
0x02) return false
24266 var lenS = buffer[
5 + lenR]
24267 if (lenS ===
0) return false
24268 if ((
6 + lenR + lenS) !== buffer.length) return false
24270 if (buffer[
4] &
0x80) return false
24271 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
24273 if (buffer[lenR +
6] &
0x80) return false
24274 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
24278 function decode (buffer) {
24279 if (buffer.length <
8) throw new Error('DER sequence length is too short')
24280 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
24281 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
24282 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
24283 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
24285 var lenR = buffer[
3]
24286 if (lenR ===
0) throw new Error('R length is zero')
24287 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
24288 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
24290 var lenS = buffer[
5 + lenR]
24291 if (lenS ===
0) throw new Error('S length is zero')
24292 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
24294 if (buffer[
4] &
0x80) throw new Error('R value is negative')
24295 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
24297 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
24298 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
24300 // non-BIP66 - extract R, S values
24302 r: buffer.slice(
4,
4 + lenR),
24303 s: buffer.slice(
6 + lenR)
24308 * Expects r and s to be positive DER integers.
24310 * The DER format uses the most significant bit as a sign bit (&
0x80).
24311 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
24326 *
62300 =
> 0x00f35c
24327 * -
62300 =
> 0xff0ca4
24329 function encode (r, s) {
24330 var lenR = r.length
24331 var lenS = s.length
24332 if (lenR ===
0) throw new Error('R length is zero')
24333 if (lenS ===
0) throw new Error('S length is zero')
24334 if (lenR
> 33) throw new Error('R length is too long')
24335 if (lenS
> 33) throw new Error('S length is too long')
24336 if (r[
0] &
0x80) throw new Error('R value is negative')
24337 if (s[
0] &
0x80) throw new Error('S value is negative')
24338 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
24339 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
24341 var signature = new Buffer(
6 + lenR + lenS)
24343 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24344 signature[
0] =
0x30
24345 signature[
1] = signature.length -
2
24346 signature[
2] =
0x02
24347 signature[
3] = r.length
24348 r.copy(signature,
4)
24349 signature[
4 + lenR] =
0x02
24350 signature[
5 + lenR] = s.length
24351 s.copy(signature,
6 + lenR)
24362 }).call(this,require(
"buffer").Buffer)
24363 },{
"buffer":
5}],
33:[function(require,module,exports){
24364 (function (module, exports) {
24368 function assert (val, msg) {
24369 if (!val) throw new Error(msg || 'Assertion failed');
24372 // Could use `inherits` module, but don't want to move from single file
24373 // architecture yet.
24374 function inherits (ctor, superCtor) {
24375 ctor.super_ = superCtor;
24376 var TempCtor = function () {};
24377 TempCtor.prototype = superCtor.prototype;
24378 ctor.prototype = new TempCtor();
24379 ctor.prototype.constructor = ctor;
24384 function BN (number, base, endian) {
24385 if (BN.isBN(number)) {
24393 // Reduction context
24396 if (number !== null) {
24397 if (base === 'le' || base === 'be') {
24402 this._init(number ||
0, base ||
10, endian || 'be');
24405 if (typeof module === 'object') {
24406 module.exports = BN;
24416 Buffer = require('buf' + 'fer').Buffer;
24420 BN.isBN = function isBN (num) {
24421 if (num instanceof BN) {
24425 return num !== null && typeof num === 'object' &&
24426 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
24429 BN.max = function max (left, right) {
24430 if (left.cmp(right)
> 0) return left;
24434 BN.min = function min (left, right) {
24435 if (left.cmp(right) <
0) return left;
24439 BN.prototype._init = function init (number, base, endian) {
24440 if (typeof number === 'number') {
24441 return this._initNumber(number, base, endian);
24444 if (typeof number === 'object') {
24445 return this._initArray(number, base, endian);
24448 if (base === 'hex') {
24451 assert(base === (base |
0) && base
>=
2 && base <=
36);
24453 number = number.toString().replace(/\s+/g, '');
24455 if (number[
0] === '-') {
24460 this._parseHex(number, start);
24462 this._parseBase(number, base, start);
24465 if (number[
0] === '-') {
24471 if (endian !== 'le') return;
24473 this._initArray(this.toArray(), base, endian);
24476 BN.prototype._initNumber = function _initNumber (number, base, endian) {
24481 if (number <
0x4000000) {
24482 this.words = [ number &
0x3ffffff ];
24484 } else if (number <
0x10000000000000) {
24486 number &
0x3ffffff,
24487 (number /
0x4000000) &
0x3ffffff
24491 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
24493 number &
0x3ffffff,
24494 (number /
0x4000000) &
0x3ffffff,
24500 if (endian !== 'le') return;
24502 // Reverse the bytes
24503 this._initArray(this.toArray(), base, endian);
24506 BN.prototype._initArray = function _initArray (number, base, endian) {
24507 // Perhaps a Uint8Array
24508 assert(typeof number.length === 'number');
24509 if (number.length <=
0) {
24510 this.words = [
0 ];
24515 this.length = Math.ceil(number.length /
3);
24516 this.words = new Array(this.length);
24517 for (var i =
0; i < this.length; i++) {
24523 if (endian === 'be') {
24524 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
24525 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
24526 this.words[j] |= (w << off) &
0x3ffffff;
24527 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
24534 } else if (endian === 'le') {
24535 for (i =
0, j =
0; i < number.length; i +=
3) {
24536 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
24537 this.words[j] |= (w << off) &
0x3ffffff;
24538 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
24546 return this.strip();
24549 function parseHex (str, start, end) {
24551 var len = Math.min(str.length, end);
24552 for (var i = start; i < len; i++) {
24553 var c = str.charCodeAt(i) -
48;
24558 if (c
>=
49 && c <=
54) {
24562 } else if (c
>=
17 && c <=
22) {
24573 BN.prototype._parseHex = function _parseHex (number, start) {
24574 // Create possibly bigger array to ensure that it fits the number
24575 this.length = Math.ceil((number.length - start) /
6);
24576 this.words = new Array(this.length);
24577 for (var i =
0; i < this.length; i++) {
24582 // Scan
24-bit chunks and add them to the number
24584 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
24585 w = parseHex(number, i, i +
6);
24586 this.words[j] |= (w << off) &
0x3ffffff;
24587 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
24588 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
24595 if (i +
6 !== start) {
24596 w = parseHex(number, start, i +
6);
24597 this.words[j] |= (w << off) &
0x3ffffff;
24598 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
24603 function parseBase (str, start, end, mul) {
24605 var len = Math.min(str.length, end);
24606 for (var i = start; i < len; i++) {
24607 var c = str.charCodeAt(i) -
48;
24616 } else if (c
>=
17) {
24627 BN.prototype._parseBase = function _parseBase (number, base, start) {
24628 // Initialize as zero
24629 this.words = [
0 ];
24632 // Find length of limb in base
24633 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
24637 limbPow = (limbPow / base) |
0;
24639 var total = number.length - start;
24640 var mod = total % limbLen;
24641 var end = Math.min(total, total - mod) + start;
24644 for (var i = start; i < end; i += limbLen) {
24645 word = parseBase(number, i, i + limbLen, base);
24647 this.imuln(limbPow);
24648 if (this.words[
0] + word <
0x4000000) {
24649 this.words[
0] += word;
24657 word = parseBase(number, i, number.length, base);
24659 for (i =
0; i < mod; i++) {
24664 if (this.words[
0] + word <
0x4000000) {
24665 this.words[
0] += word;
24672 BN.prototype.copy = function copy (dest) {
24673 dest.words = new Array(this.length);
24674 for (var i =
0; i < this.length; i++) {
24675 dest.words[i] = this.words[i];
24677 dest.length = this.length;
24678 dest.negative = this.negative;
24679 dest.red = this.red;
24682 BN.prototype.clone = function clone () {
24683 var r = new BN(null);
24688 BN.prototype._expand = function _expand (size) {
24689 while (this.length < size) {
24690 this.words[this.length++] =
0;
24695 // Remove leading `
0` from `this`
24696 BN.prototype.strip = function strip () {
24697 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
24700 return this._normSign();
24703 BN.prototype._normSign = function _normSign () {
24705 if (this.length ===
1 && this.words[
0] ===
0) {
24711 BN.prototype.inspect = function inspect () {
24712 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
24718 var groupSizes = [];
24719 var groupBases = [];
24723 while (++i < BN.wordSize) {
24732 while (++base <
36 +
1) {
24735 while (groupBase < (
1 << BN.wordSize) / base) {
24739 groupSizes[base] = groupSize;
24740 groupBases[base] = groupBase;
24762 '
0000000000000000',
24763 '
00000000000000000',
24764 '
000000000000000000',
24765 '
0000000000000000000',
24766 '
00000000000000000000',
24767 '
000000000000000000000',
24768 '
0000000000000000000000',
24769 '
00000000000000000000000',
24770 '
000000000000000000000000',
24771 '
0000000000000000000000000'
24776 25,
16,
12,
11,
10,
9,
8,
24777 8,
7,
7,
7,
7,
6,
6,
24778 6,
6,
6,
6,
6,
5,
5,
24779 5,
5,
5,
5,
5,
5,
5,
24780 5,
5,
5,
5,
5,
5,
5
24785 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
24786 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
24787 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
24788 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
24789 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
24792 BN.prototype.toString = function toString (base, padding) {
24794 padding = padding |
0 ||
1;
24797 if (base ===
16 || base === 'hex') {
24801 for (var i =
0; i < this.length; i++) {
24802 var w = this.words[i];
24803 var word = (((w << off) | carry) &
0xffffff).toString(
16);
24804 carry = (w
>>> (
24 - off)) &
0xffffff;
24805 if (carry !==
0 || i !== this.length -
1) {
24806 out = zeros[
6 - word.length] + word + out;
24817 out = carry.toString(
16) + out;
24819 while (out.length % padding !==
0) {
24822 if (this.negative !==
0) {
24828 if (base === (base |
0) && base
>=
2 && base <=
36) {
24829 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
24830 var groupSize = groupSizes[base];
24831 // var groupBase = Math.pow(base, groupSize);
24832 var groupBase = groupBases[base];
24834 var c = this.clone();
24836 while (!c.isZero()) {
24837 var r = c.modn(groupBase).toString(base);
24838 c = c.idivn(groupBase);
24841 out = zeros[groupSize - r.length] + r + out;
24846 if (this.isZero()) {
24849 while (out.length % padding !==
0) {
24852 if (this.negative !==
0) {
24858 assert(false, 'Base should be between
2 and
36');
24861 BN.prototype.toNumber = function toNumber () {
24862 var ret = this.words[
0];
24863 if (this.length ===
2) {
24864 ret += this.words[
1] *
0x4000000;
24865 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
24866 // NOTE: at this stage it is known that the top bit is set
24867 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
24868 } else if (this.length
> 2) {
24869 assert(false, 'Number can only safely store up to
53 bits');
24871 return (this.negative !==
0) ? -ret : ret;
24874 BN.prototype.toJSON = function toJSON () {
24875 return this.toString(
16);
24878 BN.prototype.toBuffer = function toBuffer (endian, length) {
24879 assert(typeof Buffer !== 'undefined');
24880 return this.toArrayLike(Buffer, endian, length);
24883 BN.prototype.toArray = function toArray (endian, length) {
24884 return this.toArrayLike(Array, endian, length);
24887 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
24888 var byteLength = this.byteLength();
24889 var reqLength = length || Math.max(
1, byteLength);
24890 assert(byteLength <= reqLength, 'byte array longer than desired length');
24891 assert(reqLength
> 0, 'Requested array length <=
0');
24894 var littleEndian = endian === 'le';
24895 var res = new ArrayType(reqLength);
24898 var q = this.clone();
24899 if (!littleEndian) {
24900 // Assume big-endian
24901 for (i =
0; i < reqLength - byteLength; i++) {
24905 for (i =
0; !q.isZero(); i++) {
24909 res[reqLength - i -
1] = b;
24912 for (i =
0; !q.isZero(); i++) {
24919 for (; i < reqLength; i++) {
24928 BN.prototype._countBits = function _countBits (w) {
24929 return
32 - Math.clz32(w);
24932 BN.prototype._countBits = function _countBits (w) {
24955 BN.prototype._zeroBits = function _zeroBits (w) {
24957 if (w ===
0) return
26;
24961 if ((t &
0x1fff) ===
0) {
24965 if ((t &
0x7f) ===
0) {
24969 if ((t &
0xf) ===
0) {
24973 if ((t &
0x3) ===
0) {
24977 if ((t &
0x1) ===
0) {
24983 // Return number of used bits in a BN
24984 BN.prototype.bitLength = function bitLength () {
24985 var w = this.words[this.length -
1];
24986 var hi = this._countBits(w);
24987 return (this.length -
1) *
26 + hi;
24990 function toBitArray (num) {
24991 var w = new Array(num.bitLength());
24993 for (var bit =
0; bit < w.length; bit++) {
24994 var off = (bit /
26) |
0;
24995 var wbit = bit %
26;
24997 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
25003 // Number of trailing zero bits
25004 BN.prototype.zeroBits = function zeroBits () {
25005 if (this.isZero()) return
0;
25008 for (var i =
0; i < this.length; i++) {
25009 var b = this._zeroBits(this.words[i]);
25011 if (b !==
26) break;
25016 BN.prototype.byteLength = function byteLength () {
25017 return Math.ceil(this.bitLength() /
8);
25020 BN.prototype.toTwos = function toTwos (width) {
25021 if (this.negative !==
0) {
25022 return this.abs().inotn(width).iaddn(
1);
25024 return this.clone();
25027 BN.prototype.fromTwos = function fromTwos (width) {
25028 if (this.testn(width -
1)) {
25029 return this.notn(width).iaddn(
1).ineg();
25031 return this.clone();
25034 BN.prototype.isNeg = function isNeg () {
25035 return this.negative !==
0;
25038 // Return negative clone of `this`
25039 BN.prototype.neg = function neg () {
25040 return this.clone().ineg();
25043 BN.prototype.ineg = function ineg () {
25044 if (!this.isZero()) {
25045 this.negative ^=
1;
25051 // Or `num` with `this` in-place
25052 BN.prototype.iuor = function iuor (num) {
25053 while (this.length < num.length) {
25054 this.words[this.length++] =
0;
25057 for (var i =
0; i < num.length; i++) {
25058 this.words[i] = this.words[i] | num.words[i];
25061 return this.strip();
25064 BN.prototype.ior = function ior (num) {
25065 assert((this.negative | num.negative) ===
0);
25066 return this.iuor(num);
25069 // Or `num` with `this`
25070 BN.prototype.or = function or (num) {
25071 if (this.length
> num.length) return this.clone().ior(num);
25072 return num.clone().ior(this);
25075 BN.prototype.uor = function uor (num) {
25076 if (this.length
> num.length) return this.clone().iuor(num);
25077 return num.clone().iuor(this);
25080 // And `num` with `this` in-place
25081 BN.prototype.iuand = function iuand (num) {
25082 // b = min-length(num, this)
25084 if (this.length
> num.length) {
25090 for (var i =
0; i < b.length; i++) {
25091 this.words[i] = this.words[i] & num.words[i];
25094 this.length = b.length;
25096 return this.strip();
25099 BN.prototype.iand = function iand (num) {
25100 assert((this.negative | num.negative) ===
0);
25101 return this.iuand(num);
25104 // And `num` with `this`
25105 BN.prototype.and = function and (num) {
25106 if (this.length
> num.length) return this.clone().iand(num);
25107 return num.clone().iand(this);
25110 BN.prototype.uand = function uand (num) {
25111 if (this.length
> num.length) return this.clone().iuand(num);
25112 return num.clone().iuand(this);
25115 // Xor `num` with `this` in-place
25116 BN.prototype.iuxor = function iuxor (num) {
25117 // a.length
> b.length
25120 if (this.length
> num.length) {
25128 for (var i =
0; i < b.length; i++) {
25129 this.words[i] = a.words[i] ^ b.words[i];
25133 for (; i < a.length; i++) {
25134 this.words[i] = a.words[i];
25138 this.length = a.length;
25140 return this.strip();
25143 BN.prototype.ixor = function ixor (num) {
25144 assert((this.negative | num.negative) ===
0);
25145 return this.iuxor(num);
25148 // Xor `num` with `this`
25149 BN.prototype.xor = function xor (num) {
25150 if (this.length
> num.length) return this.clone().ixor(num);
25151 return num.clone().ixor(this);
25154 BN.prototype.uxor = function uxor (num) {
25155 if (this.length
> num.length) return this.clone().iuxor(num);
25156 return num.clone().iuxor(this);
25159 // Not ``this`` with ``width`` bitwidth
25160 BN.prototype.inotn = function inotn (width) {
25161 assert(typeof width === 'number' && width
>=
0);
25163 var bytesNeeded = Math.ceil(width /
26) |
0;
25164 var bitsLeft = width %
26;
25166 // Extend the buffer with leading zeroes
25167 this._expand(bytesNeeded);
25169 if (bitsLeft
> 0) {
25173 // Handle complete words
25174 for (var i =
0; i < bytesNeeded; i++) {
25175 this.words[i] = ~this.words[i] &
0x3ffffff;
25178 // Handle the residue
25179 if (bitsLeft
> 0) {
25180 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
25183 // And remove leading zeroes
25184 return this.strip();
25187 BN.prototype.notn = function notn (width) {
25188 return this.clone().inotn(width);
25191 // Set `bit` of `this`
25192 BN.prototype.setn = function setn (bit, val) {
25193 assert(typeof bit === 'number' && bit
>=
0);
25195 var off = (bit /
26) |
0;
25196 var wbit = bit %
26;
25198 this._expand(off +
1);
25201 this.words[off] = this.words[off] | (
1 << wbit);
25203 this.words[off] = this.words[off] & ~(
1 << wbit);
25206 return this.strip();
25209 // Add `num` to `this` in-place
25210 BN.prototype.iadd = function iadd (num) {
25213 // negative + positive
25214 if (this.negative !==
0 && num.negative ===
0) {
25216 r = this.isub(num);
25217 this.negative ^=
1;
25218 return this._normSign();
25220 // positive + negative
25221 } else if (this.negative ===
0 && num.negative !==
0) {
25223 r = this.isub(num);
25225 return r._normSign();
25228 // a.length
> b.length
25230 if (this.length
> num.length) {
25239 for (var i =
0; i < b.length; i++) {
25240 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
25241 this.words[i] = r &
0x3ffffff;
25244 for (; carry !==
0 && i < a.length; i++) {
25245 r = (a.words[i] |
0) + carry;
25246 this.words[i] = r &
0x3ffffff;
25250 this.length = a.length;
25252 this.words[this.length] = carry;
25254 // Copy the rest of the words
25255 } else if (a !== this) {
25256 for (; i < a.length; i++) {
25257 this.words[i] = a.words[i];
25264 // Add `num` to `this`
25265 BN.prototype.add = function add (num) {
25267 if (num.negative !==
0 && this.negative ===
0) {
25269 res = this.sub(num);
25272 } else if (num.negative ===
0 && this.negative !==
0) {
25274 res = num.sub(this);
25279 if (this.length
> num.length) return this.clone().iadd(num);
25281 return num.clone().iadd(this);
25284 // Subtract `num` from `this` in-place
25285 BN.prototype.isub = function isub (num) {
25286 // this - (-num) = this + num
25287 if (num.negative !==
0) {
25289 var r = this.iadd(num);
25291 return r._normSign();
25293 // -this - num = -(this + num)
25294 } else if (this.negative !==
0) {
25298 return this._normSign();
25301 // At this point both numbers are positive
25302 var cmp = this.cmp(num);
25304 // Optimization - zeroify
25323 for (var i =
0; i < b.length; i++) {
25324 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
25326 this.words[i] = r &
0x3ffffff;
25328 for (; carry !==
0 && i < a.length; i++) {
25329 r = (a.words[i] |
0) + carry;
25331 this.words[i] = r &
0x3ffffff;
25334 // Copy rest of the words
25335 if (carry ===
0 && i < a.length && a !== this) {
25336 for (; i < a.length; i++) {
25337 this.words[i] = a.words[i];
25341 this.length = Math.max(this.length, i);
25347 return this.strip();
25350 // Subtract `num` from `this`
25351 BN.prototype.sub = function sub (num) {
25352 return this.clone().isub(num);
25355 function smallMulTo (self, num, out) {
25356 out.negative = num.negative ^ self.negative;
25357 var len = (self.length + num.length) |
0;
25359 len = (len -
1) |
0;
25361 // Peel one iteration (compiler can't do it, because of code complexity)
25362 var a = self.words[
0] |
0;
25363 var b = num.words[
0] |
0;
25366 var lo = r &
0x3ffffff;
25367 var carry = (r /
0x4000000) |
0;
25370 for (var k =
1; k < len; k++) {
25371 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
25372 // note that ncarry could be
>=
0x3ffffff
25373 var ncarry = carry
>>> 26;
25374 var rword = carry &
0x3ffffff;
25375 var maxJ = Math.min(k, num.length -
1);
25376 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
25377 var i = (k - j) |
0;
25378 a = self.words[i] |
0;
25379 b = num.words[j] |
0;
25381 ncarry += (r /
0x4000000) |
0;
25382 rword = r &
0x3ffffff;
25384 out.words[k] = rword |
0;
25385 carry = ncarry |
0;
25388 out.words[k] = carry |
0;
25393 return out.strip();
25396 // TODO(indutny): it may be reasonable to omit it for users who don't need
25397 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
25398 // multiplication (like elliptic secp256k1).
25399 var comb10MulTo = function comb10MulTo (self, num, out) {
25400 var a = self.words;
25408 var al0 = a0 &
0x1fff;
25409 var ah0 = a0
>>> 13;
25411 var al1 = a1 &
0x1fff;
25412 var ah1 = a1
>>> 13;
25414 var al2 = a2 &
0x1fff;
25415 var ah2 = a2
>>> 13;
25417 var al3 = a3 &
0x1fff;
25418 var ah3 = a3
>>> 13;
25420 var al4 = a4 &
0x1fff;
25421 var ah4 = a4
>>> 13;
25423 var al5 = a5 &
0x1fff;
25424 var ah5 = a5
>>> 13;
25426 var al6 = a6 &
0x1fff;
25427 var ah6 = a6
>>> 13;
25429 var al7 = a7 &
0x1fff;
25430 var ah7 = a7
>>> 13;
25432 var al8 = a8 &
0x1fff;
25433 var ah8 = a8
>>> 13;
25435 var al9 = a9 &
0x1fff;
25436 var ah9 = a9
>>> 13;
25438 var bl0 = b0 &
0x1fff;
25439 var bh0 = b0
>>> 13;
25441 var bl1 = b1 &
0x1fff;
25442 var bh1 = b1
>>> 13;
25444 var bl2 = b2 &
0x1fff;
25445 var bh2 = b2
>>> 13;
25447 var bl3 = b3 &
0x1fff;
25448 var bh3 = b3
>>> 13;
25450 var bl4 = b4 &
0x1fff;
25451 var bh4 = b4
>>> 13;
25453 var bl5 = b5 &
0x1fff;
25454 var bh5 = b5
>>> 13;
25456 var bl6 = b6 &
0x1fff;
25457 var bh6 = b6
>>> 13;
25459 var bl7 = b7 &
0x1fff;
25460 var bh7 = b7
>>> 13;
25462 var bl8 = b8 &
0x1fff;
25463 var bh8 = b8
>>> 13;
25465 var bl9 = b9 &
0x1fff;
25466 var bh9 = b9
>>> 13;
25468 out.negative = self.negative ^ num.negative;
25471 lo = Math.imul(al0, bl0);
25472 mid = Math.imul(al0, bh0);
25473 mid = (mid + Math.imul(ah0, bl0)) |
0;
25474 hi = Math.imul(ah0, bh0);
25475 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25476 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
25479 lo = Math.imul(al1, bl0);
25480 mid = Math.imul(al1, bh0);
25481 mid = (mid + Math.imul(ah1, bl0)) |
0;
25482 hi = Math.imul(ah1, bh0);
25483 lo = (lo + Math.imul(al0, bl1)) |
0;
25484 mid = (mid + Math.imul(al0, bh1)) |
0;
25485 mid = (mid + Math.imul(ah0, bl1)) |
0;
25486 hi = (hi + Math.imul(ah0, bh1)) |
0;
25487 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25488 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
25491 lo = Math.imul(al2, bl0);
25492 mid = Math.imul(al2, bh0);
25493 mid = (mid + Math.imul(ah2, bl0)) |
0;
25494 hi = Math.imul(ah2, bh0);
25495 lo = (lo + Math.imul(al1, bl1)) |
0;
25496 mid = (mid + Math.imul(al1, bh1)) |
0;
25497 mid = (mid + Math.imul(ah1, bl1)) |
0;
25498 hi = (hi + Math.imul(ah1, bh1)) |
0;
25499 lo = (lo + Math.imul(al0, bl2)) |
0;
25500 mid = (mid + Math.imul(al0, bh2)) |
0;
25501 mid = (mid + Math.imul(ah0, bl2)) |
0;
25502 hi = (hi + Math.imul(ah0, bh2)) |
0;
25503 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25504 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
25507 lo = Math.imul(al3, bl0);
25508 mid = Math.imul(al3, bh0);
25509 mid = (mid + Math.imul(ah3, bl0)) |
0;
25510 hi = Math.imul(ah3, bh0);
25511 lo = (lo + Math.imul(al2, bl1)) |
0;
25512 mid = (mid + Math.imul(al2, bh1)) |
0;
25513 mid = (mid + Math.imul(ah2, bl1)) |
0;
25514 hi = (hi + Math.imul(ah2, bh1)) |
0;
25515 lo = (lo + Math.imul(al1, bl2)) |
0;
25516 mid = (mid + Math.imul(al1, bh2)) |
0;
25517 mid = (mid + Math.imul(ah1, bl2)) |
0;
25518 hi = (hi + Math.imul(ah1, bh2)) |
0;
25519 lo = (lo + Math.imul(al0, bl3)) |
0;
25520 mid = (mid + Math.imul(al0, bh3)) |
0;
25521 mid = (mid + Math.imul(ah0, bl3)) |
0;
25522 hi = (hi + Math.imul(ah0, bh3)) |
0;
25523 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25524 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
25527 lo = Math.imul(al4, bl0);
25528 mid = Math.imul(al4, bh0);
25529 mid = (mid + Math.imul(ah4, bl0)) |
0;
25530 hi = Math.imul(ah4, bh0);
25531 lo = (lo + Math.imul(al3, bl1)) |
0;
25532 mid = (mid + Math.imul(al3, bh1)) |
0;
25533 mid = (mid + Math.imul(ah3, bl1)) |
0;
25534 hi = (hi + Math.imul(ah3, bh1)) |
0;
25535 lo = (lo + Math.imul(al2, bl2)) |
0;
25536 mid = (mid + Math.imul(al2, bh2)) |
0;
25537 mid = (mid + Math.imul(ah2, bl2)) |
0;
25538 hi = (hi + Math.imul(ah2, bh2)) |
0;
25539 lo = (lo + Math.imul(al1, bl3)) |
0;
25540 mid = (mid + Math.imul(al1, bh3)) |
0;
25541 mid = (mid + Math.imul(ah1, bl3)) |
0;
25542 hi = (hi + Math.imul(ah1, bh3)) |
0;
25543 lo = (lo + Math.imul(al0, bl4)) |
0;
25544 mid = (mid + Math.imul(al0, bh4)) |
0;
25545 mid = (mid + Math.imul(ah0, bl4)) |
0;
25546 hi = (hi + Math.imul(ah0, bh4)) |
0;
25547 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25548 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
25551 lo = Math.imul(al5, bl0);
25552 mid = Math.imul(al5, bh0);
25553 mid = (mid + Math.imul(ah5, bl0)) |
0;
25554 hi = Math.imul(ah5, bh0);
25555 lo = (lo + Math.imul(al4, bl1)) |
0;
25556 mid = (mid + Math.imul(al4, bh1)) |
0;
25557 mid = (mid + Math.imul(ah4, bl1)) |
0;
25558 hi = (hi + Math.imul(ah4, bh1)) |
0;
25559 lo = (lo + Math.imul(al3, bl2)) |
0;
25560 mid = (mid + Math.imul(al3, bh2)) |
0;
25561 mid = (mid + Math.imul(ah3, bl2)) |
0;
25562 hi = (hi + Math.imul(ah3, bh2)) |
0;
25563 lo = (lo + Math.imul(al2, bl3)) |
0;
25564 mid = (mid + Math.imul(al2, bh3)) |
0;
25565 mid = (mid + Math.imul(ah2, bl3)) |
0;
25566 hi = (hi + Math.imul(ah2, bh3)) |
0;
25567 lo = (lo + Math.imul(al1, bl4)) |
0;
25568 mid = (mid + Math.imul(al1, bh4)) |
0;
25569 mid = (mid + Math.imul(ah1, bl4)) |
0;
25570 hi = (hi + Math.imul(ah1, bh4)) |
0;
25571 lo = (lo + Math.imul(al0, bl5)) |
0;
25572 mid = (mid + Math.imul(al0, bh5)) |
0;
25573 mid = (mid + Math.imul(ah0, bl5)) |
0;
25574 hi = (hi + Math.imul(ah0, bh5)) |
0;
25575 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25576 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
25579 lo = Math.imul(al6, bl0);
25580 mid = Math.imul(al6, bh0);
25581 mid = (mid + Math.imul(ah6, bl0)) |
0;
25582 hi = Math.imul(ah6, bh0);
25583 lo = (lo + Math.imul(al5, bl1)) |
0;
25584 mid = (mid + Math.imul(al5, bh1)) |
0;
25585 mid = (mid + Math.imul(ah5, bl1)) |
0;
25586 hi = (hi + Math.imul(ah5, bh1)) |
0;
25587 lo = (lo + Math.imul(al4, bl2)) |
0;
25588 mid = (mid + Math.imul(al4, bh2)) |
0;
25589 mid = (mid + Math.imul(ah4, bl2)) |
0;
25590 hi = (hi + Math.imul(ah4, bh2)) |
0;
25591 lo = (lo + Math.imul(al3, bl3)) |
0;
25592 mid = (mid + Math.imul(al3, bh3)) |
0;
25593 mid = (mid + Math.imul(ah3, bl3)) |
0;
25594 hi = (hi + Math.imul(ah3, bh3)) |
0;
25595 lo = (lo + Math.imul(al2, bl4)) |
0;
25596 mid = (mid + Math.imul(al2, bh4)) |
0;
25597 mid = (mid + Math.imul(ah2, bl4)) |
0;
25598 hi = (hi + Math.imul(ah2, bh4)) |
0;
25599 lo = (lo + Math.imul(al1, bl5)) |
0;
25600 mid = (mid + Math.imul(al1, bh5)) |
0;
25601 mid = (mid + Math.imul(ah1, bl5)) |
0;
25602 hi = (hi + Math.imul(ah1, bh5)) |
0;
25603 lo = (lo + Math.imul(al0, bl6)) |
0;
25604 mid = (mid + Math.imul(al0, bh6)) |
0;
25605 mid = (mid + Math.imul(ah0, bl6)) |
0;
25606 hi = (hi + Math.imul(ah0, bh6)) |
0;
25607 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25608 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
25611 lo = Math.imul(al7, bl0);
25612 mid = Math.imul(al7, bh0);
25613 mid = (mid + Math.imul(ah7, bl0)) |
0;
25614 hi = Math.imul(ah7, bh0);
25615 lo = (lo + Math.imul(al6, bl1)) |
0;
25616 mid = (mid + Math.imul(al6, bh1)) |
0;
25617 mid = (mid + Math.imul(ah6, bl1)) |
0;
25618 hi = (hi + Math.imul(ah6, bh1)) |
0;
25619 lo = (lo + Math.imul(al5, bl2)) |
0;
25620 mid = (mid + Math.imul(al5, bh2)) |
0;
25621 mid = (mid + Math.imul(ah5, bl2)) |
0;
25622 hi = (hi + Math.imul(ah5, bh2)) |
0;
25623 lo = (lo + Math.imul(al4, bl3)) |
0;
25624 mid = (mid + Math.imul(al4, bh3)) |
0;
25625 mid = (mid + Math.imul(ah4, bl3)) |
0;
25626 hi = (hi + Math.imul(ah4, bh3)) |
0;
25627 lo = (lo + Math.imul(al3, bl4)) |
0;
25628 mid = (mid + Math.imul(al3, bh4)) |
0;
25629 mid = (mid + Math.imul(ah3, bl4)) |
0;
25630 hi = (hi + Math.imul(ah3, bh4)) |
0;
25631 lo = (lo + Math.imul(al2, bl5)) |
0;
25632 mid = (mid + Math.imul(al2, bh5)) |
0;
25633 mid = (mid + Math.imul(ah2, bl5)) |
0;
25634 hi = (hi + Math.imul(ah2, bh5)) |
0;
25635 lo = (lo + Math.imul(al1, bl6)) |
0;
25636 mid = (mid + Math.imul(al1, bh6)) |
0;
25637 mid = (mid + Math.imul(ah1, bl6)) |
0;
25638 hi = (hi + Math.imul(ah1, bh6)) |
0;
25639 lo = (lo + Math.imul(al0, bl7)) |
0;
25640 mid = (mid + Math.imul(al0, bh7)) |
0;
25641 mid = (mid + Math.imul(ah0, bl7)) |
0;
25642 hi = (hi + Math.imul(ah0, bh7)) |
0;
25643 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25644 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
25647 lo = Math.imul(al8, bl0);
25648 mid = Math.imul(al8, bh0);
25649 mid = (mid + Math.imul(ah8, bl0)) |
0;
25650 hi = Math.imul(ah8, bh0);
25651 lo = (lo + Math.imul(al7, bl1)) |
0;
25652 mid = (mid + Math.imul(al7, bh1)) |
0;
25653 mid = (mid + Math.imul(ah7, bl1)) |
0;
25654 hi = (hi + Math.imul(ah7, bh1)) |
0;
25655 lo = (lo + Math.imul(al6, bl2)) |
0;
25656 mid = (mid + Math.imul(al6, bh2)) |
0;
25657 mid = (mid + Math.imul(ah6, bl2)) |
0;
25658 hi = (hi + Math.imul(ah6, bh2)) |
0;
25659 lo = (lo + Math.imul(al5, bl3)) |
0;
25660 mid = (mid + Math.imul(al5, bh3)) |
0;
25661 mid = (mid + Math.imul(ah5, bl3)) |
0;
25662 hi = (hi + Math.imul(ah5, bh3)) |
0;
25663 lo = (lo + Math.imul(al4, bl4)) |
0;
25664 mid = (mid + Math.imul(al4, bh4)) |
0;
25665 mid = (mid + Math.imul(ah4, bl4)) |
0;
25666 hi = (hi + Math.imul(ah4, bh4)) |
0;
25667 lo = (lo + Math.imul(al3, bl5)) |
0;
25668 mid = (mid + Math.imul(al3, bh5)) |
0;
25669 mid = (mid + Math.imul(ah3, bl5)) |
0;
25670 hi = (hi + Math.imul(ah3, bh5)) |
0;
25671 lo = (lo + Math.imul(al2, bl6)) |
0;
25672 mid = (mid + Math.imul(al2, bh6)) |
0;
25673 mid = (mid + Math.imul(ah2, bl6)) |
0;
25674 hi = (hi + Math.imul(ah2, bh6)) |
0;
25675 lo = (lo + Math.imul(al1, bl7)) |
0;
25676 mid = (mid + Math.imul(al1, bh7)) |
0;
25677 mid = (mid + Math.imul(ah1, bl7)) |
0;
25678 hi = (hi + Math.imul(ah1, bh7)) |
0;
25679 lo = (lo + Math.imul(al0, bl8)) |
0;
25680 mid = (mid + Math.imul(al0, bh8)) |
0;
25681 mid = (mid + Math.imul(ah0, bl8)) |
0;
25682 hi = (hi + Math.imul(ah0, bh8)) |
0;
25683 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25684 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
25687 lo = Math.imul(al9, bl0);
25688 mid = Math.imul(al9, bh0);
25689 mid = (mid + Math.imul(ah9, bl0)) |
0;
25690 hi = Math.imul(ah9, bh0);
25691 lo = (lo + Math.imul(al8, bl1)) |
0;
25692 mid = (mid + Math.imul(al8, bh1)) |
0;
25693 mid = (mid + Math.imul(ah8, bl1)) |
0;
25694 hi = (hi + Math.imul(ah8, bh1)) |
0;
25695 lo = (lo + Math.imul(al7, bl2)) |
0;
25696 mid = (mid + Math.imul(al7, bh2)) |
0;
25697 mid = (mid + Math.imul(ah7, bl2)) |
0;
25698 hi = (hi + Math.imul(ah7, bh2)) |
0;
25699 lo = (lo + Math.imul(al6, bl3)) |
0;
25700 mid = (mid + Math.imul(al6, bh3)) |
0;
25701 mid = (mid + Math.imul(ah6, bl3)) |
0;
25702 hi = (hi + Math.imul(ah6, bh3)) |
0;
25703 lo = (lo + Math.imul(al5, bl4)) |
0;
25704 mid = (mid + Math.imul(al5, bh4)) |
0;
25705 mid = (mid + Math.imul(ah5, bl4)) |
0;
25706 hi = (hi + Math.imul(ah5, bh4)) |
0;
25707 lo = (lo + Math.imul(al4, bl5)) |
0;
25708 mid = (mid + Math.imul(al4, bh5)) |
0;
25709 mid = (mid + Math.imul(ah4, bl5)) |
0;
25710 hi = (hi + Math.imul(ah4, bh5)) |
0;
25711 lo = (lo + Math.imul(al3, bl6)) |
0;
25712 mid = (mid + Math.imul(al3, bh6)) |
0;
25713 mid = (mid + Math.imul(ah3, bl6)) |
0;
25714 hi = (hi + Math.imul(ah3, bh6)) |
0;
25715 lo = (lo + Math.imul(al2, bl7)) |
0;
25716 mid = (mid + Math.imul(al2, bh7)) |
0;
25717 mid = (mid + Math.imul(ah2, bl7)) |
0;
25718 hi = (hi + Math.imul(ah2, bh7)) |
0;
25719 lo = (lo + Math.imul(al1, bl8)) |
0;
25720 mid = (mid + Math.imul(al1, bh8)) |
0;
25721 mid = (mid + Math.imul(ah1, bl8)) |
0;
25722 hi = (hi + Math.imul(ah1, bh8)) |
0;
25723 lo = (lo + Math.imul(al0, bl9)) |
0;
25724 mid = (mid + Math.imul(al0, bh9)) |
0;
25725 mid = (mid + Math.imul(ah0, bl9)) |
0;
25726 hi = (hi + Math.imul(ah0, bh9)) |
0;
25727 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25728 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
25731 lo = Math.imul(al9, bl1);
25732 mid = Math.imul(al9, bh1);
25733 mid = (mid + Math.imul(ah9, bl1)) |
0;
25734 hi = Math.imul(ah9, bh1);
25735 lo = (lo + Math.imul(al8, bl2)) |
0;
25736 mid = (mid + Math.imul(al8, bh2)) |
0;
25737 mid = (mid + Math.imul(ah8, bl2)) |
0;
25738 hi = (hi + Math.imul(ah8, bh2)) |
0;
25739 lo = (lo + Math.imul(al7, bl3)) |
0;
25740 mid = (mid + Math.imul(al7, bh3)) |
0;
25741 mid = (mid + Math.imul(ah7, bl3)) |
0;
25742 hi = (hi + Math.imul(ah7, bh3)) |
0;
25743 lo = (lo + Math.imul(al6, bl4)) |
0;
25744 mid = (mid + Math.imul(al6, bh4)) |
0;
25745 mid = (mid + Math.imul(ah6, bl4)) |
0;
25746 hi = (hi + Math.imul(ah6, bh4)) |
0;
25747 lo = (lo + Math.imul(al5, bl5)) |
0;
25748 mid = (mid + Math.imul(al5, bh5)) |
0;
25749 mid = (mid + Math.imul(ah5, bl5)) |
0;
25750 hi = (hi + Math.imul(ah5, bh5)) |
0;
25751 lo = (lo + Math.imul(al4, bl6)) |
0;
25752 mid = (mid + Math.imul(al4, bh6)) |
0;
25753 mid = (mid + Math.imul(ah4, bl6)) |
0;
25754 hi = (hi + Math.imul(ah4, bh6)) |
0;
25755 lo = (lo + Math.imul(al3, bl7)) |
0;
25756 mid = (mid + Math.imul(al3, bh7)) |
0;
25757 mid = (mid + Math.imul(ah3, bl7)) |
0;
25758 hi = (hi + Math.imul(ah3, bh7)) |
0;
25759 lo = (lo + Math.imul(al2, bl8)) |
0;
25760 mid = (mid + Math.imul(al2, bh8)) |
0;
25761 mid = (mid + Math.imul(ah2, bl8)) |
0;
25762 hi = (hi + Math.imul(ah2, bh8)) |
0;
25763 lo = (lo + Math.imul(al1, bl9)) |
0;
25764 mid = (mid + Math.imul(al1, bh9)) |
0;
25765 mid = (mid + Math.imul(ah1, bl9)) |
0;
25766 hi = (hi + Math.imul(ah1, bh9)) |
0;
25767 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25768 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
25771 lo = Math.imul(al9, bl2);
25772 mid = Math.imul(al9, bh2);
25773 mid = (mid + Math.imul(ah9, bl2)) |
0;
25774 hi = Math.imul(ah9, bh2);
25775 lo = (lo + Math.imul(al8, bl3)) |
0;
25776 mid = (mid + Math.imul(al8, bh3)) |
0;
25777 mid = (mid + Math.imul(ah8, bl3)) |
0;
25778 hi = (hi + Math.imul(ah8, bh3)) |
0;
25779 lo = (lo + Math.imul(al7, bl4)) |
0;
25780 mid = (mid + Math.imul(al7, bh4)) |
0;
25781 mid = (mid + Math.imul(ah7, bl4)) |
0;
25782 hi = (hi + Math.imul(ah7, bh4)) |
0;
25783 lo = (lo + Math.imul(al6, bl5)) |
0;
25784 mid = (mid + Math.imul(al6, bh5)) |
0;
25785 mid = (mid + Math.imul(ah6, bl5)) |
0;
25786 hi = (hi + Math.imul(ah6, bh5)) |
0;
25787 lo = (lo + Math.imul(al5, bl6)) |
0;
25788 mid = (mid + Math.imul(al5, bh6)) |
0;
25789 mid = (mid + Math.imul(ah5, bl6)) |
0;
25790 hi = (hi + Math.imul(ah5, bh6)) |
0;
25791 lo = (lo + Math.imul(al4, bl7)) |
0;
25792 mid = (mid + Math.imul(al4, bh7)) |
0;
25793 mid = (mid + Math.imul(ah4, bl7)) |
0;
25794 hi = (hi + Math.imul(ah4, bh7)) |
0;
25795 lo = (lo + Math.imul(al3, bl8)) |
0;
25796 mid = (mid + Math.imul(al3, bh8)) |
0;
25797 mid = (mid + Math.imul(ah3, bl8)) |
0;
25798 hi = (hi + Math.imul(ah3, bh8)) |
0;
25799 lo = (lo + Math.imul(al2, bl9)) |
0;
25800 mid = (mid + Math.imul(al2, bh9)) |
0;
25801 mid = (mid + Math.imul(ah2, bl9)) |
0;
25802 hi = (hi + Math.imul(ah2, bh9)) |
0;
25803 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25804 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
25807 lo = Math.imul(al9, bl3);
25808 mid = Math.imul(al9, bh3);
25809 mid = (mid + Math.imul(ah9, bl3)) |
0;
25810 hi = Math.imul(ah9, bh3);
25811 lo = (lo + Math.imul(al8, bl4)) |
0;
25812 mid = (mid + Math.imul(al8, bh4)) |
0;
25813 mid = (mid + Math.imul(ah8, bl4)) |
0;
25814 hi = (hi + Math.imul(ah8, bh4)) |
0;
25815 lo = (lo + Math.imul(al7, bl5)) |
0;
25816 mid = (mid + Math.imul(al7, bh5)) |
0;
25817 mid = (mid + Math.imul(ah7, bl5)) |
0;
25818 hi = (hi + Math.imul(ah7, bh5)) |
0;
25819 lo = (lo + Math.imul(al6, bl6)) |
0;
25820 mid = (mid + Math.imul(al6, bh6)) |
0;
25821 mid = (mid + Math.imul(ah6, bl6)) |
0;
25822 hi = (hi + Math.imul(ah6, bh6)) |
0;
25823 lo = (lo + Math.imul(al5, bl7)) |
0;
25824 mid = (mid + Math.imul(al5, bh7)) |
0;
25825 mid = (mid + Math.imul(ah5, bl7)) |
0;
25826 hi = (hi + Math.imul(ah5, bh7)) |
0;
25827 lo = (lo + Math.imul(al4, bl8)) |
0;
25828 mid = (mid + Math.imul(al4, bh8)) |
0;
25829 mid = (mid + Math.imul(ah4, bl8)) |
0;
25830 hi = (hi + Math.imul(ah4, bh8)) |
0;
25831 lo = (lo + Math.imul(al3, bl9)) |
0;
25832 mid = (mid + Math.imul(al3, bh9)) |
0;
25833 mid = (mid + Math.imul(ah3, bl9)) |
0;
25834 hi = (hi + Math.imul(ah3, bh9)) |
0;
25835 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25836 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
25839 lo = Math.imul(al9, bl4);
25840 mid = Math.imul(al9, bh4);
25841 mid = (mid + Math.imul(ah9, bl4)) |
0;
25842 hi = Math.imul(ah9, bh4);
25843 lo = (lo + Math.imul(al8, bl5)) |
0;
25844 mid = (mid + Math.imul(al8, bh5)) |
0;
25845 mid = (mid + Math.imul(ah8, bl5)) |
0;
25846 hi = (hi + Math.imul(ah8, bh5)) |
0;
25847 lo = (lo + Math.imul(al7, bl6)) |
0;
25848 mid = (mid + Math.imul(al7, bh6)) |
0;
25849 mid = (mid + Math.imul(ah7, bl6)) |
0;
25850 hi = (hi + Math.imul(ah7, bh6)) |
0;
25851 lo = (lo + Math.imul(al6, bl7)) |
0;
25852 mid = (mid + Math.imul(al6, bh7)) |
0;
25853 mid = (mid + Math.imul(ah6, bl7)) |
0;
25854 hi = (hi + Math.imul(ah6, bh7)) |
0;
25855 lo = (lo + Math.imul(al5, bl8)) |
0;
25856 mid = (mid + Math.imul(al5, bh8)) |
0;
25857 mid = (mid + Math.imul(ah5, bl8)) |
0;
25858 hi = (hi + Math.imul(ah5, bh8)) |
0;
25859 lo = (lo + Math.imul(al4, bl9)) |
0;
25860 mid = (mid + Math.imul(al4, bh9)) |
0;
25861 mid = (mid + Math.imul(ah4, bl9)) |
0;
25862 hi = (hi + Math.imul(ah4, bh9)) |
0;
25863 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25864 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
25867 lo = Math.imul(al9, bl5);
25868 mid = Math.imul(al9, bh5);
25869 mid = (mid + Math.imul(ah9, bl5)) |
0;
25870 hi = Math.imul(ah9, bh5);
25871 lo = (lo + Math.imul(al8, bl6)) |
0;
25872 mid = (mid + Math.imul(al8, bh6)) |
0;
25873 mid = (mid + Math.imul(ah8, bl6)) |
0;
25874 hi = (hi + Math.imul(ah8, bh6)) |
0;
25875 lo = (lo + Math.imul(al7, bl7)) |
0;
25876 mid = (mid + Math.imul(al7, bh7)) |
0;
25877 mid = (mid + Math.imul(ah7, bl7)) |
0;
25878 hi = (hi + Math.imul(ah7, bh7)) |
0;
25879 lo = (lo + Math.imul(al6, bl8)) |
0;
25880 mid = (mid + Math.imul(al6, bh8)) |
0;
25881 mid = (mid + Math.imul(ah6, bl8)) |
0;
25882 hi = (hi + Math.imul(ah6, bh8)) |
0;
25883 lo = (lo + Math.imul(al5, bl9)) |
0;
25884 mid = (mid + Math.imul(al5, bh9)) |
0;
25885 mid = (mid + Math.imul(ah5, bl9)) |
0;
25886 hi = (hi + Math.imul(ah5, bh9)) |
0;
25887 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25888 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
25891 lo = Math.imul(al9, bl6);
25892 mid = Math.imul(al9, bh6);
25893 mid = (mid + Math.imul(ah9, bl6)) |
0;
25894 hi = Math.imul(ah9, bh6);
25895 lo = (lo + Math.imul(al8, bl7)) |
0;
25896 mid = (mid + Math.imul(al8, bh7)) |
0;
25897 mid = (mid + Math.imul(ah8, bl7)) |
0;
25898 hi = (hi + Math.imul(ah8, bh7)) |
0;
25899 lo = (lo + Math.imul(al7, bl8)) |
0;
25900 mid = (mid + Math.imul(al7, bh8)) |
0;
25901 mid = (mid + Math.imul(ah7, bl8)) |
0;
25902 hi = (hi + Math.imul(ah7, bh8)) |
0;
25903 lo = (lo + Math.imul(al6, bl9)) |
0;
25904 mid = (mid + Math.imul(al6, bh9)) |
0;
25905 mid = (mid + Math.imul(ah6, bl9)) |
0;
25906 hi = (hi + Math.imul(ah6, bh9)) |
0;
25907 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25908 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
25911 lo = Math.imul(al9, bl7);
25912 mid = Math.imul(al9, bh7);
25913 mid = (mid + Math.imul(ah9, bl7)) |
0;
25914 hi = Math.imul(ah9, bh7);
25915 lo = (lo + Math.imul(al8, bl8)) |
0;
25916 mid = (mid + Math.imul(al8, bh8)) |
0;
25917 mid = (mid + Math.imul(ah8, bl8)) |
0;
25918 hi = (hi + Math.imul(ah8, bh8)) |
0;
25919 lo = (lo + Math.imul(al7, bl9)) |
0;
25920 mid = (mid + Math.imul(al7, bh9)) |
0;
25921 mid = (mid + Math.imul(ah7, bl9)) |
0;
25922 hi = (hi + Math.imul(ah7, bh9)) |
0;
25923 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25924 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
25927 lo = Math.imul(al9, bl8);
25928 mid = Math.imul(al9, bh8);
25929 mid = (mid + Math.imul(ah9, bl8)) |
0;
25930 hi = Math.imul(ah9, bh8);
25931 lo = (lo + Math.imul(al8, bl9)) |
0;
25932 mid = (mid + Math.imul(al8, bh9)) |
0;
25933 mid = (mid + Math.imul(ah8, bl9)) |
0;
25934 hi = (hi + Math.imul(ah8, bh9)) |
0;
25935 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25936 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
25939 lo = Math.imul(al9, bl9);
25940 mid = Math.imul(al9, bh9);
25941 mid = (mid + Math.imul(ah9, bl9)) |
0;
25942 hi = Math.imul(ah9, bh9);
25943 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25944 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
25974 comb10MulTo = smallMulTo;
25977 function bigMulTo (self, num, out) {
25978 out.negative = num.negative ^ self.negative;
25979 out.length = self.length + num.length;
25983 for (var k =
0; k < out.length -
1; k++) {
25984 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
25985 // note that ncarry could be
>=
0x3ffffff
25986 var ncarry = hncarry;
25988 var rword = carry &
0x3ffffff;
25989 var maxJ = Math.min(k, num.length -
1);
25990 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
25992 var a = self.words[i] |
0;
25993 var b = num.words[j] |
0;
25996 var lo = r &
0x3ffffff;
25997 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
25998 lo = (lo + rword) |
0;
25999 rword = lo &
0x3ffffff;
26000 ncarry = (ncarry + (lo
>>> 26)) |
0;
26002 hncarry += ncarry
>>> 26;
26003 ncarry &=
0x3ffffff;
26005 out.words[k] = rword;
26010 out.words[k] = carry;
26015 return out.strip();
26018 function jumboMulTo (self, num, out) {
26019 var fftm = new FFTM();
26020 return fftm.mulp(self, num, out);
26023 BN.prototype.mulTo = function mulTo (num, out) {
26025 var len = this.length + num.length;
26026 if (this.length ===
10 && num.length ===
10) {
26027 res = comb10MulTo(this, num, out);
26028 } else if (len <
63) {
26029 res = smallMulTo(this, num, out);
26030 } else if (len <
1024) {
26031 res = bigMulTo(this, num, out);
26033 res = jumboMulTo(this, num, out);
26039 // Cooley-Tukey algorithm for FFT
26040 // slightly revisited to rely on looping instead of recursion
26042 function FFTM (x, y) {
26047 FFTM.prototype.makeRBT = function makeRBT (N) {
26048 var t = new Array(N);
26049 var l = BN.prototype._countBits(N) -
1;
26050 for (var i =
0; i < N; i++) {
26051 t[i] = this.revBin(i, l, N);
26057 // Returns binary-reversed representation of `x`
26058 FFTM.prototype.revBin = function revBin (x, l, N) {
26059 if (x ===
0 || x === N -
1) return x;
26062 for (var i =
0; i < l; i++) {
26063 rb |= (x &
1) << (l - i -
1);
26070 // Performs "tweedling" phase, therefore 'emulating'
26071 // behaviour of the recursive algorithm
26072 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
26073 for (var i =
0; i < N; i++) {
26074 rtws[i] = rws[rbt[i]];
26075 itws[i] = iws[rbt[i]];
26079 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
26080 this.permute(rbt, rws, iws, rtws, itws, N);
26082 for (var s =
1; s < N; s <<=
1) {
26085 var rtwdf = Math.cos(
2 * Math.PI / l);
26086 var itwdf = Math.sin(
2 * Math.PI / l);
26088 for (var p =
0; p < N; p += l) {
26089 var rtwdf_ = rtwdf;
26090 var itwdf_ = itwdf;
26092 for (var j =
0; j < s; j++) {
26093 var re = rtws[p + j];
26094 var ie = itws[p + j];
26096 var ro = rtws[p + j + s];
26097 var io = itws[p + j + s];
26099 var rx = rtwdf_ * ro - itwdf_ * io;
26101 io = rtwdf_ * io + itwdf_ * ro;
26104 rtws[p + j] = re + ro;
26105 itws[p + j] = ie + io;
26107 rtws[p + j + s] = re - ro;
26108 itws[p + j + s] = ie - io;
26110 /* jshint maxdepth : false */
26112 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
26114 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
26122 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
26123 var N = Math.max(m, n) |
1;
26126 for (N = N /
2 |
0; N; N = N
>>> 1) {
26130 return
1 << i +
1 + odd;
26133 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
26134 if (N <=
1) return;
26136 for (var i =
0; i < N /
2; i++) {
26139 rws[i] = rws[N - i -
1];
26140 rws[N - i -
1] = t;
26144 iws[i] = -iws[N - i -
1];
26145 iws[N - i -
1] = -t;
26149 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
26151 for (var i =
0; i < N /
2; i++) {
26152 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
26153 Math.round(ws[
2 * i] / N) +
26156 ws[i] = w &
0x3ffffff;
26158 if (w <
0x4000000) {
26161 carry = w /
0x4000000 |
0;
26168 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
26170 for (var i =
0; i < len; i++) {
26171 carry = carry + (ws[i] |
0);
26173 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
26174 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
26178 for (i =
2 * len; i < N; ++i) {
26182 assert(carry ===
0);
26183 assert((carry & ~
0x1fff) ===
0);
26186 FFTM.prototype.stub = function stub (N) {
26187 var ph = new Array(N);
26188 for (var i =
0; i < N; i++) {
26195 FFTM.prototype.mulp = function mulp (x, y, out) {
26196 var N =
2 * this.guessLen13b(x.length, y.length);
26198 var rbt = this.makeRBT(N);
26200 var _ = this.stub(N);
26202 var rws = new Array(N);
26203 var rwst = new Array(N);
26204 var iwst = new Array(N);
26206 var nrws = new Array(N);
26207 var nrwst = new Array(N);
26208 var niwst = new Array(N);
26210 var rmws = out.words;
26213 this.convert13b(x.words, x.length, rws, N);
26214 this.convert13b(y.words, y.length, nrws, N);
26216 this.transform(rws, _, rwst, iwst, N, rbt);
26217 this.transform(nrws, _, nrwst, niwst, N, rbt);
26219 for (var i =
0; i < N; i++) {
26220 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
26221 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
26225 this.conjugate(rwst, iwst, N);
26226 this.transform(rwst, iwst, rmws, _, N, rbt);
26227 this.conjugate(rmws, _, N);
26228 this.normalize13b(rmws, N);
26230 out.negative = x.negative ^ y.negative;
26231 out.length = x.length + y.length;
26232 return out.strip();
26235 // Multiply `this` by `num`
26236 BN.prototype.mul = function mul (num) {
26237 var out = new BN(null);
26238 out.words = new Array(this.length + num.length);
26239 return this.mulTo(num, out);
26242 // Multiply employing FFT
26243 BN.prototype.mulf = function mulf (num) {
26244 var out = new BN(null);
26245 out.words = new Array(this.length + num.length);
26246 return jumboMulTo(this, num, out);
26249 // In-place Multiplication
26250 BN.prototype.imul = function imul (num) {
26251 return this.clone().mulTo(num, this);
26254 BN.prototype.imuln = function imuln (num) {
26255 assert(typeof num === 'number');
26256 assert(num <
0x4000000);
26260 for (var i =
0; i < this.length; i++) {
26261 var w = (this.words[i] |
0) * num;
26262 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
26264 carry += (w /
0x4000000) |
0;
26265 // NOTE: lo is
27bit maximum
26266 carry += lo
>>> 26;
26267 this.words[i] = lo &
0x3ffffff;
26271 this.words[i] = carry;
26278 BN.prototype.muln = function muln (num) {
26279 return this.clone().imuln(num);
26283 BN.prototype.sqr = function sqr () {
26284 return this.mul(this);
26287 // `this` * `this` in-place
26288 BN.prototype.isqr = function isqr () {
26289 return this.imul(this.clone());
26292 // Math.pow(`this`, `num`)
26293 BN.prototype.pow = function pow (num) {
26294 var w = toBitArray(num);
26295 if (w.length ===
0) return new BN(
1);
26297 // Skip leading zeroes
26299 for (var i =
0; i < w.length; i++, res = res.sqr()) {
26300 if (w[i] !==
0) break;
26303 if (++i < w.length) {
26304 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
26305 if (w[i] ===
0) continue;
26314 // Shift-left in-place
26315 BN.prototype.iushln = function iushln (bits) {
26316 assert(typeof bits === 'number' && bits
>=
0);
26318 var s = (bits - r) /
26;
26319 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
26325 for (i =
0; i < this.length; i++) {
26326 var newCarry = this.words[i] & carryMask;
26327 var c = ((this.words[i] |
0) - newCarry) << r;
26328 this.words[i] = c | carry;
26329 carry = newCarry
>>> (
26 - r);
26333 this.words[i] = carry;
26339 for (i = this.length -
1; i
>=
0; i--) {
26340 this.words[i + s] = this.words[i];
26343 for (i =
0; i < s; i++) {
26350 return this.strip();
26353 BN.prototype.ishln = function ishln (bits) {
26354 // TODO(indutny): implement me
26355 assert(this.negative ===
0);
26356 return this.iushln(bits);
26359 // Shift-right in-place
26360 // NOTE: `hint` is a lowest bit before trailing zeroes
26361 // NOTE: if `extended` is present - it will be filled with destroyed bits
26362 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
26363 assert(typeof bits === 'number' && bits
>=
0);
26366 h = (hint - (hint %
26)) /
26;
26372 var s = Math.min((bits - r) /
26, this.length);
26373 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26374 var maskedWords = extended;
26377 h = Math.max(
0, h);
26379 // Extended mode, copy masked part
26381 for (var i =
0; i < s; i++) {
26382 maskedWords.words[i] = this.words[i];
26384 maskedWords.length = s;
26388 // No-op, we should not move anything at all
26389 } else if (this.length
> s) {
26391 for (i =
0; i < this.length; i++) {
26392 this.words[i] = this.words[i + s];
26400 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
26401 var word = this.words[i] |
0;
26402 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
26403 carry = word & mask;
26406 // Push carried bits as a mask
26407 if (maskedWords && carry !==
0) {
26408 maskedWords.words[maskedWords.length++] = carry;
26411 if (this.length ===
0) {
26416 return this.strip();
26419 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
26420 // TODO(indutny): implement me
26421 assert(this.negative ===
0);
26422 return this.iushrn(bits, hint, extended);
26426 BN.prototype.shln = function shln (bits) {
26427 return this.clone().ishln(bits);
26430 BN.prototype.ushln = function ushln (bits) {
26431 return this.clone().iushln(bits);
26435 BN.prototype.shrn = function shrn (bits) {
26436 return this.clone().ishrn(bits);
26439 BN.prototype.ushrn = function ushrn (bits) {
26440 return this.clone().iushrn(bits);
26443 // Test if n bit is set
26444 BN.prototype.testn = function testn (bit) {
26445 assert(typeof bit === 'number' && bit
>=
0);
26447 var s = (bit - r) /
26;
26450 // Fast case: bit is much higher than all existing words
26451 if (this.length <= s) return false;
26453 // Check bit and return
26454 var w = this.words[s];
26459 // Return only lowers bits of number (in-place)
26460 BN.prototype.imaskn = function imaskn (bits) {
26461 assert(typeof bits === 'number' && bits
>=
0);
26463 var s = (bits - r) /
26;
26465 assert(this.negative ===
0, 'imaskn works only with positive numbers');
26467 if (this.length <= s) {
26474 this.length = Math.min(s, this.length);
26477 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26478 this.words[this.length -
1] &= mask;
26481 return this.strip();
26484 // Return only lowers bits of number
26485 BN.prototype.maskn = function maskn (bits) {
26486 return this.clone().imaskn(bits);
26489 // Add plain number `num` to `this`
26490 BN.prototype.iaddn = function iaddn (num) {
26491 assert(typeof num === 'number');
26492 assert(num <
0x4000000);
26493 if (num <
0) return this.isubn(-num);
26495 // Possible sign change
26496 if (this.negative !==
0) {
26497 if (this.length ===
1 && (this.words[
0] |
0) < num) {
26498 this.words[
0] = num - (this.words[
0] |
0);
26509 // Add without checks
26510 return this._iaddn(num);
26513 BN.prototype._iaddn = function _iaddn (num) {
26514 this.words[
0] += num;
26517 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
26518 this.words[i] -=
0x4000000;
26519 if (i === this.length -
1) {
26520 this.words[i +
1] =
1;
26522 this.words[i +
1]++;
26525 this.length = Math.max(this.length, i +
1);
26530 // Subtract plain number `num` from `this`
26531 BN.prototype.isubn = function isubn (num) {
26532 assert(typeof num === 'number');
26533 assert(num <
0x4000000);
26534 if (num <
0) return this.iaddn(-num);
26536 if (this.negative !==
0) {
26543 this.words[
0] -= num;
26545 if (this.length ===
1 && this.words[
0] <
0) {
26546 this.words[
0] = -this.words[
0];
26550 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
26551 this.words[i] +=
0x4000000;
26552 this.words[i +
1] -=
1;
26556 return this.strip();
26559 BN.prototype.addn = function addn (num) {
26560 return this.clone().iaddn(num);
26563 BN.prototype.subn = function subn (num) {
26564 return this.clone().isubn(num);
26567 BN.prototype.iabs = function iabs () {
26573 BN.prototype.abs = function abs () {
26574 return this.clone().iabs();
26577 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
26578 var len = num.length + shift;
26585 for (i =
0; i < num.length; i++) {
26586 w = (this.words[i + shift] |
0) + carry;
26587 var right = (num.words[i] |
0) * mul;
26588 w -= right &
0x3ffffff;
26589 carry = (w
>> 26) - ((right /
0x4000000) |
0);
26590 this.words[i + shift] = w &
0x3ffffff;
26592 for (; i < this.length - shift; i++) {
26593 w = (this.words[i + shift] |
0) + carry;
26595 this.words[i + shift] = w &
0x3ffffff;
26598 if (carry ===
0) return this.strip();
26600 // Subtraction overflow
26601 assert(carry === -
1);
26603 for (i =
0; i < this.length; i++) {
26604 w = -(this.words[i] |
0) + carry;
26606 this.words[i] = w &
0x3ffffff;
26610 return this.strip();
26613 BN.prototype._wordDiv = function _wordDiv (num, mode) {
26614 var shift = this.length - num.length;
26616 var a = this.clone();
26620 var bhi = b.words[b.length -
1] |
0;
26621 var bhiBits = this._countBits(bhi);
26622 shift =
26 - bhiBits;
26624 b = b.ushln(shift);
26626 bhi = b.words[b.length -
1] |
0;
26629 // Initialize quotient
26630 var m = a.length - b.length;
26633 if (mode !== 'mod') {
26636 q.words = new Array(q.length);
26637 for (var i =
0; i < q.length; i++) {
26642 var diff = a.clone()._ishlnsubmul(b,
1, m);
26643 if (diff.negative ===
0) {
26650 for (var j = m -
1; j
>=
0; j--) {
26651 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
26652 (a.words[b.length + j -
1] |
0);
26654 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
26656 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
26658 a._ishlnsubmul(b, qj, j);
26659 while (a.negative !==
0) {
26662 a._ishlnsubmul(b,
1, j);
26677 if (mode !== 'div' && shift !==
0) {
26687 // NOTE:
1) `mode` can be set to `mod` to request mod only,
26688 // to `div` to request div only, or be absent to
26689 // request both div & mod
26690 //
2) `positive` is true if unsigned mod is requested
26691 BN.prototype.divmod = function divmod (num, mode, positive) {
26692 assert(!num.isZero());
26694 if (this.isZero()) {
26702 if (this.negative !==
0 && num.negative ===
0) {
26703 res = this.neg().divmod(num, mode);
26705 if (mode !== 'mod') {
26706 div = res.div.neg();
26709 if (mode !== 'div') {
26710 mod = res.mod.neg();
26711 if (positive && mod.negative !==
0) {
26722 if (this.negative ===
0 && num.negative !==
0) {
26723 res = this.divmod(num.neg(), mode);
26725 if (mode !== 'mod') {
26726 div = res.div.neg();
26735 if ((this.negative & num.negative) !==
0) {
26736 res = this.neg().divmod(num.neg(), mode);
26738 if (mode !== 'div') {
26739 mod = res.mod.neg();
26740 if (positive && mod.negative !==
0) {
26751 // Both numbers are positive at this point
26753 // Strip both numbers to approximate shift value
26754 if (num.length
> this.length || this.cmp(num) <
0) {
26761 // Very short reduction
26762 if (num.length ===
1) {
26763 if (mode === 'div') {
26765 div: this.divn(num.words[
0]),
26770 if (mode === 'mod') {
26773 mod: new BN(this.modn(num.words[
0]))
26778 div: this.divn(num.words[
0]),
26779 mod: new BN(this.modn(num.words[
0]))
26783 return this._wordDiv(num, mode);
26786 // Find `this` / `num`
26787 BN.prototype.div = function div (num) {
26788 return this.divmod(num, 'div', false).div;
26791 // Find `this` % `num`
26792 BN.prototype.mod = function mod (num) {
26793 return this.divmod(num, 'mod', false).mod;
26796 BN.prototype.umod = function umod (num) {
26797 return this.divmod(num, 'mod', true).mod;
26800 // Find Round(`this` / `num`)
26801 BN.prototype.divRound = function divRound (num) {
26802 var dm = this.divmod(num);
26804 // Fast case - exact division
26805 if (dm.mod.isZero()) return dm.div;
26807 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
26809 var half = num.ushrn(
1);
26810 var r2 = num.andln(
1);
26811 var cmp = mod.cmp(half);
26814 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
26817 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
26820 BN.prototype.modn = function modn (num) {
26821 assert(num <=
0x3ffffff);
26822 var p = (
1 <<
26) % num;
26825 for (var i = this.length -
1; i
>=
0; i--) {
26826 acc = (p * acc + (this.words[i] |
0)) % num;
26832 // In-place division by number
26833 BN.prototype.idivn = function idivn (num) {
26834 assert(num <=
0x3ffffff);
26837 for (var i = this.length -
1; i
>=
0; i--) {
26838 var w = (this.words[i] |
0) + carry *
0x4000000;
26839 this.words[i] = (w / num) |
0;
26843 return this.strip();
26846 BN.prototype.divn = function divn (num) {
26847 return this.clone().idivn(num);
26850 BN.prototype.egcd = function egcd (p) {
26851 assert(p.negative ===
0);
26852 assert(!p.isZero());
26857 if (x.negative !==
0) {
26863 // A * x + B * y = x
26867 // C * x + D * y = y
26873 while (x.isEven() && y.isEven()) {
26879 var yp = y.clone();
26880 var xp = x.clone();
26882 while (!x.isZero()) {
26883 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
26887 if (A.isOdd() || B.isOdd()) {
26897 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
26901 if (C.isOdd() || D.isOdd()) {
26911 if (x.cmp(y)
>=
0) {
26929 // This is reduced incarnation of the binary EEA
26930 // above, designated to invert members of the
26931 // _prime_ fields F(p) at a maximal speed
26932 BN.prototype._invmp = function _invmp (p) {
26933 assert(p.negative ===
0);
26934 assert(!p.isZero());
26939 if (a.negative !==
0) {
26945 var x1 = new BN(
1);
26946 var x2 = new BN(
0);
26948 var delta = b.clone();
26950 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
26951 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
26963 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
26975 if (a.cmp(b)
>=
0) {
26985 if (a.cmpn(
1) ===
0) {
26991 if (res.cmpn(
0) <
0) {
26998 BN.prototype.gcd = function gcd (num) {
26999 if (this.isZero()) return num.abs();
27000 if (num.isZero()) return this.abs();
27002 var a = this.clone();
27003 var b = num.clone();
27007 // Remove common factor of two
27008 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
27014 while (a.isEven()) {
27017 while (b.isEven()) {
27023 // Swap `a` and `b` to make `a` always bigger than `b`
27027 } else if (r ===
0 || b.cmpn(
1) ===
0) {
27034 return b.iushln(shift);
27037 // Invert number in the field F(num)
27038 BN.prototype.invm = function invm (num) {
27039 return this.egcd(num).a.umod(num);
27042 BN.prototype.isEven = function isEven () {
27043 return (this.words[
0] &
1) ===
0;
27046 BN.prototype.isOdd = function isOdd () {
27047 return (this.words[
0] &
1) ===
1;
27050 // And first word and num
27051 BN.prototype.andln = function andln (num) {
27052 return this.words[
0] & num;
27055 // Increment at the bit position in-line
27056 BN.prototype.bincn = function bincn (bit) {
27057 assert(typeof bit === 'number');
27059 var s = (bit - r) /
26;
27062 // Fast case: bit is much higher than all existing words
27063 if (this.length <= s) {
27064 this._expand(s +
1);
27065 this.words[s] |= q;
27069 // Add bit and propagate, if needed
27071 for (var i = s; carry !==
0 && i < this.length; i++) {
27072 var w = this.words[i] |
0;
27079 this.words[i] = carry;
27085 BN.prototype.isZero = function isZero () {
27086 return this.length ===
1 && this.words[
0] ===
0;
27089 BN.prototype.cmpn = function cmpn (num) {
27090 var negative = num <
0;
27092 if (this.negative !==
0 && !negative) return -
1;
27093 if (this.negative ===
0 && negative) return
1;
27098 if (this.length
> 1) {
27105 assert(num <=
0x3ffffff, 'Number is too big');
27107 var w = this.words[
0] |
0;
27108 res = w === num ?
0 : w < num ? -
1 :
1;
27110 if (this.negative !==
0) return -res |
0;
27114 // Compare two numbers and return:
27115 //
1 - if `this`
> `num`
27116 //
0 - if `this` == `num`
27117 // -
1 - if `this` < `num`
27118 BN.prototype.cmp = function cmp (num) {
27119 if (this.negative !==
0 && num.negative ===
0) return -
1;
27120 if (this.negative ===
0 && num.negative !==
0) return
1;
27122 var res = this.ucmp(num);
27123 if (this.negative !==
0) return -res |
0;
27127 // Unsigned comparison
27128 BN.prototype.ucmp = function ucmp (num) {
27129 // At this point both numbers have the same sign
27130 if (this.length
> num.length) return
1;
27131 if (this.length < num.length) return -
1;
27134 for (var i = this.length -
1; i
>=
0; i--) {
27135 var a = this.words[i] |
0;
27136 var b = num.words[i] |
0;
27138 if (a === b) continue;
27141 } else if (a
> b) {
27149 BN.prototype.gtn = function gtn (num) {
27150 return this.cmpn(num) ===
1;
27153 BN.prototype.gt = function gt (num) {
27154 return this.cmp(num) ===
1;
27157 BN.prototype.gten = function gten (num) {
27158 return this.cmpn(num)
>=
0;
27161 BN.prototype.gte = function gte (num) {
27162 return this.cmp(num)
>=
0;
27165 BN.prototype.ltn = function ltn (num) {
27166 return this.cmpn(num) === -
1;
27169 BN.prototype.lt = function lt (num) {
27170 return this.cmp(num) === -
1;
27173 BN.prototype.lten = function lten (num) {
27174 return this.cmpn(num) <=
0;
27177 BN.prototype.lte = function lte (num) {
27178 return this.cmp(num) <=
0;
27181 BN.prototype.eqn = function eqn (num) {
27182 return this.cmpn(num) ===
0;
27185 BN.prototype.eq = function eq (num) {
27186 return this.cmp(num) ===
0;
27190 // A reduce context, could be using montgomery or something better, depending
27191 // on the `m` itself.
27193 BN.red = function red (num) {
27194 return new Red(num);
27197 BN.prototype.toRed = function toRed (ctx) {
27198 assert(!this.red, 'Already a number in reduction context');
27199 assert(this.negative ===
0, 'red works only with positives');
27200 return ctx.convertTo(this)._forceRed(ctx);
27203 BN.prototype.fromRed = function fromRed () {
27204 assert(this.red, 'fromRed works only with numbers in reduction context');
27205 return this.red.convertFrom(this);
27208 BN.prototype._forceRed = function _forceRed (ctx) {
27213 BN.prototype.forceRed = function forceRed (ctx) {
27214 assert(!this.red, 'Already a number in reduction context');
27215 return this._forceRed(ctx);
27218 BN.prototype.redAdd = function redAdd (num) {
27219 assert(this.red, 'redAdd works only with red numbers');
27220 return this.red.add(this, num);
27223 BN.prototype.redIAdd = function redIAdd (num) {
27224 assert(this.red, 'redIAdd works only with red numbers');
27225 return this.red.iadd(this, num);
27228 BN.prototype.redSub = function redSub (num) {
27229 assert(this.red, 'redSub works only with red numbers');
27230 return this.red.sub(this, num);
27233 BN.prototype.redISub = function redISub (num) {
27234 assert(this.red, 'redISub works only with red numbers');
27235 return this.red.isub(this, num);
27238 BN.prototype.redShl = function redShl (num) {
27239 assert(this.red, 'redShl works only with red numbers');
27240 return this.red.shl(this, num);
27243 BN.prototype.redMul = function redMul (num) {
27244 assert(this.red, 'redMul works only with red numbers');
27245 this.red._verify2(this, num);
27246 return this.red.mul(this, num);
27249 BN.prototype.redIMul = function redIMul (num) {
27250 assert(this.red, 'redMul works only with red numbers');
27251 this.red._verify2(this, num);
27252 return this.red.imul(this, num);
27255 BN.prototype.redSqr = function redSqr () {
27256 assert(this.red, 'redSqr works only with red numbers');
27257 this.red._verify1(this);
27258 return this.red.sqr(this);
27261 BN.prototype.redISqr = function redISqr () {
27262 assert(this.red, 'redISqr works only with red numbers');
27263 this.red._verify1(this);
27264 return this.red.isqr(this);
27267 // Square root over p
27268 BN.prototype.redSqrt = function redSqrt () {
27269 assert(this.red, 'redSqrt works only with red numbers');
27270 this.red._verify1(this);
27271 return this.red.sqrt(this);
27274 BN.prototype.redInvm = function redInvm () {
27275 assert(this.red, 'redInvm works only with red numbers');
27276 this.red._verify1(this);
27277 return this.red.invm(this);
27280 // Return negative clone of `this` % `red modulo`
27281 BN.prototype.redNeg = function redNeg () {
27282 assert(this.red, 'redNeg works only with red numbers');
27283 this.red._verify1(this);
27284 return this.red.neg(this);
27287 BN.prototype.redPow = function redPow (num) {
27288 assert(this.red && !num.red, 'redPow(normalNum)');
27289 this.red._verify1(this);
27290 return this.red.pow(this, num);
27293 // Prime numbers with efficient reduction
27301 // Pseudo-Mersenne prime
27302 function MPrime (name, p) {
27305 this.p = new BN(p,
16);
27306 this.n = this.p.bitLength();
27307 this.k = new BN(
1).iushln(this.n).isub(this.p);
27309 this.tmp = this._tmp();
27312 MPrime.prototype._tmp = function _tmp () {
27313 var tmp = new BN(null);
27314 tmp.words = new Array(Math.ceil(this.n /
13));
27318 MPrime.prototype.ireduce = function ireduce (num) {
27319 // Assumes that `num` is less than `P^
2`
27320 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
27325 this.split(r, this.tmp);
27327 r = r.iadd(this.tmp);
27328 rlen = r.bitLength();
27329 } while (rlen
> this.n);
27331 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
27335 } else if (cmp
> 0) {
27344 MPrime.prototype.split = function split (input, out) {
27345 input.iushrn(this.n,
0, out);
27348 MPrime.prototype.imulK = function imulK (num) {
27349 return num.imul(this.k);
27356 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
27358 inherits(K256, MPrime);
27360 K256.prototype.split = function split (input, output) {
27361 //
256 =
9 *
26 +
22
27362 var mask =
0x3fffff;
27364 var outLen = Math.min(input.length,
9);
27365 for (var i =
0; i < outLen; i++) {
27366 output.words[i] = input.words[i];
27368 output.length = outLen;
27370 if (input.length <=
9) {
27371 input.words[
0] =
0;
27376 // Shift by
9 limbs
27377 var prev = input.words[
9];
27378 output.words[output.length++] = prev & mask;
27380 for (i =
10; i < input.length; i++) {
27381 var next = input.words[i] |
0;
27382 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
27386 input.words[i -
10] = prev;
27387 if (prev ===
0 && input.length
> 10) {
27388 input.length -=
10;
27394 K256.prototype.imulK = function imulK (num) {
27395 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
27396 num.words[num.length] =
0;
27397 num.words[num.length +
1] =
0;
27400 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
27402 for (var i =
0; i < num.length; i++) {
27403 var w = num.words[i] |
0;
27405 num.words[i] = lo &
0x3ffffff;
27406 lo = w *
0x40 + ((lo /
0x4000000) |
0);
27409 // Fast length reduction
27410 if (num.words[num.length -
1] ===
0) {
27412 if (num.words[num.length -
1] ===
0) {
27423 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
27425 inherits(P224, MPrime);
27431 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
27433 inherits(P192, MPrime);
27435 function P25519 () {
27440 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
27442 inherits(P25519, MPrime);
27444 P25519.prototype.imulK = function imulK (num) {
27447 for (var i =
0; i < num.length; i++) {
27448 var hi = (num.words[i] |
0) *
0x13 + carry;
27449 var lo = hi &
0x3ffffff;
27456 num.words[num.length++] = carry;
27461 // Exported mostly for testing purposes, use plain name instead
27462 BN._prime = function prime (name) {
27463 // Cached version of prime
27464 if (primes[name]) return primes[name];
27467 if (name === 'k256') {
27468 prime = new K256();
27469 } else if (name === 'p224') {
27470 prime = new P224();
27471 } else if (name === 'p192') {
27472 prime = new P192();
27473 } else if (name === 'p25519') {
27474 prime = new P25519();
27476 throw new Error('Unknown prime ' + name);
27478 primes[name] = prime;
27484 // Base reduction engine
27487 if (typeof m === 'string') {
27488 var prime = BN._prime(m);
27490 this.prime = prime;
27492 assert(m.gtn(
1), 'modulus must be greater than
1');
27498 Red.prototype._verify1 = function _verify1 (a) {
27499 assert(a.negative ===
0, 'red works only with positives');
27500 assert(a.red, 'red works only with red numbers');
27503 Red.prototype._verify2 = function _verify2 (a, b) {
27504 assert((a.negative | b.negative) ===
0, 'red works only with positives');
27505 assert(a.red && a.red === b.red,
27506 'red works only with red numbers');
27509 Red.prototype.imod = function imod (a) {
27510 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
27511 return a.umod(this.m)._forceRed(this);
27514 Red.prototype.neg = function neg (a) {
27519 return this.m.sub(a)._forceRed(this);
27522 Red.prototype.add = function add (a, b) {
27523 this._verify2(a, b);
27525 var res = a.add(b);
27526 if (res.cmp(this.m)
>=
0) {
27529 return res._forceRed(this);
27532 Red.prototype.iadd = function iadd (a, b) {
27533 this._verify2(a, b);
27535 var res = a.iadd(b);
27536 if (res.cmp(this.m)
>=
0) {
27542 Red.prototype.sub = function sub (a, b) {
27543 this._verify2(a, b);
27545 var res = a.sub(b);
27546 if (res.cmpn(
0) <
0) {
27549 return res._forceRed(this);
27552 Red.prototype.isub = function isub (a, b) {
27553 this._verify2(a, b);
27555 var res = a.isub(b);
27556 if (res.cmpn(
0) <
0) {
27562 Red.prototype.shl = function shl (a, num) {
27564 return this.imod(a.ushln(num));
27567 Red.prototype.imul = function imul (a, b) {
27568 this._verify2(a, b);
27569 return this.imod(a.imul(b));
27572 Red.prototype.mul = function mul (a, b) {
27573 this._verify2(a, b);
27574 return this.imod(a.mul(b));
27577 Red.prototype.isqr = function isqr (a) {
27578 return this.imul(a, a.clone());
27581 Red.prototype.sqr = function sqr (a) {
27582 return this.mul(a, a);
27585 Red.prototype.sqrt = function sqrt (a) {
27586 if (a.isZero()) return a.clone();
27588 var mod3 = this.m.andln(
3);
27589 assert(mod3 %
2 ===
1);
27593 var pow = this.m.add(new BN(
1)).iushrn(
2);
27594 return this.pow(a, pow);
27597 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
27599 // Find Q and S, that Q *
2 ^ S = (P -
1)
27600 var q = this.m.subn(
1);
27602 while (!q.isZero() && q.andln(
1) ===
0) {
27606 assert(!q.isZero());
27608 var one = new BN(
1).toRed(this);
27609 var nOne = one.redNeg();
27611 // Find quadratic non-residue
27612 // NOTE: Max is such because of generalized Riemann hypothesis.
27613 var lpow = this.m.subn(
1).iushrn(
1);
27614 var z = this.m.bitLength();
27615 z = new BN(
2 * z * z).toRed(this);
27617 while (this.pow(z, lpow).cmp(nOne) !==
0) {
27621 var c = this.pow(z, q);
27622 var r = this.pow(a, q.addn(
1).iushrn(
1));
27623 var t = this.pow(a, q);
27625 while (t.cmp(one) !==
0) {
27627 for (var i =
0; tmp.cmp(one) !==
0; i++) {
27628 tmp = tmp.redSqr();
27631 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
27642 Red.prototype.invm = function invm (a) {
27643 var inv = a._invmp(this.m);
27644 if (inv.negative !==
0) {
27646 return this.imod(inv).redNeg();
27648 return this.imod(inv);
27652 Red.prototype.pow = function pow (a, num) {
27653 if (num.isZero()) return new BN(
1);
27654 if (num.cmpn(
1) ===
0) return a.clone();
27656 var windowSize =
4;
27657 var wnd = new Array(
1 << windowSize);
27658 wnd[
0] = new BN(
1).toRed(this);
27660 for (var i =
2; i < wnd.length; i++) {
27661 wnd[i] = this.mul(wnd[i -
1], a);
27666 var currentLen =
0;
27667 var start = num.bitLength() %
26;
27672 for (i = num.length -
1; i
>=
0; i--) {
27673 var word = num.words[i];
27674 for (var j = start -
1; j
>=
0; j--) {
27675 var bit = (word
>> j) &
1;
27676 if (res !== wnd[
0]) {
27677 res = this.sqr(res);
27680 if (bit ===
0 && current ===
0) {
27688 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
27690 res = this.mul(res, wnd[current]);
27700 Red.prototype.convertTo = function convertTo (num) {
27701 var r = num.umod(this.m);
27703 return r === num ? r.clone() : r;
27706 Red.prototype.convertFrom = function convertFrom (num) {
27707 var res = num.clone();
27713 // Montgomery method engine
27716 BN.mont = function mont (num) {
27717 return new Mont(num);
27720 function Mont (m) {
27723 this.shift = this.m.bitLength();
27724 if (this.shift %
26 !==
0) {
27725 this.shift +=
26 - (this.shift %
26);
27728 this.r = new BN(
1).iushln(this.shift);
27729 this.r2 = this.imod(this.r.sqr());
27730 this.rinv = this.r._invmp(this.m);
27732 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
27733 this.minv = this.minv.umod(this.r);
27734 this.minv = this.r.sub(this.minv);
27736 inherits(Mont, Red);
27738 Mont.prototype.convertTo = function convertTo (num) {
27739 return this.imod(num.ushln(this.shift));
27742 Mont.prototype.convertFrom = function convertFrom (num) {
27743 var r = this.imod(num.mul(this.rinv));
27748 Mont.prototype.imul = function imul (a, b) {
27749 if (a.isZero() || b.isZero()) {
27756 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
27757 var u = t.isub(c).iushrn(this.shift);
27760 if (u.cmp(this.m)
>=
0) {
27761 res = u.isub(this.m);
27762 } else if (u.cmpn(
0) <
0) {
27763 res = u.iadd(this.m);
27766 return res._forceRed(this);
27769 Mont.prototype.mul = function mul (a, b) {
27770 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
27773 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
27774 var u = t.isub(c).iushrn(this.shift);
27776 if (u.cmp(this.m)
>=
0) {
27777 res = u.isub(this.m);
27778 } else if (u.cmpn(
0) <
0) {
27779 res = u.iadd(this.m);
27782 return res._forceRed(this);
27785 Mont.prototype.invm = function invm (a) {
27786 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
27787 var res = this.imod(a._invmp(this.m).mul(this.r2));
27788 return res._forceRed(this);
27790 })(typeof module === 'undefined' || module, this);
27792 },{}],
34:[function(require,module,exports){
27795 module.exports = function rand(len) {
27797 r = new Rand(null);
27799 return r.generate(len);
27802 function Rand(rand) {
27805 module.exports.Rand = Rand;
27807 Rand.prototype.generate = function generate(len) {
27808 return this._rand(len);
27811 if (typeof self === 'object') {
27812 if (self.crypto && self.crypto.getRandomValues) {
27814 Rand.prototype._rand = function _rand(n) {
27815 var arr = new Uint8Array(n);
27816 self.crypto.getRandomValues(arr);
27819 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
27821 Rand.prototype._rand = function _rand(n) {
27822 var arr = new Uint8Array(n);
27823 self.msCrypto.getRandomValues(arr);
27828 Rand.prototype._rand = function() {
27829 throw new Error('Not implemented yet');
27833 // Node.js or Web worker with no crypto support
27835 var crypto = require('crypto');
27837 Rand.prototype._rand = function _rand(n) {
27838 return crypto.randomBytes(n);
27841 // Emulate crypto API using randy
27842 Rand.prototype._rand = function _rand(n) {
27843 var res = new Uint8Array(n);
27844 for (var i =
0; i < res.length; i++)
27845 res[i] = this.rand.getByte();
27851 },{"crypto":
3}],
35:[function(require,module,exports){
27852 (function (Buffer){
27853 var Transform = require('stream').Transform
27854 var inherits = require('inherits')
27855 var StringDecoder = require('string_decoder').StringDecoder
27856 module.exports = CipherBase
27857 inherits(CipherBase, Transform)
27858 function CipherBase (hashMode) {
27859 Transform.call(this)
27860 this.hashMode = typeof hashMode === 'string'
27861 if (this.hashMode) {
27862 this[hashMode] = this._finalOrDigest
27864 this.final = this._finalOrDigest
27866 this._decoder = null
27867 this._encoding = null
27869 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
27870 if (typeof data === 'string') {
27871 data = new Buffer(data, inputEnc)
27873 var outData = this._update(data)
27874 if (this.hashMode) {
27878 outData = this._toString(outData, outputEnc)
27883 CipherBase.prototype.setAutoPadding = function () {}
27885 CipherBase.prototype.getAuthTag = function () {
27886 throw new Error('trying to get auth tag in unsupported state')
27889 CipherBase.prototype.setAuthTag = function () {
27890 throw new Error('trying to set auth tag in unsupported state')
27893 CipherBase.prototype.setAAD = function () {
27894 throw new Error('trying to set aad in unsupported state')
27897 CipherBase.prototype._transform = function (data, _, next) {
27900 if (this.hashMode) {
27903 this.push(this._update(data))
27911 CipherBase.prototype._flush = function (done) {
27914 this.push(this._final())
27921 CipherBase.prototype._finalOrDigest = function (outputEnc) {
27922 var outData = this._final() || new Buffer('')
27924 outData = this._toString(outData, outputEnc, true)
27929 CipherBase.prototype._toString = function (value, enc, fin) {
27930 if (!this._decoder) {
27931 this._decoder = new StringDecoder(enc)
27932 this._encoding = enc
27934 if (this._encoding !== enc) {
27935 throw new Error('can\'t switch encodings')
27937 var out = this._decoder.write(value)
27939 out += this._decoder.end()
27944 }).call(this,require("buffer").Buffer)
27945 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
27946 (function (Buffer){
27948 var inherits = require('inherits')
27949 var md5 = require('./md5')
27950 var rmd160 = require('ripemd160')
27951 var sha = require('sha.js')
27953 var Base = require('cipher-base')
27955 function HashNoConstructor(hash) {
27956 Base.call(this, 'digest')
27962 inherits(HashNoConstructor, Base)
27964 HashNoConstructor.prototype._update = function (data) {
27965 this.buffers.push(data)
27968 HashNoConstructor.prototype._final = function () {
27969 var buf = Buffer.concat(this.buffers)
27970 var r = this._hash(buf)
27971 this.buffers = null
27976 function Hash(hash) {
27977 Base.call(this, 'digest')
27982 inherits(Hash, Base)
27984 Hash.prototype._update = function (data) {
27985 this._hash.update(data)
27988 Hash.prototype._final = function () {
27989 return this._hash.digest()
27992 module.exports = function createHash (alg) {
27993 alg = alg.toLowerCase()
27994 if ('md5' === alg) return new HashNoConstructor(md5)
27995 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
27997 return new Hash(sha(alg))
28000 }).call(this,require("buffer").Buffer)
28001 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
28002 (function (Buffer){
28005 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
28008 function toArray(buf, bigEndian) {
28009 if ((buf.length % intSize) !==
0) {
28010 var len = buf.length + (intSize - (buf.length % intSize));
28011 buf = Buffer.concat([buf, zeroBuffer], len);
28015 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
28016 for (var i =
0; i < buf.length; i += intSize) {
28017 arr.push(fn.call(buf, i));
28022 function toBuffer(arr, size, bigEndian) {
28023 var buf = new Buffer(size);
28024 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
28025 for (var i =
0; i < arr.length; i++) {
28026 fn.call(buf, arr[i], i *
4, true);
28031 function hash(buf, fn, hashSize, bigEndian) {
28032 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
28033 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
28034 return toBuffer(arr, hashSize, bigEndian);
28036 exports.hash = hash;
28037 }).call(this,require("buffer").Buffer)
28038 },{"buffer":
5}],
38:[function(require,module,exports){
28041 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
28042 * Digest Algorithm, as defined in RFC
1321.
28043 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
28044 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
28045 * Distributed under the BSD License
28046 * See http://pajhome.org.uk/crypt/md5 for more info.
28049 var helpers = require('./helpers');
28052 * Calculate the MD5 of an array of little-endian words, and a bit length
28054 function core_md5(x, len)
28056 /* append padding */
28057 x[len
>> 5] |=
0x80 << ((len) %
32);
28058 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
28060 var a =
1732584193;
28061 var b = -
271733879;
28062 var c = -
1732584194;
28065 for(var i =
0; i < x.length; i +=
16)
28072 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
28073 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
28074 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
28075 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
28076 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
28077 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
28078 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
28079 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
28080 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
28081 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
28082 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
28083 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
28084 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
28085 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
28086 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
28087 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
28089 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
28090 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
28091 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
28092 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
28093 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
28094 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
28095 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
28096 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
28097 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
28098 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
28099 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
28100 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
28101 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
28102 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
28103 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
28104 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
28106 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
28107 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
28108 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
28109 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
28110 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
28111 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
28112 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
28113 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
28114 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
28115 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
28116 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
28117 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
28118 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
28119 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
28120 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
28121 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
28123 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
28124 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
28125 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
28126 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
28127 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
28128 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
28129 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
28130 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
28131 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
28132 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
28133 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
28134 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
28135 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
28136 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
28137 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
28138 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
28140 a = safe_add(a, olda);
28141 b = safe_add(b, oldb);
28142 c = safe_add(c, oldc);
28143 d = safe_add(d, oldd);
28145 return Array(a, b, c, d);
28150 * These functions implement the four basic operations the algorithm uses.
28152 function md5_cmn(q, a, b, x, s, t)
28154 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
28156 function md5_ff(a, b, c, d, x, s, t)
28158 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
28160 function md5_gg(a, b, c, d, x, s, t)
28162 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
28164 function md5_hh(a, b, c, d, x, s, t)
28166 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
28168 function md5_ii(a, b, c, d, x, s, t)
28170 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
28174 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
28175 * to work around bugs in some JS interpreters.
28177 function safe_add(x, y)
28179 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
28180 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
28181 return (msw <<
16) | (lsw &
0xFFFF);
28185 * Bitwise rotate a
32-bit number to the left.
28187 function bit_rol(num, cnt)
28189 return (num << cnt) | (num
>>> (
32 - cnt));
28192 module.exports = function md5(buf) {
28193 return helpers.hash(buf, core_md5,
16);
28195 },{"./helpers":
37}],
39:[function(require,module,exports){
28198 var elliptic = exports;
28200 elliptic.version = require('../package.json').version;
28201 elliptic.utils = require('./elliptic/utils');
28202 elliptic.rand = require('brorand');
28203 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
28204 elliptic.curve = require('./elliptic/curve');
28205 elliptic.curves = require('./elliptic/curves');
28208 elliptic.ec = require('./elliptic/ec');
28209 elliptic.eddsa = require('./elliptic/eddsa');
28211 },{"../package.json":
55,"./elliptic/curve":
42,"./elliptic/curves":
45,"./elliptic/ec":
46,"./elliptic/eddsa":
49,"./elliptic/hmac-drbg":
52,"./elliptic/utils":
54,"brorand":
34}],
40:[function(require,module,exports){
28214 var BN = require('bn.js');
28215 var elliptic = require('../../elliptic');
28216 var utils = elliptic.utils;
28217 var getNAF = utils.getNAF;
28218 var getJSF = utils.getJSF;
28219 var assert = utils.assert;
28221 function BaseCurve(type, conf) {
28223 this.p = new BN(conf.p,
16);
28225 // Use Montgomery, when there is no fast reduction for the prime
28226 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
28228 // Useful for many curves
28229 this.zero = new BN(
0).toRed(this.red);
28230 this.one = new BN(
1).toRed(this.red);
28231 this.two = new BN(
2).toRed(this.red);
28233 // Curve configuration, optional
28234 this.n = conf.n && new BN(conf.n,
16);
28235 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
28237 // Temporary arrays
28238 this._wnafT1 = new Array(
4);
28239 this._wnafT2 = new Array(
4);
28240 this._wnafT3 = new Array(
4);
28241 this._wnafT4 = new Array(
4);
28243 // Generalized Greg Maxwell's trick
28244 var adjustCount = this.n && this.p.div(this.n);
28245 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
28248 this._maxwellTrick = true;
28249 this.redN = this.n.toRed(this.red);
28252 module.exports = BaseCurve;
28254 BaseCurve.prototype.point = function point() {
28255 throw new Error('Not implemented');
28258 BaseCurve.prototype.validate = function validate() {
28259 throw new Error('Not implemented');
28262 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
28263 assert(p.precomputed);
28264 var doubles = p._getDoubles();
28266 var naf = getNAF(k,
1);
28267 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
28270 // Translate into more windowed form
28272 for (var j =
0; j < naf.length; j += doubles.step) {
28274 for (var k = j + doubles.step -
1; k
>= j; k--)
28275 nafW = (nafW <<
1) + naf[k];
28279 var a = this.jpoint(null, null, null);
28280 var b = this.jpoint(null, null, null);
28281 for (var i = I; i
> 0; i--) {
28282 for (var j =
0; j < repr.length; j++) {
28283 var nafW = repr[j];
28285 b = b.mixedAdd(doubles.points[j]);
28286 else if (nafW === -i)
28287 b = b.mixedAdd(doubles.points[j].neg());
28294 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
28297 // Precompute window
28298 var nafPoints = p._getNAFPoints(w);
28300 var wnd = nafPoints.points;
28303 var naf = getNAF(k, w);
28305 // Add `this`*(N+
1) for every w-NAF index
28306 var acc = this.jpoint(null, null, null);
28307 for (var i = naf.length -
1; i
>=
0; i--) {
28309 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
28319 if (p.type === 'affine') {
28322 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
28324 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
28328 acc = acc.add(wnd[(z -
1)
>> 1]);
28330 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
28333 return p.type === 'affine' ? acc.toP() : acc;
28336 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
28341 var wndWidth = this._wnafT1;
28342 var wnd = this._wnafT2;
28343 var naf = this._wnafT3;
28347 for (var i =
0; i < len; i++) {
28349 var nafPoints = p._getNAFPoints(defW);
28350 wndWidth[i] = nafPoints.wnd;
28351 wnd[i] = nafPoints.points;
28354 // Comb small window NAFs
28355 for (var i = len -
1; i
>=
1; i -=
2) {
28358 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
28359 naf[a] = getNAF(coeffs[a], wndWidth[a]);
28360 naf[b] = getNAF(coeffs[b], wndWidth[b]);
28361 max = Math.max(naf[a].length, max);
28362 max = Math.max(naf[b].length, max);
28373 // Try to avoid Projective points, if possible
28374 if (points[a].y.cmp(points[b].y) ===
0) {
28375 comb[
1] = points[a].add(points[b]);
28376 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28377 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
28378 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28379 comb[
2] = points[a].add(points[b].neg());
28381 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28382 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28397 var jsf = getJSF(coeffs[a], coeffs[b]);
28398 max = Math.max(jsf[
0].length, max);
28399 naf[a] = new Array(max);
28400 naf[b] = new Array(max);
28401 for (var j =
0; j < max; j++) {
28402 var ja = jsf[
0][j] |
0;
28403 var jb = jsf[
1][j] |
0;
28405 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
28411 var acc = this.jpoint(null, null, null);
28412 var tmp = this._wnafT4;
28413 for (var i = max; i
>=
0; i--) {
28418 for (var j =
0; j < len; j++) {
28419 tmp[j] = naf[j][i] |
0;
28434 for (var j =
0; j < len; j++) {
28440 p = wnd[j][(z -
1)
>> 1];
28442 p = wnd[j][(-z -
1)
>> 1].neg();
28444 if (p.type === 'affine')
28445 acc = acc.mixedAdd(p);
28450 // Zeroify references
28451 for (var i =
0; i < len; i++)
28454 if (jacobianResult)
28460 function BasePoint(curve, type) {
28461 this.curve = curve;
28463 this.precomputed = null;
28465 BaseCurve.BasePoint = BasePoint;
28467 BasePoint.prototype.eq = function eq(/*other*/) {
28468 throw new Error('Not implemented');
28471 BasePoint.prototype.validate = function validate() {
28472 return this.curve.validate(this);
28475 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
28476 bytes = utils.toArray(bytes, enc);
28478 var len = this.p.byteLength();
28480 // uncompressed, hybrid-odd, hybrid-even
28481 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
28482 bytes.length -
1 ===
2 * len) {
28483 if (bytes[
0] ===
0x06)
28484 assert(bytes[bytes.length -
1] %
2 ===
0);
28485 else if (bytes[
0] ===
0x07)
28486 assert(bytes[bytes.length -
1] %
2 ===
1);
28488 var res = this.point(bytes.slice(
1,
1 + len),
28489 bytes.slice(
1 + len,
1 +
2 * len));
28492 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
28493 bytes.length -
1 === len) {
28494 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
28496 throw new Error('Unknown point format');
28499 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
28500 return this.encode(enc, true);
28503 BasePoint.prototype._encode = function _encode(compact) {
28504 var len = this.curve.p.byteLength();
28505 var x = this.getX().toArray('be', len);
28508 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
28510 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
28513 BasePoint.prototype.encode = function encode(enc, compact) {
28514 return utils.encode(this._encode(compact), enc);
28517 BasePoint.prototype.precompute = function precompute(power) {
28518 if (this.precomputed)
28521 var precomputed = {
28526 precomputed.naf = this._getNAFPoints(
8);
28527 precomputed.doubles = this._getDoubles(
4, power);
28528 precomputed.beta = this._getBeta();
28529 this.precomputed = precomputed;
28534 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
28535 if (!this.precomputed)
28538 var doubles = this.precomputed.doubles;
28542 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
28545 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
28546 if (this.precomputed && this.precomputed.doubles)
28547 return this.precomputed.doubles;
28549 var doubles = [ this ];
28551 for (var i =
0; i < power; i += step) {
28552 for (var j =
0; j < step; j++)
28562 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
28563 if (this.precomputed && this.precomputed.naf)
28564 return this.precomputed.naf;
28566 var res = [ this ];
28567 var max = (
1 << wnd) -
1;
28568 var dbl = max ===
1 ? null : this.dbl();
28569 for (var i =
1; i < max; i++)
28570 res[i] = res[i -
1].add(dbl);
28577 BasePoint.prototype._getBeta = function _getBeta() {
28581 BasePoint.prototype.dblp = function dblp(k) {
28583 for (var i =
0; i < k; i++)
28588 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
28591 var curve = require('../curve');
28592 var elliptic = require('../../elliptic');
28593 var BN = require('bn.js');
28594 var inherits = require('inherits');
28595 var Base = curve.base;
28597 var assert = elliptic.utils.assert;
28599 function EdwardsCurve(conf) {
28600 // NOTE: Important as we are creating point in Base.call()
28601 this.twisted = (conf.a |
0) !==
1;
28602 this.mOneA = this.twisted && (conf.a |
0) === -
1;
28603 this.extended = this.mOneA;
28605 Base.call(this, 'edwards', conf);
28607 this.a = new BN(conf.a,
16).umod(this.red.m);
28608 this.a = this.a.toRed(this.red);
28609 this.c = new BN(conf.c,
16).toRed(this.red);
28610 this.c2 = this.c.redSqr();
28611 this.d = new BN(conf.d,
16).toRed(this.red);
28612 this.dd = this.d.redAdd(this.d);
28614 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
28615 this.oneC = (conf.c |
0) ===
1;
28617 inherits(EdwardsCurve, Base);
28618 module.exports = EdwardsCurve;
28620 EdwardsCurve.prototype._mulA = function _mulA(num) {
28622 return num.redNeg();
28624 return this.a.redMul(num);
28627 EdwardsCurve.prototype._mulC = function _mulC(num) {
28631 return this.c.redMul(num);
28634 // Just for compatibility with Short curve
28635 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
28636 return this.point(x, y, z, t);
28639 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
28642 x = x.toRed(this.red);
28644 var x2 = x.redSqr();
28645 var rhs = this.c2.redSub(this.a.redMul(x2));
28646 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
28648 var y2 = rhs.redMul(lhs.redInvm());
28649 var y = y2.redSqrt();
28650 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
28651 throw new Error('invalid point');
28653 var isOdd = y.fromRed().isOdd();
28654 if (odd && !isOdd || !odd && isOdd)
28657 return this.point(x, y);
28660 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
28663 y = y.toRed(this.red);
28665 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
28666 var y2 = y.redSqr();
28667 var lhs = y2.redSub(this.one);
28668 var rhs = y2.redMul(this.d).redAdd(this.one);
28669 var x2 = lhs.redMul(rhs.redInvm());
28671 if (x2.cmp(this.zero) ===
0) {
28673 throw new Error('invalid point');
28675 return this.point(this.zero, y);
28678 var x = x2.redSqrt();
28679 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
28680 throw new Error('invalid point');
28682 if (x.isOdd() !== odd)
28685 return this.point(x, y);
28688 EdwardsCurve.prototype.validate = function validate(point) {
28689 if (point.isInfinity())
28692 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
28695 var x2 = point.x.redSqr();
28696 var y2 = point.y.redSqr();
28697 var lhs = x2.redMul(this.a).redAdd(y2);
28698 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
28700 return lhs.cmp(rhs) ===
0;
28703 function Point(curve, x, y, z, t) {
28704 Base.BasePoint.call(this, curve, 'projective');
28705 if (x === null && y === null && z === null) {
28706 this.x = this.curve.zero;
28707 this.y = this.curve.one;
28708 this.z = this.curve.one;
28709 this.t = this.curve.zero;
28712 this.x = new BN(x,
16);
28713 this.y = new BN(y,
16);
28714 this.z = z ? new BN(z,
16) : this.curve.one;
28715 this.t = t && new BN(t,
16);
28717 this.x = this.x.toRed(this.curve.red);
28719 this.y = this.y.toRed(this.curve.red);
28721 this.z = this.z.toRed(this.curve.red);
28722 if (this.t && !this.t.red)
28723 this.t = this.t.toRed(this.curve.red);
28724 this.zOne = this.z === this.curve.one;
28726 // Use extended coordinates
28727 if (this.curve.extended && !this.t) {
28728 this.t = this.x.redMul(this.y);
28730 this.t = this.t.redMul(this.z.redInvm());
28734 inherits(Point, Base.BasePoint);
28736 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
28737 return Point.fromJSON(this, obj);
28740 EdwardsCurve.prototype.point = function point(x, y, z, t) {
28741 return new Point(this, x, y, z, t);
28744 Point.fromJSON = function fromJSON(curve, obj) {
28745 return new Point(curve, obj[
0], obj[
1], obj[
2]);
28748 Point.prototype.inspect = function inspect() {
28749 if (this.isInfinity())
28750 return '
<EC Point Infinity
>';
28751 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
28752 ' y: ' + this.y.fromRed().toString(
16,
2) +
28753 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
28756 Point.prototype.isInfinity = function isInfinity() {
28757 // XXX This code assumes that zero is always zero in red
28758 return this.x.cmpn(
0) ===
0 &&
28759 this.y.cmp(this.z) ===
0;
28762 Point.prototype._extDbl = function _extDbl() {
28763 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
28764 // #doubling-dbl-
2008-hwcd
28768 var a = this.x.redSqr();
28770 var b = this.y.redSqr();
28772 var c = this.z.redSqr();
28775 var d = this.curve._mulA(a);
28776 // E = (X1 + Y1)^
2 - A - B
28777 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
28779 var g = d.redAdd(b);
28781 var f = g.redSub(c);
28783 var h = d.redSub(b);
28785 var nx = e.redMul(f);
28787 var ny = g.redMul(h);
28789 var nt = e.redMul(h);
28791 var nz = f.redMul(g);
28792 return this.curve.point(nx, ny, nz, nt);
28795 Point.prototype._projDbl = function _projDbl() {
28796 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
28797 // #doubling-dbl-
2008-bbjlp
28798 // #doubling-dbl-
2007-bl
28800 // Generally
3M +
4S or
2M +
4S
28803 var b = this.x.redAdd(this.y).redSqr();
28805 var c = this.x.redSqr();
28807 var d = this.y.redSqr();
28812 if (this.curve.twisted) {
28814 var e = this.curve._mulA(c);
28816 var f = e.redAdd(d);
28818 // X3 = (B - C - D) * (F -
2)
28819 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
28820 // Y3 = F * (E - D)
28821 ny = f.redMul(e.redSub(d));
28822 // Z3 = F^
2 -
2 * F
28823 nz = f.redSqr().redSub(f).redSub(f);
28826 var h = this.z.redSqr();
28828 var j = f.redSub(h).redISub(h);
28830 nx = b.redSub(c).redISub(d).redMul(j);
28831 // Y3 = F * (E - D)
28832 ny = f.redMul(e.redSub(d));
28838 var e = c.redAdd(d);
28840 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
28842 var j = e.redSub(h).redSub(h);
28843 // X3 = c * (B - E) * J
28844 nx = this.curve._mulC(b.redISub(e)).redMul(j);
28845 // Y3 = c * E * (C - D)
28846 ny = this.curve._mulC(e).redMul(c.redISub(d));
28850 return this.curve.point(nx, ny, nz);
28853 Point.prototype.dbl = function dbl() {
28854 if (this.isInfinity())
28857 // Double in extended coordinates
28858 if (this.curve.extended)
28859 return this._extDbl();
28861 return this._projDbl();
28864 Point.prototype._extAdd = function _extAdd(p) {
28865 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
28866 // #addition-add-
2008-hwcd-
3
28869 // A = (Y1 - X1) * (Y2 - X2)
28870 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
28871 // B = (Y1 + X1) * (Y2 + X2)
28872 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
28874 var c = this.t.redMul(this.curve.dd).redMul(p.t);
28876 var d = this.z.redMul(p.z.redAdd(p.z));
28878 var e = b.redSub(a);
28880 var f = d.redSub(c);
28882 var g = d.redAdd(c);
28884 var h = b.redAdd(a);
28886 var nx = e.redMul(f);
28888 var ny = g.redMul(h);
28890 var nt = e.redMul(h);
28892 var nz = f.redMul(g);
28893 return this.curve.point(nx, ny, nz, nt);
28896 Point.prototype._projAdd = function _projAdd(p) {
28897 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
28898 // #addition-add-
2008-bbjlp
28899 // #addition-add-
2007-bl
28903 var a = this.z.redMul(p.z);
28905 var b = a.redSqr();
28907 var c = this.x.redMul(p.x);
28909 var d = this.y.redMul(p.y);
28911 var e = this.curve.d.redMul(c).redMul(d);
28913 var f = b.redSub(e);
28915 var g = b.redAdd(e);
28916 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
28917 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
28918 var nx = a.redMul(f).redMul(tmp);
28921 if (this.curve.twisted) {
28922 // Y3 = A * G * (D - a * C)
28923 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
28927 // Y3 = A * G * (D - C)
28928 ny = a.redMul(g).redMul(d.redSub(c));
28930 nz = this.curve._mulC(f).redMul(g);
28932 return this.curve.point(nx, ny, nz);
28935 Point.prototype.add = function add(p) {
28936 if (this.isInfinity())
28938 if (p.isInfinity())
28941 if (this.curve.extended)
28942 return this._extAdd(p);
28944 return this._projAdd(p);
28947 Point.prototype.mul = function mul(k) {
28948 if (this._hasDoubles(k))
28949 return this.curve._fixedNafMul(this, k);
28951 return this.curve._wnafMul(this, k);
28954 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
28955 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
28958 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
28959 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
28962 Point.prototype.normalize = function normalize() {
28966 // Normalize coordinates
28967 var zi = this.z.redInvm();
28968 this.x = this.x.redMul(zi);
28969 this.y = this.y.redMul(zi);
28971 this.t = this.t.redMul(zi);
28972 this.z = this.curve.one;
28977 Point.prototype.neg = function neg() {
28978 return this.curve.point(this.x.redNeg(),
28981 this.t && this.t.redNeg());
28984 Point.prototype.getX = function getX() {
28986 return this.x.fromRed();
28989 Point.prototype.getY = function getY() {
28991 return this.y.fromRed();
28994 Point.prototype.eq = function eq(other) {
28995 return this === other ||
28996 this.getX().cmp(other.getX()) ===
0 &&
28997 this.getY().cmp(other.getY()) ===
0;
29000 Point.prototype.eqXToP = function eqXToP(x) {
29001 var rx = x.toRed(this.curve.red).redMul(this.z);
29002 if (this.x.cmp(rx) ===
0)
29005 var xc = x.clone();
29006 var t = this.curve.redN.redMul(this.z);
29008 xc.iadd(this.curve.n);
29009 if (xc.cmp(this.curve.p)
>=
0)
29013 if (this.x.cmp(rx) ===
0)
29019 // Compatibility with BaseCurve
29020 Point.prototype.toP = Point.prototype.normalize;
29021 Point.prototype.mixedAdd = Point.prototype.add;
29023 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
29026 var curve = exports;
29028 curve.base = require('./base');
29029 curve.short = require('./short');
29030 curve.mont = require('./mont');
29031 curve.edwards = require('./edwards');
29033 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
29036 var curve = require('../curve');
29037 var BN = require('bn.js');
29038 var inherits = require('inherits');
29039 var Base = curve.base;
29041 var elliptic = require('../../elliptic');
29042 var utils = elliptic.utils;
29044 function MontCurve(conf) {
29045 Base.call(this, 'mont', conf);
29047 this.a = new BN(conf.a,
16).toRed(this.red);
29048 this.b = new BN(conf.b,
16).toRed(this.red);
29049 this.i4 = new BN(
4).toRed(this.red).redInvm();
29050 this.two = new BN(
2).toRed(this.red);
29051 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
29053 inherits(MontCurve, Base);
29054 module.exports = MontCurve;
29056 MontCurve.prototype.validate = function validate(point) {
29057 var x = point.normalize().x;
29058 var x2 = x.redSqr();
29059 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
29060 var y = rhs.redSqrt();
29062 return y.redSqr().cmp(rhs) ===
0;
29065 function Point(curve, x, z) {
29066 Base.BasePoint.call(this, curve, 'projective');
29067 if (x === null && z === null) {
29068 this.x = this.curve.one;
29069 this.z = this.curve.zero;
29071 this.x = new BN(x,
16);
29072 this.z = new BN(z,
16);
29074 this.x = this.x.toRed(this.curve.red);
29076 this.z = this.z.toRed(this.curve.red);
29079 inherits(Point, Base.BasePoint);
29081 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
29082 return this.point(utils.toArray(bytes, enc),
1);
29085 MontCurve.prototype.point = function point(x, z) {
29086 return new Point(this, x, z);
29089 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
29090 return Point.fromJSON(this, obj);
29093 Point.prototype.precompute = function precompute() {
29097 Point.prototype._encode = function _encode() {
29098 return this.getX().toArray('be', this.curve.p.byteLength());
29101 Point.fromJSON = function fromJSON(curve, obj) {
29102 return new Point(curve, obj[
0], obj[
1] || curve.one);
29105 Point.prototype.inspect = function inspect() {
29106 if (this.isInfinity())
29107 return '
<EC Point Infinity
>';
29108 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29109 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
29112 Point.prototype.isInfinity = function isInfinity() {
29113 // XXX This code assumes that zero is always zero in red
29114 return this.z.cmpn(
0) ===
0;
29117 Point.prototype.dbl = function dbl() {
29118 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
29122 var a = this.x.redAdd(this.z);
29124 var aa = a.redSqr();
29126 var b = this.x.redSub(this.z);
29128 var bb = b.redSqr();
29130 var c = aa.redSub(bb);
29132 var nx = aa.redMul(bb);
29133 // Z3 = C * (BB + A24 * C)
29134 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
29135 return this.curve.point(nx, nz);
29138 Point.prototype.add = function add() {
29139 throw new Error('Not supported on Montgomery curve');
29142 Point.prototype.diffAdd = function diffAdd(p, diff) {
29143 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
29147 var a = this.x.redAdd(this.z);
29149 var b = this.x.redSub(this.z);
29151 var c = p.x.redAdd(p.z);
29153 var d = p.x.redSub(p.z);
29155 var da = d.redMul(a);
29157 var cb = c.redMul(b);
29158 // X5 = Z1 * (DA + CB)^
2
29159 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
29160 // Z5 = X1 * (DA - CB)^
2
29161 var nz = diff.x.redMul(da.redISub(cb).redSqr());
29162 return this.curve.point(nx, nz);
29165 Point.prototype.mul = function mul(k) {
29167 var a = this; // (N /
2) * Q + Q
29168 var b = this.curve.point(null, null); // (N /
2) * Q
29171 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
29172 bits.push(t.andln(
1));
29174 for (var i = bits.length -
1; i
>=
0; i--) {
29175 if (bits[i] ===
0) {
29176 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
29177 a = a.diffAdd(b, c);
29178 // N * Q =
2 * ((N /
2) * Q + Q))
29181 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
29182 b = a.diffAdd(b, c);
29183 // N * Q + Q =
2 * ((N /
2) * Q + Q)
29190 Point.prototype.mulAdd = function mulAdd() {
29191 throw new Error('Not supported on Montgomery curve');
29194 Point.prototype.jumlAdd = function jumlAdd() {
29195 throw new Error('Not supported on Montgomery curve');
29198 Point.prototype.eq = function eq(other) {
29199 return this.getX().cmp(other.getX()) ===
0;
29202 Point.prototype.normalize = function normalize() {
29203 this.x = this.x.redMul(this.z.redInvm());
29204 this.z = this.curve.one;
29208 Point.prototype.getX = function getX() {
29209 // Normalize coordinates
29212 return this.x.fromRed();
29215 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
29218 var curve = require('../curve');
29219 var elliptic = require('../../elliptic');
29220 var BN = require('bn.js');
29221 var inherits = require('inherits');
29222 var Base = curve.base;
29224 var assert = elliptic.utils.assert;
29226 function ShortCurve(conf) {
29227 Base.call(this, 'short', conf);
29229 this.a = new BN(conf.a,
16).toRed(this.red);
29230 this.b = new BN(conf.b,
16).toRed(this.red);
29231 this.tinv = this.two.redInvm();
29233 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
29234 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
29236 // If the curve is endomorphic, precalculate beta and lambda
29237 this.endo = this._getEndomorphism(conf);
29238 this._endoWnafT1 = new Array(
4);
29239 this._endoWnafT2 = new Array(
4);
29241 inherits(ShortCurve, Base);
29242 module.exports = ShortCurve;
29244 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
29245 // No efficient endomorphism
29246 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
29249 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
29253 beta = new BN(conf.beta,
16).toRed(this.red);
29255 var betas = this._getEndoRoots(this.p);
29256 // Choose the smallest beta
29257 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
29258 beta = beta.toRed(this.red);
29261 lambda = new BN(conf.lambda,
16);
29263 // Choose the lambda that is matching selected beta
29264 var lambdas = this._getEndoRoots(this.n);
29265 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
29266 lambda = lambdas[
0];
29268 lambda = lambdas[
1];
29269 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
29273 // Get basis vectors, used for balanced length-two representation
29276 basis = conf.basis.map(function(vec) {
29278 a: new BN(vec.a,
16),
29279 b: new BN(vec.b,
16)
29283 basis = this._getEndoBasis(lambda);
29293 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
29294 // Find roots of for x^
2 + x +
1 in F
29295 // Root = (-
1 +- Sqrt(-
3)) /
2
29297 var red = num === this.p ? this.red : BN.mont(num);
29298 var tinv = new BN(
2).toRed(red).redInvm();
29299 var ntinv = tinv.redNeg();
29301 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
29303 var l1 = ntinv.redAdd(s).fromRed();
29304 var l2 = ntinv.redSub(s).fromRed();
29308 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
29309 // aprxSqrt
>= sqrt(this.n)
29310 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
29313 // Run EGCD, until r(L +
1) < aprxSqrt
29315 var v = this.n.clone();
29316 var x1 = new BN(
1);
29317 var y1 = new BN(
0);
29318 var x2 = new BN(
0);
29319 var y2 = new BN(
1);
29321 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
29335 while (u.cmpn(
0) !==
0) {
29337 r = v.sub(q.mul(u));
29338 x = x2.sub(q.mul(x1));
29339 var y = y2.sub(q.mul(y1));
29341 if (!a1 && r.cmp(aprxSqrt) <
0) {
29346 } else if (a1 && ++i ===
2) {
29361 var len1 = a1.sqr().add(b1.sqr());
29362 var len2 = a2.sqr().add(b2.sqr());
29363 if (len2.cmp(len1)
>=
0) {
29384 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
29385 var basis = this.endo.basis;
29389 var c1 = v2.b.mul(k).divRound(this.n);
29390 var c2 = v1.b.neg().mul(k).divRound(this.n);
29392 var p1 = c1.mul(v1.a);
29393 var p2 = c2.mul(v2.a);
29394 var q1 = c1.mul(v1.b);
29395 var q2 = c2.mul(v2.b);
29397 // Calculate answer
29398 var k1 = k.sub(p1).sub(p2);
29399 var k2 = q1.add(q2).neg();
29400 return { k1: k1, k2: k2 };
29403 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
29406 x = x.toRed(this.red);
29408 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
29409 var y = y2.redSqrt();
29410 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
29411 throw new Error('invalid point');
29413 // XXX Is there any way to tell if the number is odd without converting it
29414 // to non-red form?
29415 var isOdd = y.fromRed().isOdd();
29416 if (odd && !isOdd || !odd && isOdd)
29419 return this.point(x, y);
29422 ShortCurve.prototype.validate = function validate(point) {
29429 var ax = this.a.redMul(x);
29430 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
29431 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
29434 ShortCurve.prototype._endoWnafMulAdd =
29435 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
29436 var npoints = this._endoWnafT1;
29437 var ncoeffs = this._endoWnafT2;
29438 for (var i =
0; i < points.length; i++) {
29439 var split = this._endoSplit(coeffs[i]);
29441 var beta = p._getBeta();
29443 if (split.k1.negative) {
29447 if (split.k2.negative) {
29449 beta = beta.neg(true);
29452 npoints[i *
2] = p;
29453 npoints[i *
2 +
1] = beta;
29454 ncoeffs[i *
2] = split.k1;
29455 ncoeffs[i *
2 +
1] = split.k2;
29457 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
29459 // Clean-up references to points and coefficients
29460 for (var j =
0; j < i *
2; j++) {
29467 function Point(curve, x, y, isRed) {
29468 Base.BasePoint.call(this, curve, 'affine');
29469 if (x === null && y === null) {
29474 this.x = new BN(x,
16);
29475 this.y = new BN(y,
16);
29476 // Force redgomery representation when loading from JSON
29478 this.x.forceRed(this.curve.red);
29479 this.y.forceRed(this.curve.red);
29482 this.x = this.x.toRed(this.curve.red);
29484 this.y = this.y.toRed(this.curve.red);
29488 inherits(Point, Base.BasePoint);
29490 ShortCurve.prototype.point = function point(x, y, isRed) {
29491 return new Point(this, x, y, isRed);
29494 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
29495 return Point.fromJSON(this, obj, red);
29498 Point.prototype._getBeta = function _getBeta() {
29499 if (!this.curve.endo)
29502 var pre = this.precomputed;
29503 if (pre && pre.beta)
29506 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
29508 var curve = this.curve;
29509 var endoMul = function(p) {
29510 return curve.point(p.x.redMul(curve.endo.beta), p.y);
29513 beta.precomputed = {
29517 points: pre.naf.points.map(endoMul)
29519 doubles: pre.doubles && {
29520 step: pre.doubles.step,
29521 points: pre.doubles.points.map(endoMul)
29528 Point.prototype.toJSON = function toJSON() {
29529 if (!this.precomputed)
29530 return [ this.x, this.y ];
29532 return [ this.x, this.y, this.precomputed && {
29533 doubles: this.precomputed.doubles && {
29534 step: this.precomputed.doubles.step,
29535 points: this.precomputed.doubles.points.slice(
1)
29537 naf: this.precomputed.naf && {
29538 wnd: this.precomputed.naf.wnd,
29539 points: this.precomputed.naf.points.slice(
1)
29544 Point.fromJSON = function fromJSON(curve, obj, red) {
29545 if (typeof obj === 'string')
29546 obj = JSON.parse(obj);
29547 var res = curve.point(obj[
0], obj[
1], red);
29551 function obj2point(obj) {
29552 return curve.point(obj[
0], obj[
1], red);
29556 res.precomputed = {
29558 doubles: pre.doubles && {
29559 step: pre.doubles.step,
29560 points: [ res ].concat(pre.doubles.points.map(obj2point))
29564 points: [ res ].concat(pre.naf.points.map(obj2point))
29570 Point.prototype.inspect = function inspect() {
29571 if (this.isInfinity())
29572 return '
<EC Point Infinity
>';
29573 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29574 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
29577 Point.prototype.isInfinity = function isInfinity() {
29581 Point.prototype.add = function add(p) {
29595 if (this.neg().eq(p))
29596 return this.curve.point(null, null);
29599 if (this.x.cmp(p.x) ===
0)
29600 return this.curve.point(null, null);
29602 var c = this.y.redSub(p.y);
29603 if (c.cmpn(
0) !==
0)
29604 c = c.redMul(this.x.redSub(p.x).redInvm());
29605 var nx = c.redSqr().redISub(this.x).redISub(p.x);
29606 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
29607 return this.curve.point(nx, ny);
29610 Point.prototype.dbl = function dbl() {
29615 var ys1 = this.y.redAdd(this.y);
29616 if (ys1.cmpn(
0) ===
0)
29617 return this.curve.point(null, null);
29619 var a = this.curve.a;
29621 var x2 = this.x.redSqr();
29622 var dyinv = ys1.redInvm();
29623 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
29625 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
29626 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
29627 return this.curve.point(nx, ny);
29630 Point.prototype.getX = function getX() {
29631 return this.x.fromRed();
29634 Point.prototype.getY = function getY() {
29635 return this.y.fromRed();
29638 Point.prototype.mul = function mul(k) {
29641 if (this._hasDoubles(k))
29642 return this.curve._fixedNafMul(this, k);
29643 else if (this.curve.endo)
29644 return this.curve._endoWnafMulAdd([ this ], [ k ]);
29646 return this.curve._wnafMul(this, k);
29649 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
29650 var points = [ this, p2 ];
29651 var coeffs = [ k1, k2 ];
29652 if (this.curve.endo)
29653 return this.curve._endoWnafMulAdd(points, coeffs);
29655 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
29658 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
29659 var points = [ this, p2 ];
29660 var coeffs = [ k1, k2 ];
29661 if (this.curve.endo)
29662 return this.curve._endoWnafMulAdd(points, coeffs, true);
29664 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
29667 Point.prototype.eq = function eq(p) {
29668 return this === p ||
29669 this.inf === p.inf &&
29670 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
29673 Point.prototype.neg = function neg(_precompute) {
29677 var res = this.curve.point(this.x, this.y.redNeg());
29678 if (_precompute && this.precomputed) {
29679 var pre = this.precomputed;
29680 var negate = function(p) {
29683 res.precomputed = {
29686 points: pre.naf.points.map(negate)
29688 doubles: pre.doubles && {
29689 step: pre.doubles.step,
29690 points: pre.doubles.points.map(negate)
29697 Point.prototype.toJ = function toJ() {
29699 return this.curve.jpoint(null, null, null);
29701 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
29705 function JPoint(curve, x, y, z) {
29706 Base.BasePoint.call(this, curve, 'jacobian');
29707 if (x === null && y === null && z === null) {
29708 this.x = this.curve.one;
29709 this.y = this.curve.one;
29710 this.z = new BN(
0);
29712 this.x = new BN(x,
16);
29713 this.y = new BN(y,
16);
29714 this.z = new BN(z,
16);
29717 this.x = this.x.toRed(this.curve.red);
29719 this.y = this.y.toRed(this.curve.red);
29721 this.z = this.z.toRed(this.curve.red);
29723 this.zOne = this.z === this.curve.one;
29725 inherits(JPoint, Base.BasePoint);
29727 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
29728 return new JPoint(this, x, y, z);
29731 JPoint.prototype.toP = function toP() {
29732 if (this.isInfinity())
29733 return this.curve.point(null, null);
29735 var zinv = this.z.redInvm();
29736 var zinv2 = zinv.redSqr();
29737 var ax = this.x.redMul(zinv2);
29738 var ay = this.y.redMul(zinv2).redMul(zinv);
29740 return this.curve.point(ax, ay);
29743 JPoint.prototype.neg = function neg() {
29744 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
29747 JPoint.prototype.add = function add(p) {
29749 if (this.isInfinity())
29753 if (p.isInfinity())
29757 var pz2 = p.z.redSqr();
29758 var z2 = this.z.redSqr();
29759 var u1 = this.x.redMul(pz2);
29760 var u2 = p.x.redMul(z2);
29761 var s1 = this.y.redMul(pz2.redMul(p.z));
29762 var s2 = p.y.redMul(z2.redMul(this.z));
29764 var h = u1.redSub(u2);
29765 var r = s1.redSub(s2);
29766 if (h.cmpn(
0) ===
0) {
29767 if (r.cmpn(
0) !==
0)
29768 return this.curve.jpoint(null, null, null);
29773 var h2 = h.redSqr();
29774 var h3 = h2.redMul(h);
29775 var v = u1.redMul(h2);
29777 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
29778 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
29779 var nz = this.z.redMul(p.z).redMul(h);
29781 return this.curve.jpoint(nx, ny, nz);
29784 JPoint.prototype.mixedAdd = function mixedAdd(p) {
29786 if (this.isInfinity())
29790 if (p.isInfinity())
29794 var z2 = this.z.redSqr();
29796 var u2 = p.x.redMul(z2);
29798 var s2 = p.y.redMul(z2).redMul(this.z);
29800 var h = u1.redSub(u2);
29801 var r = s1.redSub(s2);
29802 if (h.cmpn(
0) ===
0) {
29803 if (r.cmpn(
0) !==
0)
29804 return this.curve.jpoint(null, null, null);
29809 var h2 = h.redSqr();
29810 var h3 = h2.redMul(h);
29811 var v = u1.redMul(h2);
29813 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
29814 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
29815 var nz = this.z.redMul(h);
29817 return this.curve.jpoint(nx, ny, nz);
29820 JPoint.prototype.dblp = function dblp(pow) {
29823 if (this.isInfinity())
29828 if (this.curve.zeroA || this.curve.threeA) {
29830 for (var i =
0; i < pow; i++)
29835 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
29836 // N =
1 =
> 6M +
6S +
9A
29837 var a = this.curve.a;
29838 var tinv = this.curve.tinv;
29843 var jz4 = jz.redSqr().redSqr();
29846 var jyd = jy.redAdd(jy);
29847 for (var i =
0; i < pow; i++) {
29848 var jx2 = jx.redSqr();
29849 var jyd2 = jyd.redSqr();
29850 var jyd4 = jyd2.redSqr();
29851 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
29853 var t1 = jx.redMul(jyd2);
29854 var nx = c.redSqr().redISub(t1.redAdd(t1));
29855 var t2 = t1.redISub(nx);
29856 var dny = c.redMul(t2);
29857 dny = dny.redIAdd(dny).redISub(jyd4);
29858 var nz = jyd.redMul(jz);
29860 jz4 = jz4.redMul(jyd4);
29867 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
29870 JPoint.prototype.dbl = function dbl() {
29871 if (this.isInfinity())
29874 if (this.curve.zeroA)
29875 return this._zeroDbl();
29876 else if (this.curve.threeA)
29877 return this._threeDbl();
29879 return this._dbl();
29882 JPoint.prototype._zeroDbl = function _zeroDbl() {
29888 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
29889 // #doubling-mdbl-
2007-bl
29893 var xx = this.x.redSqr();
29895 var yy = this.y.redSqr();
29897 var yyyy = yy.redSqr();
29898 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
29899 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
29901 // M =
3 * XX + a; a =
0
29902 var m = xx.redAdd(xx).redIAdd(xx);
29904 var t = m.redSqr().redISub(s).redISub(s);
29907 var yyyy8 = yyyy.redIAdd(yyyy);
29908 yyyy8 = yyyy8.redIAdd(yyyy8);
29909 yyyy8 = yyyy8.redIAdd(yyyy8);
29913 // Y3 = M * (S - T) -
8 * YYYY
29914 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
29916 nz = this.y.redAdd(this.y);
29918 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
29919 // #doubling-dbl-
2009-l
29923 var a = this.x.redSqr();
29925 var b = this.y.redSqr();
29927 var c = b.redSqr();
29928 // D =
2 * ((X1 + B)^
2 - A - C)
29929 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
29932 var e = a.redAdd(a).redIAdd(a);
29934 var f = e.redSqr();
29937 var c8 = c.redIAdd(c);
29938 c8 = c8.redIAdd(c8);
29939 c8 = c8.redIAdd(c8);
29942 nx = f.redISub(d).redISub(d);
29943 // Y3 = E * (D - X3) -
8 * C
29944 ny = e.redMul(d.redISub(nx)).redISub(c8);
29945 // Z3 =
2 * Y1 * Z1
29946 nz = this.y.redMul(this.z);
29947 nz = nz.redIAdd(nz);
29950 return this.curve.jpoint(nx, ny, nz);
29953 JPoint.prototype._threeDbl = function _threeDbl() {
29959 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
29960 // #doubling-mdbl-
2007-bl
29964 var xx = this.x.redSqr();
29966 var yy = this.y.redSqr();
29968 var yyyy = yy.redSqr();
29969 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
29970 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
29973 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
29975 var t = m.redSqr().redISub(s).redISub(s);
29978 // Y3 = M * (S - T) -
8 * YYYY
29979 var yyyy8 = yyyy.redIAdd(yyyy);
29980 yyyy8 = yyyy8.redIAdd(yyyy8);
29981 yyyy8 = yyyy8.redIAdd(yyyy8);
29982 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
29984 nz = this.y.redAdd(this.y);
29986 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
29990 var delta = this.z.redSqr();
29992 var gamma = this.y.redSqr();
29993 // beta = X1 * gamma
29994 var beta = this.x.redMul(gamma);
29995 // alpha =
3 * (X1 - delta) * (X1 + delta)
29996 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
29997 alpha = alpha.redAdd(alpha).redIAdd(alpha);
29998 // X3 = alpha^
2 -
8 * beta
29999 var beta4 = beta.redIAdd(beta);
30000 beta4 = beta4.redIAdd(beta4);
30001 var beta8 = beta4.redAdd(beta4);
30002 nx = alpha.redSqr().redISub(beta8);
30003 // Z3 = (Y1 + Z1)^
2 - gamma - delta
30004 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
30005 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
30006 var ggamma8 = gamma.redSqr();
30007 ggamma8 = ggamma8.redIAdd(ggamma8);
30008 ggamma8 = ggamma8.redIAdd(ggamma8);
30009 ggamma8 = ggamma8.redIAdd(ggamma8);
30010 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
30013 return this.curve.jpoint(nx, ny, nz);
30016 JPoint.prototype._dbl = function _dbl() {
30017 var a = this.curve.a;
30023 var jz4 = jz.redSqr().redSqr();
30025 var jx2 = jx.redSqr();
30026 var jy2 = jy.redSqr();
30028 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
30030 var jxd4 = jx.redAdd(jx);
30031 jxd4 = jxd4.redIAdd(jxd4);
30032 var t1 = jxd4.redMul(jy2);
30033 var nx = c.redSqr().redISub(t1.redAdd(t1));
30034 var t2 = t1.redISub(nx);
30036 var jyd8 = jy2.redSqr();
30037 jyd8 = jyd8.redIAdd(jyd8);
30038 jyd8 = jyd8.redIAdd(jyd8);
30039 jyd8 = jyd8.redIAdd(jyd8);
30040 var ny = c.redMul(t2).redISub(jyd8);
30041 var nz = jy.redAdd(jy).redMul(jz);
30043 return this.curve.jpoint(nx, ny, nz);
30046 JPoint.prototype.trpl = function trpl() {
30047 if (!this.curve.zeroA)
30048 return this.dbl().add(this);
30050 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
30054 var xx = this.x.redSqr();
30056 var yy = this.y.redSqr();
30058 var zz = this.z.redSqr();
30060 var yyyy = yy.redSqr();
30061 // M =
3 * XX + a * ZZ2; a =
0
30062 var m = xx.redAdd(xx).redIAdd(xx);
30064 var mm = m.redSqr();
30065 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
30066 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
30068 e = e.redAdd(e).redIAdd(e);
30071 var ee = e.redSqr();
30073 var t = yyyy.redIAdd(yyyy);
30077 // U = (M + E)^
2 - MM - EE - T
30078 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
30079 // X3 =
4 * (X1 * EE -
4 * YY * U)
30080 var yyu4 = yy.redMul(u);
30081 yyu4 = yyu4.redIAdd(yyu4);
30082 yyu4 = yyu4.redIAdd(yyu4);
30083 var nx = this.x.redMul(ee).redISub(yyu4);
30084 nx = nx.redIAdd(nx);
30085 nx = nx.redIAdd(nx);
30086 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
30087 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
30088 ny = ny.redIAdd(ny);
30089 ny = ny.redIAdd(ny);
30090 ny = ny.redIAdd(ny);
30091 // Z3 = (Z1 + E)^
2 - ZZ - EE
30092 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
30094 return this.curve.jpoint(nx, ny, nz);
30097 JPoint.prototype.mul = function mul(k, kbase) {
30098 k = new BN(k, kbase);
30100 return this.curve._wnafMul(this, k);
30103 JPoint.prototype.eq = function eq(p) {
30104 if (p.type === 'affine')
30105 return this.eq(p.toJ());
30110 // x1 * z2^
2 == x2 * z1^
2
30111 var z2 = this.z.redSqr();
30112 var pz2 = p.z.redSqr();
30113 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
30116 // y1 * z2^
3 == y2 * z1^
3
30117 var z3 = z2.redMul(this.z);
30118 var pz3 = pz2.redMul(p.z);
30119 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
30122 JPoint.prototype.eqXToP = function eqXToP(x) {
30123 var zs = this.z.redSqr();
30124 var rx = x.toRed(this.curve.red).redMul(zs);
30125 if (this.x.cmp(rx) ===
0)
30128 var xc = x.clone();
30129 var t = this.curve.redN.redMul(zs);
30131 xc.iadd(this.curve.n);
30132 if (xc.cmp(this.curve.p)
>=
0)
30136 if (this.x.cmp(rx) ===
0)
30142 JPoint.prototype.inspect = function inspect() {
30143 if (this.isInfinity())
30144 return '
<EC JPoint Infinity
>';
30145 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
30146 ' y: ' + this.y.toString(
16,
2) +
30147 ' z: ' + this.z.toString(
16,
2) + '
>';
30150 JPoint.prototype.isInfinity = function isInfinity() {
30151 // XXX This code assumes that zero is always zero in red
30152 return this.z.cmpn(
0) ===
0;
30155 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
30158 var curves = exports;
30160 var hash = require('hash.js');
30161 var elliptic = require('../elliptic');
30163 var assert = elliptic.utils.assert;
30165 function PresetCurve(options) {
30166 if (options.type === 'short')
30167 this.curve = new elliptic.curve.short(options);
30168 else if (options.type === 'edwards')
30169 this.curve = new elliptic.curve.edwards(options);
30171 this.curve = new elliptic.curve.mont(options);
30172 this.g = this.curve.g;
30173 this.n = this.curve.n;
30174 this.hash = options.hash;
30176 assert(this.g.validate(), 'Invalid curve');
30177 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
30179 curves.PresetCurve = PresetCurve;
30181 function defineCurve(name, options) {
30182 Object.defineProperty(curves, name, {
30183 configurable: true,
30186 var curve = new PresetCurve(options);
30187 Object.defineProperty(curves, name, {
30188 configurable: true,
30197 defineCurve('p192', {
30200 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
30201 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
30202 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
30203 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
30207 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
30208 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
30212 defineCurve('p224', {
30215 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
30216 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
30217 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
30218 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
30222 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
30223 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
30227 defineCurve('p256', {
30230 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
30231 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
30232 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
30233 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
30237 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
30238 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
30242 defineCurve('p384', {
30245 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30246 'fffffffe ffffffff
00000000 00000000 ffffffff',
30247 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30248 'fffffffe ffffffff
00000000 00000000 fffffffc',
30249 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
30250 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
30251 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
30252 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
30256 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
30257 '
5502f25d bf55296c
3a545e38
72760ab7',
30258 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
30259 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
30263 defineCurve('p521', {
30266 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30267 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30268 'ffffffff ffffffff ffffffff ffffffff ffffffff',
30269 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30270 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30271 'ffffffff ffffffff ffffffff ffffffff fffffffc',
30272 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
30273 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
30274 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
30275 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30276 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
30277 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
30281 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
30282 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
30283 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
30284 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
30285 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
30286 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
30290 defineCurve('curve25519', {
30293 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30296 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30304 defineCurve('ed25519', {
30307 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30310 // -
121665 * (
121666^(-
1)) (mod P)
30311 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
30312 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30316 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
30319 '
6666666666666666666666666666666666666666666666666666666666666658'
30325 pre = require('./precomputed/secp256k1');
30330 defineCurve('secp256k1', {
30333 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
30336 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
30340 // Precomputed endomorphism
30341 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
30342 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
30345 a: '
3086d221a7d46bcde86c90e49284eb15',
30346 b: '-e4437ed6010e88286f547fa90abfe4c3'
30349 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
30350 b: '
3086d221a7d46bcde86c90e49284eb15'
30356 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
30357 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
30362 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
30365 var BN = require('bn.js');
30366 var elliptic = require('../../elliptic');
30367 var utils = elliptic.utils;
30368 var assert = utils.assert;
30370 var KeyPair = require('./key');
30371 var Signature = require('./signature');
30373 function EC(options) {
30374 if (!(this instanceof EC))
30375 return new EC(options);
30377 // Shortcut `elliptic.ec(curve-name)`
30378 if (typeof options === 'string') {
30379 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
30381 options = elliptic.curves[options];
30384 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
30385 if (options instanceof elliptic.curves.PresetCurve)
30386 options = { curve: options };
30388 this.curve = options.curve.curve;
30389 this.n = this.curve.n;
30390 this.nh = this.n.ushrn(
1);
30391 this.g = this.curve.g;
30394 this.g = options.curve.g;
30395 this.g.precompute(options.curve.n.bitLength() +
1);
30397 // Hash for function for DRBG
30398 this.hash = options.hash || options.curve.hash;
30400 module.exports = EC;
30402 EC.prototype.keyPair = function keyPair(options) {
30403 return new KeyPair(this, options);
30406 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
30407 return KeyPair.fromPrivate(this, priv, enc);
30410 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
30411 return KeyPair.fromPublic(this, pub, enc);
30414 EC.prototype.genKeyPair = function genKeyPair(options) {
30418 // Instantiate Hmac_DRBG
30419 var drbg = new elliptic.hmacDRBG({
30421 pers: options.pers,
30422 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
30423 nonce: this.n.toArray()
30426 var bytes = this.n.byteLength();
30427 var ns2 = this.n.sub(new BN(
2));
30429 var priv = new BN(drbg.generate(bytes));
30430 if (priv.cmp(ns2)
> 0)
30434 return this.keyFromPrivate(priv);
30438 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
30439 var delta = msg.byteLength() *
8 - this.n.bitLength();
30441 msg = msg.ushrn(delta);
30442 if (!truncOnly && msg.cmp(this.n)
>=
0)
30443 return msg.sub(this.n);
30448 EC.prototype.sign = function sign(msg, key, enc, options) {
30449 if (typeof enc === 'object') {
30456 key = this.keyFromPrivate(key, enc);
30457 msg = this._truncateToN(new BN(msg,
16));
30459 // Zero-extend key to provide enough entropy
30460 var bytes = this.n.byteLength();
30461 var bkey = key.getPrivate().toArray('be', bytes);
30463 // Zero-extend nonce to have the same byte size as N
30464 var nonce = msg.toArray('be', bytes);
30466 // Instantiate Hmac_DRBG
30467 var drbg = new elliptic.hmacDRBG({
30471 pers: options.pers,
30472 persEnc: options.persEnc
30475 // Number of bytes to generate
30476 var ns1 = this.n.sub(new BN(
1));
30478 for (var iter =
0; true; iter++) {
30479 var k = options.k ?
30481 new BN(drbg.generate(this.n.byteLength()));
30482 k = this._truncateToN(k, true);
30483 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
30486 var kp = this.g.mul(k);
30487 if (kp.isInfinity())
30490 var kpX = kp.getX();
30491 var r = kpX.umod(this.n);
30492 if (r.cmpn(
0) ===
0)
30495 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
30496 s = s.umod(this.n);
30497 if (s.cmpn(
0) ===
0)
30500 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
30501 (kpX.cmp(r) !==
0 ?
2 :
0);
30503 // Use complement of `s`, if it is
> `n /
2`
30504 if (options.canonical && s.cmp(this.nh)
> 0) {
30506 recoveryParam ^=
1;
30509 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
30513 EC.prototype.verify = function verify(msg, signature, key, enc) {
30514 msg = this._truncateToN(new BN(msg,
16));
30515 key = this.keyFromPublic(key, enc);
30516 signature = new Signature(signature, 'hex');
30518 // Perform primitive values validation
30519 var r = signature.r;
30520 var s = signature.s;
30521 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
30523 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
30526 // Validate signature
30527 var sinv = s.invm(this.n);
30528 var u1 = sinv.mul(msg).umod(this.n);
30529 var u2 = sinv.mul(r).umod(this.n);
30531 if (!this.curve._maxwellTrick) {
30532 var p = this.g.mulAdd(u1, key.getPublic(), u2);
30533 if (p.isInfinity())
30536 return p.getX().umod(this.n).cmp(r) ===
0;
30539 // NOTE: Greg Maxwell's trick, inspired by:
30540 // https://git.io/vad3K
30542 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
30543 if (p.isInfinity())
30546 // Compare `p.x` of Jacobian point with `r`,
30547 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
30548 // inverse of `p.z^
2`
30549 return p.eqXToP(r);
30552 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
30553 assert((
3 & j) === j, 'The recovery param is more than two bits');
30554 signature = new Signature(signature, enc);
30557 var e = new BN(msg);
30558 var r = signature.r;
30559 var s = signature.s;
30561 // A set LSB signifies that the y-coordinate is odd
30562 var isYOdd = j &
1;
30563 var isSecondKey = j
>> 1;
30564 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
30565 throw new Error('Unable to find sencond key candinate');
30567 //
1.1. Let x = r + jn.
30569 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
30571 r = this.curve.pointFromX(r, isYOdd);
30573 var rInv = signature.r.invm(n);
30574 var s1 = n.sub(e).mul(rInv).umod(n);
30575 var s2 = s.mul(rInv).umod(n);
30577 //
1.6.1 Compute Q = r^-
1 (sR - eG)
30578 // Q = r^-
1 (sR + -eG)
30579 return this.g.mulAdd(s1, r, s2);
30582 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
30583 signature = new Signature(signature, enc);
30584 if (signature.recoveryParam !== null)
30585 return signature.recoveryParam;
30587 for (var i =
0; i <
4; i++) {
30590 Qprime = this.recoverPubKey(e, signature, i);
30598 throw new Error('Unable to find valid recovery factor');
30601 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
30604 var BN = require('bn.js');
30605 var elliptic = require('../../elliptic');
30606 var utils = elliptic.utils;
30607 var assert = utils.assert;
30609 function KeyPair(ec, options) {
30614 // KeyPair(ec, { priv: ..., pub: ... })
30616 this._importPrivate(options.priv, options.privEnc);
30618 this._importPublic(options.pub, options.pubEnc);
30620 module.exports = KeyPair;
30622 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
30623 if (pub instanceof KeyPair)
30626 return new KeyPair(ec, {
30632 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
30633 if (priv instanceof KeyPair)
30636 return new KeyPair(ec, {
30642 KeyPair.prototype.validate = function validate() {
30643 var pub = this.getPublic();
30645 if (pub.isInfinity())
30646 return { result: false, reason: 'Invalid public key' };
30647 if (!pub.validate())
30648 return { result: false, reason: 'Public key is not a point' };
30649 if (!pub.mul(this.ec.curve.n).isInfinity())
30650 return { result: false, reason: 'Public key * N != O' };
30652 return { result: true, reason: null };
30655 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
30656 // compact is optional argument
30657 if (typeof compact === 'string') {
30663 this.pub = this.ec.g.mul(this.priv);
30668 return this.pub.encode(enc, compact);
30671 KeyPair.prototype.getPrivate = function getPrivate(enc) {
30673 return this.priv.toString(
16,
2);
30678 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
30679 this.priv = new BN(key, enc ||
16);
30681 // Ensure that the priv won't be bigger than n, otherwise we may fail
30682 // in fixed multiplication method
30683 this.priv = this.priv.umod(this.ec.curve.n);
30686 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
30687 if (key.x || key.y) {
30688 // Montgomery points only have an `x` coordinate.
30689 // Weierstrass/Edwards points on the other hand have both `x` and
30690 // `y` coordinates.
30691 if (this.ec.curve.type === 'mont') {
30692 assert(key.x, 'Need x coordinate');
30693 } else if (this.ec.curve.type === 'short' ||
30694 this.ec.curve.type === 'edwards') {
30695 assert(key.x && key.y, 'Need both x and y coordinate');
30697 this.pub = this.ec.curve.point(key.x, key.y);
30700 this.pub = this.ec.curve.decodePoint(key, enc);
30704 KeyPair.prototype.derive = function derive(pub) {
30705 return pub.mul(this.priv).getX();
30709 KeyPair.prototype.sign = function sign(msg, enc, options) {
30710 return this.ec.sign(msg, this, enc, options);
30713 KeyPair.prototype.verify = function verify(msg, signature) {
30714 return this.ec.verify(msg, signature, this);
30717 KeyPair.prototype.inspect = function inspect() {
30718 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
30719 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
30722 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
30725 var BN = require('bn.js');
30727 var elliptic = require('../../elliptic');
30728 var utils = elliptic.utils;
30729 var assert = utils.assert;
30731 function Signature(options, enc) {
30732 if (options instanceof Signature)
30735 if (this._importDER(options, enc))
30738 assert(options.r && options.s, 'Signature without r or s');
30739 this.r = new BN(options.r,
16);
30740 this.s = new BN(options.s,
16);
30741 if (options.recoveryParam === undefined)
30742 this.recoveryParam = null;
30744 this.recoveryParam = options.recoveryParam;
30746 module.exports = Signature;
30748 function Position() {
30752 function getLength(buf, p) {
30753 var initial = buf[p.place++];
30754 if (!(initial &
0x80)) {
30757 var octetLen = initial &
0xf;
30759 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
30767 function rmPadding(buf) {
30769 var len = buf.length -
1;
30770 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
30776 return buf.slice(i);
30779 Signature.prototype._importDER = function _importDER(data, enc) {
30780 data = utils.toArray(data, enc);
30781 var p = new Position();
30782 if (data[p.place++] !==
0x30) {
30785 var len = getLength(data, p);
30786 if ((len + p.place) !== data.length) {
30789 if (data[p.place++] !==
0x02) {
30792 var rlen = getLength(data, p);
30793 var r = data.slice(p.place, rlen + p.place);
30795 if (data[p.place++] !==
0x02) {
30798 var slen = getLength(data, p);
30799 if (data.length !== slen + p.place) {
30802 var s = data.slice(p.place, slen + p.place);
30803 if (r[
0] ===
0 && (r[
1] &
0x80)) {
30806 if (s[
0] ===
0 && (s[
1] &
0x80)) {
30810 this.r = new BN(r);
30811 this.s = new BN(s);
30812 this.recoveryParam = null;
30817 function constructLength(arr, len) {
30822 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
30823 arr.push(octets |
0x80);
30825 arr.push((len
>>> (octets <<
3)) &
0xff);
30830 Signature.prototype.toDER = function toDER(enc) {
30831 var r = this.r.toArray();
30832 var s = this.s.toArray();
30836 r = [
0 ].concat(r);
30839 s = [
0 ].concat(s);
30844 while (!s[
0] && !(s[
1] &
0x80)) {
30847 var arr = [
0x02 ];
30848 constructLength(arr, r.length);
30849 arr = arr.concat(r);
30851 constructLength(arr, s.length);
30852 var backHalf = arr.concat(s);
30853 var res = [
0x30 ];
30854 constructLength(res, backHalf.length);
30855 res = res.concat(backHalf);
30856 return utils.encode(res, enc);
30859 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
30862 var hash = require('hash.js');
30863 var elliptic = require('../../elliptic');
30864 var utils = elliptic.utils;
30865 var assert = utils.assert;
30866 var parseBytes = utils.parseBytes;
30867 var KeyPair = require('./key');
30868 var Signature = require('./signature');
30870 function EDDSA(curve) {
30871 assert(curve === 'ed25519', 'only tested with ed25519 so far');
30873 if (!(this instanceof EDDSA))
30874 return new EDDSA(curve);
30876 var curve = elliptic.curves[curve].curve;
30877 this.curve = curve;
30879 this.g.precompute(curve.n.bitLength() +
1);
30881 this.pointClass = curve.point().constructor;
30882 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
30883 this.hash = hash.sha512;
30886 module.exports = EDDSA;
30889 * @param {Array|String} message - message bytes
30890 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
30891 * @returns {Signature} - signature
30893 EDDSA.prototype.sign = function sign(message, secret) {
30894 message = parseBytes(message);
30895 var key = this.keyFromSecret(secret);
30896 var r = this.hashInt(key.messagePrefix(), message);
30897 var R = this.g.mul(r);
30898 var Rencoded = this.encodePoint(R);
30899 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
30901 var S = r.add(s_).umod(this.curve.n);
30902 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
30906 * @param {Array} message - message bytes
30907 * @param {Array|String|Signature} sig - sig bytes
30908 * @param {Array|String|Point|KeyPair} pub - public key
30909 * @returns {Boolean} - true if public key matches sig of message
30911 EDDSA.prototype.verify = function verify(message, sig, pub) {
30912 message = parseBytes(message);
30913 sig = this.makeSignature(sig);
30914 var key = this.keyFromPublic(pub);
30915 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
30916 var SG = this.g.mul(sig.S());
30917 var RplusAh = sig.R().add(key.pub().mul(h));
30918 return RplusAh.eq(SG);
30921 EDDSA.prototype.hashInt = function hashInt() {
30922 var hash = this.hash();
30923 for (var i =
0; i < arguments.length; i++)
30924 hash.update(arguments[i]);
30925 return utils.intFromLE(hash.digest()).umod(this.curve.n);
30928 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
30929 return KeyPair.fromPublic(this, pub);
30932 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
30933 return KeyPair.fromSecret(this, secret);
30936 EDDSA.prototype.makeSignature = function makeSignature(sig) {
30937 if (sig instanceof Signature)
30939 return new Signature(this, sig);
30943 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
30945 * EDDSA defines methods for encoding and decoding points and integers. These are
30946 * helper convenience methods, that pass along to utility functions implied
30950 EDDSA.prototype.encodePoint = function encodePoint(point) {
30951 var enc = point.getY().toArray('le', this.encodingLength);
30952 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
30956 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
30957 bytes = utils.parseBytes(bytes);
30959 var lastIx = bytes.length -
1;
30960 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
30961 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
30963 var y = utils.intFromLE(normed);
30964 return this.curve.pointFromY(y, xIsOdd);
30967 EDDSA.prototype.encodeInt = function encodeInt(num) {
30968 return num.toArray('le', this.encodingLength);
30971 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
30972 return utils.intFromLE(bytes);
30975 EDDSA.prototype.isPoint = function isPoint(val) {
30976 return val instanceof this.pointClass;
30979 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
30982 var elliptic = require('../../elliptic');
30983 var utils = elliptic.utils;
30984 var assert = utils.assert;
30985 var parseBytes = utils.parseBytes;
30986 var cachedProperty = utils.cachedProperty;
30989 * @param {EDDSA} eddsa - instance
30990 * @param {Object} params - public/private key parameters
30992 * @param {Array
<Byte>} [params.secret] - secret seed bytes
30993 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
30994 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
30997 function KeyPair(eddsa, params) {
30998 this.eddsa = eddsa;
30999 this._secret = parseBytes(params.secret);
31000 if (eddsa.isPoint(params.pub))
31001 this._pub = params.pub;
31003 this._pubBytes = parseBytes(params.pub);
31006 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
31007 if (pub instanceof KeyPair)
31009 return new KeyPair(eddsa, { pub: pub });
31012 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
31013 if (secret instanceof KeyPair)
31015 return new KeyPair(eddsa, { secret: secret });
31018 KeyPair.prototype.secret = function secret() {
31019 return this._secret;
31022 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
31023 return this.eddsa.encodePoint(this.pub());
31026 cachedProperty(KeyPair, 'pub', function pub() {
31027 if (this._pubBytes)
31028 return this.eddsa.decodePoint(this._pubBytes);
31029 return this.eddsa.g.mul(this.priv());
31032 cachedProperty(KeyPair, 'privBytes', function privBytes() {
31033 var eddsa = this.eddsa;
31034 var hash = this.hash();
31035 var lastIx = eddsa.encodingLength -
1;
31037 var a = hash.slice(
0, eddsa.encodingLength);
31045 cachedProperty(KeyPair, 'priv', function priv() {
31046 return this.eddsa.decodeInt(this.privBytes());
31049 cachedProperty(KeyPair, 'hash', function hash() {
31050 return this.eddsa.hash().update(this.secret()).digest();
31053 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
31054 return this.hash().slice(this.eddsa.encodingLength);
31057 KeyPair.prototype.sign = function sign(message) {
31058 assert(this._secret, 'KeyPair can only verify');
31059 return this.eddsa.sign(message, this);
31062 KeyPair.prototype.verify = function verify(message, sig) {
31063 return this.eddsa.verify(message, sig, this);
31066 KeyPair.prototype.getSecret = function getSecret(enc) {
31067 assert(this._secret, 'KeyPair is public only');
31068 return utils.encode(this.secret(), enc);
31071 KeyPair.prototype.getPublic = function getPublic(enc) {
31072 return utils.encode(this.pubBytes(), enc);
31075 module.exports = KeyPair;
31077 },{"../../elliptic":
39}],
51:[function(require,module,exports){
31080 var BN = require('bn.js');
31081 var elliptic = require('../../elliptic');
31082 var utils = elliptic.utils;
31083 var assert = utils.assert;
31084 var cachedProperty = utils.cachedProperty;
31085 var parseBytes = utils.parseBytes;
31088 * @param {EDDSA} eddsa - eddsa instance
31089 * @param {Array
<Bytes>|Object} sig -
31090 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
31091 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
31092 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
31093 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
31095 function Signature(eddsa, sig) {
31096 this.eddsa = eddsa;
31098 if (typeof sig !== 'object')
31099 sig = parseBytes(sig);
31101 if (Array.isArray(sig)) {
31103 R: sig.slice(
0, eddsa.encodingLength),
31104 S: sig.slice(eddsa.encodingLength)
31108 assert(sig.R && sig.S, 'Signature without R or S');
31110 if (eddsa.isPoint(sig.R))
31112 if (sig.S instanceof BN)
31115 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
31116 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
31119 cachedProperty(Signature, 'S', function S() {
31120 return this.eddsa.decodeInt(this.Sencoded());
31123 cachedProperty(Signature, 'R', function R() {
31124 return this.eddsa.decodePoint(this.Rencoded());
31127 cachedProperty(Signature, 'Rencoded', function Rencoded() {
31128 return this.eddsa.encodePoint(this.R());
31131 cachedProperty(Signature, 'Sencoded', function Sencoded() {
31132 return this.eddsa.encodeInt(this.S());
31135 Signature.prototype.toBytes = function toBytes() {
31136 return this.Rencoded().concat(this.Sencoded());
31139 Signature.prototype.toHex = function toHex() {
31140 return utils.encode(this.toBytes(), 'hex').toUpperCase();
31143 module.exports = Signature;
31145 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
31148 var hash = require('hash.js');
31149 var elliptic = require('../elliptic');
31150 var utils = elliptic.utils;
31151 var assert = utils.assert;
31153 function HmacDRBG(options) {
31154 if (!(this instanceof HmacDRBG))
31155 return new HmacDRBG(options);
31156 this.hash = options.hash;
31157 this.predResist = !!options.predResist;
31159 this.outLen = this.hash.outSize;
31160 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
31162 this.reseed = null;
31163 this.reseedInterval = null;
31167 var entropy = utils.toArray(options.entropy, options.entropyEnc);
31168 var nonce = utils.toArray(options.nonce, options.nonceEnc);
31169 var pers = utils.toArray(options.pers, options.persEnc);
31170 assert(entropy.length
>= (this.minEntropy /
8),
31171 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31172 this._init(entropy, nonce, pers);
31174 module.exports = HmacDRBG;
31176 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
31177 var seed = entropy.concat(nonce).concat(pers);
31179 this.K = new Array(this.outLen /
8);
31180 this.V = new Array(this.outLen /
8);
31181 for (var i =
0; i < this.V.length; i++) {
31186 this._update(seed);
31188 this.reseedInterval =
0x1000000000000; //
2^
48
31191 HmacDRBG.prototype._hmac = function hmac() {
31192 return new hash.hmac(this.hash, this.K);
31195 HmacDRBG.prototype._update = function update(seed) {
31196 var kmac = this._hmac()
31200 kmac = kmac.update(seed);
31201 this.K = kmac.digest();
31202 this.V = this._hmac().update(this.V).digest();
31206 this.K = this._hmac()
31211 this.V = this._hmac().update(this.V).digest();
31214 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
31215 // Optional entropy enc
31216 if (typeof entropyEnc !== 'string') {
31222 entropy = utils.toBuffer(entropy, entropyEnc);
31223 add = utils.toBuffer(add, addEnc);
31225 assert(entropy.length
>= (this.minEntropy /
8),
31226 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31228 this._update(entropy.concat(add || []));
31232 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
31233 if (this.reseed
> this.reseedInterval)
31234 throw new Error('Reseed is required');
31236 // Optional encoding
31237 if (typeof enc !== 'string') {
31243 // Optional additional data
31245 add = utils.toArray(add, addEnc);
31250 while (temp.length < len) {
31251 this.V = this._hmac().update(this.V).digest();
31252 temp = temp.concat(this.V);
31255 var res = temp.slice(
0, len);
31258 return utils.encode(res, enc);
31261 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
31267 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
31268 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
31271 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
31272 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
31275 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
31276 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
31279 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
31280 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
31283 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
31284 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
31287 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
31288 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
31291 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
31292 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
31295 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
31296 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
31299 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
31300 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
31303 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
31304 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
31307 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
31308 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
31311 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
31312 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
31315 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
31316 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
31319 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
31320 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
31323 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
31324 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
31327 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
31328 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
31331 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
31332 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
31335 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
31336 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
31339 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
31340 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
31343 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
31344 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
31347 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
31348 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
31351 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
31352 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
31355 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
31356 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
31359 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
31360 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
31363 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
31364 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
31367 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
31368 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
31371 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
31372 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
31375 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
31376 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
31379 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
31380 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
31383 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
31384 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
31387 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
31388 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
31391 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
31392 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
31395 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
31396 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
31399 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
31400 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
31403 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
31404 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
31407 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
31408 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
31411 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
31412 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
31415 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
31416 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
31419 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
31420 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
31423 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
31424 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
31427 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
31428 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
31431 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
31432 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
31435 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
31436 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
31439 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
31440 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
31443 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
31444 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
31447 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
31448 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
31451 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
31452 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
31455 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
31456 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
31459 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
31460 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
31463 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
31464 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
31467 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
31468 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
31471 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
31472 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
31475 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
31476 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
31479 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
31480 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
31483 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
31484 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
31487 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
31488 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
31491 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
31492 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
31495 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
31496 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
31499 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
31500 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
31503 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
31504 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
31507 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
31508 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
31511 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
31512 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
31515 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
31516 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
31519 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
31520 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
31523 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
31524 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
31532 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
31533 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
31536 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
31537 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
31540 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
31541 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
31544 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
31545 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
31548 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
31549 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
31552 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
31553 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
31556 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
31557 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
31560 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
31561 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
31564 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
31565 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
31568 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
31569 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
31572 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
31573 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
31576 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
31577 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
31580 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
31581 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
31584 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
31585 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
31588 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
31589 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
31592 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
31593 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
31596 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
31597 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
31600 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
31601 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
31604 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
31605 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
31608 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
31609 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
31612 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
31613 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
31616 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
31617 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
31620 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
31621 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
31624 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
31625 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
31628 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
31629 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
31632 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
31633 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
31636 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
31637 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
31640 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
31641 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
31644 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
31645 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
31648 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
31649 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
31652 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
31653 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
31656 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
31657 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
31660 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
31661 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
31664 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
31665 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
31668 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
31669 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
31672 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
31673 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
31676 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
31677 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
31680 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
31681 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
31684 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
31685 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
31688 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
31689 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
31692 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
31693 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
31696 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
31697 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
31700 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
31701 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
31704 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
31705 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
31708 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
31709 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
31712 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
31713 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
31716 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
31717 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
31720 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
31721 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
31724 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
31725 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
31728 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
31729 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
31732 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
31733 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
31736 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
31737 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
31740 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
31741 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
31744 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
31745 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
31748 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
31749 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
31752 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
31753 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
31756 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
31757 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
31760 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
31761 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
31764 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
31765 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
31768 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
31769 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
31772 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
31773 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
31776 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
31777 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
31780 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
31781 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
31784 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
31785 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
31788 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
31789 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
31792 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
31793 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
31796 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
31797 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
31800 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
31801 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
31804 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
31805 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
31808 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
31809 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
31812 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
31813 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
31816 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
31817 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
31820 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
31821 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
31824 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
31825 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
31828 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
31829 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
31832 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
31833 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
31836 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
31837 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
31840 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
31841 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
31844 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
31845 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
31848 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
31849 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
31852 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
31853 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
31856 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
31857 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
31860 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
31861 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
31864 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
31865 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
31868 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
31869 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
31872 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
31873 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
31876 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
31877 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
31880 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
31881 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
31884 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
31885 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
31888 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
31889 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
31892 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
31893 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
31896 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
31897 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
31900 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
31901 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
31904 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
31905 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
31908 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
31909 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
31912 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
31913 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
31916 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
31917 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
31920 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
31921 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
31924 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
31925 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
31928 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
31929 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
31932 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
31933 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
31936 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
31937 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
31940 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
31941 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
31944 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
31945 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
31948 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
31949 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
31952 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
31953 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
31956 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
31957 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
31960 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
31961 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
31964 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
31965 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
31968 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
31969 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
31972 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
31973 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
31976 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
31977 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
31980 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
31981 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
31984 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
31985 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
31988 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
31989 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
31992 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
31993 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
31996 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
31997 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
32000 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
32001 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
32004 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
32005 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
32008 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
32009 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
32012 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
32013 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
32016 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
32017 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
32020 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
32021 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
32024 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
32025 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
32028 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
32029 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
32032 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
32033 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
32036 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
32037 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
32043 },{}],
54:[function(require,module,exports){
32046 var utils = exports;
32047 var BN = require('bn.js');
32049 utils.assert = function assert(val, msg) {
32051 throw new Error(msg || 'Assertion failed');
32054 function toArray(msg, enc) {
32055 if (Array.isArray(msg))
32056 return msg.slice();
32060 if (typeof msg !== 'string') {
32061 for (var i =
0; i < msg.length; i++)
32062 res[i] = msg[i] |
0;
32066 for (var i =
0; i < msg.length; i++) {
32067 var c = msg.charCodeAt(i);
32075 } else if (enc === 'hex') {
32076 msg = msg.replace(/[^a-z0-
9]+/ig, '');
32077 if (msg.length %
2 !==
0)
32079 for (var i =
0; i < msg.length; i +=
2)
32080 res.push(parseInt(msg[i] + msg[i +
1],
16));
32084 utils.toArray = toArray;
32086 function zero2(word) {
32087 if (word.length ===
1)
32092 utils.zero2 = zero2;
32094 function toHex(msg) {
32096 for (var i =
0; i < msg.length; i++)
32097 res += zero2(msg[i].toString(
16));
32100 utils.toHex = toHex;
32102 utils.encode = function encode(arr, enc) {
32109 // Represent num in a w-NAF form
32110 function getNAF(num, w) {
32112 var ws =
1 << (w +
1);
32113 var k = num.clone();
32114 while (k.cmpn(
1)
>=
0) {
32117 var mod = k.andln(ws -
1);
32118 if (mod
> (ws
>> 1) -
1)
32119 z = (ws
>> 1) - mod;
32128 // Optimization, shift by word if possible
32129 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
32130 for (var i =
1; i < shift; i++)
32137 utils.getNAF = getNAF;
32139 // Represent k1, k2 in a Joint Sparse Form
32140 function getJSF(k1, k2) {
32150 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
32153 var m14 = (k1.andln(
3) + d1) &
3;
32154 var m24 = (k2.andln(
3) + d2) &
3;
32160 if ((m14 &
1) ===
0) {
32163 var m8 = (k1.andln(
7) + d1) &
7;
32164 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
32172 if ((m24 &
1) ===
0) {
32175 var m8 = (k2.andln(
7) + d2) &
7;
32176 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
32184 if (
2 * d1 === u1 +
1)
32186 if (
2 * d2 === u2 +
1)
32194 utils.getJSF = getJSF;
32196 function cachedProperty(obj, name, computer) {
32197 var key = '_' + name;
32198 obj.prototype[name] = function cachedProperty() {
32199 return this[key] !== undefined ? this[key] :
32200 this[key] = computer.call(this);
32203 utils.cachedProperty = cachedProperty;
32205 function parseBytes(bytes) {
32206 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
32209 utils.parseBytes = parseBytes;
32211 function intFromLE(bytes) {
32212 return new BN(bytes, 'hex', 'le');
32214 utils.intFromLE = intFromLE;
32217 },{
"bn.js":
33}],
55:[function(require,module,exports){
32222 "raw":
"elliptic@^6.2.3",
32224 "escapedName":
"elliptic",
32225 "name":
"elliptic",
32226 "rawSpec":
"^6.2.3",
32227 "spec":
">=6.2.3 <7.0.0",
32230 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
32233 "_from":
"elliptic@>=6.2.3 <7.0.0",
32234 "_id":
"elliptic@6.3.3",
32236 "_location":
"/elliptic",
32237 "_nodeVersion":
"7.0.0",
32238 "_npmOperationalInternal": {
32239 "host":
"packages-18-east.internal.npmjs.com",
32240 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
32244 "email":
"fedor@indutny.com"
32246 "_npmVersion":
"3.10.8",
32247 "_phantomChildren": {},
32249 "raw":
"elliptic@^6.2.3",
32251 "escapedName":
"elliptic",
32252 "name":
"elliptic",
32253 "rawSpec":
"^6.2.3",
32254 "spec":
">=6.2.3 <7.0.0",
32258 "/browserify-sign",
32262 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
32263 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32264 "_shrinkwrap": null,
32265 "_spec":
"elliptic@^6.2.3",
32266 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
32268 "name":
"Fedor Indutny",
32269 "email":
"fedor@indutny.com"
32272 "url":
"https://github.com/indutny/elliptic/issues"
32276 "brorand":
"^1.0.1",
32277 "hash.js":
"^1.0.0",
32278 "inherits":
"^2.0.1"
32280 "description":
"EC cryptography",
32281 "devDependencies": {
32283 "coveralls":
"^2.11.3",
32285 "grunt-browserify":
"^5.0.0",
32286 "grunt-cli":
"^1.2.0",
32287 "grunt-contrib-connect":
"^1.0.0",
32288 "grunt-contrib-copy":
"^1.0.0",
32289 "grunt-contrib-uglify":
"^1.0.1",
32290 "grunt-mocha-istanbul":
"^3.0.1",
32291 "grunt-saucelabs":
"^8.6.2",
32292 "istanbul":
"^0.4.2",
32294 "jshint":
"^2.6.0",
32299 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32300 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
32305 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
32306 "homepage":
"https://github.com/indutny/elliptic",
32314 "main":
"lib/elliptic.js",
32318 "email":
"fedor@indutny.com"
32321 "name":
"elliptic",
32322 "optionalDependencies": {},
32323 "readme":
"ERROR: No README data found!",
32326 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
32329 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32330 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32331 "lint":
"npm run jscs && npm run jshint",
32332 "test":
"npm run lint && npm run unit",
32333 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
32334 "version":
"grunt dist && git add dist/"
32339 },{}],
56:[function(require,module,exports){
32340 (function (Buffer){
32343 var isHexPrefixed = require('is-hex-prefixed');
32344 var stripHexPrefix = require('strip-hex-prefix');
32347 * Pads a `String` to have an even length
32348 * @param {String} value
32349 * @return {String} output
32351 function padToEven(value) {
32352 var a = value; // eslint-disable-line
32354 if (typeof a !== 'string') {
32355 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
32358 if (a.length %
2) {
32366 * Converts a `Number` into a hex `String`
32367 * @param {Number} i
32370 function intToHex(i) {
32371 var hex = i.toString(
16); // eslint-disable-line
32373 return '
0x' + padToEven(hex);
32377 * Converts an `Number` to a `Buffer`
32378 * @param {Number} i
32381 function intToBuffer(i) {
32382 var hex = intToHex(i);
32384 return new Buffer(hex.slice(
2), 'hex');
32388 * Get the binary size of a string
32389 * @param {String} str
32392 function getBinarySize(str) {
32393 if (typeof str !== 'string') {
32394 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
32397 return Buffer.byteLength(str, 'utf8');
32401 * Returns TRUE if the first specified array contains all elements
32402 * from the second one. FALSE otherwise.
32404 * @param {array} superset
32405 * @param {array} subset
32407 * @returns {boolean}
32409 function arrayContainsArray(superset, subset, some) {
32410 if (Array.isArray(superset) !== true) {
32411 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
32413 if (Array.isArray(subset) !== true) {
32414 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
32417 return subset[Boolean(some) && 'some' || 'every'](function (value) {
32418 return superset.indexOf(value)
>=
0;
32423 * Should be called to get utf8 from it's hex representation
32426 * @param {String} string in hex
32427 * @returns {String} ascii string representation of hex value
32429 function toUtf8(hex) {
32430 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
32432 return bufferValue.toString('utf8');
32436 * Should be called to get ascii from it's hex representation
32439 * @param {String} string in hex
32440 * @returns {String} ascii string representation of hex value
32442 function toAscii(hex) {
32443 var str = ''; // eslint-disable-line
32445 l = hex.length; // eslint-disable-line
32447 if (hex.substring(
0,
2) === '
0x') {
32451 for (; i < l; i +=
2) {
32452 var code = parseInt(hex.substr(i,
2),
16);
32453 str += String.fromCharCode(code);
32460 * Should be called to get hex representation (prefixed by
0x) of utf8 string
32463 * @param {String} string
32464 * @param {Number} optional padding
32465 * @returns {String} hex representation of input string
32467 function fromUtf8(stringValue) {
32468 var str = new Buffer(stringValue, 'utf8');
32470 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
32474 * Should be called to get hex representation (prefixed by
0x) of ascii string
32476 * @method fromAscii
32477 * @param {String} string
32478 * @param {Number} optional padding
32479 * @returns {String} hex representation of input string
32481 function fromAscii(stringValue) {
32482 var hex = ''; // eslint-disable-line
32483 for (var i =
0; i < stringValue.length; i++) {
32484 // eslint-disable-line
32485 var code = stringValue.charCodeAt(i);
32486 var n = code.toString(
16);
32487 hex += n.length <
2 ? '
0' + n : n;
32494 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
32496 * @method getKeys get specific key from inner object array of objects
32497 * @param {String} params
32498 * @param {String} key
32499 * @param {Boolean} allowEmpty
32500 * @returns {Array} output just a simple array of output keys
32502 function getKeys(params, key, allowEmpty) {
32503 if (!Array.isArray(params)) {
32504 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
32506 if (typeof key !== 'string') {
32507 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
32510 var result = []; // eslint-disable-line
32512 for (var i =
0; i < params.length; i++) {
32513 // eslint-disable-line
32514 var value = params[i][key]; // eslint-disable-line
32515 if (allowEmpty && !value) {
32517 } else if (typeof value !== 'string') {
32518 throw new Error('invalid abi');
32520 result.push(value);
32527 * Is the string a hex string.
32529 * @method check if string is hex string of specific length
32530 * @param {String} value
32531 * @param {Number} length
32532 * @returns {Boolean} output the string is a hex string
32534 function isHexString(value, length) {
32535 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
32539 if (length && value.length !==
2 +
2 * length) {
32547 arrayContainsArray: arrayContainsArray,
32548 intToBuffer: intToBuffer,
32549 getBinarySize: getBinarySize,
32550 isHexPrefixed: isHexPrefixed,
32551 stripHexPrefix: stripHexPrefix,
32552 padToEven: padToEven,
32553 intToHex: intToHex,
32554 fromAscii: fromAscii,
32555 fromUtf8: fromUtf8,
32559 isHexString: isHexString
32561 }).call(this,require("buffer").Buffer)
32562 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
32563 var hash = exports;
32565 hash.utils = require('./hash/utils');
32566 hash.common = require('./hash/common');
32567 hash.sha = require('./hash/sha');
32568 hash.ripemd = require('./hash/ripemd');
32569 hash.hmac = require('./hash/hmac');
32571 // Proxy hash functions to the main object
32572 hash.sha1 = hash.sha.sha1;
32573 hash.sha256 = hash.sha.sha256;
32574 hash.sha224 = hash.sha.sha224;
32575 hash.sha384 = hash.sha.sha384;
32576 hash.sha512 = hash.sha.sha512;
32577 hash.ripemd160 = hash.ripemd.ripemd160;
32579 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
32580 var hash = require('../hash');
32581 var utils = hash.utils;
32582 var assert = utils.assert;
32584 function BlockHash() {
32585 this.pending = null;
32586 this.pendingTotal =
0;
32587 this.blockSize = this.constructor.blockSize;
32588 this.outSize = this.constructor.outSize;
32589 this.hmacStrength = this.constructor.hmacStrength;
32590 this.padLength = this.constructor.padLength /
8;
32591 this.endian = 'big';
32593 this._delta8 = this.blockSize /
8;
32594 this._delta32 = this.blockSize /
32;
32596 exports.BlockHash = BlockHash;
32598 BlockHash.prototype.update = function update(msg, enc) {
32599 // Convert message to array, pad it, and join into
32bit blocks
32600 msg = utils.toArray(msg, enc);
32602 this.pending = msg;
32604 this.pending = this.pending.concat(msg);
32605 this.pendingTotal += msg.length;
32607 // Enough data, try updating
32608 if (this.pending.length
>= this._delta8) {
32609 msg = this.pending;
32611 // Process pending data in blocks
32612 var r = msg.length % this._delta8;
32613 this.pending = msg.slice(msg.length - r, msg.length);
32614 if (this.pending.length ===
0)
32615 this.pending = null;
32617 msg = utils.join32(msg,
0, msg.length - r, this.endian);
32618 for (var i =
0; i < msg.length; i += this._delta32)
32619 this._update(msg, i, i + this._delta32);
32625 BlockHash.prototype.digest = function digest(enc) {
32626 this.update(this._pad());
32627 assert(this.pending === null);
32629 return this._digest(enc);
32632 BlockHash.prototype._pad = function pad() {
32633 var len = this.pendingTotal;
32634 var bytes = this._delta8;
32635 var k = bytes - ((len + this.padLength) % bytes);
32636 var res = new Array(k + this.padLength);
32638 for (var i =
1; i < k; i++)
32643 if (this.endian === 'big') {
32644 for (var t =
8; t < this.padLength; t++)
32651 res[i++] = (len
>>> 24) &
0xff;
32652 res[i++] = (len
>>> 16) &
0xff;
32653 res[i++] = (len
>>> 8) &
0xff;
32654 res[i++] = len &
0xff;
32656 res[i++] = len &
0xff;
32657 res[i++] = (len
>>> 8) &
0xff;
32658 res[i++] = (len
>>> 16) &
0xff;
32659 res[i++] = (len
>>> 24) &
0xff;
32665 for (var t =
8; t < this.padLength; t++)
32672 },{
"../hash":
57}],
59:[function(require,module,exports){
32673 var hmac = exports;
32675 var hash = require('../hash');
32676 var utils = hash.utils;
32677 var assert = utils.assert;
32679 function Hmac(hash, key, enc) {
32680 if (!(this instanceof Hmac))
32681 return new Hmac(hash, key, enc);
32683 this.blockSize = hash.blockSize /
8;
32684 this.outSize = hash.outSize /
8;
32688 this._init(utils.toArray(key, enc));
32690 module.exports = Hmac;
32692 Hmac.prototype._init = function init(key) {
32693 // Shorten key, if needed
32694 if (key.length
> this.blockSize)
32695 key = new this.Hash().update(key).digest();
32696 assert(key.length <= this.blockSize);
32698 // Add padding to key
32699 for (var i = key.length; i < this.blockSize; i++)
32702 for (var i =
0; i < key.length; i++)
32704 this.inner = new this.Hash().update(key);
32706 //
0x36 ^
0x5c =
0x6a
32707 for (var i =
0; i < key.length; i++)
32709 this.outer = new this.Hash().update(key);
32712 Hmac.prototype.update = function update(msg, enc) {
32713 this.inner.update(msg, enc);
32717 Hmac.prototype.digest = function digest(enc) {
32718 this.outer.update(this.inner.digest());
32719 return this.outer.digest(enc);
32722 },{"../hash":
57}],
60:[function(require,module,exports){
32723 var hash = require('../hash');
32724 var utils = hash.utils;
32726 var rotl32 = utils.rotl32;
32727 var sum32 = utils.sum32;
32728 var sum32_3 = utils.sum32_3;
32729 var sum32_4 = utils.sum32_4;
32730 var BlockHash = hash.common.BlockHash;
32732 function RIPEMD160() {
32733 if (!(this instanceof RIPEMD160))
32734 return new RIPEMD160();
32736 BlockHash.call(this);
32738 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
32739 this.endian = 'little';
32741 utils.inherits(RIPEMD160, BlockHash);
32742 exports.ripemd160 = RIPEMD160;
32744 RIPEMD160.blockSize =
512;
32745 RIPEMD160.outSize =
160;
32746 RIPEMD160.hmacStrength =
192;
32747 RIPEMD160.padLength =
64;
32749 RIPEMD160.prototype._update = function update(msg, start) {
32760 for (var j =
0; j <
80; j++) {
32763 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
32773 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
32778 Dh = rotl32(Ch,
10);
32782 T = sum32_3(this.h[
1], C, Dh);
32783 this.h[
1] = sum32_3(this.h[
2], D, Eh);
32784 this.h[
2] = sum32_3(this.h[
3], E, Ah);
32785 this.h[
3] = sum32_3(this.h[
4], A, Bh);
32786 this.h[
4] = sum32_3(this.h[
0], B, Ch);
32790 RIPEMD160.prototype._digest = function digest(enc) {
32792 return utils.toHex32(this.h, 'little');
32794 return utils.split32(this.h, 'little');
32797 function f(j, x, y, z) {
32801 return (x & y) | ((~x) & z);
32803 return (x | (~y)) ^ z;
32805 return (x & z) | (y & (~z));
32807 return x ^ (y | (~z));
32837 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
32838 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
32839 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
32840 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
32841 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
32845 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
32846 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
32847 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
32848 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
32849 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
32853 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
32854 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
32855 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
32856 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
32857 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
32861 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
32862 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
32863 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
32864 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
32865 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
32868 },{"../hash":
57}],
61:[function(require,module,exports){
32869 var hash = require('../hash');
32870 var utils = hash.utils;
32871 var assert = utils.assert;
32873 var rotr32 = utils.rotr32;
32874 var rotl32 = utils.rotl32;
32875 var sum32 = utils.sum32;
32876 var sum32_4 = utils.sum32_4;
32877 var sum32_5 = utils.sum32_5;
32878 var rotr64_hi = utils.rotr64_hi;
32879 var rotr64_lo = utils.rotr64_lo;
32880 var shr64_hi = utils.shr64_hi;
32881 var shr64_lo = utils.shr64_lo;
32882 var sum64 = utils.sum64;
32883 var sum64_hi = utils.sum64_hi;
32884 var sum64_lo = utils.sum64_lo;
32885 var sum64_4_hi = utils.sum64_4_hi;
32886 var sum64_4_lo = utils.sum64_4_lo;
32887 var sum64_5_hi = utils.sum64_5_hi;
32888 var sum64_5_lo = utils.sum64_5_lo;
32889 var BlockHash = hash.common.BlockHash;
32892 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
32893 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
32894 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
32895 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
32896 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
32897 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
32898 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
32899 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
32900 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
32901 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
32902 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
32903 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
32904 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
32905 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
32906 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
32907 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
32911 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
32912 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
32913 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
32914 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
32915 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
32916 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
32917 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
32918 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
32919 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
32920 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
32921 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
32922 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
32923 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
32924 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
32925 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
32926 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
32927 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
32928 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
32929 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
32930 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
32931 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
32932 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
32933 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
32934 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
32935 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
32936 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
32937 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
32938 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
32939 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
32940 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
32941 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
32942 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
32943 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
32944 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
32945 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
32946 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
32947 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
32948 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
32949 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
32950 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
32954 0x5A827999,
0x6ED9EBA1,
32955 0x8F1BBCDC,
0xCA62C1D6
32958 function SHA256() {
32959 if (!(this instanceof SHA256))
32960 return new SHA256();
32962 BlockHash.call(this);
32963 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
32964 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
32966 this.W = new Array(
64);
32968 utils.inherits(SHA256, BlockHash);
32969 exports.sha256 = SHA256;
32971 SHA256.blockSize =
512;
32972 SHA256.outSize =
256;
32973 SHA256.hmacStrength =
192;
32974 SHA256.padLength =
64;
32976 SHA256.prototype._update = function _update(msg, start) {
32979 for (var i =
0; i <
16; i++)
32980 W[i] = msg[start + i];
32981 for (; i < W.length; i++)
32982 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
32993 assert(this.k.length === W.length);
32994 for (var i =
0; i < W.length; i++) {
32995 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
32996 var T2 = sum32(s0_256(a), maj32(a, b, c));
33007 this.h[
0] = sum32(this.h[
0], a);
33008 this.h[
1] = sum32(this.h[
1], b);
33009 this.h[
2] = sum32(this.h[
2], c);
33010 this.h[
3] = sum32(this.h[
3], d);
33011 this.h[
4] = sum32(this.h[
4], e);
33012 this.h[
5] = sum32(this.h[
5], f);
33013 this.h[
6] = sum32(this.h[
6], g);
33014 this.h[
7] = sum32(this.h[
7], h);
33017 SHA256.prototype._digest = function digest(enc) {
33019 return utils.toHex32(this.h, 'big');
33021 return utils.split32(this.h, 'big');
33024 function SHA224() {
33025 if (!(this instanceof SHA224))
33026 return new SHA224();
33029 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
33030 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
33032 utils.inherits(SHA224, SHA256);
33033 exports.sha224 = SHA224;
33035 SHA224.blockSize =
512;
33036 SHA224.outSize =
224;
33037 SHA224.hmacStrength =
192;
33038 SHA224.padLength =
64;
33040 SHA224.prototype._digest = function digest(enc) {
33041 // Just truncate output
33043 return utils.toHex32(this.h.slice(
0,
7), 'big');
33045 return utils.split32(this.h.slice(
0,
7), 'big');
33048 function SHA512() {
33049 if (!(this instanceof SHA512))
33050 return new SHA512();
33052 BlockHash.call(this);
33053 this.h = [
0x6a09e667,
0xf3bcc908,
33054 0xbb67ae85,
0x84caa73b,
33055 0x3c6ef372,
0xfe94f82b,
33056 0xa54ff53a,
0x5f1d36f1,
33057 0x510e527f,
0xade682d1,
33058 0x9b05688c,
0x2b3e6c1f,
33059 0x1f83d9ab,
0xfb41bd6b,
33060 0x5be0cd19,
0x137e2179 ];
33062 this.W = new Array(
160);
33064 utils.inherits(SHA512, BlockHash);
33065 exports.sha512 = SHA512;
33067 SHA512.blockSize =
1024;
33068 SHA512.outSize =
512;
33069 SHA512.hmacStrength =
192;
33070 SHA512.padLength =
128;
33072 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
33075 //
32 x
32bit words
33076 for (var i =
0; i <
32; i++)
33077 W[i] = msg[start + i];
33078 for (; i < W.length; i +=
2) {
33079 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
33080 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
33081 var c1_hi = W[i -
14]; // i -
7
33082 var c1_lo = W[i -
13];
33083 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
33084 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
33085 var c3_hi = W[i -
32]; // i -
16
33086 var c3_lo = W[i -
31];
33088 W[i] = sum64_4_hi(c0_hi, c0_lo,
33092 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
33099 SHA512.prototype._update = function _update(msg, start) {
33100 this._prepareBlock(msg, start);
33104 var ah = this.h[
0];
33105 var al = this.h[
1];
33106 var bh = this.h[
2];
33107 var bl = this.h[
3];
33108 var ch = this.h[
4];
33109 var cl = this.h[
5];
33110 var dh = this.h[
6];
33111 var dl = this.h[
7];
33112 var eh = this.h[
8];
33113 var el = this.h[
9];
33114 var fh = this.h[
10];
33115 var fl = this.h[
11];
33116 var gh = this.h[
12];
33117 var gl = this.h[
13];
33118 var hh = this.h[
14];
33119 var hl = this.h[
15];
33121 assert(this.k.length === W.length);
33122 for (var i =
0; i < W.length; i +=
2) {
33125 var c1_hi = s1_512_hi(eh, el);
33126 var c1_lo = s1_512_lo(eh, el);
33127 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
33128 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
33129 var c3_hi = this.k[i];
33130 var c3_lo = this.k[i +
1];
33132 var c4_lo = W[i +
1];
33134 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
33139 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
33145 var c0_hi = s0_512_hi(ah, al);
33146 var c0_lo = s0_512_lo(ah, al);
33147 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
33148 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
33150 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
33151 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
33162 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
33163 el = sum64_lo(dl, dl, T1_hi, T1_lo);
33174 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
33175 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
33178 sum64(this.h,
0, ah, al);
33179 sum64(this.h,
2, bh, bl);
33180 sum64(this.h,
4, ch, cl);
33181 sum64(this.h,
6, dh, dl);
33182 sum64(this.h,
8, eh, el);
33183 sum64(this.h,
10, fh, fl);
33184 sum64(this.h,
12, gh, gl);
33185 sum64(this.h,
14, hh, hl);
33188 SHA512.prototype._digest = function digest(enc) {
33190 return utils.toHex32(this.h, 'big');
33192 return utils.split32(this.h, 'big');
33195 function SHA384() {
33196 if (!(this instanceof SHA384))
33197 return new SHA384();
33200 this.h = [
0xcbbb9d5d,
0xc1059ed8,
33201 0x629a292a,
0x367cd507,
33202 0x9159015a,
0x3070dd17,
33203 0x152fecd8,
0xf70e5939,
33204 0x67332667,
0xffc00b31,
33205 0x8eb44a87,
0x68581511,
33206 0xdb0c2e0d,
0x64f98fa7,
33207 0x47b5481d,
0xbefa4fa4 ];
33209 utils.inherits(SHA384, SHA512);
33210 exports.sha384 = SHA384;
33212 SHA384.blockSize =
1024;
33213 SHA384.outSize =
384;
33214 SHA384.hmacStrength =
192;
33215 SHA384.padLength =
128;
33217 SHA384.prototype._digest = function digest(enc) {
33219 return utils.toHex32(this.h.slice(
0,
12), 'big');
33221 return utils.split32(this.h.slice(
0,
12), 'big');
33225 if (!(this instanceof SHA1))
33228 BlockHash.call(this);
33229 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
33230 0x10325476,
0xc3d2e1f0 ];
33231 this.W = new Array(
80);
33234 utils.inherits(SHA1, BlockHash);
33235 exports.sha1 = SHA1;
33237 SHA1.blockSize =
512;
33238 SHA1.outSize =
160;
33239 SHA1.hmacStrength =
80;
33240 SHA1.padLength =
64;
33242 SHA1.prototype._update = function _update(msg, start) {
33245 for (var i =
0; i <
16; i++)
33246 W[i] = msg[start + i];
33248 for(; i < W.length; i++)
33249 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
33257 for (var i =
0; i < W.length; i++) {
33258 var s = ~~(i /
20);
33259 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
33267 this.h[
0] = sum32(this.h[
0], a);
33268 this.h[
1] = sum32(this.h[
1], b);
33269 this.h[
2] = sum32(this.h[
2], c);
33270 this.h[
3] = sum32(this.h[
3], d);
33271 this.h[
4] = sum32(this.h[
4], e);
33274 SHA1.prototype._digest = function digest(enc) {
33276 return utils.toHex32(this.h, 'big');
33278 return utils.split32(this.h, 'big');
33281 function ch32(x, y, z) {
33282 return (x & y) ^ ((~x) & z);
33285 function maj32(x, y, z) {
33286 return (x & y) ^ (x & z) ^ (y & z);
33289 function p32(x, y, z) {
33293 function s0_256(x) {
33294 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
33297 function s1_256(x) {
33298 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
33301 function g0_256(x) {
33302 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
33305 function g1_256(x) {
33306 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
33309 function ft_1(s, x, y, z) {
33311 return ch32(x, y, z);
33312 if (s ===
1 || s ===
3)
33313 return p32(x, y, z);
33315 return maj32(x, y, z);
33318 function ch64_hi(xh, xl, yh, yl, zh, zl) {
33319 var r = (xh & yh) ^ ((~xh) & zh);
33325 function ch64_lo(xh, xl, yh, yl, zh, zl) {
33326 var r = (xl & yl) ^ ((~xl) & zl);
33332 function maj64_hi(xh, xl, yh, yl, zh, zl) {
33333 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
33339 function maj64_lo(xh, xl, yh, yl, zh, zl) {
33340 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
33346 function s0_512_hi(xh, xl) {
33347 var c0_hi = rotr64_hi(xh, xl,
28);
33348 var c1_hi = rotr64_hi(xl, xh,
2); //
34
33349 var c2_hi = rotr64_hi(xl, xh,
7); //
39
33351 var r = c0_hi ^ c1_hi ^ c2_hi;
33357 function s0_512_lo(xh, xl) {
33358 var c0_lo = rotr64_lo(xh, xl,
28);
33359 var c1_lo = rotr64_lo(xl, xh,
2); //
34
33360 var c2_lo = rotr64_lo(xl, xh,
7); //
39
33362 var r = c0_lo ^ c1_lo ^ c2_lo;
33368 function s1_512_hi(xh, xl) {
33369 var c0_hi = rotr64_hi(xh, xl,
14);
33370 var c1_hi = rotr64_hi(xh, xl,
18);
33371 var c2_hi = rotr64_hi(xl, xh,
9); //
41
33373 var r = c0_hi ^ c1_hi ^ c2_hi;
33379 function s1_512_lo(xh, xl) {
33380 var c0_lo = rotr64_lo(xh, xl,
14);
33381 var c1_lo = rotr64_lo(xh, xl,
18);
33382 var c2_lo = rotr64_lo(xl, xh,
9); //
41
33384 var r = c0_lo ^ c1_lo ^ c2_lo;
33390 function g0_512_hi(xh, xl) {
33391 var c0_hi = rotr64_hi(xh, xl,
1);
33392 var c1_hi = rotr64_hi(xh, xl,
8);
33393 var c2_hi = shr64_hi(xh, xl,
7);
33395 var r = c0_hi ^ c1_hi ^ c2_hi;
33401 function g0_512_lo(xh, xl) {
33402 var c0_lo = rotr64_lo(xh, xl,
1);
33403 var c1_lo = rotr64_lo(xh, xl,
8);
33404 var c2_lo = shr64_lo(xh, xl,
7);
33406 var r = c0_lo ^ c1_lo ^ c2_lo;
33412 function g1_512_hi(xh, xl) {
33413 var c0_hi = rotr64_hi(xh, xl,
19);
33414 var c1_hi = rotr64_hi(xl, xh,
29); //
61
33415 var c2_hi = shr64_hi(xh, xl,
6);
33417 var r = c0_hi ^ c1_hi ^ c2_hi;
33423 function g1_512_lo(xh, xl) {
33424 var c0_lo = rotr64_lo(xh, xl,
19);
33425 var c1_lo = rotr64_lo(xl, xh,
29); //
61
33426 var c2_lo = shr64_lo(xh, xl,
6);
33428 var r = c0_lo ^ c1_lo ^ c2_lo;
33434 },{
"../hash":
57}],
62:[function(require,module,exports){
33435 var utils = exports;
33436 var inherits = require('inherits');
33438 function toArray(msg, enc) {
33439 if (Array.isArray(msg))
33440 return msg.slice();
33444 if (typeof msg === 'string') {
33446 for (var i =
0; i < msg.length; i++) {
33447 var c = msg.charCodeAt(i);
33455 } else if (enc === 'hex') {
33456 msg = msg.replace(/[^a-z0-
9]+/ig, '');
33457 if (msg.length %
2 !==
0)
33459 for (var i =
0; i < msg.length; i +=
2)
33460 res.push(parseInt(msg[i] + msg[i +
1],
16));
33463 for (var i =
0; i < msg.length; i++)
33464 res[i] = msg[i] |
0;
33468 utils.toArray = toArray;
33470 function toHex(msg) {
33472 for (var i =
0; i < msg.length; i++)
33473 res += zero2(msg[i].toString(
16));
33476 utils.toHex = toHex;
33478 function htonl(w) {
33479 var res = (w
>>> 24) |
33480 ((w
>>> 8) &
0xff00) |
33481 ((w <<
8) &
0xff0000) |
33482 ((w &
0xff) <<
24);
33485 utils.htonl = htonl;
33487 function toHex32(msg, endian) {
33489 for (var i =
0; i < msg.length; i++) {
33491 if (endian === 'little')
33493 res += zero8(w.toString(
16));
33497 utils.toHex32 = toHex32;
33499 function zero2(word) {
33500 if (word.length ===
1)
33505 utils.zero2 = zero2;
33507 function zero8(word) {
33508 if (word.length ===
7)
33510 else if (word.length ===
6)
33511 return '
00' + word;
33512 else if (word.length ===
5)
33513 return '
000' + word;
33514 else if (word.length ===
4)
33515 return '
0000' + word;
33516 else if (word.length ===
3)
33517 return '
00000' + word;
33518 else if (word.length ===
2)
33519 return '
000000' + word;
33520 else if (word.length ===
1)
33521 return '
0000000' + word;
33525 utils.zero8 = zero8;
33527 function join32(msg, start, end, endian) {
33528 var len = end - start;
33529 assert(len %
4 ===
0);
33530 var res = new Array(len /
4);
33531 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
33533 if (endian === 'big')
33534 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
33536 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
33541 utils.join32 = join32;
33543 function split32(msg, endian) {
33544 var res = new Array(msg.length *
4);
33545 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
33547 if (endian === 'big') {
33549 res[k +
1] = (m
>>> 16) &
0xff;
33550 res[k +
2] = (m
>>> 8) &
0xff;
33551 res[k +
3] = m &
0xff;
33553 res[k +
3] = m
>>> 24;
33554 res[k +
2] = (m
>>> 16) &
0xff;
33555 res[k +
1] = (m
>>> 8) &
0xff;
33561 utils.split32 = split32;
33563 function rotr32(w, b) {
33564 return (w
>>> b) | (w << (
32 - b));
33566 utils.rotr32 = rotr32;
33568 function rotl32(w, b) {
33569 return (w << b) | (w
>>> (
32 - b));
33571 utils.rotl32 = rotl32;
33573 function sum32(a, b) {
33574 return (a + b)
>>> 0;
33576 utils.sum32 = sum32;
33578 function sum32_3(a, b, c) {
33579 return (a + b + c)
>>> 0;
33581 utils.sum32_3 = sum32_3;
33583 function sum32_4(a, b, c, d) {
33584 return (a + b + c + d)
>>> 0;
33586 utils.sum32_4 = sum32_4;
33588 function sum32_5(a, b, c, d, e) {
33589 return (a + b + c + d + e)
>>> 0;
33591 utils.sum32_5 = sum32_5;
33593 function assert(cond, msg) {
33595 throw new Error(msg || 'Assertion failed');
33597 utils.assert = assert;
33599 utils.inherits = inherits;
33601 function sum64(buf, pos, ah, al) {
33603 var bl = buf[pos +
1];
33605 var lo = (al + bl)
>>> 0;
33606 var hi = (lo < al ?
1 :
0) + ah + bh;
33607 buf[pos] = hi
>>> 0;
33610 exports.sum64 = sum64;
33612 function sum64_hi(ah, al, bh, bl) {
33613 var lo = (al + bl)
>>> 0;
33614 var hi = (lo < al ?
1 :
0) + ah + bh;
33617 exports.sum64_hi = sum64_hi;
33619 function sum64_lo(ah, al, bh, bl) {
33623 exports.sum64_lo = sum64_lo;
33625 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
33628 lo = (lo + bl)
>>> 0;
33629 carry += lo < al ?
1 :
0;
33630 lo = (lo + cl)
>>> 0;
33631 carry += lo < cl ?
1 :
0;
33632 lo = (lo + dl)
>>> 0;
33633 carry += lo < dl ?
1 :
0;
33635 var hi = ah + bh + ch + dh + carry;
33638 exports.sum64_4_hi = sum64_4_hi;
33640 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
33641 var lo = al + bl + cl + dl;
33644 exports.sum64_4_lo = sum64_4_lo;
33646 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
33649 lo = (lo + bl)
>>> 0;
33650 carry += lo < al ?
1 :
0;
33651 lo = (lo + cl)
>>> 0;
33652 carry += lo < cl ?
1 :
0;
33653 lo = (lo + dl)
>>> 0;
33654 carry += lo < dl ?
1 :
0;
33655 lo = (lo + el)
>>> 0;
33656 carry += lo < el ?
1 :
0;
33658 var hi = ah + bh + ch + dh + eh + carry;
33661 exports.sum64_5_hi = sum64_5_hi;
33663 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
33664 var lo = al + bl + cl + dl + el;
33668 exports.sum64_5_lo = sum64_5_lo;
33670 function rotr64_hi(ah, al, num) {
33671 var r = (al << (
32 - num)) | (ah
>>> num);
33674 exports.rotr64_hi = rotr64_hi;
33676 function rotr64_lo(ah, al, num) {
33677 var r = (ah << (
32 - num)) | (al
>>> num);
33680 exports.rotr64_lo = rotr64_lo;
33682 function shr64_hi(ah, al, num) {
33685 exports.shr64_hi = shr64_hi;
33687 function shr64_lo(ah, al, num) {
33688 var r = (ah << (
32 - num)) | (al
>>> num);
33691 exports.shr64_lo = shr64_lo;
33693 },{
"inherits":
63}],
63:[function(require,module,exports){
33694 arguments[
4][
9][
0].apply(exports,arguments)
33695 },{
"dup":
9}],
64:[function(require,module,exports){
33697 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
33698 * @param {String} str the string input value
33699 * @return {Boolean} a boolean if it is or is not hex prefixed
33700 * @throws if the str input is not a string
33702 module.exports = function isHexPrefixed(str) {
33703 if (typeof str !== 'string') {
33704 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
33707 return str.slice(
0,
2) === '
0x';
33710 },{}],
65:[function(require,module,exports){
33712 module.exports = require('./lib/api')(require('./lib/keccak'))
33714 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
33716 var createKeccak = require('./keccak')
33717 var createShake = require('./shake')
33719 module.exports = function (KeccakState) {
33720 var Keccak = createKeccak(KeccakState)
33721 var Shake = createShake(KeccakState)
33723 return function (algorithm, options) {
33724 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
33726 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
33727 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
33728 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
33729 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
33731 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
33732 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
33733 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
33734 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
33736 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
33737 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
33739 default: throw new Error('Invald algorithm: ' + algorithm)
33744 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
33745 (function (Buffer){
33747 var Transform = require('stream').Transform
33748 var inherits = require('inherits')
33750 module.exports = function (KeccakState) {
33751 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
33752 Transform.call(this, options)
33755 this._capacity = capacity
33756 this._delimitedSuffix = delimitedSuffix
33757 this._hashBitLength = hashBitLength
33758 this._options = options
33760 this._state = new KeccakState()
33761 this._state.initialize(rate, capacity)
33762 this._finalized = false
33765 inherits(Keccak, Transform)
33767 Keccak.prototype._transform = function (chunk, encoding, callback) {
33770 this.update(chunk, encoding)
33778 Keccak.prototype._flush = function (callback) {
33781 this.push(this.digest())
33789 Keccak.prototype.update = function (data, encoding) {
33790 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
33791 if (this._finalized) throw new Error('Digest already called')
33792 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
33794 this._state.absorb(data)
33799 Keccak.prototype.digest = function (encoding) {
33800 if (this._finalized) throw new Error('Digest already called')
33801 this._finalized = true
33803 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
33804 var digest = this._state.squeeze(this._hashBitLength /
8)
33805 if (encoding !== undefined) digest = digest.toString(encoding)
33812 // remove result from memory
33813 Keccak.prototype._resetState = function () {
33814 this._state.initialize(this._rate, this._capacity)
33818 // because sometimes we need hash right now and little later
33819 Keccak.prototype._clone = function () {
33820 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
33821 this._state.copy(clone._state)
33822 clone._finalized = this._finalized
33830 }).call(this,require(
"buffer").Buffer)
33831 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
33832 (function (Buffer){
33834 var Transform = require('stream').Transform
33835 var inherits = require('inherits')
33837 module.exports = function (KeccakState) {
33838 function Shake (rate, capacity, delimitedSuffix, options) {
33839 Transform.call(this, options)
33842 this._capacity = capacity
33843 this._delimitedSuffix = delimitedSuffix
33844 this._options = options
33846 this._state = new KeccakState()
33847 this._state.initialize(rate, capacity)
33848 this._finalized = false
33851 inherits(Shake, Transform)
33853 Shake.prototype._transform = function (chunk, encoding, callback) {
33856 this.update(chunk, encoding)
33864 Shake.prototype._flush = function () {}
33866 Shake.prototype._read = function (size) {
33867 this.push(this.squeeze(size))
33870 Shake.prototype.update = function (data, encoding) {
33871 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
33872 if (this._finalized) throw new Error('Squeeze already called')
33873 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
33875 this._state.absorb(data)
33880 Shake.prototype.squeeze = function (dataByteLength, encoding) {
33881 if (!this._finalized) {
33882 this._finalized = true
33883 this._state.absorbLastFewBits(this._delimitedSuffix)
33886 var data = this._state.squeeze(dataByteLength)
33887 if (encoding !== undefined) data = data.toString(encoding)
33892 Shake.prototype._resetState = function () {
33893 this._state.initialize(this._rate, this._capacity)
33897 Shake.prototype._clone = function () {
33898 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
33899 this._state.copy(clone._state)
33900 clone._finalized = this._finalized
33908 }).call(this,require(
"buffer").Buffer)
33909 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
33911 var P1600_ROUND_CONSTANTS = [
1,
0,
32898,
0,
32906,
2147483648,
2147516416,
2147483648,
32907,
0,
2147483649,
0,
2147516545,
2147483648,
32777,
2147483648,
138,
0,
136,
0,
2147516425,
0,
2147483658,
0,
2147516555,
0,
139,
2147483648,
32905,
2147483648,
32771,
2147483648,
32770,
2147483648,
128,
2147483648,
32778,
0,
2147483658,
2147483648,
2147516545,
2147483648,
32896,
2147483648,
2147483649,
0,
2147516424,
2147483648]
33913 exports.p1600 = function (s) {
33914 for (var round =
0; round <
24; ++round) {
33916 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
33917 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
33918 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
33919 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
33920 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
33921 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
33922 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
33923 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
33924 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
33925 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
33927 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
33928 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
33929 var t1slo0 = s[
0] ^ lo
33930 var t1shi0 = s[
1] ^ hi
33931 var t1slo5 = s[
10] ^ lo
33932 var t1shi5 = s[
11] ^ hi
33933 var t1slo10 = s[
20] ^ lo
33934 var t1shi10 = s[
21] ^ hi
33935 var t1slo15 = s[
30] ^ lo
33936 var t1shi15 = s[
31] ^ hi
33937 var t1slo20 = s[
40] ^ lo
33938 var t1shi20 = s[
41] ^ hi
33939 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
33940 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
33941 var t1slo1 = s[
2] ^ lo
33942 var t1shi1 = s[
3] ^ hi
33943 var t1slo6 = s[
12] ^ lo
33944 var t1shi6 = s[
13] ^ hi
33945 var t1slo11 = s[
22] ^ lo
33946 var t1shi11 = s[
23] ^ hi
33947 var t1slo16 = s[
32] ^ lo
33948 var t1shi16 = s[
33] ^ hi
33949 var t1slo21 = s[
42] ^ lo
33950 var t1shi21 = s[
43] ^ hi
33951 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
33952 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
33953 var t1slo2 = s[
4] ^ lo
33954 var t1shi2 = s[
5] ^ hi
33955 var t1slo7 = s[
14] ^ lo
33956 var t1shi7 = s[
15] ^ hi
33957 var t1slo12 = s[
24] ^ lo
33958 var t1shi12 = s[
25] ^ hi
33959 var t1slo17 = s[
34] ^ lo
33960 var t1shi17 = s[
35] ^ hi
33961 var t1slo22 = s[
44] ^ lo
33962 var t1shi22 = s[
45] ^ hi
33963 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
33964 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
33965 var t1slo3 = s[
6] ^ lo
33966 var t1shi3 = s[
7] ^ hi
33967 var t1slo8 = s[
16] ^ lo
33968 var t1shi8 = s[
17] ^ hi
33969 var t1slo13 = s[
26] ^ lo
33970 var t1shi13 = s[
27] ^ hi
33971 var t1slo18 = s[
36] ^ lo
33972 var t1shi18 = s[
37] ^ hi
33973 var t1slo23 = s[
46] ^ lo
33974 var t1shi23 = s[
47] ^ hi
33975 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
33976 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
33977 var t1slo4 = s[
8] ^ lo
33978 var t1shi4 = s[
9] ^ hi
33979 var t1slo9 = s[
18] ^ lo
33980 var t1shi9 = s[
19] ^ hi
33981 var t1slo14 = s[
28] ^ lo
33982 var t1shi14 = s[
29] ^ hi
33983 var t1slo19 = s[
38] ^ lo
33984 var t1shi19 = s[
39] ^ hi
33985 var t1slo24 = s[
48] ^ lo
33986 var t1shi24 = s[
49] ^ hi
33989 var t2slo0 = t1slo0
33990 var t2shi0 = t1shi0
33991 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
33992 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
33993 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
33994 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
33995 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
33996 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
33997 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
33998 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
33999 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
34000 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
34001 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
34002 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
34003 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
34004 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
34005 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
34006 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
34007 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
34008 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
34009 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
34010 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
34011 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
34012 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
34013 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
34014 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
34015 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
34016 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
34017 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
34018 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
34019 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
34020 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
34021 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
34022 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
34023 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
34024 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
34025 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
34026 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
34027 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
34028 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
34029 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
34030 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
34031 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
34032 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
34033 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
34034 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
34035 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
34036 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
34037 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
34038 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
34041 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
34042 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
34043 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
34044 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
34045 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
34046 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
34047 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
34048 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
34049 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
34050 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
34051 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
34052 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
34053 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
34054 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
34055 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
34056 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
34057 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
34058 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
34059 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
34060 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
34061 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
34062 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
34063 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
34064 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
34065 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
34066 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
34067 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
34068 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
34069 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
34070 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
34071 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
34072 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
34073 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
34074 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
34075 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
34076 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
34077 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
34078 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
34079 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
34080 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
34081 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
34082 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
34083 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
34084 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
34085 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
34086 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
34087 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
34088 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
34089 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
34090 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
34093 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
34094 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
34098 },{}],
70:[function(require,module,exports){
34099 (function (Buffer){
34101 var keccakState = require('./keccak-state-unroll')
34103 function Keccak () {
34104 // much faster than `new Array(
50)`
34113 this.blockSize = null
34115 this.squeezing = false
34118 Keccak.prototype.initialize = function (rate, capacity) {
34119 for (var i =
0; i <
50; ++i) this.state[i] =
0
34120 this.blockSize = rate /
8
34122 this.squeezing = false
34125 Keccak.prototype.absorb = function (data) {
34126 for (var i =
0; i < data.length; ++i) {
34127 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
34129 if (this.count === this.blockSize) {
34130 keccakState.p1600(this.state)
34136 Keccak.prototype.absorbLastFewBits = function (bits) {
34137 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
34138 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
34139 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
34140 keccakState.p1600(this.state)
34142 this.squeezing = true
34145 Keccak.prototype.squeeze = function (length) {
34146 if (!this.squeezing) this.absorbLastFewBits(
0x01)
34148 var output = Buffer.allocUnsafe(length)
34149 for (var i =
0; i < length; ++i) {
34150 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
34152 if (this.count === this.blockSize) {
34153 keccakState.p1600(this.state)
34161 Keccak.prototype.copy = function (dest) {
34162 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
34163 dest.blockSize = this.blockSize
34164 dest.count = this.count
34165 dest.squeezing = this.squeezing
34168 module.exports = Keccak
34170 }).call(this,require("buffer").Buffer)
34171 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
34172 (function (Buffer){
34175 code.google.com/p/crypto-js
34176 (c)
2009-
2013 by Jeff Mott. All rights reserved.
34177 code.google.com/p/crypto-js/wiki/License
34180 (c)
2012 by Cédric Mesnil. All rights reserved.
34182 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
34184 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
34185 - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
34187 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34192 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
34193 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
34194 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
34195 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
34196 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
34200 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
34201 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
34202 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
34203 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
34204 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
34208 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
34209 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
34210 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
34211 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
34212 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
34216 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
34217 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
34218 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
34219 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
34220 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
34223 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
34224 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
34226 function bytesToWords (bytes) {
34228 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
34229 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
34234 function wordsToBytes (words) {
34236 for (var b =
0; b < words.length *
32; b +=
8) {
34237 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
34242 function processBlock (H, M, offset) {
34244 for (var i =
0; i <
16; i++) {
34245 var offset_i = offset + i
34246 var M_offset_i = M[offset_i]
34250 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
34251 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
34255 // Working variables
34256 var al, bl, cl, dl, el
34257 var ar, br, cr, dr, er
34267 for (i =
0; i <
80; i +=
1) {
34268 t = (al + M[offset + zl[i]]) |
0
34270 t += f1(bl, cl, dl) + hl[
0]
34271 } else if (i <
32) {
34272 t += f2(bl, cl, dl) + hl[
1]
34273 } else if (i <
48) {
34274 t += f3(bl, cl, dl) + hl[
2]
34275 } else if (i <
64) {
34276 t += f4(bl, cl, dl) + hl[
3]
34277 } else {// if (i
<80) {
34278 t += f5(bl, cl, dl) + hl[
4]
34289 t = (ar + M[offset + zr[i]]) |
0
34291 t += f5(br, cr, dr) + hr[
0]
34292 } else if (i <
32) {
34293 t += f4(br, cr, dr) + hr[
1]
34294 } else if (i <
48) {
34295 t += f3(br, cr, dr) + hr[
2]
34296 } else if (i <
64) {
34297 t += f2(br, cr, dr) + hr[
3]
34298 } else {// if (i
<80) {
34299 t += f1(br, cr, dr) + hr[
4]
34312 // intermediate hash value
34313 t = (H[
1] + cl + dr) |
0
34314 H[
1] = (H[
2] + dl + er) |
0
34315 H[
2] = (H[
3] + el + ar) |
0
34316 H[
3] = (H[
4] + al + br) |
0
34317 H[
4] = (H[
0] + bl + cr) |
0
34321 function f1 (x, y, z) {
34322 return ((x) ^ (y) ^ (z))
34325 function f2 (x, y, z) {
34326 return (((x) & (y)) | ((~x) & (z)))
34329 function f3 (x, y, z) {
34330 return (((x) | (~(y))) ^ (z))
34333 function f4 (x, y, z) {
34334 return (((x) & (z)) | ((y) & (~(z))))
34337 function f5 (x, y, z) {
34338 return ((x) ^ ((y) | (~(z))))
34341 function rotl (x, n) {
34342 return (x << n) | (x
>>> (
32 - n))
34345 function ripemd160 (message) {
34346 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
34348 if (typeof message === 'string') {
34349 message = new Buffer(message, 'utf8')
34352 var m = bytesToWords(message)
34354 var nBitsLeft = message.length *
8
34355 var nBitsTotal = message.length *
8
34358 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
34359 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
34360 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
34361 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
34364 for (var i =
0; i < m.length; i +=
16) {
34365 processBlock(H, m, i)
34369 for (i =
0; i <
5; i++) {
34374 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
34375 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
34378 var digestbytes = wordsToBytes(H)
34379 return new Buffer(digestbytes)
34382 module.exports = ripemd160
34384 }).call(this,require(
"buffer").Buffer)
34385 },{
"buffer":
5}],
72:[function(require,module,exports){
34386 (function (Buffer){
34387 const assert = require('assert')
34389 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
34390 * This function takes in a data, convert it to buffer if not, and a length for recursion
34392 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34393 * @returns {Buffer} - returns buffer of encoded data
34395 exports.encode = function (input) {
34396 if (input instanceof Array) {
34398 for (var i =
0; i < input.length; i++) {
34399 output.push(exports.encode(input[i]))
34401 var buf = Buffer.concat(output)
34402 return Buffer.concat([encodeLength(buf.length,
192), buf])
34404 input = toBuffer(input)
34405 if (input.length ===
1 && input[
0] <
128) {
34408 return Buffer.concat([encodeLength(input.length,
128), input])
34413 function safeParseInt (v, base) {
34414 if (v.slice(
0,
2) === '
00') {
34415 throw (new Error('invalid RLP: extra zeros'))
34418 return parseInt(v, base)
34421 function encodeLength (len, offset) {
34423 return new Buffer([len + offset])
34425 var hexLength = intToHex(len)
34426 var lLength = hexLength.length /
2
34427 var firstByte = intToHex(offset +
55 + lLength)
34428 return new Buffer(firstByte + hexLength, 'hex')
34433 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
34434 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34435 * @returns {Array} - returns decode Array of Buffers containg the original message
34437 exports.decode = function (input, stream) {
34438 if (!input || input.length ===
0) {
34439 return new Buffer([])
34442 input = toBuffer(input)
34443 var decoded = _decode(input)
34449 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
34450 return decoded.data
34453 exports.getLength = function (input) {
34454 if (!input || input.length ===
0) {
34455 return new Buffer([])
34458 input = toBuffer(input)
34459 var firstByte = input[
0]
34460 if (firstByte <=
0x7f) {
34461 return input.length
34462 } else if (firstByte <=
0xb7) {
34463 return firstByte -
0x7f
34464 } else if (firstByte <=
0xbf) {
34465 return firstByte -
0xb6
34466 } else if (firstByte <=
0xf7) {
34467 // a list between
0-
55 bytes long
34468 return firstByte -
0xbf
34470 // a list over
55 bytes long
34471 var llength = firstByte -
0xf6
34472 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34473 return llength + length
34477 function _decode (input) {
34478 var length, llength, data, innerRemainder, d
34480 var firstByte = input[
0]
34482 if (firstByte <=
0x7f) {
34483 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
34485 data: input.slice(
0,
1),
34486 remainder: input.slice(
1)
34488 } else if (firstByte <=
0xb7) {
34489 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
34490 // The range of the first byte is [
0x80,
0xb7]
34491 length = firstByte -
0x7f
34493 // set
0x80 null to
0
34494 if (firstByte ===
0x80) {
34495 data = new Buffer([])
34497 data = input.slice(
1, length)
34500 if (length ===
2 && data[
0] <
0x80) {
34501 throw new Error('invalid rlp encoding: byte must be less
0x80')
34506 remainder: input.slice(length)
34508 } else if (firstByte <=
0xbf) {
34509 llength = firstByte -
0xb6
34510 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34511 data = input.slice(llength, length + llength)
34512 if (data.length < length) {
34513 throw (new Error('invalid RLP'))
34518 remainder: input.slice(length + llength)
34520 } else if (firstByte <=
0xf7) {
34521 // a list between
0-
55 bytes long
34522 length = firstByte -
0xbf
34523 innerRemainder = input.slice(
1, length)
34524 while (innerRemainder.length) {
34525 d = _decode(innerRemainder)
34526 decoded.push(d.data)
34527 innerRemainder = d.remainder
34532 remainder: input.slice(length)
34535 // a list over
55 bytes long
34536 llength = firstByte -
0xf6
34537 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34538 var totalLength = llength + length
34539 if (totalLength
> input.length) {
34540 throw new Error('invalid rlp: total length is larger than the data')
34543 innerRemainder = input.slice(llength, totalLength)
34544 if (innerRemainder.length ===
0) {
34545 throw new Error('invalid rlp, List has a invalid length')
34548 while (innerRemainder.length) {
34549 d = _decode(innerRemainder)
34550 decoded.push(d.data)
34551 innerRemainder = d.remainder
34555 remainder: input.slice(totalLength)
34560 function isHexPrefixed (str) {
34561 return str.slice(
0,
2) === '
0x'
34564 // Removes
0x from a given String
34565 function stripHexPrefix (str) {
34566 if (typeof str !== 'string') {
34569 return isHexPrefixed(str) ? str.slice(
2) : str
34572 function intToHex (i) {
34573 var hex = i.toString(
16)
34574 if (hex.length %
2) {
34581 function padToEven (a) {
34582 if (a.length %
2) a = '
0' + a
34586 function intToBuffer (i) {
34587 var hex = intToHex(i)
34588 return new Buffer(hex, 'hex')
34591 function toBuffer (v) {
34592 if (!Buffer.isBuffer(v)) {
34593 if (typeof v === 'string') {
34594 if (isHexPrefixed(v)) {
34595 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
34599 } else if (typeof v === 'number') {
34605 } else if (v === null || v === undefined) {
34607 } else if (v.toArray) {
34608 // converts a BN to a Buffer
34609 v = new Buffer(v.toArray())
34611 throw new Error('invalid type')
34617 }).call(this,require("buffer").Buffer)
34618 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
34620 module.exports = require('./lib')(require('./lib/elliptic'))
34622 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
34623 (function (Buffer){
34625 var toString = Object.prototype.toString
34628 exports.isArray = function (value, message) {
34629 if (!Array.isArray(value)) throw TypeError(message)
34632 exports.isBoolean = function (value, message) {
34633 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
34636 exports.isBuffer = function (value, message) {
34637 if (!Buffer.isBuffer(value)) throw TypeError(message)
34640 exports.isFunction = function (value, message) {
34641 if (toString.call(value) !== '[object Function]') throw TypeError(message)
34644 exports.isNumber = function (value, message) {
34645 if (toString.call(value) !== '[object Number]') throw TypeError(message)
34648 exports.isObject = function (value, message) {
34649 if (toString.call(value) !== '[object Object]') throw TypeError(message)
34653 exports.isBufferLength = function (buffer, length, message) {
34654 if (buffer.length !== length) throw RangeError(message)
34657 exports.isBufferLength2 = function (buffer, length1, length2, message) {
34658 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
34661 exports.isLengthGTZero = function (value, message) {
34662 if (value.length ===
0) throw RangeError(message)
34665 exports.isNumberInInterval = function (number, x, y, message) {
34666 if (number <= x || number
>= y) throw RangeError(message)
34669 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
34670 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
34671 (function (Buffer){
34673 var bip66 = require('bip66')
34675 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
34677 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
34679 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34680 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34682 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
34683 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34684 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34685 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
34686 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
34687 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
34688 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34689 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
34690 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
34692 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34693 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34697 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
34699 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
34701 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34702 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34704 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
34705 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34706 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34707 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
34708 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
34709 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
34710 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
34711 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
34712 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34713 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
34714 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
34716 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34717 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34718 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34719 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34723 var ZERO_BUFFER_32 = new Buffer([
34724 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34725 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
34728 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
34729 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
34730 privateKey.copy(result, compressed ?
8 :
9)
34731 publicKey.copy(result, compressed ?
181 :
214)
34735 exports.privateKeyImport = function (privateKey) {
34736 var length = privateKey.length
34740 if (length < index +
1 || privateKey[index] !==
0x30) return
34743 // sequence length constructor
34744 if (length < index +
1 || !(privateKey[index] &
0x80)) return
34746 var lenb = privateKey[index] &
0x7f
34748 if (lenb <
1 || lenb
> 2) return
34749 if (length < index + lenb) return
34752 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
34754 if (length < index + len) return
34756 // sequence element
0: version number (=
1)
34757 if (length < index +
3 ||
34758 privateKey[index] !==
0x02 ||
34759 privateKey[index +
1] !==
0x01 ||
34760 privateKey[index +
2] !==
0x01) {
34765 // sequence element
1: octet string, up to
32 bytes
34766 if (length < index +
2 ||
34767 privateKey[index] !==
0x04 ||
34768 privateKey[index +
1]
> 0x20 ||
34769 length < index +
2 + privateKey[index +
1]) {
34773 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
34776 exports.signatureExport = function (sigObj) {
34777 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
34778 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
34780 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
34781 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
34783 return bip66.encode(r.slice(posR), s.slice(posS))
34786 exports.signatureImport = function (sig) {
34787 var r = new Buffer(ZERO_BUFFER_32)
34788 var s = new Buffer(ZERO_BUFFER_32)
34791 var sigObj = bip66.decode(sig)
34792 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
34793 if (sigObj.r.length
> 32) throw new Error('R length is too long')
34794 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
34795 if (sigObj.s.length
> 32) throw new Error('S length is too long')
34800 sigObj.r.copy(r,
32 - sigObj.r.length)
34801 sigObj.s.copy(s,
32 - sigObj.s.length)
34803 return { r: r, s: s }
34806 exports.signatureImportLax = function (sig) {
34807 var r = new Buffer(ZERO_BUFFER_32)
34808 var s = new Buffer(ZERO_BUFFER_32)
34810 var length = sig.length
34813 // sequence tag byte
34814 if (sig[index++] !==
0x30) return
34816 // sequence length byte
34817 var lenbyte = sig[index++]
34818 if (lenbyte &
0x80) {
34819 index += lenbyte -
0x80
34820 if (index
> length) return
34823 // sequence tag byte for r
34824 if (sig[index++] !==
0x02) return
34827 var rlen = sig[index++]
34829 lenbyte = rlen -
0x80
34830 if (index + lenbyte
> length) return
34831 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
34832 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
34834 if (rlen
> length - index) return
34838 // sequence tag byte for s
34839 if (sig[index++] !==
0x02) return
34842 var slen = sig[index++]
34844 lenbyte = slen -
0x80
34845 if (index + lenbyte
> length) return
34846 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
34847 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
34849 if (slen
> length - index) return
34853 // ignore leading zeros in r
34854 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
34856 if (rlen
> 32) return
34857 var rvalue = sig.slice(rindex, rindex + rlen)
34858 rvalue.copy(r,
32 - rvalue.length)
34860 // ignore leading zeros in s
34861 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
34863 if (slen
> 32) return
34864 var svalue = sig.slice(sindex, sindex + slen)
34865 svalue.copy(s,
32 - svalue.length)
34867 return { r: r, s: s }
34870 }).call(this,require(
"buffer").Buffer)
34871 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
34872 (function (Buffer){
34874 var createHash = require('create-hash')
34875 var BN = require('bn.js')
34876 var EC = require('elliptic').ec
34878 var messages = require('../messages.json')
34880 var ec = new EC('secp256k1')
34881 var ecparams = ec.curve
34883 function loadCompressedPublicKey (first, xBuffer) {
34884 var x = new BN(xBuffer)
34887 if (x.cmp(ecparams.p)
>=
0) return null
34888 x = x.toRed(ecparams.red)
34890 // compute corresponding Y
34891 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
34892 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
34894 return ec.keyPair({ pub: { x: x, y: y } })
34897 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
34898 var x = new BN(xBuffer)
34899 var y = new BN(yBuffer)
34902 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
34904 x = x.toRed(ecparams.red)
34905 y = y.toRed(ecparams.red)
34908 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
34911 var x3 = x.redSqr().redIMul(x)
34912 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
34914 return ec.keyPair({ pub: { x: x, y: y } })
34917 function loadPublicKey (publicKey) {
34918 var first = publicKey[
0]
34922 if (publicKey.length !==
33) return null
34923 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
34927 if (publicKey.length !==
65) return null
34928 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
34934 exports.privateKeyVerify = function (privateKey) {
34935 var bn = new BN(privateKey)
34936 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
34939 exports.privateKeyExport = function (privateKey, compressed) {
34940 var d = new BN(privateKey)
34941 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
34943 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
34946 exports.privateKeyTweakAdd = function (privateKey, tweak) {
34947 var bn = new BN(tweak)
34948 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
34950 bn.iadd(new BN(privateKey))
34951 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
34952 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
34954 return bn.toArrayLike(Buffer, 'be',
32)
34957 exports.privateKeyTweakMul = function (privateKey, tweak) {
34958 var bn = new BN(tweak)
34959 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
34961 bn.imul(new BN(privateKey))
34962 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
34964 return bn.toArrayLike(Buffer, 'be',
32)
34967 exports.publicKeyCreate = function (privateKey, compressed) {
34968 var d = new BN(privateKey)
34969 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
34971 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
34974 exports.publicKeyConvert = function (publicKey, compressed) {
34975 var pair = loadPublicKey(publicKey)
34976 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
34978 return new Buffer(pair.getPublic(compressed, true))
34981 exports.publicKeyVerify = function (publicKey) {
34982 return loadPublicKey(publicKey) !== null
34985 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
34986 var pair = loadPublicKey(publicKey)
34987 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
34989 tweak = new BN(tweak)
34990 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
34992 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
34995 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
34996 var pair = loadPublicKey(publicKey)
34997 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
34999 tweak = new BN(tweak)
35000 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
35002 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
35005 exports.publicKeyCombine = function (publicKeys, compressed) {
35006 var pairs = new Array(publicKeys.length)
35007 for (var i =
0; i < publicKeys.length; ++i) {
35008 pairs[i] = loadPublicKey(publicKeys[i])
35009 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35012 var point = pairs[
0].pub
35013 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
35014 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
35016 return new Buffer(point.encode(true, compressed))
35019 exports.signatureNormalize = function (signature) {
35020 var r = new BN(signature.slice(
0,
32))
35021 var s = new BN(signature.slice(
32,
64))
35022 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35024 var result = new Buffer(signature)
35025 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
35030 exports.signatureExport = function (signature) {
35031 var r = signature.slice(
0,
32)
35032 var s = signature.slice(
32,
64)
35033 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35035 return { r: r, s: s }
35038 exports.signatureImport = function (sigObj) {
35039 var r = new BN(sigObj.r)
35040 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
35042 var s = new BN(sigObj.s)
35043 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
35045 return Buffer.concat([
35046 r.toArrayLike(Buffer, 'be',
32),
35047 s.toArrayLike(Buffer, 'be',
32)
35051 exports.sign = function (message, privateKey, noncefn, data) {
35052 if (typeof noncefn === 'function') {
35053 var getNonce = noncefn
35054 noncefn = function (counter) {
35055 var nonce = getNonce(message, privateKey, null, data, counter)
35056 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
35058 return new BN(nonce)
35062 var d = new BN(privateKey)
35063 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
35065 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
35067 signature: Buffer.concat([
35068 result.r.toArrayLike(Buffer, 'be',
32),
35069 result.s.toArrayLike(Buffer, 'be',
32)
35071 recovery: result.recoveryParam
35075 exports.verify = function (message, signature, publicKey) {
35076 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35078 var sigr = new BN(sigObj.r)
35079 var sigs = new BN(sigObj.s)
35080 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35081 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
35083 var pair = loadPublicKey(publicKey)
35084 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35086 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
35089 exports.recover = function (message, signature, recovery, compressed) {
35090 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35092 var sigr = new BN(sigObj.r)
35093 var sigs = new BN(sigObj.s)
35094 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35097 if (sigr.isZero() || sigs.isZero()) throw new Error()
35099 var point = ec.recoverPubKey(message, sigObj, recovery)
35100 return new Buffer(point.encode(true, compressed))
35102 throw new Error(messages.ECDSA_RECOVER_FAIL)
35106 exports.ecdh = function (publicKey, privateKey) {
35107 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
35108 return createHash('sha256').update(shared).digest()
35111 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
35112 var pair = loadPublicKey(publicKey)
35113 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35115 var scalar = new BN(privateKey)
35116 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
35118 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
35121 }).call(this,require("buffer").Buffer)
35122 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
35124 var assert = require('./assert')
35125 var der = require('./der')
35126 var messages = require('./messages.json')
35128 function initCompressedValue (value, defaultValue) {
35129 if (value === undefined) return defaultValue
35131 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
35135 module.exports = function (secp256k1) {
35137 privateKeyVerify: function (privateKey) {
35138 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35139 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
35142 privateKeyExport: function (privateKey, compressed) {
35143 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35144 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35146 compressed = initCompressedValue(compressed, true)
35147 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
35149 return der.privateKeyExport(privateKey, publicKey, compressed)
35152 privateKeyImport: function (privateKey) {
35153 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35155 privateKey = der.privateKeyImport(privateKey)
35156 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
35158 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
35161 privateKeyTweakAdd: function (privateKey, tweak) {
35162 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35163 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35165 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35166 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35168 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
35171 privateKeyTweakMul: function (privateKey, tweak) {
35172 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35173 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35175 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35176 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35178 return secp256k1.privateKeyTweakMul(privateKey, tweak)
35181 publicKeyCreate: function (privateKey, compressed) {
35182 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35183 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35185 compressed = initCompressedValue(compressed, true)
35187 return secp256k1.publicKeyCreate(privateKey, compressed)
35190 publicKeyConvert: function (publicKey, compressed) {
35191 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35192 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35194 compressed = initCompressedValue(compressed, true)
35196 return secp256k1.publicKeyConvert(publicKey, compressed)
35199 publicKeyVerify: function (publicKey) {
35200 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35201 return secp256k1.publicKeyVerify(publicKey)
35204 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
35205 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35206 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35208 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35209 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35211 compressed = initCompressedValue(compressed, true)
35213 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
35216 publicKeyTweakMul: function (publicKey, tweak, compressed) {
35217 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35218 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35220 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35221 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35223 compressed = initCompressedValue(compressed, true)
35225 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
35228 publicKeyCombine: function (publicKeys, compressed) {
35229 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
35230 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
35231 for (var i =
0; i < publicKeys.length; ++i) {
35232 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
35233 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35236 compressed = initCompressedValue(compressed, true)
35238 return secp256k1.publicKeyCombine(publicKeys, compressed)
35241 signatureNormalize: function (signature) {
35242 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35243 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35245 return secp256k1.signatureNormalize(signature)
35248 signatureExport: function (signature) {
35249 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35250 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35252 var sigObj = secp256k1.signatureExport(signature)
35253 return der.signatureExport(sigObj)
35256 signatureImport: function (sig) {
35257 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35258 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35260 var sigObj = der.signatureImport(sig)
35261 if (sigObj) return secp256k1.signatureImport(sigObj)
35263 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35266 signatureImportLax: function (sig) {
35267 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35268 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35270 var sigObj = der.signatureImportLax(sig)
35271 if (sigObj) return secp256k1.signatureImport(sigObj)
35273 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35276 sign: function (message, privateKey, options) {
35277 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35278 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35280 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35281 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35285 if (options !== undefined) {
35286 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
35288 if (options.data !== undefined) {
35289 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
35290 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
35291 data = options.data
35294 if (options.noncefn !== undefined) {
35295 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
35296 noncefn = options.noncefn
35300 return secp256k1.sign(message, privateKey, noncefn, data)
35303 verify: function (message, signature, publicKey) {
35304 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35305 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35307 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35308 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35310 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35311 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35313 return secp256k1.verify(message, signature, publicKey)
35316 recover: function (message, signature, recovery, compressed) {
35317 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35318 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35320 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35321 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35323 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
35324 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
35326 compressed = initCompressedValue(compressed, true)
35328 return secp256k1.recover(message, signature, recovery, compressed)
35331 ecdh: function (publicKey, privateKey) {
35332 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35333 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35335 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35336 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35338 return secp256k1.ecdh(publicKey, privateKey)
35341 ecdhUnsafe: function (publicKey, privateKey, compressed) {
35342 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35343 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35345 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35346 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35348 compressed = initCompressedValue(compressed, true)
35350 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
35355 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
35357 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
35358 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
35359 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
35360 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
35361 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35362 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
35363 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
35364 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
35365 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
35366 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
35367 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
35368 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
35369 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
35370 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
35371 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35372 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
35373 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
35374 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
35375 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
35376 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
35377 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
35378 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
35379 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
35380 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
35381 "MSG32_TYPE_INVALID": "message should be a Buffer",
35382 "MSG32_LENGTH_INVALID": "message length is invalid",
35383 "OPTIONS_TYPE_INVALID": "options should be an Object",
35384 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
35385 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
35386 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
35387 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
35388 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
35389 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
35390 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
35393 },{}],
79:[function(require,module,exports){
35394 (function (Buffer){
35395 // prototype class for hash functions
35396 function Hash (blockSize, finalSize) {
35397 this._block = new Buffer(blockSize)
35398 this._finalSize = finalSize
35399 this._blockSize = blockSize
35404 Hash.prototype.update = function (data, enc) {
35405 if (typeof data === 'string') {
35406 enc = enc || 'utf8'
35407 data = new Buffer(data, enc)
35410 var l = this._len += data.length
35411 var s = this._s ||
0
35413 var buffer = this._block
35416 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
35419 for (var i =
0; i < ch; i++) {
35420 buffer[(s % this._blockSize) + i] = data[i + f]
35426 if ((s % this._blockSize) ===
0) {
35427 this._update(buffer)
35435 Hash.prototype.digest = function (enc) {
35436 // Suppose the length of the message M, in bits, is l
35437 var l = this._len *
8
35439 // Append the bit
1 to the end of the message
35440 this._block[this._len % this._blockSize] =
0x80
35442 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
35443 this._block.fill(
0, this._len % this._blockSize +
1)
35445 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
35446 this._update(this._block)
35447 this._block.fill(
0)
35450 // to this append the block which is equal to the number l written in binary
35451 // TODO: handle case where l is
> Math.pow(
2,
29)
35452 this._block.writeInt32BE(l, this._blockSize -
4)
35454 var hash = this._update(this._block) || this._hash()
35456 return enc ? hash.toString(enc) : hash
35459 Hash.prototype._update = function () {
35460 throw new Error('_update must be implemented by subclass')
35463 module.exports = Hash
35465 }).call(this,require("buffer").Buffer)
35466 },{"buffer":
5}],
80:[function(require,module,exports){
35467 var exports = module.exports = function SHA (algorithm) {
35468 algorithm = algorithm.toLowerCase()
35470 var Algorithm = exports[algorithm]
35471 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
35473 return new Algorithm()
35476 exports.sha = require('./sha')
35477 exports.sha1 = require('./sha1')
35478 exports.sha224 = require('./sha224')
35479 exports.sha256 = require('./sha256')
35480 exports.sha384 = require('./sha384')
35481 exports.sha512 = require('./sha512')
35483 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
35484 (function (Buffer){
35486 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
35487 * in FIPS PUB
180-
1
35488 * This source code is derived from sha1.js of the same repository.
35489 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
35490 * operation was added.
35493 var inherits = require('inherits')
35494 var Hash = require('./hash')
35497 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
35500 var W = new Array(
80)
35506 Hash.call(this,
64,
56)
35509 inherits(Sha, Hash)
35511 Sha.prototype.init = function () {
35512 this._a =
0x67452301
35513 this._b =
0xefcdab89
35514 this._c =
0x98badcfe
35515 this._d =
0x10325476
35516 this._e =
0xc3d2e1f0
35521 function rotl5 (num) {
35522 return (num <<
5) | (num
>>> 27)
35525 function rotl30 (num) {
35526 return (num <<
30) | (num
>>> 2)
35529 function ft (s, b, c, d) {
35530 if (s ===
0) return (b & c) | ((~b) & d)
35531 if (s ===
2) return (b & c) | (b & d) | (c & d)
35535 Sha.prototype._update = function (M) {
35538 var a = this._a |
0
35539 var b = this._b |
0
35540 var c = this._c |
0
35541 var d = this._d |
0
35542 var e = this._e |
0
35544 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35545 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
35547 for (var j =
0; j <
80; ++j) {
35549 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
35558 this._a = (a + this._a) |
0
35559 this._b = (b + this._b) |
0
35560 this._c = (c + this._c) |
0
35561 this._d = (d + this._d) |
0
35562 this._e = (e + this._e) |
0
35565 Sha.prototype._hash = function () {
35566 var H = new Buffer(
20)
35568 H.writeInt32BE(this._a |
0,
0)
35569 H.writeInt32BE(this._b |
0,
4)
35570 H.writeInt32BE(this._c |
0,
8)
35571 H.writeInt32BE(this._d |
0,
12)
35572 H.writeInt32BE(this._e |
0,
16)
35577 module.exports = Sha
35579 }).call(this,require(
"buffer").Buffer)
35580 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
35581 (function (Buffer){
35583 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
35584 * in FIPS PUB
180-
1
35585 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
35586 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35587 * Distributed under the BSD License
35588 * See http://pajhome.org.uk/crypt/md5 for details.
35591 var inherits = require('inherits')
35592 var Hash = require('./hash')
35595 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
35598 var W = new Array(
80)
35604 Hash.call(this,
64,
56)
35607 inherits(Sha1, Hash)
35609 Sha1.prototype.init = function () {
35610 this._a =
0x67452301
35611 this._b =
0xefcdab89
35612 this._c =
0x98badcfe
35613 this._d =
0x10325476
35614 this._e =
0xc3d2e1f0
35619 function rotl1 (num) {
35620 return (num <<
1) | (num
>>> 31)
35623 function rotl5 (num) {
35624 return (num <<
5) | (num
>>> 27)
35627 function rotl30 (num) {
35628 return (num <<
30) | (num
>>> 2)
35631 function ft (s, b, c, d) {
35632 if (s ===
0) return (b & c) | ((~b) & d)
35633 if (s ===
2) return (b & c) | (b & d) | (c & d)
35637 Sha1.prototype._update = function (M) {
35640 var a = this._a |
0
35641 var b = this._b |
0
35642 var c = this._c |
0
35643 var d = this._d |
0
35644 var e = this._e |
0
35646 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35647 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
35649 for (var j =
0; j <
80; ++j) {
35651 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
35660 this._a = (a + this._a) |
0
35661 this._b = (b + this._b) |
0
35662 this._c = (c + this._c) |
0
35663 this._d = (d + this._d) |
0
35664 this._e = (e + this._e) |
0
35667 Sha1.prototype._hash = function () {
35668 var H = new Buffer(
20)
35670 H.writeInt32BE(this._a |
0,
0)
35671 H.writeInt32BE(this._b |
0,
4)
35672 H.writeInt32BE(this._c |
0,
8)
35673 H.writeInt32BE(this._d |
0,
12)
35674 H.writeInt32BE(this._e |
0,
16)
35679 module.exports = Sha1
35681 }).call(this,require(
"buffer").Buffer)
35682 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
35683 (function (Buffer){
35685 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
35687 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
35688 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35692 var inherits = require('inherits')
35693 var Sha256 = require('./sha256')
35694 var Hash = require('./hash')
35696 var W = new Array(
64)
35698 function Sha224 () {
35701 this._w = W // new Array(
64)
35703 Hash.call(this,
64,
56)
35706 inherits(Sha224, Sha256)
35708 Sha224.prototype.init = function () {
35709 this._a =
0xc1059ed8
35710 this._b =
0x367cd507
35711 this._c =
0x3070dd17
35712 this._d =
0xf70e5939
35713 this._e =
0xffc00b31
35714 this._f =
0x68581511
35715 this._g =
0x64f98fa7
35716 this._h =
0xbefa4fa4
35721 Sha224.prototype._hash = function () {
35722 var H = new Buffer(
28)
35724 H.writeInt32BE(this._a,
0)
35725 H.writeInt32BE(this._b,
4)
35726 H.writeInt32BE(this._c,
8)
35727 H.writeInt32BE(this._d,
12)
35728 H.writeInt32BE(this._e,
16)
35729 H.writeInt32BE(this._f,
20)
35730 H.writeInt32BE(this._g,
24)
35735 module.exports = Sha224
35737 }).call(this,require(
"buffer").Buffer)
35738 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
35739 (function (Buffer){
35741 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
35743 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
35744 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35748 var inherits = require('inherits')
35749 var Hash = require('./hash')
35752 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
35753 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
35754 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
35755 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
35756 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
35757 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
35758 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
35759 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
35760 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
35761 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
35762 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
35763 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
35764 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
35765 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
35766 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
35767 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
35770 var W = new Array(
64)
35772 function Sha256 () {
35775 this._w = W // new Array(
64)
35777 Hash.call(this,
64,
56)
35780 inherits(Sha256, Hash)
35782 Sha256.prototype.init = function () {
35783 this._a =
0x6a09e667
35784 this._b =
0xbb67ae85
35785 this._c =
0x3c6ef372
35786 this._d =
0xa54ff53a
35787 this._e =
0x510e527f
35788 this._f =
0x9b05688c
35789 this._g =
0x1f83d9ab
35790 this._h =
0x5be0cd19
35795 function ch (x, y, z) {
35796 return z ^ (x & (y ^ z))
35799 function maj (x, y, z) {
35800 return (x & y) | (z & (x | y))
35803 function sigma0 (x) {
35804 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
35807 function sigma1 (x) {
35808 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
35811 function gamma0 (x) {
35812 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
35815 function gamma1 (x) {
35816 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
35819 Sha256.prototype._update = function (M) {
35822 var a = this._a |
0
35823 var b = this._b |
0
35824 var c = this._c |
0
35825 var d = this._d |
0
35826 var e = this._e |
0
35827 var f = this._f |
0
35828 var g = this._g |
0
35829 var h = this._h |
0
35831 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35832 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
35834 for (var j =
0; j <
64; ++j) {
35835 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
35836 var T2 = (sigma0(a) + maj(a, b, c)) |
0
35848 this._a = (a + this._a) |
0
35849 this._b = (b + this._b) |
0
35850 this._c = (c + this._c) |
0
35851 this._d = (d + this._d) |
0
35852 this._e = (e + this._e) |
0
35853 this._f = (f + this._f) |
0
35854 this._g = (g + this._g) |
0
35855 this._h = (h + this._h) |
0
35858 Sha256.prototype._hash = function () {
35859 var H = new Buffer(
32)
35861 H.writeInt32BE(this._a,
0)
35862 H.writeInt32BE(this._b,
4)
35863 H.writeInt32BE(this._c,
8)
35864 H.writeInt32BE(this._d,
12)
35865 H.writeInt32BE(this._e,
16)
35866 H.writeInt32BE(this._f,
20)
35867 H.writeInt32BE(this._g,
24)
35868 H.writeInt32BE(this._h,
28)
35873 module.exports = Sha256
35875 }).call(this,require(
"buffer").Buffer)
35876 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
35877 (function (Buffer){
35878 var inherits = require('inherits')
35879 var SHA512 = require('./sha512')
35880 var Hash = require('./hash')
35882 var W = new Array(
160)
35884 function Sha384 () {
35888 Hash.call(this,
128,
112)
35891 inherits(Sha384, SHA512)
35893 Sha384.prototype.init = function () {
35894 this._ah =
0xcbbb9d5d
35895 this._bh =
0x629a292a
35896 this._ch =
0x9159015a
35897 this._dh =
0x152fecd8
35898 this._eh =
0x67332667
35899 this._fh =
0x8eb44a87
35900 this._gh =
0xdb0c2e0d
35901 this._hh =
0x47b5481d
35903 this._al =
0xc1059ed8
35904 this._bl =
0x367cd507
35905 this._cl =
0x3070dd17
35906 this._dl =
0xf70e5939
35907 this._el =
0xffc00b31
35908 this._fl =
0x68581511
35909 this._gl =
0x64f98fa7
35910 this._hl =
0xbefa4fa4
35915 Sha384.prototype._hash = function () {
35916 var H = new Buffer(
48)
35918 function writeInt64BE (h, l, offset) {
35919 H.writeInt32BE(h, offset)
35920 H.writeInt32BE(l, offset +
4)
35923 writeInt64BE(this._ah, this._al,
0)
35924 writeInt64BE(this._bh, this._bl,
8)
35925 writeInt64BE(this._ch, this._cl,
16)
35926 writeInt64BE(this._dh, this._dl,
24)
35927 writeInt64BE(this._eh, this._el,
32)
35928 writeInt64BE(this._fh, this._fl,
40)
35933 module.exports = Sha384
35935 }).call(this,require(
"buffer").Buffer)
35936 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
35937 (function (Buffer){
35938 var inherits = require('inherits')
35939 var Hash = require('./hash')
35942 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35943 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35944 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35945 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35946 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35947 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35948 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35949 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35950 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35951 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35952 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35953 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35954 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35955 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35956 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35957 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35958 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35959 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35960 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35961 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35962 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35963 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35964 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35965 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35966 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35967 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35968 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35969 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35970 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35971 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35972 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35973 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35974 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35975 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35976 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35977 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
35978 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
35979 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
35980 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
35981 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
35984 var W = new Array(
160)
35986 function Sha512 () {
35990 Hash.call(this,
128,
112)
35993 inherits(Sha512, Hash)
35995 Sha512.prototype.init = function () {
35996 this._ah =
0x6a09e667
35997 this._bh =
0xbb67ae85
35998 this._ch =
0x3c6ef372
35999 this._dh =
0xa54ff53a
36000 this._eh =
0x510e527f
36001 this._fh =
0x9b05688c
36002 this._gh =
0x1f83d9ab
36003 this._hh =
0x5be0cd19
36005 this._al =
0xf3bcc908
36006 this._bl =
0x84caa73b
36007 this._cl =
0xfe94f82b
36008 this._dl =
0x5f1d36f1
36009 this._el =
0xade682d1
36010 this._fl =
0x2b3e6c1f
36011 this._gl =
0xfb41bd6b
36012 this._hl =
0x137e2179
36017 function Ch (x, y, z) {
36018 return z ^ (x & (y ^ z))
36021 function maj (x, y, z) {
36022 return (x & y) | (z & (x | y))
36025 function sigma0 (x, xl) {
36026 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
36029 function sigma1 (x, xl) {
36030 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
36033 function Gamma0 (x, xl) {
36034 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
36037 function Gamma0l (x, xl) {
36038 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
36041 function Gamma1 (x, xl) {
36042 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
36045 function Gamma1l (x, xl) {
36046 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
36049 function getCarry (a, b) {
36050 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
36053 Sha512.prototype._update = function (M) {
36056 var ah = this._ah |
0
36057 var bh = this._bh |
0
36058 var ch = this._ch |
0
36059 var dh = this._dh |
0
36060 var eh = this._eh |
0
36061 var fh = this._fh |
0
36062 var gh = this._gh |
0
36063 var hh = this._hh |
0
36065 var al = this._al |
0
36066 var bl = this._bl |
0
36067 var cl = this._cl |
0
36068 var dl = this._dl |
0
36069 var el = this._el |
0
36070 var fl = this._fl |
0
36071 var gl = this._gl |
0
36072 var hl = this._hl |
0
36074 for (var i =
0; i <
32; i +=
2) {
36075 W[i] = M.readInt32BE(i *
4)
36076 W[i +
1] = M.readInt32BE(i *
4 +
4)
36078 for (; i <
160; i +=
2) {
36079 var xh = W[i -
15 *
2]
36080 var xl = W[i -
15 *
2 +
1]
36081 var gamma0 = Gamma0(xh, xl)
36082 var gamma0l = Gamma0l(xl, xh)
36085 xl = W[i -
2 *
2 +
1]
36086 var gamma1 = Gamma1(xh, xl)
36087 var gamma1l = Gamma1l(xl, xh)
36089 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
36090 var Wi7h = W[i -
7 *
2]
36091 var Wi7l = W[i -
7 *
2 +
1]
36093 var Wi16h = W[i -
16 *
2]
36094 var Wi16l = W[i -
16 *
2 +
1]
36096 var Wil = (gamma0l + Wi7l) |
0
36097 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
36098 Wil = (Wil + gamma1l) |
0
36099 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
36100 Wil = (Wil + Wi16l) |
0
36101 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
36107 for (var j =
0; j <
160; j +=
2) {
36111 var majh = maj(ah, bh, ch)
36112 var majl = maj(al, bl, cl)
36114 var sigma0h = sigma0(ah, al)
36115 var sigma0l = sigma0(al, ah)
36116 var sigma1h = sigma1(eh, el)
36117 var sigma1l = sigma1(el, eh)
36119 // t1 = h + sigma1 + ch + K[j] + W[j]
36123 var chh = Ch(eh, fh, gh)
36124 var chl = Ch(el, fl, gl)
36126 var t1l = (hl + sigma1l) |
0
36127 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
36128 t1l = (t1l + chl) |
0
36129 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
36130 t1l = (t1l + Kil) |
0
36131 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
36132 t1l = (t1l + Wil) |
0
36133 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
36135 // t2 = sigma0 + maj
36136 var t2l = (sigma0l + majl) |
0
36137 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
36145 el = (dl + t1l) |
0
36146 eh = (dh + t1h + getCarry(el, dl)) |
0
36153 al = (t1l + t2l) |
0
36154 ah = (t1h + t2h + getCarry(al, t1l)) |
0
36157 this._al = (this._al + al) |
0
36158 this._bl = (this._bl + bl) |
0
36159 this._cl = (this._cl + cl) |
0
36160 this._dl = (this._dl + dl) |
0
36161 this._el = (this._el + el) |
0
36162 this._fl = (this._fl + fl) |
0
36163 this._gl = (this._gl + gl) |
0
36164 this._hl = (this._hl + hl) |
0
36166 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
36167 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
36168 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
36169 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
36170 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
36171 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
36172 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
36173 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
36176 Sha512.prototype._hash = function () {
36177 var H = new Buffer(
64)
36179 function writeInt64BE (h, l, offset) {
36180 H.writeInt32BE(h, offset)
36181 H.writeInt32BE(l, offset +
4)
36184 writeInt64BE(this._ah, this._al,
0)
36185 writeInt64BE(this._bh, this._bl,
8)
36186 writeInt64BE(this._ch, this._cl,
16)
36187 writeInt64BE(this._dh, this._dl,
24)
36188 writeInt64BE(this._eh, this._el,
32)
36189 writeInt64BE(this._fh, this._fl,
40)
36190 writeInt64BE(this._gh, this._gl,
48)
36191 writeInt64BE(this._hh, this._hl,
56)
36196 module.exports = Sha512
36198 }).call(this,require(
"buffer").Buffer)
36199 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
36200 var isHexPrefixed = require('is-hex-prefixed');
36203 * Removes '
0x' from a given `String` is present
36204 * @param {String} str the string value
36205 * @return {String|Optional} a string by pass if necessary
36207 module.exports = function stripHexPrefix(str) {
36208 if (typeof str !== 'string') {
36212 return isHexPrefixed(str) ? str.slice(
2) : str;
36215 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
36217 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
36221 /** @fileOverview Javascript cryptography implementation.
36223 * Crush to remove comments, shorten variable names and
36224 * generally reduce transmission size.
36226 * @author Emily Stark
36227 * @author Mike Hamburg
36228 * @author Dan Boneh
36232 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
36233 /*global document, window, escape, unescape, module, require, Uint32Array */
36235 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
36237 /** @namespace Symmetric ciphers. */
36240 /** @namespace Hash functions. Right now only SHA256 is implemented. */
36243 /** @namespace Key exchange functions. Right now only SRP is implemented. */
36246 /** @namespace Block cipher modes of operation. */
36249 /** @namespace Miscellaneous. HMAC and PBKDF2. */
36253 * @namespace Bit array encoders and decoders.
36256 * The members of this namespace are functions which translate between
36257 * SJCL's bitArrays and other objects (usually strings). Because it
36258 * isn't always clear which direction is encoding and which is decoding,
36259 * the method names are "fromBits" and "toBits".
36263 /** @namespace Exceptions. */
36265 /** @constructor Ciphertext is corrupt. */
36266 corrupt: function(message) {
36267 this.toString = function() { return "CORRUPT: "+this.message; };
36268 this.message = message;
36271 /** @constructor Invalid parameter. */
36272 invalid: function(message) {
36273 this.toString = function() { return "INVALID: "+this.message; };
36274 this.message = message;
36277 /** @constructor Bug or missing feature in SJCL. @constructor */
36278 bug: function(message) {
36279 this.toString = function() { return "BUG: "+this.message; };
36280 this.message = message;
36283 /** @constructor Something isn't ready. */
36284 notReady: function(message) {
36285 this.toString = function() { return "NOT READY: "+this.message; };
36286 this.message = message;
36291 if(typeof module !== 'undefined' && module.exports){
36292 module.exports = sjcl;
36294 if (typeof define === "function") {
36295 define([], function () {
36303 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
36305 * @author Emily Stark
36306 * @author Mike Hamburg
36307 * @author Dan Boneh
36310 /** @namespace Arrays of bits, encoded as arrays of Numbers.
36314 * These objects are the currency accepted by SJCL's crypto functions.
36318 * Most of our crypto primitives operate on arrays of
4-byte words internally,
36319 * but many of them can take arguments that are not a multiple of
4 bytes.
36320 * This library encodes arrays of bits (whose size need not be a multiple of
8
36321 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
36322 * array of words,
32 bits at a time. Since the words are double-precision
36323 * floating point numbers, they fit some extra data. We use this (in a private,
36324 * possibly-changing manner) to encode the number of bits actually present
36325 * in the last word of the array.
36329 * Because bitwise ops clear this out-of-band data, these arrays can be passed
36330 * to ciphers like AES which want arrays of words.
36335 * Array slices in units of bits.
36336 * @param {bitArray} a The array to slice.
36337 * @param {Number} bstart The offset to the start of the slice, in bits.
36338 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
36339 * slice until the end of the array.
36340 * @return {bitArray} The requested slice.
36342 bitSlice: function (a, bstart, bend) {
36343 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
36344 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
36348 * Extract a number packed into a bit array.
36349 * @param {bitArray} a The array to slice.
36350 * @param {Number} bstart The offset to the start of the slice, in bits.
36351 * @param {Number} length The length of the number to extract.
36352 * @return {Number} The requested slice.
36354 extract: function(a, bstart, blength) {
36355 // FIXME: this Math.floor is not necessary at all, but for some reason
36356 // seems to suppress a bug in the Chromium JIT.
36357 var x, sh = Math.floor((-bstart-blength) &
31);
36358 if ((bstart + blength -
1 ^ bstart) & -
32) {
36359 // it crosses a boundary
36360 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
36362 // within a single word
36363 x = a[bstart/
32|
0]
>>> sh;
36365 return x & ((
1<
<blength) -
1);
36369 * Concatenate two bit arrays.
36370 * @param {bitArray} a1 The first array.
36371 * @param {bitArray} a2 The second array.
36372 * @return {bitArray} The concatenation of a1 and a2.
36374 concat: function (a1, a2) {
36375 if (a1.length ===
0 || a2.length ===
0) {
36376 return a1.concat(a2);
36379 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
36380 if (shift ===
32) {
36381 return a1.concat(a2);
36383 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
36388 * Find the length of an array of bits.
36389 * @param {bitArray} a The array.
36390 * @return {Number} The length of a, in bits.
36392 bitLength: function (a) {
36393 var l = a.length, x;
36394 if (l ===
0) { return
0; }
36396 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
36400 * Truncate an array.
36401 * @param {bitArray} a The array.
36402 * @param {Number} len The length to truncate to, in bits.
36403 * @return {bitArray} A new array, truncated to len bits.
36405 clamp: function (a, len) {
36406 if (a.length *
32 < len) { return a; }
36407 a = a.slice(
0, Math.ceil(len /
32));
36410 if (l
> 0 && len) {
36411 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
36417 * Make a partial word for a bit array.
36418 * @param {Number} len The number of bits in the word.
36419 * @param {Number} x The bits.
36420 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
36421 * @return {Number} The partial word.
36423 partial: function (len, x, _end) {
36424 if (len ===
32) { return x; }
36425 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
36429 * Get the number of bits used by a partial word.
36430 * @param {Number} x The partial word.
36431 * @return {Number} The number of bits used by the partial word.
36433 getPartial: function (x) {
36434 return Math.round(x/
0x10000000000) ||
32;
36438 * Compare two arrays for equality in a predictable amount of time.
36439 * @param {bitArray} a The first array.
36440 * @param {bitArray} b The second array.
36441 * @return {boolean} true if a == b; false otherwise.
36443 equal: function (a, b) {
36444 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
36448 for (i=
0; i
<a.length; i++) {
36454 /** Shift an array right.
36455 * @param {bitArray} a The array to shift.
36456 * @param {Number} shift The number of bits to shift.
36457 * @param {Number} [carry=
0] A byte to carry in
36458 * @param {bitArray} [out=[]] An array to prepend to the output.
36461 _shiftRight: function (a, shift, carry, out) {
36462 var i, last2=
0, shift2;
36463 if (out === undefined) { out = []; }
36465 for (; shift
>=
32; shift -=
32) {
36470 return out.concat(a);
36473 for (i=
0; i
<a.length; i++) {
36474 out.push(carry | a[i]
>>>shift);
36475 carry = a[i] << (
32-shift);
36477 last2 = a.length ? a[a.length-
1] :
0;
36478 shift2 = sjcl.bitArray.getPartial(last2);
36479 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
36483 /** xor a block of
4 words together.
36486 _xor4: function(x,y) {
36487 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
36490 /** byteswap a word array inplace.
36491 * (does not handle partial words)
36492 * @param {sjcl.bitArray} a word array
36493 * @return {sjcl.bitArray} byteswapped array
36495 byteswapM: function(a) {
36496 var i, v, m =
0xff00;
36497 for (i =
0; i < a.length; ++i) {
36499 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
36506 //// codecString.js
36508 /** @fileOverview Bit array codec implementations.
36510 * @author Emily Stark
36511 * @author Mike Hamburg
36512 * @author Dan Boneh
36515 /** @namespace UTF-
8 strings */
36516 sjcl.codec.utf8String = {
36517 /** Convert from a bitArray to a UTF-
8 string. */
36518 fromBits: function (arr) {
36519 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
36520 for (i=
0; i
<bl/
8; i++) {
36524 out += String.fromCharCode(tmp
>>> 24);
36527 return decodeURIComponent(escape(out));
36530 /** Convert from a UTF-
8 string to a bitArray. */
36531 toBits: function (str) {
36532 str = unescape(encodeURIComponent(str));
36533 var out = [], i, tmp=
0;
36534 for (i=
0; i
<str.length; i++) {
36535 tmp = tmp <<
8 | str.charCodeAt(i);
36542 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
36551 /** @fileOverview Bit array codec implementations.
36553 * @author Emily Stark
36554 * @author Mike Hamburg
36555 * @author Dan Boneh
36558 /** @namespace Hexadecimal */
36560 /** Convert from a bitArray to a hex string. */
36561 fromBits: function (arr) {
36563 for (i=
0; i
<arr.length; i++) {
36564 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
36566 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
36568 /** Convert from a hex string to a bitArray. */
36569 toBits: function (str) {
36570 var i, out=[], len;
36571 str = str.replace(/\s|
0x/g,
"");
36573 str = str +
"00000000";
36574 for (i=
0; i
<str.length; i+=
8) {
36575 out.push(parseInt(str.substr(i,
8),
16)^
0);
36577 return sjcl.bitArray.clamp(out, len*
4);
36584 /** @fileOverview Javascript SHA-
512 implementation.
36586 * This implementation was written for CryptoJS by Jeff Mott and adapted for
36587 * SJCL by Stefan Thomas.
36589 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
36590 * Released with New BSD License
36592 * @author Emily Stark
36593 * @author Mike Hamburg
36594 * @author Dan Boneh
36595 * @author Jeff Mott
36596 * @author Stefan Thomas
36600 * Context for a SHA-
512 operation in progress.
36602 * @class Secure Hash Algorithm,
512 bits.
36604 sjcl.hash.sha512 = function (hash) {
36605 if (!this._key[
0]) { this._precompute(); }
36607 this._h = hash._h.slice(
0);
36608 this._buffer = hash._buffer.slice(
0);
36609 this._length = hash._length;
36616 * Hash a string or an array of words.
36618 * @param {bitArray|String} data the data to hash.
36619 * @return {bitArray} The hash value, an array of
16 big-endian words.
36621 sjcl.hash.sha512.hash = function (data) {
36622 return (new sjcl.hash.sha512()).update(data).finalize();
36625 sjcl.hash.sha512.prototype = {
36627 * The hash's block size, in bits.
36633 * Reset the hash state.
36636 reset:function () {
36637 this._h = this._init.slice(
0);
36644 * Input several words to the hash.
36645 * @param {bitArray|String} data the data to hash.
36648 update: function (data) {
36649 if (typeof data ===
"string") {
36650 data = sjcl.codec.utf8String.toBits(data);
36652 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
36654 nl = this._length = ol + sjcl.bitArray.bitLength(data);
36655 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
36656 this._block(b.splice(
0,
32));
36662 * Complete hashing and output the hash value.
36663 * @return {bitArray} The hash value, an array of
16 big-endian words.
36665 finalize:function () {
36666 var i, b = this._buffer, h = this._h;
36668 // Round out and push the buffer
36669 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
36671 // Round out the buffer to a multiple of
32 words, less the
4 length words.
36672 for (i = b.length +
4; i &
31; i++) {
36676 // append the length
36679 b.push(Math.floor(this._length /
0x100000000));
36680 b.push(this._length |
0);
36683 this._block(b.splice(
0,
32));
36691 * The SHA-
512 initialization vector, to be precomputed.
36697 * Least significant
24 bits of SHA512 initialization values.
36699 * Javascript only has
53 bits of precision, so we compute the
40 most
36700 * significant bits and add the remaining
24 bits as constants.
36704 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
36708 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
36709 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
36713 * The SHA-
512 hash key, to be precomputed.
36719 * Least significant
24 bits of SHA512 key values.
36723 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
36724 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
36725 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
36726 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
36727 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
36728 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
36729 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
36730 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
36731 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
36732 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
36736 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
36737 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
36738 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
36739 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
36740 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
36741 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
36742 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
36743 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
36744 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
36745 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
36746 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
36747 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
36748 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
36749 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
36750 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
36751 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
36752 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
36753 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
36754 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
36755 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
36759 * Function to precompute _init and _key.
36762 _precompute: function () {
36763 // XXX: This code is for precomputing the SHA256 constants, change for
36764 // SHA512 and re-enable.
36765 var i =
0, prime =
2, factor;
36767 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
36768 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
36770 outer: for (; i
<80; prime++) {
36771 for (factor=
2; factor*factor <= prime; factor++) {
36772 if (prime % factor ===
0) {
36779 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
36780 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
36782 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
36783 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
36789 * Perform one cycle of SHA-
512.
36790 * @param {bitArray} words one block of words.
36793 _block:function (words) {
36795 w = words.slice(
0),
36798 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
36799 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
36800 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
36801 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
36803 // Working variables
36804 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
36805 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
36806 eh = h4h, el = h4l, fh = h5h, fl = h5l,
36807 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
36809 for (i=
0; i
<80; i++) {
36810 // load up the input word for this round
36813 wrl = w[i *
2 +
1];
36816 var gamma0xh = w[(i-
15) *
2];
36817 var gamma0xl = w[(i-
15) *
2 +
1];
36819 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
36820 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
36823 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
36824 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
36825 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
36828 var gamma1xh = w[(i-
2) *
2];
36829 var gamma1xl = w[(i-
2) *
2 +
1];
36831 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
36832 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
36835 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
36836 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
36837 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
36840 var wr7h = w[(i-
7) *
2];
36841 var wr7l = w[(i-
7) *
2 +
1];
36843 var wr16h = w[(i-
16) *
2];
36844 var wr16l = w[(i-
16) *
2 +
1];
36846 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
36847 wrl = gamma0l + wr7l;
36848 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
36850 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
36852 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
36856 w[i*
2 +
1] = wrl |=
0;
36859 var chh = (eh & fh) ^ (~eh & gh);
36860 var chl = (el & fl) ^ (~el & gl);
36863 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
36864 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
36867 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
36868 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
36871 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
36872 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
36876 var krl = k[i*
2+
1];
36878 // t1 = h + sigma1 + ch + K(round) + W(round)
36879 var t1l = hl + sigma1l;
36880 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
36882 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
36884 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
36885 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
36886 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
36888 // t2 = sigma0 + maj
36889 var t2l = sigma0l + majl;
36890 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
36892 // Update working variables
36899 el = (dl + t1l) |
0;
36900 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
36907 al = (t1l + t2l) |
0;
36908 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
36911 // Intermediate hash
36912 h0l = h[
1] = (h0l + al) |
0;
36913 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
36914 h1l = h[
3] = (h1l + bl) |
0;
36915 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
36916 h2l = h[
5] = (h2l + cl) |
0;
36917 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
36918 h3l = h[
7] = (h3l + dl) |
0;
36919 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
36920 h4l = h[
9] = (h4l + el) |
0;
36921 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
36922 h5l = h[
11] = (h5l + fl) |
0;
36923 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
36924 h6l = h[
13] = (h6l + gl) |
0;
36925 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
36926 h7l = h[
15] = (h7l + hl) |
0;
36927 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
36934 /** @fileOverview HMAC implementation.
36936 * @author Emily Stark
36937 * @author Mike Hamburg
36938 * @author Dan Boneh
36941 /** HMAC with the specified hash function.
36943 * @param {bitArray} key the key for HMAC.
36944 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
36946 sjcl.misc.hmac = function (key, Hash) {
36947 this._hash = Hash = Hash || sjcl.hash.sha256;
36948 var exKey = [[],[]], i,
36949 bs = Hash.prototype.blockSize /
32;
36950 this._baseHash = [new Hash(), new Hash()];
36952 if (key.length
> bs) {
36953 key = Hash.hash(key);
36956 for (i=
0; i
<bs; i++) {
36957 exKey[
0][i] = key[i]^
0x36363636;
36958 exKey[
1][i] = key[i]^
0x5C5C5C5C;
36961 this._baseHash[
0].update(exKey[
0]);
36962 this._baseHash[
1].update(exKey[
1]);
36963 this._resultHash = new Hash(this._baseHash[
0]);
36966 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
36967 * @param {bitArray|String} data The data to mac.
36969 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
36970 if (!this._updated) {
36972 return this.digest(data);
36974 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
36978 sjcl.misc.hmac.prototype.reset = function () {
36979 this._resultHash = new this._hash(this._baseHash[
0]);
36980 this._updated = false;
36983 sjcl.misc.hmac.prototype.update = function (data) {
36984 this._updated = true;
36985 this._resultHash.update(data);
36988 sjcl.misc.hmac.prototype.digest = function () {
36989 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
37000 /** @fileOverview Password-based key-derivation function, version
2.0.
37002 * @author Emily Stark
37003 * @author Mike Hamburg
37004 * @author Dan Boneh
37007 /** Password-Based Key-Derivation Function, version
2.0.
37009 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
37011 * This is the method specified by RSA's PKCS #
5 standard.
37013 * @param {bitArray|String} password The password.
37014 * @param {bitArray|String} salt The salt. Should have lots of entropy.
37015 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
37016 * @param {Number} [length] The length of the derived key. Defaults to the
37017 output size of the hash function.
37018 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
37019 * @return {bitArray} the derived key.
37021 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
37022 count = count ||
1000;
37024 if (length <
0 || count <
0) {
37025 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
37028 if (typeof password ===
"string") {
37029 password = sjcl.codec.utf8String.toBits(password);
37032 if (typeof salt ===
"string") {
37033 salt = sjcl.codec.utf8String.toBits(salt);
37036 Prff = Prff || sjcl.misc.hmac;
37038 var prf = new Prff(password),
37039 u, ui, i, j, k, out = [], b = sjcl.bitArray;
37041 for (k =
1;
32 * out.length < (length ||
1); k++) {
37042 u = ui = prf.encrypt(b.concat(salt,[k]));
37044 for (i=
1; i
<count; i++) {
37045 ui = prf.encrypt(ui);
37046 for (j=
0; j
<ui.length; j++) {
37051 out = out.concat(u);
37054 if (length) { out = b.clamp(out, length); }
37062 /** @fileOverview Javascript SHA-
256 implementation.
37064 * An older version of this implementation is available in the public
37065 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
37066 * Stanford University
2008-
2010 and BSD-licensed for liability
37069 * Special thanks to Aldo Cortesi for pointing out several bugs in
37072 * @author Emily Stark
37073 * @author Mike Hamburg
37074 * @author Dan Boneh
37078 * Context for a SHA-
256 operation in progress.
37080 * @class Secure Hash Algorithm,
256 bits.
37082 sjcl.hash.sha256 = function (hash) {
37083 if (!this._key[
0]) { this._precompute(); }
37085 this._h = hash._h.slice(
0);
37086 this._buffer = hash._buffer.slice(
0);
37087 this._length = hash._length;
37094 * Hash a string or an array of words.
37096 * @param {bitArray|String} data the data to hash.
37097 * @return {bitArray} The hash value, an array of
16 big-endian words.
37099 sjcl.hash.sha256.hash = function (data) {
37100 return (new sjcl.hash.sha256()).update(data).finalize();
37103 sjcl.hash.sha256.prototype = {
37105 * The hash's block size, in bits.
37111 * Reset the hash state.
37114 reset:function () {
37115 this._h = this._init.slice(
0);
37122 * Input several words to the hash.
37123 * @param {bitArray|String} data the data to hash.
37126 update: function (data) {
37127 if (typeof data ===
"string") {
37128 data = sjcl.codec.utf8String.toBits(data);
37130 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
37132 nl = this._length = ol + sjcl.bitArray.bitLength(data);
37133 for (i =
512+ol & -
512; i <= nl; i+=
512) {
37134 this._block(b.splice(
0,
16));
37140 * Complete hashing and output the hash value.
37141 * @return {bitArray} The hash value, an array of
8 big-endian words.
37143 finalize:function () {
37144 var i, b = this._buffer, h = this._h;
37146 // Round out and push the buffer
37147 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
37149 // Round out the buffer to a multiple of
16 words, less the
2 length words.
37150 for (i = b.length +
2; i &
15; i++) {
37154 // append the length
37155 b.push(Math.floor(this._length /
0x100000000));
37156 b.push(this._length |
0);
37159 this._block(b.splice(
0,
16));
37167 * The SHA-
256 initialization vector, to be precomputed.
37172 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
37176 * The SHA-
256 hash key, to be precomputed.
37182 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37183 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37184 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37185 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37186 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37187 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37188 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37189 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
37194 * Function to precompute _init and _key.
37197 _precompute: function () {
37198 var i =
0, prime =
2, factor;
37200 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
37202 outer: for (; i
<64; prime++) {
37203 for (factor=
2; factor*factor <= prime; factor++) {
37204 if (prime % factor ===
0) {
37211 this._init[i] = frac(Math.pow(prime,
1/
2));
37213 this._key[i] = frac(Math.pow(prime,
1/
3));
37219 * Perform one cycle of SHA-
256.
37220 * @param {bitArray} words one block of words.
37223 _block:function (words) {
37225 w = words.slice(
0),
37228 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
37229 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
37231 /* Rationale for placement of |
0 :
37232 * If a value can overflow is original
32 bits by a factor of more than a few
37233 * million (
2^
23 ish), there is a possibility that it might overflow the
37234 *
53-bit mantissa and lose precision.
37236 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
37237 * propagates around the loop, and on the hash state h[]. I don't believe
37238 * that the clamps on h4 and on h0 are strictly necessary, but it's close
37239 * (for h4 anyway), and better safe than sorry.
37241 * The clamps on h[] are necessary for the output to be correct even in the
37242 * common case and for short inputs.
37244 for (i=
0; i
<64; i++) {
37245 // load up the input word for this round
37249 a = w[(i+
1 ) &
15];
37250 b = w[(i+
14) &
15];
37251 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
37252 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
37253 w[i&
15] + w[(i+
9) &
15]) |
0;
37256 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
37259 h7 = h6; h6 = h5; h5 = h4;
37261 h3 = h2; h2 = h1; h1 = h0;
37263 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
37266 h[
0] = h[
0]+h0 |
0;
37267 h[
1] = h[
1]+h1 |
0;
37268 h[
2] = h[
2]+h2 |
0;
37269 h[
3] = h[
3]+h3 |
0;
37270 h[
4] = h[
4]+h4 |
0;
37271 h[
5] = h[
5]+h5 |
0;
37272 h[
6] = h[
6]+h6 |
0;
37273 h[
7] = h[
7]+h7 |
0;
37277 <script>// An extremely basic translation library
37281 // Set some html to be translated. Do this using the 'data-translate' attribute:
37283 //
<div data-translate
>Test
</div>
37284 //
<div data-translate-html
><em>keep em tag
</em></div>
37285 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
37286 //
<span data-translate-title
title=
"Example title"></span>
37288 // Obtain all the phrases to be translated via js debug console:
37290 // Translate.phrasesAsJson();
37292 // Use that template to translate the phrases into another language.
37293 // Leave the key the same. Change the value to the new language.
37295 // Create a js file to load the new phrases. In this example for Spanish,
37296 // es.js will contain the following code:
37298 // Translate.loadForeignPhrases("es", {
37299 // "Test": "Test in Spanish",
37300 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
37301 // "Example placeholder
": "Example placeholder in Spanish
"
37302 // "Example title
": "Example title in Spanish
"
37305 // In your UI put a listener for clicking on the Spanish button:
37307 // mySpanishButton.addEventListener("click
", function() {
37308 // Translate.setLanguage("es
");
37310 // myEnglishButton.addEventListener("click
", function() {
37311 // Translate.setLanguage("en
");
37314 Translate = new (function() {
37316 var defaultLanguage = "en
";
37318 var allPhrases = {};
37319 allPhrases[defaultLanguage] = {};
37324 selector: "[data-translate]
",
37325 getKey: function() {
37326 return this.textContent.trim().replace(/\s+/g, " ");
37328 setPhrase: function(p) {
37329 this.textContent = p;
37334 selector: "[data-translate-html]
",
37335 getKey: function() {
37336 return this.innerHTML.trim().replace(/\s+/g, " ");
37338 setPhrase: function(p) {
37339 this.innerHTML = p;
37343 var placeholder = {
37344 selector: "[data-translate-placeholder]
",
37345 getKey: function() {
37346 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
37348 setPhrase: function(p) {
37349 this.setAttribute("placeholder
", p);
37354 selector: "[data-translate-title]
",
37355 getKey: function() {
37356 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
37358 setPhrase: function(p) {
37359 this.setAttribute("title
", p);
37363 // Get elements to be translated
37364 var allEls = getEls(text)
37365 .concat(getEls(html))
37366 .concat(getEls(placeholder))
37367 .concat(getEls(title));
37369 // Provides access to phrases from a non-default language.
37370 // See phrases_en.js for example usage.
37371 this.loadForeignPhrases = function(language, phrases) {
37372 allPhrases[language] = phrases;
37375 // Displays a different language, eg "en
" or "fr
"
37376 this.setLanguage = function(language) {
37377 for (var i=0; i<allEls.length; i++) {
37378 var el = allEls[i];
37380 if (!(language in allPhrases)) {
37381 console.log(language + " not in allPhrases
");
37384 if (!(key in allPhrases[language])) {
37385 console.log(language + " does not contain phrase:
" + key);
37388 var phrase = allPhrases[language][key];
37389 el.setPhrase(phrase);
37393 // Converts the phrases to a key-pair json file.
37394 // This is a good way to export phrases for use in translation tools.
37395 this.phrasesAsJson = function(language) {
37397 for (var i=0; i<allEls.length; i++) {
37398 var el = allEls[i];
37404 for (var i=0; i<keys.length; i++) {
37406 var translated = "";
37407 if (language in allPhrases && key in allPhrases[language]) {
37408 translated = allPhrases[language][key];
37410 output[key] = translated;
37412 return JSON.stringify(output, null, 2);
37415 function getEls(nodeType) {
37416 var nodes = document.querySelectorAll(nodeType.selector);
37418 for (var i=0; i<nodes.length; i++) {
37419 var node = nodes[i];
37420 node.getKey = nodeType.getKey;
37421 node.setPhrase = nodeType.setPhrase;
37422 node.key = node.getKey();
37423 allPhrases[defaultLanguage][node.key] = node.key;
37431 <script>Translate.loadForeignPhrases("en",
37433 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
37434 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
37435 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
37436 "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).": "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).",
37437 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
37438 "Account": "Account",
37439 "Address": "Address",
37440 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
37441 "BIP32 Derivation Path": "BIP32 Derivation Path",
37442 "BIP32 Extended Key": "BIP32 Extended Key",
37443 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
37444 "BIP32 Root Key": "BIP32 Root Key",
37445 "BIP39 Mnemonic": "BIP39 Mnemonic",
37446 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
37447 "BIP39 Seed": "BIP39 Seed",
37448 "Base
10": "Base
10",
37449 "Base
6": "Base
6",
37450 "Be careful - it can be easy to make mistakes if you don't know what you're doing.": "Be careful - it can be easy to make mistakes if you don't know what you're doing.",
37451 "Binary": "Binary",
37452 "Bitcoin Core": "Bitcoin Core",
37453 "Bits Per Event": "Bits Per Event",
37454 "Block Explorers": "Block Explorers",
37455 "Can be used with": "Can be used with",
37459 "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.": "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.",
37460 "Double-click that file to open it in a browser on any offline computer.": "Double-click that file to open it in a browser on any offline computer.",
37461 "Entropy": "Entropy",
37462 "Entropy Type": "Entropy Type",
37463 "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.": "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.",
37464 "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.": "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.",
37465 "Event Count": "Event Count",
37466 "External / Internal": "External / Internal",
37467 "Filtered Entropy": "Filtered Entropy",
37468 "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>": "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>",
37469 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.",
37470 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.",
37471 "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>": "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>",
37472 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
37473 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
37474 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
37475 "Get the source code from the repository
": "Get the source code from the repository
",
37477 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
37478 "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
": "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
",
37479 "In that case you might choose to use your own source of entropy.
": "In that case you might choose to use your own source of entropy.
",
37480 "In your browser, select file save-as, and save this page as a file.
": "In your browser, select file save-as, and save this page as a file.
",
37481 "Libraries
": "Libraries
",
37482 "Mnemonic Language
": "Mnemonic Language
",
37483 "Mnemonic Length
": "Mnemonic Length
",
37484 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
37485 "More info
": "More info
",
37486 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
37487 "Mycelium Wallet
": "Mycelium Wallet
",
37488 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
37489 "Offline Usage
": "Offline Usage
",
37490 "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.": "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.",
37492 "Private Key": "Private Key",
37493 "Private Keys": "Private Keys",
37494 "Public Key": "Public Key",
37495 "Purpose": "Purpose",
37496 "Raw Binary": "Raw Binary",
37497 "Read more": "Read more",
37498 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>",
37499 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>",
37500 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>",
37501 "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>": "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>",
37503 "Show more rows
": "Show more rows
",
37504 "Strength
": "Strength
",
37505 "Supply my own source of entropy
": "Supply my own source of entropy
",
37506 "The built in random generator can generally be trusted more than your own intuition about randomness.
": "The built in random generator can generally be trusted more than your own intuition about randomness.
",
37507 "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.": "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.",
37508 "This means flipping a fair coin, rolling a fair dice, noise measurements etc.": "This means flipping a fair coin, rolling a fair dice, noise measurements etc.",
37509 "This project is
100% open-source code": "This project is
100% open-source code",
37510 "Toggle": "Toggle",
37511 "Total Bits": "Total Bits",
37512 "Use hardened addresses": "Use hardened addresses",
37513 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
37514 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
37515 "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.": "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.",
37516 "Valid entropy values include:": "Valid entropy values include:",
37517 "Warning": "Warning",
37518 "Word Count": "Word Count",
37519 "You are not a good source of entropy.": "You are not a good source of entropy.",
37520 "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).": "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).",
37521 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
37526 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37527 WORDLISTS["english"] = [
37528 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
37529 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
37530 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
37531 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
37532 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
37533 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
37534 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
37535 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
37536 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
37537 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
37538 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
37539 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
37540 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
37541 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
37542 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
37543 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
37544 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
37545 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
37546 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
37547 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
37548 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
37549 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
37550 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
37551 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
37552 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
37553 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
37554 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
37555 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
37556 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
37557 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
37558 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
37559 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
37560 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
37561 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
37562 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
37563 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
37564 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
37565 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
37566 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
37567 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
37568 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
37569 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
37570 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
37571 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
37572 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
37573 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
37574 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
37575 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
37576 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
37577 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
37578 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
37579 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
37580 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
37581 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
37582 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
37583 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
37584 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
37585 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
37586 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
37587 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
37588 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
37589 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
37590 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
37591 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
37592 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
37593 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
37594 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
37595 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
37596 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
37597 "film","filter","final","find","fine","finger","finish","fire","firm","first",
37598 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
37599 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
37600 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
37601 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
37602 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
37603 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
37604 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
37605 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
37606 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
37607 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
37608 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
37609 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
37610 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
37611 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
37612 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
37613 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
37614 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
37615 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
37616 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
37617 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
37618 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
37619 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
37620 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
37621 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
37622 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
37623 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
37624 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
37625 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
37626 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
37627 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
37628 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
37629 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
37630 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
37631 "liar","liberty","library","license","life","lift","light","like","limb","limit",
37632 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
37633 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
37634 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
37635 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
37636 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
37637 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
37638 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
37639 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
37640 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
37641 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
37642 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
37643 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
37644 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
37645 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
37646 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
37647 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
37648 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
37649 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
37650 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
37651 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
37652 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
37653 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
37654 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
37655 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
37656 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
37657 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
37658 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
37659 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
37660 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
37661 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
37662 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
37663 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
37664 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
37665 "prize","problem","process","produce","profit","program","project","promote","proof","property",
37666 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
37667 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
37668 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
37669 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
37670 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
37671 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
37672 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
37673 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
37674 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
37675 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
37676 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
37677 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
37678 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
37679 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
37680 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
37681 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
37682 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
37683 "scrub","sea","search","season","seat","second","secret","section","security","seed",
37684 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
37685 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
37686 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
37687 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
37688 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
37689 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
37690 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
37691 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
37692 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
37693 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
37694 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
37695 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
37696 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
37697 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
37698 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
37699 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
37700 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
37701 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
37702 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
37703 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
37704 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
37705 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
37706 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
37707 "thank","that","theme","then","theory","there","they","thing","this","thought",
37708 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
37709 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
37710 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
37711 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
37712 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
37713 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
37714 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
37715 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
37716 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
37717 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
37718 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
37719 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
37720 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
37721 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
37722 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
37723 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
37724 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
37725 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
37726 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
37727 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
37728 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
37729 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
37730 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
37731 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
37732 "yellow","you","young","youth","zebra","zero","zone","zoo"]
37734 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37735 WORDLISTS["japanese"] = [
37736 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
37737 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
37738 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
37739 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
37740 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
37741 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
37742 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
37743 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
37744 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
37745 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
37746 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
37747 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
37748 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
37749 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
37750 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
37751 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
37752 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
37753 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
37754 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
37755 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
37756 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
37757 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
37758 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
37759 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
37760 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
37761 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
37762 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
37763 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
37764 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
37765 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
37766 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
37767 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
37768 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
37769 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
37770 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
37771 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
37772 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
37773 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
37774 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
37775 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
37776 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
37777 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
37778 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
37779 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
37780 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
37781 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
37782 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
37783 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
37784 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
37785 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
37786 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
37787 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
37788 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
37789 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
37790 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
37791 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
37792 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
37793 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
37794 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
37795 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
37796 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
37797 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
37798 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
37799 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
37800 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
37801 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
37802 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
37803 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
37804 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
37805 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
37806 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
37807 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
37808 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
37809 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
37810 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
37811 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
37812 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
37813 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
37814 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
37815 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
37816 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
37817 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
37818 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
37819 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
37820 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
37821 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
37822 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
37823 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
37824 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
37825 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
37826 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
37827 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
37828 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
37829 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
37830 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
37831 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
37832 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
37833 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
37834 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
37835 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
37836 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
37837 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
37838 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
37839 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
37840 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
37841 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
37842 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
37843 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
37844 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
37845 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
37846 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
37847 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
37848 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
37849 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
37850 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
37851 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
37852 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
37853 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
37854 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
37855 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
37856 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
37857 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
37858 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
37859 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
37860 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
37861 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
37862 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
37863 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
37864 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
37865 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
37866 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
37867 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
37868 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
37869 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
37870 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
37871 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
37872 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
37873 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
37874 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
37875 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
37876 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
37877 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
37878 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
37879 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
37880 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
37881 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
37882 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
37883 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
37884 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
37885 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
37886 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
37887 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
37888 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
37889 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
37890 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
37891 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
37892 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
37893 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
37894 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
37895 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
37896 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
37897 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
37898 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
37899 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
37900 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
37901 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
37902 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
37903 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
37904 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
37905 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
37906 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
37907 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
37908 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
37909 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
37910 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
37911 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
37912 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
37913 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
37914 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
37915 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
37916 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
37917 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
37918 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
37919 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
37920 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
37921 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
37922 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
37923 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
37924 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
37925 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
37926 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
37927 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
37928 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
37929 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
37930 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
37931 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
37932 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
37933 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
37934 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
37935 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
37936 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
37937 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
37938 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
37939 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
37940 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
37942 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37943 WORDLISTS["spanish"] = [
37944 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
37945 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
37946 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
37947 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
37948 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
37949 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
37950 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
37951 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
37952 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
37953 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
37954 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
37955 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
37956 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
37957 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
37958 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
37959 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
37960 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
37961 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
37962 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
37963 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
37964 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
37965 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
37966 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
37967 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
37968 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
37969 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
37970 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
37971 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
37972 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
37973 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
37974 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
37975 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
37976 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
37977 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
37978 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
37979 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
37980 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
37981 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
37982 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
37983 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
37984 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
37985 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
37986 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
37987 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
37988 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
37989 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
37990 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
37991 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
37992 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
37993 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
37994 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
37995 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
37996 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
37997 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
37998 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
37999 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
38000 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
38001 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
38002 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
38003 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
38004 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
38005 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
38006 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
38007 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
38008 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
38009 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
38010 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
38011 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
38012 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
38013 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
38014 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
38015 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
38016 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
38017 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
38018 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
38019 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
38020 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
38021 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
38022 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
38023 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
38024 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
38025 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
38026 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
38027 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
38028 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
38029 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
38030 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
38031 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
38032 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
38033 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
38034 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
38035 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
38036 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
38037 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
38038 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
38039 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
38040 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
38041 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
38042 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
38043 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
38044 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
38045 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
38046 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
38047 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
38048 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
38049 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
38050 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
38051 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
38052 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
38053 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
38054 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
38055 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
38056 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
38057 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
38058 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
38059 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
38060 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
38061 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
38062 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
38063 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
38064 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
38065 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
38066 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
38067 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
38068 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
38069 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
38070 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
38071 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
38072 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
38073 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
38074 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
38075 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
38076 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
38077 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
38078 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
38079 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
38080 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
38081 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
38082 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
38083 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
38084 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
38085 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
38086 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
38087 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
38088 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
38089 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
38090 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
38091 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
38092 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
38093 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
38094 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
38095 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
38096 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
38097 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
38098 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
38099 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
38100 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
38101 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
38102 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
38103 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
38104 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
38105 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
38106 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
38107 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
38108 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
38109 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
38110 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
38111 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
38112 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
38113 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
38114 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
38115 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
38116 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
38117 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
38118 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
38119 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
38120 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
38121 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
38122 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
38123 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
38124 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
38125 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
38126 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
38127 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
38128 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
38129 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
38130 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
38131 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
38132 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
38133 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
38134 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
38135 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
38136 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
38137 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
38138 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
38139 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
38140 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
38141 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
38142 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
38143 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
38144 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
38145 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
38146 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
38147 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
38148 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
38150 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38151 WORDLISTS["chinese_simplified"] = [
38152 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
38153 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
38154 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
38155 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
38156 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
38157 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
38158 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
38159 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
38160 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
38161 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
38162 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
38163 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38164 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
38165 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
38166 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
38167 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
38168 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
38169 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
38170 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
38171 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
38172 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
38173 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
38174 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
38175 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
38176 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
38177 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
38178 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
38179 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
38180 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
38181 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
38182 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
38183 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
38184 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
38185 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
38186 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
38187 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
38188 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
38189 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
38190 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
38191 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
38192 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
38193 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
38194 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
38195 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
38196 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
38197 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
38198 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
38199 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
38200 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
38201 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
38202 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
38203 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
38204 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
38205 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
38206 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
38207 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
38208 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
38209 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
38210 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
38211 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
38212 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
38213 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
38214 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
38215 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
38216 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
38217 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
38218 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
38219 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
38220 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
38221 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
38222 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
38223 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
38224 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
38225 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
38226 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
38227 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38228 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
38229 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
38230 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
38231 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
38232 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
38233 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
38234 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
38235 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
38236 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
38237 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
38238 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
38239 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
38240 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
38241 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
38242 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
38243 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
38244 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38245 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
38246 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
38247 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
38248 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
38249 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
38250 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
38251 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
38252 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
38253 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
38254 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
38255 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
38256 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
38257 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
38258 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
38259 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
38260 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38261 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38262 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
38263 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
38264 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
38265 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
38266 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
38267 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
38268 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
38269 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
38270 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
38271 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
38272 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
38273 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38274 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
38275 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
38276 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
38277 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
38278 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
38279 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
38280 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
38281 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
38282 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
38283 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
38284 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
38285 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
38286 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
38287 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
38288 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
38289 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
38290 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
38291 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
38292 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
38293 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
38294 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
38295 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
38296 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
38297 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
38298 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
38299 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
38300 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
38301 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
38302 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
38303 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
38304 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
38305 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
38306 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
38307 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
38308 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
38309 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
38310 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
38311 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
38312 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
38313 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
38314 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
38315 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
38316 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
38317 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
38318 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
38319 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
38320 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
38321 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
38322 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
38323 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
38324 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
38325 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
38326 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
38327 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
38328 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
38329 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
38330 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
38331 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
38332 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
38333 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
38334 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
38335 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
38336 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
38337 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
38338 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
38339 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
38340 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
38341 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
38342 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
38343 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
38344 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
38345 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
38346 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
38347 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
38348 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
38349 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
38350 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
38351 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
38352 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
38353 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
38354 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
38355 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
38356 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
38358 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38359 WORDLISTS["chinese_traditional"] = [
38360 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
38361 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
38362 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
38363 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
38364 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
38365 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
38366 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
38367 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
38368 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
38369 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
38370 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
38371 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38372 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
38373 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
38374 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
38375 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
38376 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
38377 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
38378 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
38379 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
38380 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
38381 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
38382 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
38383 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
38384 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
38385 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
38386 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
38387 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
38388 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
38389 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
38390 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
38391 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
38392 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
38393 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
38394 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
38395 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
38396 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
38397 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
38398 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
38399 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
38400 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
38401 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
38402 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
38403 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
38404 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
38405 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
38406 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
38407 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
38408 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
38409 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
38410 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
38411 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
38412 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
38413 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
38414 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
38415 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
38416 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
38417 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
38418 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
38419 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
38420 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
38421 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
38422 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
38423 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
38424 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
38425 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
38426 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
38427 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
38428 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
38429 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
38430 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
38431 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
38432 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
38433 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
38434 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
38435 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38436 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
38437 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
38438 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
38439 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
38440 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
38441 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
38442 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
38443 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
38444 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
38445 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
38446 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
38447 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
38448 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
38449 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
38450 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
38451 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
38452 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38453 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
38454 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
38455 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
38456 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
38457 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
38458 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
38459 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
38460 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
38461 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
38462 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
38463 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
38464 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
38465 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
38466 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
38467 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
38468 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38469 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38470 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
38471 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
38472 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
38473 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
38474 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
38475 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
38476 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
38477 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
38478 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
38479 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
38480 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
38481 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38482 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
38483 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
38484 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
38485 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
38486 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
38487 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
38488 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
38489 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
38490 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
38491 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
38492 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
38493 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
38494 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
38495 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
38496 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
38497 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
38498 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
38499 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
38500 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
38501 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
38502 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
38503 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
38504 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
38505 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
38506 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
38507 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
38508 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
38509 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
38510 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
38511 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
38512 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
38513 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
38514 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
38515 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
38516 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
38517 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
38518 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
38519 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
38520 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
38521 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
38522 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
38523 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
38524 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
38525 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
38526 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
38527 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
38528 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
38529 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
38530 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
38531 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
38532 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
38533 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
38534 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
38535 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
38536 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
38537 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
38538 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
38539 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
38540 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
38541 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
38542 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
38543 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
38544 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
38545 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
38546 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
38547 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
38548 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
38549 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
38550 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
38551 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
38552 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
38553 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
38554 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
38555 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
38556 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
38557 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
38558 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
38559 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
38560 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
38561 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
38562 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
38563 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
38564 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
38566 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38567 WORDLISTS["french"] = [
38568 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
38569 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
38570 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
38571 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
38572 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
38573 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
38574 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
38575 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
38576 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
38577 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
38578 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
38579 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
38580 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
38581 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
38582 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
38583 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
38584 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
38585 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
38586 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
38587 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
38588 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
38589 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
38590 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
38591 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
38592 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
38593 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
38594 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
38595 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
38596 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
38597 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
38598 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
38599 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
38600 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
38601 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
38602 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
38603 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
38604 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
38605 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
38606 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
38607 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
38608 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
38609 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
38610 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
38611 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
38612 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
38613 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
38614 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
38615 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
38616 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
38617 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
38618 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
38619 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
38620 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
38621 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
38622 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
38623 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
38624 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
38625 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
38626 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
38627 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
38628 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
38629 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
38630 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
38631 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
38632 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
38633 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
38634 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
38635 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
38636 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
38637 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
38638 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
38639 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
38640 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
38641 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
38642 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
38643 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
38644 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
38645 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
38646 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
38647 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
38648 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
38649 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
38650 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
38651 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
38652 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
38653 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
38654 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
38655 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
38656 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
38657 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
38658 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
38659 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
38660 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
38661 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
38662 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
38663 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
38664 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
38665 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
38666 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
38667 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
38668 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
38669 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
38670 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
38671 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
38672 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
38673 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
38674 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
38675 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
38676 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
38677 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
38678 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
38679 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
38680 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
38681 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
38682 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
38683 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
38684 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
38685 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
38686 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
38687 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
38688 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
38689 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
38690 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
38691 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
38692 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
38693 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
38694 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
38695 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
38696 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
38697 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
38698 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
38699 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
38700 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
38701 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
38702 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
38703 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
38704 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
38705 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
38706 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
38707 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
38708 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
38709 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
38710 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
38711 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
38712 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
38713 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
38714 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
38715 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
38716 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
38717 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
38718 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
38719 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
38720 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
38721 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
38722 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
38723 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
38724 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
38725 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
38726 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
38727 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
38728 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
38729 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
38730 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
38731 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
38732 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
38733 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
38734 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
38735 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
38736 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
38737 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
38738 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
38739 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
38740 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
38741 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
38742 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
38743 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
38744 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
38745 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
38746 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
38747 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
38748 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
38749 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
38750 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
38751 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
38752 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
38753 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
38754 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
38755 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
38756 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
38757 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
38758 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
38759 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
38760 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
38761 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
38762 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
38763 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
38764 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
38765 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
38766 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
38767 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
38768 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
38769 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
38770 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
38771 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
38772 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
38774 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38775 WORDLISTS["italian"] = [
38776 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
38777 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
38778 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
38779 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
38780 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
38781 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
38782 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
38783 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
38784 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
38785 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
38786 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
38787 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
38788 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
38789 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
38790 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
38791 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
38792 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
38793 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
38794 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
38795 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
38796 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
38797 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
38798 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
38799 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
38800 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
38801 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
38802 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
38803 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
38804 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
38805 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
38806 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
38807 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
38808 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
38809 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
38810 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
38811 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
38812 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
38813 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
38814 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
38815 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
38816 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
38817 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
38818 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
38819 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
38820 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
38821 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
38822 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
38823 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
38824 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
38825 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
38826 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
38827 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
38828 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
38829 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
38830 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
38831 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
38832 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
38833 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
38834 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
38835 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
38836 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
38837 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
38838 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
38839 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
38840 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
38841 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
38842 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
38843 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
38844 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
38845 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
38846 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
38847 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
38848 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
38849 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
38850 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
38851 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
38852 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
38853 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
38854 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
38855 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
38856 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
38857 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
38858 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
38859 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
38860 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
38861 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
38862 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
38863 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
38864 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
38865 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
38866 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
38867 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
38868 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
38869 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
38870 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
38871 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
38872 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
38873 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
38874 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
38875 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
38876 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
38877 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
38878 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
38879 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
38880 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
38881 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
38882 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
38883 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
38884 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
38885 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
38886 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
38887 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
38888 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
38889 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
38890 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
38891 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
38892 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
38893 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
38894 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
38895 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
38896 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
38897 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
38898 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
38899 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
38900 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
38901 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
38902 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
38903 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
38904 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
38905 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
38906 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
38907 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
38908 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
38909 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
38910 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
38911 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
38912 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
38913 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
38914 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
38915 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
38916 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
38917 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
38918 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
38919 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
38920 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
38921 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
38922 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
38923 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
38924 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
38925 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
38926 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
38927 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
38928 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
38929 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
38930 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
38931 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
38932 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
38933 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
38934 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
38935 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
38936 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
38937 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
38938 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
38939 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
38940 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
38941 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
38942 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
38943 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
38944 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
38945 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
38946 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
38947 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
38948 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
38949 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
38950 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
38951 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
38952 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
38953 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
38954 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
38955 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
38956 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
38957 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
38958 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
38959 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
38960 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
38961 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
38962 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
38963 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
38964 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
38965 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
38966 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
38967 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
38968 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
38969 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
38970 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
38971 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
38972 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
38973 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
38974 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
38975 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
38976 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
38977 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
38978 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
38979 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
38980 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
38983 * Copyright (c)
2013 Pavol Rusnak
38985 * Permission is hereby granted, free of charge, to any person obtaining a copy of
38986 * this software and associated documentation files (the "Software"), to deal in
38987 * the Software without restriction, including without limitation the rights to
38988 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
38989 * of the Software, and to permit persons to whom the Software is furnished to do
38990 * so, subject to the following conditions:
38992 * The above copyright notice and this permission notice shall be included in all
38993 * copies or substantial portions of the Software.
38995 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38996 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38997 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
38998 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38999 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
39000 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39004 * Javascript port from python by Ian Coleman
39006 * Requires code from sjcl
39007 * https://github.com/bitwiseshiftleft/sjcl
39010 var Mnemonic = function(language) {
39012 var PBKDF2_ROUNDS =
2048;
39018 var hmacSHA512 = function(key) {
39019 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
39020 this.encrypt = function() {
39021 return hasher.encrypt.apply(hasher, arguments);
39026 wordlist = WORDLISTS[language];
39027 if (wordlist.length != RADIX) {
39028 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
39033 self.generate = function(strength) {
39034 strength = strength ||
128;
39035 var r = strength %
32;
39037 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
39039 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
39040 if (!hasStrongCrypto) {
39041 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
39043 var buffer = new Uint8Array(strength /
8);
39044 var data = crypto.getRandomValues(buffer);
39045 return self.toMnemonic(data);
39048 self.toMnemonic = function(byteArray) {
39049 if (byteArray.length %
4 > 0) {
39050 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
39053 //h = hashlib.sha256(data).hexdigest()
39054 var data = byteArrayToWordArray(byteArray);
39055 var hash = sjcl.hash.sha256.hash(data);
39056 var h = sjcl.codec.hex.fromBits(hash);
39058 // b is a binary string, eg '
00111010101100...'
39059 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
39060 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
39062 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
39063 // c = bin(int(h,
16))[
2:].zfill(
256)
39064 // d = c[:len(data) *
8 /
32]
39065 var a = byteArrayToBinaryString(byteArray);
39066 var c = zfill(hexStringToBinaryString(h),
256);
39067 var d = c.substring(
0, byteArray.length *
8 /
32);
39068 // b = line1 + line2
39072 var blen = b.length /
11;
39073 for (var i=
0; i
<blen; i++) {
39074 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
39075 result.push(wordlist[idx]);
39077 return self.joinWords(result);
39080 self.check = function(mnemonic) {
39081 var mnemonic = self.splitWords(mnemonic);
39082 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
39085 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
39087 for (var i=
0; i
<mnemonic.length; i++) {
39088 var word = mnemonic[i];
39089 var wordIndex = wordlist.indexOf(word);
39090 if (wordIndex == -
1) {
39093 var binaryIndex = zfill(wordIndex.toString(
2),
11);
39094 idx.push(binaryIndex);
39096 var b = idx.join('');
39098 //d = b[:l /
33 *
32]
39100 var d = b.substring(
0, l /
33 *
32);
39101 var h = b.substring(l - l /
33, l);
39102 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
39103 var nd = binaryStringToWordArray(d);
39104 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
39105 var ndHash = sjcl.hash.sha256.hash(nd);
39106 var ndHex = sjcl.codec.hex.fromBits(ndHash);
39107 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
39108 var nh = ndBstr.substring(
0,l/
33);
39112 self.toSeed = function(mnemonic, passphrase) {
39113 passphrase = passphrase || '';
39114 mnemonic = self.joinWords(self.splitWords(self.normalizeString(mnemonic))); // removes blanks
39115 passphrase = self.normalizeString(passphrase)
39116 passphrase =
"mnemonic" + passphrase;
39117 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonic);
39118 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
39119 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
39120 var hashHex = sjcl.codec.hex.fromBits(result);
39124 self.splitWords = function(mnemonic) {
39125 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
39128 self.joinWords = function(words) {
39129 // Set space correctly depending on the language
39130 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
39132 if (language ==
"japanese") {
39133 space =
"\u3000"; // ideographic space
39135 return words.join(space);
39138 self.normalizeString = function(str) {
39139 if (typeof str.normalize ==
"function") {
39140 return str.normalize(
"NFKD");
39143 // TODO decide how to handle this in the future.
39144 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
39149 function byteArrayToWordArray(data) {
39151 for (var i=
0; i
<data.length/
4; i++) {
39153 v += data[i*
4 +
0] <<
8 *
3;
39154 v += data[i*
4 +
1] <<
8 *
2;
39155 v += data[i*
4 +
2] <<
8 *
1;
39156 v += data[i*
4 +
3] <<
8 *
0;
39162 function byteArrayToBinaryString(data) {
39164 for (var i=
0; i
<data.length; i++) {
39165 bin += zfill(data[i].toString(
2),
8);
39170 function hexStringToBinaryString(hexString) {
39172 for (var i=
0; i
<hexString.length; i++) {
39173 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
39175 return binaryString;
39178 function binaryStringToWordArray(binary) {
39179 var aLen = binary.length /
32;
39181 for (var i=
0; i
<aLen; i++) {
39182 var valueStr = binary.substring(
0,
32);
39183 var value = parseInt(valueStr,
2);
39185 binary = binary.slice(
32);
39190 // Pad a numeric string on the left with zero digits until the given width
39192 // Note this differs to the python implementation because it does not
39193 // handle numbers starting with a sign.
39194 function zfill(source, length) {
39195 source = source.toString();
39196 while (source.length < length) {
39197 source = '
0' + source;
39207 JavaScript BigInteger library version
0.9.1
39208 http://silentmatt.com/biginteger/
39210 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
39211 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
39212 Licensed under the MIT license.
39214 Support for arbitrary internal representation base was added by
39219 File: biginteger.js
39225 (function(exports) {
39229 An arbitrarily-large integer.
39231 <BigInteger> objects should be considered immutable. None of the "built-in"
39232 methods modify *this* or their arguments. All properties should be
39233 considered private.
39235 All the methods of
<BigInteger> instances can be called "statically". The
39236 static versions are convenient if you don't already have a
<BigInteger>
39239 As an example, these calls are equivalent.
39241 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
39242 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
39245 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
39248 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
39251 Constructor: BigInteger()
39252 Convert a value to a
<BigInteger>.
39254 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
39255 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
39256 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
39257 without a radix argument.
39259 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
39260 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
39261 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
39262 > var n3 = BigInteger(n2); // Return n2, unchanged
39264 The constructor form only takes an array and a sign. *n* must be an
39265 array of numbers in little-endian order, where each digit is between
0
39266 and BigInteger.base. The second parameter sets the sign: -
1 for
39267 negative, +
1 for positive, or
0 for zero. The array is *not copied and
39268 may be modified*. If the array contains only zeros, the sign parameter
39269 is ignored and is forced to zero.
39271 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
39275 n - Value to convert to a
<BigInteger>.
39279 A
<BigInteger> value.
39283 <parse>,
<BigInteger>
39285 function BigInteger(n, s, token) {
39286 if (token !== CONSTRUCT) {
39287 if (n instanceof BigInteger) {
39290 else if (typeof n === "undefined") {
39293 return BigInteger.parse(n);
39296 n = n || []; // Provide the nullary constructor for subclasses.
39297 while (n.length && !n[n.length -
1]) {
39301 this._s = n.length ? (s ||
1) :
0;
39304 BigInteger._construct = function(n, s) {
39305 return new BigInteger(n, s, CONSTRUCT);
39308 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
39309 // require base to be a power of
10.
10^
7 is the largest such power
39310 // that won't cause a precision loss when digits are multiplied.
39311 var BigInteger_base =
10000000;
39312 var BigInteger_base_log10 =
7;
39314 BigInteger.base = BigInteger_base;
39315 BigInteger.base_log10 = BigInteger_base_log10;
39317 var ZERO = new BigInteger([],
0, CONSTRUCT);
39320 BigInteger.ZERO = ZERO;
39322 var ONE = new BigInteger([
1],
1, CONSTRUCT);
39325 BigInteger.ONE = ONE;
39327 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
39329 //
<BigInteger> -
1.
39330 BigInteger.M_ONE = M_ONE;
39333 // Shortcut for
<ZERO>.
39334 BigInteger._0 = ZERO;
39337 // Shortcut for
<ONE>.
39338 BigInteger._1 = ONE;
39342 Array of
<BigIntegers> from
0 to
36.
39344 These are used internally for parsing, but useful when you need a "small"
39349 <ZERO>,
<ONE>,
<_0>,
<_1>
39351 BigInteger.small = [
39354 /* Assuming BigInteger_base
> 36 */
39355 new BigInteger( [
2],
1, CONSTRUCT),
39356 new BigInteger( [
3],
1, CONSTRUCT),
39357 new BigInteger( [
4],
1, CONSTRUCT),
39358 new BigInteger( [
5],
1, CONSTRUCT),
39359 new BigInteger( [
6],
1, CONSTRUCT),
39360 new BigInteger( [
7],
1, CONSTRUCT),
39361 new BigInteger( [
8],
1, CONSTRUCT),
39362 new BigInteger( [
9],
1, CONSTRUCT),
39363 new BigInteger([
10],
1, CONSTRUCT),
39364 new BigInteger([
11],
1, CONSTRUCT),
39365 new BigInteger([
12],
1, CONSTRUCT),
39366 new BigInteger([
13],
1, CONSTRUCT),
39367 new BigInteger([
14],
1, CONSTRUCT),
39368 new BigInteger([
15],
1, CONSTRUCT),
39369 new BigInteger([
16],
1, CONSTRUCT),
39370 new BigInteger([
17],
1, CONSTRUCT),
39371 new BigInteger([
18],
1, CONSTRUCT),
39372 new BigInteger([
19],
1, CONSTRUCT),
39373 new BigInteger([
20],
1, CONSTRUCT),
39374 new BigInteger([
21],
1, CONSTRUCT),
39375 new BigInteger([
22],
1, CONSTRUCT),
39376 new BigInteger([
23],
1, CONSTRUCT),
39377 new BigInteger([
24],
1, CONSTRUCT),
39378 new BigInteger([
25],
1, CONSTRUCT),
39379 new BigInteger([
26],
1, CONSTRUCT),
39380 new BigInteger([
27],
1, CONSTRUCT),
39381 new BigInteger([
28],
1, CONSTRUCT),
39382 new BigInteger([
29],
1, CONSTRUCT),
39383 new BigInteger([
30],
1, CONSTRUCT),
39384 new BigInteger([
31],
1, CONSTRUCT),
39385 new BigInteger([
32],
1, CONSTRUCT),
39386 new BigInteger([
33],
1, CONSTRUCT),
39387 new BigInteger([
34],
1, CONSTRUCT),
39388 new BigInteger([
35],
1, CONSTRUCT),
39389 new BigInteger([
36],
1, CONSTRUCT)
39392 // Used for parsing/radix conversion
39393 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
39397 Convert a
<BigInteger> to a string.
39399 When *base* is greater than
10, letters are upper case.
39403 base - Optional base to represent the number in (default is base
10).
39404 Must be between
2 and
36 inclusive, or an Error will be thrown.
39408 The string representation of the
<BigInteger>.
39410 BigInteger.prototype.toString = function(base) {
39411 base = +base ||
10;
39412 if (base <
2 || base
> 36) {
39413 throw new Error(
"illegal radix " + base +
".");
39415 if (this._s ===
0) {
39419 var str = this._s <
0 ?
"-" :
"";
39420 str += this._d[this._d.length -
1].toString();
39421 for (var i = this._d.length -
2; i
>=
0; i--) {
39422 var group = this._d[i].toString();
39423 while (group.length < BigInteger_base_log10) group = '
0' + group;
39429 var numerals = BigInteger.digits;
39430 base = BigInteger.small[base];
39431 var sign = this._s;
39433 var n = this.abs();
39437 while (n._s !==
0) {
39438 var divmod = n.divRem(base);
39441 // TODO: This could be changed to unshift instead of reversing at the end.
39442 // Benchmark both to compare speeds.
39443 digits.push(numerals[digit.valueOf()]);
39445 return (sign <
0 ? "-" : "") + digits.reverse().join("");
39449 // Verify strings for parsing
39450 BigInteger.radixRegex = [
39492 Parse a string into a
<BigInteger>.
39494 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
39495 *base* is not provided, it will be guessed based on the leading characters
39498 - "
0x" or "
0X": *base* =
16
39499 - "
0c" or "
0C": *base* =
8
39500 - "
0b" or "
0B": *base* =
2
39501 - else: *base* =
10
39503 If no base is provided, or *base* is
10, the number can be in exponential
39504 form. For example, these are all valid:
39506 > BigInteger.parse("
1e9"); // Same as "
1000000000"
39507 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
39508 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
39510 If any characters fall outside the range defined by the radix, an exception
39515 s - The string to parse.
39516 base - Optional radix (default is to guess based on *s*).
39520 a
<BigInteger> instance.
39522 BigInteger.parse = function(s, base) {
39523 // Expands a number in exponential form to decimal form.
39524 // expandExponential("-
13.441*
10^
5") === "
1344100";
39525 // expandExponential("
1.12300e-1") === "
0.112300";
39526 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
39527 function expandExponential(str) {
39528 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
39530 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
39533 var i = n.length + c;
39534 x = (l ? n : f).length;
39535 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
39536 var z = (new Array(c +
1)).join("
0");
39538 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
39543 if (typeof base === "undefined" || +base ===
10) {
39544 s = expandExponential(s);
39548 if (typeof base === "undefined") {
39549 prefixRE = '
0[xcb]';
39551 else if (base ==
16) {
39554 else if (base ==
8) {
39557 else if (base ==
2) {
39563 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
39565 var sign = parts[
1] || "+";
39566 var baseSection = parts[
2] || "";
39567 var digits = parts[
3] || "";
39569 if (typeof base === "undefined") {
39571 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
39574 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
39577 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
39584 else if (base <
2 || base
> 36) {
39585 throw new Error(
"Illegal radix " + base +
".");
39590 // Check for digits outside the range
39591 if (!(BigInteger.radixRegex[base].test(digits))) {
39592 throw new Error(
"Bad digit for radix " + base);
39595 // Strip leading zeros, and convert to array
39596 digits = digits.replace(/^
0+/,
"").split(
"");
39597 if (digits.length ===
0) {
39601 // Get the sign (we know it's not zero)
39602 sign = (sign ===
"-") ? -
1 :
1;
39607 while (digits.length
>= BigInteger_base_log10) {
39608 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
39610 d.push(parseInt(digits.join(''),
10));
39611 return new BigInteger(d, sign, CONSTRUCT);
39614 // Do the conversion
39616 base = BigInteger.small[base];
39617 var small = BigInteger.small;
39618 for (var i =
0; i < digits.length; i++) {
39619 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
39621 return new BigInteger(d._d, sign, CONSTRUCT);
39624 throw new Error("Invalid BigInteger format: " + s);
39630 Add two
<BigIntegers>.
39634 n - The number to add to *this*. Will be converted to a
<BigInteger>.
39638 The numbers added together.
39642 <subtract>,
<multiply>,
<quotient>,
<next>
39644 BigInteger.prototype.add = function(n) {
39645 if (this._s ===
0) {
39646 return BigInteger(n);
39653 if (this._s !== n._s) {
39655 return this.subtract(n);
39662 var sum = new Array(Math.max(al, bl) +
1);
39663 var size = Math.min(al, bl);
39667 for (var i =
0; i < size; i++) {
39668 digit = a[i] + b[i] + carry;
39669 sum[i] = digit % BigInteger_base;
39670 carry = (digit / BigInteger_base) |
0;
39676 for (i = size; carry && i < al; i++) {
39677 digit = a[i] + carry;
39678 sum[i] = digit % BigInteger_base;
39679 carry = (digit / BigInteger_base) |
0;
39685 for ( ; i < al; i++) {
39689 return new BigInteger(sum, this._s, CONSTRUCT);
39694 Get the additive inverse of a
<BigInteger>.
39698 A
<BigInteger> with the same magnatude, but with the opposite sign.
39704 BigInteger.prototype.negate = function() {
39705 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
39710 Get the absolute value of a
<BigInteger>.
39714 A
<BigInteger> with the same magnatude, but always positive (or zero).
39720 BigInteger.prototype.abs = function() {
39721 return (this._s <
0) ? this.negate() : this;
39726 Subtract two
<BigIntegers>.
39730 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
39734 The *n* subtracted from *this*.
39738 <add>,
<multiply>,
<quotient>,
<prev>
39740 BigInteger.prototype.subtract = function(n) {
39741 if (this._s ===
0) {
39742 return BigInteger(n).negate();
39749 if (this._s !== n._s) {
39751 return this.add(n);
39755 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
39757 m = new BigInteger(n._d,
1, CONSTRUCT);
39758 n = new BigInteger(this._d,
1, CONSTRUCT);
39761 // Both are positive =
> a - b
39762 var sign = m.compareAbs(n);
39766 else if (sign <
0) {
39778 var diff = new Array(al); // al
>= bl since a
> b
39783 for (i =
0; i < bl; i++) {
39784 digit = a[i] - borrow - b[i];
39786 digit += BigInteger_base;
39794 for (i = bl; i < al; i++) {
39795 digit = a[i] - borrow;
39797 digit += BigInteger_base;
39805 for ( ; i < al; i++) {
39809 return new BigInteger(diff, sign, CONSTRUCT);
39813 function addOne(n, sign) {
39815 var sum = a.slice();
39820 var digit = (a[i] ||
0) +
1;
39821 sum[i] = digit % BigInteger_base;
39822 if (digit <= BigInteger_base -
1) {
39828 return new BigInteger(sum, sign, CONSTRUCT);
39831 function subtractOne(n, sign) {
39833 var sum = a.slice();
39838 var digit = (a[i] ||
0) -
1;
39840 sum[i] = digit + BigInteger_base;
39849 return new BigInteger(sum, sign, CONSTRUCT);
39854 Get the next
<BigInteger> (add one).
39864 BigInteger.prototype.next = function() {
39869 return subtractOne(this, -
1);
39872 return addOne(this,
1);
39878 Get the previous
<BigInteger> (subtract one).
39888 BigInteger.prototype.prev = function() {
39893 return addOne(this, -
1);
39896 return subtractOne(this,
1);
39902 Function: compareAbs
39903 Compare the absolute value of two
<BigIntegers>.
39905 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
39909 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
39913 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
39919 BigInteger.prototype.compareAbs = function(n) {
39924 if (!(n instanceof BigInteger)) {
39925 if (!isFinite(n)) {
39926 return(isNaN(n) ? n : -
1);
39931 if (this._s ===
0) {
39932 return (n._s !==
0) ? -
1 :
0;
39938 var l = this._d.length;
39939 var nl = n._d.length;
39949 for (var i = l-
1; i
>=
0; i--) {
39950 if (a[i] !== b[i]) {
39951 return a[i] < b[i] ? -
1 :
1;
39960 Compare two
<BigIntegers>.
39964 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
39968 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
39972 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
39974 BigInteger.prototype.compare = function(n) {
39981 if (this._s ===
0) {
39985 if (this._s === n._s) { // both positive or both negative
39986 var cmp = this.compareAbs(n);
39987 return cmp * this._s;
39996 Return true iff *this* is either
1 or -
1.
40000 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
40004 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
40005 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
40007 BigInteger.prototype.isUnit = function() {
40008 return this === ONE ||
40010 (this._d.length ===
1 && this._d[
0] ===
1);
40015 Multiply two
<BigIntegers>.
40019 n - The number to multiply *this* by. Will be converted to a
40024 The numbers multiplied together.
40028 <add>,
<subtract>,
<quotient>,
<square>
40030 BigInteger.prototype.multiply = function(n) {
40031 // TODO: Consider adding Karatsuba multiplication for large numbers
40032 if (this._s ===
0) {
40040 if (this.isUnit()) {
40048 return this.negate();
40053 return this.square();
40056 var r = (this._d.length
>= n._d.length);
40057 var a = (r ? this : n)._d; // a will be longer than b
40058 var b = (r ? n : this)._d;
40063 var partial = new Array(pl);
40065 for (i =
0; i < pl; i++) {
40069 for (i =
0; i < bl; i++) {
40072 var jlimit = al + i;
40074 for (var j = i; j < jlimit; j++) {
40075 digit = partial[j] + bi * a[j - i] + carry;
40076 carry = (digit / BigInteger_base) |
0;
40077 partial[j] = (digit % BigInteger_base) |
0;
40080 digit = partial[j] + carry;
40081 carry = (digit / BigInteger_base) |
0;
40082 partial[j] = digit % BigInteger_base;
40085 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
40088 // Multiply a BigInteger by a single-digit native number
40089 // Assumes that this and n are
>=
0
40090 // This is not really intended to be used outside the library itself
40091 BigInteger.prototype.multiplySingleDigit = function(n) {
40092 if (n ===
0 || this._s ===
0) {
40100 if (this._d.length ===
1) {
40101 digit = this._d[
0] * n;
40102 if (digit
>= BigInteger_base) {
40103 return new BigInteger([(digit % BigInteger_base)|
0,
40104 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
40106 return new BigInteger([digit],
1, CONSTRUCT);
40110 return this.add(this);
40112 if (this.isUnit()) {
40113 return new BigInteger([n],
1, CONSTRUCT);
40120 var partial = new Array(pl);
40121 for (var i =
0; i < pl; i++) {
40126 for (var j =
0; j < al; j++) {
40127 digit = n * a[j] + carry;
40128 carry = (digit / BigInteger_base) |
0;
40129 partial[j] = (digit % BigInteger_base) |
0;
40132 partial[j] = carry;
40135 return new BigInteger(partial,
1, CONSTRUCT);
40140 Multiply a
<BigInteger> by itself.
40142 This is slightly faster than regular multiplication, since it removes the
40143 duplicated multiplcations.
40147 > this.multiply(this)
40152 BigInteger.prototype.square = function() {
40153 // Normally, squaring a
10-digit number would take
100 multiplications.
40154 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
40155 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
40156 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
40158 if (this._s ===
0) {
40161 if (this.isUnit()) {
40165 var digits = this._d;
40166 var length = digits.length;
40167 var imult1 = new Array(length + length +
1);
40168 var product, carry, k;
40171 // Calculate diagonal
40172 for (i =
0; i < length; i++) {
40174 product = digits[i] * digits[i];
40175 carry = (product / BigInteger_base) |
0;
40176 imult1[k] = product % BigInteger_base;
40177 imult1[k +
1] = carry;
40180 // Calculate repeating part
40181 for (i =
0; i < length; i++) {
40184 for (var j = i +
1; j < length; j++, k++) {
40185 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
40186 carry = (product / BigInteger_base) |
0;
40187 imult1[k] = product % BigInteger_base;
40190 var digit = carry + imult1[k];
40191 carry = (digit / BigInteger_base) |
0;
40192 imult1[k] = digit % BigInteger_base;
40193 imult1[k +
1] += carry;
40196 return new BigInteger(imult1,
1, CONSTRUCT);
40201 Divide two
<BigIntegers> and truncate towards zero.
40203 <quotient> throws an exception if *n* is zero.
40207 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40211 The *this* / *n*, truncated to an integer.
40215 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
40217 BigInteger.prototype.quotient = function(n) {
40218 return this.divRem(n)[
0];
40223 Deprecated synonym for
<quotient>.
40225 BigInteger.prototype.divide = BigInteger.prototype.quotient;
40228 Function: remainder
40229 Calculate the remainder of two
<BigIntegers>.
40231 <remainder> throws an exception if *n* is zero.
40235 n - The remainder after *this* is divided *this* by *n*. Will be
40236 converted to a
<BigInteger>.
40244 <divRem>,
<quotient>
40246 BigInteger.prototype.remainder = function(n) {
40247 return this.divRem(n)[
1];
40252 Calculate the integer quotient and remainder of two
<BigIntegers>.
40254 <divRem> throws an exception if *n* is zero.
40258 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40262 A two-element array containing the quotient and the remainder.
40266 is exactly equivalent to
40268 > [a.quotient(b), a.remainder(b)]
40270 except it is faster, because they are calculated at the same time.
40274 <quotient>,
<remainder>
40276 BigInteger.prototype.divRem = function(n) {
40279 throw new Error("Divide by zero");
40281 if (this._s ===
0) {
40282 return [ZERO, ZERO];
40284 if (n._d.length ===
1) {
40285 return this.divRemSmall(n._s * n._d[
0]);
40288 // Test for easy cases -- |n1| <= |n2|
40289 switch (this.compareAbs(n)) {
40290 case
0: // n1 == n2
40291 return [this._s === n._s ? ONE : M_ONE, ZERO];
40292 case -
1: // |n1| < |n2|
40293 return [ZERO, this];
40296 var sign = this._s * n._s;
40298 var b_digits = this._d;
40299 var b_index = b_digits.length;
40300 var digits = n._d.length;
40304 var part = new BigInteger([],
0, CONSTRUCT);
40307 part._d.unshift(b_digits[--b_index]);
40308 part = new BigInteger(part._d,
1, CONSTRUCT);
40310 if (part.compareAbs(n) <
0) {
40314 if (part._s ===
0) {
40318 var xlen = part._d.length, ylen = a._d.length;
40319 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
40320 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
40321 if (part._d.length
> a._d.length) {
40322 // The length of part._d can either match a._d length,
40323 // or exceed it by one.
40324 highx = (highx+
1)*BigInteger_base;
40326 guess = Math.ceil(highx/highy);
40329 var check = a.multiplySingleDigit(guess);
40330 if (check.compareAbs(part) <=
0) {
40340 var diff = part.subtract(check);
40341 part._d = diff._d.slice();
40344 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
40345 new BigInteger(part._d, this._s, CONSTRUCT)];
40348 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
40349 // [
1, BigInteger.base). It's not necessary to call this, since the
40350 // other division functions will call it if they are able to.
40351 BigInteger.prototype.divRemSmall = function(n) {
40355 throw new Error("Divide by zero");
40358 var n_s = n <
0 ? -
1 :
1;
40359 var sign = this._s * n_s;
40362 if (n <
1 || n
>= BigInteger_base) {
40363 throw new Error("Argument out of range");
40366 if (this._s ===
0) {
40367 return [ZERO, ZERO];
40370 if (n ===
1 || n === -
1) {
40371 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
40374 //
2 <= n < BigInteger_base
40376 // divide a single digit by a single digit
40377 if (this._d.length ===
1) {
40378 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
40379 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
40389 var digits = this._d.slice();
40390 var quot = new Array(digits.length);
40396 while (digits.length) {
40397 part = part * BigInteger_base + digits[digits.length -
1];
40401 diff = BigInteger_base * diff + part;
40408 guess = (part / n) |
0;
40411 var check = n * guess;
40412 diff = part - check;
40423 r = new BigInteger([diff],
1, CONSTRUCT);
40427 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
40432 Return true iff *this* is divisible by two.
40434 Note that
<BigInteger.ZERO
> is even.
40438 true if *this* is even, false otherwise.
40444 BigInteger.prototype.isEven = function() {
40445 var digits = this._d;
40446 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
40451 Return true iff *this* is not divisible by two.
40455 true if *this* is odd, false otherwise.
40461 BigInteger.prototype.isOdd = function() {
40462 return !this.isEven();
40467 Get the sign of a
<BigInteger>.
40477 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
40479 BigInteger.prototype.sign = function() {
40484 Function: isPositive
40485 Return true iff *this*
> 0.
40489 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
40493 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
40495 BigInteger.prototype.isPositive = function() {
40496 return this._s
> 0;
40500 Function: isNegative
40501 Return true iff *this* <
0.
40505 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
40509 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
40511 BigInteger.prototype.isNegative = function() {
40512 return this._s <
0;
40517 Return true iff *this* ==
0.
40521 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
40525 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
40527 BigInteger.prototype.isZero = function() {
40528 return this._s ===
0;
40533 Multiply a
<BigInteger> by a power of
10.
40535 This is equivalent to, but faster than
40538 > return this.multiply(BigInteger("
1e" + n));
40541 > return this.quotient(BigInteger("
1e" + -n));
40546 n - The power of
10 to multiply *this* by. *n* is converted to a
40547 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
40548 (
0x7FFFFFFF), or an exception will be thrown.
40552 *this* * (
10 ** *n*), truncated to an integer if necessary.
40558 BigInteger.prototype.exp10 = function(n) {
40563 if (Math.abs(n)
> Number(MAX_EXP)) {
40564 throw new Error("exponent too large in BigInteger.exp10");
40566 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
40567 if (this._s ===
0) {
40571 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
40573 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
40579 k = k.multiplySingleDigit(Math.pow(
10, n));
40580 return (this._s <
0 ? k.negate() : k);
40581 } else if (-n
>= this._d.length*BigInteger_base_log10) {
40584 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
40586 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
40589 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
40595 Raise a
<BigInteger> to a power.
40597 In this implementation,
0**
0 is
1.
40601 n - The exponent to raise *this* by. *n* must be no greater than
40602 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
40606 *this* raised to the *nth* power.
40612 BigInteger.prototype.pow = function(n) {
40613 if (this.isUnit()) {
40618 return BigInteger(n).isOdd() ? this : this.negate();
40626 else if (n._s <
0) {
40627 if (this._s ===
0) {
40628 throw new Error(
"Divide by zero");
40634 if (this._s ===
0) {
40641 if (n.compareAbs(MAX_EXP)
> 0) {
40642 throw new Error(
"exponent too large in BigInteger.pow");
40646 var two = BigInteger.small[
2];
40648 while (n.isPositive()) {
40650 aux = aux.multiply(x);
40656 n = n.quotient(two);
40664 Raise a
<BigInteger> to a power (mod m).
40666 Because it is reduced by a modulus,
<modPow> is not limited by
40667 <BigInteger.MAX_EXP
> like
<pow>.
40671 exponent - The exponent to raise *this* by. Must be positive.
40672 modulus - The modulus.
40676 *this* ^ *exponent* (mod *modulus*).
40682 BigInteger.prototype.modPow = function(exponent, modulus) {
40686 while (exponent.isPositive()) {
40687 if (exponent.isOdd()) {
40688 result = result.multiply(base).remainder(modulus);
40691 exponent = exponent.quotient(BigInteger.small[
2]);
40692 if (exponent.isPositive()) {
40693 base = base.square().remainder(modulus);
40702 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
40704 This is equivalent to
40706 > Math.log(this.toJSValue())
40708 but handles values outside of the native number range.
40718 BigInteger.prototype.log = function() {
40720 case
0: return -Infinity;
40721 case -
1: return NaN;
40722 default: // Fall through.
40725 var l = this._d.length;
40727 if (l*BigInteger_base_log10 <
30) {
40728 return Math.log(this.valueOf());
40731 var N = Math.ceil(
30/BigInteger_base_log10);
40732 var firstNdigits = this._d.slice(l - N);
40733 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
40738 Convert a
<BigInteger> to a native JavaScript integer.
40740 This is called automatically by JavaScipt to convert a
<BigInteger> to a
40745 > parseInt(this.toString(),
10)
40749 <toString>,
<toJSValue>
40751 BigInteger.prototype.valueOf = function() {
40752 return parseInt(this.toString(),
10);
40756 Function: toJSValue
40757 Convert a
<BigInteger> to a native JavaScript integer.
40759 This is the same as valueOf, but more explicitly named.
40763 > parseInt(this.toString(),
10)
40767 <toString>,
<valueOf>
40769 BigInteger.prototype.toJSValue = function() {
40770 return parseInt(this.toString(),
10);
40773 var MAX_EXP = BigInteger(
0x7FFFFFFF);
40774 // Constant: MAX_EXP
40775 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
40776 BigInteger.MAX_EXP = MAX_EXP;
40779 function makeUnary(fn) {
40780 return function(a) {
40781 return fn.call(BigInteger(a));
40785 function makeBinary(fn) {
40786 return function(a, b) {
40787 return fn.call(BigInteger(a), BigInteger(b));
40791 function makeTrinary(fn) {
40792 return function(a, b, c) {
40793 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
40799 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
40800 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
40801 var trinary = ["modPow"];
40803 for (i =
0; i < unary.length; i++) {
40805 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
40808 for (i =
0; i < binary.length; i++) {
40810 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
40813 for (i =
0; i < trinary.length; i++) {
40815 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
40818 BigInteger.exp10 = function(x, n) {
40819 return BigInteger(x).exp10(n);
40824 exports.BigInteger = BigInteger;
40825 })(typeof exports !== 'undefined' ? exports : this);
40827 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.zxcvbn = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
40828 var adjacency_graphs;adjacency_graphs={qwerty:{
"!":[
"`~",null,null,
"2@",
"qQ",null],'
"':[";:
","[{
","]}
",null,null,"/?
"],"#
":["2@
",null,null,"4$
","eE
","wW
"],$:["3#
",null,null,"5%
","rR
","eE
"],"%
":["4$
",null,null,"6^
","tT
","rR
"],"&
":["6^
",null,null,"8*
","uU
","yY
"],"'
":[";:
","[{
","]}
",null,null,"/?
"],"(
":["8*
",null,null,"0)
","oO
","iI
"],")
":["9(
",null,null,"-_
","pP
","oO
"],"*
":["7&
",null,null,"9(
","iI
","uU
"],"+
":["-_
",null,null,null,"]}
","[{
"],",
":["mM
","kK
","lL
",".
>",null,null],"-
":["0)
",null,null,"=+
","[{
","pP
"],".
":[",<
","lL
",";:
","/?
",null,null],"/
":[".
>",";:
","'\
"",null,null,null],
0:[
"9(",null,null,
"-_",
"pP",
"oO"],
1:[
"`~",null,null,
"2@",
"qQ",null],
2:[
"1!",null,null,
"3#",
"wW",
"qQ"],
3:[
"2@",null,null,
"4$",
"eE",
"wW"],
4:[
"3#",null,null,
"5%",
"rR",
"eE"],
5:[
"4$",null,null,
"6^",
"tT",
"rR"],
6:[
"5%",null,null,
"7&",
"yY",
"tT"],
7:[
"6^",null,null,
"8*",
"uU",
"yY"],
8:[
"7&",null,null,
"9(",
"iI",
"uU"],
9:[
"8*",null,null,
"0)",
"oO",
"iI"],
":":[
"lL",
"pP",
"[{",
"'\"","/?
",".
>"],";
":["lL
","pP
","[{
","'\
"",
"/?",
".>"],
"<":[
"mM",
"kK",
"lL",
".>",null,null],
"=":[
"-_",null,null,null,
"]}",
"[{"],
">":[
",<",
"lL",
";:",
"/?",null,null],
"?":[
".>",
";:",
"'\"",null,null,null],"@
":["1!
",null,null,"3#
","wW
","qQ
"],A:[null,"qQ
","wW
","sS
","zZ
",null],B:["vV
","gG
","hH
","nN
",null,null],C:["xX
","dD
","fF
","vV
",null,null],D:["sS
","eE
","rR
","fF
","cC
","xX
"],E:["wW
","3#
","4$
","rR
","dD
","sS
"],F:["dD
","rR
","tT
","gG
","vV
","cC
"],G:["fF
","tT
","yY
","hH
","bB
","vV
"],H:["gG
","yY
","uU
","jJ
","nN
","bB
"],I:["uU
","8*
","9(
","oO
","kK
","jJ
"],J:["hH
","uU
","iI
","kK
","mM
","nN
"],K:["jJ
","iI
","oO
","lL
",",<
","mM
"],L:["kK
","oO
","pP
",";:
",".
>",",<
"],M:["nN
","jJ
","kK
",",<
",null,null],N:["bB
","hH
","jJ
","mM
",null,null],O:["iI
","9(
","0)
","pP
","lL
","kK
"],P:["oO
","0)
","-_
","[{
",";:
","lL
"],Q:[null,"1!
","2@
","wW
","aA
",null],R:["eE
","4$
","5%
","tT
","fF
","dD
"],S:["aA
","wW
","eE
","dD
","xX
","zZ
"],T:["rR
","5%
","6^
","yY
","gG
","fF
"],U:["yY
","7&
","8*
","iI
","jJ
","hH
"],V:["cC
","fF
","gG
","bB
",null,null],W:["qQ
","2@
","3#
","eE
","sS
","aA
"],X:["zZ
","sS
","dD
","cC
",null,null],Y:["tT
","6^
","7&
","uU
","hH
","gG
"],Z:[null,"aA
","sS
","xX
",null,null],"[
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"\\":[
"]}",null,null,null,null,null],
"]":[
"[{",
"=+",null,
"\\|",null,
"'\""],"^
":["5%
",null,null,"7&
","yY
","tT
"],_:["0)
",null,null,"=+
","[{
","pP
"],"`
":[null,null,null,"1!
",null,null],a:[null,"qQ
","wW
","sS
","zZ
",null],b:["vV
","gG
","hH
","nN
",null,null],c:["xX
","dD
","fF
","vV
",null,null],d:["sS
","eE
","rR
","fF
","cC
","xX
"],e:["wW
","3#
","4$
","rR
","dD
","sS
"],f:["dD
","rR
","tT
","gG
","vV
","cC
"],g:["fF
","tT
","yY
","hH
","bB
","vV
"],h:["gG
","yY
","uU
","jJ
","nN
","bB
"],i:["uU
","8*
","9(
","oO
","kK
","jJ
"],j:["hH
","uU
","iI
","kK
","mM
","nN
"],k:["jJ
","iI
","oO
","lL
",",<
","mM
"],l:["kK
","oO
","pP
",";:
",".
>",",<
"],m:["nN
","jJ
","kK
",",<
",null,null],n:["bB
","hH
","jJ
","mM
",null,null],o:["iI
","9(
","0)
","pP
","lL
","kK
"],p:["oO
","0)
","-_
","[{
",";:
","lL
"],q:[null,"1!
","2@
","wW
","aA
",null],r:["eE
","4$
","5%
","tT
","fF
","dD
"],s:["aA
","wW
","eE
","dD
","xX
","zZ
"],t:["rR
","5%
","6^
","yY
","gG
","fF
"],u:["yY
","7&
","8*
","iI
","jJ
","hH
"],v:["cC
","fF
","gG
","bB
",null,null],w:["qQ
","2@
","3#
","eE
","sS
","aA
"],x:["zZ
","sS
","dD
","cC
",null,null],y:["tT
","6^
","7&
","uU
","hH
","gG
"],z:[null,"aA
","sS
","xX
",null,null],"{
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"|":[
"]}",null,null,null,null,null],
"}":[
"[{",
"=+",null,
"\\|",null,
"'\""],"~
":[null,null,null,"1!
",null,null]},dvorak:{"!
":["`~
",null,null,"2@
","'\
"",null],'
"':[null,"1!
","2@
",",<
","aA
",null],"#
":["2@
",null,null,"4$
",".
>",",<
"],$:["3#
",null,null,"5%
","pP
",".
>"],"%
":["4$
",null,null,"6^
","yY
","pP
"],"&
":["6^
",null,null,"8*
","gG
","fF
"],"'
":[null,"1!
","2@
",",<
","aA
",null],"(
":["8*
",null,null,"0)
","rR
","cC
"],")
":["9(
",null,null,"[{
","lL
","rR
"],"*
":["7&
",null,null,"9(
","cC
","gG
"],"+
":["/?
","]}
",null,"\\|
",null,"-_
"],",
":["'\
"",
"2@",
"3#",
".>",
"oO",
"aA"],
"-":[
"sS",
"/?",
"=+",null,null,
"zZ"],
".":[
",<",
"3#",
"4$",
"pP",
"eE",
"oO"],
"/":[
"lL",
"[{",
"]}",
"=+",
"-_",
"sS"],
0:[
"9(",null,null,
"[{",
"lL",
"rR"],
1:[
"`~",null,null,
"2@",
"'\"",null],2:["1!
",null,null,"3#
",",<
","'\
""],
3:[
"2@",null,null,
"4$",
".>",
",<"],
4:[
"3#",null,null,
"5%",
"pP",
".>"],
5:[
"4$",null,null,
"6^",
"yY",
"pP"],
6:[
"5%",null,null,
"7&",
"fF",
"yY"],
7:[
"6^",null,null,
"8*",
"gG",
"fF"],
8:[
"7&",null,null,
"9(",
"cC",
"gG"],
9:[
"8*",null,null,
"0)",
"rR",
"cC"],
":":[null,
"aA",
"oO",
"qQ",null,null],
";":[null,
"aA",
"oO",
"qQ",null,null],
"<":[
"'\"","2@
","3#
",".
>","oO
","aA
"],"=
":["/?
","]}
",null,"\\|
",null,"-_
"],">":[",<
","3#
","4$
","pP
","eE
","oO
"],"?
":["lL
","[{
","]}
","=+
","-_
","sS
"],"@
":["1!
",null,null,"3#
",",<
","'\
""],A:[null,
"'\"",",<
","oO
",";:
",null],B:["xX
","dD
","hH
","mM
",null,null],C:["gG
","8*
","9(
","rR
","tT
","hH
"],D:["iI
","fF
","gG
","hH
","bB
","xX
"],E:["oO
",".
>","pP
","uU
","jJ
","qQ
"],F:["yY
","6^
","7&
","gG
","dD
","iI
"],G:["fF
","7&
","8*
","cC
","hH
","dD
"],H:["dD
","gG
","cC
","tT
","mM
","bB
"],I:["uU
","yY
","fF
","dD
","xX
","kK
"],J:["qQ
","eE
","uU
","kK
",null,null],K:["jJ
","uU
","iI
","xX
",null,null],L:["rR
","0)
","[{
","/?
","sS
","nN
"],M:["bB
","hH
","tT
","wW
",null,null],N:["tT
","rR
","lL
","sS
","vV
","wW
"],O:["aA
",",<
",".
>","eE
","qQ
",";:
"],P:[".
>","4$
","5%
","yY
","uU
","eE
"],Q:[";:
","oO
","eE
","jJ
",null,null],R:["cC
","9(
","0)
","lL
","nN
","tT
"],S:["nN
","lL
","/?
","-_
","zZ
","vV
"],T:["hH
","cC
","rR
","nN
","wW
","mM
"],U:["eE
","pP
","yY
","iI
","kK
","jJ
"],V:["wW
","nN
","sS
","zZ
",null,null],W:["mM
","tT
","nN
","vV
",null,null],X:["kK
","iI
","dD
","bB
",null,null],Y:["pP
","5%
","6^
","fF
","iI
","uU
"],Z:["vV
","sS
","-_
",null,null,null],"[
":["0)
",null,null,"]}
","/?
","lL
"],"\\
":["=+
",null,null,null,null,null],"]
":["[{
",null,null,null,"=+
","/?
"],"^
":["5%
",null,null,"7&
","fF
","yY
"],_:["sS
","/?
","=+
",null,null,"zZ
"],"`
":[null,null,null,"1!
",null,null],a:[null,"'\
"",
",<",
"oO",
";:",null],b:[
"xX",
"dD",
"hH",
"mM",null,null],c:[
"gG",
"8*",
"9(",
"rR",
"tT",
"hH"],d:[
"iI",
"fF",
"gG",
"hH",
"bB",
"xX"],e:[
"oO",
".>",
"pP",
"uU",
"jJ",
"qQ"],f:[
"yY",
"6^",
"7&",
"gG",
"dD",
"iI"],g:[
"fF",
"7&",
"8*",
"cC",
"hH",
"dD"],h:[
"dD",
"gG",
"cC",
"tT",
"mM",
"bB"],i:[
"uU",
"yY",
"fF",
"dD",
"xX",
"kK"],j:[
"qQ",
"eE",
"uU",
"kK",null,null],k:[
"jJ",
"uU",
"iI",
"xX",null,null],l:[
"rR",
"0)",
"[{",
"/?",
"sS",
"nN"],m:[
"bB",
"hH",
"tT",
"wW",null,null],n:[
"tT",
"rR",
"lL",
"sS",
"vV",
"wW"],o:[
"aA",
",<",
".>",
"eE",
"qQ",
";:"],p:[
".>",
"4$",
"5%",
"yY",
"uU",
"eE"],q:[
";:",
"oO",
"eE",
"jJ",null,null],r:[
"cC",
"9(",
"0)",
"lL",
"nN",
"tT"],s:[
"nN",
"lL",
"/?",
"-_",
"zZ",
"vV"],t:[
"hH",
"cC",
"rR",
"nN",
"wW",
"mM"],u:[
"eE",
"pP",
"yY",
"iI",
"kK",
"jJ"],v:[
"wW",
"nN",
"sS",
"zZ",null,null],w:[
"mM",
"tT",
"nN",
"vV",null,null],x:[
"kK",
"iI",
"dD",
"bB",null,null],y:[
"pP",
"5%",
"6^",
"fF",
"iI",
"uU"],z:[
"vV",
"sS",
"-_",null,null,null],
"{":[
"0)",null,null,
"]}",
"/?",
"lL"],
"|":[
"=+",null,null,null,null,null],
"}":[
"[{",null,null,null,
"=+",
"/?"],
"~":[null,null,null,
"1!",null,null]},keypad:{
"*":[
"/",null,null,null,
"-",
"+",
"9",
"8"],
"+":[
"9",
"*",
"-",null,null,null,null,
"6"],
"-":[
"*",null,null,null,null,null,
"+",
"9"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[null,null,null,null,
"*",
"9",
"8",
"7"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",null,null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"+",null,null,
"3",
"2"],
7:[null,null,null,
"/",
"8",
"5",
"4",null],
8:[
"7",null,
"/",
"*",
"9",
"6",
"5",
"4"],
9:[
"8",
"/",
"*",
"-",
"+",null,
"6",
"5"]},mac_keypad:{
"*":[
"/",null,null,null,null,null,
"-",
"9"],
"+":[
"6",
"9",
"-",null,null,null,null,
"3"],
"-":[
"9",
"/",
"*",null,null,null,
"+",
"6"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[
"=",null,null,null,
"*",
"-",
"9",
"8"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",
"+",null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"-",
"+",null,
"3",
"2"],
7:[null,null,null,
"=",
"8",
"5",
"4",null],
8:[
"7",null,
"=",
"/",
"9",
"6",
"5",
"4"],
9:[
"8",
"=",
"/",
"*",
"-",
"+",
"6",
"5"],
"=":[null,null,null,null,
"/",
"9",
"8",
"7"]}},module.exports=adjacency_graphs;
40830 },{}],
2:[function(require,module,exports){
40831 var feedback,scoring;scoring=require(
"./scoring"),feedback={default_feedback:{warning:
"",suggestions:[
"Use a few words, avoid common phrases",
"No need for symbols, digits, or uppercase letters"]},get_feedback:function(e,s){var a,t,r,n,o,i;if(
0===s.length)return this.default_feedback;if(e
>2)return{warning:
"",suggestions:[]};for(n=s[
0],i=s.slice(
1),t=
0,r=i.length;t
<r;t++)o=i[t],o.token.length
>n.token.length&&(n=o);return feedback=this.get_match_feedback(n,
1===s.length),
a="Add another word or two. Uncommon words are better.",null!=feedback?(feedback.suggestions.unshift(a),null==feedback.warning&&(feedback.
warning="")):feedback={warning:"",suggestions:[a]},feedback},get_match_feedback:function(e,s){var a,t;switch(e.pattern){case"dictionary":return this.get_dictionary_match_feedback(e,s);case"spatial":return a=e.graph.toUpperCase(),t=
1===e.turns?"Straight rows of keys are easy to guess":"Short keyboard patterns are easy to guess",{warning:t,suggestions:["Use a longer keyboard pattern with more turns"]};case"repeat":return t=
1===e.base_token.length?'Repeats like "aaa" are easy to guess':'Repeats like "abcabcabc" are only slightly harder to guess than "abc"',{warning:t,suggestions:["Avoid repeated words and characters"]};case"sequence":return{warning:"Sequences like abc or
6543 are easy to guess",suggestions:["Avoid sequences"]};case"regex":if("recent_year"===e.regex_name)return{warning:"Recent years are easy to guess",suggestions:["Avoid recent years","Avoid years that are associated with you"]};break;case"date":return{warning:"Dates are often easy to guess",suggestions:["Avoid dates and years that are associated with you"]}}},get_dictionary_match_feedback:function(e,s){var a,t,r,n,o;return
n="passwords"===e.dictionary_name?!s||e.l33t||e.reversed?e.guesses_log10<=
4?"This is similar to a commonly used password":void
0:e.rank<=
10?"This is a top-
10 common password":e.rank<=
100?"This is a top-
100 common password":"This is a very common password":"english"===e.dictionary_name?s?"A word by itself is easy to guess":void
0:"surnames"===(a=e.dictionary_name)||"male_names"===a||"female_names"===a?s?"Names and surnames by themselves are easy to guess":"Common names and surnames are easy to guess":"",r=[],o=e.token,o.match(scoring.START_UPPER)?r.push("Capitalization doesn't help very much"):o.match(scoring.ALL_UPPER)&&o.toLowerCase()!==o&&r.push("All-uppercase is almost as easy to guess as all-lowercase"),e.reversed&&e.token.length
>=
4&&r.push("Reversed words aren't much harder to guess"),e.l33t&&r.push("Predictable substitutions like '@' instead of 'a' don't help very much"),t={warning:n,suggestions:r}}},module.exports=feedback;
40833 },{"./scoring":
6}],
3:[function(require,module,exports){
40834 var frequency_lists;frequency_lists={passwords:"
123456,password,
12345678,qwerty,
123456789,
12345,
1234,
111111,
1234567,dragon,
123123,baseball,abc123,football,monkey,letmein,shadow,master,
696969,mustang,
666666,qwertyuiop,
123321,
1234567890,pussy,superman,
654321,
1qaz2wsx,
7777777,fuckyou,qazwsx,jordan,
123qwe,
000000,killer,trustno1,hunter,harley,zxcvbnm,asdfgh,buster,batman,soccer,tigger,charlie,sunshine,iloveyou,fuckme,ranger,hockey,computer,starwars,asshole,pepper,klaster,
112233,zxcvbn,freedom,princess,maggie,pass,ginger,
11111111,
131313,fuck,love,cheese,
159753,summer,chelsea,dallas,biteme,matrix,yankees,
6969,corvette,austin,access,thunder,merlin,secret,diamond,hello,hammer,fucker,
1234qwer,silver,gfhjkm,internet,samantha,golfer,scooter,test,orange,cookie,q1w2e3r4t5,maverick,sparky,phoenix,mickey,bigdog,snoopy,guitar,whatever,chicken,camaro,mercedes,peanut,ferrari,falcon,cowboy,welcome,sexy,samsung,steelers,smokey,dakota,arsenal,boomer,eagles,tigers,marina,nascar,booboo,gateway,yellow,porsche,monster,spider,diablo,hannah,bulldog,junior,london,purple,compaq,lakers,iceman,qwer1234,hardcore,cowboys,money,banana,ncc1701,boston,tennis,q1w2e3r4,coffee,scooby,
123654,nikita,yamaha,mother,barney,brandy,chester,fuckoff,oliver,player,forever,rangers,midnight,chicago,bigdaddy,redsox,angel,badboy,fender,jasper,slayer,rabbit,natasha,marine,bigdick,wizard,marlboro,raiders,prince,casper,fishing,flower,jasmine,iwantu,panties,adidas,winter,winner,gandalf,password1,enter,ghbdtn,
1q2w3e4r,golden,cocacola,jordan23,winston,madison,angels,panther,blowme,sexsex,bigtits,spanky,bitch,sophie,asdfasdf,horny,thx1138,toyota,tiger,dick,canada,
12344321,blowjob,
8675309,muffin,liverpoo,apples,qwerty123,passw0rd,abcd1234,pokemon,
123abc,slipknot,qazxsw,
123456a,scorpion,qwaszx,butter,startrek,rainbow,asdfghjkl,razz,newyork,redskins,gemini,cameron,qazwsxedc,florida,liverpool,turtle,sierra,viking,booger,butthead,doctor,rocket,
159357,dolphins,captain,bandit,jaguar,packers,pookie,peaches,
789456,asdf,dolphin,helpme,blue,theman,maxwell,qwertyui,shithead,lovers,maddog,giants,nirvana,metallic,hotdog,rosebud,mountain,warrior,stupid,elephant,suckit,success,bond007,jackass,alexis,porn,lucky,scorpio,samson,q1w2e3,azerty,rush2112,driver,freddy,
1q2w3e4r5t,sydney,gators,dexter,red123,
123456q,
12345a,bubba,creative,voodoo,golf,trouble,america,nissan,gunner,garfield,bullshit,asdfghjk,
5150,fucking,apollo,
1qazxsw2,
2112,eminem,legend,airborne,bear,beavis,apple,brooklyn,godzilla,skippy,
4815162342,buddy,qwert,kitten,magic,shelby,beaver,phantom,asdasd,xavier,braves,darkness,blink182,copper,platinum,qweqwe,tomcat,
01012011,girls,bigboy,
102030,animal,police,online,
11223344,voyager,lifehack,
12qwaszx,fish,sniper,
315475,trinity,blazer,heaven,lover,snowball,playboy,loveme,bubbles,hooters,cricket,willow,donkey,topgun,nintendo,saturn,destiny,pakistan,pumpkin,digital,sergey,redwings,explorer,tits,private,runner,therock,guinness,lasvegas,beatles,
789456123,fire,cassie,christin,qwerty1,celtic,asdf1234,andrey,broncos,
007007,babygirl,eclipse,fluffy,cartman,michigan,carolina,testing,alexande,birdie,pantera,cherry,vampire,mexico,dickhead,buffalo,genius,montana,beer,minecraft,maximus,flyers,lovely,stalker,metallica,doggie,snickers,speedy,bronco,lol123,paradise,yankee,horses,magnum,dreams,
147258369,lacrosse,ou812,goober,enigma,qwertyu,scotty,pimpin,bollocks,surfer,cock,poohbear,genesis,star,asd123,qweasdzxc,racing,hello1,hawaii,eagle1,viper,poopoo,einstein,boobies,
12345q,bitches,drowssap,simple,badger,alaska,action,jester,drummer,
111222,spitfire,forest,maryjane,champion,diesel,svetlana,friday,hotrod,
147258,chevy,lucky1,westside,security,google,badass,tester,shorty,thumper,hitman,mozart,zaq12wsx,boobs,reddog,
010203,lizard,a123456,
123456789a,ruslan,eagle,
1232323q,scarface,qwerty12,
147852,a12345,buddha,porno,
420420,spirit,money1,stargate,qwe123,naruto,mercury,liberty,
12345qwert,semperfi,suzuki,popcorn,spooky,marley,scotland,kitty,cherokee,vikings,simpsons,rascal,qweasd,hummer,loveyou,michael1,patches,russia,jupiter,penguin,passion,cumshot,vfhbyf,honda,vladimir,sandman,passport,raider,bastard,
123789,infinity,assman,bulldogs,fantasy,sucker,
1234554321,horney,domino,budlight,disney,ironman,usuckballz1,softball,brutus,redrum,bigred,mnbvcxz,fktrcfylh,karina,marines,digger,kawasaki,cougar,fireman,oksana,monday,cunt,justice,nigger,super,wildcats,tinker,logitech,dancer,swordfis,avalon,everton,alexandr,motorola,patriots,hentai,madonna,pussy1,ducati,colorado,connor,juventus,galore,smooth,freeuser,warcraft,boogie,titanic,wolverin,elizabet,arizona,valentin,saints,asdfg,accord,test123,password123,christ,yfnfif,stinky,slut,spiderma,naughty,chopper,hello123,ncc1701d,extreme,skyline,poop,zombie,pearljam,
123qweasd,froggy,awesome,vision,pirate,fylhtq,dreamer,bullet,predator,empire,
123123a,kirill,charlie1,panthers,penis,skipper,nemesis,rasdzv3,peekaboo,rolltide,cardinal,psycho,danger,mookie,happy1,wanker,chevelle,manutd,goblue,
9379992,hobbes,vegeta,fyfcnfcbz,
852456,picard,
159951,windows,loverboy,victory,vfrcbv,bambam,serega,
123654789,turkey,tweety,galina,hiphop,rooster,changeme,berlin,taurus,suckme,polina,electric,avatar,
134679,maksim,raptor,alpha1,hendrix,newport,bigcock,brazil,spring,a1b2c3,madmax,alpha,britney,sublime,darkside,bigman,wolfpack,classic,hercules,ronaldo,letmein1,
1q2w3e,
741852963,spiderman,blizzard,
123456789q,cheyenne,cjkysirj,tiger1,wombat,bubba1,pandora,zxc123,holiday,wildcat,devils,horse,alabama,
147852369,caesar,
12312,buddy1,bondage,pussycat,pickle,shaggy,catch22,leather,chronic,a1b2c3d4,admin,qqq111,qaz123,airplane,kodiak,freepass,billybob,sunset,katana,phpbb,chocolat,snowman,angel1,stingray,firebird,wolves,zeppelin,detroit,pontiac,gundam,panzer,vagina,outlaw,redhead,tarheels,greenday,nastya,
01011980,hardon,engineer,dragon1,hellfire,serenity,cobra,fireball,lickme,darkstar,
1029384756,
01011,mustang1,flash,
124578,strike,beauty,pavilion,
01012000,bobafett,dbrnjhbz,bigmac,bowling,chris1,ytrewq,natali,pyramid,rulez,welcome1,dodgers,apache,swimming,whynot,teens,trooper,fuckit,defender,precious,
135790,packard,weasel,popeye,lucifer,cancer,icecream,
142536,raven,swordfish,presario,viktor,rockstar,blonde,james1,wutang,spike,pimp,atlanta,airforce,thailand,casino,lennon,mouse,
741852,hacker,bluebird,hawkeye,
456123,theone,catfish,sailor,goldfish,nfnmzyf,tattoo,pervert,barbie,maxima,nipples,machine,trucks,wrangler,rocks,tornado,lights,cadillac,bubble,pegasus,madman,longhorn,browns,target,
666999,eatme,qazwsx123,microsoft,dilbert,christia,baller,lesbian,shooter,xfiles,seattle,qazqaz,cthutq,amateur,prelude,corona,freaky,malibu,
123qweasdzxc,assassin,
246810,atlantis,integra,pussies,iloveu,lonewolf,dragons,monkey1,unicorn,software,bobcat,stealth,peewee,openup,
753951,srinivas,zaqwsx,valentina,shotgun,trigger,veronika,bruins,coyote,babydoll,joker,dollar,lestat,rocky1,hottie,random,butterfly,wordpass,smiley,sweety,snake,chipper,woody,samurai,devildog,gizmo,maddie,soso123aljg,mistress,freedom1,flipper,express,hjvfirf,moose,cessna,piglet,polaris,teacher,montreal,cookies,wolfgang,scully,fatboy,wicked,balls,tickle,bunny,dfvgbh,foobar,transam,pepsi,fetish,oicu812,basketba,toshiba,hotstuff,sunday,booty,gambit,
31415926,impala,stephani,jessica1,hooker,lancer,knicks,shamrock,fuckyou2,stinger,
314159,redneck,deftones,squirt,siemens,blaster,trucker,subaru,renegade,ibanez,manson,swinger,reaper,blondie,mylove,galaxy,blahblah,enterpri,travel,
1234abcd,babylon5,indiana,skeeter,master1,sugar,ficken,smoke,bigone,sweetpea,fucked,trfnthbyf,marino,escort,smitty,bigfoot,babes,larisa,trumpet,spartan,valera,babylon,asdfghj,yankees1,bigboobs,stormy,mister,hamlet,aardvark,butterfl,marathon,paladin,cavalier,manchester,skater,indigo,hornet,buckeyes,
01011990,indians,karate,hesoyam,toronto,diamonds,chiefs,buckeye,
1qaz2wsx3edc,highland,hotsex,charger,redman,passwor,maiden,drpepper,storm,pornstar,garden,
12345678910,pencil,sherlock,timber,thuglife,insane,pizza,jungle,jesus1,aragorn,
1a2b3c,hamster,david1,triumph,techno,lollol,pioneer,catdog,
321654,fktrctq,morpheus,
141627,pascal,shadow1,hobbit,wetpussy,erotic,consumer,blabla,justme,stones,chrissy,spartak,goforit,burger,pitbull,adgjmptw,italia,barcelona,hunting,colors,kissme,virgin,overlord,pebbles,sundance,emerald,doggy,racecar,irina,element,
1478963,zipper,alpine,basket,goddess,poison,nipple,sakura,chichi,huskers,
13579,pussys,q12345,ultimate,ncc1701e,blackie,nicola,rommel,matthew1,caserta,omega,geronimo,sammy1,trojan,
123qwe123,philips,nugget,tarzan,chicks,aleksandr,bassman,trixie,portugal,anakin,dodger,bomber,superfly,madness,q1w2e3r4t5y6,loser,
123asd,fatcat,ybrbnf,soldier,warlock,wrinkle1,desire,sexual,babe,seminole,alejandr,
951753,
11235813,westham,andrei,concrete,access14,weed,letmein2,ladybug,naked,christop,trombone,tintin,bluesky,rhbcnbyf,qazxswedc,onelove,cdtnkfyf,whore,vfvjxrf,titans,stallion,truck,hansolo,blue22,smiles,beagle,panama,kingkong,flatron,inferno,mongoose,connect,poiuyt,snatch,qawsed,juice,blessed,rocker,snakes,turbo,bluemoon,sex4me,finger,jamaica,a1234567,mulder,beetle,fuckyou1,passat,immortal,plastic,
123454321,anthony1,whiskey,dietcoke,suck,spunky,magic1,monitor,cactus,exigen,planet,ripper,teen,spyder,apple1,nolimit,hollywoo,sluts,sticky,trunks,
1234321,
14789632,pickles,sailing,bonehead,ghbdtnbr,delta,charlott,rubber,
911911,
112358,molly1,yomama,hongkong,jumper,william1,ilovesex,faster,unreal,cumming,memphis,
1123581321,nylons,legion,sebastia,shalom,pentium,geheim,werewolf,funtime,ferret,orion,curious,
555666,niners,cantona,sprite,philly,pirates,abgrtyu,lollipop,eternity,boeing,super123,sweets,cooldude,tottenha,green1,jackoff,stocking,
7895123,moomoo,martini,biscuit,drizzt,colt45,fossil,makaveli,snapper,satan666,maniac,salmon,patriot,verbatim,nasty,shasta,asdzxc,shaved,blackcat,raistlin,qwerty12345,punkrock,cjkywt,
01012010,
4128,waterloo,crimson,twister,oxford,musicman,seinfeld,biggie,condor,ravens,megadeth,wolfman,cosmos,sharks,banshee,keeper,foxtrot,gn56gn56,skywalke,velvet,black1,sesame,dogs,squirrel,privet,sunrise,wolverine,sucks,legolas,grendel,ghost,cats,carrot,frosty,lvbnhbq,blades,stardust,frog,qazwsxed,
121314,coolio,brownie,groovy,twilight,daytona,vanhalen,pikachu,peanuts,licker,hershey,jericho,intrepid,ninja,
1234567a,zaq123,lobster,goblin,punisher,strider,shogun,kansas,amadeus,seven7,jason1,neptune,showtime,muscle,oldman,ekaterina,rfrfirf,getsome,showme,
111222333,obiwan,skittles,danni,tanker,maestro,tarheel,anubis,hannibal,anal,newlife,gothic,shark,fighter,blue123,blues,
123456z,princes,slick,chaos,thunder1,sabine,
1q2w3e4r5t6y,python,test1,mirage,devil,clover,tequila,chelsea1,surfing,delete,potato,chubby,panasonic,sandiego,portland,baggins,fusion,sooners,blackdog,buttons,californ,moscow,playtime,mature,
1a2b3c4d,dagger,dima,stimpy,asdf123,gangster,warriors,iverson,chargers,byteme,swallow,liquid,lucky7,dingdong,nymets,cracker,mushroom,
456852,crusader,bigguy,miami,dkflbvbh,bugger,nimrod,tazman,stranger,newpass,doodle,powder,gotcha,guardian,dublin,slapshot,septembe,
147896325,pepsi1,milano,grizzly,woody1,knights,photos,
2468,nookie,charly,rammstein,brasil,
123321123,scruffy,munchkin,poopie,
123098,kittycat,latino,walnut,
1701,thegame,viper1,
1passwor,kolobok,picasso,robert1,barcelon,bananas,trance,auburn,coltrane,eatshit,goodluck,starcraft,wheels,parrot,postal,blade,wisdom,pink,gorilla,katerina,pass123,andrew1,shaney14,dumbass,osiris,fuck_inside,oakland,discover,ranger1,spanking,lonestar,bingo,meridian,ping,heather1,dookie,stonecol,megaman,
192837465,rjntyjr,ledzep,lowrider,
25802580,richard1,firefly,griffey,racerx,paradox,ghjcnj,gangsta,zaq1xsw2,tacobell,weezer,sirius,halflife,buffett,shiloh,
123698745,vertigo,sergei,aliens,sobaka,keyboard,kangaroo,sinner,soccer1,
0.0.000,bonjour,socrates,chucky,hotboy,sprint,
0007,sarah1,scarlet,celica,shazam,formula1,sommer,trebor,qwerasdf,jeep,mailcreated5240,bollox,asshole1,fuckface,honda1,rebels,vacation,lexmark,penguins,
12369874,ragnarok,formula,
258456,tempest,vfhecz,tacoma,qwertz,colombia,flames,rockon,duck,prodigy,wookie,dodgeram,mustangs,
123qaz,sithlord,smoker,server,bang,incubus,scoobydo,oblivion,molson,kitkat,titleist,rescue,zxcv1234,carpet,
1122,bigballs,tardis,jimbob,xanadu,blueeyes,shaman,mersedes,pooper,pussy69,golfing,hearts,mallard,
12312312,kenwood,patrick1,dogg,cowboys1,oracle,
123zxc,nuttertools,
102938,topper,
1122334455,shemale,sleepy,gremlin,yourmom,
123987,gateway1,printer,monkeys,peterpan,mikey,kingston,cooler,analsex,jimbo,pa55word,asterix,freckles,birdman,frank1,defiant,aussie,stud,blondes,tatyana,
445566,aspirine,mariners,jackal,deadhead,katrin,anime,rootbeer,frogger,polo,scooter1,hallo,noodles,thomas1,parola,shaolin,celine,
11112222,plymouth,creampie,justdoit,ohyeah,fatass,assfuck,amazon,
1234567q,kisses,magnus,camel,nopass,bosco,
987456,
6751520,harley1,putter,champs,massive,spidey,lightnin,camelot,letsgo,gizmodo,aezakmi,bones,caliente,
12121,goodtime,thankyou,raiders1,brucelee,redalert,aquarius,
456654,catherin,smokin,pooh,mypass,astros,roller,porkchop,sapphire,qwert123,kevin1,a1s2d3f4,beckham,atomic,rusty1,vanilla,qazwsxedcrfv,hunter1,kaktus,cxfcnmt,blacky,
753159,elvis1,aggies,blackjac,bangkok,scream,
123321q,iforgot,power1,kasper,abc12,buster1,slappy,shitty,veritas,chevrole,amber1,
01012001,vader,amsterdam,jammer,primus,spectrum,eduard,granny,horny1,sasha1,clancy,usa123,satan,diamond1,hitler,avenger,
1221,spankme,
123456qwerty,simba,smudge,scrappy,labrador,john316,syracuse,front242,falcons,husker,candyman,commando,gator,pacman,delta1,pancho,krishna,fatman,clitoris,pineappl,lesbians,
8j4ye3uz,barkley,vulcan,punkin,boner,celtics,monopoly,flyboy,romashka,hamburg,
123456aa,lick,gangbang,
223344,area51,spartans,aaa111,tricky,snuggles,drago,homerun,vectra,homer1,hermes,topcat,cuddles,infiniti,
1234567890q,cosworth,goose,phoenix1,killer1,ivanov,bossman,qawsedrf,peugeot,exigent,doberman,durango,brandon1,plumber,telefon,horndog,laguna,rbhbkk,dawg,webmaster,breeze,beast,porsche9,beefcake,leopard,redbull,oscar1,topdog,godsmack,theking,pics,omega1,speaker,viktoria,fuckers,bowler,starbuck,gjkbyf,valhalla,anarchy,blacks,herbie,kingpin,starfish,nokia,loveit,achilles,
906090,labtec,ncc1701a,fitness,jordan1,brando,arsenal1,bull,kicker,napass,desert,sailboat,bohica,tractor,hidden,muppet,jackson1,jimmy1,terminator,phillies,pa55w0rd,terror,farside,swingers,legacy,frontier,butthole,doughboy,jrcfyf,tuesday,sabbath,daniel1,nebraska,homers,qwertyuio,azamat,fallen,agent007,striker,camels,iguana,looker,pinkfloy,moloko,qwerty123456,dannyboy,luckydog,
789654,pistol,whocares,charmed,skiing,select,franky,puppy,daniil,vladik,vette,vfrcbvrf,ihateyou,nevada,moneys,vkontakte,mandingo,puppies,
666777,mystic,zidane,kotenok,dilligaf,budman,bunghole,zvezda,
123457,triton,golfball,technics,trojans,panda,laptop,rookie,
01011991,
15426378,aberdeen,gustav,jethro,enterprise,igor,stripper,filter,hurrican,rfnthbyf,lespaul,gizmo1,butch,
132435,dthjybrf,
1366613,excalibu,
963852,nofear,momoney,possum,cutter,oilers,moocow,cupcake,gbpltw,batman1,splash,svetik,super1,soleil,bogdan,melissa1,vipers,babyboy,tdutybq,lancelot,ccbill,keystone,passwort,flamingo,firefox,dogman,vortex,rebel,noodle,raven1,zaphod,killme,pokemon1,coolman,danila,designer,skinny,kamikaze,deadman,gopher,doobie,warhammer,deeznuts,freaks,engage,chevy1,steve1,apollo13,poncho,hammers,azsxdc,dracula,
000007,sassy,bitch1,boots,deskjet,
12332,macdaddy,mighty,rangers1,manchest,sterlin,casey1,meatball,mailman,sinatra,cthulhu,summer1,bubbas,cartoon,bicycle,eatpussy,truelove,sentinel,tolkien,breast,capone,lickit,summit,
123456k,peter1,daisy1,kitty1,
123456789z,crazy1,jamesbon,texas1,sexygirl,
362436,sonic,billyboy,redhot,microsof,microlab,daddy1,rockets,iloveyo,fernand,gordon24,danie,cutlass,polska,star69,titties,pantyhos,
01011985,thekid,aikido,gofish,mayday,
1234qwe,coke,anfield,sony,lansing,smut,scotch,sexx,catman,
73501505,hustler,saun,dfkthbz,passwor1,jenny1,azsxdcfv,cheers,irish1,gabrie,tinman,orioles,
1225,charlton,fortuna,
01011970,airbus,rustam,xtreme,bigmoney,zxcasd,retard,grumpy,huskies,boxing,
4runner,kelly1,ultima,warlord,fordf150,oranges,rotten,asdfjkl,superstar,denali,sultan,bikini,saratoga,thor,figaro,sixers,wildfire,vladislav,
128500,sparta,mayhem,greenbay,chewie,music1,number1,cancun,fabie,mellon,poiuytrewq,cloud9,crunch,bigtime,chicken1,piccolo,bigbird,
321654987,billy1,mojo,
01011981,maradona,sandro,chester1,bizkit,rjirfrgbde,
789123,rightnow,jasmine1,hyperion,treasure,meatloaf,armani,rovers,jarhead,
01011986,cruise,coconut,dragoon,utopia,davids,cosmo,rfhbyf,reebok,
1066,charli,giorgi,sticks,sayang,pass1234,exodus,anaconda,zaqxsw,illini,woofwoof,emily1,sandy1,packer,poontang,govols,jedi,tomato,beaner,cooter,creamy,lionking,happy123,albatros,poodle,kenworth,dinosaur,greens,goku,happyday,eeyore,tsunami,cabbage,holyshit,turkey50,memorex,chaser,bogart,orgasm,tommy1,volley,whisper,knopka,ericsson,walleye,
321123,pepper1,katie1,chickens,tyler1,corrado,twisted,
100000,zorro,clemson,zxcasdqwe,tootsie,milana,zenith,fktrcfylhf,shania,frisco,polniypizdec0211,crazybab,junebug,fugazi,rereirf,vfvekz,
1001,sausage,vfczyz,koshka,clapton,justin1,anhyeuem,condom,fubar,hardrock,skywalker,tundra,cocks,gringo,
150781,canon,vitalik,aspire,stocks,samsung1,applepie,abc12345,arjay,gandalf1,boob,pillow,sparkle,gmoney,rockhard,lucky13,samiam,everest,hellyeah,bigsexy,skorpion,rfrnec,hedgehog,australi,candle,slacker,dicks,voyeur,jazzman,america1,bobby1,br0d3r,wolfie,vfksirf,
1qa2ws3ed,
13243546,fright,yosemite,temp,karolina,fart,barsik,surf,cheetah,baddog,deniska,starship,bootie,milena,hithere,kume,greatone,dildo,
50cent,
0.0.0.000,albion,amanda1,midget,lion,maxell,football1,cyclone,freeporn,nikola,bonsai,kenshin,slider,balloon,roadkill,killbill,
222333,jerkoff,
78945612,dinamo,tekken,rambler,goliath,cinnamon,malaka,backdoor,fiesta,packers1,rastaman,fletch,sojdlg123aljg,stefano,artemis,calico,nyjets,damnit,robotech,duchess,rctybz,hooter,keywest,
18436572,hal9000,mechanic,pingpong,operator,presto,sword,rasputin,spank,bristol,faggot,shado,
963852741,amsterda,
321456,wibble,carrera,alibaba,majestic,ramses,duster,route66,trident,clipper,steeler,wrestlin,divine,kipper,gotohell,kingfish,snake1,passwords,buttman,pompey,viagra,zxcvbnm1,spurs,
332211,slutty,lineage2,oleg,macross,pooter,brian1,qwert1,charles1,slave,jokers,yzerman,swimmer,ne1469,nwo4life,solnce,seamus,lolipop,pupsik,moose1,ivanova,secret1,matador,love69,
420247,ktyjxrf,subway,cinder,vermont,pussie,chico,florian,magick,guiness,allsop,ghetto,flash1,a123456789,typhoon,dfkthf,depeche,skydive,dammit,seeker,fuckthis,crysis,kcj9wx5n,umbrella,r2d2c3po,
123123q,snoopdog,critter,theboss,ding,
162534,splinter,kinky,cyclops,jayhawk,
456321,caramel,qwer123,underdog,caveman,onlyme,grapes,feather,hotshot,fuckher,renault,george1,sex123,pippen,
000001,
789987,floppy,cunts,megapass,
1000,pornos,usmc,kickass,great1,quattro,
135246,wassup,helloo,p0015123,nicole1,chivas,shannon1,bullseye,java,fishes,blackhaw,jamesbond,tunafish,juggalo,dkflbckfd,
123789456,dallas1,translator,
122333,beanie,alucard,gfhjkm123,supersta,magicman,ashley1,cohiba,xbox360,caligula,
12131415,facial,
7753191,dfktynbyf,cobra1,cigars,fang,klingon,bob123,safari,looser,
10203,deepthroat,malina,
200000,tazmania,gonzo,goalie,jacob1,monaco,cruiser,misfit,vh5150,tommyboy,marino13,yousuck,sharky,vfhufhbnf,horizon,absolut,brighton,
123456r,death1,kungfu,maxx,forfun,mamapapa,enter1,budweise,banker,getmoney,kostya,qazwsx12,bigbear,vector,fallout,nudist,gunners,royals,chainsaw,scania,trader,blueboy,walrus,eastside,kahuna,qwerty1234,love123,steph,
01011989,cypress,champ,undertaker,ybrjkfq,europa,snowboar,sabres,moneyman,chrisbln,minime,nipper,groucho,whitey,viewsonic,penthous,wolf359,fabric,flounder,coolguy,whitesox,passme,smegma,skidoo,thanatos,fucku2,snapple,dalejr,mondeo,thesims,mybaby,panasoni,sinbad,thecat,topher,frodo,sneakers,q123456,z1x2c3,alfa,chicago1,taylor1,ghjcnjnfr,cat123,olivier,cyber,titanium,
0420,madison1,jabroni,dang,hambone,intruder,holly1,gargoyle,sadie1,static,poseidon,studly,newcastl,sexxxx,poppy,johannes,danzig,beastie,musica,buckshot,sunnyday,adonis,bluedog,bonkers,
2128506,chrono,compute,spawn,
01011988,turbo1,smelly,wapbbs,goldstar,ferrari1,
778899,quantum,pisces,boomboom,gunnar,
1024,test1234,florida1,nike,superman1,multiplelo,custom,motherlode,
1qwerty,westwood,usnavy,apple123,daewoo,korn,stereo,sasuke,sunflowe,watcher,dharma,
555777,mouse1,assholes,babyblue,
123qwerty,marius,walmart,snoop,starfire,tigger1,paintbal,knickers,aaliyah,lokomotiv,theend,winston1,sapper,rover,erotica,scanner,racer,zeus,sexy69,doogie,bayern,joshua1,newbie,scott1,losers,droopy,outkast,martin1,dodge1,wasser,ufkbyf,rjycnfynby,thirteen,
12345z,
112211,hotred,deejay,hotpussy,
192837,jessic,philippe,scout,panther1,cubbies,havefun,magpie,fghtkm,avalanch,newyork1,pudding,leonid,harry1,cbr600,audia4,bimmer,fucku,
01011984,idontknow,vfvfgfgf,
1357,aleksey,builder,
01011987,zerocool,godfather,mylife,donuts,allmine,redfish,
777888,sascha,nitram,bounce,
333666,smokes,
1x2zkg8w,rodman,stunner,zxasqw12,hoosier,hairy,beretta,insert,
123456s,rtyuehe,francesc,tights,cheese1,micron,quartz,hockey1,gegcbr,searay,jewels,bogey,paintball,celeron,padres,bing,syncmaster,ziggy,simon1,beaches,prissy,diehard,orange1,mittens,aleksandra,queens,
02071986,biggles,thongs,southpark,artur,twinkle,gretzky,rabota,cambiami,monalisa,gollum,chuckles,spike1,gladiator,whisky,spongebob,sexy1,
03082006,mazafaka,meathead,
4121,ou8122,barefoot,
12345678q,cfitymrf,bigass,a1s2d3,kosmos,blessing,titty,clevelan,terrapin,ginger1,johnboy,maggot,clarinet,deeznutz,
336699,stumpy,stoney,footbal,traveler,volvo,bucket,snapon,pianoman,hawkeyes,futbol,casanova,tango,goodboy,scuba,honey1,sexyman,warthog,mustard,abc1234,nickel,
10203040,meowmeow,
1012,boricua,prophet,sauron,
12qwas,reefer,andromeda,crystal1,joker1,
90210,goofy,loco,lovesex,triangle,whatsup,mellow,bengals,monster1,maste,
01011910,lover1,love1,
123aaa,sunshin,smeghead,hokies,sting,welder,rambo,cerberus,bunny1,rockford,monke,
1q2w3e4r5,goldwing,gabriell,buzzard,crjhgbjy,james007,rainman,groove,tiberius,purdue,nokia6300,hayabusa,shou,jagger,diver,zigzag,poochie,usarmy,phish,redwood,redwing,
12345679,salamander,silver1,abcd123,sputnik,boobie,ripple,eternal,
12qw34er,thegreat,allstar,slinky,gesperrt,mishka,whiskers,pinhead,overkill,sweet1,rhfcjnrf,montgom240,sersolution,jamie1,starman,proxy,swords,nikolay,bacardi,rasta,badgirl,rebecca1,wildman,penny1,spaceman,
1007,
10101,logan1,hacked,bulldog1,helmet,windsor,buffy1,runescape,trapper,
123451,banane,dbrnjh,ripken,
12345qwe,frisky,shun,fester,oasis,lightning,ib6ub9,cicero,kool,pony,thedog,
784512,
01011992,megatron,illusion,edward1,napster,
11223,squash,roadking,woohoo,
19411945,hoosiers,
01091989,tracker,bagira,midway,leavemealone,br549,
14725836,
235689,menace,rachel1,feng,laser,stoned,realmadrid,
787898,balloons,tinkerbell,
5551212,maria1,pobeda,heineken,sonics,moonlight,optimus,comet,orchid,
02071982,jaybird,kashmir,
12345678a,chuang,chunky,peach,mortgage,rulezzz,saleen,chuckie,zippy,fishing1,gsxr750,doghouse,maxim,reader,shai,buddah,benfica,chou,salomon,meister,eraser,blackbir,bigmike,starter,pissing,angus,deluxe,eagles1,hardcock,
135792468,mian,seahawks,godfathe,bookworm,gregor,intel,talisman,blackjack,babyface,hawaiian,dogfood,zhong,
01011975,sancho,ludmila,medusa,mortimer,
123456654321,roadrunn,just4me,stalin,
01011993,handyman,alphabet,pizzas,calgary,clouds,password2,cgfhnfr,f**k,cubswin,gong,lexus,max123,xxx123,digital1,gfhjkm1,
7779311,missy1,michae,beautifu,gator1,
1005,pacers,buddie,chinook,heckfy,dutchess,sally1,breasts,beowulf,darkman,jenn,tiffany1,zhei,quan,qazwsx1,satana,shang,idontkno,smiths,puddin,nasty1,teddybea,valkyrie,passwd,chao,boxster,killers,yoda,cheater,inuyasha,beast1,wareagle,foryou,dragonball,mermaid,bhbirf,teddy1,dolphin1,misty1,delphi,gromit,sponge,qazzaq,fytxrf,gameover,diao,sergi,beamer,beemer,kittykat,rancid,manowar,adam12,diggler,assword,austin1,wishbone,gonavy,sparky1,fisting,thedude,sinister,
1213,venera,novell,salsero,jayden,fuckoff1,linda1,vedder,
02021987,
1pussy,redline,lust,jktymrf,
02011985,dfcbkbq,dragon12,chrome,gamecube,titten,cong,bella1,leng,
02081988,eureka,bitchass,
147369,banner,lakota,
123321a,mustafa,preacher,hotbox,
02041986,z1x2c3v4,playstation,
01011977,claymore,electra,checkers,zheng,qing,armagedon,
02051986,wrestle,svoboda,bulls,nimbus,alenka,madina,newpass6,onetime,aa123456,bartman,
02091987,silverad,electron,
12345t,devil666,oliver1,skylar,rhtdtlrj,gobucks,johann,
12011987,milkman,
02101985,camper,thunderb,bigbutt,jammin,davide,cheeks,goaway,lighter,claudi,thumbs,pissoff,ghostrider,cocaine,teng,squall,lotus,hootie,blackout,doitnow,subzero,
02031986,marine1,
02021988,pothead,
123456qw,skate,
1369,peng,antoni,neng,miao,bcfields,
1492,marika,
794613,musashi,tulips,nong,piao,chai,ruan,southpar,
02061985,nude,mandarin,
654123,ninjas,cannabis,jetski,xerxes,zhuang,kleopatra,dickie,bilbo,pinky,morgan1,
1020,
1017,dieter,baseball1,tottenham,quest,yfnfkmz,dirtbike,
1234567890a,mango,jackson5,ipswich,iamgod,
02011987,tdutybz,modena,qiao,slippery,qweasd123,bluefish,samtron,toon,
111333,iscool,
02091986,petrov,fuzzy,zhou,
1357924680,mollydog,deng,
02021986,
1236987,pheonix,zhun,ghblehjr,othello,starcraf,
000111,sanfran,a11111,cameltoe,badman,vasilisa,jiang,
1qaz2ws,luan,sveta,
12qw12,akira,chuai,
369963,cheech,beatle,pickup,paloma,
01011983,caravan,elizaveta,gawker,banzai,pussey,mullet,seng,bingo1,bearcat,flexible,farscape,borussia,zhuai,templar,guitar1,toolman,yfcntymrf,chloe1,xiang,slave1,guai,nuggets,
02081984,mantis,slim,scorpio1,fyutkbyf,thedoors,
02081987,
02061986,
123qq123,zappa,fergie,
7ugd
5hip
2j,huai,asdfzxcv,sunflower,pussyman,deadpool,bigtit,
01011982,love12,lassie,skyler,gatorade,carpedie,jockey,mancity,spectre,
02021984,cameron1,artemka,reng,
02031984,iomega,jing,moritz,spice,rhino,spinner,heater,zhai,hover,talon,grease,qiong,corleone,ltybcrf,tian,cowboy1,hippie,chimera,ting,alex123,
02021985,mickey1,corsair,sonoma,aaron1,xxxpass,bacchus,webmaste,chuo,xyz123,chrysler,spurs1,artem,shei,cosmic,
01020304,deutsch,gabriel1,
123455,oceans,
987456321,binladen,latinas,a12345678,speedo,buttercu,
02081989,
21031988,merlot,millwall,ceng,kotaku,jiong,dragonba,
2580,stonecold,snuffy,
01011999,
02011986,hellos,blaze,maggie1,slapper,istanbul,bonjovi,babylove,mazda,bullfrog,phoeni,meng,porsche1,nomore,
02061989,bobdylan,capslock,orion1,zaraza,teddybear,ntktajy,myname,rong,wraith,mets,niao,
02041984,smokie,chevrolet,dialog,gfhjkmgfhjkm,dotcom,vadim,monarch,athlon,mikey1,hamish,pian,liang,coolness,chui,thoma,ramones,ciccio,chippy,eddie1,house1,ning,marker,cougars,jackpot,barbados,reds,pdtplf,knockers,cobalt,amateurs,dipshit,napoli,kilroy,pulsar,jayhawks,daemon,alexey,weng,shuang,
9293709b13,shiner,eldorado,soulmate,mclaren,golfer1,andromed,duan,
50spanks,sexyboy,dogshit,
02021983,shuo,kakashka,syzygy,
111111a,yeahbaby,qiang,netscape,fulham,
120676,gooner,zhui,rainbow6,laurent,dog123,halifax,freeway,carlitos,
147963,eastwood,microphone,monkey12,
1123,persik,coldbeer,geng,nuan,danny1,fgtkmcby,entropy,gadget,just4fun,sophi,baggio,carlito,
1234567891,
02021989,
02041983,specialk,piramida,suan,bigblue,salasana,hopeful,mephisto,bailey1,hack,annie1,generic,violetta,spencer1,arcadia,
02051983,hondas,
9562876,trainer,jones1,smashing,liao,
159632,iceberg,rebel1,snooker,temp123,zang,matteo,fastball,q2w3e4r5,bamboo,fuckyo,shutup,astro,buddyboy,nikitos,redbird,maxxxx,shitface,
02031987,kuai,kissmyass,sahara,radiohea,
1234asdf,wildcard,maxwell1,patric,plasma,heynow,bruno1,shao,bigfish,misfits,sassy1,sheng,
02011988,
02081986,testpass,nanook,cygnus,licking,slavik,pringles,xing,
1022,ninja1,submit,dundee,tiburon,pinkfloyd,yummy,shuai,guang,chopin,obelix,insomnia,stroker,
1a2s3d4f,
1223,playboy1,lazarus,jorda,spider1,homerj,sleeper,
02041982,darklord,cang,
02041988,
02041987,tripod,magician,jelly,telephon,
15975,vsjasnel12,pasword,iverson3,pavlov,homeboy,gamecock,amigo,brodie,budapest,yjdsqgfhjkm,reckless,
02011980,pang,tiger123,
2469,mason1,orient,
01011979,zong,cdtnbr,maksimka,
1011,bushido,taxman,giorgio,sphinx,kazantip,
02101984,concorde,verizon,lovebug,georg,sam123,seadoo,qazwsxedc123,jiao,jezebel,pharmacy,abnormal,jellybea,maxime,puffy,islander,bunnies,jiggaman,drakon,
010180,pluto,zhjckfd,
12365,classics,crusher,mordor,hooligan,strawberry,
02081985,scrabble,hawaii50,
1224,wg8e3wjf,cthtuf,premium,arrow,
123456qwe,mazda626,ramrod,tootie,rhjrjlbk,ghost1,
1211,bounty,niang,
02071984,goat,killer12,sweetnes,porno1,masamune,
426hemi,corolla,mariposa,hjccbz,doomsday,bummer,blue12,zhao,bird33,excalibur,samsun,kirsty,buttfuck,kfhbcf,zhuo,marcello,ozzy,
02021982,dynamite,
655321,master12,
123465,lollypop,stepan,
1qa2ws,spiker,goirish,callum,michael2,moonbeam,attila,henry1,lindros,andrea1,sporty,lantern,
12365478,nextel,violin,volcom,
998877,water1,imation,inspiron,dynamo,citadel,placebo,clowns,tiao,
02061988,tripper,dabears,haggis,merlin1,
02031985,anthrax,amerika,iloveme,vsegda,burrito,bombers,snowboard,forsaken,katarina,a1a2a3,woofer,tigger2,fullmoon,tiger2,spock,hannah1,snoopy1,sexxxy,sausages,stanislav,cobain,robotics,exotic,green123,mobydick,senators,pumpkins,fergus,asddsa,
147741,
258852,windsurf,reddevil,vfitymrf,nevermind,nang,woodland,
4417,mick,shui,q1q2q3,wingman,
69696,superb,zuan,ganesh,pecker,zephyr,anastasiya,icu812,larry1,
02081982,broker,zalupa,mihail,vfibyf,dogger,
7007,paddle,varvara,schalke,
1z2x3c,presiden,yankees2,tuning,poopy,
02051982,concord,vanguard,stiffy,rjhjktdf,felix1,wrench,firewall,boxer,bubba69,popper,
02011984,temppass,gobears,cuan,tipper,fuckme1,kamila,thong,puss,bigcat,drummer1,
02031982,sowhat,digimon,tigers1,rang,jingle,bian,uranus,soprano,mandy1,dusty1,fandango,aloha,pumpkin1,postman,
02061980,dogcat,bombay,pussy123,onetwo,highheel,pippo,julie1,laura1,pepito,beng,smokey1,stylus,stratus,reload,duckie,karen1,jimbo1,
225588,
369258,krusty,snappy,asdf12,electro,
111qqq,kuang,fishin,clit,abstr,christma,qqqqq1,
1234560,carnage,guyver,boxers,kittens,zeng,
1000000,qwerty11,toaster,cramps,yugioh,
02061987,icehouse,zxcvbnm123,pineapple,namaste,harrypotter,mygirl,falcon1,earnhard,fender1,spikes,nutmeg,
01081989,dogboy,
02091983,
369852,softail,mypassword,prowler,bigboss,
1112,harvest,heng,jubilee,killjoy,basset,keng,zaqxswcde,redsox1,biao,titan,misfit99,robot,wifey,kidrock,
02101987,gameboy,enrico,
1z2x3c4v,broncos1,arrows,havana,banger,cookie1,chriss,
123qw,platypus,cindy1,lumber,pinball,foxy,london1,
1023,
05051987,
02041985,password12,superma,longbow,radiohead,nigga,
12051988,spongebo,qwert12345,abrakadabra,dodgers1,
02101989,chillin,niceguy,pistons,hookup,santafe,bigben,jets,
1013,vikings1,mankind,viktoriya,beardog,hammer1,
02071980,reddwarf,magelan,longjohn,jennife,gilles,carmex2,
02071987,stasik,bumper,doofus,slamdunk,pixies,garion,steffi,alessandro,beerman,niceass,warrior1,honolulu,
134679852,visa,johndeer,mother1,windmill,boozer,oatmeal,aptiva,busty,delight,tasty,slick1,bergkamp,badgers,guitars,puffin,
02091981,nikki1,irishman,miller1,zildjian,
123000,airwolf,magnet,anai,install,
02041981,
02061983,astra,romans,megan1,mudvayne,freebird,muscles,dogbert,
02091980,
02091984,snowflak,
01011900,mang,joseph1,nygiants,playstat,junior1,vjcrdf,qwer12,webhompas,giraffe,pelican,jefferso,comanche,bruiser,monkeybo,kjkszpj,
123456l,micro,albany,
02051987,angel123,epsilon,aladin,death666,hounddog,josephin,altima,chilly,
02071988,
78945,ultra,
02041979,gasman,thisisit,pavel,idunno,kimmie,
05051985,paulie,ballin,medion,moondog,manolo,pallmall,climber,fishbone,genesis1,
153624,toffee,tbone,clippers,krypton,jerry1,picturs,compass,
111111q,
02051988,
1121,
02081977,sairam,getout,
333777,cobras,
22041987,bigblock,severin,booster,norwich,whiteout,ctrhtn,
123456m,
02061984,hewlett,shocker,fuckinside,
02031981,chase1,white1,versace,
123456789s,basebal,iloveyou2,bluebell,
08031986,anthon,stubby,foreve,undertak,werder,saiyan,mama123,medic,chipmunk,mike123,mazdarx7,qwe123qwe,bowwow,kjrjvjnbd,celeb,choochoo,demo,lovelife,
02051984,colnago,lithium,
02051989,
15051981,zzzxxx,welcom,anastasi,fidelio,franc,
26061987,roadster,stone55,drifter,hookem,hellboy,
1234qw,cbr900rr,sinned,good123654,storm1,gypsy,zebra,zachary1,toejam,buceta,
02021979,testing1,redfox,lineage,mike1,highbury,koroleva,nathan1,washingt,
02061982,
02091985,vintage,redbaron,dalshe,mykids,
11051987,macbeth,julien,james123,krasotka,
111000,
10011986,
987123,pipeline,tatarin,sensei,codered,komodo,frogman,
7894561230,nascar24,juicy,
01031988,redrose,mydick,pigeon,tkbpfdtnf,smirnoff,
1215,spam,winner1,flyfish,moskva,
81fukkc,
21031987,olesya,starligh,summer99,
13041988,fishhead,freesex,super12,
06061986,azazel,scoobydoo,
02021981,cabron,yogibear,sheba1,konstantin,tranny,chilli,terminat,ghbywtccf,slowhand,soccer12,cricket1,fuckhead,
1002,seagull,achtung,blam,bigbob,bdsm,nostromo,survivor,cnfybckfd,lemonade,boomer1,rainbow1,rober,irinka,cocksuck,peaches1,itsme,sugar1,zodiac,upyours,dinara,
135791,sunny1,chiara,johnson1,
02041989,solitude,habibi,sushi,markiz,smoke1,rockies,catwoman,johnny1,qwerty7,bearcats,username,
01011978,wanderer,ohshit,
02101986,sigma,stephen1,paradigm,
02011989,flanker,sanity,jsbach,spotty,bologna,fantasia,chevys,borabora,cocker,
74108520,
123ewq,
12021988,
01061990,gtnhjdbx,
02071981,
01011960,sundevil,
3000gt,mustang6,gagging,maggi,armstron,yfnfkb,
13041987,revolver,
02021976,trouble1,madcat,jeremy1,jackass1,volkswag,
30051985,corndog,pool6123,marines1,
03041991,pizza1,piggy,sissy,
02031979,sunfire,angelus,undead,
24061986,
14061991,wildbill,shinobi,
45m2do5bs,
123qwer,
21011989,cleopatr,lasvega,hornets,amorcit,
11081989,coventry,nirvana1,destin,sidekick,
20061988,
02081983,gbhfvblf,sneaky,bmw325,
22021989,nfytxrf,sekret,kalina,zanzibar,hotone,qazws,wasabi,heidi1,highlander,blues1,hitachi,paolo,
23041987,slayer1,simba1,
02011981,tinkerbe,kieran,
01121986,
172839,boiler,
1125,bluesman,waffle,asdfgh01,threesom,conan,
1102,reflex,
18011987,nautilus,everlast,fatty,vader1,
01071986,cyborg,ghbdtn123,birddog,rubble,
02071983,suckers,
02021973,skyhawk,
12qw12qw,dakota1,joebob,nokia6233,woodie,longdong,lamer,troll,ghjcnjgfhjkm,
420000,boating,nitro,armada,messiah,
1031,penguin1,
02091989,americ,
02071989,redeye,asdqwe123,
07071987,monty1,goten,spikey,sonata,
635241,tokiohotel,sonyericsson,citroen,compaq1,
1812,umpire,belmont,jonny,pantera1,nudes,palmtree,
14111986,fenway,bighead,razor,gryphon,andyod22,aaaaa1,taco,
10031988,enterme,malachi,dogface,reptile,
01041985,dindom,handball,marseille,candy1,
19101987,torino,tigge,matthias,viewsoni,
13031987,stinker,evangelion,
24011985,
123456123,rampage,sandrine,
02081980,thecrow,astral,
28041987,sprinter,private1,seabee,shibby,
02101988,
25081988,fearless,junkie,
01091987,aramis,antelope,draven,fuck1,mazda6,eggman,
02021990,barselona,buddy123,
19061987,fyfnjkbq,nancy1,
12121990,
10071987,sluggo,kille,hotties,irishka,zxcasdqwe123,shamus,fairlane,honeybee,soccer10,
13061986,fantomas,
17051988,
10051987,
20111986,gladiato,karachi,gambler,gordo,
01011995,biatch,matthe,
25800852,papito,excite,buffalo1,bobdole,cheshire,player1,
28021992,thewho,
10101986,pinky1,mentor,tomahawk,brown1,
03041986,bismillah,bigpoppa,ijrjkfl,
01121988,runaway,
08121986,skibum,studman,helper,squeak,holycow,manfred,harlem,glock,gideon,
987321,
14021985,yellow1,wizard1,margarit,success1,medved,sf49ers,lambda,pasadena,johngalt,quasar,
1776,
02031980,coldplay,amand,playa,bigpimp,
04041991,capricorn,elefant,sweetness,bruce1,luca,dominik,
10011990,biker,
09051945,datsun,elcamino,trinitro,malice,audi,voyager1,
02101983,joe123,carpente,spartan1,mario1,glamour,diaper,
12121985,
22011988,winter1,asimov,callisto,nikolai,pebble,
02101981,vendetta,david123,boytoy,
11061985,
02031989,iloveyou1,stupid1,cayman,casper1,zippo,yamahar1,wildwood,foxylady,calibra,
02041980,
27061988,dungeon,leedsutd,
30041986,
11051990,bestbuy,antares,dominion,
24680,
01061986,skillet,enforcer,derparol,
01041988,
196969,
29071983,f00tball,purple1,mingus,
25031987,
21031990,remingto,giggles,klaste,
3x7pxr,
01011994,coolcat,
29051989,megane,
20031987,
02051980,
04041988,synergy,
0000007,macman,iforget,adgjmp,vjqgfhjkm,
28011987,rfvfcenhf,
16051989,
25121987,
16051987,rogue,mamamia,
08051990,
20091991,
1210,carnival,bolitas,paris1,dmitriy,dimas,
05051989,papillon,knuckles,
29011985,hola,tophat,
28021990,
100500,cutiepie,devo,
415263,ducks,ghjuhfvvf,asdqwe,
22021986,freefall,parol,
02011983,zarina,buste,vitamin,warez,bigones,
17061988,baritone,jamess,twiggy,mischief,bitchy,hetfield,
1003,dontknow,grinch,sasha_007,
18061990,
12031985,
12031987,calimero,
224466,letmei,
15011987,acmilan,alexandre,
02031977,
08081988,whiteboy,
21051991,barney1,
02071978,money123,
18091985,bigdawg,
02031988,cygnusx1,zoloto,
31011987,firefigh,blowfish,screamer,lfybbk,
20051988,chelse,
11121986,
01031989,harddick,sexylady,
30031988,
02041974,auditt,pizdec,kojak,kfgjxrf,
20091988,
123456ru,wp2003wp,
1204,
15051990,slugger,kordell1,
03031986,swinging,
01011974,
02071979,rockie,dimples,
1234123,
1dragon,trucking,rusty2,roger1,marijuana,kerouac,
02051978,
08031985,paco,thecure,keepout,kernel,noname123,
13121985,francisc,bozo,
02011982,
22071986,
02101979,obsidian,
12345qw,spud,tabasco,
02051985,jaguars,dfktynby,kokomo,popova,notused,sevens,
4200,magneto,
02051976,roswell,
15101986,
21101986,lakeside,bigbang,aspen,little1,
14021986,loki,suckmydick,strawber,carlos1,nokian73,dirty1,joshu,
25091987,
16121987,
02041975,advent,
17011987,slimshady,whistler,
10101990,stryker,
22031984,
15021985,
01031985,blueball,
26031988,ksusha,bahamut,robocop,w_pass,chris123,impreza,prozac,bookie,bricks,
13021990,alice1,cassandr,
11111q,john123,
4ever,korova,
02051973,
142857,
25041988,paramedi,eclipse1,salope,
07091990,
1124,darkangel,
23021986,
999666,nomad,
02051981,smackdow,
01021990,yoyoma,argentin,moonligh,
57chevy,bootys,hardone,capricor,galant,spanker,dkflbr,
24111989,magpies,krolik,
21051988,cevthrb,cheddar,
22041988,bigbooty,scuba1,qwedsa,duffman,bukkake,acura,johncena,sexxy,p@ssw0rd,
258369,cherries,
12345s,asgard,leopold,fuck123,mopar,lalakers,dogpound,matrix1,crusty,spanner,kestrel,fenris,universa,peachy,assasin,lemmein,eggplant,hejsan,canucks,wendy1,doggy1,aikman,tupac,turnip,godlike,fussball,golden1,
19283746,april1,django,petrova,captain1,vincent1,ratman,taekwondo,chocha,serpent,perfect1,capetown,vampir,amore,gymnast,timeout,nbvjatq,blue32,ksenia,k.lvbkf,nazgul,budweiser,clutch,mariya,sylveste,
02051972,beaker,cartman1,q11111,sexxx,forever1,loser1,marseill,magellan,vehpbr,sexgod,jktxrf,hallo123,
132456,liverpool1,southpaw,seneca,camden,
357159,camero,tenchi,johndoe,
145236,roofer,
741963,vlad,
02041978,fktyrf,zxcv123,wingnut,wolfpac,notebook,pufunga7782,brandy1,biteme1,goodgirl,redhat,
02031978,challeng,millenium,hoops,maveric,noname,angus1,gaell,onion,olympus,sabrina1,ricard,sixpack,gratis,gagged,camaross,hotgirls,flasher,
02051977,bubba123,goldfing,moonshin,gerrard,volkov,sonyfuck,mandrake,
258963,tracer,lakers1,asians,susan1,money12,helmut,boater,diablo2,
1234zxcv,dogwood,bubbles1,happy2,randy1,aries,beach1,marcius2,navigator,goodie,hellokitty,fkbyjxrf,earthlink,lookout,jumbo,opendoor,stanley1,marie1,
12345m,
07071977,ashle,wormix,murzik,
02081976,lakewood,bluejays,loveya,commande,gateway2,peppe,
01011976,
7896321,goth,oreo,slammer,rasmus,faith1,knight1,stone1,redskin,ironmaiden,gotmilk,destiny1,dejavu,
1master,midnite,timosha,espresso,delfin,toriamos,oberon,ceasar,markie,
1a2s3d,ghhh47hj7649,vjkjrj,daddyo,dougie,disco,auggie,lekker,therock1,ou8123,start1,noway,p4ssw0rd,shadow12,
333444,saigon,
2fast4u,capecod,
23skidoo,qazxcv,beater,bremen,aaasss,roadrunner,peace1,
12345qwer,
02071975,platon,bordeaux,vbkfirf,
135798642,test12,supernov,beatles1,qwert40,optimist,vanessa1,prince1,ilovegod,nightwish,natasha1,alchemy,bimbo,blue99,patches1,gsxr1000,richar,hattrick,hott,solaris,proton,nevets,enternow,beavis1,amigos,
159357a,ambers,lenochka,
147896,suckdick,shag,intercourse,blue1234,spiral,
02061977,tosser,ilove,
02031975,cowgirl,canuck,q2w3e4,munch,spoons,waterboy,
123567,evgeniy,savior,zasada,redcar,mamacita,terefon,globus,doggies,htubcnhfwbz,
1008,cuervo,suslik,azertyui,limewire,houston1,stratfor,steaua,coors,tennis1,
12345qwerty,stigmata,derf,klondike,patrici,marijuan,hardball,odyssey,nineinch,boston1,pass1,beezer,sandr,charon,power123,a1234,vauxhall,
875421,awesome1,reggae,boulder,funstuff,iriska,krokodil,rfntymrf,sterva,champ1,bball,peeper,m123456,toolbox,cabernet,sheepdog,magic32,pigpen,
02041977,holein1,lhfrjy,banan,dabomb,natalie1,jennaj,montana1,joecool,funky,steven1,ringo,junio,sammy123,qqqwww,baltimor,footjob,geezer,
357951,mash4077,cashmone,pancake,monic,grandam,bongo,yessir,gocubs,nastia,vancouve,barley,dragon69,watford,ilikepie,
02071976,laddie,
123456789m,hairball,toonarmy,pimpdadd,cvthnm,hunte,davinci,lback,sophie1,firenze,q1234567,admin1,bonanza,elway7,daman,strap,azert,wxcvbn,afrika,theforce,
123456t,idefix,wolfen,houdini,scheisse,default,beech,maserati,
02061976,sigmachi,dylan1,bigdicks,eskimo,mizzou,
02101976,riccardo,egghead,
111777,kronos,ghbrjk,chaos1,jomama,rfhnjirf,rodeo,dolemite,cafc91,nittany,pathfind,mikael,password9,vqsablpzla,purpl,gabber,modelsne,myxworld,hellsing,punker,rocknrol,fishon,fuck69,
02041976,lolol,twinkie,tripleh,cirrus,redbone,killer123,biggun,allegro,gthcbr,smith1,wanking,bootsy,barry1,mohawk,koolaid,
5329,futurama,samoht,klizma,
996633,lobo,honeys,peanut1,
556677,zxasqw,joemama,javelin,samm,
223322,sandra1,flicks,montag,nataly,
3006,tasha1,
1235789,dogbone,poker1,p0o9i8u7,goodday,smoothie,toocool,max333,metroid,archange,vagabond,billabon,
22061941,tyson1,
02031973,darkange,skateboard,evolutio,morrowind,wizards,frodo1,rockin,cumslut,plastics,zaqwsxcde,
5201314,doit,outback,bumble,dominiqu,persona,nevermore,alinka,
02021971,forgetit,sexo,all4one,c2h5oh,petunia,sheeba,kenny1,elisabet,aolsucks,woodstoc,pumper,
02011975,fabio,granada,scrapper,
123459,minimoni,q123456789,breaker,
1004,
02091976,ncc74656,slimshad,friendster,austin31,wiseguy,donner,dilbert1,
132465,blackbird,buffet,jellybean,barfly,behappy,
01011971,carebear,fireblad,
02051975,boxcar,cheeky,kiteboy,hello12,panda1,elvisp,opennow,doktor,alex12,
02101977,pornking,flamengo,
02091975,snowbird,lonesome,robin1,
11111a,weed420,baracuda,bleach,
12345abc,nokia1,metall,singapor,mariner,herewego,dingo,tycoon,cubs,blunts,proview,
123456789d,kamasutra,lagnaf,vipergts,navyseal,starwar,masterbate,wildone,peterbil,cucumber,butkus,
123qwert,climax,deniro,gotribe,cement,scooby1,summer69,harrier,shodan,newyear,
02091977,starwars1,romeo1,sedona,harald,doubled,sasha123,bigguns,salami,awnyce,kiwi,homemade,pimping,azzer,bradley1,warhamme,linkin,dudeman,qwe321,pinnacle,maxdog,flipflop,lfitymrf,fucker1,acidburn,esquire,sperma,fellatio,jeepster,thedon,sexybitch,pookey,spliff,widget,vfntvfnbrf,trinity1,mutant,samuel1,meliss,gohome,
1q2q3q,mercede,comein,grin,cartoons,paragon,henrik,rainyday,pacino,senna,bigdog1,alleycat,
12345qaz,narnia,mustang2,tanya1,gianni,apollo11,wetter,clovis,escalade,rainbows,freddy1,smart1,daisydog,s123456,cocksucker,pushkin,lefty,sambo,fyutkjxtr,hiziad,boyz,whiplash,orchard,newark,adrenalin,
1598753,bootsie,chelle,trustme,chewy,golfgti,tuscl,ambrosia,
5wr2i7h8,penetration,shonuf,jughead,payday,stickman,gotham,kolokol,johnny5,kolbasa,stang,puppydog,charisma,gators1,mone,jakarta,draco,nightmar,
01011973,inlove,laetitia,
02091973,tarpon,nautica,meadow,
0192837465,luckyone,
14881488,chessie,goldeney,tarakan,
69camaro,bungle,wordup,interne,fuckme2,
515000,dragonfl,sprout,
02081974,gerbil,bandit1,
02071971,melanie1,phialpha,camber,kathy1,adriano,gonzo1,
10293847,bigjohn,bismarck,
7777777a,scamper,
12348765,rabbits,
222777,bynthytn,dima123,alexander1,mallorca,dragster,favorite6,beethove,burner,cooper1,fosters,hello2,normandy,
777999,sebring,
1michael,lauren1,blake1,killa,
02091971,nounours,trumpet1,thumper1,playball,xantia,rugby1,rocknroll,guillaum,angela1,strelok,prosper,buttercup,masterp,dbnfkbr,cambridg,venom,treefrog,lumina,
1234566,supra,sexybabe,freee,shen,frogs,driller,pavement,grace1,dicky,checker,smackdown,pandas,cannibal,asdffdsa,blue42,zyjxrf,nthvbyfnjh,melrose,neon,jabber,gamma,
369258147,aprilia,atticus,benessere,catcher,skipper1,azertyuiop,sixty9,thierry,treetop,jello,melons,
123456789qwe,tantra,buzzer,catnip,bouncer,computer1,sexyone,ananas,young1,olenka,sexman,mooses,kittys,sephiroth,contra,hallowee,skylark,sparkles,
777333,
1qazxsw23edc,lucas1,q1w2e3r,gofast,hannes,amethyst,ploppy,flower2,hotass,amatory,volleyba,dixie1,bettyboo,ticklish,
02061974,frenchy,phish1,murphy1,trustno,
02061972,leinad,mynameis,spooge,jupiter1,hyundai,frosch,junkmail,abacab,marbles,
32167,casio,sunshine1,wayne1,longhair,caster,snicker,
02101973,gannibal,skinhead,hansol,gatsby,segblue2,montecar,plato,gumby,kaboom,matty,bosco1,
888999,jazzy,panter,jesus123,charlie2,giulia,candyass,sex69,travis1,farmboy,special1,
02041973,letsdoit,password01,allison1,abcdefg1,notredam,ilikeit,
789654123,liberty1,rugger,uptown,alcatraz,
123456w,airman,
007bond,navajo,kenobi,terrier,stayout,grisha,frankie1,fluff,
1qazzaq1,
1234561,virginie,
1234568,tango1,werdna,octopus,fitter,dfcbkbcf,blacklab,
115599,montrose,allen1,supernova,frederik,ilovepussy,justice1,radeon,playboy2,blubber,sliver,swoosh,motocros,lockdown,pearls,thebear,istheman,pinetree,biit,
1234rewq,rustydog,tampabay,titts,babycake,jehovah,vampire1,streaming,collie,camil,fidelity,calvin1,stitch,gatit,restart,puppy1,budgie,grunt,capitals,hiking,dreamcas,zorro1,
321678,riffraff,makaka,playmate,napalm,rollin,amstel,zxcvb123,samanth,rumble,fuckme69,jimmys,
951357,pizzaman,
1234567899,tralala,delpiero,alexi,yamato,itisme,
1million,vfndtq,kahlua,londo,wonderboy,carrots,tazz,ratboy,rfgecnf,
02081973,nico,fujitsu,tujhrf,sergbest,blobby,
02051970,sonic1,
1357911,smirnov,video1,panhead,bucky,
02031974,
44332211,duffer,cashmoney,left4dead,bagpuss,salman,
01011972,titfuck,
66613666,england1,malish,dresden,lemans,darina,zapper,
123456as,
123456qqq,met2002,
02041972,redstar,blue23,
1234509876,pajero,booyah,please1,tetsuo,semper,finder,hanuman,sunlight,
123456n,
02061971,treble,cupoi,password99,dimitri,
3ip76k2,popcorn1,lol12345,stellar,nympho,shark1,keith1,saskia,bigtruck,revoluti,rambo1,asd222,feelgood,phat,gogators,bismark,cola,puck,furball,burnout,slonik,bowtie,mommy1,icecube,fabienn,mouser,papamama,rolex,giants1,blue11,trooper1,momdad,iklo,morten,rhubarb,gareth,
123456d,blitz,canada1,r2d2,brest,tigercat,usmarine,lilbit,benny1,azrael,lebowski,
12345r,madagaskar,begemot,loverman,dragonballz,italiano,mazda3,naughty1,onions,diver1,cyrano,capcom,asdfg123,forlife,fisherman,weare138,requiem,mufasa,alpha123,piercing,hellas,abracadabra,duckman,caracas,macintos,
02011971,jordan2,crescent,fduecn,hogtied,eatmenow,ramjet,
18121812,kicksass,whatthe,discus,rfhfvtkmrf,rufus1,sqdwfe,mantle,vegitto,trek,dan123,paladin1,rudeboy,liliya,lunchbox,riversid,acapulco,libero,dnsadm,maison,toomuch,boobear,hemlock,sextoy,pugsley,misiek,athome,migue,altoids,marcin,
123450,rhfcfdbwf,jeter2,rhinos,rjhjkm,mercury1,ronaldinho,shampoo,makayla,kamilla,masterbating,tennesse,holger,john1,matchbox,hores,poptart,parlament,goodyear,asdfgh1,
02081970,hardwood,alain,erection,hfytnrb,highlife,implants,benjami,dipper,jeeper,bendover,supersonic,babybear,laserjet,gotenks,bama,natedogg,aol123,pokemo,rabbit1,raduga,sopranos,cashflow,menthol,pharao,hacking,
334455,ghjcnbnenrf,lizzy,muffin1,pooky,penis1,flyer,gramma,dipset,becca,ireland1,diana1,donjuan,pong,ziggy1,alterego,simple1,cbr900,logger,
111555,claudia1,cantona7,matisse,ljxtymrf,victori,harle,mamas,encore,mangos,iceman1,diamon,alexxx,tiamat,
5000,desktop,mafia,smurf,princesa,shojou,blueberr,welkom,maximka,
123890,
123q123,tammy1,bobmarley,clips,demon666,ismail,termite,laser1,missie,altair,donna1,bauhaus,trinitron,mogwai,flyers88,juniper,nokia5800,boroda,jingles,qwerasdfzxcv,shakur,
777666,legos,mallrats,
1qazxsw,goldeneye,tamerlan,julia1,backbone,spleen,
49ers,shady,darkone,medic1,justi,giggle,cloudy,aisan,douche,parkour,bluejay,huskers1,redwine,
1qw23er4,satchmo,
1231234,nineball,stewart1,ballsack,probes,kappa,amiga,flipper1,dortmund,
963258,trigun,
1237895,homepage,blinky,screwy,gizzmo,belkin,chemist,coolhand,chachi,braves1,thebest,greedisgood,pro100,banana1,
101091m,
123456g,wonderfu,barefeet,
8inches,
1111qqqq,kcchiefs,qweasdzxc123,metal1,jennifer1,xian,asdasd123,pollux,cheerleaers,fruity,mustang5,turbos,shopper,photon,espana,hillbill,oyster,macaroni,gigabyte,jesper,motown,tuxedo,buster12,triplex,cyclones,estrell,mortis,holla,
456987,fiddle,sapphic,jurassic,thebeast,ghjcnjq,baura,spock1,metallica1,karaoke,nemrac58,love1234,
02031970,flvbybcnhfnjh,frisbee,diva,ajax,feathers,flower1,soccer11,allday,mierda,pearl1,amature,marauder,
333555,redheads,womans,egorka,godbless,
159263,nimitz,aaaa1111,sashka,madcow,socce,greywolf,baboon,pimpdaddy,
123456789r,reloaded,lancia,rfhfylfi,dicker,placid,grimace,
22446688,olemiss,whores,culinary,wannabe,maxi,
1234567aa,amelie,riley1,trample,phantom1,baberuth,bramble,asdfqwer,vides,
4you,abc123456,taichi,aztnm,smother,outsider,hakr,blackhawk,bigblack,girlie,spook,valeriya,gianluca,freedo,
1q2q3q4q,handbag,lavalamp,cumm,pertinant,whatup,nokia123,redlight,patrik,
111aaa,poppy1,dfytxrf,aviator,sweeps,kristin1,cypher,elway,yinyang,access1,poophead,tucson,noles1,monterey,waterfal,dank,dougal,
918273,suede,minnesot,legman,bukowski,ganja,mammoth,riverrat,asswipe,daredevi,lian,arizona1,kamikadze,alex1234,smile1,angel2,
55bgates,bellagio,
0001,wanrltw,stiletto,lipton,arsena,biohazard,bbking,chappy,tetris,as123456,darthvad,lilwayne,nopassword,
7412369,
123456789987654321,natchez,glitter,
14785236,mytime,rubicon,moto,pyon,wazzup,tbird,shane1,nightowl,getoff,beckham7,trueblue,hotgirl,nevermin,deathnote,
13131,taffy,bigal,copenhag,apricot,gallaries,dtkjcbgtl,totoro,onlyone,civicsi,jesse1,baby123,sierra1,festus,abacus,sickboy,fishtank,fungus,charle,golfpro,teensex,mario66,seaside,aleksei,rosewood,blackberry,
1020304050,bedlam,schumi,deerhunt,contour,darkelf,surveyor,deltas,pitchers,
741258963,dipstick,funny1,lizzard,
112233445566,jupiter2,softtail,titman,greenman,z1x2c3v4b5,smartass,
12345677,notnow,myworld,nascar1,chewbacc,nosferatu,downhill,dallas22,kuan,blazers,whales,soldat,craving,powerman,yfcntyf,hotrats,cfvceyu,qweasdzx,princess1,feline,qqwwee,chitown,
1234qaz,mastermind,
114477,dingbat,care1839,standby,kismet,atreides,dogmeat,icarus,monkeyboy,alex1,mouses,nicetits,sealteam,chopper1,crispy,winter99,rrpass1,myporn,myspace1,corazo,topolino,ass123,lawman,muffy,orgy,
1love,passord,hooyah,ekmzyf,pretzel,amonra,nestle,
01011950,jimbeam,happyman,z12345,stonewal,helios,manunited,harcore,dick1,gaymen,
2hot4u,light1,qwerty13,kakashi,pjkjnj,alcatel,taylo,allah,buddydog,ltkmaby,mongo,blonds,start123,audia6,
123456v,civilwar,bellaco,turtles,mustan,deadspin,aaa123,fynjirf,lucky123,tortoise,amor,summe,waterski,zulu,drag0n,dtxyjcnm,gizmos,strife,interacial,pusyy,goose1,bear1,equinox,matri,jaguar1,tobydog,sammys,nachos,traktor,bryan1,morgoth,
444555,dasani,miami1,mashka,xxxxxx1,ownage,nightwin,hotlips,passmast,cool123,skolko,eldiablo,manu,
1357908642,screwyou,badabing,foreplay,hydro,kubrick,seductive,demon1,comeon,galileo,aladdin,metoo,happines,
902100,mizuno,caddy,bizzare,girls1,redone,ohmygod,sable,bonovox,girlies,hamper,opus,gizmodo1,aaabbb,pizzahut,
999888,rocky2,anton1,kikimora,peavey,ocelot,a1a2a3a4,
2wsx3edc,jackie1,solace,sprocket,galary,chuck1,volvo1,shurik,poop123,locutus,virago,wdtnjxtr,tequier,bisexual,doodles,makeitso,fishy,
789632145,nothing1,fishcake,sentry,libertad,oaktree,fivestar,adidas1,vegitta,mississi,spiffy,carme,neutron,vantage,agassi,boners,
123456789v,hilltop,taipan,barrage,kenneth1,fister,martian,willem,lfybkf,bluestar,moonman,ntktdbpjh,paperino,bikers,daffy,benji,quake,dragonfly,suckcock,danilka,lapochka,belinea,calypso,asshol,camero1,abraxas,mike1234,womam,q1q2q3q4q5,youknow,maxpower,pic's,audi80,sonora,raymond1,tickler,tadpole,belair,crazyman,finalfantasy,
999000,jonatha,paisley,kissmyas,morgana,monste,mantra,spunk,magic123,jonesy,mark1,alessand,
741258,baddest,ghbdtnrfrltkf,zxccxz,tictac,augustin,racers,
7grout,foxfire,
99762000,openit,nathanie,
1z2x3c4v5b,seadog,gangbanged,lovehate,hondacbr,harpoon,mamochka,fisherma,bismilla,locust,wally1,spiderman1,saffron,utjhubq,
123456987,
20spanks,safeway,pisser,bdfyjd,kristen1,bigdick1,magenta,vfhujif,anfisa,friday13,qaz123wsx,
0987654321q,tyrant,guan,meggie,kontol,nurlan,ayanami,rocket1,yaroslav,websol76,mutley,hugoboss,websolutions,elpaso,gagarin,badboys,sephirot,
918273645,newuser,qian,edcrfv,booger1,
852258,lockout,timoxa94,mazda323,firedog,sokolova,skydiver,jesus777,
1234567890z,soulfly,canary,malinka,guillerm,hookers,dogfart,surfer1,osprey,india123,rhjkbr,stoppedby,nokia5530,
123456789o,blue1,werter,divers,
3000,
123456f,alpina,cali,whoknows,godspeed,
986532,foreskin,fuzzy1,heyyou,didier,slapnuts,fresno,rosebud1,sandman1,bears1,blade1,honeybun,queen1,baronn,pakista,philipp,
9111961,topsecret,sniper1,
214365,slipper,letsfuck,pippen33,godawgs,mousey,qw123456,scrotum,loveis,lighthou,bp2002,nancy123,jeffrey1,susieq,buddy2,ralphie,trout1,willi,antonov,sluttey,rehbwf,marty1,darian,losangeles,letme1n,
12345d,pusssy,godiva,ender,golfnut,leonidas,a1b2c3d4e5,puffer,general1,wizzard,lehjxrf,racer1,bigbucks,cool12,buddys,zinger,esprit,vbienrf,josep,tickling,froggie,
987654321a,
895623,daddys,crumbs,gucci,mikkel,opiate,tracy1,christophe,came11,
777555,petrovich,humbug,dirtydog,allstate,horatio,wachtwoord,creepers,squirts,rotary,bigd,georgia1,fujifilm,
2sweet,dasha,yorkie,slimjim,wiccan,kenzie,system1,skunk,b12345,getit,pommes,daredevil,sugars,bucker,piston,lionheart,
1bitch,
515051,catfight,recon,icecold,fantom,vodafone,kontakt,boris1,vfcnth,canine,
01011961,valleywa,faraon,chickenwing101,qq123456,livewire,livelife,roosters,jeepers,ilya1234,coochie,pavlik,dewalt,dfhdfhf,architec,blackops,
1qaz2wsx3edc4rfv,rhfcjnf,wsxedc,teaser,sebora,
25252,rhino1,ankara,swifty,decimal,redleg,shanno,nermal,candies,smirnova,dragon01,photo1,ranetki,a1s2d3f4g5,axio,wertzu,maurizio,
6uldv
8,zxcvasdf,punkass,flowe,graywolf,peddler,
3rjs1la7qe,mpegs,seawolf,ladyboy,pianos,piggies,vixen,alexus,orpheus,gdtrfb,z123456,macgyver,hugetits,ralph1,flathead,maurici,mailru,goofball,nissan1,nikon,stopit,odin,big1,smooch,reboot,famil,bullit,anthony7,gerhard,methos,
124038,morena,eagle2,jessica2,zebras,getlost,gfynthf,
123581321,sarajevo,indon,comets,tatjana,rfgbnjirf,joystick,batman12,
123456c,sabre,beerme,victory1,kitties,
1475369,badboy1,booboo1,comcast,slava,squid,saxophon,lionhear,qaywsx,bustle,nastena,roadway,loader,hillside,starlight,
24681012,niggers,access99,bazooka,molly123,blackice,bandi,cocacol,nfhfrfy,timur,muschi,horse1,quant4307s,squerting,oscars,mygirls,flashman,tangerin,goofy1,p0o9i8,housewifes,newness,monkey69,escorpio,password11,hippo,warcraft3,qazxsw123,qpalzm,ribbit,ghbdtndctv,bogota,star123,
258000,lincoln1,bigjim,lacoste,firestorm,legenda,indain,ludacris,milamber,
1009,evangeli,letmesee,a111111,hooters1,bigred1,shaker,husky,a4tech,cnfkrth,argyle,rjhjdf,nataha,
0o9i8u7y,gibson1,sooners1,glendale,archery,hoochie,stooge,aaaaaa1,scorpions,school1,vegas1,rapier,mike23,bassoon,groupd2013,macaco,baker1,labia,freewill,santiag,silverado,butch1,vflfufcrfh,monica1,rugrat,cornhole,aerosmit,bionicle,gfgfvfvf,daniel12,virgo,fmale,favorite2,detroit1,pokey,shredder,baggies,wednesda,cosmo1,mimosa,sparhawk,firehawk,romario,
911turbo,funtimes,fhntvrf,nexus6,
159753456,timothy1,bajingan,terry1,frenchie,raiden,
1mustang,babemagnet,
74123698,nadejda,truffles,rapture,douglas1,lamborghini,motocross,rjcvjc,
748596,skeeter1,dante1,angel666,telecom,carsten,pietro,bmw318,astro1,carpediem,samir,orang,helium,scirocco,fuzzball,rushmore,rebelz,hotspur,lacrimosa,chevys10,madonna1,domenico,yfnfirf,jachin,shelby1,bloke,dawgs,dunhill,atlanta1,service1,mikado,devilman,angelit,reznor,euphoria,lesbain,checkmat,browndog,phreak,blaze1,crash1,farida,mutter,luckyme,horsemen,vgirl,jediknig,asdas,cesare,allnight,rockey,starlite,truck1,passfan,close-up,samue,cazzo,wrinkles,homely,eatme1,sexpot,snapshot,dima1995,asthma,thetruth,ducky,blender,priyanka,gaucho,dutchman,sizzle,kakarot,
651550,passcode,justinbieber,
666333,elodie,sanjay,
110442,alex01,lotus1,
2300mj,lakshmi,zoomer,quake3,
12349876,teapot,
12345687,ramada,pennywis,striper,pilot1,chingon,optima,nudity,ethan1,euclid,beeline,loyola,biguns,zaq12345,bravo1,disney1,buffa,assmunch,vivid,
6661313,wellingt,aqwzsx,madala11,
9874123,sigmar,pictere,tiptop,bettyboop,dinero,tahiti,gregory1,bionic,speed1,fubar1,lexus1,denis1,hawthorn,saxman,suntzu,bernhard,dominika,camaro1,hunter12,balboa,bmw2002,seville,diablo1,vfhbyjxrf,
1234abc,carling,lockerroom,punani,darth,baron1,vaness,
1password,libido,picher,
232425,karamba,futyn007,daydream,
11001001,dragon123,friends1,bopper,rocky123,chooch,asslover,shimmer,riddler,openme,tugboat,sexy123,midori,gulnara,christo,swatch,laker,offroad,puddles,hackers,mannheim,manager1,horseman,roman1,dancer1,komputer,pictuers,nokia5130,ejaculation,lioness,
123456y,evilone,nastenka,pushok,javie,lilman,
3141592,mjolnir,toulouse,pussy2,bigworm,smoke420,fullback,extensa,dreamcast,belize,delboy,willie1,casablanca,csyjxtr,ricky1,bonghit,salvator,basher,pussylover,rosie1,
963258741,vivitron,cobra427,meonly,armageddon,myfriend,zardoz,qwedsazxc,kraken,fzappa,starfox,
333999,illmatic,capoeira,weenie,ramzes,freedom2,toasty,pupkin,shinigami,fhvfutljy,nocturne,churchil,thumbnils,tailgate,neworder,sexymama,goarmy,cerebus,michelle1,vbifyz,surfsup,earthlin,dabulls,basketbal,aligator,mojojojo,saibaba,welcome2,wifes,wdtnjr,
12345w,slasher,papabear,terran,footman,hocke,
153759,texans,tom123,sfgiants,billabong,aassdd,monolith,xxx777,l3tm31n,ticktock,newone,hellno,japanees,contortionist,admin123,scout1,alabama1,divx1,rochard,privat,radar1,bigdad,fhctybq,tortuga,citrus,avanti,fantasy1,woodstock,s12345,fireman1,embalmer,woodwork,bonzai,konyor,newstart,jigga,panorama,goats,smithy,rugrats,hotmama,daedalus,nonstop,fruitbat,lisenok,quaker,violator,
12345123,my3sons,cajun,fraggle,gayboy,oldfart,vulva,knickerless,orgasms,undertow,binky,litle,kfcnjxrf,masturbation,bunnie,alexis1,planner,transexual,sparty,leeloo,monies,fozzie,stinger1,landrove,anakonda,scoobie,yamaha1,henti,star12,rfhlbyfk,beyonce,catfood,cjytxrf,zealots,strat,fordtruc,archangel,silvi,sativa,boogers,miles1,bigjoe,tulip,petite,greentea,shitter,jonboy,voltron,morticia,evanescence,
3edc4rfv,longshot,windows1,serge,aabbcc,starbucks,sinful,drywall,prelude1,www123,camel1,homebrew,marlins,
123412,letmeinn,domini,swampy,plokij,fordf350,webcam,michele1,bolivi,
27731828,wingzero,qawsedrftg,shinji,sverige,jasper1,piper1,cummer,iiyama,gocats,amour,alfarome,jumanji,mike69,fantasti,
1monkey,w00t88,shawn1,lorien,
1a2s3d4f5g,koleso,murph,natascha,sunkist,kennwort,emine,grinder,m12345,q1q2q3q4,cheeba,money2,qazwsxedc1,diamante,prosto,pdiddy,stinky1,gabby1,luckys,franci,pornographic,moochie,gfhjdjp,samdog,empire1,comicbookdb,emili,motdepasse,iphone,braveheart,reeses,nebula,sanjose,bubba2,kickflip,arcangel,superbow,porsche911,xyzzy,nigger1,dagobert,devil1,alatam,monkey2,barbara1,
12345v,vfpfafrf,alessio,babemagn,aceman,arrakis,kavkaz,
987789,jasons,berserk,sublime1,rogue1,myspace,buckwhea,csyekz,pussy4me,vette1,boots1,boingo,arnaud,budlite,redstorm,paramore,becky1,imtheman,chango,marley1,milkyway,
666555,giveme,mahalo,lux2000,lucian,paddy,praxis,shimano,bigpenis,creeper,newproject2004,rammstei,j3qq4h7h2v,hfljcnm,lambchop,anthony2,bugman,gfhjkm12,dreamer1,stooges,cybersex,diamant,cowboyup,maximus1,sentra,
615243,goethe,manhatta,fastcar,selmer,
1213141516,yfnfitymrf,denni,chewey,yankee1,elektra,
123456789p,trousers,fishface,topspin,orwell,vorona,sodapop,motherfu,ibilltes,forall,kookie,ronald1,balrog,maximilian,mypasswo,sonny1,zzxxcc,tkfkdg,magoo,mdogg,heeled,gitara,lesbos,marajade,tippy,morozova,enter123,lesbean,pounded,asd456,fialka,scarab,sharpie,spanky1,gstring,sachin,
12345asd,princeto,hellohel,ursitesux,billows,
1234kekc,kombat,cashew,duracell,kseniya,sevenof9,kostik,arthur1,corvet07,rdfhnbhf,songoku,tiberian,needforspeed,
1qwert,dropkick,kevin123,panache,libra,a123456a,kjiflm,vfhnsirf,cntgfy,iamcool,narut,buffer,sk8ordie,urlaub,fireblade,blanked,marishka,gemini1,altec,gorillaz,chief1,revival47,ironman1,space1,ramstein,doorknob,devilmaycry,nemesis1,sosiska,pennstat,monday1,pioner,shevchenko,detectiv,evildead,blessed1,aggie,coffees,tical,scotts,bullwink,marsel,krypto,adrock,rjitxrf,asmodeus,rapunzel,theboys,hotdogs,deepthro,maxpayne,veronic,fyyeirf,otter,cheste,abbey1,thanos,bedrock,bartok,google1,xxxzzz,rodent,montecarlo,hernande,mikayla,
123456789l,bravehea,
12locked,ltymub,pegasus1,ameteur,saltydog,faisal,milfnew,momsuck,everques,ytngfhjkz,m0nkey,businessbabe,cooki,custard,
123456ab,lbvjxrf,outlaws,
753357,qwerty78,udacha,insider,chees,fuckmehard,shotokan,katya,seahorse,vtldtlm,turtle1,mike12,beebop,heathe,everton1,darknes,barnie,rbcekz,alisher,toohot,theduke,
555222,reddog1,breezy,bulldawg,monkeyman,baylee,losangel,mastermi,apollo1,aurelie,zxcvb12345,cayenne,bastet,wsxzaq,geibcnbr,yello,fucmy69,redwall,ladybird,bitchs,cccccc1,rktjgfnhf,ghjdthrf,quest1,oedipus,linus,impalass,fartman,
12345k,fokker,
159753a,optiplex,bbbbbb1,realtor,slipkno,santacru,rowdy,jelena,smeller,
3984240,ddddd1,sexyme,janet1,
3698741,eatme69,cazzone,today1,poobear,ignatius,master123,newpass1,heather2,snoopdogg,blondinka,pass12,honeydew,fuckthat,
890098890,lovem,goldrush,gecko,biker1,llama,pendejo,avalanche,fremont,snowman1,gandolf,chowder,
1a2b3c4d5e,flyguy,magadan,
1fuck,pingvin,nokia5230,ab1234,lothar,lasers,bignuts,renee1,royboy,skynet,
12340987,
1122334,dragrace,lovely1,
22334455,booter,
12345612,corvett,
123456qq,capital1,videoes,funtik,wyvern,flange,sammydog,hulkster,
13245768,not4you,vorlon,omegared,l58jkdjp!,filippo,
123mudar,samadams,petrus,chris12,charlie123,
123456789123,icetea,sunderla,adrian1,
123qweas,kazanova,aslan,monkey123,fktyeirf,goodsex,
123ab,lbtest,banaan,bluenose,
837519,asd12345,waffenss,whateve,
1a2a3a4a,trailers,vfhbirf,bhbcrf,klaatu,turk182,monsoon,beachbum,sunbeam,succes,clyde1,viking1,rawhide,bubblegum,princ,mackenzi,hershey1,
222555,dima55,niggaz,manatee,aquila,anechka,pamel,bugsbunn,lovel,sestra,newport1,althor,hornyman,wakeup,zzz111,phishy,cerber,torrent,thething,solnishko,babel,buckeye1,peanu,ethernet,uncencored,baraka,
665544,chris2,rb26dett,willy1,choppers,texaco,biggirl,
123456b,anna2614,sukebe,caralho,callofduty,rt6ytere,jesus7,angel12,
1money,timelord,allblack,pavlova,romanov,tequiero,yitbos,lookup,bulls23,snowflake,dickweed,barks,lever,irisha,firestar,fred1234,ghjnjnbg,danman,gatito,betty1,milhouse,kbctyjr,masterbaiting,delsol,papit,doggys,
123698741,bdfyjdf,invictus,bloods,kayla1,yourmama,apple2,angelok,bigboy1,pontiac1,verygood,yeshua,twins2,porn4me,
141516,rasta69,james2,bosshog,candys,adventur,stripe,djkjlz,dokken,austin316,skins,hogwarts,vbhevbh,navigato,desperado,xxx666,cneltyn,vasiliy,hazmat,daytek,eightbal,fred1,four20,
74227422,fabia,aerosmith,manue,wingchun,boohoo,hombre,sanity72,goatboy,fuckm,partizan,avrora,utahjazz,submarin,pussyeat,heinlein,control1,costaric,smarty,chuan,triplets,snowy,snafu,teacher1,vangogh,vandal,evergree,cochise,qwerty99,pyramid1,saab900,sniffer,qaz741,lebron23,mark123,wolvie,blackbelt,yoshi,feeder,janeway,nutella,fuking,asscock,deepak,poppie,bigshow,housewife,grils,tonto,cynthia1,temptress,irakli,belle1,russell1,manders,frank123,seabass,gforce,songbird,zippy1,naught,brenda1,chewy1,hotshit,topaz,
43046721,girfriend,marinka,jakester,thatsme,planeta,falstaff,patrizia,reborn,riptide,cherry1,shuan,nogard,chino,oasis1,qwaszx12,goodlife,davis1,
1911a1,harrys,shitfuck,
12345678900,russian7,
007700,bulls1,porshe,danil,dolphi,river1,sabaka,gobigred,deborah1,volkswagen,miamo,alkaline,muffdive,
1letmein,fkbyrf,goodguy,hallo1,nirvan,ozzie,cannonda,cvbhyjdf,marmite,germany1,joeblow,radio1,love11,raindrop,
159852,jacko,newday,fathead,elvis123,caspe,citibank,sports1,deuce,boxter,fakepass,golfman,snowdog,birthday4,nonmembe,niklas,parsifal,krasota,theshit,
1235813,maganda,nikita1,omicron,cassie1,columbo,buick,sigma1,thistle,bassin,rickster,apteka,sienna,skulls,miamor,coolgirl,gravis,
1qazxc,virgini,hunter2,akasha,batma,motorcyc,bambino,tenerife,fordf250,zhuan,iloveporn,markiza,hotbabes,becool,fynjybyf,wapapapa,forme,mamont,pizda,dragonz,sharon1,scrooge,mrbill,pfloyd,leeroy,natedog,ishmael,
777111,tecumseh,carajo,nfy.irf,
0000000000o,blackcock,fedorov,antigone,feanor,novikova,bobert,peregrin,spartan117,pumkin,rayman,manuals,tooltime,
555333,bonethug,marina1,bonnie1,tonyhawk,laracroft,mahalkita,
18273645,terriers,gamer,hoser,littlema,molotok,glennwei,lemon1,caboose,tater,
12345654321,brians,fritz1,mistral,jigsaw,fuckshit,hornyguy,southside,edthom,antonio1,bobmarle,pitures,ilikesex,crafty,nexus,boarder,fulcrum,astonvil,yanks1,yngwie,account1,zooropa,hotlegs,sammi,gumbo,rover1,perkele,maurolarastefy,lampard,
357753,barracud,dmband,abcxyz,pathfinder,
335577,yuliya,micky,jayman,asdfg12345,
1596321,halcyon,rerfhtre,feniks,zaxscd,gotyoass,jaycee,samson1,jamesb,vibrate,grandpri,camino,colossus,davidb,mamo4ka,nicky1,homer123,pinguin,watermelon,shadow01,lasttime,glider,
823762,helen1,pyramids,tulane,osama,rostov,john12,scoote,bhbyrf,gohan,galeries,joyful,bigpussy,tonka,mowgli,astalavista,zzz123,leafs,dalejr8,unicorn1,
777000,primal,bigmama,okmijn,killzone,qaz12345,snookie,zxcvvcxz,davidc,epson,rockman,ceaser,beanbag,katten,
3151020,duckhunt,segreto,matros,ragnar,
699669,sexsexse,
123123z,fuckyeah,bigbutts,gbcmrf,element1,marketin,saratov,elbereth,blaster1,yamahar6,grime,masha,juneau,
1230123,pappy,lindsay1,mooner,seattle1,katzen,lucent,polly1,lagwagon,pixie,misiaczek,
666666a,smokedog,lakers24,eyeball,ironhors,ametuer,volkodav,vepsrf,kimmy,gumby1,poi098,ovation,
1q2w3,drinker,penetrating,summertime,
1dallas,prima,modles,takamine,hardwork,macintosh,tahoe,passthie,chiks,sundown,flowers1,boromir,music123,phaedrus,albert1,joung,malakas,gulliver,parker1,balder,sonne,jessie1,domainlock2005,express1,vfkbyf,youandme,raketa,koala,dhjnvytyjub,nhfrnjh,testibil,ybrbnjc,
987654321q,axeman,pintail,pokemon123,dogggg,shandy,thesaint,
11122233,x72jhhu3z,theclash,raptors,zappa1,djdjxrf,hell666,friday1,vivaldi,pluto1,lance1,guesswho,jeadmi,corgan,skillz,skippy1,mango1,gymnastic,satori,
362514,theedge,cxfcnkbdfz,sparkey,deicide,bagels,lololol,lemmings,r4e3w2q1,silve,staind,schnuffi,dazzle,basebal1,leroy1,bilbo1,luckie,qwerty2,goodfell,hermione,peaceout,davidoff,yesterda,killah,flippy,chrisb,zelda1,headless,muttley,fuckof,tittys,catdaddy,photog,beeker,reaver,ram1500,yorktown,bolero,tryagain,arman,chicco,learjet,alexei,jenna1,go2hell,
12s3t4p55,momsanaladventure,mustang9,protoss,rooter,ginola,dingo1,mojave,erica1,
1qazse4,marvin1,redwolf,sunbird,dangerou,maciek,girsl,hawks1,packard1,excellen,dashka,soleda,toonces,acetate,nacked,jbond007,alligator,debbie1,wellhung,monkeyma,supers,rigger,larsson,vaseline,rjnzhf,maripos,
123456asd,cbr600rr,doggydog,cronic,jason123,trekker,flipmode,druid,sonyvaio,dodges,mayfair,mystuff,fun4me,samanta,sofiya,magics,
1ranger,arcane,sixtynin,
222444,omerta,luscious,gbyudby,bobcats,envision,chance1,seaweed,holdem,tomate,mensch,slicer,acura1,goochi,qweewq,punter,repoman,tomboy,never1,cortina,gomets,
147896321,
369852147,dogma,bhjxrf,loglatin,eragon,strato,gazelle,growler,
885522,klaudia,payton34,fuckem,butchie,scorpi,lugano,
123456789k,nichola,chipper1,spide,uhbujhbq,rsalinas,vfylfhby,longhorns,bugatti,everquest,!qaz2wsx,blackass,
999111,snakeman,p455w0rd,fanatic,family1,pfqxbr,
777vlad,mysecret,marat,phoenix2,october1,genghis,panties1,cooker,citron,ace123,
1234569,gramps,blackcoc,kodiak1,hickory,ivanhoe,blackboy,escher,sincity,beaks,meandyou,spaniel,canon1,timmy1,lancaste,polaroid,edinburg,fuckedup,hotman,cueball,golfclub,gopack,bookcase,worldcup,dkflbvbhjdbx,twostep,
17171717aa,letsplay,zolushka,stella1,pfkegf,kingtut,
67camaro,barracuda,wiggles,gjhjkm,prancer,patata,kjifhf,theman1,romanova,sexyass,copper1,dobber,sokolov,pomidor,algernon,cadman,amoremio,william2,silly1,bobbys,hercule,hd764nw5d7e1vb1,defcon,deutschland,robinhood,alfalfa,machoman,lesbens,pandora1,easypay,tomservo,nadezhda,goonies,saab9000,jordyn,f15eagle,dbrecz,
12qwerty,greatsex,thrawn,blunted,baywatch,doggystyle,loloxx,chevy2,january1,kodak,bushel,
78963214,ub6ib9,zz8807zpl,briefs,hawker,
224488,first1,bonzo,brent1,erasure,
69213124,sidewind,soccer13,
622521,mentos,kolibri,onepiece,united1,ponyboy,keksa12,wayer,mypussy,andrej,mischa,mille,bruno123,garter,bigpun,talgat,familia,jazzy1,mustang8,newjob,
747400,bobber,blackbel,hatteras,ginge,asdfjkl;,camelot1,blue44,rebbyt34,ebony1,vegas123,myboys,aleksander,ijrjkflrf,lopata,pilsner,lotus123,m0nk3y,andreev,freiheit,balls1,drjynfrnt,mazda1,waterpolo,shibumi,
852963,
123bbb,cezer121,blondie1,volkova,rattler,kleenex,ben123,sanane,happydog,satellit,qazplm,qazwsxedcrfvtgb,meowmix,badguy,facefuck,spice1,blondy,major1,
25000,anna123,
654321a,sober1,deathrow,patterso,china1,naruto1,hawkeye1,waldo1,butchy,crayon,
5tgb6yhn,klopik,crocodil,mothra,imhorny,pookie1,splatter,slippy,lizard1,router,buratino,yahweh,
123698,dragon11,
123qwe456,peepers,trucker1,ganjaman,
1hxboqg2,cheyanne,storys,sebastie,zztop,maddison,
4rfv3edc,darthvader,jeffro,iloveit,victor1,hotty,delphin,lifeisgood,gooseman,shifty,insertions,dude123,abrupt,
123masha,boogaloo,chronos,stamford,pimpster,kthjxrf,getmein,amidala,flubber,fettish,grapeape,dantes,oralsex,jack1,foxcg33,winchest,francis1,getin,archon,cliffy,blueman,
1basebal,sport1,emmitt22,porn123,bignasty,morga,
123hfjdk147,ferrar,juanito,fabiol,caseydog,steveo,peternorth,paroll,kimchi,bootleg,gaijin,secre,acacia,eatme2,amarillo,monkey11,rfhfgep,tylers,a1a2a3a4a5,sweetass,blower,rodina,babushka,camilo,cimbom,tiffan,vfnbkmlf,ohbaby,gotigers,lindsey1,dragon13,romulus,qazxsw12,zxcvbn1,dropdead,hitman47,snuggle,eleven11,bloopers,
357mag,avangard,bmw320,ginscoot,dshade,masterkey,voodoo1,rootedit,caramba,leahcim,hannover,
8phrowz622,tim123,cassius,
000000a,angelito,zzzzz1,badkarma,star1,malaga,glenwood,footlove,golf1,summer12,helpme1,fastcars,titan1,police1,polinka,k.jdm,marusya,augusto,shiraz,pantyhose,donald1,blaise,arabella,brigada,c3por2d2,peter01,marco1,hellow,dillweed,uzumymw,geraldin,loveyou2,toyota1,
088011,gophers,indy500,slainte,
5hsu75kpot,teejay,renat,racoon,sabrin,angie1,shiznit,harpua,sexyred,latex,tucker1,alexandru,wahoo,teamwork,deepblue,goodison,rundmc,r2d2c3p0,puppys,samba,ayrton,boobed,
999777,topsecre,blowme1,
123321z,loudog,random1,pantie,drevil,mandolin,
121212q,hottub,brother1,failsafe,spade1,matvey,open1234,carmen1,priscill,schatzi,kajak,gooddog,trojans1,gordon1,kayak,calamity,argent,ufhvjybz,seviyi,penfold,assface,dildos,hawkwind,crowbar,yanks,ruffles,rastus,luv2epus,open123,aquafina,dawns,jared1,teufel,
12345c,vwgolf,pepsi123,amores,passwerd,
01478520,boliva,smutty,headshot,password3,davidd,zydfhm,gbgbcmrf,pornpass,insertion,ceckbr,test2,car123,checkit,dbnfkbq,niggas,nyyankee,muskrat,nbuhtyjr,gunner1,ocean1,fabienne,chrissy1,wendys,loveme89,batgirl,cerveza,igorek,steel1,ragman,boris123,novifarm,sexy12,qwerty777,mike01,giveitup,
123456abc,fuckall,crevice,hackerz,gspot,eight8,assassins,texass,swallows,
123458,baldur,moonshine,labatt,modem,sydney1,voland,dbnfkz,hotchick,jacker,princessa,dawgs1,holiday1,booper,reliant,miranda1,jamaica1,andre1,badnaamhere,barnaby,tiger7,david12,margaux,corsica,
085tzzqi,universi,thewall,nevermor,martin6,qwerty77,cipher,apples1,
0102030405,seraphim,black123,imzadi,gandon,ducati99,
1shadow,dkflbvbhjdyf,
44magnum,bigbad,feedme,samantha1,ultraman,redneck1,jackdog,usmc0311,fresh1,monique1,tigre,alphaman,cool1,greyhoun,indycar,crunchy,
55chevy,carefree,willow1,
063dyjuy,xrated,assclown,federica,hilfiger,trivia,bronco1,mamita,
100200300,simcity,lexingky,akatsuki,retsam,johndeere,abudfv,raster,elgato,businka,satanas,mattingl,redwing1,shamil,patate,mannn,moonstar,evil666,b123456,bowl300,tanechka,
34523452,carthage,babygir,santino,bondarenko,jesuss,chico1,numlock,shyguy,sound1,kirby1,needit,mostwanted,
427900,funky1,steve123,passions,anduril,kermit1,prospero,lusty,barakuda,dream1,broodwar,porky,christy1,mahal,yyyyyy1,allan1,
1sexy,flintsto,capri,cumeater,heretic,robert2,hippos,blindax,marykay,collecti,kasumi,
1qaz!qaz,
112233q,
123258,chemistr,coolboy,
0o9i8u,kabuki,righton,tigress,nessie,sergej,andrew12,yfafyz,ytrhjvfyn,angel7,victo,mobbdeep,lemming,transfor,
1725782,myhouse,aeynbr,muskie,leno4ka,westham1,cvbhyjd,daffodil,pussylicker,pamela1,stuffer,warehous,tinker1,
2w3e4r,pluton,louise1,polarbea,
253634,prime1,anatoliy,januar,wysiwyg,cobraya,ralphy,whaler,xterra,cableguy,
112233a,porn69,jamesd,aqualung,jimmy123,lumpy,luckyman,kingsize,golfing1,alpha7,leeds1,marigold,lol1234,teabag,alex11,
10sne1,saopaulo,shanny,roland1,basser,
3216732167,carol1,year2005,morozov,saturn1,joseluis,bushed,redrock,memnoch,lalaland,indiana1,lovegod,gulnaz,buffalos,loveyou1,anteater,pattaya,jaydee,redshift,bartek,summerti,coffee1,ricochet,incest,schastie,rakkaus,h2opolo,suikoden,perro,dance1,loveme1,whoopass,vladvlad,boober,flyers1,alessia,gfcgjhn,pipers,papaya,gunsling,coolone,blackie1,gonads,gfhjkzytn,foxhound,qwert12,gangrel,ghjvtntq,bluedevi,mywife,summer01,hangman,licorice,patter,vfr750,thorsten,
515253,ninguna,dakine,strange1,mexic,vergeten,
12345432,
8phrowz624,stampede,floyd1,sailfish,raziel,ananda,giacomo,freeme,crfprf,
74185296,allstars,master01,solrac,gfnhbjn,bayliner,bmw525,
3465xxx,catter,single1,michael3,pentium4,nitrox,mapet123456,halibut,killroy,xxxxx1,phillip1,poopsie,arsenalfc,buffys,kosova,all4me,
32165498,arslan,opensesame,brutis,charles2,pochta,nadegda,backspac,mustang0,invis,gogeta,
654321q,adam25,niceday,truckin,gfdkbr,biceps,sceptre,bigdave,lauras,user345,sandys,shabba,ratdog,cristiano,natha,march13,gumball,getsdown,wasdwasd,redhead1,dddddd1,longlegs,
13572468,starsky,ducksoup,bunnys,omsairam,whoami,fred123,danmark,flapper,swanky,lakings,yfhenj,asterios,rainier,searcher,dapper,ltdjxrf,horsey,seahawk,shroom,tkfkdgo,aquaman,tashkent,number9,messi10,
1asshole,milenium,illumina,vegita,jodeci,buster01,bareback,goldfinger,fire1,
33rjhjds,sabian,thinkpad,smooth1,sully,bonghits,sushi1,magnavox,colombi,voiture,limpone,oldone,aruba,rooster1,zhenya,nomar5,touchdow,limpbizkit,rhfcfdxbr,baphomet,afrodita,bball1,madiso,ladles,lovefeet,matthew2,theworld,thunderbird,dolly1,
123rrr,forklift,alfons,berkut,speedy1,saphire,oilman,creatine,pussylov,bastard1,
456258,wicked1,filimon,skyline1,fucing,yfnfkbz,hot123,abdulla,nippon,nolimits,billiard,booty1,buttplug,westlife,coolbean,aloha1,lopas,asasin,
1212121,october2,whodat,good4u,d12345,kostas,ilya1992,regal,pioneer1,volodya,focus1,bastos,nbvjif,fenix,anita1,vadimka,nickle,jesusc,
123321456,teste,christ1,essendon,evgenii,celticfc,adam1,forumwp,lovesme,
26exkp,chillout,burly,thelast1,marcus1,metalgear,test11,ronaldo7,socrate,world1,franki,mommie,vicecity,postov1000,charlie3,oldschool,
333221,legoland,antoshka,counterstrike,buggy,mustang3,
123454,qwertzui,toons,chesty,bigtoe,tigger12,limpopo,rerehepf,diddle,nokia3250,solidsnake,conan1,rockroll,
963369,titanic1,qwezxc,cloggy,prashant,katharin,maxfli,takashi,cumonme,michael9,mymother,pennstate,khalid,
48151623,fightclub,showboat,mateusz,elrond,teenie,arrow1,mammamia,dustydog,dominator,erasmus,zxcvb1,
1a2a3a,bones1,dennis1,galaxie,pleaseme,whatever1,junkyard,galadriel,charlies,
2wsxzaq1,crimson1,behemoth,teres,master11,fairway,shady1,pass99,
1batman,joshua12,baraban,apelsin,mousepad,melon,twodogs,
123321qwe,metalica,ryjgrf,pipiska,rerfhfxf,lugnut,cretin,iloveu2,powerade,aaaaaaa1,omanko,kovalenko,isabe,chobits,
151nxjmt,shadow11,zcxfcnkbdf,gy3yt2rgls,vfhbyrf,
159753123,bladerunner,goodone,wonton,doodie,
333666999,fuckyou123,kitty123,chisox,orlando1,skateboa,red12345,destroye,snoogans,satan1,juancarlo,goheels,jetson,scottt,fuckup,aleksa,gfhfljrc,passfind,oscar123,derrick1,hateme,viper123,pieman,audi100,tuffy,andover,shooter1,
10000,makarov,grant1,nighthaw,
13576479,browneye,batigol,nfvfhf,chocolate1,
7hrdnw23,petter,bantam,morlii,jediknight,brenden,argonaut,goodstuf,wisconsi,
315920,abigail1,dirtbag,splurge,k123456,lucky777,valdepen,gsxr600,
322223,ghjnjrjk,zaq1xsw2cde3,schwanz,walter1,letmein22,nomads,
124356,codeblue,nokian70,fucke,footbal1,agyvorc,aztecs,passw0r,smuggles,femmes,ballgag,krasnodar,tamuna,schule,sixtynine,empires,erfolg,dvader,ladygaga,elite1,venezuel,nitrous,kochamcie,olivia1,trustn01,arioch,sting1,
131415,tristar,
555000,maroon,
135799,marsik,
555556,fomoco,natalka,cwoui,tartan,davecole,nosferat,hotsauce,dmitry,horus,dimasik,skazka,boss302,bluebear,vesper,ultras,tarantul,asd123asd,azteca,theflash,
8ball,
1footbal,titlover,lucas123,number6,sampson1,
789852,party1,dragon99,adonai,carwash,metropol,psychnau,vthctltc,hounds,firework,blink18,
145632,wildcat1,satchel,rice80,ghtktcnm,sailor1,cubano,anderso,rocks1,mike11,famili,dfghjc,besiktas,roygbiv,nikko,bethan,minotaur,rakesh,orange12,hfleuf,jackel,myangel,favorite7,
1478520,asssss,agnieszka,haley1,raisin,htubyf,
1buster,cfiekz,derevo,
1a2a3a4a5a,baltika,raffles,scruffy1,clitlick,louis1,buddha1,fy.nrf,walker1,makoto,shadow2,redbeard,vfvfvskfhfve,mycock,sandydog,lineman,network1,favorite8,longdick,mustangg,mavericks,indica,
1killer,cisco1,angelofwar,blue69,brianna1,bubbaa,slayer666,level42,baldrick,brutus1,lowdown,haribo,lovesexy,
500000,thissuck,picker,stephy,
1fuckme,characte,telecast,
1bigdog,repytwjdf,thematrix,hammerhe,chucha,ganesha,gunsmoke,georgi,sheltie,
1harley,knulla,sallas,westie,dragon7,conker,crappie,margosha,lisboa,
3e2w1q,shrike,grifter,ghjcnjghjcnj,asdfg1,mnbvcxz1,myszka,posture,boggie,rocketman,flhtyfkby,twiztid,vostok,pi314159,force1,televizor,gtkmvtym,samhain,imcool,jadzia,dreamers,strannik,k2trix,steelhea,nikitin,commodor,brian123,chocobo,whopper,ibilljpf,megafon,ararat,thomas12,ghbrjkbcn,q1234567890,hibernia,kings1,jim123,redfive,
68camaro,iawgk2,xavier1,
1234567u,d123456,ndirish,airborn,halfmoon,fluffy1,ranchero,sneaker,soccer2,passion1,cowman,birthday1,johnn,razzle,glock17,wsxqaz,nubian,lucky2,jelly1,henderso,eric1,
123123e,boscoe01,fuck0ff,simpson1,sassie,rjyjgkz,nascar3,watashi,loredana,janus,wilso,conman,david2,mothe,iloveher,snikers,davidj,fkmnthyfnbdf,mettss,ratfink,
123456h,lostsoul,sweet16,brabus,wobble,petra1,fuckfest,otters,sable1,svetka,spartacu,bigstick,milashka,
1lover,pasport,champagn,papichul,hrvatska,hondacivic,kevins,tacit,moneybag,gohogs,rasta1,
246813579,ytyfdbcnm,gubber,darkmoon,vitaliy,
233223,playboys,tristan1,joyce1,oriflame,mugwump,access2,autocad,thematri,qweqwe123,lolwut,ibill01,multisyn,
1233211,pelikan,rob123,chacal,
1234432,griffon,pooch,dagestan,geisha,satriani,anjali,rocketma,gixxer,pendrago,vincen,hellokit,killyou,ruger,doodah,bumblebe,badlands,galactic,emachines,foghorn,jackso,jerem,avgust,frontera,
123369,daisymae,hornyboy,welcome123,tigger01,diabl,angel13,interex,iwantsex,rockydog,kukolka,sawdust,online1,
3234412,bigpapa,jewboy,
3263827,dave123,riches,
333222,tony1,toggle,farter,
124816,tities,balle,brasilia,southsid,micke,ghbdtn12,patit,ctdfcnjgjkm,olds442,zzzzzz1,nelso,gremlins,gypsy1,carter1,slut69,farcry,
7415963,michael8,birdie1,charl,
123456789abc,
100001,aztec,sinjin,bigpimpi,closeup,atlas1,nvidia,doggone,classic1,manana,malcolm1,rfkbyf,hotbabe,rajesh,dimebag,ganjubas,rodion,jagr68,seren,syrinx,funnyman,karapuz,
123456789n,bloomin,admin18533362,biggdogg,ocarina,poopy1,hellome,internet1,booties,blowjobs,matt1,donkey1,swede,
1jennife,evgeniya,lfhbyf,coach1,
444777,green12,patryk,pinewood,justin12,
271828,
89600506779,notredame,tuborg,lemond,sk8ter,million1,wowser,pablo1,st0n3,jeeves,funhouse,hiroshi,gobucs,angeleye,bereza,winter12,catalin,qazedc,andros,ramazan,vampyre,sweethea,imperium,murat,jamest,flossy,sandeep,morgen,salamandra,bigdogg,stroller,njdevils,nutsack,vittorio,%%passwo,playful,rjyatnrf,tookie,ubnfhf,michi,
777444,shadow13,devils1,radiance,toshiba1,beluga,amormi,dandfa,trust1,killemall,smallville,polgara,billyb,landscap,steves,exploite,zamboni,damage11,dzxtckfd,trader12,pokey1,kobe08,damager,egorov,dragon88,ckfdbr,lisa69,blade2,audis4,nelson1,nibbles,
23176djivanfros,mutabor,artofwar,matvei,metal666,hrfzlz,schwinn,poohbea,seven77,thinker,
123456789qwerty,sobriety,jakers,karamelka,vbkfyf,volodin,iddqd,dale03,roberto1,lizaveta,qqqqqq1,cathy1,
08154711,davidm,quixote,bluenote,tazdevil,katrina1,bigfoot1,bublik,marma,olechka,fatpussy,marduk,arina,nonrev67,qqqq1111,camill,wtpfhm,truffle,fairview,mashina,voltaire,qazxswedcvfr,dickface,grassy,lapdance,bosstone,crazy8,yackwin,mobil,danielit,mounta1n,player69,bluegill,mewtwo,reverb,cnthdf,pablito,a123321,elena1,warcraft1,orland,ilovemyself,rfntyjr,joyride,schoo,dthjxrf,thetachi,goodtimes,blacksun,humpty,chewbacca,guyute,
123xyz,lexicon,blue45,qwe789,galatasaray,centrino,hendrix1,deimos,saturn5,craig1,vlad1996,sarah123,tupelo,ljrnjh,hotwife,bingos,
1231231,nicholas1,flamer,pusher,
1233210,heart1,hun999,jiggy,giddyup,oktober,
123456zxc,budda,galahad,glamur,samwise,oneton,bugsbunny,dominic1,scooby2,freetime,internat,
159753852,sc00ter,wantit,mazinger,inflames,laracrof,greedo,
014789,godofwar,repytwjd,water123,fishnet,venus1,wallace1,tenpin,paula1,
1475963,mania,novikov,qwertyasdfgh,goldmine,homies,
777888999,
8balls,holeinon,paper1,samael,
013579,mansur,nikit,ak1234,blueline,polska1,hotcock,laredo,windstar,vbkbwbz,raider1,newworld,lfybkrf,catfish1,shorty1,piranha,treacle,royale,
2234562,smurfs,minion,cadence,flapjack,
123456p,sydne,
135531,robinhoo,nasdaq,decatur,cyberonline,newage,gemstone,jabba,touchme,hooch,pigdog,indahous,fonzie,zebra1,juggle,patrick2,nihongo,hitomi,oldnavy,qwerfdsa,ukraina,shakti,allure,kingrich,diane1,canad,piramide,hottie1,clarion,college1,
5641110,connect1,therion,clubber,velcro,dave1,astra1,
13579-,astroboy,skittle,isgreat,photoes,cvzefh1gkc,
001100,
2cool4u,
7555545,ginger12,
2wsxcde3,camaro69,invader,domenow,asd1234,colgate,qwertasdfg,jack123,pass01,maxman,bronte,whkzyc,peter123,bogie,yecgaa,abc321,
1qay2wsx,enfield,camaroz2,trashman,bonefish,system32,azsxdcfvgb,peterose,iwantyou,dick69,temp1234,blastoff,capa200,connie1,blazin,
12233445,sexybaby,
123456j,brentfor,pheasant,hommer,jerryg,thunders,august1,lager,kapusta,boobs1,nokia5300,rocco1,xytfu7,stars1,tugger,
123sas,blingbling,
1bubba,
0wnsyo0,
1george,baile,richard2,habana,
1diamond,sensatio,
1golfer,maverick1,
1chris,clinton1,michael7,dragons1,sunrise1,pissant,fatim,mopar1,levani,rostik,pizzapie,
987412365,oceans11,
748159263,cum4me,palmetto,
4r3e2w1q,paige1,muncher,arsehole,kratos,gaffer,banderas,billys,prakash,crabby,bungie,silver12,caddis,spawn1,xboxlive,sylvania,littlebi,
524645,futura,valdemar,isacs155,prettygirl,big123,
555444,slimer,chicke,newstyle,skypilot,sailormoon,fatluvr69,jetaime,sitruc,jesuschrist,sameer,bear12,hellion,yendor,country1,etnies,conejo,jedimast,darkknight,toobad,yxcvbn,snooks,porn4life,calvary,alfaromeo,ghostman,yannick,fnkfynblf,vatoloco,homebase,
5550666,barret,
1111111111zz,odysseus,edwardss,favre4,jerrys,crybaby,xsw21qaz,firestor,spanks,indians1,squish,kingair,babycakes,haters,sarahs,
212223,teddyb,xfactor,cumload,rhapsody,death123,three3,raccoon,thomas2,slayer66,
1q2q3q4q5q,thebes,mysterio,thirdeye,orkiox.,nodoubt,bugsy,schweiz,dima1996,angels1,darkwing,jeronimo,moonpie,ronaldo9,peaches2,mack10,manish,denise1,fellowes,carioca,taylor12,epaulson,makemoney,oc247ngucz,kochanie,
3edcvfr4,vulture,
1qw23e,
1234567z,munchie,picard1,xthtgfirf,sportste,psycho1,tahoe1,creativ,perils,slurred,hermit,scoob,diesel1,cards1,wipeout,weeble,integra1,out3xf,powerpc,chrism,kalle,ariadne,kailua,phatty,dexter1,fordman,bungalow,paul123,compa,train1,thejoker,jys6wz,pussyeater,eatmee,sludge,dominus,denisa,tagheuer,yxcvbnm,bill1,ghfdlf,
300zx,nikita123,carcass,semaj,ramone,muenchen,animal1,greeny,annemari,dbrf134,jeepcj7,mollys,garten,sashok,ironmaid,coyotes,astoria,george12,westcoast,primetim,
123456o,panchito,rafae,japan1,framer,auralo,tooshort,egorova,qwerty22,callme,medicina,warhawk,w1w2w3w4,cristia,merli,alex22,kawaii,chatte,wargames,utvols,muaddib,trinket,andreas1,jjjjj1,cleric,scooters,cuntlick,gggggg1,slipknot1,
235711,handcuff,stussy,guess1,leiceste,ppppp1,passe,lovegun,chevyman,hugecock,driver1,buttsex,psychnaut1,cyber1,black2,alpha12,melbourn,man123,metalman,yjdsqujl,blondi,bungee,freak1,stomper,caitlin1,nikitina,flyaway,prikol,begood,desperad,aurelius,john1234,whosyourdaddy,slimed123,bretagne,den123,hotwheel,king123,roodypoo,izzicam,save13tx,warpten,nokia3310,samolet,ready1,coopers,scott123,bonito,
1aaaaa,yomomma,dawg1,rache,itworks,asecret,fencer,
451236,polka,olivetti,sysadmin,zepplin,sanjuan,
479373,lickem,hondacrx,pulamea,future1,naked1,sexyguy,w4g8at,lollol1,declan,runner1,rumple,daddy123,
4snz9g,grandprix,calcio,whatthefuck,nagrom,asslick,pennst,negrit,squiggy,
1223334444,police22,giovann,toronto1,tweet,yardbird,seagate,truckers,
554455,scimitar,pescator,slydog,gaysex,dogfish,fuck777,
12332112,qazxswed,morkovka,daniela1,imback,horny69,
789123456,
123456789w,jimmy2,bagger,ilove69,nikolaus,atdhfkm,rebirth,
1111aaaa,pervasive,gjgeufq,dte4uw,gfhnbpfy,skeletor,whitney1,walkman,delorean,disco1,
555888,as1234,ishikawa,fuck12,reaper1,dmitrii,bigshot,morrisse,purgen,qwer4321,itachi,willys,
123123qwe,kisska,roma123,trafford,sk84life,
326159487,pedros,idiom,plover,bebop,
159875321,jailbird,arrowhea,qwaszx123,zaxscdvf,catlover,bakers,
13579246,bones69,vermont1,helloyou,simeon,chevyz71,funguy,stargaze,parolparol,steph1,bubby,apathy,poppet,laxman,kelly123,goodnews,
741236,boner1,gaetano,astonvilla,virtua,luckyboy,rocheste,hello2u,elohim,trigger1,cstrike,pepsicola,miroslav,
96385274,fistfuck,cheval,magyar,svetlanka,lbfyjxrf,mamedov,
123123123q,ronaldo1,scotty1,
1nicole,pittbull,fredd,bbbbb1,dagwood,gfhkfvtyn,ghblehrb,logan5,
1jordan,sexbomb,omega2,montauk,
258741,dtythf,gibbon,winamp,thebomb,millerli,
852654,gemin,baldy,halflife2,dragon22,mulberry,morrigan,hotel6,zorglub,surfin,
951159,excell,arhangel,emachine,moses1,
968574,reklama,bulldog2,cuties,barca,twingo,saber,elite11,redtruck,casablan,ashish,moneyy,pepper12,cnhtktw,rjcnbr,arschloch,phenix,cachorro,sunita,madoka,joselui,adams1,mymoney,hemicuda,fyutkjr,jake12,chicas,eeeee1,sonnyboy,smarties,birdy,kitten1,cnfcbr,island1,kurosaki,taekwond,konfetka,bennett1,omega3,jackson2,fresca,minako,octavian,kban667,feyenoord,muaythai,jakedog,fktrcfylhjdyf,
1357911q,phuket,sexslave,fktrcfylhjdbx,asdfjk,
89015173454,qwerty00,kindbud,eltoro,sex6969,nyknicks,
12344321q,caballo,evenflow,hoddle,love22,metro1,mahalko,lawdog,tightass,manitou,buckie,whiskey1,anton123,
335533,password4,primo,ramair,timbo,brayden,stewie,pedro1,yorkshir,ganster,hellothe,tippy1,direwolf,genesi,rodrig,enkeli,vaz21099,sorcerer,winky,oneshot,boggle,serebro,badger1,japanes,comicbook,kamehame,alcat,denis123,echo45,sexboy,gr8ful,hondo,voetbal,blue33,
2112rush,geneviev,danni1,moosey,polkmn,matthew7,ironhead,hot2trot,ashley12,sweeper,imogen,blue21,retep,stealth1,guitarra,bernard1,tatian,frankfur,vfnhbwf,slacking,haha123,
963741,asdasdas,katenok,airforce1,
123456789qaz,shotgun1,
12qwasz,reggie1,sharo,
976431,pacifica,dhip6a,neptun,kardon,spooky1,beaut,
555555a,toosweet,tiedup,
11121314,startac,lover69,rediska,pirata,vfhrbp,
1234qwerty,energize,hansolo1,playbo,larry123,oemdlg,cnjvfnjkju,a123123,alexan,gohawks,antonius,fcbayern,mambo,yummy1,kremlin,ellen1,tremere,vfiekz,bellevue,charlie9,izabella,malishka,fermat,rotterda,dawggy,becket,chasey,kramer1,
21125150,lolit,cabrio,schlong,arisha,verity,
3some,favorit,maricon,travelle,hotpants,red1234,garrett1,home123,knarf,seven777,figment,asdewq,canseco,good2go,warhol,thomas01,pionee,al9agd,panacea,chevy454,brazzers,oriole,azerty123,finalfan,patricio,northsta,rebelde,bulldo,stallone,boogie1,
7uftyx,cfhfnjd,compusa,cornholi,config,deere,hoopster,sepultura,grasshop,babygurl,lesbo,diceman,proverbs,reddragon,nurbek,tigerwoo,superdup,buzzsaw,kakaroto,golgo13,edwar,
123qaz123,butter1,sssss1,texas2,respekt,ou812ic,
123456qaz,
55555a,doctor1,mcgwire,maria123,aol999,cinders,aa1234,joness,ghbrjkmyj,makemone,sammyboy,
567765,
380zliki,theraven,testme,mylene,elvira26,indiglo,tiramisu,shannara,baby1,
123666,gfhreh,papercut,johnmish,orange8,bogey1,mustang7,bagpipes,dimarik,vsijyjr,
4637324,ravage,cogito,seven11,natashka,warzone,hr3ytm,
4free,bigdee,
000006,
243462536,bigboi,
123333,trouts,sandy123,szevasz,monica2,guderian,newlife1,ratchet,r12345,razorbac,
12345i,piazza31,oddjob,beauty1,fffff1,anklet,nodrog,pepit,olivi,puravida,robert12,transam1,portman,bubbadog,steelers1,wilson1,eightball,mexico1,superboy,
4rfv5tgb,mzepab,samurai1,fuckslut,colleen1,girdle,vfrcbvec,q1w2e3r4t,soldier1,
19844891,alyssa1,a12345a,fidelis,skelter,nolove,mickeymouse,frehley,password69,watermel,aliska,soccer15,
12345e,ladybug1,abulafia,adagio,tigerlil,takehana,hecate,bootneck,junfan,arigato,wonkette,bobby123,trustnoone,phantasm,
132465798,brianjo,w12345,t34vfrc1991,deadeye,
1robert,
1daddy,adida,check1,grimlock,muffi,airwalk,prizrak,onclick,longbeac,ernie1,eadgbe,moore1,geniu,shadow123,bugaga,jonathan1,cjrjkjdf,orlova,buldog,talon1,westport,aenima,
541233432442,barsuk,chicago2,kellys,hellbent,toughguy,iskander,skoal,whatisit,jake123,scooter2,fgjrfkbgcbc,ghandi,love13,adelphia,vjhrjdrf,adrenali,niunia,jemoeder,rainbo,all4u8,anime1,freedom7,seraph,
789321,tommys,antman,firetruc,neogeo,natas,bmwm3,froggy1,paul1,mamit,bayview,gateways,kusanagi,ihateu,frederi,rock1,centurion,grizli,biggin,fish1,stalker1,
3girls,ilovepor,klootzak,lollo,redsox04,kirill123,jake1,pampers,vasya,hammers1,teacup,towing,celtic1,ishtar,yingyang,
4904s677075,dahc1,patriot1,patrick9,redbirds,doremi,rebecc,yoohoo,makarova,epiphone,rfgbnfy,milesd,blister,chelseafc,katana1,blackrose,
1james,primrose,shock5,hard1,scooby12,c6h12o6,dustoff,boing,chisel,kamil,
1william,defiant1,tyvugq,mp8o6d,aaa340,nafets,sonnet,flyhigh,
242526,crewcom,love23,strike1,stairway,katusha,salamand,cupcake1,password0,
007james,sunnie,multisync,harley01,tequila1,fred12,driver8,q8zo8wzq,hunter01,mozzer,temporar,eatmeraw,mrbrownxx,kailey,sycamore,flogger,tincup,rahasia,ganymede,bandera,slinger,
1111122222,vander,woodys,
1cowboy,khaled,jamies,london12,babyboo,tzpvaw,diogenes,budice,mavrick,
135797531,cheeta,macros,squonk,blackber,topfuel,apache1,falcon16,darkjedi,cheeze,vfhvtkfl,sparco,change1,gfhfif,freestyl,kukuruza,loveme2,
12345f,kozlov,sherpa,marbella,
44445555,bocephus,
1winner,alvar,hollydog,gonefish,iwantin,barman,godislove,amanda18,rfpfynbg,eugen,abcdef1,redhawk,thelema,spoonman,baller1,harry123,
475869,tigerman,cdtnjxrf,marillio,scribble,elnino,carguy,hardhead,l2g7k3,troopers,selen,dragon76,antigua,ewtosi,ulysse,astana,paroli,cristo,carmex,marjan,bassfish,letitbe,kasparov,jay123,
19933991,blue13,eyecandy,scribe,mylord,ukflbjkec,ellie1,beaver1,destro,neuken,halfpint,ameli,lilly1,satanic,xngwoj,
12345trewq,asdf1,bulldogg,asakura,jesucrist,flipside,packers4,biggy,kadett,biteme69,bobdog,silverfo,saint1,bobbo,packman,knowledg,foolio,fussbal,
12345g,kozerog,westcoas,minidisc,nbvcxw,martini1,alastair,rasengan,superbee,memento,porker,lena123,florenc,kakadu,bmw123,getalife,bigsky,monkee,people1,schlampe,red321,memyself,
0147896325,
12345678900987654321,soccer14,realdeal,gfgjxrf,bella123,juggs,doritos,celtics1,peterbilt,ghbdtnbrb,gnusmas,xcountry,ghbdtn1,batman99,deusex,gtnhjdf,blablabl,juster,marimba,love2,rerjkrf,alhambra,micros,siemens1,assmaste,moonie,dashadasha,atybrc,eeeeee1,wildrose,blue55,davidl,xrp23q,skyblue,leo123,ggggg1,bestfriend,franny,
1234rmvb,fun123,rules1,sebastien,chester2,hakeem,winston2,fartripper,atlant,
07831505,iluvsex,q1a2z3,larrys,
009900,ghjkju,capitan,rider1,qazxsw21,belochka,andy123,hellya,chicca,maximal,juergen,password1234,howard1,quetzal,daniel123,qpwoeiruty,
123555,bharat,ferrari3,numbnuts,savant,ladydog,phipsi,lovepussy,etoile,power2,mitten,britneys,chilidog,
08522580,
2fchbg,kinky1,bluerose,loulo,ricardo1,doqvq3,kswbdu,
013cpfza,timoha,ghbdtnghbdtn,
3stooges,gearhead,browns1,g00ber,super7,greenbud,kitty2,pootie,toolshed,gamers,coffe,ibill123,freelove,anasazi,sister1,jigger,natash,stacy1,weronika,luzern,soccer7,hoopla,dmoney,valerie1,canes,razdvatri,washere,greenwoo,rfhjkbyf,anselm,pkxe62,maribe,daniel2,maxim1,faceoff,carbine,xtkjdtr,buddy12,stratos,jumpman,buttocks,aqswdefr,pepsis,sonechka,steeler1,lanman,nietzsch,ballz,biscuit1,wrxsti,goodfood,juventu,federic,mattman,vika123,strelec,jledfyxbr,sideshow,
4life,fredderf,bigwilly,
12347890,
12345671,sharik,bmw325i,fylhtqrf,dannon4,marky,mrhappy,drdoom,maddog1,pompier,cerbera,goobers,howler,jenny69,evely,letitrid,cthuttdyf,felip,shizzle,golf12,t123456,yamah,bluearmy,squishy,roxan,
10inches,dollface,babygirl1,blacksta,kaneda,lexingto,canadien,
222888,kukushka,sistema,
224422,shadow69,ppspankp,mellons,barbie1,free4all,alfa156,lostone,
2w3e4r5t,painkiller,robbie1,binger,
8dihc6,jaspe,rellik,quark,sogood,hoopstar,number2,snowy1,dad2ownu,cresta,qwe123asd,hjvfyjdf,gibsonsg,qbg26i,dockers,grunge,duckling,lfiekz,cuntsoup,kasia1,
1tigger,woaini,reksio,tmoney,firefighter,neuron,audia3,woogie,powerboo,powermac,fatcock,
12345666,upnfmc,lustful,porn1,gotlove,amylee,kbytqrf,
11924704,
25251325,sarasota,sexme,ozzie1,berliner,nigga1,guatemal,seagulls,iloveyou!,chicken2,qwerty21,
010203040506,
1pillow,libby1,vodoley,backlash,piglets,teiubesc,
019283,vonnegut,perico,thunde,buckey,gtxtymrf,manunite,iiiii1,lost4815162342,madonn,
270873_,britney1,kevlar,piano1,boondock,colt1911,salamat,doma77ns,anuradha,cnhjqrf,rottweil,newmoon,topgun1,mauser,fightclu,birthday21,reviewpa,herons,aassddff,lakers32,melissa2,vredina,jiujitsu,mgoblue,shakey,moss84,
12345zxcvb,funsex,benji1,garci,
113322,chipie,windex,nokia5310,pwxd5x,bluemax,cosita,chalupa,trotsky,new123,g3ujwg,newguy,canabis,gnaget,happydays,felixx,
1patrick,cumface,sparkie,kozlova,
123234,newports,broncos7,golf18,recycle,hahah,harrypot,cachondo,open4me,miria,guessit,pepsione,knocker,usmc1775,countach,playe,wiking,landrover,cracksevi,drumline,a7777777,smile123,manzana,panty,liberta,pimp69,dolfan,quality1,schnee,superson,elaine22,webhompass,mrbrownx,deepsea,
4wheel,mamasita,rockport,rollie,myhome,jordan12,kfvgjxrf,hockey12,seagrave,ford1,chelsea2,samsara,marissa1,lamesa,mobil1,piotrek,tommygun,yyyyy1,wesley1,billy123,homersim,julies,amanda12,shaka,maldini,suzenet,springst,iiiiii1,yakuza,
111111aa,westwind,helpdesk,annamari,bringit,hopefull,hhhhhhh1,saywhat,mazdarx8,bulova,jennife1,baikal,gfhjkmxbr,victoria1,gizmo123,alex99,defjam,
2girls,sandrock,positivo,shingo,syncmast,opensesa,silicone,fuckina,senna1,karlos,duffbeer,montagne,gehrig,thetick,pepino,hamburge,paramedic,scamp,smokeweed,fabregas,phantoms,venom121293,
2583458,badone,porno69,manwhore,vfvf123,notagain,vbktyf,rfnthbyrf,wildblue,kelly001,dragon66,camell,curtis1,frolova,
1212123,dothedew,tyler123,reddrago,planetx,promethe,gigolo,
1001001,thisone,eugeni,blackshe,cruzazul,incognito,puller,joonas,quick1,spirit1,gazza,zealot,gordito,hotrod1,mitch1,pollito,hellcat,mythos,duluth,
383pdjvl,easy123,hermos,binkie,its420,lovecraf,darien,romina,doraemon,
19877891,syclone,hadoken,transpor,ichiro,intell,gargamel,dragon2,wavpzt,
557744,rjw7x4,jennys,kickit,rjynfrn,likeit,
555111,corvus,nec3520,
133113,mookie1,bochum,samsung2,locoman0,
154ugeiu,vfvfbgfgf,
135792,[start],tenni,
20001,vestax,hufmqw,neveragain,wizkid,kjgfnf,nokia6303,tristen,saltanat,louie1,gandalf2,sinfonia,alpha3,tolstoy,ford150,f00bar,
1hello,alici,lol12,riker1,hellou,
333888,
1hunter,qw1234,vibrator,mets86,
43211234,gonzale,cookies1,sissy1,john11,bubber,blue01,cup2006,gtkmvtyb,nazareth,heybaby,suresh,teddie,mozilla,rodeo1,madhouse,gamera,
123123321,naresh,dominos,foxtrot1,taras,powerup,kipling,jasonb,fidget,galena,meatman,alpacino,bookmark,farting,humper,titsnass,gorgon,castaway,dianka,anutka,gecko1,fucklove,connery,wings1,erika1,peoria,moneymaker,ichabod,heaven1,paperboy,phaser,breakers,nurse1,westbrom,alex13,brendan1,
123asd123,almera,grubber,clarkie,thisisme,welkom01,
51051051051,crypto,freenet,pflybwf,black12,testme2,changeit,autobahn,attica,chaoss,denver1,tercel,gnasher23,master2,vasilii,sherman1,gomer,bigbuck,derek1,qwerzxcv,jumble,dragon23,art131313,numark,beasty,cxfcnmttcnm,updown,starion,glist,sxhq65,ranger99,monkey7,shifter,wolves1,
4r5t6y,phone1,favorite5,skytommy,abracada,
1martin,
102030405060,gatech,giulio,blacktop,cheer1,africa1,grizzly1,inkjet,shemales,durango1,booner,
11223344q,supergirl,vanyarespekt,dickless,srilanka,weaponx,
6string,nashvill,spicey,boxer1,fabien,
2sexy2ho,bowhunt,jerrylee,acrobat,tawnee,ulisse,nolimit8,l8g3bkde,pershing,gordo1,allover,gobrowns,
123432,
123444,
321456987,spoon1,hhhhh1,sailing1,gardenia,teache,sexmachine,tratata,pirate1,niceone,jimbos,
314159265,qsdfgh,bobbyy,ccccc1,carla1,vjkjltw,savana,biotech,frigid,
123456789g,dragon10,yesiam,alpha06,oakwood,tooter,winsto,radioman,vavilon,asnaeb,google123,nariman,kellyb,dthyjcnm,password6,parol1,golf72,skate1,lthtdj,
1234567890s,kennet,rossia,lindas,nataliya,perfecto,eminem1,kitana,aragorn1,rexona,arsenalf,planot,coope,testing123,timex,blackbox,bullhead,barbarian,dreamon,polaris1,cfvjktn,frdfhbev,gametime,slipknot666,nomad1,hfgcjlbz,happy69,fiddler,brazil1,joeboy,indianali,
113355,obelisk,telemark,ghostrid,preston1,anonim,wellcome,verizon1,sayangku,censor,timeport,dummies,adult1,nbnfybr,donger,thales,iamgay,sexy1234,deadlift,pidaras,doroga,
123qwe321,portuga,asdfgh12,happys,cadr14nu,pi3141,maksik,dribble,cortland,darken,stepanova,bommel,tropic,sochi2014,bluegras,shahid,merhaba,nacho,
2580456,orange44,kongen,
3cudjz,
78girl,my3kids,marcopol,deadmeat,gabbie,saruman,jeepman,freddie1,katie123,master99,ronal,ballbag,centauri,killer7,xqgann,pinecone,jdeere,geirby,aceshigh,
55832811,pepsimax,rayden,razor1,tallyho,ewelina,coldfire,florid,glotest,
999333,sevenup,bluefin,limaperu,apostol,bobbins,charmed1,michelin,sundin,centaur,alphaone,christof,trial1,lions1,
45645,just4you,starflee,vicki1,cougar1,green2,jellyfis,batman69,games1,hihje863,crazyzil,w0rm1,oklick,dogbite,yssup,sunstar,paprika,postov10,
124578963,x24ik3,kanada,buckster,iloveamy,bear123,smiler,nx74205,ohiostat,spacey,bigbill,doudo,nikolaeva,hcleeb,sex666,mindy1,buster11,deacons,boness,njkcnsq,candy2,cracker1,turkey1,qwertyu1,gogreen,tazzzz,edgewise,ranger01,qwerty6,blazer1,arian,letmeinnow,cigar1,jjjjjj1,grigio,frien,tenchu,f9lmwd,imissyou,filipp,heathers,coolie,salem1,woodduck,scubadiv,
123kat,raffaele,nikolaev,dapzu455,skooter,
9inches,lthgfhjkm,gr8one,ffffff1,zujlrf,amanda69,gldmeo,m5wkqf,rfrltkf,televisi,bonjou,paleale,stuff1,cumalot,fuckmenow,climb7,mark1234,t26gn4,oneeye,george2,utyyflbq,hunting1,tracy71,ready2go,hotguy,accessno,charger1,rudedog,kmfdm,goober1,sweetie1,wtpmjgda,dimensio,ollie1,pickles1,hellraiser,mustdie,
123zzz,
99887766,stepanov,verdun,tokenbad,anatol,bartende,cidkid86,onkelz,timmie,mooseman,patch1,
12345678c,marta1,dummy1,bethany1,myfamily,history1,
178500,lsutiger,phydeaux,moren,dbrnjhjdbx,gnbxrf,uniden,drummers,abpbrf,godboy,daisy123,hogan1,ratpack,irland,tangerine,greddy,flore,sqrunch,billyjoe,q55555,clemson1,
98745632,marios,ishot,angelin,access12,naruto12,lolly,scxakv,austin12,sallad,cool99,rockit,mongo1,mark22,ghbynth,ariadna,senha,docto,tyler2,mobius,hammarby,
192168,anna12,claire1,pxx3eftp,secreto,greeneye,stjabn,baguvix,satana666,rhbcnbyjxrf,dallastx,garfiel,michaelj,
1summer,montan,
1234ab,filbert,squids,fastback,lyudmila,chucho,eagleone,kimberle,ar3yuk3,jake01,nokids,soccer22,
1066ad,ballon,cheeto,review69,madeira,taylor2,sunny123,chubbs,lakeland,striker1,porche,qwertyu8,digiview,go1234,ferari,lovetits,aditya,minnow,green3,matman,cellphon,fortytwo,minni,pucara,
69a20a,roman123,fuente,
12e3e456,paul12,jacky,demian,littleman,jadakiss,vlad1997,franca,
282860,midian,nunzio,xaccess2,colibri,jessica0,revilo,
654456,harvey1,wolf1,macarena,corey1,husky1,arsen,milleniu,
852147,crowes,redcat,combat123654,hugger,psalms,quixtar,ilovemom,toyot,ballss,ilovekim,serdar,james23,avenger1,serendip,malamute,nalgas,teflon,shagger,letmein6,vyjujnjxbt,assa1234,student1,dixiedog,gznybwf13,fuckass,aq1sw2de3,robroy,hosehead,sosa21,
123345,ias100,teddy123,poppin,dgl70460,zanoza,farhan,quicksilver,
1701d,tajmahal,depechemode,paulchen,angler,tommy2,recoil,megamanx,scarecro,nicole2,
152535,rfvtgb,skunky,fatty1,saturno,wormwood,milwauke,udbwsk,sexlover,stefa,
7bgiqk,gfnhbr,omar10,bratan,lbyfvj,slyfox,forest1,jambo,william3,tempus,solitari,lucydog,murzilka,qweasdzxc1,vehpbkrf,
12312345,fixit,woobie,andre123,
123456789x,lifter,zinaida,soccer17,andone,foxbat,torsten,apple12,teleport,
123456i,leglover,bigcocks,vologda,dodger1,martyn,d6o8pm,naciona,eagleeye,maria6,rimshot,bentley1,octagon,barbos,masaki,gremio,siemen,s1107d,mujeres,bigtits1,cherr,saints1,mrpink,simran,ghzybr,ferrari2,secret12,tornado1,kocham,picolo,deneme,onelove1,rolan,fenster,
1fuckyou,cabbie,pegaso,nastyboy,password5,aidana,mine2306,mike13,wetone,tigger69,ytreza,bondage1,myass,golova,tolik,happyboy,poilkj,nimda2k,rammer,rubies,hardcore1,jetset,hoops1,jlaudio,misskitt,
1charlie,google12,theone1,phred,porsch,aalborg,luft4,charlie5,password7,gnosis,djgabbab,
1daniel,vinny,borris,cumulus,member1,trogdor,darthmau,andrew2,ktjybl,relisys,kriste,rasta220,chgobndg,weener,qwerty66,fritter,followme,freeman1,ballen,blood1,peache,mariso,trevor1,biotch,gtfullam,chamonix,friendste,alligato,misha1,
1soccer,
18821221,venkat,superd,molotov,bongos,mpower,acun3t1x,dfcmrf,h4x3d,rfhfufylf,tigran,booyaa,plastic1,monstr,rfnhby,lookatme,anabolic,tiesto,simon123,soulman,canes1,skyking,tomcat1,madona,bassline,dasha123,tarheel1,dutch1,xsw23edc,qwerty123456789,imperator,slaveboy,bateau,paypal,house123,pentax,wolf666,drgonzo,perros,digger1,juninho,hellomoto,bladerun,zzzzzzz1,keebler,take8422,fffffff1,ginuwine,israe,caesar1,crack1,precious1,garand,magda1,zigazaga,
321ewq,johnpaul,mama1234,iceman69,sanjeev,treeman,elric,rebell,
1thunder,cochon,deamon,zoltan,straycat,uhbyuj,luvfur,mugsy,primer,wonder1,teetime,candycan,pfchfytw,fromage,gitler,salvatio,piggy1,
23049307,zafira,chicky,sergeev,katze,bangers,andriy,jailbait,vaz2107,ghbhjlf,dbjktnnf,aqswde,zaratustra,asroma,
1pepper,alyss,kkkkk1,ryan1,radish,cozumel,waterpol,pentium1,rosebowl,farmall,steinway,dbrekz,baranov,jkmuf,another1,chinacat,qqqqqqq1,hadrian,devilmaycry4,ratbag,teddy2,love21,pullings,packrat,robyn1,boobo,qw12er34,tribe1,rosey,celestia,nikkie,fortune12,olga123,danthema,gameon,vfrfhjys,dilshod,henry14,jenova,redblue,chimaera,pennywise,sokrates,danimal,qqaazz,fuaqz4,killer2,
198200,tbone1,kolyan,wabbit,lewis1,maxtor,egoist,asdfas,spyglass,omegas,jack12,nikitka,esperanz,doozer,matematika,wwwww1,ssssss1,poiu0987,suchka,courtney1,gungho,alpha2,fktyjxrf,summer06,bud420,devildriver,heavyd,saracen,foucault,choclate,rjdfktyrj,goblue1,monaro,jmoney,dcpugh,efbcapa201,qqh92r,pepsicol,bbb747,ch5nmk,honeyb,beszoptad,tweeter,intheass,iseedeadpeople,
123dan,
89231243658s,farside1,findme,smiley1,
55556666,sartre,ytcnjh,kacper,costarica,
134679258,mikeys,nolimit9,vova123,withyou,
5rxypn,love143,freebie,rescue1,
203040,michael6,
12monkey,redgreen,steff,itstime,naveen,good12345,acidrain,
1dawg,miramar,playas,daddio,orion2,
852741,studmuff,kobe24,senha123,stephe,mehmet,allalone,scarface1,helloworld,smith123,blueyes,vitali,memphis1,mybitch,colin1,
159874,
1dick,podaria,d6wnro,brahms,f3gh65,dfcbkmtd,xxxman,corran,ugejvp,qcfmtz,marusia,totem,arachnid,matrix2,antonell,fgntrf,zemfira,christos,surfing1,naruto123,plato1,
56qhxs,madzia,vanille,
043aaa,asq321,mutton,ohiostate,golde,cdznjckfd,rhfcysq,green5,elephan,superdog,jacqueli,bollock,lolitas,nick12,
1orange,maplelea,july23,argento,waldorf,wolfer,pokemon12,zxcvbnmm,flicka,drexel,outlawz,harrie,atrain,juice2,falcons1,charlie6,
19391945,tower1,dragon21,hotdamn,dirtyboy,love4ever,
1ginger,thunder2,virgo1,alien1,bubblegu,
4wwvte,
123456789qqq,realtime,studio54,passss,vasilek,awsome,giorgia,bigbass,
2002tii,sunghile,mosdef,simbas,count0,uwrl7c,summer05,lhepmz,ranger21,sugarbea,principe,
5550123,tatanka,
9638v,cheerios,majere,nomercy,jamesbond007,bh90210,
7550055,jobber,karaganda,pongo,trickle,defamer,
6chid8,
1q2a3z,tuscan,nick123,.adgjm,loveyo,hobbes1,note1234,shootme,
171819,loveporn,
9788960,monty123,fabrice,macduff,monkey13,shadowfa,tweeker,hanna1,madball,telnet,loveu2,qwedcxzas,thatsit,vfhcbr,ptfe3xxp,gblfhfcs,ddddddd1,hakkinen,liverune,deathsta,misty123,suka123,recon1,inferno1,
232629,polecat,sanibel,grouch,hitech,hamradio,rkfdbfnehf,vandam,nadin,fastlane,shlong,iddqdidkfa,ledzeppelin,sexyfeet,
098123,stacey1,negras,roofing,lucifer1,ikarus,tgbyhn,melnik,barbaria,montego,twisted1,bigal1,jiggle,darkwolf,acerview,silvio,treetops,bishop1,iwanna,pornsite,happyme,gfccdjhl,
114411,veritech,batterse,casey123,yhntgb,mailto,milli,guster,q12345678,coronet,sleuth,fuckmeha,armadill,kroshka,geordie,lastochka,pynchon,killall,tommy123,sasha1996,godslove,hikaru,clticic,cornbrea,vfkmdbyf,passmaster,
123123123a,souris,nailer,diabolo,skipjack,martin12,hinata,mof6681,brookie,dogfight,johnso,karpov,
326598,rfvbrflpt,travesti,caballer,galaxy1,wotan,antoha,art123,xakep1234,ricflair,pervert1,p00kie,ambulanc,santosh,berserker,larry33,bitch123,a987654321,dogstar,angel22,cjcbcrf,redhouse,toodles,gold123,hotspot,kennedy1,glock21,chosen1,schneide,mainman,taffy1,
3ki42x,
4zqauf,ranger2,
4meonly,year2000,
121212a,kfylsi,netzwerk,diese,picasso1,rerecz,
225522,dastan,swimmer1,brooke1,blackbea,oneway,ruslana,dont4get,phidelt,chrisp,gjyxbr,xwing,kickme,shimmy,kimmy1,
4815162342lost,qwerty5,fcporto,jazzbo,mierd,
252627,basses,sr20det,
00133,florin,howdy1,kryten,goshen,koufax,cichlid,imhotep,andyman,wrest666,saveme,dutchy,anonymou,semprini,siempre,mocha1,forest11,wildroid,aspen1,sesam,kfgekz,cbhbec,a55555,sigmanu,slash1,giggs11,vatech,marias,candy123,jericho1,kingme,
123a123,drakula,cdjkjxm,mercur,oneman,hoseman,plumper,ilovehim,lancers,sergey1,takeshi,goodtogo,cranberr,ghjcnj123,harvick,qazxs,
1972chev,horsesho,freedom3,letmein7,saitek,anguss,vfvfgfgfz,
300000,elektro,toonporn,
999111999q,mamuka,q9umoz,edelweis,subwoofer,bayside,disturbe,volition,lucky3,
12345678z,
3mpz4r,march1,atlantida,strekoza,seagrams,
090909t,yy5rbfsc,jack1234,sammy12,sampras,mark12,eintrach,chaucer,lllll1,nochance,whitepower,
197000,lbvekz,passer,torana,
12345as,pallas,koolio,
12qw34,nokia8800,findout,
1thomas,mmmmm1,
654987,mihaela,chinaman,superduper,donnas,ringo1,jeroen,gfdkjdf,professo,cdtnrf,tranmere,tanstaaf,himera,ukflbfnjh,
667788,alex32,joschi,w123456,okidoki,flatline,papercli,super8,doris1,
2good4u,
4z34l0ts,pedigree,freeride,gsxr1100,wulfgar,benjie,ferdinan,king1,charlie7,djdxbr,fhntvbq,ripcurl,
2wsx1qaz,kingsx,desade,sn00py,loveboat,rottie,evgesha,
4money,dolittle,adgjmpt,buzzers,brett1,makita,
123123qweqwe,rusalka,sluts1,
123456e,jameson1,bigbaby,
1z2z3z,ckjybr,love4u,fucker69,erhfbyf,jeanluc,farhad,fishfood,merkin,giant1,golf69,rfnfcnhjaf,camera1,stromb,smoothy,
774411,nylon,juice1,rfn.irf,newyor,
123456789t,marmot,star11,jennyff,jester1,hisashi,kumquat,alex777,helicopt,merkur,dehpye,cummin,zsmj2v,kristjan,april12,englan,honeypot,badgirls,uzumaki,keines,p12345,guita,quake1,duncan1,juicer,milkbone,hurtme,
123456789b,qq123456789,schwein,p3wqaw,
54132442,qwertyytrewq,andreeva,ruffryde,punkie,abfkrf,kristinka,anna1987,ooooo1,
335533aa,umberto,amber123,
456123789,
456789123,beelch,manta,peeker,
1112131415,
3141592654,gipper,wrinkle5,katies,asd123456,james11,
78n3s5af,michael0,daboss,jimmyb,hotdog1,david69,
852123,blazed,sickan,eljefe,
2n6wvq,gobills,rfhfcm,squeaker,cabowabo,luebri,karups,test01,melkor,angel777,smallvil,modano,olorin,
4rkpkt,leslie1,koffie,shadows1,littleon,amiga1,topeka,summer20,asterix1,pitstop,aloysius,k12345,magazin,joker69,panocha,pass1word,
1233214,ironpony,
368ejhih,
88keys,pizza123,sonali,
57np39,quake2,
1234567890qw,
1020304,sword1,fynjif,abcde123,dfktyjr,rockys,grendel1,harley12,kokakola,super2,azathoth,lisa123,shelley1,girlss,ibragim,seven1,jeff24,
1bigdick,dragan,autobot,t4nvp7,omega123,
900000,hecnfv,
889988,nitro1,doggie1,fatjoe,
811pahc,tommyt,savage1,pallino,smitty1,jg3h4hfn,jamielee,
1qazwsx,zx123456,machine1,asdfgh123,guinnes,
789520,sharkman,jochen,legend1,sonic2,extreme1,dima12,photoman,
123459876,nokian95,
775533,vaz2109,april10,becks,repmvf,pooker,qwer12345,themaster,nabeel,monkey10,gogetit,hockey99,bbbbbbb1,zinedine,dolphin2,anelka,
1superma,winter01,muggsy,horny2,
669966,kuleshov,jesusis,calavera,bullet1,
87t5hdf,sleepers,winkie,vespa,lightsab,carine,magister,
1spider,shitbird,salavat,becca1,wc18c2,shirak,galactus,zaskar,barkley1,reshma,dogbreat,fullsail,asasa,boeder,
12345ta,zxcvbnm12,lepton,elfquest,tony123,vkaxcs,savatage,sevilia1,badkitty,munkey,pebbles1,diciembr,qapmoc,gabriel2,
1qa2ws3e,cbcmrb,welldone,nfyufh,kaizen,jack11,manisha,grommit,g12345,maverik,chessman,heythere,mixail,jjjjjjj1,sylvia1,fairmont,harve,skully,global1,youwish,pikachu1,badcat,zombie1,
49527843,ultra1,redrider,offsprin,lovebird,
153426,stymie,aq1sw2,sorrento,
0000001,r3ady41t,webster1,
95175,adam123,coonass,
159487,slut1,gerasim,monkey99,slutwife,
159963,
1pass1page,hobiecat,bigtymer,all4you,maggie2,olamide,comcast1,infinit,bailee,vasileva,.ktxrf,asdfghjkl1,
12345678912,setter,fuckyou7,nnagqx,lifesuck,draken,austi,feb2000,cable1,
1234qwerasdf,hax0red,zxcv12,vlad7788,nosaj,lenovo,underpar,huskies1,lovegirl,feynman,suerte,babaloo,alskdjfhg,oldsmobi,bomber1,redrover,pupuce,methodman,phenom,cutegirl,countyli,gretsch,godisgood,bysunsu,hardhat,mironova,
123qwe456rty,rusty123,salut,
187211,
555666777,
11111z,mahesh,rjntyjxtr,br00klyn,dunce1,timebomb,bovine,makelove,littlee,shaven,rizwan,patrick7,
42042042,bobbijo,rustem,buttmunc,dongle,tiger69,bluecat,blackhol,shirin,peaces,cherub,cubase,longwood,lotus7,gwju3g,bruin,pzaiu8,green11,uyxnyd,seventee,dragon5,tinkerbel,bluess,bomba,fedorova,joshua2,bodyshop,peluche,gbpacker,shelly1,d1i2m3a4,ghtpbltyn,talons,sergeevna,misato,chrisc,sexmeup,brend,olddog,davros,hazelnut,bridget1,hzze929b,readme,brethart,wild1,ghbdtnbr1,nortel,kinger,royal1,bucky1,allah1,drakkar,emyeuanh,gallaghe,hardtime,jocker,tanman,flavio,abcdef123,leviatha,squid1,skeet,sexse,
123456x,mom4u4mm,lilred,djljktq,ocean11,cadaver,baxter1,
808state,fighton,primavera,
1andrew,moogle,limabean,goddess1,vitalya,blue56,
258025,bullride,cicci,
1234567d,connor1,gsxr11,oliveoil,leonard1,legsex,gavrik,rjnjgtc,mexicano,
2bad4u,goodfellas,ornw6d,mancheste,hawkmoon,zlzfrh,schorsch,g9zns4,bashful,rossi46,stephie,rfhfntkm,sellout,
123fuck,stewar1,solnze,
00007,thor5200,compaq12,didit,bigdeal,hjlbyf,zebulon,wpf8eu,kamran,emanuele,
197500,carvin,ozlq6qwm,
3syqo15hil,pennys,epvjb6,asdfghjkl123,
198000,nfbcbz,jazzer,asfnhg66,zoloft,albundy,aeiou,getlaid,planet1,gjkbyjxrf,alex2000,brianb,moveon,maggie11,eieio,vcradq,shaggy1,novartis,cocoloco,dunamis,
554uzpad,sundrop,
1qwertyu,alfie,feliks,briand,
123www,red456,addams,fhntv1998,goodhead,theway,javaman,angel01,stratoca,lonsdale,
15987532,bigpimpin,skater1,issue43,muffie,yasmina,slowride,crm114,sanity729,himmel,carolcox,bustanut,parabola,masterlo,computador,crackhea,dynastar,rockbott,doggysty,wantsome,bigten,gaelle,juicy1,alaska1,etower,sixnine,suntan,froggies,nokia7610,hunter11,njnets,alicante,buttons1,diosesamo,elizabeth1,chiron,trustnoo,amatuers,tinytim,mechta,sammy2,cthulu,trs8f7,poonam,m6cjy69u35,cookie12,blue25,jordans,santa1,kalinka,mikey123,lebedeva,
12345689,kissss,queenbee,vjybnjh,ghostdog,cuckold,bearshare,rjcntyrj,alinochka,ghjcnjrdfibyj,aggie1,teens1,
3qvqod,dauren,tonino,hpk2qc,iqzzt580,bears85,nascar88,theboy,njqcw4,masyanya,pn5jvw,intranet,lollone,shadow99,
00096462,techie,cvtifhbrb,redeemed,gocanes,
62717315,topman,intj3a,cobrajet,antivirus,whyme,berserke,ikilz083,airedale,brandon2,hopkig,johanna1,danil8098,gojira,arthu,vision1,pendragon,milen,chrissie,vampiro,mudder,chris22,blowme69,omega7,surfers,goterps,italy1,baseba11,diego1,gnatsum,birdies,semenov,joker123,zenit2011,wojtek,cab4ma99,watchmen,damia,forgotte,fdm7ed,strummer,freelanc,cingular,orange77,mcdonalds,vjhjpjdf,kariya,tombston,starlet,hawaii1,dantheman,megabyte,nbvjirf,anjing,ybrjkftdbx,hotmom,kazbek,pacific1,sashimi,asd12,coorslig,yvtte545,kitte,elysium,klimenko,cobblers,kamehameha,only4me,redriver,triforce,sidorov,vittoria,fredi,dank420,m1234567,fallout2,
989244342a,crazy123,crapola,servus,volvos,
1scooter,griffin1,autopass,ownzyou,deviant,george01,
2kgwai,boeing74,simhrq,hermosa,hardcor,griffy,rolex1,hackme,cuddles1,master3,bujhtr,aaron123,popolo,blader,
1sexyred,gerry1,cronos,ffvdj474,yeehaw,bob1234,carlos2,mike77,buckwheat,ramesh,acls2h,monster2,montess,
11qq22ww,lazer,zx123456789,chimpy,masterch,sargon,lochness,archana,
1234qwert,hbxfhl,sarahb,altoid,zxcvbn12,dakot,caterham,dolomite,chazz,r29hqq,longone,pericles,grand1,sherbert,eagle3,pudge,irontree,synapse,boome,nogood,summer2,pooki,gangsta1,mahalkit,elenka,lbhtrnjh,dukedog,
19922991,hopkins1,evgenia,domino1,x123456,manny1,tabbycat,drake1,jerico,drahcir,kelly2,
708090a,facesit,
11c645df,mac123,boodog,kalani,hiphop1,critters,hellothere,tbirds,valerka,
551scasi,love777,paloalto,mrbrown,duke3d,killa1,arcturus,spider12,dizzy1,smudger,goddog,
75395,spammy,
1357997531,
78678,datalife,zxcvbn123,
1122112211,london22,
23dp4x,rxmtkp,biggirls,ownsu,lzbs2twz,sharps,geryfe,
237081a,golakers,nemesi,sasha1995,pretty1,mittens1,d1lakiss,speedrac,gfhjkmm,sabbat,hellrais,
159753258,qwertyuiop123,playgirl,crippler,salma,strat1,celest,hello5,omega5,cheese12,ndeyl5,edward12,soccer3,cheerio,davido,vfrcbr,gjhjctyjr,boscoe,inessa,shithole,ibill,qwepoi,
201jedlz,asdlkj,davidk,spawn2,ariel1,michael4,jamie123,romantik,micro1,pittsbur,canibus,katja,muhtar,thomas123,studboy,masahiro,rebrov,patrick8,hotboys,sarge1,
1hammer,nnnnn1,eistee,datalore,jackdani,sasha2010,mwq6qlzo,cmfnpu,klausi,cnhjbntkm,andrzej,ilovejen,lindaa,hunter123,vvvvv1,novembe,hamster1,x35v8l,lacey1,
1silver,iluvporn,valter,herson,alexsandr,cojones,backhoe,womens,
777angel,beatit,klingon1,ta8g4w,luisito,benedikt,maxwel,inspecto,zaq12ws,wladimir,bobbyd,peterj,asdfg12,hellspawn,bitch69,nick1234,golfer23,sony123,jello1,killie,chubby1,kodaira52,yanochka,buckfast,morris1,roaddogg,snakeeye,sex1234,mike22,mmouse,fucker11,dantist,brittan,vfrfhjdf,doc123,plokijuh,emerald1,batman01,serafim,elementa,soccer9,footlong,cthuttdbx,hapkido,eagle123,getsmart,getiton,batman2,masons,mastiff,
098890,cfvfhf,james7,azalea,sherif,saun24865709,
123red,cnhtrjpf,martina1,pupper,michael5,alan12,shakir,devin1,ha8fyp,palom,mamulya,trippy,deerhunter,happyone,monkey77,
3mta3,
123456789f,crownvic,teodor,natusik,
0137485,vovchik,strutter,triumph1,cvetok,moremone,sonnen,screwbal,akira1,sexnow,pernille,independ,poopies,samapi,kbcbxrf,master22,swetlana,urchin,viper2,magica,slurpee,postit,gilgames,kissarmy,clubpenguin,limpbizk,timber1,celin,lilkim,fuckhard,lonely1,mom123,goodwood,extasy,sdsadee23,foxglove,malibog,clark1,casey2,shell1,odense,balefire,dcunited,cubbie,pierr,solei,
161718,bowling1,areyukesc,batboy,r123456,
1pionee,marmelad,maynard1,cn42qj,cfvehfq,heathrow,qazxcvbn,connecti,secret123,newfie,xzsawq21,tubitzen,nikusha,enigma1,yfcnz123,
1austin,michaelc,splunge,wanger,phantom2,jason2,pain4me,primetime21,babes1,liberte,sugarray,undergro,zonker,labatts,djhjyf,watch1,eagle5,madison2,cntgfirf,sasha2,masterca,fiction7,slick50,bruins1,sagitari,
12481632,peniss,insuranc,
2b8riedt,
12346789,mrclean,ssptx452,tissot,q1w2e3r4t5y6u7,avatar1,comet1,spacer,vbrjkf,pass11,wanker1,
14vbqk9p,noshit,money4me,sayana,fish1234,seaways,pipper,romeo123,karens,wardog,ab123456,gorilla1,andrey123,lifesucks,jamesr,
4wcqjn,bearman,glock22,matt11,dflbvrf,barbi,maine1,dima1997,sunnyboy,
6bjvpe,bangkok1,
666666q,rafiki,letmein0,
0raziel0,dalla,london99,wildthin,patrycja,skydog,qcactw,tmjxn151,yqlgr667,jimmyd,stripclub,deadwood,
863abgsg,horses1,qn632o,scatman,sonia1,subrosa,woland,kolya,charlie4,moleman,j12345,summer11,angel11,blasen,sandal,mynewpas,retlaw,cambria,mustang4,nohack04,kimber45,fatdog,maiden1,bigload,necron,dupont24,ghost123,turbo2,.ktymrf,radagast,balzac,vsevolod,pankaj,argentum,
2bigtits,mamabear,bumblebee,mercury7,maddie1,chomper,jq24nc,snooky,pussylic,
1lovers,taltos,warchild,diablo66,jojo12,sumerki,aventura,gagger,annelies,drumset,cumshots,azimut,
123580,clambake,bmw540,birthday54,psswrd,paganini,wildwest,filibert,teaseme,
1test,scampi,thunder5,antosha,purple12,supersex,hhhhhh1,brujah,
111222333a,
13579a,bvgthfnjh,
4506802a,killians,choco,qqqwwweee,raygun,
1grand,koetsu13,sharp1,mimi92139,fastfood,idontcare,bluered,chochoz,
4z3al0ts,target1,sheffiel,labrat,stalingrad,
147123,cubfan,corvett1,holden1,snapper1,
4071505,amadeo,pollo,desperados,lovestory,marcopolo,mumbles,familyguy,kimchee,marcio,support1,tekila,shygirl1,trekkie,submissi,ilaria,salam,loveu,wildstar,master69,sales1,netware,homer2,arseniy,gerrity1,raspberr,atreyu,stick1,aldric,tennis12,matahari,alohomora,dicanio,michae1,michaeld,
666111,luvbug,boyscout,esmerald,mjordan,admiral1,steamboa,
616913,ybhdfyf,
557711,
555999,sunray,apokalipsis,theroc,bmw330,buzzy,chicos,lenusik,shadowma,eagles05,
444222,peartree,qqq123,sandmann,spring1,
430799,phatass,andi03,binky1,arsch,bamba,kenny123,fabolous,loser123,poop12,maman,phobos,tecate,myxworld4,metros,cocorico,nokia6120,johnny69,hater,spanked,
313233,markos,love2011,mozart1,viktoriy,reccos,
331234,hornyone,vitesse,
1um
83z,
55555q,proline,v12345,skaven,alizee,bimini,fenerbahce,
543216,zaqqaz,poi123,stabilo,brownie1,
1qwerty1,dinesh,baggins1,
1234567t,davidkin,friend1,lietuva,octopuss,spooks,
12345qq,myshit,buttface,paradoxx,pop123,golfin,sweet69,rfghbp,sambuca,kayak1,bogus1,girlz,dallas12,millers,
123456zx,operatio,pravda,eternal1,chase123,moroni,proust,blueduck,harris1,redbarch,
996699,
1010101,mouche,millenni,
1123456,score1,
1234565,
1234576,eae21157,dave12,pussyy,gfif1991,
1598741,hoppy,darrian,snoogins,fartface,ichbins,vfkbyrf,rusrap,
2741001,fyfrjylf,aprils,favre,thisis,bannana,serval,wiggum,satsuma,matt123,ivan123,gulmira,
123zxc123,oscar2,acces,annie2,dragon0,emiliano,allthat,pajaro,amandine,rawiswar,sinead,tassie,karma1,piggys,nokias,orions,origami,type40,mondo,ferrets,monker,biteme2,gauntlet,arkham,ascona,ingram01,klem1,quicksil,bingo123,blue66,plazma,onfire,shortie,spjfet,
123963,thered,fire777,lobito,vball,
1chicken,moosehea,elefante,babe23,jesus12,parallax,elfstone,number5,shrooms,freya,hacker1,roxette,snoops,number7,fellini,dtlmvf,chigger,mission1,mitsubis,kannan,whitedog,james01,ghjgecr,rfnfgekmnf,everythi,getnaked,prettybo,sylvan,chiller,carrera4,cowbo,biochem,azbuka,qwertyuiop1,midnight1,informat,audio1,alfred1,
0range,sucker1,scott2,russland,
1eagle,torben,djkrjlfd,rocky6,maddy1,bonobo,portos,chrissi,xjznq5,dexte,vdlxuc,teardrop,pktmxr,iamtheone,danijela,eyphed,suzuki1,etvww4,redtail,ranger11,mowerman,asshole2,coolkid,adriana1,bootcamp,longcut,evets,npyxr5,bighurt,bassman1,stryder,giblet,nastja,blackadd,topflite,wizar,cumnow,technolo,bassboat,bullitt,kugm7b,maksimus,wankers,mine12,sunfish,pimpin1,shearer9,user1,vjzgjxnf,tycobb,
80070633pc,stanly,vitaly,shirley1,cinzia,carolyn1,angeliqu,teamo,qdarcv,aa123321,ragdoll,bonit,ladyluck,wiggly,vitara,jetbalance,
12345600,ozzman,dima12345,mybuddy,shilo,satan66,erebus,warrio,
090808qwe,stupi,bigdan,paul1234,chiapet,brooks1,philly1,dually,gowest,farmer1,
1qa2ws3ed4rf,alberto1,beachboy,barne,aa12345,aliyah,radman,benson1,dfkthbq,highball,bonou2,i81u812,workit,darter,redhook,csfbr5yy,buttlove,episode1,ewyuza,porthos,lalal,abcd12,papero,toosexy,keeper1,silver7,jujitsu,corset,pilot123,simonsay,pinggolf,katerinka,kender,drunk1,fylhjvtlf,rashmi,nighthawk,maggy,juggernaut,larryb,cabibble,fyabcf,
247365,gangstar,jaybee,verycool,
123456789qw,forbidde,prufrock,
12345zxc,malaika,blackbur,docker,filipe,koshechka,gemma1,djamaal,dfcbkmtdf,gangst,
9988aa,ducks1,pthrfkj,puertorico,muppets,griffins,whippet,sauber,timofey,larinso,
123456789zxc,quicken,qsefth,liteon,headcase,bigdadd,zxc321,maniak,jamesc,bassmast,bigdogs,
1girls,
123xxx,trajan,lerochka,noggin,mtndew,
04975756,domin,wer123,fumanchu,lambada,thankgod,june22,kayaking,patchy,summer10,timepass,poiu1234,kondor,kakka,lament,zidane10,
686xqxfg,l8v53x,caveman1,nfvthkfy,holymoly,pepita,alex1996,mifune,fighter1,asslicker,jack22,abc123abc,zaxxon,midnigh,winni,psalm23,punky,monkey22,password13,mymusic,justyna,annushka,lucky5,briann,
495rus19,withlove,almaz,supergir,miata,bingbong,bradpitt,kamasutr,yfgjktjy,vanman,pegleg,amsterdam1,
123a321,letmein9,shivan,korona,bmw520,annette1,scotsman,gandal,welcome12,sc00by,qpwoei,fred69,m1sf1t,hamburg1,
1access,dfkmrbhbz,excalibe,boobies1,fuckhole,karamel,starfuck,star99,breakfas,georgiy,ywvxpz,smasher,fatcat1,allanon,
12345n,coondog,whacko,avalon1,scythe,saab93,timon,khorne,atlast,nemisis,brady12,blenheim,
52678677,mick7278,
9skw5g,fleetwoo,ruger1,kissass,pussy7,scruff,
12345l,bigfun,vpmfsz,yxkck878,evgeny,
55667788,lickher,foothill,alesis,poppies,
77777778,californi,mannie,bartjek,qhxbij,thehulk,xirt2k,angelo4ek,rfkmrekznjh,tinhorse,
1david,sparky12,night1,luojianhua,bobble,nederland,rosemari,travi,minou,ciscokid,beehive,
565hlgqo,alpine1,samsung123,trainman,xpress,logistic,vw198m2n,hanter,zaqwsx123,qwasz,mariachi,paska,kmg365,kaulitz,sasha12,north1,polarbear,mighty1,makeksa11,
123456781,one4all,gladston,notoriou,polniypizdec110211,gosia,grandad,xholes,timofei,invalidp,speaker1,zaharov,maggiema,loislane,gonoles,br5499,discgolf,kaskad,snooper,newman1,belial,demigod,vicky1,pridurok,alex1990,tardis1,cruzer,hornie,sacramen,babycat,burunduk,mark69,oakland1,me1234,gmctruck,extacy,sexdog,putang,poppen,billyd,
1qaz2w,loveable,gimlet,azwebitalia,ragtop,
198500,qweas,mirela,rock123,
11bravo,sprewell,tigrenok,jaredleto,vfhbif,blue2,rimjob,catwalk,sigsauer,loqse,doromich,jack01,lasombra,jonny5,newpassword,profesor,garcia1,
123as123,croucher,demeter,
4_life,rfhfvtkm,superman2,rogues,assword1,russia1,jeff1,mydream,z123456789,rascal1,darre,kimberl,pickle1,ztmfcq,ponchik,lovesporn,hikari,gsgba368,pornoman,chbjun,choppy,diggity,nightwolf,viktori,camar,vfhecmrf,alisa1,minstrel,wishmaster,mulder1,aleks,gogirl,gracelan,
8womys,highwind,solstice,dbrnjhjdyf,nightman,pimmel,beertje,ms6nud,wwfwcw,fx3tuo,poopface,asshat,dirtyd,jiminy,luv2fuck,ptybnxtvgbjy,dragnet,pornogra,
10inch,scarlet1,guido1,raintree,v123456,
1aaaaaaa,maxim1935,hotwater,gadzooks,playaz,harri,brando1,defcon1,ivanna,
123654a,arsenal2,candela,nt5d27,jaime1,duke1,burton1,allstar1,dragos,newpoint,albacore,
1236987z,verygoodbot,
1wildcat,fishy1,ptktysq,chris11,puschel,itdxtyrj,
7kbe9d,serpico,jazzie,
1zzzzz,kindbuds,wenef45313,
1compute,tatung,sardor,gfyfcjybr,test99,toucan,meteora,lysander,asscrack,jowgnx,hevnm4,suckthis,masha123,karinka,marit,oqglh565,dragon00,vvvbbb,cheburashka,vfrfrf,downlow,unforgiven,p3e85tr,kim123,sillyboy,gold1,golfvr6,quicksan,irochka,froglegs,shortsto,caleb1,tishka,bigtitts,smurfy,bosto,dropzone,nocode,jazzbass,digdug,green7,saltlake,therat,dmitriev,lunita,deaddog,summer0,
1212qq,bobbyg,mty3rh,isaac1,gusher,helloman,sugarbear,corvair,extrem,teatime,tujazopi,titanik,efyreg,jo9k2jw2,counchac,tivoli,utjvtnhbz,bebit,jacob6,clayton1,incubus1,flash123,squirter,dima2010,cock1,rawks,komatsu,forty2,
98741236,cajun1,madelein,mudhoney,magomed,q111111,qaswed,consense,
12345b,bakayaro,silencer,zoinks,bigdic,werwolf,pinkpuss,
96321478,alfie1,ali123,sarit,minette,musics,chato,iaapptfcor,cobaka,strumpf,datnigga,sonic123,yfnecbr,vjzctvmz,pasta1,tribbles,crasher,htlbcrf,
1tiger,shock123,bearshar,syphon,a654321,cubbies1,jlhanes,eyespy,fucktheworld,carrie1,bmw325is,suzuk,mander,dorina,mithril,hondo1,vfhnbyb,sachem,newton1,
12345x,
7777755102q,
230857z,xxxsex,scubapro,hayastan,spankit,delasoul,searock6,fallout3,nilrem,
24681357,pashka,voluntee,pharoh,willo,india1,badboy69,roflmao,gunslinger,lovergir,mama12,melange,
640xwfkv,chaton,darkknig,bigman1,aabbccdd,harleyd,birdhouse,giggsy,hiawatha,tiberium,joker7,hello1234,sloopy,tm371855,greendog,solar1,bignose,djohn11,espanol,oswego,iridium,kavitha,pavell,mirjam,cyjdsvujljv,alpha5,deluge,hamme,luntik,turismo,stasya,kjkbnf,caeser,schnecke,tweety1,tralfaz,lambrett,prodigy1,trstno1,pimpshit,werty1,karman,bigboob,pastel,blackmen,matthew8,moomin,q1w2e,gilly,primaver,jimmyg,house2,elviss,
15975321,
1jessica,monaliza,salt55,vfylfhbyrf,harley11,tickleme,murder1,nurgle,kickass1,theresa1,fordtruck,pargolf,managua,inkognito,sherry1,gotit,friedric,metro2033,slk230,freeport,cigarett,
492529,vfhctkm,thebeach,twocats,bakugan,yzerman1,charlieb,motoko,skiman,
1234567w,pussy3,love77,asenna,buffie,
260zntpc,kinkos,access20,mallard1,fuckyou69,monami,rrrrr1,bigdog69,mikola,
1boomer,godzila,ginger2,dima2000,skorpion39,dima1234,hawkdog79,warrior2,ltleirf,supra1,jerusale,monkey01,
333z333,
666888,kelsey1,w8gkz2x1,fdfnfh,msnxbi,qwe123rty,mach1,monkey3,
123456789qq,c123456,nezabudka,barclays,nisse,dasha1,
12345678987654321,dima1993,oldspice,frank2,rabbitt,prettyboy,ov3ajy,iamthema,kawasak,banjo1,gtivr6,collants,gondor,hibees,cowboys2,codfish,buster2,purzel,rubyred,kayaker,bikerboy,qguvyt,masher,sseexx,kenshiro,moonglow,semenova,rosari,eduard1,deltaforce,grouper,bongo1,tempgod,
1taylor,goldsink,qazxsw1,
1jesus,m69fg2w,maximili,marysia,husker1,kokanee,sideout,googl,south1,plumber1,trillian,
00001,
1357900,farkle,
1xxxxx,pascha,emanuela,bagheera,hound1,mylov,newjersey,swampfox,sakic19,torey,geforce,wu4etd,conrail,pigman,martin2,ber02,nascar2,angel69,barty,kitsune,cornet,yes90125,goomba,daking,anthea,sivart,weather1,ndaswf,scoubidou,masterchief,rectum,
3364068,oranges1,copter,
1samanth,eddies,mimoza,ahfywbz,celtic88,
86mets,applemac,amanda11,taliesin,
1angel,imhere,london11,bandit12,killer666,beer1,
06225930,psylocke,james69,schumach,
24pnz6kc,endymion,wookie1,poiu123,birdland,smoochie,lastone,rclaki,olive1,pirat,thunder7,chris69,rocko,
151617,djg4bb4b,lapper,ajcuivd289,colole57,shadow7,dallas21,ajtdmw,executiv,dickies,omegaman,jason12,newhaven,aaaaaas,pmdmscts,s456123789,beatri,applesauce,levelone,strapon,benladen,creaven,ttttt1,saab95,f123456,pitbul,
54321a,sex12345,robert3,atilla,mevefalkcakk,
1johnny,veedub,lilleke,nitsuj,
5t6y7u8i,teddys,bluefox,nascar20,vwjetta,buffy123,playstation3,loverr,qweasd12,lover2,telekom,benjamin1,alemania,neutrino,rockz,valjean,testicle,trinity3,realty,firestarter,
794613852,ardvark,guadalup,philmont,arnold1,holas,zw6syj,birthday299,dover1,sexxy1,gojets,
741236985,cance,blue77,xzibit,qwerty88,komarova,qweszxc,footer,rainger,silverst,ghjcnb,catmando,tatooine,
31217221027711,amalgam,
69dude,qwerty321,roscoe1,
74185,cubby,alfa147,perry1,darock,katmandu,darknight,knicks1,freestuff,
45454,kidman,
4tlved,axlrose,cutie1,quantum1,joseph10,ichigo,pentium3,rfhectkm,rowdy1,woodsink,justforfun,sveta123,pornografia,mrbean,bigpig,tujheirf,delta9,portsmou,hotbod,kartal,
10111213,fkbyf001,pavel1,pistons1,necromancer,verga,c7lrwu,doober,thegame1,hatesyou,sexisfun,
1melissa,tuczno18,bowhunte,gobama,scorch,campeon,bruce2,fudge1,herpderp,bacon1,redsky,blackeye,
19966991,
19992000,ripken8,masturba,
34524815,primax,paulina1,vp6y38,
427cobra,
4dwvjj,dracon,fkg7h4f3v6,longview,arakis,panama1,honda2,lkjhgfdsaz,razors,steels,fqkw5m,dionysus,mariajos,soroka,enriqu,nissa,barolo,king1234,hshfd4n279,holland1,flyer1,tbones,
343104ky,modems,tk421,ybrbnrf,pikapp,sureshot,wooddoor,florida2,mrbungle,vecmrf,catsdogs,axolotl,nowayout,francoi,chris21,toenail,hartland,asdjkl,nikkii,onlyyou,buckskin,fnord,flutie,holen1,rincewind,lefty1,ducky1,
199000,fvthbrf,redskin1,ryno23,lostlove,
19mtpgam19,abercrom,benhur,jordan11,roflcopter,ranma,phillesh,avondale,igromania,p4ssword,jenny123,tttttt1,spycams,cardigan,
2112yyz,sleepy1,paris123,mopars,lakers34,hustler1,james99,matrix3,popimp,
12pack,eggbert,medvedev,testit,performa,logitec,marija,sexybeast,supermanboy,iwantit,rjktcj,jeffer,svarog,halo123,whdbtp,nokia3230,heyjoe,marilyn1,speeder,ibxnsm,prostock,bennyboy,charmin,codydog,parol999,ford9402,jimmer,crayola,
159357258,alex77,joey1,cayuga,phish420,poligon,specops,tarasova,caramelo,draconis,dimon,cyzkhw,june29,getbent,
1guitar,jimjam,dictiona,shammy,flotsam,
0okm9ijn,crapper,technic,fwsadn,rhfdxtyrj,zaq11qaz,anfield1,
159753q,curious1,hip-hop,
1iiiii,gfhjkm2,cocteau,liveevil,friskie,crackhead,b1afra,elektrik,lancer1,b0ll0cks,jasond,z1234567,tempest1,alakazam,asdfasd,duffy1,oneday,dinkle,qazedctgb,kasimir,happy7,salama,hondaciv,nadezda,andretti,cannondale,sparticu,znbvjd,blueice,money01,finster,eldar,moosie,pappa,delta123,neruda,bmw330ci,jeanpaul,malibu1,alevtina,sobeit,travolta,fullmetal,enamorad,mausi,boston12,greggy,smurf1,ratrace,ichiban,ilovepus,davidg,wolf69,villa1,cocopuff,football12,starfury,zxc12345,forfree,fairfiel,dreams1,tayson,mike2,dogday,hej123,oldtimer,sanpedro,clicker,mollycat,roadstar,golfe,lvbnhbq1,topdevice,a1b2c,sevastopol,calli,milosc,fire911,pink123,team3x,nolimit5,snickers1,annies,
09877890,jewel1,steve69,justin11,autechre,killerbe,browncow,slava1,christer,fantomen,redcloud,elenberg,beautiful1,passw0rd1,nazira,advantag,cockring,chaka,rjpzdrf,
99941,az123456,biohazar,energie,bubble1,bmw323,tellme,printer1,glavine,
1starwar,coolbeans,april17,carly1,quagmire,admin2,djkujuhfl,pontoon,texmex,carlos12,thermo,vaz2106,nougat,bob666,
1hockey,
1john,cricke,qwerty10,twinz,totalwar,underwoo,tijger,lildevil,
123q321,germania,freddd,
1scott,beefy,
5t4r3e2w1q,fishbait,nobby,hogger,dnstuff,jimmyc,redknapp,flame1,tinfloor,balla,nfnfhby,yukon1,vixens,batata,danny123,
1zxcvbnm,gaetan,homewood,greats,tester1,green99,
1fucker,sc0tland,starss,glori,arnhem,goatman,
1234asd,supertra,bill123,elguapo,sexylegs,jackryan,usmc69,innow,roaddog,alukard,winter11,crawler,gogiants,rvd420,alessandr,homegrow,gobbler,esteba,valeriy,happy12,
1joshua,hawking,sicnarf,waynes,iamhappy,bayadera,august2,sashas,gotti,dragonfire,pencil1,halogen,borisov,bassingw,
15975346,zachar,sweetp,soccer99,sky123,flipyou,spots3,xakepy,cyclops1,dragon77,rattolo58,motorhea,piligrim,helloween,dmb2010,supermen,shad0w,eatcum,sandokan,pinga,ufkfrnbrf,roksana,amista,pusser,sony1234,azerty1,
1qasw2,ghbdt,q1w2e3r4t5y6u7i8,ktutylf,brehznev,zaebali,shitass,creosote,gjrtvjy,
14938685,naughtyboy,pedro123,
21crack,maurice1,joesakic,nicolas1,matthew9,lbyfhf,elocin,hfcgbplzq,pepper123,tiktak,mycroft,ryan11,firefly1,arriva,cyecvevhbr,loreal,peedee,jessica8,lisa01,anamari,pionex,ipanema,airbag,frfltvbz,
123456789aa,epwr49,casper12,sweethear,sanandreas,wuschel,cocodog,france1,
119911,redroses,erevan,xtvgbjy,bigfella,geneve,volvo850,evermore,amy123,moxie,celebs,geeman,underwor,haslo1,joy123,hallow,chelsea0,
12435687,abarth,
12332145,tazman1,roshan,yummie,genius1,chrisd,ilovelife,seventy7,qaz1wsx2,rocket88,gaurav,bobbyboy,tauchen,roberts1,locksmit,masterof,www111,d9ungl,volvos40,asdasd1,golfers,jillian1,
7xm5rq,arwpls4u,gbhcf2,elloco,football2,muerte,bob101,sabbath1,strider1,killer66,notyou,lawnboy,de7mdf,johnnyb,voodoo2,sashaa,homedepo,bravos,nihao123,braindea,weedhead,rajeev,artem1,camille1,rockss,bobbyb,aniston,frnhbcf,oakridge,biscayne,cxfcnm,dressage,jesus3,kellyann,king69,juillet,holliste,h00ters,ripoff,
123645,
1999ar,eric12,
123777,tommi,dick12,bilder,chris99,rulezz,getpaid,chicubs,ender1,byajhvfnbrf,milkshak,sk8board,freakshow,antonella,monolit,shelb,hannah01,masters1,pitbull1,
1matthew,luvpussy,agbdlcid,panther2,alphas,euskadi,
8318131,ronnie1,
7558795,sweetgirl,cookie59,sequoia,
5552555,ktyxbr,
4500455,money7,severus,shinobu,dbityrf,phisig,rogue2,fractal,redfred,sebastian1,nelli,b00mer,cyberman,zqjphsyf6ctifgu,oldsmobile,redeemer,pimpi,lovehurts,
1slayer,black13,rtynfdh,airmax,g00gle,
1panther,artemon,nopasswo,fuck1234,luke1,trinit,
666000,ziadma,oscardog,davex,hazel1,isgood,demond,james5,construc,
555551,january2,m1911a1,flameboy,merda,nathan12,nicklaus,dukester,hello99,scorpio7,leviathan,dfcbktr,pourquoi,vfrcbv123,shlomo,rfcgth,rocky3,ignatz,ajhneyf,roger123,squeek,
4815162342a,biskit,mossimo,soccer21,gridlock,lunker,popstar,ghhh47hj764,chutney,nitehawk,vortec,gamma1,codeman,dragula,kappasig,rainbow2,milehigh,blueballs,ou8124me,rulesyou,collingw,mystere,aster,astrovan,firetruck,fische,crawfish,hornydog,morebeer,tigerpaw,radost,
144000,
1chance,
1234567890qwe,gracie1,myopia,oxnard,seminoles,evgeni,edvard,partytim,domani,tuffy1,jaimatadi,blackmag,kzueirf,peternor,mathew1,maggie12,henrys,k1234567,fasted,pozitiv,cfdtkbq,jessica7,goleafs,bandito,girl78,sharingan,skyhigh,bigrob,zorros,poopers,oldschoo,pentium2,gripper,norcal,kimba,artiller,moneymak,
00197400,
272829,shadow1212,thebull,handbags,all4u2c,bigman2,civics,godisgoo,section8,bandaid,suzanne1,zorba,
159123,racecars,i62gbq,rambo123,ironroad,johnson2,knobby,twinboys,sausage1,kelly69,enter2,rhjirf,yessss,james12,anguilla,boutit,iggypop,vovochka,
06060,budwiser,romuald,meditate,good1,sandrin,herkules,lakers8,honeybea,
11111111a,miche,rangers9,lobster1,seiko,belova,midcon,mackdadd,bigdaddy1,daddie,sepultur,freddy12,damon1,stormy1,hockey2,bailey12,hedimaptfcor,dcowboys,sadiedog,thuggin,horny123,josie1,nikki2,beaver69,peewee1,mateus,viktorija,barrys,cubswin1,matt1234,timoxa,rileydog,sicilia,luckycat,candybar,julian1,abc456,pussylip,phase1,acadia,catty,
246800,evertonf,bojangle,qzwxec,nikolaj,fabrizi,kagome,noncapa0,marle,popol,hahaha1,cossie,carla10,diggers,spankey,sangeeta,cucciolo,breezer,starwar1,cornholio,rastafari,spring99,yyyyyyy1,webstar,
72d5tn,sasha1234,inhouse,gobuffs,civic1,redstone,
234523,minnie1,rivaldo,angel5,sti2000,xenocide,
11qq11,
1phoenix,herman1,holly123,tallguy,sharks1,madri,superbad,ronin,jalal123,hardbody,
1234567r,assman1,vivahate,buddylee,
38972091,bonds25,
40028922,qrhmis,wp2005,ceejay,pepper01,
51842543,redrum1,renton,varadero,tvxtjk7r,vetteman,djhvbrc,curly1,fruitcak,jessicas,maduro,popmart,acuari,dirkpitt,buick1,bergerac,golfcart,pdtpljxrf,hooch1,dudelove,d9ebk7,
123452000,afdjhbn,greener,
123455432,parachut,mookie12,
123456780,jeepcj5,potatoe,sanya,qwerty2010,waqw3p,gotika,freaky1,chihuahu,buccanee,ecstacy,crazyboy,slickric,blue88,fktdnbyf,
2004rj,delta4,
333222111,calient,ptbdhw,
1bailey,blitz1,sheila1,master23,hoagie,pyf8ah,orbita,daveyboy,prono1,delta2,heman,
1horny,tyrik123,ostrov,md2020,herve,rockfish,el546218,rfhbyjxrf,chessmaster,redmoon,lenny1,
215487,tomat,guppy,amekpass,amoeba,my3girls,nottingh,kavita,natalia1,puccini,fabiana,
8letters,romeos,netgear,casper2,taters,gowings,iforgot1,pokesmot,pollit,lawrun,petey1,rosebuds,
007jr,gthtcnhjqrf,k9dls02a,neener,azertyu,duke11,manyak,tiger01,petros,supermar,mangas,twisty,spotter,takagi,dlanod,qcmfd454,tusymo,zz123456,chach,navyblue,gilbert1,
2kash6zq,avemaria,
1hxboqg2s,viviane,lhbjkjubz2957704,nowwowtg,
1a2b3c4,m0rn3,kqigb7,superpuper,juehtw,gethigh,theclown,makeme,pradeep,sergik,deion21,nurik,devo2706,nbvibt,roman222,kalima,nevaeh,martin7,anathema,florian1,tamwsn3sja,dinmamma,
133159,
123654q,slicks,pnp0c08,yojimbo,skipp,kiran,pussyfuck,teengirl,apples12,myballs,angeli,
1234a,
125678,opelastra,blind1,armagedd,fish123,pitufo,chelseaf,thedevil,nugget1,cunt69,beetle1,carter15,apolon,collant,password00,fishboy,djkrjdf,deftone,celti,three11,cyrus1,lefthand,skoal1,ferndale,aries1,fred01,roberta1,chucks,cornbread,lloyd1,icecrea,cisco123,newjerse,vfhrbpf,passio,volcom1,rikimaru,yeah11,djembe,facile,a1l2e3x4,batman7,nurbol,lorenzo1,monica69,blowjob1,
998899,spank1,
233391,n123456,
1bear,bellsout,
999998,celtic67,sabre1,putas,y9enkj,alfabeta,heatwave,honey123,hard4u,insane1,xthysq,magnum1,lightsaber,
123qweqwe,fisher1,pixie1,precios,benfic,thegirls,bootsman,
4321rewq,nabokov,hightime,djghjc,
1chelsea,junglist,august16,t3fkvkmj,
1232123,lsdlsd12,chuckie1,pescado,granit,toogood,cathouse,natedawg,bmw530,
123kid,hajime,
198400,engine1,wessonnn,kingdom1,novembre,
1rocks,kingfisher,qwerty89,jordan22,zasranec,megat,sucess,installutil,fetish01,yanshi1982,
1313666,
1314520,clemence,wargod,time1,newzealand,snaker,
13324124,cfrehf,hepcat,mazahaka,bigjay,denisov,eastwest,
1yellow,mistydog,cheetos,
1596357,ginger11,mavrik,bubby1,bhbyf,pyramide,giusepp,luthien,honda250,andrewjackie,kentavr,lampoon,zaq123wsx,sonicx,davidh,
1ccccc,gorodok,windsong,programm,blunt420,vlad1995,zxcvfdsa,tarasov,mrskin,sachas,mercedes1,koteczek,rawdog,honeybear,stuart1,kaktys,richard7,
55555n,azalia,hockey10,scouter,francy,
1xxxxxx,julie456,tequilla,penis123,schmoe,tigerwoods,
1ferrari,popov,snowdrop,matthieu,smolensk,cornflak,jordan01,love2000,
23wesdxc,kswiss,anna2000,geniusnet,baby2000,
33ds5x,waverly,onlyone4,networkingpe,raven123,blesse,gocards,wow123,pjflkork,juicey,poorboy,freeee,billybo,shaheen,zxcvbnm.,berlit,truth1,gepard,ludovic,gunther1,bobby2,bob12345,sunmoon,septembr,bigmac1,bcnjhbz,seaking,all4u,
12qw34er56ty,bassie,nokia5228,
7355608,sylwia,charvel,billgate,davion,chablis,catsmeow,kjiflrf,amylynn,rfvbkkf,mizredhe,handjob,jasper12,erbol,solara,bagpipe,biffer,notime,erlan,
8543852,sugaree,oshkosh,fedora,bangbus,
5lyedn,longball,teresa1,bootyman,aleksand,qazwsxedc12,nujbhc,tifosi,zpxvwy,lights1,slowpoke,tiger12,kstate,password10,alex69,collins1,
9632147,doglover,baseball2,security1,grunts,orange2,godloves,
213qwe879,julieb,
1qazxsw23edcvfr4,noidea,
8uiazp,betsy1,junior2,parol123,
123456zz,piehonkii,kanker,bunky,hingis,reese1,qaz123456,sidewinder,tonedup,footsie,blackpoo,jalapeno,mummy1,always1,josh1,rockyboy,plucky,chicag,nadroj,blarney,blood123,wheaties,packer1,ravens1,mrjones,gfhjkm007,anna2010,awatar,guitar12,hashish,scale1,tomwaits,amrita,fantasma,rfpfym,pass2,tigris,bigair,slicker,sylvi,shilpa,cindylou,archie1,bitches1,poppys,ontime,horney1,camaroz28,alladin,bujhm,cq2kph,alina1,wvj5np,
1211123a,tetons,scorelan,concordi,morgan2,awacs,shanty,tomcat14,andrew123,bear69,vitae,fred99,chingy,octane,belgario,fatdaddy,rhodan,password23,sexxes,boomtown,joshua01,war3demo,my2kids,buck1,hot4you,monamour,
12345aa,yumiko,parool,carlton1,neverland,rose12,right1,sociald,grouse,brandon0,cat222,alex00,civicex,bintang,malkav,arschloc,dodgeviper,qwerty666,goduke,dante123,boss1,ontheroc,corpsman,love14,uiegu451,hardtail,irondoor,ghjrehfnehf,
36460341,konijn,h2slca,kondom25,
123456ss,cfytxrf,btnjey,nando,freemail,comander,natas666,siouxsie,hummer1,biomed,dimsum,yankees0,diablo666,lesbian1,pot420,jasonm,glock23,jennyb,itsmine,lena2010,whattheh,beandip,abaddon,kishore,signup,apogee,biteme12,suzieq,vgfun4,iseeyou,rifleman,qwerta,
4pussy,hawkman,guest1,june17,dicksuck,bootay,cash12,bassale,ktybyuhfl,leetch,nescafe,
7ovtgimc,clapton1,auror,boonie,tracker1,john69,bellas,cabinboy,yonkers,silky1,ladyffesta,drache,kamil1,davidp,bad123,snoopy12,sanche,werthvfy,achille,nefertiti,gerald1,slage33,warszawa,macsan26,mason123,kotopes,welcome8,nascar99,kiril,
77778888,hairy1,monito,comicsans,
81726354,killabee,arclight,yuo67,feelme,
86753099,nnssnn,monday12,
88351132,
88889999,websters,subito,asdf12345,vaz2108,zvbxrpl,
159753456852,rezeda,multimed,noaccess,henrique,tascam,captiva,zadrot,hateyou,sophie12,
123123456,snoop1,charlie8,birmingh,hardline,libert,azsxdcf,
89172735872,rjpthju,bondar,philips1,olegnaruto,myword,yakman,stardog,banana12,
1234567890w,farout,annick,duke01,rfj422,billard,glock19,shaolin1,master10,cinderel,deltaone,manning1,biggreen,sidney1,patty1,goforit1,
766rglqy,sevendus,aristotl,armagedo,blumen,gfhfyjz,kazakov,lekbyxxx,accord1,idiota,soccer16,texas123,victoire,ololo,chris01,bobbbb,
299792458,eeeeeee1,confiden,
07070,clarks,techno1,kayley,stang1,wwwwww1,uuuuu1,neverdie,jasonr,cavscout,
481516234,mylove1,shaitan,
1qazxcvb,barbaros,
123456782000,
123wer,thissucks,
7seven,
227722,faerie,hayduke,dbacks,snorkel,zmxncbv,tiger99,unknown1,melmac,polo1234,sssssss1,
1fire,
369147,bandung,bluejean,nivram,stanle,ctcnhf,soccer20,blingbli,dirtball,alex2112,
183461,skylin,boobman,geronto,brittany1,yyz2112,gizmo69,ktrcec,dakota12,chiken,sexy11,vg08k714,bernadet,
1bulldog,beachs,hollyb,maryjoy,margo1,danielle1,chakra,alexand,hullcity,matrix12,sarenna,pablos,antler,supercar,chomsky,german1,airjordan,
545ettvy,camaron,flight1,netvideo,tootall,valheru,
481516,
1234as,skimmer,redcross,inuyash,uthvfy,
1012nw,edoardo,bjhgfi,golf11,
9379992a,lagarto,socball,boopie,krazy,.adgjmptw,gaydar,kovalev,geddylee,firstone,turbodog,loveee,
135711,badbo,trapdoor,opopop11,danny2,max2000,
526452,kerry1,leapfrog,daisy2,
134kzbip,
1andrea,playa1,peekab00,heskey,pirrello,gsewfmck,dimon4ik,puppie,chelios,
554433,hypnodanny,fantik,yhwnqc,ghbdtngjrf,anchorag,buffett1,fanta,sappho,
024680,vialli,chiva,lucylu,hashem,exbntkm,thema,
23jordan,jake11,wildside,smartie,emerica,
2wj2k9oj,ventrue,timoth,lamers,baerchen,suspende,boobis,denman85,
1adam12,otello,king12,dzakuni,qsawbbs,isgay,porno123,jam123,daytona1,tazzie,bunny123,amaterasu,jeffre,crocus,mastercard,bitchedup,chicago7,aynrand,intel1,tamila,alianza,mulch,merlin12,rose123,alcapone,mircea,loveher,joseph12,chelsea6,dorothy1,wolfgar,unlimite,arturik,qwerty3,paddy1,piramid,linda123,cooool,millie1,warlock1,forgotit,tort02,ilikeyou,avensis,loveislife,dumbass1,clint1,
2110se,drlove,olesia,kalinina,sergey123,
123423,alicia1,markova,tri5a3,media1,willia1,xxxxxxx1,beercan,smk7366,jesusislord,motherfuck,smacker,birthday5,jbaby,harley2,hyper1,a9387670a,honey2,corvet,gjmptw,rjhjkmbien,apollon,madhuri,
3a5irt,cessna17,saluki,digweed,tamia1,yja3vo,cfvlehfr,
1111111q,martyna,stimpy1,anjana,yankeemp,jupiler,idkfa,
1blue,fromv,afric,
3xbobobo,liverp00l,nikon1,amadeus1,acer123,napoleo,david7,vbhjckfdf,mojo69,percy1,pirates1,grunt1,alenushka,finbar,zsxdcf,mandy123,
1fred,timewarp,
747bbb,druids,julia123,
123321qq,spacebar,dreads,fcbarcelona,angela12,anima,christopher1,stargazer,
123123s,hockey11,brewski,marlbor,blinker,motorhead,damngood,werthrf,letmein3,moremoney,killer99,anneke,eatit,pilatus,andrew01,fiona1,maitai,blucher,zxgdqn,e5pftu,nagual,panic1,andron,openwide,alphabeta,alison1,chelsea8,fende,mmm666,
1shot2,a19l1980,
123456@,
1black,m1chael,vagner,realgood,maxxx,vekmnbr,stifler,
2509mmh,tarkan,sherzod,
1234567b,gunners1,artem2010,shooby,sammie1,p123456,piggie,abcde12345,nokia6230,moldir,piter,
1qaz3edc,frequenc,acuransx,
1star,nikeair,alex21,dapimp,ranjan,ilovegirls,anastasiy,berbatov,manso,
21436587,leafs1,
106666,angelochek,ingodwetrust,
123456aaa,deano,korsar,pipetka,thunder9,minka,himura,installdevic,
1qqqqq,digitalprodu,suckmeoff,plonker,headers,vlasov,ktr1996,windsor1,mishanya,garfield1,korvin,littlebit,azaz09,vandamme,scripto,s4114d,passward,britt1,r1chard,ferrari5,running1,
7xswzaq,falcon2,pepper76,trademan,ea53g5,graham1,volvos80,reanimator,micasa,
1234554321q,kairat,escorpion,sanek94,karolina1,kolovrat,karen2,
1qaz@wsx,racing1,splooge,sarah2,deadman1,creed1,nooner,minicoop,oceane,room112,charme,
12345ab,summer00,wetcunt,drewman,nastyman,redfire,appels,merlin69,dolfin,bornfree,diskette,ohwell,
12345678qwe,jasont,madcap,cobra2,dolemit1,whatthehell,juanit,voldemar,rocke,bianc,elendil,vtufgjkbc,hotwheels,spanis,sukram,pokerface,k1ller,freakout,dontae,realmadri,drumss,gorams,
258789,snakey,jasonn,whitewolf,befree,johnny99,pooka,theghost,kennys,vfvektxrf,toby1,jumpman23,deadlock,barbwire,stellina,alexa1,dalamar,mustanggt,northwes,tesoro,chameleo,sigtau,satoshi,george11,hotcum,cornell1,golfer12,geek01d,trololo,kellym,megapolis,pepsi2,hea666,monkfish,blue52,sarajane,bowler1,skeets,ddgirls,hfccbz,bailey01,isabella1,dreday,moose123,baobab,crushme,
000009,veryhot,roadie,meanone,mike18,henriett,dohcvtec,moulin,gulnur,adastra,angel9,western1,natura,sweetpe,dtnfkm,marsbar,daisys,frogger1,virus1,redwood1,streetball,fridolin,d78unhxq,midas,michelob,cantik,sk2000,kikker,macanudo,rambone,fizzle,
20000,peanuts1,cowpie,stone32,astaroth,dakota01,redso,mustard1,sexylove,giantess,teaparty,bobbin,beerbong,monet1,charles3,anniedog,anna1988,cameleon,longbeach,tamere,qpful542,mesquite,waldemar,
12345zx,iamhere,lowboy,canard,granp,daisymay,love33,moosejaw,nivek,ninjaman,shrike01,aaa777,
88002000600,vodolei,bambush,falcor,harley69,alphaomega,severine,grappler,bosox,twogirls,gatorman,vettes,buttmunch,chyna,excelsio,crayfish,birillo,megumi,lsia9dnb9y,littlebo,stevek,hiroyuki,firehous,master5,briley2,gangste,chrisk,camaleon,bulle,troyboy,froinlaven,mybutt,sandhya,rapala,jagged,crazycat,lucky12,jetman,wavmanuk,
1heather,beegee,negril,mario123,funtime1,conehead,abigai,mhorgan,patagoni,travel1,backspace,frenchfr,mudcat,dashenka,baseball3,rustys,
741852kk,dickme,baller23,griffey1,suckmycock,fuhrfzgc,jenny2,spuds,berlin1,justfun,icewind,bumerang,pavlusha,minecraft123,shasta1,ranger12,
123400,twisters,buthead,miked,finance1,dignity7,hello9,lvjdp383,jgthfnjh,dalmatio,paparoach,miller31,
2bornot2b,fathe,monterre,theblues,satans,schaap,jasmine2,sibelius,manon,heslo,jcnhjd,shane123,natasha2,pierrot,bluecar,iloveass,harriso,red12,london20,job314,beholder,reddawg,fuckyou!,pussylick,bologna1,austintx,ole4ka,blotto,onering,jearly,balbes,lightbul,bighorn,crossfir,lee123,prapor,
1ashley,gfhjkm22,wwe123,
09090,sexsite,marina123,jagua,witch1,schmoo,parkview,dragon3,chilango,ultimo,abramova,nautique,
2bornot2,duende,
1arthur,nightwing,surfboar,quant4307,
15s9pu03,karina1,shitball,walleye1,wildman1,whytesha,
1morgan,my2girls,polic,baranova,berezuckiy,kkkkkk1,forzima,fornow,qwerty02,gokart,suckit69,davidlee,whatnow,edgard,tits1,bayshore,
36987412,ghbphfr,daddyy,explore1,zoidberg,
5qnzjx,morgane,danilov,blacksex,mickey12,balsam,
83y6pv,sarahc,slaye,all4u2,slayer69,nadia1,rlzwp503,
4cranker,kaylie,numberon,teremok,wolf12,deeppurple,goodbeer,aaa555,
66669999,whatif,harmony1,ue8fpw,
3tmnej,
254xtpss,dusty197,wcksdypk,zerkalo,dfnheirf,motorol,digita,whoareyou,darksoul,manics,rounders,killer11,d2000lb,cegthgfhjkm,catdog1,beograd,pepsico,julius1,
123654987,softbal,killer23,weasel1,lifeson,q123456q,
444555666,bunches,andy1,darby1,service01,bear11,jordan123,amega,duncan21,yensid,lerxst,rassvet,bronco2,fortis,pornlove,paiste,
198900,asdflkjh,
1236547890,futur,eugene1,winnipeg261,fk8bhydb,seanjohn,brimston,matthe1,bitchedu,crisco,
302731,roxydog,woodlawn,volgograd,ace1210,boy4u2ownnyc,laura123,pronger,parker12,z123456z,andrew13,longlife,sarang,drogba,gobruins,soccer4,holida,espace,almira,murmansk,green22,safina,wm00022,
1chevy,schlumpf,doroth,ulises,golf99,hellyes,detlef,mydog,erkina,bastardo,mashenka,sucram,wehttam,generic1,
195000,spaceboy,lopas123,scammer,skynyrd,daddy2,titani,ficker,cr250r,kbnthfnehf,takedown,sticky1,davidruiz,desant,nremtp,painter1,bogies,agamemno,kansas1,smallfry,archi,
2b4dnvsx,
1player,saddie,peapod,
6458zn7a,qvw6n2,gfxqx686,twice2,sh4d0w3d,mayfly,
375125,phitau,yqmbevgk,
89211375759,kumar1,pfhfpf,toyboy,way2go,
7pvn4t,pass69,chipster,spoony,buddycat,diamond3,rincewin,hobie,david01,billbo,hxp4life,matild,pokemon2,dimochka,clown1,
148888,jenmt3,cuxldv,cqnwhy,cde34rfv,simone1,verynice,toobig,pasha123,mike00,maria2,lolpop,firewire,dragon9,martesana,a1234567890,birthday3,providen,kiska,pitbulls,
556655,misawa,damned69,martin11,goldorak,gunship,glory1,winxclub,sixgun,splodge,agent1,splitter,dome69,ifghjb,eliza1,snaiper,wutang36,phoenix7,
666425,arshavin,paulaner,namron,m69fg1w,qwert1234,terrys,zesyrmvu,joeman,scoots,dwml9f,
625vrobg,sally123,gostoso,symow8,pelota,c43qpul5rz,majinbuu,lithium1,bigstuff,horndog1,kipelov,kringle,
1beavis,loshara,octobe,jmzacf,
12342000,qw12qw,runescape1,chargers1,krokus,piknik,jessy,
778811,gjvbljh,
474jdvff,pleaser,misskitty,breaker1,
7f4df451,dayan,twinky,yakumo,chippers,matia,tanith,len2ski1,manni,nichol1,f00b4r,nokia3110,standart,
123456789i,shami,steffie,larrywn,chucker,john99,chamois,jjjkkk,penmouse,ktnj2010,gooners,hemmelig,rodney1,merlin01,bearcat1,
1yyyyy,
159753z,
1fffff,
1ddddd,thomas11,gjkbyrf,ivanka,f1f2f3,petrovna,phunky,conair,brian2,creative1,klipsch,vbitymrf,freek,breitlin,cecili,westwing,gohabsgo,tippmann,
1steve,quattro6,fatbob,sp00ky,rastas,
1123581,redsea,rfnmrf,jerky1,
1aaaaaa,spk666,simba123,qwert54321,
123abcd,beavis69,fyfyfc,starr1,
1236547,peanutbutter,sintra,
12345abcde,
1357246,abcde1,climbon,
755dfx,mermaids,monte1,serkan,geilesau,
777win,jasonc,parkside,imagine1,rockhead,producti,playhard,principa,spammer,gagher,escada,tsv1860,dbyjuhfl,cruiser1,kennyg,montgome,
2481632,pompano,cum123,angel6,sooty,bear01,april6,bodyhamm,pugsly,getrich,mikes,pelusa,fosgate,jasonp,rostislav,kimberly1,
128mo,dallas11,gooner1,manuel1,cocacola1,imesh,
5782790,password8,daboys,
1jones,intheend,e3w2q1,whisper1,madone,pjcgujrat,
1p2o3i,jamesp,felicida,nemrac,phikap,firecat,jrcfyjxrf,matt12,bigfan,doedel,
005500,jasonx,
1234567k,badfish,goosey,utjuhfabz,wilco,artem123,igor123,spike123,jor23dan,dga9la,v2jmsz,morgan12,avery1,dogstyle,natasa,
221195ws,twopac,oktober7,karthik,poop1,mightymo,davidr,zermatt,jehova,aezakmi1,dimwit,monkey5,serega123,qwerty111,blabl,casey22,boy123,
1clutch,asdfjkl1,hariom,bruce10,jeep95,
1smith,sm9934,karishma,bazzzz,aristo,
669e53e1,nesterov,kill666,fihdfv,
1abc2,anna1,silver11,mojoman,telefono,goeagles,sd3lpgdr,rfhfynby,melinda1,llcoolj,idteul,bigchief,rocky13,timberwo,ballers,gatekeep,kashif,hardass,anastasija,max777,vfuyjkbz,riesling,agent99,kappas,dalglish,tincan,orange3,turtoise,abkbvjy,mike24,hugedick,alabala,geolog,aziza,devilboy,habanero,waheguru,funboy,freedom5,natwest,seashore,impaler,qwaszx1,pastas,bmw535,tecktonik,mika00,jobsearc,pinche,puntang,aw96b6,
1corvett,skorpio,foundati,zzr1100,gembird,vfnhjcrby,soccer18,vaz2110,peterp,archer1,cross1,samedi,dima1992,hunter99,lipper,hotbody,zhjckfdf,ducati1,trailer1,
04325956,cheryl1,benetton,kononenko,sloneczko,rfgtkmrf,nashua,balalaika,ampere,eliston,dorsai,digge,flyrod,oxymoron,minolta,ironmike,majortom,karimov,fortun,putaria,an83546921an13,blade123,franchis,mxaigtg5,dynxyu,devlt4,brasi,terces,wqmfuh,nqdgxz,dale88,minchia,seeyou,housepen,
1apple,
1buddy,mariusz,bighouse,tango2,flimflam,nicola1,qwertyasd,tomek1,shumaher,kartoshka,bassss,canaries,redman1,
123456789as,preciosa,allblacks,navidad,tommaso,beaudog,forrest1,green23,ryjgjxrf,go4it,ironman2,badnews,butterba,
1grizzly,isaeva,rembrand,toront,
1richard,bigjon,yfltymrf,
1kitty,
4ng62t,littlejo,wolfdog,ctvtyjd,spain1,megryan,tatertot,raven69,
4809594q,tapout,stuntman,a131313,lagers,hotstuf,lfdbl11,stanley2,advokat,boloto,
7894561,dooker,adxel187,cleodog,
4play,
0p9o8i,masterb,bimota,charlee,toystory,
6820055,
6666667,crevette,
6031769,corsa,bingoo,dima1990,tennis11,samuri,avocado,melissa6,unicor,habari,metart,needsex,cockman,hernan,
3891576,
3334444,amigo1,gobuffs2,mike21,allianz,
2835493,
179355,midgard,joey123,oneluv,ellis1,towncar,shonuff,scouse,tool69,thomas19,chorizo,jblaze,lisa1,dima1999,sophia1,anna1989,vfvekbxrf,krasavica,redlegs,jason25,tbontb,katrine,eumesmo,vfhufhbnrf,
1654321,asdfghj1,motdepas,booga,doogle,
1453145,byron1,
158272,kardinal,tanne,fallen1,abcd12345,ufyljy,n12345,kucing,burberry,bodger,
1234578,februar,
1234512,nekkid,prober,harrison1,idlewild,rfnz90,foiegras,pussy21,bigstud,denzel,tiffany2,bigwill,
1234567890zzz,hello69,compute1,viper9,hellspaw,trythis,gococks,dogballs,delfi,lupine,millenia,newdelhi,charlest,basspro,
1mike,joeblack,
975310,
1rosebud,batman11,misterio,fucknut,charlie0,august11,juancho,ilonka,jigei743ks,adam1234,
889900,goonie,alicat,ggggggg1,
1zzzzzzz,sexywife,northstar,chris23,
888111,containe,trojan1,jason5,graikos,
1ggggg,
1eeeee,tigers01,indigo1,hotmale,jacob123,mishima,richard3,cjxb2014,coco123,meagain,thaman,wallst,edgewood,bundas,
1power,matilda1,maradon,hookedup,jemima,r3vi3wpass,
2004-
10-,mudman,taz123,xswzaq,emerson1,anna21,warlord1,toering,pelle,tgwdvu,masterb8,wallstre,moppel,priora,ghjcnjrdfif,yoland,
12332100,
1j9e7f6f,jazzzz,yesman,brianm,
42qwerty42,
12345698,darkmanx,nirmal,john31,bb123456,neuspeed,billgates,moguls,fj1200,hbhlair,shaun1,ghbdfn,
305pwzlr,nbu3cd,susanb,pimpdad,mangust6403,joedog,dawidek,gigante,
708090,
703751,
700007,ikalcr,tbivbn,
697769,marvi,iyaayas,karen123,jimmyboy,dozer1,e6z8jh,bigtime1,getdown,kevin12,brookly,zjduc3,nolan1,cobber,yr8wdxcq,liebe,m1garand,blah123,
616879,action1,
600000,sumitomo,albcaz,asian1,
557799,dave69,
556699,sasa123,streaker,michel1,karate1,buddy7,daulet,koks888,roadtrip,wapiti,oldguy,illini1,
1234qq,mrspock,kwiatek,buterfly,august31,jibxhq,jackin,taxicab,tristram,talisker,
446655,
444666,chrisa,freespace,vfhbfyyf,chevell,
444333,notyours,
442244,christian1,seemore,sniper12,marlin1,joker666,multik,devilish,crf450,cdfoli,eastern1,asshead,duhast,voyager2,cyberia,
1wizard,cybernet,iloveme1,veterok,karandash,
392781,looksee,diddy,diabolic,foofight,missey,herbert1,bmw318i,premier1,zsfmpv,eric1234,dun6sm,fuck11,
345543,spudman,lurker,bitem,lizzy1,ironsink,minami,
339311,s7fhs127,sterne,
332233,plankton,galax,azuywe,changepa,august25,mouse123,sikici,killer69,xswqaz,quovadis,gnomik,
033028pw,
777777a,barrakuda,spawn666,goodgod,slurp,morbius,yelnats,cujo31,norman1,fastone,earwig,aureli,wordlife,bnfkbz,yasmi,austin123,timberla,missy2,legalize,netcom,liljon,takeit,georgin,
987654321z,warbird,vitalina,all4u3,mmmmmm1,bichon,ellobo,wahoos,fcazmj,aksarben,lodoss,satnam,vasili,
197800,maarten,sam138989,
0u812,ankita,walte,prince12,anvils,bestia,hoschi,
198300,univer,jack10,ktyecbr,gr00vy,hokie,wolfman1,fuckwit,geyser,emmanue,ybrjkftd,qwerty33,karat,dblock,avocat,bobbym,womersle,
1please,nostra,dayana,billyray,alternat,iloveu1,qwerty69,rammstein1,mystikal,winne,drawde,executor,craxxxs,ghjcnjnf,
999888777,welshman,access123,
963214785,
951753852,babe69,fvcnthlfv,****me,
666999666,testing2,
199200,nintendo64,oscarr,guido8,zhanna,gumshoe,jbird,
159357456,pasca,
123452345,satan6,mithrand,fhbirf,aa1111aa,viggen,ficktjuv,radial9,davids1,rainbow7,futuro,hipho,platin,poppy123,rhenjq,fulle,rosit,chicano,scrumpy,lumpy1,seifer,uvmrysez,autumn1,xenon,susie1,
7u8i
9o
0p,gamer1,sirene,muffy1,monkeys1,kalinin,olcrackmaster,hotmove,uconn,gshock,merson,lthtdyz,pizzaboy,peggy1,pistache,pinto1,fishka,ladydi,pandor,baileys,hungwell,redboy,rookie1,amanda01,passwrd,clean1,matty1,tarkus,jabba1,bobster,beer30,solomon1,moneymon,sesamo,fred11,sunnysid,jasmine5,thebears,putamadre,workhard,flashbac,counter1,liefde,magnat,corky1,green6,abramov,lordik,univers,shortys,david3,vip123,gnarly,
1234567s,billy2,honkey,deathstar,grimmy,govinda,direktor,
12345678s,linus1,shoppin,rekbrjdf,santeria,prett,berty75,mohican,daftpunk,uekmyfhf,chupa,strats,ironbird,giants56,salisbur,koldun,summer04,pondscum,jimmyj,miata1,george3,redshoes,weezie,bartman1,
0p9o8i7u,s1lver,dorkus,
125478,omega9,sexisgood,mancow,patric1,jetta1,
074401,ghjuhtcc,gfhjk,bibble,terry2,
123213,medicin,rebel2,hen3ry,
4freedom,aldrin,lovesyou,browny,renwod,winnie1,belladon,
1house,tyghbn,blessme,rfhfrfnbwf,haylee,deepdive,booya,phantasy,gansta,cock69,
4mnveh,gazza1,redapple,structur,anakin1,manolito,steve01,poolman,chloe123,vlad1998,qazwsxe,pushit,random123,ontherocks,o236nq,brain1,dimedrol,agape,rovnogod,
1balls,knigh,alliso,love01,wolf01,flintstone,beernuts,tuffguy,isengard,highfive,alex23,casper99,rubina,getreal,chinita,italian1,airsoft,qwerty23,muffdiver,willi1,grace123,orioles1,redbull1,chino1,ziggy123,breadman,estefan,ljcneg,gotoit,logan123,wideglid,mancity1,treess,qwe123456,kazumi,qweasdqwe,oddworld,naveed,protos,towson,a801016,godislov,at_asp,bambam1,soccer5,dark123,
67vette,carlos123,hoser1,scouser,wesdxc,pelus,dragon25,pflhjn,abdula,
1freedom,policema,tarkin,eduardo1,mackdad,gfhjkm11,lfplhfgthvf,adilet,zzzzxxxx,childre,samarkand,cegthgegth,shama,fresher,silvestr,greaser,allout,plmokn,sexdrive,nintendo1,fantasy7,oleander,fe126fd,crumpet,pingzing,dionis,hipster,yfcnz,requin,calliope,jerome1,housecat,abc123456789,doghot,snake123,augus,brillig,chronic1,gfhjkbot,expediti,noisette,master7,caliban,whitetai,favorite3,lisamari,educatio,ghjhjr,saber1,zcegth,
1958proman,vtkrbq,milkdud,imajica,thehip,bailey10,hockey19,dkflbdjcnjr,j123456,bernar,aeiouy,gamlet,deltachi,endzone,conni,bcgfybz,brandi1,auckland2010,
7653ajl1,mardigra,testuser,bunko18,camaro67,
36936,greenie,
454dfmcq,
6xe8j2z4,mrgreen,ranger5,headhunt,banshee1,moonunit,zyltrc,hello3,pussyboy,stoopid,tigger11,yellow12,drums1,blue02,kils123,junkman,banyan,jimmyjam,tbbucs,sportster,badass1,joshie,braves10,lajolla,
1amanda,antani,
78787,antero,
19216801,chich,rhett32,sarahm,beloit,sucker69,corkey,nicosnn,rccola,caracol,daffyduc,bunny2,mantas,monkies,hedonist,cacapipi,ashton1,sid123,
19899891,patche,greekgod,cbr1000,leader1,
19977991,ettore,chongo,
113311,picass,cfif123,rhtfnbd,frances1,andy12,minnette,bigboy12,green69,alices,babcia,partyboy,javabean,freehand,qawsed123,xxx111,harold1,passwo,jonny1,kappa1,w2dlww3v5p,
1merlin,
222999,tomjones,jakeman,franken,markhegarty,john01,carole1,daveman,caseys,apeman,mookey,moon123,claret,titans1,residentevil,campari,curitiba,dovetail,aerostar,jackdaniels,basenji,zaq12w,glencoe,biglove,goober12,ncc170,far7766,monkey21,eclipse9,
1234567v,vanechka,aristote,grumble,belgorod,abhishek,neworleans,pazzword,dummie,sashadog,diablo11,mst3000,koala1,maureen1,jake99,isaiah1,funkster,gillian1,ekaterina20,chibears,astra123,
4me2no,winte,skippe,necro,windows9,vinograd,demolay,vika2010,quiksilver,
19371ayj,dollar1,shecky,qzwxecrv,butterfly1,merrill1,scoreland,
1crazy,megastar,mandragora,track1,dedhed,jacob2,newhope,qawsedrftgyh,shack1,samvel,gatita,shyster,clara1,telstar,office1,crickett,truls,nirmala,joselito,chrisl,lesnik,aaaabbbb,austin01,leto2010,bubbie,aaa12345,widder,
234432,salinger,mrsmith,qazsedcft,newshoes,skunks,yt1300,bmw316,arbeit,smoove,
123321qweewq,
123qazwsx,
22221111,seesaw,
0987654321a,peach1,
1029384756q,sereda,gerrard8,shit123,batcave,energy1,peterb,mytruck,peter12,alesya,tomato1,spirou,laputaxx,magoo1,omgkremidia,knight12,norton1,vladislava,shaddy,austin11,jlbyjxrf,kbdthgekm,punheta,fetish69,exploiter,roger2,manstein,gtnhjd,
32615948worms,dogbreath,ujkjdjkjvrf,vodka1,ripcord,fatrat,kotek1,tiziana,larrybir,thunder3,nbvfnb,
9kyq6fge,remembe,likemike,gavin1,shinigam,yfcnfcmz,
13245678,jabbar,vampyr,ane4ka,lollipo,ashwin,scuderia,limpdick,deagle,
3247562,vishenka,fdhjhf,alex02,volvov70,mandys,bioshock,caraca,tombraider,matrix69,jeff123,
13579135,parazit,black3,noway1,diablos,hitmen,garden1,aminor,decembe,august12,b00ger,
006900,
452073t,schach,hitman1,mariner1,vbnmrf,paint1,
742617000027,bitchboy,pfqxjyjr,
5681392,marryher,sinnet,malik1,muffin12,aninha,piolin,lady12,traffic1,cbvjyf,
6345789,june21,ivan2010,ryan123,honda99,gunny,coorslight,asd321,hunter69,
7224763,sonofgod,dolphins1,
1dolphin,pavlenko,woodwind,lovelov,pinkpant,gblfhfcbyf,hotel1,justinbiebe,vinter,jeff1234,mydogs,
1pizza,boats1,parrothe,shawshan,brooklyn1,cbrown,
1rocky,hemi426,dragon64,redwings1,porsches,ghostly,hubbahub,buttnut,b929ezzh,sorokina,flashg,fritos,b7mguk,metatron,treehous,vorpal,
8902792,marcu,free123,labamba,chiefs1,zxc123zxc,keli_14,hotti,
1steeler,money4,rakker,foxwoods,free1,ahjkjd,sidorova,snowwhit,neptune1,mrlover,trader1,nudelamb,baloo,power7,deltasig,bills1,trevo,
7gorwell,nokia6630,nokia5320,madhatte,
1cowboys,manga1,namtab,sanjar,fanny1,birdman1,adv12775,carlo1,dude1998,babyhuey,nicole11,madmike,ubvyfpbz,qawsedr,lifetec,skyhook,stalker123,toolong,robertso,ripazha,zippy123,
1111111a,manol,dirtyman,analslut,jason3,dutches,minhasenha,cerise,fenrir,jayjay1,flatbush,franka,bhbyjxrf,
26429vadim,lawntrax,
198700,fritzy,nikhil,ripper1,harami,truckman,nemvxyheqdd5oqxyxyzi,gkfytnf,bugaboo,cableman,hairpie,xplorer,movado,hotsex69,mordred,ohyeah1,patrick3,frolov,katieh,
4311111q,mochaj,presari,bigdo,
753951852,freedom4,kapitan,tomas1,
135795,sweet123,pokers,shagme,tane4ka,sentinal,ufgyndmv,jonnyb,skate123,
123456798,
123456788,very1,gerrit,damocles,dollarbi,caroline1,lloyds,pizdets,flatland,
92702689,dave13,meoff,ajnjuhfabz,achmed,madison9,
744744z,amonte,avrillavigne,elaine1,norma1,asseater,everlong,buddy23,cmgang1,trash1,mitsu,flyman,ulugbek,june27,magistr,fittan,sebora64,dingos,sleipnir,caterpil,cindys,
212121qaz,partys,dialer,gjytltkmybr,qweqaz,janvier,rocawear,lostboy,aileron,sweety1,everest1,pornman,boombox,potter1,blackdic,
44448888,eric123,
112233aa,
2502557i,novass,nanotech,yourname,x12345,indian1,
15975300,
1234567l,carla51,chicago0,coleta,cxzdsaewq,qqwweerr,marwan,deltic,hollys,qwerasd,pon32029,rainmake,nathan0,matveeva,legioner,kevink,riven,tombraid,blitzen,a54321,jackyl,chinese1,shalimar,oleg1995,beaches1,tommylee,eknock,berli,monkey23,badbob,pugwash,likewhoa,jesus2,yujyd360,belmar,shadow22,utfp5e,angelo1,minimax,pooder,cocoa1,moresex,tortue,lesbia,panthe,snoopy2,drumnbass,alway,gmcz71,
6jhwmqku,leppard,dinsdale,blair1,boriqua,money111,virtuagirl,
267605,rattlesn,
1sunshin,monica12,veritas1,newmexic,millertime,turandot,rfvxfnrf,jaydog,kakawka,bowhunter,booboo12,deerpark,erreway,taylorma,rfkbybyf,wooglin,weegee,rexdog,iamhorny,cazzo1,vhou812,bacardi1,dctktyyfz,godpasi,peanut12,bertha1,fuckyoubitch,ghosty,altavista,jertoot,smokeit,ghjcnbvtyz,fhnehxbr,rolsen,qazxcdews,maddmaxx,redrocke,qazokm,spencer2,thekiller,asdf11,
123sex,tupac1,p1234567,dbrown,
1biteme,tgo4466,
316769,sunghi,shakespe,frosty1,gucci1,arcana,bandit01,lyubov,poochy,dartmout,magpies1,sunnyd,mouseman,summer07,chester7,shalini,danbury,pigboy,dave99,deniss,harryb,ashley11,pppppp1,
01081988m,balloon1,tkachenko,bucks1,master77,pussyca,tricky1,zzxxccvv,zoulou,doomer,mukesh,iluv69,supermax,todays,thefox,don123,dontask,diplom,piglett,shiney,fahbrf,qaz12wsx,temitope,reggin,project1,buffy2,inside1,lbpfqyth,vanilla1,lovecock,u4slpwra,fylh.irf,
123211,
7ertu3ds,necroman,chalky,artist1,simpso,
4x7wjr,chaos666,lazyacres,harley99,ch33s3,marusa,eagle7,dilligas,computadora,lucky69,denwer,nissan350z,unforgiv,oddball,schalke0,aztec1,borisova,branden1,parkave,marie123,germa,lafayett,
878kckxy,
405060,cheeseca,bigwave,fred22,andreea,poulet,mercutio,psycholo,andrew88,o4izdmxu,sanctuar,newhome,milion,suckmydi,rjvgm.nth,warior,goodgame,
1qwertyuiop,
6339cndh,scorpio2,macker,southbay,crabcake,toadie,paperclip,fatkid,maddo,cliff1,rastafar,maries,twins1,geujdrf,anjela,wc4fun,dolina,mpetroff,rollout,zydeco,shadow3,pumpki,steeda,volvo240,terras,blowjo,blue2000,incognit,badmojo,gambit1,zhukov,station1,aaronb,graci,duke123,clipper1,qazxsw2,ledzeppe,kukareku,sexkitte,cinco,
007008,lakers12,a1234b,acmilan1,afhfjy,starrr,slutty3,phoneman,kostyan,bonzo1,sintesi07,ersatz,cloud1,nephilim,nascar03,rey619,kairos,
123456789e,hardon1,boeing1,juliya,hfccdtn,vgfun8,polizei,
456838,keithb,minouche,ariston,savag,
213141,clarkken,microwav,london2,santacla,campeo,qr5mx7,
464811,mynuts,bombo,
1mickey,lucky8,danger1,ironside,carter12,wyatt1,borntorun,iloveyou123,jose1,pancake1,tadmichaels,monsta,jugger,hunnie,triste,heat7777,ilovejesus,queeny,luckycharm,lieben,gordolee85,jtkirk,forever21,jetlag,skylane,taucher,neworlea,holera,
000005,anhnhoem,melissa7,mumdad,massimiliano,dima1994,nigel1,madison3,slicky,shokolad,serenit,jmh1978,soccer123,chris3,drwho,rfpzdrf,
1qasw23ed,free4me,wonka,sasquatc,sanan,maytag,verochka,bankone,molly12,monopoli,xfqybr,lamborgini,gondolin,candycane,needsome,jb007,scottie1,brigit,
0147258369,kalamazo,lololyo123,bill1234,ilovejes,lol123123,popkorn,april13,
567rntvm,downunde,charle1,angelbab,guildwars,homeworld,qazxcvbnm,superma1,dupa123,kryptoni,happyy,artyom,stormie,cool11,calvin69,saphir,konovalov,jansport,october8,liebling,druuna,susans,megans,tujhjdf,wmegrfux,jumbo1,ljb4dt7n,
012345678910,kolesnik,speculum,at4gftlw,kurgan,
93pn75,cahek0980,dallas01,godswill,fhifdby,chelsea4,jump23,barsoom,catinhat,urlacher,angel99,vidadi1,
678910,lickme69,topaz1,westend,loveone,c12345,gold12,alex1959,mamon,barney12,
1maggie,alex12345,lp2568cskt,s1234567,gjikbdctyf,anthony0,browns99,chips1,sunking,widespre,lalala1,tdutif,fucklife,master00,alino4ka,stakan,blonde1,phoebus,tenore,bvgthbz,brunos,suzjv8,uvdwgt,revenant,
1banana,veroniqu,sexfun,sp1der,
4g3izhox,isakov,shiva1,scooba,bluefire,wizard12,dimitris,funbags,perseus,hoodoo,keving,malboro,
157953,a32tv8ls,latics,animate,mossad,yejntb,karting,qmpq39zr,busdrive,jtuac3my,jkne9y,sr20dett,
4gxrzemq,keylargo,
741147,rfktylfhm,toast1,skins1,xcalibur,gattone,seether,kameron,glock9mm,julio1,delenn,gameday,tommyd,str8edge,bulls123,
66699,carlsberg,woodbird,adnama,
45auto,codyman,truck2,
1w2w3w4w,pvjegu,method1,luetdi,
41d8cd98f00b,bankai,
5432112345,
94rwpe,reneee,chrisx,melvins,
775577,sam2000,scrappy1,rachid,grizzley,margare,morgan01,winstons,gevorg,gonzal,crawdad,gfhfdjp,babilon,noneya,pussy11,barbell,easyride,c00li0,
777771,
311music,karla1,golions,
19866891,peejay,leadfoot,hfvbkm,kr9z40sy,cobra123,isotwe,grizz,sallys,****you,aaa123a,dembel,foxs14,hillcres,webman,mudshark,alfredo1,weeded,lester1,hovepark,ratface,
000777fffa,huskie,wildthing,elbarto,waikiki,masami,call911,goose2,regin,dovajb,agricola,cjytxrj,andy11,penny123,family01,a121212,
1braves,upupa68,happy100,
824655,cjlove,firsttim,kalel,redhair,dfhtymt,sliders,bananna,loverbo,fifa2008,crouton,chevy350,panties2,kolya1,alyona,hagrid,spagetti,q2w3e4r,
867530,narkoman,nhfdvfnjkju123,
1ccccccc,napolean,
0072563,allay,w8sted,wigwam,jamesk,state1,parovoz,beach69,kevinb,rossella,logitech1,celula,gnocca,canucks1,loginova,marlboro1,aaaa1,kalleanka,mester,mishutka,milenko,alibek,jersey1,peterc,
1mouse,nedved,blackone,ghfplybr,
682regkh,beejay,newburgh,ruffian,clarets,noreaga,xenophon,hummerh2,tenshi,smeagol,soloyo,vfhnby,ereiamjh,ewq321,goomie,sportin,cellphone,sonnie,jetblack,saudan,gblfhfc,matheus,uhfvjnf,alicja,jayman1,devon1,hexagon,bailey2,vtufajy,yankees7,salty1,
908070,killemal,gammas,eurocard,sydney12,tuesday1,antietam,wayfarer,beast666,
19952009sa,aq12ws,eveli,hockey21,haloreach,dontcare,xxxx1,andrea11,karlmarx,jelszo,tylerb,protools,timberwolf,ruffneck,pololo,
1bbbbb,waleed,sasami,twinss,fairlady,illuminati,alex007,sucks1,homerjay,scooter7,tarbaby,barmaley,amistad,vanes,randers,tigers12,dreamer2,goleafsg,googie,bernie1,as12345,godeep,james3,phanto,gwbush,cumlover,
2196dc,studioworks,
995511,golf56,titova,kaleka,itali,socks1,kurwamac,daisuke,hevonen,woody123,daisie,wouter,henry123,gostosa,guppie,porpoise,iamsexy,
276115,paula123,
1020315,
38gjgeuftd,rjrfrjkf,knotty,idiot1,sasha12345,matrix13,securit,radical1,ag764ks,jsmith,coolguy1,secretar,juanas,sasha1988,itout,
00000001,tiger11,
1butthea,putain,cavalo,basia1,kobebryant,
1232323,
12345asdfg,sunsh1ne,cyfqgth,tomkat,dorota,dashit,pelmen,
5t6y7u,whipit,smokeone,helloall,bonjour1,snowshoe,nilknarf,x1x2x3,lammas,
1234599,lol123456,atombomb,ironchef,noclue,alekseev,gwbush1,silver2,
12345678m,yesican,fahjlbnf,chapstic,alex95,open1,tiger200,lisichka,pogiako,cbr929,searchin,tanya123,alex1973,phil413,alex1991,dominati,geckos,freddi,silenthill,egroeg,vorobey,antoxa,dark666,shkola,apple22,rebellio,shamanking,
7f8srt,cumsucker,partagas,bill99,
22223333,arnster55,fucknuts,proxima,silversi,goblues,parcells,vfrcbvjdf,piloto,avocet,emily2,
1597530,miniskir,himitsu,pepper2,juiceman,venom1,bogdana,jujube,quatro,botafogo,mama2010,junior12,derrickh,asdfrewq,miller2,chitarra,silverfox,napol,prestigio,devil123,mm111qm,ara123,max33484,sex2000,primo1,sephan,anyuta,alena2010,viborg,verysexy,hibiscus,terps,josefin,oxcart,spooker,speciali,raffaello,partyon,vfhvtkflrf,strela,a123456z,worksuck,glasss,lomonosov,dusty123,dukeblue,
1winter,sergeeva,lala123,john22,cmc09,sobolev,bettylou,dannyb,gjkrjdybr,hagakure,iecnhbr,awsedr,pmdmsctsk,costco,alekseeva,fktrcttd,bazuka,flyingv,garuda,buffy16,gutierre,beer12,stomatolog,ernies,palmeiras,golf123,love269,n.kmgfy,gjkysqgbpltw,youare,joeboo,baksik,lifeguar,
111a111,nascar8,mindgame,dude1,neopets,frdfkfyu,june24,phoenix8,penelopa,merlin99,mercenar,badluck,mishel,bookert,deadsexy,power9,chinchil,
1234567m,alex10,skunk1,rfhkcjy,sammycat,wright1,randy2,marakesh,temppassword,elmer251,mooki,patrick0,bonoedge,
1tits,chiar,kylie1,graffix,milkman1,cornel,mrkitty,nicole12,ticketmaster,beatles4,number20,ffff1,terps1,superfre,yfdbufnjh,jake1234,flblfc,
1111qq,zanuda,jmol01,wpoolejr,polopol,nicolett,omega13,cannonba,
123456789.,sandy69,ribeye,bo243ns,marilena,bogdan123,milla,redskins1,
19733791,alias1,movie1,ducat,marzena,shadowru,
56565,coolman1,pornlover,teepee,spiff,nafanya,gateway3,fuckyou0,hasher,
34778,booboo69,staticx,hang10,qq12345,garnier,bosco123,
1234567qw,carson1,samso,
1xrg4kcq,cbr929rr,allan123,motorbik,andrew22,pussy101,miroslava,cytujdbr,camp0017,cobweb,snusmumrik,salmon1,cindy2,aliya,serendipity,co437at,tincouch,timmy123,hunter22,st1100,vvvvvv1,blanka,krondor,sweeti,nenit,kuzmich,gustavo1,bmw320i,alex2010,trees1,kyliem,essayons,april26,kumari,sprin,fajita,appletre,fghbjhb,
1green,katieb,steven2,corrado1,satelite,
1michell,
123456789c,cfkfvfylhf,acurarsx,slut543,inhere,bob2000,pouncer,k123456789,fishie,aliso,audia8,bluetick,soccer69,jordan99,fromhell,mammoth1,fighting54,mike25,pepper11,extra1,worldwid,chaise,vfr800,sordfish,almat,nofate,listopad,hellgate,dctvghbdf,jeremia,qantas,lokiju,honker,sprint1,maral,triniti,compaq3,sixsix6,married1,loveman,juggalo1,repvtyrj,zxcasdqw,
123445,whore1,
123678,monkey6,west123,warcraf,pwnage,mystery1,creamyou,ant123,rehjgfnrf,corona1,coleman1,steve121,alderaan,barnaul,celeste1,junebug1,bombshel,gretzky9,tankist,targa,cachou,vaz2101,playgolf,boneyard,strateg,romawka,iforgotit,pullup,garbage1,irock,archmage,shaft1,oceano,sadies,alvin1,
135135ab,psalm69,lmfao,ranger02,zaharova,
33334444,perkman,realman,salguod,cmoney,astonmartin,glock1,greyfox,viper99,helpm,blackdick,
46775575,family5,shazbot,dewey1,qwertyas,shivani,black22,mailman1,greenday1,
57392632,red007,stanky,sanchez1,tysons,daruma,altosax,krayzie,
85852008,
1forever,
98798798,irock.,
123456654,
142536789,ford22,brick1,michela,preciou,crazy4u,
01telemike01,nolife,concac,safety1,annie123,brunswic,destini,
123456qwer,madison0,snowball1,
137946,
1133557799,jarule,scout2,songohan,thedead,
00009999,murphy01,spycam,hirsute,aurinko,associat,
1miller,baklan,hermes1,
2183rm,martie,kangoo,shweta,yvonne1,westsid,jackpot1,rotciv,maratik,fabrika,claude1,nursultan,noentry,ytnhjufnm,electra1,ghjcnjnfr1,puneet,smokey01,integrit,bugeye,trouble2,
14071789,paul01,omgwtf,dmh415,ekilpool,yourmom1,moimeme,sparky11,boludo,ruslan123,kissme1,demetrio,appelsin,asshole3,raiders2,bunns,fynjybj,billygoa,p030710p$e4o,macdonal,
248ujnfk,acorns,schmidt1,sparrow1,vinbylrj,weasle,jerom,ycwvrxxh,skywalk,gerlinde,solidus,postal1,poochie1,
1charles,rhianna,terorist,rehnrf,omgwtfbbq,assfucke,deadend,zidan,jimboy,vengence,maroon5,
7452tr,dalejr88,sombra,anatole,elodi,amazonas,
147789,q12345q,gawker1,juanma,kassidy,greek1,bruces,bilbob,mike44,
0o9i8u7y6t,kaligula,agentx,familie,anders1,pimpjuice,
0128um,birthday10,lawncare,hownow,grandorgue,juggerna,scarfac,kensai,swatteam,
123four,motorbike,repytxbr,other1,celicagt,pleomax,gen0303,godisgreat,icepick,lucifer666,heavy1,tea4two,forsure,
02020,shortdog,webhead,chris13,palenque,
3techsrl,knights1,orenburg,prong,nomarg,wutang1,
80637852730,laika,iamfree,
12345670,pillow1,
12343412,bigears,peterg,stunna,rocky5,
12123434,damir,feuerwehr,
7418529630,danone,yanina,valenci,andy69,
111222q,silvia1,
1jjjjj,loveforever,passwo1,stratocaster,
8928190a,motorolla,lateralu,ujujkm,chubba,ujkjdf,signon,
123456789zx,serdce,stevo,wifey200,ololo123,popeye1,
1pass,central1,melena,luxor,nemezida,poker123,ilovemusic,qaz1234,noodles1,lakeshow,amarill,ginseng,billiam,trento,
321cba,fatback,soccer33,master13,marie2,newcar,bigtop,dark1,camron,nosgoth,
155555,biglou,redbud,jordan7,
159789,diversio,actros,dazed,drizzit,hjcnjd,wiktoria,justic,gooses,luzifer,darren1,chynna,tanuki,
11335577,icculus,boobss,biggi,firstson,ceisi123,gatewa,hrothgar,jarhead1,happyjoy,felipe1,bebop1,medman,athena1,boneman,keiths,djljgfl,dicklick,russ120,mylady,zxcdsa,rock12,bluesea,kayaks,provista,luckies,smile4me,bootycal,enduro,
123123f,heartbre,ern3sto,apple13,bigpappa,fy.njxrf,bigtom,cool69,perrito,quiet1,puszek,cious,cruella,temp1,david26,alemap,aa123123,teddies,tricolor,smokey12,kikiriki,mickey01,robert01,super5,ranman,stevenso,deliciou,money777,degauss,mozar,susanne1,asdasd12,shitbag,mommy123,wrestle1,imfree,fuckyou12,barbaris,florent,ujhijr,f8yruxoj,tefjps,anemone,toltec,
2gether,left4dead2,ximen,gfkmvf,dunca,emilys,diana123,
16473a,mark01,bigbro,annarbor,nikita2000,
11aa11,tigres,llllll1,loser2,fbi11213,jupite,qwaszxqw,macabre,
123ert,rev2000,mooooo,klapaucius,bagel1,chiquit,iyaoyas,bear101,irocz28,vfktymrfz,smokey2,love99,rfhnbyf,dracul,keith123,slicko,peacock1,orgasmic,thesnake,solder,wetass,doofer,david5,rhfcyjlfh,swanny,tammys,turkiye,tubaman,estefani,firehose,funnyguy,servo,grace17,pippa1,arbiter,jimmy69,nfymrf,asdf67nm,rjcnzy,demon123,thicknes,sexysex,kristall,michail,encarta,banderos,minty,marchenko,de1987ma,mo5kva,aircav,naomi1,bonni,tatoo,cronaldo,
49ers1,mama1963,
1truck,telecaster,punksnotdead,erotik,
1eagles,
1fender,luv269,acdeehan,tanner1,freema,
1q3e5t7u,linksys,tiger6,megaman1,neophyte,australia1,mydaddy,
1jeffrey,fgdfgdfg,gfgekz,
1986irachka,keyman,m0b1l3,dfcz123,mikeyg,playstation2,abc125,slacker1,
110491g,lordsoth,bhavani,ssecca,dctvghbdtn,niblick,hondacar,baby01,worldcom,
4034407,
51094didi,
3657549,
3630000,
3578951,sweetpussy,majick,supercoo,robert11,abacabb,panda123,gfhjkm13,ford4x4,zippo1,lapin,
1726354,lovesong,dude11,moebius,paravoz,
1357642,matkhau,solnyshko,daniel4,multiplelog,starik,martusia,iamtheman,greentre,jetblue,motorrad,vfrcbvev,redoak,dogma1,gnorman,komlos,tonka1,
1010220,
666satan,losenord,lateralus,absinthe,command1,jigga1,iiiiiii1,pants1,jungfrau,
926337,ufhhbgjnnth,yamakasi,
888555,sunny7,gemini69,alone1,zxcvbnmz,cabezon,skyblues,zxc1234,
456123a,zero00,caseih,azzurra,legolas1,menudo,murcielago,
785612,
779977,benidorm,viperman,dima1985,piglet1,hemligt,hotfeet,
7elephants,hardup,gamess,a000000,
267ksyjf,kaitlynn,sharkie,sisyphus,yellow22,
667766,redvette,
666420,mets69,ac2zxdty,hxxrvwcy,cdavis,alan1,noddy,
579300,druss,eatshit1,
555123,appleseed,simpleplan,kazak,
526282,fynfyfyfhbde,birthday6,dragon6,
1pookie,bluedevils,omg123,hj8z6e,x5dxwp,
455445,batman23,termin,chrisbrown,animals1,lucky9,
443322,kzktxrf,takayuki,fermer,assembler,zomu9q,sissyboy,sergant,felina,nokia6230i,eminem12,croco,hunt4red,festina,darknigh,cptnz062,ndshnx4s,twizzler,wnmaz7sd,aamaax,gfhfcjkmrf,alabama123,barrynov,happy5,punt0it,durandal,
8xuuobe4,cmu9ggzh,bruno12,
316497,crazyfrog,vfvfktyf,apple3,kasey1,mackdaddy,anthon1,sunnys,angel3,cribbage,moon1,donal,bryce1,pandabear,mwss474,whitesta,freaker,
197100,bitche,p2ssw0rd,turnb,tiktonik,moonlite,ferret1,jackas,ferrum,bearclaw,liberty2,
1diablo,caribe,snakeeyes,janbam,azonic,rainmaker,vetalik,bigeasy,baby1234,sureno13,blink1,kluivert,calbears,lavanda,
198600,dhtlbyf,medvedeva,fox123,whirling,bonscott,freedom9,october3,manoman,segredo,cerulean,robinso,bsmith,flatus,dannon,password21,rrrrrr1,callista,romai,rainman1,trantor,mickeymo,bulldog7,g123456,pavlin,pass22,snowie,hookah,
7ofnine,bubba22,cabible,nicerack,moomoo1,summer98,yoyo123,milan1,lieve27,mustang69,jackster,exocet,nadege,qaz12,bahama,watson1,libras,eclipse2,bahram,bapezm,up9x8rww,ghjcnjz,themaste,deflep27,ghost16,gattaca,fotograf,junior123,gilber,gbjyth,
8vjzus,rosco1,begonia,aldebara,flower12,novastar,buzzman,manchild,lopez1,mama11,william7,yfcnz1,blackstar,spurs123,moom4242,
1amber,iownyou,tightend,
07931505,paquito,
1johnson,smokepot,pi31415,snowmass,ayacdc,jessicam,giuliana,
5tgbnhy6,harlee,giuli,bigwig,tentacle,scoubidou2,benelli,vasilina,nimda,
284655,jaihind,lero4ka,
1tommy,reggi,ididit,jlbyjxtcndj,mike26,qbert,wweraw,lukasz,loosee123,palantir,flint1,mapper,baldie,saturne,virgin1,meeeee,elkcit,iloveme2,blue15,themoon,radmir,number3,shyanne,missle,hannelor,jasmina,karin1,lewie622,ghjcnjqgfhjkm,blasters,oiseau,sheela,grinders,panget,rapido,positiv,twink,fltkbyf,kzsfj874,daniel01,enjoyit,nofags,doodad,rustler,squealer,fortunat,peace123,khushi,devils2,
7inches,candlebo,topdawg,armen,soundman,zxcqweasd,april7,gazeta,netman,hoppers,bear99,ghbjhbntn,mantle7,bigbo,harpo,jgordon,bullshi,vinny1,krishn,star22,thunderc,galinka,phish123,tintable,nightcrawler,tigerboy,rbhgbx,messi,basilisk,masha1998,nina123,yomamma,kayla123,geemoney,
0000000000d,motoman,a3jtni,ser123,owen10,italien,vintelok,
12345rewq,nightime,jeepin,ch1tt1ck,mxyzptlk,bandido,ohboy,doctorj,hussar,superted,parfilev,grundle,
1jack,livestrong,chrisj,matthew3,access22,moikka,fatone,miguelit,trivium,glenn1,smooches,heiko,dezember,spaghett,stason,molokai,bossdog,guitarma,waderh,boriska,photosho,path13,hfrtnf,audre,junior24,monkey24,silke,vaz21093,bigblue1,trident1,candide,arcanum,klinker,orange99,bengals1,rosebu,mjujuj,nallepuh,mtwapa1a,ranger69,level1,bissjop,leica,
1tiffany,rutabega,elvis77,kellie1,sameas,barada,karabas,frank12,queenb,toutoune,surfcity,samanth1,monitor1,littledo,kazakova,fodase,mistral1,april22,carlit,shakal,batman123,fuckoff2,alpha01,
5544332211,buddy3,towtruck,kenwood1,vfiekmrf,jkl123,pypsik,ranger75,sitges,toyman,bartek1,ladygirl,booman,boeing77,installsqlst,
222666,gosling,bigmack,
223311,bogos,kevin2,gomez1,xohzi3g4,kfnju842,klubnika,cubalibr,
123456789101,kenpo,
0147852369,raptor1,tallulah,boobys,jjones,
1q2s3c,moogie,vid2600,almas,wombat1,extra300,xfiles1,green77,sexsex1,heyjude,sammyy,missy123,maiyeuem,nccpl25282,thicluv,sissie,raven3,fldjrfn,buster22,broncos2,laurab,letmein4,harrydog,solovey,fishlips,asdf4321,ford123,superjet,norwegen,movieman,psw333333,intoit,postbank,deepwate,ola123,geolog323,murphys,eshort,a3eilm2s2y,kimota,belous,saurus,
123321qaz,i81b4u,aaa12,monkey20,buckwild,byabybnb,mapleleafs,yfcnzyfcnz,baby69,summer03,twista,
246890,
246824,ltcnhjth,z1z2z3,monika1,sad123,uto29321,bathory,villan,funkey,poptarts,spam967888,
705499fh,sebast,porn1234,earn381,
1porsche,whatthef,
123456789y,polo12,brillo,soreilly,waters1,eudora,allochka,is_a_bot,winter00,bassplay,
531879fiz,onemore,bjarne,red911,kot123,artur1,qazxdr,c0rvette,diamond7,matematica,klesko,beaver12,
2enter,seashell,panam,chaching,edward2,browni,xenogear,cornfed,aniram,chicco22,darwin1,ancella2,sophie2,vika1998,anneli,shawn41,babie,resolute,pandora2,william8,twoone,coors1,jesusis1,teh012,cheerlea,renfield,tessa1,anna1986,madness1,bkmlfh,
19719870,liebherr,ck6znp42,gary123,
123654z,alsscan,eyedoc,matrix7,metalgea,chinito,
4iter,falcon11,
7jokx7b9du,bigfeet,tassadar,retnuh,muscle1,klimova,darion,batistuta,bigsur,
1herbier,noonie,ghjrehjh,karimova,faustus,snowwhite,
1manager,dasboot,michael12,analfuck,inbed,dwdrums,jaysoncj,maranell,bsheep75,
164379,rolodex,
166666,rrrrrrr1,almaz666,
167943,russel1,negrito,alianz,goodpussy,veronik,
1w2q3r4e,efremov,emb377,sdpass,william6,alanfahy,nastya1995,panther5,automag,
123qwe12,vfvf2011,fishe,
1peanut,speedie,qazwsx1234,pass999,
171204j,ketamine,sheena1,energizer,usethis1,
123abc123,buster21,thechamp,flvbhfk,frank69,chane,hopeful1,claybird,pander,anusha,bigmaxxx,faktor,housebed,dimidrol,bigball,shashi,derby1,fredy,dervish,bootycall,
80988218126,killerb,cheese2,pariss,mymail,dell123,catbert,christa1,chevytru,gjgjdf,
00998877,overdriv,ratten,golf01,nyyanks,dinamite,bloembol,gismo,magnus1,march2,twinkles,ryan22,duckey,
118a105b,kitcat,brielle,poussin,lanzarot,youngone,ssvegeta,hero63,battle1,kiler,fktrcfylh1,newera,vika1996,dynomite,oooppp,beer4me,foodie,ljhjuf,sonshine,godess,doug1,constanc,thinkbig,steve2,damnyou,autogod,www333,kyle1,ranger7,roller1,harry2,dustin1,hopalong,tkachuk,b00bies,bill2,deep111,stuffit,fire69,redfish1,andrei123,graphix,
1fishing,kimbo1,mlesp31,ifufkbyf,gurkan,
44556,emily123,busman,and123,
8546404,paladine,
1world,bulgakov,
4294967296,bball23,
1wwwww,mycats,elain,delta6,
36363,emilyb,color1,
6060842,cdtnkfyrf,hedonism,gfgfrfhkj,
5551298,scubad,gostate,sillyme,hdbiker,beardown,fishers,sektor,
00000007,newbaby,rapid1,braves95,gator2,nigge,anthony3,sammmy,oou812,heffer,phishin,roxanne1,yourass,hornet1,albator,
2521659,underwat,tanusha,dianas,
3f3fpht7op,dragon20,bilbobag,cheroke,radiatio,dwarf1,majik,
33st33,dochka,garibald,robinh,sham69,temp01,wakeboar,violet1,
1w2w3w,registr,tonite,maranello,
1593570,parolamea,galatasara,loranthos,
1472583,asmodean,
1362840,scylla,doneit,jokerr,porkypig,kungen,mercator,koolhaas,come2me,debbie69,calbear,liverpoolfc,yankees4,
12344321a,kennyb,madma,
85200258,dustin23,thomas13,tooling,mikasa,mistic,crfnbyf,
112233445,sofia1,heinz57,colts1,price1,snowey,joakim,mark11,
963147,cnhfcnm,kzinti,
1bbbbbbb,rubberdu,donthate,rupert1,sasha1992,regis1,nbuhbwf,fanboy,sundial,sooner1,wayout,vjnjhjkf,deskpro,arkangel,willie12,mikeyb,celtic1888,luis1,buddy01,duane1,grandma1,aolcom,weeman,
172839456,basshead,hornball,magnu,pagedown,molly2,
131517,rfvtgbyhn,astonmar,mistery,madalina,cash1,
1happy,shenlong,matrix01,nazarova,
369874125,
800500,webguy,rse2540,ashley2,briank,
789551,
786110,chunli,j0nathan,greshnik,courtne,suckmyco,mjollnir,
789632147,asdfg1234,
754321,odelay,ranma12,zebedee,artem777,bmw318is,butt1,rambler1,yankees9,alabam,
5w76rnqp,rosies,mafioso,studio1,babyruth,tranzit,magical123,gfhjkm135,
12345$,soboleva,
709394,ubique,drizzt1,elmers,teamster,pokemons,
1472583690,
1597532486,shockers,merckx,melanie2,ttocs,clarisse,earth1,dennys,slobber,flagman,farfalla,troika,
4fa82hyx,hakan,x4ww5qdr,cumsuck,leather1,forum1,july20,barbel,zodiak,samuel12,ford01,rushfan,bugsy1,invest1,tumadre,screwme,a666666,money5,henry8,tiddles,sailaway,starburs,
100years,killer01,comando,hiromi,ranetka,thordog,blackhole,palmeira,verboten,solidsna,q1w1e1,humme,kevinc,gbrfxe,gevaudan,hannah11,peter2,vangar,sharky7,talktome,jesse123,chuchi,pammy,!qazxsw2,siesta,twenty1,wetwilly,
477041,natural1,sun123,daniel3,intersta,shithead1,hellyea,bonethugs,solitair,bubbles2,father1,nick01,
444000,adidas12,dripik,cameron2,
442200,a7nz8546,respublika,fkojn6gb,
428054,snoppy,rulez1,haslo,rachael1,purple01,zldej102,ab12cd34,cytuehjxrf,madhu,astroman,preteen,handsoff,mrblonde,biggio,testin,vfdhif,twolves,unclesam,asmara,kpydskcw,lg2wmgvr,grolsch,biarritz,feather1,williamm,s62i93,bone1,penske,
337733,
336633,taurus1,
334433,billet,diamondd,
333000,nukem,fishhook,godogs,thehun,lena1982,blue00,smelly1,unb4g9ty,
65pjv22,applegat,mikehunt,giancarlo,krillin,felix123,december1,soapy,
46doris,nicole23,bigsexy1,justin10,pingu,bambou,falcon12,dgthtl,
1surfer,qwerty01,estrellit,nfqcjy,easygo,konica,qazqwe,
1234567890m,stingers,nonrev,
3e4r5t,champio,bbbbbb99,
196400,allen123,seppel,simba2,rockme,zebra3,tekken3,endgame,sandy2,
197300,fitte,monkey00,eldritch,littleone,rfyfgkz,
1member,
66chevy,oohrah,cormac,hpmrbm41,
197600,grayfox,elvis69,celebrit,maxwell7,rodders,krist,
1camaro,broken1,kendall1,silkcut,katenka,angrick,maruni,
17071994a,tktyf,kruemel,snuffles,iro4ka,baby12,alexis01,marryme,vlad1994,forward1,culero,badaboom,malvin,hardtoon,hatelove,molley,knopo4ka,duchess1,mensuck,cba321,kickbutt,zastava,wayner,fuckyou6,eddie123,cjkysir,john33,dragonfi,cody1,jabell,cjhjrf,badseed,sweden1,marihuana,brownlov,elland,nike1234,kwiettie,jonnyboy,togepi,billyk,robert123,bb334,florenci,ssgoku,
198910,bristol1,bob007,allister,yjdujhjl,gauloise,
198920,bellaboo,
9lives,aguilas,wltfg4ta,foxyroxy,rocket69,fifty50,babalu,master21,malinois,kaluga,gogosox,obsessio,yeahrigh,panthers1,capstan,liza2000,leigh1,paintball1,blueskie,cbr600f3,bagdad,jose98,mandreki,shark01,wonderbo,muledeer,xsvnd4b2,hangten,
200001,grenden,anaell,apa195,model1,
245lufpq,zip100,ghjcgtrn,wert1234,misty2,charro,juanjose,fkbcrf,frostbit,badminto,buddyy,
1doctor,vanya,archibal,parviz,spunky1,footboy,dm6tzsgp,legola,samadhi,poopee,ytdxz2ca,hallowboy,dposton,gautie,theworm,guilherme,dopehead,iluvtits,bobbob1,ranger6,worldwar,lowkey,chewbaca,oooooo99,ducttape,dedalus,celular,
8i9o0p,borisenko,taylor01,
111111z,arlingto,p3nnywiz,rdgpl3ds,boobless,kcmfwesg,blacksab,mother2,markus1,leachim,secret2,s123456789,
1derful,espero,russell2,tazzer,marykate,freakme,mollyb,lindros8,james00,gofaster,stokrotka,kilbosik,aquamann,pawel1,shedevil,mousie,slot2009,october6,
146969,mm259up,brewcrew,choucho,uliana,sexfiend,fktirf,pantss,vladimi,starz,sheeps,
12341234q,bigun,tiggers,crjhjcnm,libtech,pudge1,home12,zircon,klaus1,jerry2,pink1,lingus,monkey66,dumass,polopolo09,feuerweh,rjyatnf,chessy,beefer,shamen,poohbear1,
4jjcho,bennevis,fatgirls,ujnbrf,cdexswzaq,
9noize9,rich123,nomoney,racecar1,hacke,clahay,acuario,getsum,hondacrv,william0,cheyenn,techdeck,atljhjdf,wtcacq,suger,fallenangel,bammer,tranquil,carla123,relayer,lespaul1,portvale,idontno,bycnbnen,trooper2,gennadiy,pompon,billbob,amazonka,akitas,chinatow,atkbrc,busters,fitness1,cateye,selfok2013,
1murphy,fullhous,mucker,bajskorv,nectarin,littlebitch,love24,feyenoor,bigal37,lambo1,pussybitch,icecube1,biged,kyocera,ltybcjdf,boodle,theking1,gotrice,sunset1,abm1224,fromme,sexsells,inheat,kenya1,swinger1,aphrodit,kurtcobain,rhind101,poidog,poiulkjh,kuzmina,beantown,tony88,stuttgar,drumer,joaqui,messenge,motorman,amber2,nicegirl,rachel69,andreia,faith123,studmuffin,jaiden,red111,vtkmybr,gamecocks,gumper,bosshogg,
4me2know,tokyo1,kleaner,roadhog,fuckmeno,phoenix3,seeme,buttnutt,boner69,andreyka,myheart,katerin,rugburn,jvtuepip,dc3ubn,chile1,ashley69,happy99,swissair,balls2,fylhttdf,jimboo,
55555d,mickey11,voronin,m7hsqstm,stufff,merete,weihnachte,dowjones,baloo1,freeones,bears34,auburn1,beverl,timberland,
1elvis,guinness1,bombadil,flatron1,logging7,telefoon,merl1n,masha1,andrei1,cowabung,yousuck1,
1matrix,peopl,asd123qwe,sweett,mirror1,torrente,joker12,diamond6,jackaroo,
00000a,millerlite,ironhorse,
2twins,stryke,gggg1,zzzxxxccc,roosevel,
8363eddy,angel21,depeche1,d0ct0r,blue14,areyou,veloce,grendal,frederiksberg,cbcntvf,cb207sl,sasha2000,was.here,fritzz,rosedale,spinoza,cokeisit,gandalf3,skidmark,ashley01,
12345j,
1234567890qaz,sexxxxxx,beagles,lennart,
12345789,pass10,politic,max007,gcheckou,
12345611,tiffy,lightman,mushin,velosiped,brucewayne,gauthie,elena123,greenegg,h2oski,clocker,nitemare,
123321s,megiddo,cassidy1,david13,boywonde,flori,peggy12,pgszt6md,batterie,redlands,scooter6,bckhere,trueno,bailey11,maxwell2,bandana,timoth1,startnow,ducati74,tiern,maxine1,blackmetal,suzyq,balla007,phatfarm,kirsten1,titmouse,benhogan,culito,forbin,chess1,warren1,panman,mickey7,
24lover,dascha,speed2,redlion,andrew10,johnwayn,nike23,chacha1,bendog,bullyboy,goldtree,spookie,tigger99,
1cookie,poutine,cyclone1,woodpony,camaleun,bluesky1,dfadan,eagles20,lovergirl,peepshow,mine1,dima1989,rjdfkmxer,
11111aaaaa,machina,august17,
1hhhhh,
0773417k,
1monster,freaksho,jazzmin,davidw,kurupt,chumly,huggies,sashenka,ccccccc1,bridge1,giggalo,cincinna,pistol1,hello22,david77,lightfoo,lucky6,jimmy12,
261397,lisa12,tabaluga,mysite,belo4ka,greenn,eagle99,punkrawk,salvado,slick123,wichsen,knight99,dummys,fefolico,contrera,kalle1,anna1984,delray,robert99,garena,pretende,racefan,alons,serenada,ludmilla,cnhtkjr,l0swf9gx,hankster,dfktynbyrf,sheep1,john23,cv141ab,kalyani,
944turbo,crystal2,blackfly,zrjdktdf,eus1sue1,mario5,riverplate,harddriv,melissa3,elliott1,sexybitc,cnhfyybr,jimdavis,bollix,beta1,amberlee,skywalk1,natala,
1blood,brattax,shitty1,gb15kv99,ronjon,rothmans,thedoc,joey21,hotboi,firedawg,bimbo38,jibber,aftermat,nomar,
01478963,phishing,domodo,anna13,materia,martha1,budman1,gunblade,exclusiv,sasha1997,anastas,rebecca2,fackyou,kallisti,fuckmyass,norseman,ipswich1,
151500,
1edward,intelinside,darcy1,bcrich,yjdjcnbf,failte,buzzzz,cream1,tatiana1,
7eleven,green8,
153351,
1a2s3d4f5g6h,
154263,milano1,bambi1,bruins77,rugby2,jamal1,bolita,sundaypunch,bubba12,realmadr,vfyxtcnth,iwojima,notlob,black666,valkiria,nexus1,millerti,birthday100,swiss1,appollo,gefest,greeneyes,celebrat,tigerr,slava123,izumrud,bubbabub,legoman,joesmith,katya123,sweetdream,john44,wwwwwww1,oooooo1,socal,lovespor,s5r8ed67s,
258147,heidis,cowboy22,wachovia,michaelb,qwe1234567,i12345,
255225,goldie1,alfa155,
45colt,safeu851,antonova,longtong,
1sparky,gfvznm,busen,hjlbjy,whateva,rocky4,cokeman,joshua3,kekskek1,sirocco,jagman,
123456qwert,phinupi,thomas10,loller,sakur,vika2011,fullred,mariska,azucar,ncstate,glenn74,halima,aleshka,ilovemylife,verlaat,baggie,scoubidou6,phatboy,jbruton,scoop1,barney11,blindman,def456,maximus2,master55,nestea,
11223355,diego123,sexpistols,sniffy,philip1,f12345,prisonbreak,nokia2700,ajnjuhfa,yankees3,colfax,ak470000,mtnman,bdfyeirf,fotball,ichbin,trebla,ilusha,riobravo,beaner1,thoradin,polkaudi,kurosawa,honda123,ladybu,valerik,poltava,saviola,fuckyouguys,
754740g0,anallove,microlab1,juris01,ncc1864,garfild,shania1,qagsud,makarenko,cindy69,lebedev,andrew11,johnnybo,groovy1,booster1,sanders1,tommyb,johnson4,kd189nlcih,hondaman,vlasova,chick1,sokada,sevisgur,bear2327,chacho,sexmania,roma1993,hjcnbckfd,valley1,howdie,tuppence,jimandanne,strike3,y4kuz4,nhfnfnf,tsubasa,
19955991,scabby,quincunx,dima1998,uuuuuu1,logica,skinner1,pinguino,lisa1234,xpressmusic,getfucked,qqqq1,bbbb1,matulino,ulyana,upsman,johnsmith,
123579,co2000,spanner1,todiefor,mangoes,isabel1,
123852,negra,snowdon,nikki123,bronx1,booom,ram2500,chuck123,fireboy,creek1,batman13,princesse,az12345,maksat,
1knight,
28infern,
241455,r7112s,muselman,mets1986,katydid,vlad777,playme,kmfdm1,asssex,
1prince,iop890,bigbroth,mollymoo,waitron,lizottes,
125412,juggler,quinta,
0sister0,zanardi,nata123,heckfyxbr,
22q04w90e,engine2,nikita95,zamira,hammer22,lutscher,carolina1,zz6319,sanman,vfuflfy,buster99,rossco,kourniko,aggarwal,tattoo1,janice1,finger1,
125521,
19911992,shdwlnds,rudenko,vfvfgfgf123,galatea,monkeybu,juhani,premiumcash,classact,devilmay,helpme2,knuddel,hardpack,ramil,perrit,basil1,zombie13,stockcar,tos8217,honeypie,nowayman,alphadog,melon1,talula,
125689,tiribon12,tornike,haribol,telefone,tiger22,sucka,lfytxrf,chicken123,muggins,a23456,b1234567,lytdybr,otter1,pippa,vasilisk,cooking1,helter,
78978,bestboy,viper7,ahmed1,whitewol,mommys,apple5,shazam1,chelsea7,kumiko,masterma,rallye,bushmast,jkz123,entrar,andrew6,nathan01,alaric,tavasz,heimdall,gravy1,jimmy99,cthlwt,powerr,gthtrhtcnjr,canesfan,sasha11,ybrbnf_25,august9,brucie,artichok,arnie1,superdude,tarelka,mickey22,dooper,luners,holeshot,good123,gettysbu,bicho,hammer99,divine5,
1zxcvbn,stronzo,q22222,disne,bmw750il,godhead,hallodu,aerith,nastik,differen,cestmoi,amber69,
5string,pornosta,dirtygirl,ginger123,formel1,scott12,honda200,hotspurs,johnatha,firstone123,lexmark1,msconfig,karlmasc,l123456,
123qweasdzx,baldman,sungod,furka,retsub,
9811020,ryder1,tcglyued,astron,lbvfcbr,minddoc,dirt49,baseball12,tbear,simpl,schuey,artimus,bikman,plat1num,quantex,gotyou,hailey1,justin01,ellada,
8481068,
000002,manimal,dthjybxrf,buck123,dick123,
6969696,nospam,strong1,kodeord,bama12,
123321w,superman123,gladiolus,nintend,
5792076,dreamgirl,spankme1,gautam,arianna1,titti,tetas,cool1234,belladog,importan,
4206969,
87e5nclizry,teufelo7,doller,yfl.irf,quaresma,
3440172,melis,bradle,nnmaster,fast1,iverso,blargh,lucas12,chrisg,iamsam,
123321az,tomjerry,kawika,
2597174,standrew,billyg,muskan,gizmodo2,rz93qpmq,
870621345,sathya,qmezrxg4,januari,marthe,moom4261,cum2me,hkger286,lou1988,suckit1,croaker,klaudia1,
753951456,aidan1,fsunoles,romanenko,abbydog,isthebes,akshay,corgi,fuck666,walkman555,ranger98,scorpian,hardwareid,bluedragon,fastman,
2305822q,iddqdiddqd,
1597532,gopokes,zvfrfcb,w1234567,sputnik1,tr1993,pa$$w0rd,
2i5fdruv,havvoc,
1357913,
1313131,bnm123,cowd00d,flexscan,thesims2,boogiema,bigsexxy,powerstr,ngc4565,joshman,babyboy1,
123jlb,funfunfu,qwe456,honor1,puttana,bobbyj,daniel21,pussy12,shmuck,
1232580,
123578951,maxthedo,hithere1,bond0007,gehenna,nomames,blueone,r1234567,bwana,gatinho,
1011111,torrents,cinta,
123451234,tiger25,money69,edibey,pointman,mmcm19,wales1,caffreys,phaedra,bloodlus,
321ret32,rufuss,tarbit,joanna1,
102030405,stickboy,lotrfotr34,jamshid,mclarenf1,ataman,
99ford,yarrak,logan2,ironlung,pushistik,dragoon1,unclebob,tigereye,pinokio,tylerj,mermaid1,stevie1,jaylen,
888777,ramana,roman777,brandon7,
17711771s,thiago,luigi1,edgar1,brucey,videogam,classi,birder,faramir,twiddle,cubalibre,grizzy,fucky,jjvwd4,august15,idinahui,ranita,nikita1998,
123342,w1w2w3,
78621323,
4cancel,
789963,(null,vassago,jaydog472,
123452,timt42,canada99,
123589,rebenok,htyfnf,
785001,osipov,maks123,neverwinter,love2010,
777222,
67390436,eleanor1,bykemo,aquemini,frogg,roboto,thorny,shipmate,logcabin,
66005918,nokian,gonzos,louisian,
1abcdefg,triathlo,ilovemar,couger,letmeino,supera,runvs,fibonacci,muttly,
58565254,
5thgbqi,vfnehsv,electr,jose12,artemis1,newlove,thd1shr,hawkey,grigoryan,saisha,tosca,redder,lifesux,temple1,bunnyman,thekids,sabbeth,tarzan1,
182838,
158uefas,dell50,
1super,
666222,
47ds8x,jackhamm,mineonly,rfnfhbyf,
048ro,
665259,kristina1,bombero,
52545856,secure1,bigloser,peterk,alex2,
51525354,anarchy1,superx,teenslut,money23,sigmapi,sanfrancisco,acme34,private5,eclips,qwerttrewq,axelle,kokain,hardguy,peter69,jesuschr,dyanna,dude69,sarah69,toyota91,amberr,
45645645,bugmenot,bigted,
44556677,
556644,wwr8x9pu,alphaome,harley13,kolia123,wejrpfpu,revelati,nairda,sodoff,cityboy,pinkpussy,dkalis,miami305,wow12345,triplet,tannenbau,asdfasdf1,darkhors,
527952,retired1,soxfan,nfyz123,
37583867,goddes,
515069,gxlmxbewym,
1warrior,
36925814,dmb2011,topten,karpova,
89876065093rax,naturals,gateway9,cepseoun,turbot,
493949,cock22,italia1,sasafras,gopnik,stalke,
1qazxdr5,wm2006,ace1062,alieva,blue28,aracel,sandia,motoguzz,terri1,emmajane,conej,recoba,alex1995,jerkyboy,cowboy12,arenrone,precisio,
31415927,scsa316,panzer1,studly1,powerhou,bensam,mashoutq,billee,eeyore1,reape,thebeatl,rul3z,montesa,doodle1,cvzefh1gk,
424365,a159753,zimmerma,gumdrop,ashaman,grimreap,icandoit,borodina,branca,dima2009,keywest1,vaders,bubluk,diavolo,assss,goleta,eatass,napster1,
382436,
369741,
5411pimo,lenchik,pikach,gilgamesh,kalimera,singer1,gordon2,rjycnbnewbz,maulwurf,joker13,
2much4u,bond00,alice123,robotec,fuckgirl,zgjybz,redhorse,margaret1,brady1,pumpkin2,chinky,fourplay,
1booger,roisin,
1brandon,sandan,blackheart,cheez,blackfin,cntgfyjdf,mymoney1,
09080706,goodboss,sebring1,rose1,kensingt,bigboner,marcus12,ym3cautj,struppi,thestone,lovebugs,stater,silver99,forest99,qazwsx12345,vasile,longboar,mkonji,huligan,rhfcbdfz,airmail,porn11,
1ooooo,sofun,snake2,msouthwa,dougla,
1iceman,shahrukh,sharona,dragon666,france98,
196800,
196820,ps253535,zjses9evpa,sniper01,design1,konfeta,jack99,drum66,good4you,station2,brucew,regedit,school12,mvtnr765,pub113,fantas,tiburon1,king99,ghjcnjgbpltw,checkito,
308win,
1ladybug,corneliu,svetasveta,
197430,icicle,imaccess,ou81269,jjjdsl,brandon6,bimbo1,smokee,piccolo1,
3611jcmg,children2,cookie2,conor1,darth1,margera,aoi856,paully,ou812345,sklave,eklhigcz,
30624700,amazing1,wahooo,seau55,
1beer,apples2,chulo,dolphin9,heather6,
198206,
198207,hergood,miracle1,njhyflj,
4real,milka,silverfi,fabfive,spring12,ermine,mammy,jumpjet,adilbek,toscana,caustic,hotlove,sammy69,lolita1,byoung,whipme,barney01,mistys,tree1,buster3,kaylin,gfccgjhn,
132333,aishiteru,pangaea,fathead1,smurph,
198701,ryslan,gasto,xexeylhf,anisimov,chevyss,saskatoo,brandy12,tweaker,irish123,music2,denny1,palpatin,outlaw1,lovesuck,woman1,mrpibb,diadora,hfnfneq,poulette,harlock,mclaren1,cooper12,newpass3,bobby12,rfgecnfcerf,alskdjfh,mini14,dukers,raffael,
199103,cleo123,
1234567qwertyu,mossberg,scoopy,dctulf,starline,hjvjxrf,misfits1,rangers2,bilbos,blackhea,pappnase,atwork,purple2,daywalker,summoner,
1jjjjjjj,swansong,chris10,laluna,
12345qqq,charly1,lionsden,money99,silver33,hoghead,bdaddy,
199430,saisg002,nosaints,tirpitz,
1gggggg,jason13,kingss,ernest1,
0cdh0v99ue,pkunzip,arowana,spiri,deskjet1,armine,lances,magic2,thetaxi,
14159265,cacique,
14142135,orange10,richard0,backdraf,
255ooo,humtum,kohsamui,c43dae874d,wrestling1,cbhtym,sorento,megha,pepsiman,qweqwe12,bliss7,mario64,korolev,balls123,schlange,gordit,optiquest,fatdick,fish99,richy,nottoday,dianne1,armyof1,
1234qwerasdfzxcv,bbonds,aekara,lidiya,baddog1,yellow5,funkie,ryan01,greentree,gcheckout,marshal1,liliput,
000000z,rfhbyrf,gtogto43,rumpole,tarado,marcelit,aqwzsxedc,kenshin1,sassydog,system12,belly1,zilla,kissfan,tools1,desember,donsdad,nick11,scorpio6,poopoo1,toto99,steph123,dogfuck,rocket21,thx113,dude12,sanek,sommar,smacky,pimpsta,letmego,k1200rs,lytghjgtnhjdcr,abigale,buddog,deles,baseball9,roofus,carlsbad,hamzah,hereiam,genial,schoolgirlie,yfz450,breads,piesek,washear,chimay,apocalyp,nicole18,gfgf1234,gobulls,dnevnik,wonderwall,beer1234,
1moose,beer69,maryann1,adpass,mike34,birdcage,hottuna,gigant,penquin,praveen,donna123,
123lol
123,thesame,fregat,adidas11,selrahc,pandoras,test3,chasmo,
111222333000,pecos,daniel11,ingersol,shana1,mama12345,cessna15,myhero,
1simpson,nazarenko,cognit,seattle2,irina1,azfpc310,rfycthdf,hardy1,jazmyn,sl1200,hotlanta,jason22,kumar123,sujatha,fsd9shtyu,highjump,changer,entertai,kolding,mrbig,sayuri,eagle21,qwertzu,jorge1,
0101dd,bigdong,ou812a,sinatra1,htcnjhfy,oleg123,videoman,pbyfblf,tv612se,bigbird1,kenaidog,gunite,silverma,ardmore,
123123qq,hotbot,cascada,cbr600f4,harakiri,chico123,boscos,aaron12,glasgow1,kmn5hc,lanfear,
1light,liveoak,fizika,ybrjkftdyf,surfside,intermilan,multipas,redcard,
72chevy,balata,coolio1,schroede,kanat,testerer,camion,kierra,hejmeddig,antonio2,tornados,isidor,pinkey,n8skfswa,ginny1,houndog,
1bill,chris25,hastur,
1marine,greatdan,french1,hatman,
123qqq,z1z2z3z4,kicker1,katiedog,usopen,smith22,mrmagoo,
1234512i,assa123,
7seven7,monster7,june12,bpvtyf,
149521,guenter,alex1985,voronina,mbkugegs,zaqwsxcderfv,rusty5,mystic1,master0,abcdef12,jndfkb,r4zpm3,cheesey,skripka,blackwhite,sharon69,dro8smwq,lektor,techman,boognish,deidara,heckfyf,quietkey,authcode,monkey4,jayboy,pinkerto,merengue,chulita,bushwick,turambar,kittykit,joseph2,dad123,kristo,pepote,scheiss,hambone1,bigballa,restaura,tequil,
111luzer,euro2000,motox,denhaag,chelsi,flaco1,preeti,lillo,
1001sin,passw,august24,beatoff,
555555d,willis1,kissthis,qwertyz,rvgmw2gl,iloveboobies,timati,kimbo,msinfo,dewdrop,sdbaker,fcc5nky2,messiah1,catboy,small1,chode,beastie1,star77,hvidovre,short1,xavie,dagobah,alex1987,papageno,dakota2,toonami,fuerte,jesus33,lawina,souppp,dirtybir,chrish,naturist,channel1,peyote,flibble,gutentag,lactate,killem,zucchero,robinho,ditka,grumpy1,avr7000,boxxer,topcop,berry1,mypass1,beverly1,deuce1,
9638527410,cthuttdf,kzkmrf,lovethem,band1t,cantona1,purple11,apples123,wonderwo,
123a456,fuzzie,lucky99,dancer2,hoddling,rockcity,winner12,spooty,mansfiel,aimee1,
287hf71h,rudiger,culebra,god123,agent86,daniel0,bunky1,notmine,
9ball,goofus,puffy1,xyh28af4,kulikov,bankshot,vurdf5i2,kevinm,ercole,sexygirls,razvan,october7,goater,lollie,raissa,thefrog,mdmaiwa3,mascha,jesussaves,union1,anthony9,crossroa,brother2,areyuke,rodman91,toonsex,dopeman,gericom,vaz2115,cockgobbler,
12356789,
12345699,signatur,alexandra1,coolwhip,erwin1,awdrgyjilp,pens66,ghjrjgtyrj,linkinpark,emergenc,psych0,blood666,bootmort,wetworks,piroca,johnd,iamthe1,supermario,homer69,flameon,image1,bebert,fylhtq1,annapoli,apple11,hockey22,
10048,indahouse,mykiss,
1penguin,markp,misha123,foghat,march11,hank1,santorin,defcon4,tampico,vbnhjafy,robert22,bunkie,athlon64,sex777,nextdoor,koskesh,lolnoob,seemnemaailm,black23,march15,yeehaa,chiqui,teagan,siegheil,monday2,cornhusk,mamusia,chilis,sthgrtst,feldspar,scottm,pugdog,rfghjy,micmac,gtnhjdyf,terminato,
1jackson,kakosja,bogomol,
123321aa,rkbvtyrj,tresor,tigertig,fuckitall,vbkkbjy,caramon,zxc12,balin,dildo1,soccer09,avata,abby123,cheetah1,marquise,jennyc,hondavfr,tinti,anna1985,dennis2,jorel,mayflowe,icema,hal2000,nikkis,bigmouth,greenery,nurjan,leonov,liberty7,fafnir,larionov,sat321321,byteme1,nausicaa,hjvfynbrf,everto,zebra123,sergio1,titone,wisdom1,kahala,
104328q,marcin1,salima,pcitra,
1nnnnn,nalini,galvesto,neeraj,rick1,squeeky,agnes1,jitterbu,agshar,maria12,
0112358,traxxas,stivone,prophet1,bananza,sommer1,canoneos,hotfun,redsox11,
1bigmac,dctdjkjl,legion1,everclea,valenok,black9,danny001,roxie1,
1theman,mudslide,july16,lechef,chula,glamis,emilka,canbeef,ioanna,cactus1,rockshox,im2cool,ninja9,thvfrjdf,june28,milo17,missyou,micky1,nbibyf,nokiaa,goldi,mattias,fuckthem,asdzxc123,ironfist,junior01,nesta,crazzy,killswit,hygge,zantac,kazama,melvin1,allston,maandag,hiccup,prototyp,specboot,dwl610,hello6,
159456,baldhead,redwhite,calpoly,whitetail,agile1,cousteau,matt01,aust1n,malcolmx,gjlfhjr,semperf1,ferarri,a1b2c3d,vangelis,mkvdari,bettis36,andzia,comand,tazzman,morgaine,pepluv,anna1990,inandout,anetka,anna1997,wallpape,moonrake,huntress,hogtie,cameron7,sammy7,singe11,clownboy,newzeala,wilmar,safrane,rebeld,poopi,granat,hammertime,nermin,
11251422,xyzzy1,bogeys,jkmxbr,fktrcfyl,
11223311,nfyrbcn,
11223300,powerpla,zoedog,ybrbnbyf,zaphod42,tarawa,jxfhjdfirf,dude1234,g5wks9,goobe,czekolada,blackros,amaranth,medical1,thereds,julija,nhecsyfujkjdt,promopas,buddy4,marmalad,weihnachten,tronic,letici,passthief,
67mustan,ds7zamnw,morri,w8woord,cheops,pinarell,sonofsam,av473dv,sf161pn,
5c92v5h6,purple13,tango123,plant1,
1baby,xufrgemw,fitta,
1rangers,spawns,kenned,taratata,
19944991,
11111118,coronas,
4ebouux8,roadrash,corvette1,dfyjdf846,marley12,qwaszxerdfcv,
68stang,
67stang,racin,ellehcim,sofiko,nicetry,seabass1,jazzman1,zaqwsx1,laz2937,uuuuuuu1,vlad123,rafale,j1234567,
223366,nnnnnn1,
226622,junkfood,asilas,cer980,daddymac,persepho,neelam,
00700,shithappens,
255555,qwertyy,xbox36,
19755791,qweasd1,bearcub,jerryb,a1b1c1,polkaudio,basketball1,
456rty,
1loveyou,marcus2,mama1961,palace1,transcend,shuriken,sudhakar,teenlove,anabelle,matrix99,pogoda,notme,bartend,jordana,nihaoma,ataris,littlegi,ferraris,redarmy,giallo,fastdraw,accountbloc,peludo,pornostar,pinoyako,cindee,glassjaw,dameon,johnnyd,finnland,saudade,losbravo,slonko,toplay,smalltit,nicksfun,stockhol,penpal,caraj,divedeep,cannibus,poppydog,pass88,viktory,walhalla,arisia,lucozade,goldenbo,tigers11,caball,ownage123,tonna,handy1,johny,capital5,faith2,stillher,brandan,pooky1,antananarivu,hotdick,
1justin,lacrimos,goathead,bobrik,cgtwbfkbcn,maywood,kamilek,gbplf123,gulnar,beanhead,vfvjyn,shash,viper69,ttttttt1,hondacr,kanako,muffer,dukies,justin123,agapov58,mushka,bad11bad,muleman,jojo123,andreika,makeit,vanill,boomers,bigals,merlin11,quacker,aurelien,spartak1922,ligeti,diana2,lawnmowe,fortune1,awesom,rockyy,anna1994,oinker,love88,eastbay,ab55484,poker0,ozzy666,papasmurf,antihero,photogra,ktm250,painkill,jegr2d2,p3orion,canman,dextur,qwest123,samboy,yomismo,sierra01,herber,vfrcbvvfrcbv,gloria1,llama1,pie123,bobbyjoe,buzzkill,skidrow,grabber,phili,javier1,
9379992q,geroin,oleg1994,sovereig,rollover,zaq12qaz,battery1,killer13,alina123,groucho1,mario12,peter22,butterbean,elise1,lucycat,neo123,ferdi,golfer01,randie,gfhfyjbr,ventura1,chelsea3,pinoy,mtgox,yrrim7,shoeman,mirko,ffggyyo,
65mustan,ufdibyjd,john55,suckfuck,greatgoo,fvfnjhb,mmmnnn,love20,
1bullshi,sucesso,easy1234,robin123,rockets1,diamondb,wolfee,nothing0,joker777,glasnost,richar1,guille,sayan,koresh,goshawk,alexx,batman21,a123456b,hball,
243122,rockandr,coolfool,isaia,mary1,yjdbrjdf,lolopc,cleocat,cimbo,lovehina,
8vfhnf,passking,bonapart,diamond2,bigboys,kreator,ctvtyjdf,sassy123,shellac,table54781,nedkelly,philbert,sux2bu,nomis,sparky99,python1,littlebear,numpty,silmaril,sweeet,jamesw,cbufhtnf,peggysue,wodahs,luvsex,wizardry,venom123,love4you,bama1,samat,reviewpass,ned467,cjkjdtq,mamula,gijoe,amersham,devochka,redhill,gisel,preggo,polock,cando,rewster,greenlantern,panasonik,dave1234,mikeee,
1carlos,miledi,darkness1,p0o9i8u7y6,kathryn1,happyguy,dcp500,assmaster,sambuka,sailormo,antonio3,logans,
18254288,nokiax2,qwertzuiop,zavilov,totti,xenon1,edward11,targa1,something1,tony_t,q1w2e3r4t5y6u7i8o9p0,
02551670,vladimir1,monkeybutt,greenda,neel21,craiger,saveliy,dei008,honda450,fylhtq95,spike2,fjnq8915,passwordstandard,vova12345,talonesi,richi,gigemags,pierre1,westin,trevoga,dorothee,bastogne,
25563o,brandon3,truegrit,krimml,iamgreat,servis,a112233,paulinka,azimuth,corperfmonsy,
358hkyp,homerun1,dogbert1,eatmyass,cottage1,savina,baseball7,bigtex,gimmesum,asdcxz,lennon1,a159357,
1bastard,
413276191q,pngfilt,pchealth,netsnip,bodiroga,
1matt,webtvs,ravers,adapters,siddis,mashamasha,coffee2,myhoney,anna1982,marcia1,fairchil,maniek,iloveluc,batmonh,wildon,bowie1,netnwlnk,fancy1,tom204,olga1976,vfif123,queens1,ajax01,lovess,mockba,icam4usb,triada,odinthor,rstlne,exciter,sundog,anchorat,girls69,nfnmzyrf,soloma,gti16v,shadowman,ottom,rataros,tonchin,vishal,chicken0,pornlo,christiaan,volante,likesit,mariupol,runfast,gbpltw123,missys,villevalo,kbpjxrf,ghibli,calla,cessna172,kinglear,dell11,swift1,walera,
1cricket,pussy5,turbo911,tucke,maprchem56458,rosehill,thekiwi1,ygfxbkgt,mandarinka,
98xa29,magnit,cjfrf,paswoord,grandam1,shenmue,leedsuni,hatrick,zagadka,angeldog,michaell,dance123,koichi,bballs,
29palms,xanth,
228822,ppppppp1,
1kkkkk,
1lllll,mynewbots,spurss,madmax1,
224455,city1,mmmmmmm1,nnnnnnn1,biedronka,thebeatles,elessar,f14tomcat,jordan18,bobo123,ayi000,tedbear,
86chevyx,user123,bobolink,maktub,elmer1,flyfishi,franco1,gandalf0,traxdata,david21,enlighte,dmitrij,beckys,
1giants,flippe,
12345678w,jossie,rugbyman,snowcat,rapeme,peanut11,gemeni,udders,techn9ne,armani1,chappie,war123,vakantie,maddawg,sewanee,jake5253,tautt1,anthony5,letterma,jimbo2,kmdtyjr,hextall,jessica6,amiga500,hotcunt,phoenix9,veronda,saqartvelo,scubas,sixer3,williamj,nightfal,shihan,melnikova,kosssss,handily,killer77,jhrl0821,march17,rushman,
6gcf636i,metoyou,irina123,mine11,primus1,formatters,matthew5,infotech,gangster1,jordan45,moose69,kompas,motoxxx,greatwhi,cobra12,kirpich,weezer1,hello23,montse,tracy123,connecte,cjymrf,hemingwa,azreal,gundam00,mobila,boxman,slayers1,ravshan,june26,fktrcfylhjd,bermuda1,tylerd,maersk,qazwsx11,eybdthcbntn,ash123,camelo,kat123,backd00r,cheyenne1,
1king,jerkin,tnt123,trabant,warhammer40k,rambos,punto,home77,pedrito,
1frank,brille,guitarman,george13,rakas,tgbxtcrbq,flute1,bananas1,lovezp1314,thespot,postie,buster69,sexytime,twistys,zacharia,sportage,toccata,denver7,terry123,bogdanova,devil69,higgins1,whatluck,pele10,kkk666,jeffery1,
1qayxsw2,riptide1,chevy11,munchy,lazer1,hooker1,ghfgjh,vergesse,playgrou,
4077mash,gusev,humpin,oneputt,hydepark,monster9,tiger8,tangsoo,guy123,hesoyam1,uhtqneyu,thanku,lomond,ortezza,kronik,geetha,rabbit66,killas,qazxswe,alabaste,
1234567890qwerty,capone1,andrea12,geral,beatbox,slutfuck,booyaka,jasmine7,ostsee,maestro1,beatme,tracey1,buster123,donaldduck,ironfish,happy6,konnichi,gintonic,momoney1,dugan1,today2,enkidu,destiny2,trim7gun,katuha,fractals,morganstanley,polkadot,gotime,prince11,
204060,fifa2010,bobbyt,seemee,amanda10,airbrush,bigtitty,heidie,layla1,cotton1,
5speed,fyfnjkmtdyf,flynavy,joxury8f,meeko,akuma,dudley1,flyboy1,moondog1,trotters,mariami,signin,chinna,legs11,pussy4,
1s1h1e1f1,felici,optimus1,iluvu,marlins1,gavaec,balance1,glock40,london01,kokot,southwes,comfort1,sammy11,rockbottom,brianc,litebeer,homero,chopsuey,greenlan,charit,freecell,hampster,smalldog,viper12,blofeld,
1234567890987654321,realsex,romann,cartman2,cjdthitycndj,nelly1,bmw528,zwezda,masterba,jeep99,turtl,america2,sunburst,sanyco,auntjudy,
125wm,blue10,qwsazx,cartma,toby12,robbob,red222,ilovecock,losfix16,
1explore,helge,vaz2114,whynotme,baba123,mugen,
1qazwsxedc,albertjr,
0101198,sextime,supras,nicolas2,wantsex,pussy6,checkm8,winam,
24gordon,misterme,curlew,gbljhfcs,medtech,franzi,butthea,voivod,blackhat,egoiste,pjkeirf,maddog69,pakalolo,hockey4,igor1234,rouges,snowhite,homefree,sexfreak,acer12,dsmith,blessyou,
199410,vfrcbvjd,falco02,belinda1,yaglasph,april21,groundho,jasmin1,nevergiveup,elvir,gborv526,c00kie,emma01,awesome2,larina,mike12345,maximu,anupam,bltynbabrfwbz,tanushka,sukkel,raptor22,josh12,schalke04,cosmodog,fuckyou8,busybee,
198800,bijoux,frame1,blackmor,giveit,issmall,bear13,
123-
123,bladez,littlegirl,ultra123,fletch1,flashnet,loploprock,rkelly,
12step,lukas1,littlewhore,cuntfinger,stinkyfinger,laurenc,
198020,n7td4bjl,jackie69,camel123,ben1234,
1gateway,adelheid,fatmike,thuglove,zzaaqq,chivas1,
4815162342q,mamadou,nadano,james22,benwin,andrea99,rjirf,michou,abkbgg,d50gnn,aaazzz,a123654,blankman,booboo11,medicus,bigbone,
197200,justine1,bendix,morphius,njhvjp,
44mag,zsecyus56,goodbye1,nokiadermo,a333444,waratsea,
4rzp8ab7,fevral,brillian,kirbys,minim,erathia,grazia,zxcvb1234,dukey,snaggle,poppi,hymen,
1video,dune2000,jpthjdf,cvbn123,zcxfcnkbdfz,astonv,ginnie,
316271,engine3,pr1ncess,
64chevy,glass1,laotzu,hollyy,comicbooks,assasins,nuaddn9561,scottsda,hfcnfvfy,accobra,
7777777z,werty123,metalhead,romanson,redsand,
365214,shalo,arsenii,
1989cc,sissi,duramax,
382563,petera,
414243,mamapap,jollymon,field1,fatgirl,janets,trompete,matchbox20,rambo2,nepenthe,
441232,qwertyuiop10,bozo123,phezc419hv,romantika,lifestyl,pengui,decembre,demon6,panther6,
444888,scanman,ghjcnjabkz,pachanga,buzzword,indianer,spiderman3,tony12,startre,frog1,fyutk,
483422,tupacshakur,albert12,
1drummer,bmw328i,green17,aerdna,invisibl,summer13,calimer,mustaine,lgnu9d,morefun,hesoyam123,escort1,scrapland,stargat,barabbas,dead13,
545645,mexicali,sierr,gfhfpbn,gonchar,moonstafa,searock,counte,foster1,jayhawk1,floren,maremma,nastya2010,softball1,adaptec,halloo,barrabas,zxcasd123,hunny,mariana1,kafedra,freedom0,green420,vlad1234,method7,
665566,tooting,hallo12,davinchi,conducto,medias,
666444,invernes,madhatter,
456asd,
12345678i,
687887,le33px,spring00,help123,bellybut,billy5,vitalik1,river123,gorila,bendis,power666,
747200,footslav,acehigh,qazxswedc123,q1a1z1,richard9,peterburg,tabletop,gavrilov,
123qwe1,kolosov,fredrau,run4fun,
789056,jkbvgbflf,chitra,
87654321q,steve22,wideopen,access88,surfe,tdfyutkbjy,impossib,kevin69,
880888,cantina,
887766,wxcvb,dontforg,qwer1209,asslicke,mamma123,indig,arkasha,scrapp,morelia,vehxbr,jones2,scratch1,cody11,cassie12,gerbera,dontgotm,underhil,maks2010,hollywood1,hanibal,elena2010,jason11,
1010321,stewar,elaman,fireplug,goodby,sacrific,babyphat,bobcat12,bruce123,
1233215,tony45,tiburo,love15,bmw750,wallstreet,
2h0t4me,
1346795,lamerz,munkee,
134679q,granvill,
1512198,armastus,aiden1,pipeutvj,g1234567,angeleyes,usmc1,
102030q,putangina,brandnew,shadowfax,eagles12,
1falcon,brianw,lokomoti,
2022958,scooper,pegas,jabroni1,
2121212,buffal,siffredi,wewiz,twotone,rosebudd,nightwis,carpet1,mickey2,
2525252,sleddog,red333,jamesm,
2797349,jeff12,onizuka,felixxxx,rf6666,fine1,ohlala,forplay,chicago5,muncho,scooby11,ptichka,johnnn,
19851985p,dogphil3650,totenkopf,monitor2,macross7,
3816778,dudder,semaj1,bounder,racerx1,
5556633,
7085506,ofclr278,brody1,
7506751,nantucke,hedj2n4q,drew1,aessedai,trekbike,pussykat,samatron,imani,
9124852,wiley1,dukenukem,iampurehaha2,
9556035,obvious1,mccool24,apache64,kravchenko,justforf,basura,jamese,s0ccer,safado,darksta,surfer69,damian1,gjpbnbd,gunny1,wolley,sananton,zxcvbn123456,odt4p6sv8,sergei1,modem1,mansikka,zzzz1,rifraf,dima777,mary69,looking4,donttell,red100,ninjutsu,uaeuaeman,bigbri,brasco,queenas8151,demetri,angel007,bubbl,kolort,conny,antonia1,avtoritet,kaka22,kailayu,sassy2,wrongway,chevy3,
1nascar,patriots1,chrisrey,mike99,sexy22,chkdsk,sd3utre7,padawan,a6pihd,doming,mesohorny,tamada,donatello,emma22,eather,susan69,pinky123,stud69,fatbitch,pilsbury,thc420,lovepuss,
1creativ,golf1234,hurryup,
1honda,huskerdu,marino1,gowron,girl1,fucktoy,gtnhjpfdjlcr,dkjfghdk,pinkfl,loreli,
7777777s,donkeykong,rockytop,staples1,sone4ka,xxxjay,flywheel,toppdogg,bigbubba,aaa123456,
2letmein,shavkat,paule,dlanor,adamas,
0147852,aassaa,dixon1,bmw328,mother12,ilikepussy,holly2,tsmith,excaliber,fhutynbyf,nicole3,tulipan,emanue,flyvholm,currahee,godsgift,antonioj,torito,dinky1,sanna,yfcnzvjz,june14,anime123,
123321456654,hanswurst,bandman,hello101,xxxyyy,chevy69,technica,tagada,arnol,v00d00,lilone,filles,drumandbass,dinamit,a1234a,eatmeat,elway07,inout,james6,dawid1,thewolf,diapason,yodaddy,qscwdv,fuckit1,liljoe,sloeber,simbacat,sascha1,qwe1234,
1badger,prisca,angel17,gravedig,jakeyboy,longboard,truskawka,golfer11,pyramid7,highspee,pistola,theriver,hammer69,
1packers,dannyd,alfonse,qwertgfdsa,
11119999,basket1,ghjtrn,saralee,
12inches,paolo1,zse4xdr5,taproot,sophieh6,grizzlie,hockey69,danang,biggums,hotbitch,
5alive,beloved1,bluewave,dimon95,koketka,multiscan,littleb,leghorn,poker2,delite,skyfir,bigjake,persona1,amberdog,hannah12,derren,ziffle,
1sarah,
1assword,sparky01,seymur,tomtom1,
123321qw,goskins,soccer19,luvbekki,bumhole,
2balls,
1muffin,borodin,monkey9,yfeiybrb,
1alex,betmen,freder,nigger123,azizbek,gjkzrjdf,lilmike,
1bigdadd,
1rock,taganrog,snappy1,andrey1,kolonka,bunyan,gomango,vivia,clarkkent,satur,gaudeamus,mantaray,
1month,whitehea,fargus,andrew99,ray123,redhawks,liza2009,qw12345,den12345,vfhnsyjdf,
147258369a,mazepa,newyorke,
1arsenal,hondas2000,demona,fordgt,steve12,birthday2,
12457896,dickster,edcwsxqaz,sahalin,pantyman,skinny1,hubertus,cumshot1,chiro,kappaman,mark3434,canada12,lichking,bonkers1,ivan1985,sybase,valmet,doors1,deedlit,kyjelly,bdfysx,ford11,throatfuck,backwood,fylhsq,lalit,boss429,kotova,bricky,steveh,joshua19,kissa,imladris,star1234,lubimka,partyman,crazyd,tobias1,ilike69,imhome,whome,fourstar,scanner1,ujhjl312,anatoli,
85bears,jimbo69,
5678ytr,potapova,nokia7070,sunday1,kalleank,
1996gta,refinnej,july1,molodec,nothanks,enigm,
12play,sugardog,nhfkbdfkb,larousse,cannon1,
144444,qazxcdew,stimorol,jhereg,spawn7,
143000,fearme,hambur,merlin21,dobie,is3yeusc,partner1,dekal,varsha,
478jfszk,flavi,hippo1,
9hmlpyjd,july21,
7imjfstw,lexxus,truelov,nokia5200,carlos6,anais,mudbone,anahit,taylorc,tashas,larkspur,animal2000,nibiru,jan123,miyvarxar,deflep,dolore,communit,ifoptfcor,laura2,anadrol,mamaliga,mitzi1,blue92,april15,matveev,kajlas,wowlook1,
1flowers,shadow14,alucard1,
1golf,bantha,scotlan,singapur,mark13,manchester1,telus01,superdav,jackoff1,madnes,bullnuts,world123,clitty,palmer1,david10,spider10,sargsyan,rattlers,david4,windows2,sony12,visigoth,qqqaaa,penfloor,cabledog,camilla1,natasha123,eagleman,softcore,bobrov,dietmar,divad,sss123,d1234567,tlbyjhju,
1q1q1q1,paraiso,dav123,lfiekmrf,drachen,lzhan16889,tplate,gfghbrf,casio1,
123boots1,
123test,sys64738,heavymetal,andiamo,meduza,soarer,coco12,negrita,amigas,heavymet,bespin,
1asdfghj,wharfrat,wetsex,tight1,janus1,sword123,ladeda,dragon98,austin2,atep1,jungle1,
12345abcd,lexus300,pheonix1,alex1974,
123qw123,
137955,bigtim,shadow88,igor1994,goodjob,arzen,champ123,
121ebay,changeme1,brooksie,frogman1,buldozer,morrowin,achim,trish1,lasse,festiva,bubbaman,scottb,kramit,august22,tyson123,passsword,oompah,al123456,fucking1,green45,noodle1,looking1,ashlynn,al1716,stang50,coco11,greese,bob111,brennan1,jasonj,
1cherry,
1q2345,
1xxxxxxx,fifa2011,brondby,zachar1,satyam,easy1,magic7,
1rainbow,cheezit,
1eeeeeee,ashley123,assass1,amanda123,jerbear,
1bbbbbb,azerty12,
15975391,
654321z,twinturb,onlyone1,denis1988,
6846kg3r,jumbos,pennydog,dandelion,haileris,epervier,snoopy69,afrodite,oldpussy,green55,poopypan,verymuch,katyusha,recon7,mine69,tangos,contro,blowme2,jade1,skydive1,fiveiron,dimo4ka,bokser,stargirl,fordfocus,tigers2,platina,baseball11,raque,pimper,jawbreak,buster88,walter34,chucko,penchair,horizon1,thecure1,scc1975,adrianna1,kareta,duke12,krille,dumbfuck,cunt1,aldebaran,laverda,harumi,knopfler,pongo1,pfhbyf,dogman1,rossigno,
1hardon,scarlets,nuggets1,ibelieve,akinfeev,xfhkbr,athene,falcon69,happie,billly,nitsua,fiocco,qwerty09,gizmo2,slava2,
125690,doggy123,craigs,vader123,silkeborg,
124365,peterm,
123978,krakatoa,
123699,
123592,kgvebmqy,pensacol,d1d2d3,snowstor,goldenboy,gfg65h7,ev700,church1,orange11,g0dz1ll4,chester3,acheron,cynthi,hotshot1,jesuschris,motdepass,zymurgy,one2one,fietsbel,harryp,wisper,pookster,nn527hp,dolla,milkmaid,rustyboy,terrell1,epsilon1,lillian1,dale3,crhbgrf,maxsim,selecta,mamada,fatman1,ufkjxrf,shinchan,fuckuall,women1,
000008,bossss,greta1,rbhjxrf,mamasboy,purple69,felicidade,sexy21,cathay,hunglow,splatt,kahless,shopping1,
1gandalf,themis,delta7,moon69,blue24,parliame,mamma1,miyuki,
2500hd,jackmeof,razer,rocker1,juvis123,noremac,boing747,
9z5ve9rrcz,icewater,titania,alley1,moparman,christo1,oliver2,vinicius,tigerfan,chevyy,joshua99,doda99,matrixx,ekbnrf,jackfrost,viper01,kasia,cnfhsq,triton1,ssbt8ae2,rugby8,ramman,
1lucky,barabash,ghtlfntkm,junaid,apeshit,enfant,kenpo1,shit12,
007000,marge1,shadow10,qwerty789,richard8,vbitkm,lostboys,jesus4me,richard4,hifive,kolawole,damilola,prisma,paranoya,prince2,lisaann,happyness,cardss,methodma,supercop,a8kd47v5,gamgee,polly123,irene1,number8,hoyasaxa,
1digital,matthew0,dclxvi,lisica,roy123,
2468013579,sparda,queball,vaffanculo,pass1wor,repmvbx,
999666333,freedom8,botanik,
777555333,marcos1,lubimaya,flash2,einstei,
08080,
123456789j,
159951159,
159357123,carrot1,alina1995,sanjos,dilara,mustang67,wisteria,jhnjgtl12,
98766789,darksun,arxangel,
87062134,creativ1,malyshka,fuckthemall,barsic,rocksta,
2big4u,
5nizza,genesis2,romance1,ofcourse,
1horse,latenite,cubana,sactown,
789456123a,milliona,
61808861,
57699434,imperia,bubba11,yellow3,change12,
55495746,flappy,jimbo123,
19372846,
19380018,cutlass1,craig123,klepto,beagle1,solus,
51502112,pasha1,
19822891,
46466452,
19855891,petshop,nikolaevna,
119966,nokia6131,evenpar,hoosier1,contrasena,jawa350,gonzo123,mouse2,
115511,eetfuk,gfhfvgfvgfv,
1crystal,sofaking,coyote1,kwiatuszek,fhrflbq,valeria1,anthro,
0123654789,alltheway,zoltar,maasikas,wildchil,fredonia,earlgrey,gtnhjczy,matrix123,solid1,slavko,
12monkeys,fjdksl,inter1,nokia6500,
59382113kevinp,spuddy,cachero,coorslit,password!,kiba1z,karizma,vova1994,chicony,english1,bondra12,
1rocket,hunden,jimbob1,zpflhjn1,th0mas,deuce22,meatwad,fatfree,congas,sambora,cooper2,janne,clancy1,stonie,busta,kamaz,speedy2,jasmine3,fahayek,arsenal0,beerss,trixie1,boobs69,luansantana,toadman,control2,ewing33,maxcat,mama1964,diamond4,tabaco,joshua0,piper2,music101,guybrush,reynald,pincher,katiebug,starrs,pimphard,frontosa,alex97,cootie,clockwor,belluno,skyeseth,booty69,chaparra,boochie,green4,bobcat1,havok,saraann,pipeman,aekdb,jumpshot,wintermu,chaika,
1chester,rjnjatq,emokid,reset1,regal1,j0shua,
134679a,asmodey,sarahh,zapidoo,ciccione,sosexy,beckham23,hornets1,alex1971,delerium,manageme,connor11,
1rabbit,sane4ek,caseyboy,cbljhjdf,redsox20,tttttt99,haustool,ander,pantera6,passwd1,journey1,
9988776655,blue135,writerspace,xiaoyua123,justice2,niagra,cassis,scorpius,bpgjldsgjldthnf,gamemaster,bloody1,retrac,stabbin,toybox,fight1,ytpyf.,glasha,va2001,taylor11,shameles,ladylove,
10078,karmann,rodeos,eintritt,lanesra,tobasco,jnrhjqcz,navyman,pablit,leshka,jessica3,
123vika,alena1,platinu,ilford,storm7,undernet,sasha777,
1legend,anna2002,kanmax1994,porkpie,thunder0,gundog,pallina,easypass,duck1,supermom,roach1,twincam,
14028,tiziano,qwerty32,
123654789a,evropa,shampoo1,yfxfkmybr,cubby1,tsunami1,fktrcttdf,yasacrac,
17098,happyhap,bullrun,rodder,oaktown,holde,isbest,taylor9,reeper,hammer11,julias,rolltide1,compaq123,fourx4,subzero1,hockey9,
7mary3,busines,ybrbnjcbr,wagoneer,danniash,portishead,digitex,alex1981,david11,infidel,
1snoopy,free30,jaden,tonto1,redcar27,footie,moskwa,thomas21,hammer12,burzum,cosmo123,
50000,burltree,
54343,
54354,vwpassat,jack5225,cougars1,burlpony,blackhorse,alegna,petert,katemoss,ram123,nels0n,ferrina,angel77,cstock,
1christi,dave55,abc123a,alex1975,av626ss,flipoff,folgore,max1998,science1,si711ne,yams7,wifey1,sveiks,cabin1,volodia,ox3ford,cartagen,platini,picture1,sparkle1,tiedomi,service321,wooody,christi1,gnasher,brunob,hammie,iraffert,bot2010,dtcyeirf,
1234567890p,cooper11,alcoholi,savchenko,adam01,chelsea5,niewiem,icebear,lllooottt,ilovedick,sweetpus,money8,cookie13,rfnthbyf1988,booboo2,angus123,blockbus,david9,chica1,nazaret,samsung9,smile4u,daystar,skinnass,john10,thegirl,sexybeas,wasdwasd1,sigge1,
1qa2ws3ed4rf5tg,czarny,ripley1,chris5,ashley19,anitha,pokerman,prevert,trfnthby,tony69,georgia2,stoppedb,qwertyuiop12345,miniclip,franky1,durdom,cabbages,
1234567890o,delta5,liudmila,nhfycajhvths,court1,josiew,abcd1,doghead,diman,masiania,songline,boogle,triston,deepika,sexy4me,grapple,spacebal,ebonee,winter0,smokewee,nargiza,dragonla,sassys,andy2000,menards,yoshio,massive1,suckmy1k,passat99,sexybo,nastya1996,isdead,stratcat,hokuto,infix,pidoras,daffyduck,cumhard,baldeagl,kerberos,yardman,shibainu,guitare,cqub6553,tommyy,bk.irf,bigfoo,hecto,july27,james4,biggus,esbjerg,isgod,
1irish,phenmarr,jamaic,roma1990,diamond0,yjdbrjd,girls4me,tampa1,kabuto,vaduz,hanse,spieng,dianochka,csm101,lorna1,ogoshi,plhy6hql,
2wsx4rfv,cameron0,adebayo,oleg1996,sharipov,bouboule,hollister1,frogss,yeababy,kablam,adelante,memem,howies,thering,cecilia1,onetwo12,ojp123456,jordan9,msorcloledbr,neveraga,evh5150,redwin,
1august,canno,
1mercede,moody1,mudbug,chessmas,tiikeri,stickdaddy77,alex15,kvartira,
7654321a,lollol123,qwaszxedc,algore,solana,vfhbyfvfhbyf,blue72,misha1111,smoke20,junior13,mogli,threee,shannon2,fuckmylife,kevinh,saransk,karenw,isolde,sekirarr,orion123,thomas0,debra1,laketaho,alondra,curiva,jazz1234,
1tigers,jambos,lickme2,suomi,gandalf7,
028526,zygote,brett123,br1ttany,supafly,
159000,kingrat,luton1,cool-ca,bocman,thomasd,skiller,katter,mama777,chanc,tomass,
1rachel,oldno7,rfpfyjdf,bigkev,yelrah,primas,osito,kipper1,msvcr71,bigboy11,thesun,noskcaj,chicc,sonja1,lozinka,mobile1,
1vader,ummagumma,waves1,punter12,tubgtn,server1,irina1991,magic69,dak001,pandemonium,dead1,berlingo,cherrypi,
1montana,lohotron,chicklet,asdfgh123456,stepside,ikmvw103,icebaby,trillium,
1sucks,ukrnet,glock9,ab12345,thepower,robert8,thugstools,hockey13,buffon,livefree,sexpics,dessar,ja0000,rosenrot,james10,
1fish,svoloch,mykitty,muffin11,evbukb,shwing,artem1992,andrey1992,sheldon1,passpage,nikita99,fubar123,vannasx,eight888,marial,max2010,express2,violentj,
2ykn5ccf,spartan11,brenda69,jackiech,abagail,robin2,grass1,andy76,bell1,taison,superme,vika1995,xtr451,fred20,
89032073168,denis1984,
2000jeep,weetabix,
199020,daxter,tevion,panther8,h9iymxmc,bigrig,kalambur,tsalagi,
12213443,racecar02,jeffrey4,nataxa,bigsam,purgator,acuracl,troutbum,potsmoke,jimmyz,manutd1,nytimes,pureevil,bearss,cool22,dragonage,nodnarb,dbrbyu,
4seasons,freude,elric1,werule,hockey14,
12758698,corkie,yeahright,blademan,tafkap,clave,liziko,hofner,jeffhardy,nurich,runne,stanisla,lucy1,monk3y,forzaroma,eric99,bonaire,blackwoo,fengshui,
1qaz0okm,newmoney,pimpin69,
07078,anonymer,laptop1,cherry12,ace111,salsa1,wilbur1,doom12,diablo23,jgtxzbhr,under1,honda01,breadfan,megan2,juancarlos,stratus1,ackbar,love5683,happytim,lambert1,cbljhtyrj,komarov,spam69,nfhtkrf,brownn,sarmat,ifiksr,spike69,hoangen,angelz,economia,tanzen,avogadro,
1vampire,spanners,mazdarx,queequeg,oriana,hershil,sulaco,joseph11,
8seconds,aquariu,cumberla,heather9,anthony8,burton12,crystal0,maria3,qazwsxc,snow123,notgood,
198520,raindog,heehaw,consulta,dasein,miller01,cthulhu1,dukenuke,iubire,baytown,hatebree,
198505,sistem,lena12,welcome01,maraca,middleto,sindhu,mitsou,phoenix5,vovan,donaldo,dylandog,domovoy,lauren12,byrjuybnj,
123llll,stillers,sanchin,tulpan,smallvill,
1mmmmm,patti1,folgers,mike31,colts18,
123456rrr,njkmrjz,phoenix0,biene,ironcity,kasperok,password22,fitnes,matthew6,spotligh,bujhm123,tommycat,hazel5,guitar11,
145678,vfcmrf,compass1,willee,
1barney,jack2000,littleminge,shemp,derrek,xxx12345,littlefuck,spuds1,karolinka,camneely,qwertyu123,
142500,brandon00,munson15,falcon3,passssap,z3cn2erv,goahead,baggio10,
141592,denali1,
37kazoo,copernic,
123456789asd,orange88,bravada,rush211,
197700,pablo123,uptheass,samsam1,demoman,mattylad10,heydude,mister2,werken,
13467985,marantz,a22222,f1f2f3f4,fm12mn12,gerasimova,burrito1,sony1,glenny,baldeagle,rmfidd,fenomen,verbati,forgetme,
5element,wer138,chanel1,ooicu812,
10293847qp,minicooper,chispa,myturn,deisel,vthrehbq,boredboi4u,filatova,anabe,poiuyt1,barmalei,yyyy1,fourkids,naumenko,bangbros,pornclub,okaykk,euclid90,warrior3,kornet,palevo,patatina,gocart,antanta,jed1054,clock1,
111111w,dewars,mankind1,peugeot406,liten,tahira,howlin,naumov,rmracing,corone,cunthole,passit,rock69,jaguarxj,bumsen,
197101,sweet2,
197010,whitecat,sawadee,money100,yfhrjnbrb,andyboy,
9085603566,trace1,fagget,robot1,angel20,
6yhn7ujm,specialinsta,kareena,newblood,chingada,boobies2,bugger1,squad51,
133andre,call06,ashes1,ilovelucy,success2,kotton,cavalla,philou,deebee,theband,nine09,artefact,
196100,kkkkkkk1,nikolay9,onelov,basia,emilyann,sadman,fkrjujkbr,teamomuch,david777,padrino,money21,firdaus,orion3,chevy01,albatro,erdfcv,
2legit,sarah7,torock,kevinn,holio,soloy,enron714,starfleet,qwer11,neverman,doctorwh,lucy11,dino12,trinity7,seatleon,o123456,pimpman,
1asdfgh,snakebit,chancho,prorok,bleacher,ramire,darkseed,warhorse,michael123,
1spanky,
1hotdog,
34erdfcv,n0th1ng,dimanche,repmvbyf,michaeljackson,login1,icequeen,toshiro,sperme,racer2,veget,birthday26,daniel9,lbvekmrf,charlus,bryan123,wspanic,schreibe,
1andonly,dgoins,kewell,apollo12,egypt1,fernie,tiger21,aa123456789,blowj,spandau,bisquit,
12345678d,deadmau5,fredie,
311420,happyface,samant,gruppa,filmstar,andrew17,bakesale,sexy01,justlook,cbarkley,paul11,bloodred,rideme,birdbath,nfkbcvfy,jaxson,sirius1,kristof,virgos,nimrod1,hardc0re,killerbee,
1abcdef,pitcher1,justonce,vlada,dakota99,vespucci,wpass,outside1,puertori,rfvbkf,teamlosi,vgfun2,porol777,empire11,
20091989q,jasong,webuivalidat,escrima,lakers08,trigger2,addpass,
342500,mongini,dfhtybr,horndogg,palermo1,
136900,babyblu,alla98,dasha2010,jkelly,kernow,yfnecz,rockhopper,toeman,tlaloc,silver77,dave01,kevinr,
1234567887654321,
135642,me2you,
8096468644q,remmus,spider7,jamesa,jilly,samba1,drongo,
770129ji,supercat,juntas,tema1234,esthe,
1234567892000,drew11,qazqaz123,beegees,blome,rattrace,howhigh,tallboy,rufus2,sunny2,sou812,miller12,indiana7,irnbru,patch123,letmeon,welcome5,nabisco,
9hotpoin,hpvteb,lovinit,stormin,assmonke,trill,atlanti,money1234,cubsfan,mello1,stars2,ueptkm,agate,dannym88,lover123,wordz,worldnet,julemand,chaser1,s12345678,pissword,cinemax,woodchuc,point1,hotchkis,packers2,bananana,kalender,
420666,penguin8,awo8rx3wa8t,hoppie,metlife,ilovemyfamily,weihnachtsbau,pudding1,luckystr,scully1,fatboy1,amizade,dedham,jahbless,blaat,surrende,****er,
1panties,bigasses,ghjuhfvbcn,asshole123,dfktyrb,likeme,nickers,plastik,hektor,deeman,muchacha,cerebro,santana5,testdrive,dracula1,canalc,l1750sq,savannah1,murena,
1inside,pokemon00,
1iiiiiii,jordan20,sexual1,mailliw,calipso,
014702580369,
1zzzzzz,
1jjjjjj,break1,
15253545,yomama1,katinka,kevin11,
1ffffff,martijn,sslazio,daniel5,porno2,nosmas,leolion,jscript,
15975312,pundai,kelli1,kkkddd,obafgkm,marmaris,lilmama,london123,rfhfnt,elgordo,talk87,daniel7,thesims3,
444111,bishkek,afrika2002,toby22,
1speedy,daishi,
2children,afroman,qqqqwwww,oldskool,hawai,v55555,syndicat,pukimak,fanatik,tiger5,parker01,bri5kev6,timexx,wartburg,love55,ecosse,yelena03,madinina,highway1,uhfdbwfgf,karuna,buhjvfybz,wallie,
46and2,khalif,europ,qaz123wsx456,bobbybob,wolfone,falloutboy,manning18,scuba10,schnuff,ihateyou1,lindam,sara123,popcor,fallengun,divine1,montblanc,qwerty8,rooney10,roadrage,bertie1,latinus,lexusis,rhfvfnjhcr,opelgt,hitme,agatka,
1yamaha,dmfxhkju,imaloser,michell1,sb211st,silver22,lockedup,andrew9,monica01,sassycat,dsobwick,tinroof,ctrhtnyj,bultaco,rhfcyjzhcr,aaaassss,
14ss88,joanne1,momanddad,ahjkjdf,yelhsa,zipdrive,telescop,
500600,
1sexsex,facial1,motaro,
511647,stoner1,temujin,elephant1,greatman,honey69,kociak,ukqmwhj6,altezza,cumquat,zippos,kontiki,
123max,altec1,bibigon,tontos,qazsew,nopasaran,militar,supratt,oglala,kobayash,agathe,yawetag,dogs1,cfiekmrf,megan123,jamesdea,porosenok,tiger23,berger1,hello11,seemann,stunner1,walker2,imissu,jabari,minfd,lollol12,hjvfy,
1-oct,stjohns,
2278124q,
123456789qwer,alex1983,glowworm,chicho,mallards,bluedevil,explorer1,
543211,casita,
1time,lachesis,alex1982,airborn1,dubesor,changa,lizzie1,captaink,socool,bidule,march23,
1861brr,k.ljxrf,watchout,fotze,
1brian,keksa2,aaaa1122,matrim,providian,privado,dreame,merry1,aregdone,davidt,nounour,twenty2,play2win,artcast2,zontik,
552255,shit1,sluggy,
552861,dr8350,brooze,alpha69,thunder6,kamelia2011,caleb123,mmxxmm,jamesh,lfybkjd,
125267,
125000,
124536,bliss1,dddsss,indonesi,bob69,
123888,tgkbxfgy,gerar,themack,hijodeputa,good4now,ddd123,clk430,kalash,tolkien1,
132forever,blackb,whatis,s1s2s3s4,lolkin09,yamahar,
48n25rcc,djtiesto,
111222333444555,bigbull,blade55,coolbree,kelse,ichwill,yamaha12,sakic,bebeto,katoom,donke,sahar,wahine,
645202,god666,berni,starwood,june15,sonoio,time123,llbean,deadsoul,lazarev,cdtnf,ksyusha,madarchod,technik,jamesy,
4speed,tenorsax,legshow,yoshi1,chrisbl,
44e3ebda,trafalga,heather7,serafima,favorite4,havefun1,wolve,
55555r,james13,nosredna,bodean,jlettier,borracho,mickael,marinus,brutu,sweet666,kiborg,rollrock,jackson6,macross1,ousooner,
9085084232,takeme,
123qwaszx,firedept,vfrfhjd,jackfros,
123456789000,briane,cookie11,baby22,bobby18,gromova,systemofadown,martin01,silver01,pimaou,darthmaul,hijinx,commo,chech,skyman,sunse,
2vrd6,vladimirovna,uthvfybz,nicole01,kreker,bobo1,v123456789,erxtgb,meetoo,drakcap,vfvf12,misiek1,butane,network2,flyers99,riogrand,jennyk,e12345,spinne,avalon11,lovejone,studen,maint,porsche2,qwerty100,chamberl,bluedog1,sungam,just4u,andrew23,summer22,ludic,musiclover,aguil,beardog1,libertin,pippo1,joselit,patito,bigberth,digler,sydnee,jockstra,poopo,jas4an,nastya123,profil,fuesse,default1,titan2,mendoz,kpcofgs,anamika,brillo021,bomberman,guitar69,latching,
69pussy,blues2,phelge,ninja123,m7n56xo,qwertasd,alex1976,cunningh,estrela,gladbach,marillion,mike2000,
258046,bypop,muffinman,kd5396b,zeratul,djkxbwf,john77,sigma2,
1linda,selur,reppep,quartz1,teen1,freeclus,spook1,kudos4ever,clitring,sexiness,blumpkin,macbook,tileman,centra,escaflowne,pentable,shant,grappa,zverev,
1albert,lommerse,coffee11,
777123,polkilo,muppet1,alex74,lkjhgfdsazx,olesica,april14,ba25547,souths,jasmi,arashi,smile2,
2401pedro,mybabe,alex111,quintain,pimp1,tdeir8b2,makenna,
122333444455555,%e2%
82%ac,tootsie1,pass111,zaqxsw123,gkfdfybt,cnfnbcnbrf,usermane,iloveyou12,hard69,osasuna,firegod,arvind,babochka,kiss123,cookie123,julie123,kamakazi,dylan2,
223355,tanguy,nbhtqa,tigger13,tubby1,makavel,asdflkj,sambo1,mononoke,mickeys,gayguy,win123,green33,wcrfxtvgbjy,bigsmall,
1newlife,clove,babyfac,bigwaves,mama1970,shockwav,
1friday,bassey,yarddog,codered1,victory7,bigrick,kracker,gulfstre,chris200,sunbanna,bertuzzi,begemotik,kuolema,pondus,destinee,
123456789zz,abiodun,flopsy,amadeusptfcor,geronim,yggdrasi,contex,daniel6,suck1,adonis1,moorea,el345612,f22raptor,moviebuf,raunchy,
6043dkf,zxcvbnm123456789,eric11,deadmoin,ratiug,nosliw,fannies,danno,
888889,blank1,mikey2,gullit,thor99,mamiya,ollieb,thoth,dagger1,websolutionssu,bonker,prive,
1346798520,
03038,q1234q,mommy2,contax,zhipo,gwendoli,gothic1,
1234562000,lovedick,gibso,digital2,space199,b26354,
987654123,golive,serious1,pivkoo,better1,
824358553,
794613258,nata1980,logout,fishpond,buttss,squidly,good4me,redsox19,jhonny,zse45rdx,matrixxx,honey12,ramina,
213546879,motzart,fall99,newspape,killit,gimpy,photowiz,olesja,thebus,marco123,
147852963,bedbug,
147369258,hellbound,gjgjxrf,
123987456,lovehurt,five55,hammer01,
1234554321a,alina2011,peppino,ang238,questor,
112358132,alina1994,alina1998,money77,bobjones,aigerim,cressida,madalena,
420smoke,tinchair,raven13,mooser,mauric,lovebu,adidas69,krypton1,
1111112,loveline,divin,voshod,michaelm,cocotte,gbkbuhbv,
76689295,kellyj,rhonda1,sweetu70,steamforums,geeque,nothere,
124c41,quixotic,steam181,
1169900,rfcgthcrbq,rfvbkm,sexstuff,
1231230,djctvm,rockstar1,fulhamfc,bhecbr,rfntyf,quiksilv,
56836803,jedimaster,pangit,gfhjkm777,tocool,
1237654,stella12,
55378008,
19216811,potte,fender12,mortalkombat,ball1,nudegirl,palace22,rattrap,debeers,lickpussy,jimmy6,not4u2c,wert12,bigjuggs,sadomaso,
1357924,
312mas,laser123,arminia,branford,coastie,mrmojo,
19801982,scott11,banaan123,ingres,
300zxtt,hooters6,sweeties,
19821983,
19831985,
19833891,sinnfein,welcome4,winner69,killerman,tachyon,tigre1,nymets1,kangol,martinet,sooty1,
19921993,
789qwe,harsingh,
1597535,thecount,phantom3,
36985214,lukas123,
117711,pakistan1,madmax11,willow01,
19932916,fucker12,flhrci,opelagila,theword,ashley24,tigger3,crazyj,rapide,deadfish,allana,
31359092,sasha1993,sanders2,discman,zaq!
2wsx,boilerma,mickey69,jamesg,babybo,jackson9,orion7,alina2010,indien,breeze1,atease,warspite,bazongaz,
1celtic,asguard,mygal,fitzgera,
1secret,duke33,cyklone,dipascuc,potapov,
1escobar2,c0l0rad0,kki177hk,
1little,macondo,victoriya,peter7,red666,winston6,kl?benhavn,muneca,jackme,jennan,happylife,am4h39d8nh,bodybuil,
201980,dutchie,biggame,lapo4ka,rauchen,black10,flaquit,water12,
31021364,command2,lainth88,mazdamx5,typhon,colin123,rcfhlfc,qwaszx11,g0away,ramir,diesirae,hacked1,cessna1,woodfish,enigma2,pqnr67w5,odgez8j3,grisou,hiheels,
5gtgiaxm,
2580258,ohotnik,transits,quackers,serjik,makenzie,mdmgatew,bryana,superman12,melly,lokit,thegod,slickone,fun4all,netpass,penhorse,
1cooper,nsync,asdasd22,otherside,honeydog,herbie1,chiphi,proghouse,l0nd0n,shagg,select1,frost1996,casper123,countr,magichat,greatzyo,jyothi,
3bears,thefly,nikkita,fgjcnjk,nitros,hornys,san123,lightspe,maslova,kimber1,newyork2,spammm,mikejone,pumpk1n,bruiser1,bacons,prelude9,boodie,dragon4,kenneth2,love98,power5,yodude,pumba,thinline,blue30,sexxybj,
2dumb2live,matt21,forsale,
1carolin,innova,ilikeporn,rbgtkjd,a1s2d3f,wu9942,ruffus,blackboo,qwerty999,draco1,marcelin,hideki,gendalf,trevon,saraha,cartmen,yjhbkmcr,time2go,fanclub,ladder1,chinni,
6942987,united99,lindac,quadra,paolit,mainstre,beano002,lincoln7,bellend,anomie,
8520456,bangalor,goodstuff,chernov,stepashka,gulla,mike007,frasse,harley03,omnislash,
8538622,maryjan,sasha2011,gineok,
8807031,hornier,gopinath,princesit,bdr529,godown,bosslady,hakaone,
1qwe2,madman1,joshua11,lovegame,bayamon,jedi01,stupid12,sport123,aaa666,tony44,collect1,charliem,chimaira,cx18ka,trrim777,chuckd,thedream,redsox99,goodmorning,delta88,iloveyou11,newlife2,figvam,chicago3,jasonk,
12qwer,
9875321,lestat1,satcom,conditio,capri50,sayaka,
9933162,trunks1,chinga,snooch,alexand1,findus,poekie,cfdbyf,kevind,mike1969,fire13,leftie,bigtuna,chinnu,silence1,celos1,blackdra,alex24,gfgfif,
2boobs,happy8,enolagay,sataniv1993,turner1,dylans,peugeo,sasha1994,hoppel,conno,moonshot,santa234,meister1,
008800,hanako,tree123,qweras,gfitymrf,reggie31,august29,supert,joshua10,akademia,gbljhfc,zorro123,nathalia,redsox12,hfpdjl,mishmash,nokiae51,nyyankees,tu190022,strongbo,none1,not4u2no,katie2,popart,harlequi,santan,michal1,
1therock,screwu,csyekmrf,olemiss1,tyrese,hoople,sunshin1,cucina,starbase,topshelf,fostex,california1,castle1,symantec,pippolo,babare,turntabl,
1angela,moo123,ipvteb,gogolf,alex88,cycle1,maxie1,phase2,selhurst,furnitur,samfox,fromvermine,shaq34,gators96,captain2,delonge,tomatoe,bisous,zxcvbnma,glacius,pineapple1,cannelle,ganibal,mko09ijn,paraklast1974,hobbes12,petty43,artema,junior8,mylover,
1234567890d,fatal1ty,prostreet,peruan,
10020,nadya,caution1,marocas,chanel5,summer08,metal123,
111lox,scrapy,thatguy,eddie666,washingto,yannis,minnesota_hp,lucky4,playboy6,naumova,azzurro,patat,dale33,pa55wd,speedster,zemanova,saraht,newto,tony22,qscesz,arkady,
1oliver,death6,vkfwx046,antiflag,stangs,jzf7qf2e,brianp,fozzy,cody123,startrek1,yoda123,murciela,trabajo,lvbnhbtdf,canario,fliper,adroit,henry5,goducks,papirus,alskdj,soccer6,
88mike,gogetter,tanelorn,donking,marky1,leedsu,badmofo,al1916,wetdog,akmaral,pallet,april24,killer00,nesterova,rugby123,coffee12,browseui,ralliart,paigow,calgary1,armyman,vtldtltd,frodo2,frxtgb,iambigal,benno,jaytee,
2hot4you,askar,bigtee,brentwoo,palladin,eddie2,al1916w,horosho,entrada,ilovetits,venture1,dragon19,jayde,chuvak,jamesl,fzr600,brandon8,vjqvbh,snowbal,snatch1,bg6njokf,pudder,karolin,candoo,pfuflrf,satchel1,manteca,khongbiet,critter1,partridg,skyclad,bigdon,ginger69,brave1,anthony4,spinnake,chinadol,passout,cochino,nipples1,
15058,lopesk,sixflags,lloo999,parkhead,breakdance,cia123,fidodido,yuitre12,fooey,artem1995,gayathri,medin,nondriversig,l12345,bravo7,happy13,kazuya,camster,alex1998,luckyy,zipcode,dizzle,boating1,opusone,newpassw,movies23,kamikazi,zapato,bart316,cowboys0,corsair1,kingshit,hotdog12,rolyat,h200svrm,qwerty4,boofer,rhtyltkm,chris999,vaz21074,simferopol,pitboss,love3,britania,tanyshka,brause,
123qwerty123,abeille,moscow1,ilkaev,manut,process1,inetcfg,dragon05,fortknox,castill,rynner,mrmike,koalas,jeebus,stockpor,longman,juanpabl,caiman,roleplay,jeremi,
26058,prodojo,
002200,magical1,black5,bvlgari,doogie1,cbhtqa,mahina,a1s2d3f4g5h6,jblpro,usmc01,bismilah,guitar01,april9,santana1,
1234aa,monkey14,sorokin,evan1,doohan,animalsex,pfqxtyjr,dimitry,catchme,chello,silverch,glock45,dogleg,litespee,nirvana9,peyton18,alydar,warhamer,iluvme,sig229,minotavr,lobzik,jack23,bushwack,onlin,football123,joshua5,federov,winter2,bigmax,fufnfrhbcnb,hfpldfnhb,
1dakota,f56307,chipmonk,
4nick8,praline,vbhjh123,king11,
22tango,gemini12,street1,
77879,doodlebu,homyak,
165432,chuluthu,trixi,karlito,salom,reisen,cdtnkzxjr,pookie11,tremendo,shazaam,welcome0,
00000ty,peewee51,pizzle,gilead,bydand,sarvar,upskirt,legends1,freeway1,teenfuck,ranger9,darkfire,dfymrf,hunt0802,justme1,buffy1ma,
1harry,
671fsa75yt,burrfoot,budster,pa437tu,jimmyp,alina2006,malacon,charlize,elway1,free12,summer02,gadina,manara,gomer1,
1cassie,sanja,kisulya,money3,pujols,ford50,midiland,turga,orange6,demetriu,freakboy,orosie1,radio123,open12,vfufpby,mustek,chris33,animes,meiling,nthtvjr,jasmine9,gfdkjd,oligarh,marimar,chicago9,.kzirf,bugssgub,samuraix,jackie01,pimpjuic,macdad,cagiva,vernost,willyboy,fynjyjdf,tabby1,privet123,torres9,retype,blueroom,raven11,q12we3,alex1989,bringiton,ridered,kareltje,ow8jtcs8t,ciccia,goniners,countryb,
24688642,covingto,
24861793,beyblade,vikin,badboyz,wlafiga,walstib,mirand,needajob,chloes,balaton,kbpfdtnf,freyja,bond9007,gabriel12,stormbri,hollage,love4eve,fenomeno,darknite,dragstar,kyle123,milfhunter,ma123123123,samia,ghislain,enrique1,ferien12,xjy6721,natalie2,reglisse,wilson2,wesker,rosebud7,amazon1,robertr,roykeane,xtcnth,mamatata,crazyc,mikie,savanah,blowjob69,jackie2,forty1,
1coffee,fhbyjxrf,bubbah,goteam,hackedit,risky1,logoff,h397pnvr,buck13,robert23,bronc,st123st,godflesh,pornog,iamking,cisco69,septiembr,dale38,zhongguo,tibbar,panther9,buffa1,bigjohn1,mypuppy,vehvfycr,april16,shippo,fire1234,green15,q123123,gungadin,steveg,olivier1,chinaski,magnoli,faithy,storm12,toadfrog,paul99,
78791,august20,automati,squirtle,cheezy,positano,burbon,nunya,llebpmac,kimmi,turtle2,alan123,prokuror,violin1,durex,pussygal,visionar,trick1,chicken6,
29024,plowboy,rfybreks,imbue,sasha13,wagner1,vitalogy,cfymrf,thepro,
26028,gorbunov,dvdcom,letmein5,duder,fastfun,pronin,libra1,conner1,harley20,stinker1,
20068,
20038,amitech,syoung,dugway,
18068,welcome7,jimmypag,anastaci,kafka1,pfhfnecnhf,catsss,campus100,shamal,nacho1,fire12,vikings2,brasil1,rangerover,mohamma,peresvet,
14058,cocomo,aliona,
14038,qwaser,vikes,cbkmdf,skyblue1,ou81234,goodlove,dfkmltvfh,
108888,roamer,pinky2,static1,zxcv4321,barmen,rock22,shelby2,morgans,
1junior,pasword1,logjam,fifty5,nhfrnjhbcn,chaddy,philli,nemesis2,ingenier,djkrjd,ranger3,aikman8,knothead,daddy69,love007,vsythb,ford350,tiger00,renrut,owen11,energy12,march14,alena123,robert19,carisma,orange22,murphy11,podarok,prozak,kfgeirf,wolf13,lydia1,shazza,parasha,akimov,tobbie,pilote,heather4,baster,leones,gznfxjr,megama,
987654321g,bullgod,boxster1,minkey,wombats,vergil,colegiata,lincol,smoothe,pride1,carwash1,latrell,bowling3,fylhtq123,pickwick,eider,bubblebox,bunnies1,loquit,slipper1,nutsac,purina,xtutdfhf,plokiju,
1qazxs,uhjpysq,zxcvbasdfg,enjoy1,
1pumpkin,phantom7,mama22,swordsma,wonderbr,dogdays,milker,u23456,silvan,dfkthbr,slagelse,yeahman,twothree,boston11,wolf100,dannyg,troll1,fynjy123,ghbcnfd,bftest,ballsdeep,bobbyorr,alphasig,cccdemo,fire123,norwest,claire2,august10,lth1108,problemas,sapito,alex06,
1rusty,maccom,goirish1,ohyes,bxdumb,nabila,boobear1,rabbit69,princip,alexsander,travail,chantal1,dogggy,greenpea,diablo69,alex2009,bergen09,petticoa,classe,ceilidh,vlad2011,kamakiri,lucidity,qaz321,chileno,cexfhf,
99ranger,mcitra,estoppel,volvos60,carter80,webpass,temp12,touareg,fcgbhby,bubba8,sunitha,
200190ru,bitch2,shadow23,iluvit,nicole0,ruben1,nikki69,butttt,shocker1,souschef,lopotok01,kantot,corsano,cfnfyf,riverat,makalu,swapna,all4u9,cdtnkfy,ntktgepbr,ronaldo99,thomasj,bmw540i,chrisw,boomba,open321,z1x2c3v4b5n6m7,gaviota,iceman44,frosya,chris100,chris24,cosette,clearwat,micael,boogyman,pussy9,camus1,chumpy,heccrbq,konoplya,chester8,scooter5,ghjgfufylf,giotto,koolkat,zero000,bonita1,ckflrbq,j1964,mandog,
18n28n24a,renob,head1,shergar,ringo123,tanita,sex4free,johnny12,halberd,reddevils,biolog,dillinge,fatb0y,c00per,hyperlit,wallace2,spears1,vitamine,buheirf,sloboda,alkash,mooman,marion1,arsenal7,sunder,nokia5610,edifier,pippone,fyfnjkmtdbx,fujimo,pepsi12,kulikova,bolat,duetto,daimon,maddog01,timoshka,ezmoney,desdemon,chesters,aiden,hugues,patrick5,aikman08,robert4,roenick,nyranger,writer1,
36169544,foxmulder,
118801,kutter,shashank,jamjar,
118811,
119955,aspirina,dinkus,
1sailor,nalgene,
19891959,snarf,allie1,cracky,resipsa,
45678912,kemerovo,
19841989,netware1,alhimik,
19801984,nicole123,
19761977,
51501984,malaka1,montella,peachfuz,jethro1,cypress1,henkie,holdon,esmith,
55443322,
1friend,quique,bandicoot,statistika,great123,death13,ucht36,master4,
67899876,bobsmith,nikko1,jr1234,hillary1,
78978978,rsturbo,lzlzdfcz,bloodlust,shadow00,skagen,bambina,yummies,
88887777,
91328378,matthew4,itdoes,
98256518,
102938475,alina2002,
123123789,fubared,dannys,
123456321,nikifor,suck69,newmexico,scubaman,rhbcnb,fifnfy,puffdadd,
159357852,dtheyxbr,theman22,
212009164,prohor,shirle,nji90okm,newmedia,goose5,roma1995,letssee,iceman11,aksana,wirenut,pimpdady,
1212312121,tamplier,pelican1,domodedovo,
1928374655,fiction6,duckpond,ybrecz,thwack,onetwo34,gunsmith,murphydo,fallout1,spectre1,jabberwo,jgjesq,turbo6,bobo12,redryder,blackpus,elena1971,danilova,antoin,bobo1234,bobob,bobbobbo,dean1,
222222a,jesusgod,matt23,musical1,darkmage,loppol,werrew,josepha,rebel12,toshka,gadfly,hawkwood,alina12,dnomyar,sexaddict,dangit,cool23,yocrack,archimed,farouk,nhfkzkz,lindalou,
111zzzzz,ghjatccjh,wethepeople,m123456789,wowsers,kbkbxrf,bulldog5,m_roesel,sissinit,yamoon6,
123ewqasd,dangel,miruvor79,kaytee,falcon7,bandit11,dotnet,dannii,arsenal9,miatamx5,
1trouble,strip4me,dogpile,sexyred1,rjdfktdf,google10,shortman,crystal7,awesome123,cowdog,haruka,birthday28,jitter,diabolik,boomer12,dknight,bluewate,hockey123,crm0624,blueboys,willy123,jumpup,google2,cobra777,llabesab,vicelord,hopper1,gerryber,remmah,j10e5d4,qqqqqqw,agusti,fre_ak8yj,nahlik,redrobin,scott3,epson1,dumpy,bundao,aniolek,hola123,jergens,itsasecret,maxsam,bluelight,mountai1,bongwater,
1london,pepper14,freeuse,dereks,qweqw,fordgt40,rfhfdfy,raider12,hunnybun,compac,splicer,megamon,tuffgong,gymnast1,butter11,modaddy,wapbbs_1,dandelio,soccer77,ghjnbdjcnjzybt,
123xyi2,fishead,x002tp00,whodaman,
555aaa,oussama,brunodog,technici,pmtgjnbl,qcxdw8ry,schweden,redsox3,throbber,collecto,japan10,dbm123dm,hellhoun,tech1,deadzone,kahlan,wolf123,dethklok,xzsawq,bigguy1,cybrthc,chandle,buck01,qq123123,secreta,williams1,c32649135,delta12,flash33,
123joker,spacejam,polopo,holycrap,daman1,tummybed,financia,nusrat,euroline,magicone,jimkirk,ameritec,daniel26,sevenn,topazz,kingpins,dima1991,macdog,spencer5,oi812,geoffre,music11,baffle,
123569,usagi,cassiope,polla,lilcrowe,thecakeisalie,vbhjndjhtw,vthokies,oldmans,sophie01,ghoster,penny2,
129834,locutus1,meesha,magik,jerry69,daddysgirl,irondesk,andrey12,jasmine123,vepsrfyn,likesdick,
1accord,jetboat,grafix,tomuch,showit,protozoa,mosias98,taburetka,blaze420,esenin,anal69,zhv84kv,puissant,charles0,aishwarya,babylon6,bitter1,lenina,raleigh1,lechat,access01,kamilka,fynjy,sparkplu,daisy3112,choppe,zootsuit,
1234567j,rubyrose,gorilla9,nightshade,alternativa,cghfdjxybr,snuggles1,
10121v,vova1992,leonardo1,dave2,matthewd,vfhfnbr,
1986mets,nobull,bacall,mexican1,juanjo,mafia1,boomer22,soylent,edwards1,jordan10,blackwid,alex86,gemini13,lunar2,dctvcjcfnm,malaki,plugger,eagles11,snafu2,
1shelly,cintaku,hannah22,tbird1,maks5843,irish88,homer22,amarok,fktrcfylhjdf,lincoln2,acess,gre69kik,need4speed,hightech,core2duo,blunt1,ublhjgjybrf,dragon33,
1autopas,autopas1,wwww1,
15935746,daniel20,
2500aa,massim,
1ggggggg,
96ford,hardcor1,cobra5,blackdragon,vovan_lt,orochimaru,hjlbntkb,qwertyuiop12,tallen,paradoks,frozenfish,ghjuhfvvbcn,gerri1,nuggett,camilit,doright,trans1,serena1,catch2,bkmyeh,fireston,afhvfwtdn,purple3,figure8,fuckya,scamp1,laranja,ontheoutside,louis123,yellow7,moonwalk,mercury2,tolkein,raide,amenra,a13579,dranreb,
5150vh,harish,tracksta,sexking,ozzmosis,katiee,alomar,matrix19,headroom,jahlove,ringding,apollo8,
132546,
132613,
12345672000,saretta,
135798,
136666,thomas7,
136913,onetwothree,hockey33,calida,nefertit,bitwise,tailhook,boop4,kfgecbr,bujhmbujhm,metal69,thedark,meteoro,felicia1,house12,tinuviel,istina,vaz2105,pimp13,toolfan,nina1,tuesday2,maxmotives,lgkp500,locksley,treech,darling1,kurama,aminka,ramin,redhed,dazzler,jager1,stpiliot,cardman,rfvtym,cheeser,
14314314,paramoun,samcat,plumpy,stiffie,vsajyjr,panatha,qqq777,car12345,
098poi,asdzx,keegan1,furelise,kalifornia,vbhjckfd,beast123,zcfvfzkexifz,harry5,
1birdie,
96328i,escola,extra330,henry12,gfhfyjqz,
14u2nv,max1234,templar1,
1dave,
02588520,catrin,pangolin,marhaba,latin1,amorcito,dave22,escape1,advance1,yasuhiro,grepw,meetme,orange01,ernes,erdna,zsergn,nautica1,justinb,soundwav,miasma,greg78,nadine1,sexmad,lovebaby,promo1,excel1,babys,dragonma,camry1,sonnenschein,farooq,wazzkaprivet,magal,katinas,elvis99,redsox24,rooney1,chiefy,peggys,aliev,pilsung,mudhen,dontdoit,dennis12,supercal,energia,ballsout,funone,claudiu,brown2,amoco,dabl1125,philos,gjdtkbntkm,servette,
13571113,whizzer,nollie,
13467982,upiter,
12string,bluejay1,silkie,william4,kosta1,
143333,connor12,sustanon,
06068,corporat,ssnake,laurita,king10,tahoes,arsenal123,sapato,charless,jeanmarc,levent,algerie,marine21,jettas,winsome,dctvgbplf,
1701ab,xxxp455w0rd5,lllllll1,ooooooo1,monalis,koufax32,anastasya,debugger,sarita2,jason69,ufkxjyjr,gjlcnfdf,
1jerry,daniel10,balinor,sexkitten,death2,qwertasdfgzxcvb,s9te949f,vegeta1,sysman,maxxam,dimabilan,mooose,ilovetit,june23,illest,doesit,mamou,abby12,longjump,transalp,moderato,littleguy,magritte,dilnoza,hawaiiguy,winbig,nemiroff,kokaine,admira,myemail,dream2,browneyes,destiny7,dragonss,suckme1,asa123,andranik,suckem,fleshbot,dandie,timmys,scitra,timdog,hasbeen,guesss,smellyfe,arachne,deutschl,harley88,birthday27,nobody1,papasmur,home1,jonass,bunia3,epatb1,embalm,vfvekmrf,apacer,
12345656,estreet,weihnachtsbaum,mrwhite,admin12,kristie1,kelebek,yoda69,socken,tima123,bayern1,fktrcfylth,tamiya,
99strenght,andy01,denis2011,
19delta,stokecit,aotearoa,stalker2,nicnac,conrad1,popey,agusta,bowl36,
1bigfish,mossyoak,
1stunner,getinnow,jessejames,gkfnjy,drako,
1nissan,egor123,hotness,
1hawaii,zxc123456,cantstop,
1peaches,madlen,west1234,jeter1,markis,judit,attack1,artemi,silver69,
153246,crazy2,green9,yoshimi,
1vette,chief123,jasper2,
1sierra,twentyon,drstrang,aspirant,yannic,jenna123,bongtoke,slurpy,
1sugar,civic97,rusty21,shineon,james19,anna12345,wonderwoman,
1kevin,karol1,kanabis,wert21,fktif6115,evil1,kakaha,
54gv768,
826248s,tyrone1,
1winston,sugar2,falcon01,adelya,mopar440,zasxcd,leecher,kinkysex,mercede1,travka,
11234567,rebon,geekboy".split(","),
40835 english_wikipedia:"the,of,and,in,was,is,for,as,on,with,by,he,at,from,his,an,were,are,which,doc,https,also,or,has,had,first,one,their,its,after,new,who,they,two,her,she,been,other,when,time,during,there,into,school,more,may,years,over,only,year,most,would,world,city,some,where,between,later,three,state,such,then,national,used,made,known,under,many,university,united,while,part,season,team,these,american,than,film,second,born,south,became,states,war,through,being,including,both,before,north,high,however,people,family,early,history,album,area,them,series,against,until,since,district,county,name,work,life,group,music,following,number,company,several,four,called,played,released,career,league,game,government,house,each,based,day,same,won,use,station,club,international,town,located,population,general,college,east,found,age,march,end,september,began,home,public,church,line,june,river,member,system,place,century,band,july,york,january,october,song,august,best,former,british,party,named,held,village,show,local,november,took,service,december,built,another,major,within,along,members,five,single,due,although,small,old,left,final,large,include,building,served,president,received,games,death,february,main,third,set,children,own,order,species,park,law,air,published,road,died,book,men,women,army,often,according,education,central,country,division,english,top,included,development,french,community,among,water,play,side,list,times,near,late,form,original,different,center,power,led,students,german,moved,court,six,land,council,island,u.s.,record,million,research,art,established,award,street,military,television,given,region,support,western,production,non,political,point,cup,period,business,title,started,various,election,using,england,role,produced,become,program,works,field,total,office,class,written,association,radio,union,level,championship,director,few,force,created,department,founded,services,married,though,per,n't,site,open,act,short,society,version,royal,present,northern,worked,professional,full,returned,joined,story,france,european,currently,language,social,california,india,days,design,st.,further,round,australia,wrote,san,project,control,southern,railway,board,popular,continued,free,battle,considered,video,common,position,living,half,playing,recorded,red,post,described,average,records,special,modern,appeared,announced,areas,rock,release,elected,others,example,term,opened,similar,formed,route,census,current,schools,originally,lake,developed,race,himself,forces,addition,information,upon,province,match,event,songs,result,events,win,eastern,track,lead,teams,science,human,construction,minister,germany,awards,available,throughout,training,style,body,museum,australian,health,seven,signed,chief,eventually,appointed,sea,centre,debut,tour,points,media,light,range,character,across,features,families,largest,indian,network,less,performance,players,refer,europe,sold,festival,usually,taken,despite,designed,committee,process,return,official,episode,institute,stage,followed,performed,japanese,personal,thus,arts,space,low,months,includes,china,study,middle,magazine,leading,japan,groups,aircraft,featured,federal,civil,rights,model,coach,canadian,books,remained,eight,type,independent,completed,capital,academy,instead,kingdom,organization,countries,studies,competition,sports,size,above,section,finished,gold,involved,reported,management,systems,industry,directed,market,fourth,movement,technology,bank,ground,campaign,base,lower,sent,rather,added,provided,coast,grand,historic,valley,conference,bridge,winning,approximately,films,chinese,awarded,degree,russian,shows,native,female,replaced,municipality,square,studio,medical,data,african,successful,mid,bay,attack,previous,operations,spanish,theatre,student,republic,beginning,provide,ship,primary,owned,writing,tournament,culture,introduced,texas,related,natural,parts,governor,reached,ireland,units,senior,decided,italian,whose,higher,africa,standard,income,professor,placed,regional,los,buildings,championships,active,novel,energy,generally,interest,via,economic,previously,stated,itself,channel,below,operation,leader,traditional,trade,structure,limited,runs,prior,regular,famous,saint,navy,foreign,listed,artist,catholic,airport,results,parliament,collection,unit,officer,goal,attended,command,staff,commission,lived,location,plays,commercial,places,foundation,significant,older,medal,self,scored,companies,highway,activities,programs,wide,musical,notable,library,numerous,paris,towards,individual,allowed,plant,property,annual,contract,whom,highest,initially,required,earlier,assembly,artists,rural,seat,practice,defeated,ended,soviet,length,spent,manager,press,associated,author,issues,additional,characters,lord,zealand,policy,engine,township,noted,historical,complete,financial,religious,mission,contains,nine,recent,represented,pennsylvania,administration,opening,secretary,lines,report,executive,youth,closed,theory,writer,italy,angeles,appearance,feature,queen,launched,legal,terms,entered,issue,edition,singer,greek,majority,background,source,anti,cultural,complex,changes,recording,stadium,islands,operated,particularly,basketball,month,uses,port,castle,mostly,names,fort,selected,increased,status,earth,subsequently,pacific,cover,variety,certain,goals,remains,upper,congress,becoming,studied,irish,nature,particular,loss,caused,chart,dr.,forced,create,era,retired,material,review,rate,singles,referred,larger,individuals,shown,provides,products,speed,democratic,poland,parish,olympics,cities,themselves,temple,wing,genus,households,serving,cost,wales,stations,passed,supported,view,cases,forms,actor,male,matches,males,stars,tracks,females,administrative,median,effect,biography,train,engineering,camp,offered,chairman,houses,mainly,
19th,surface,therefore,nearly,score,ancient,subject,prime,seasons,claimed,experience,specific,jewish,failed,overall,believed,plot,troops,greater,spain,consists,broadcast,heavy,increase,raised,separate,campus,
1980s,appears,presented,lies,composed,recently,influence,fifth,nations,creek,references,elections,britain,double,cast,meaning,earned,carried,producer,latter,housing,brothers,attempt,article,response,border,remaining,nearby,direct,ships,value,workers,politician,academic,label,
1970s,commander,rule,fellow,residents,authority,editor,transport,dutch,projects,responsible,covered,territory,flight,races,defense,tower,emperor,albums,facilities,daily,stories,assistant,managed,primarily,quality,function,proposed,distribution,conditions,prize,journal,code,vice,newspaper,corps,highly,constructed,mayor,critical,secondary,corporation,rugby,regiment,ohio,appearances,serve,allow,nation,multiple,discovered,directly,scene,levels,growth,elements,acquired,
1990s,officers,physical,
20th,latin,host,jersey,graduated,arrived,issued,literature,metal,estate,vote,immediately,quickly,asian,competed,extended,produce,urban,
1960s,promoted,contemporary,global,formerly,appear,industrial,types,opera,ministry,soldiers,commonly,mass,formation,smaller,typically,drama,shortly,density,senate,effects,iran,polish,prominent,naval,settlement,divided,basis,republican,languages,distance,treatment,continue,product,mile,sources,footballer,format,clubs,leadership,initial,offers,operating,avenue,officially,columbia,grade,squadron,fleet,percent,farm,leaders,agreement,likely,equipment,website,mount,grew,method,transferred,intended,renamed,iron,asia,reserve,capacity,politics,widely,activity,advanced,relations,scottish,dedicated,crew,founder,episodes,lack,amount,build,efforts,concept,follows,ordered,leaves,positive,economy,entertainment,affairs,memorial,ability,illinois,communities,color,text,railroad,scientific,focus,comedy,serves,exchange,environment,cars,direction,organized,firm,description,agency,analysis,purpose,destroyed,reception,planned,revealed,infantry,architecture,growing,featuring,household,candidate,removed,situated,models,knowledge,solo,technical,organizations,assigned,conducted,participated,largely,purchased,register,gained,combined,headquarters,adopted,potential,protection,scale,approach,spread,independence,mountains,titled,geography,applied,safety,mixed,accepted,continues,captured,rail,defeat,principal,recognized,lieutenant,mentioned,semi,owner,joint,liberal,actress,traffic,creation,basic,notes,unique,supreme,declared,simply,plants,sales,massachusetts,designated,parties,jazz,compared,becomes,resources,titles,concert,learning,remain,teaching,versions,content,alongside,revolution,sons,block,premier,impact,champions,districts,generation,estimated,volume,image,sites,account,roles,sport,quarter,providing,zone,yard,scoring,classes,presence,performances,representatives,hosted,split,taught,origin,olympic,claims,critics,facility,occurred,suffered,municipal,damage,defined,resulted,respectively,expanded,platform,draft,opposition,expected,educational,ontario,climate,reports,atlantic,surrounding,performing,reduced,ranked,allows,birth,nominated,younger,newly,kong,positions,theater,philadelphia,heritage,finals,disease,sixth,laws,reviews,constitution,tradition,swedish,theme,fiction,rome,medicine,trains,resulting,existing,deputy,environmental,labour,classical,develop,fans,granted,receive,alternative,begins,nuclear,fame,buried,connected,identified,palace,falls,letters,combat,sciences,effort,villages,inspired,regions,towns,conservative,chosen,animals,labor,attacks,materials,yards,steel,representative,orchestra,peak,entitled,officials,returning,reference,northwest,imperial,convention,examples,ocean,publication,painting,subsequent,frequently,religion,brigade,fully,sides,acts,cemetery,relatively,oldest,suggested,succeeded,achieved,application,programme,cells,votes,promotion,graduate,armed,supply,flying,communist,figures,literary,netherlands,korea,worldwide,citizens,
1950s,faculty,draw,stock,seats,occupied,methods,unknown,articles,claim,holds,authorities,audience,sweden,interview,obtained,covers,settled,transfer,marked,allowing,funding,challenge,southeast,unlike,crown,rise,portion,transportation,sector,phase,properties,edge,tropical,standards,institutions,philosophy,legislative,hills,brand,fund,conflict,unable,founding,refused,attempts,metres,permanent,starring,applications,creating,effective,aired,extensive,employed,enemy,expansion,billboard,rank,battalion,multi,vehicle,fought,alliance,category,perform,federation,poetry,bronze,bands,entry,vehicles,bureau,maximum,billion,trees,intelligence,greatest,screen,refers,commissioned,gallery,injury,confirmed,setting,treaty,adult,americans,broadcasting,supporting,pilot,mobile,writers,programming,existence,squad,minnesota,copies,korean,provincial,sets,defence,offices,agricultural,internal,core,northeast,retirement,factory,actions,prevent,communications,ending,weekly,containing,functions,attempted,interior,weight,bowl,recognition,incorporated,increasing,ultimately,documentary,derived,attacked,lyrics,mexican,external,churches,centuries,metropolitan,selling,opposed,personnel,mill,visited,presidential,roads,pieces,norwegian,controlled,
18th,rear,influenced,wrestling,weapons,launch,composer,locations,developing,circuit,specifically,studios,shared,canal,wisconsin,publishing,approved,domestic,consisted,determined,comic,establishment,exhibition,southwest,fuel,electronic,cape,converted,educated,melbourne,hits,wins,producing,norway,slightly,occur,surname,identity,represent,constituency,funds,proved,links,structures,athletic,birds,contest,users,poet,institution,display,receiving,rare,contained,guns,motion,piano,temperature,publications,passenger,contributed,toward,cathedral,inhabitants,architect,exist,athletics,muslim,courses,abandoned,signal,successfully,disambiguation,tennessee,dynasty,heavily,maryland,jews,representing,budget,weather,missouri,introduction,faced,pair,chapel,reform,height,vietnam,occurs,motor,cambridge,lands,focused,sought,patients,shape,invasion,chemical,importance,communication,selection,regarding,homes,voivodeship,maintained,borough,failure,aged,passing,agriculture,oregon,teachers,flow,philippines,trail,seventh,portuguese,resistance,reaching,negative,fashion,scheduled,downtown,universities,trained,skills,scenes,views,notably,typical,incident,candidates,engines,decades,composition,commune,chain,inc.,austria,sale,values,employees,chamber,regarded,winners,registered,task,investment,colonial,swiss,user,entirely,flag,stores,closely,entrance,laid,journalist,coal,equal,causes,turkish,quebec,techniques,promote,junction,easily,dates,kentucky,singapore,residence,violence,advance,survey,humans,expressed,passes,streets,distinguished,qualified,folk,establish,egypt,artillery,visual,improved,actual,finishing,medium,protein,switzerland,productions,operate,poverty,neighborhood,organisation,consisting,consecutive,sections,partnership,extension,reaction,factor,costs,bodies,device,ethnic,racial,flat,objects,chapter,improve,musicians,courts,controversy,membership,merged,wars,expedition,interests,arab,comics,gain,describes,mining,bachelor,crisis,joining,decade,
1930s,distributed,habitat,routes,arena,cycle,divisions,briefly,vocals,directors,degrees,object,recordings,installed,adjacent,demand,voted,causing,businesses,ruled,grounds,starred,drawn,opposite,stands,formal,operates,persons,counties,compete,wave,israeli,ncaa,resigned,brief,greece,combination,demographics,historian,contain,commonwealth,musician,collected,argued,louisiana,session,cabinet,parliamentary,electoral,loan,profit,regularly,conservation,islamic,purchase,
17th,charts,residential,earliest,designs,paintings,survived,moth,items,goods,grey,anniversary,criticism,images,discovery,observed,underground,progress,additionally,participate,thousands,reduce,elementary,owners,stating,iraq,resolution,capture,tank,rooms,hollywood,finance,queensland,reign,maintain,iowa,landing,broad,outstanding,circle,path,manufacturing,assistance,sequence,gmina,crossing,leads,universal,shaped,kings,attached,medieval,ages,metro,colony,affected,scholars,oklahoma,coastal,soundtrack,painted,attend,definition,meanwhile,purposes,trophy,require,marketing,popularity,cable,mathematics,mississippi,represents,scheme,appeal,distinct,factors,acid,subjects,roughly,terminal,economics,senator,diocese,prix,contrast,argentina,czech,wings,relief,stages,duties,
16th,novels,accused,whilst,equivalent,charged,measure,documents,couples,request,danish,defensive,guide,devices,statistics,credited,tries,passengers,allied,frame,puerto,peninsula,concluded,instruments,wounded,differences,associate,forests,afterwards,replace,requirements,aviation,solution,offensive,ownership,inner,legislation,hungarian,contributions,actors,translated,denmark,steam,depending,aspects,assumed,injured,severe,admitted,determine,shore,technique,arrival,measures,translation,debuted,delivered,returns,rejected,separated,visitors,damaged,storage,accompanied,markets,industries,losses,gulf,charter,strategy,corporate,socialist,somewhat,significantly,physics,mounted,satellite,experienced,constant,relative,pattern,restored,belgium,connecticut,partners,harvard,retained,networks,protected,mode,artistic,parallel,collaboration,debate,involving,journey,linked,salt,authors,components,context,occupation,requires,occasionally,policies,tamil,ottoman,revolutionary,hungary,poem,versus,gardens,amongst,audio,makeup,frequency,meters,orthodox,continuing,suggests,legislature,coalition,guitarist,eighth,classification,practices,soil,tokyo,instance,limit,coverage,considerable,ranking,colleges,cavalry,centers,daughters,twin,equipped,broadway,narrow,hosts,rates,domain,boundary,arranged,
12th,whereas,brazilian,forming,rating,strategic,competitions,trading,covering,baltimore,commissioner,infrastructure,origins,replacement,praised,disc,collections,expression,ukraine,driven,edited,austrian,solar,ensure,premiered,successor,wooden,operational,hispanic,concerns,rapid,prisoners,childhood,meets,influential,tunnel,employment,tribe,qualifying,adapted,temporary,celebrated,appearing,increasingly,depression,adults,cinema,entering,laboratory,script,flows,romania,accounts,fictional,pittsburgh,achieve,monastery,franchise,formally,tools,newspapers,revival,sponsored,processes,vienna,springs,missions,classified,
13th,annually,branches,lakes,gender,manner,advertising,normally,maintenance,adding,characteristics,integrated,decline,modified,strongly,critic,victims,malaysia,arkansas,nazi,restoration,powered,monument,hundreds,depth,
15th,controversial,admiral,criticized,brick,honorary,initiative,output,visiting,birmingham,progressive,existed,carbon,
1920s,credits,colour,rising,hence,defeating,superior,filmed,listing,column,surrounded,orleans,principles,territories,struck,participation,indonesia,movements,index,commerce,conduct,constitutional,spiritual,ambassador,vocal,completion,edinburgh,residing,tourism,finland,bears,medals,resident,themes,visible,indigenous,involvement,basin,electrical,ukrainian,concerts,boats,styles,processing,rival,drawing,vessels,experimental,declined,touring,supporters,compilation,coaching,cited,dated,roots,string,explained,transit,traditionally,poems,minimum,representation,
14th,releases,effectively,architectural,triple,indicated,greatly,elevation,clinical,printed,
10th,proposal,peaked,producers,romanized,rapidly,stream,innings,meetings,counter,householder,honour,lasted,agencies,document,exists,surviving,experiences,honors,landscape,hurricane,harbor,panel,competing,profile,vessel,farmers,lists,revenue,exception,customers,
11th,participants,wildlife,utah,bible,gradually,preserved,replacing,symphony,begun,longest,siege,provinces,mechanical,genre,transmission,agents,executed,videos,benefits,funded,rated,instrumental,ninth,similarly,dominated,destruction,passage,technologies,thereafter,outer,facing,affiliated,opportunities,instrument,governments,scholar,evolution,channels,shares,sessions,widespread,occasions,engineers,scientists,signing,battery,competitive,alleged,eliminated,supplies,judges,hampshire,regime,portrayed,penalty,taiwan,denied,submarine,scholarship,substantial,transition,victorian,http,nevertheless,filed,supports,continental,tribes,ratio,doubles,useful,honours,blocks,principle,retail,departure,ranks,patrol,yorkshire,vancouver,inter,extent,afghanistan,strip,railways,component,organ,symbol,categories,encouraged,abroad,civilian,periods,traveled,writes,struggle,immediate,recommended,adaptation,egyptian,graduating,assault,drums,nomination,historically,voting,allies,detailed,achievement,percentage,arabic,assist,frequent,toured,apply,and/or,intersection,maine,touchdown,throne,produces,contribution,emerged,obtain,archbishop,seek,researchers,remainder,populations,clan,finnish,overseas,fifa,licensed,chemistry,festivals,mediterranean,injuries,animated,seeking,publisher,volumes,limits,venue,jerusalem,generated,trials,islam,youngest,ruling,glasgow,germans,songwriter,persian,municipalities,donated,viewed,belgian,cooperation,posted,tech,dual,volunteer,settlers,commanded,claiming,approval,delhi,usage,terminus,partly,electricity,locally,editions,premiere,absence,belief,traditions,statue,indicate,manor,stable,attributed,possession,managing,viewers,chile,overview,seed,regulations,essential,minority,cargo,segment,endemic,forum,deaths,monthly,playoffs,erected,practical,machines,suburb,relation,mrs.,descent,indoor,continuous,characterized,solutions,caribbean,rebuilt,serbian,summary,contested,psychology,pitch,attending,muhammad,tenure,drivers,diameter,assets,venture,punk,airlines,concentration,athletes,volunteers,pages,mines,influences,sculpture,protest,ferry,behalf,drafted,apparent,furthermore,ranging,romanian,democracy,lanka,significance,linear,d.c.,certified,voters,recovered,tours,demolished,boundaries,assisted,identify,grades,elsewhere,mechanism,
1940s,reportedly,aimed,conversion,suspended,photography,departments,beijing,locomotives,publicly,dispute,magazines,resort,conventional,platforms,internationally,capita,settlements,dramatic,derby,establishing,involves,statistical,implementation,immigrants,exposed,diverse,layer,vast,ceased,connections,belonged,interstate,uefa,organised,abuse,deployed,cattle,partially,filming,mainstream,reduction,automatic,rarely,subsidiary,decides,merger,comprehensive,displayed,amendment,guinea,exclusively,manhattan,concerning,commons,radical,serbia,baptist,buses,initiated,portrait,harbour,choir,citizen,sole,unsuccessful,manufactured,enforcement,connecting,increases,patterns,sacred,muslims,clothing,hindu,unincorporated,sentenced,advisory,tanks,campaigns,fled,repeated,remote,rebellion,implemented,texts,fitted,tribute,writings,sufficient,ministers,
21st,devoted,jurisdiction,coaches,interpretation,pole,businessman,peru,sporting,prices,cuba,relocated,opponent,arrangement,elite,manufacturer,responded,suitable,distinction,calendar,dominant,tourist,earning,prefecture,ties,preparation,anglo,pursue,worship,archaeological,chancellor,bangladesh,scores,traded,lowest,horror,outdoor,biology,commented,specialized,loop,arriving,farming,housed,historians,'the,patent,pupils,christianity,opponents,athens,northwestern,maps,promoting,reveals,flights,exclusive,lions,norfolk,hebrew,extensively,eldest,shops,acquisition,virtual,renowned,margin,ongoing,essentially,iranian,alternate,sailed,reporting,conclusion,originated,temperatures,exposure,secured,landed,rifle,framework,identical,martial,focuses,topics,ballet,fighters,belonging,wealthy,negotiations,evolved,bases,oriented,acres,democrat,heights,restricted,vary,graduation,aftermath,chess,illness,participating,vertical,collective,immigration,demonstrated,leaf,completing,organic,missile,leeds,eligible,grammar,confederate,improvement,congressional,wealth,cincinnati,spaces,indicates,corresponding,reaches,repair,isolated,taxes,congregation,ratings,leagues,diplomatic,submitted,winds,awareness,photographs,maritime,nigeria,accessible,animation,restaurants,philippine,inaugural,dismissed,armenian,illustrated,reservoir,speakers,programmes,resource,genetic,interviews,camps,regulation,computers,preferred,travelled,comparison,distinctive,recreation,requested,southeastern,dependent,brisbane,breeding,playoff,expand,bonus,gauge,departed,qualification,inspiration,shipping,slaves,variations,shield,theories,munich,recognised,emphasis,favour,variable,seeds,undergraduate,territorial,intellectual,qualify,mini,banned,pointed,democrats,assessment,judicial,examination,attempting,objective,partial,characteristic,hardware,pradesh,execution,ottawa,metre,drum,exhibitions,withdrew,attendance,phrase,journalism,logo,measured,error,christians,trio,protestant,theology,respective,atmosphere,buddhist,substitute,curriculum,fundamental,outbreak,rabbi,intermediate,designation,globe,liberation,simultaneously,diseases,experiments,locomotive,difficulties,mainland,nepal,relegated,contributing,database,developments,veteran,carries,ranges,instruction,lodge,protests,obama,newcastle,experiment,physician,describing,challenges,corruption,delaware,adventures,ensemble,succession,renaissance,tenth,altitude,receives,approached,crosses,syria,croatia,warsaw,professionals,improvements,worn,airline,compound,permitted,preservation,reducing,printing,scientist,activist,comprises,sized,societies,enters,ruler,gospel,earthquake,extend,autonomous,croatian,serial,decorated,relevant,ideal,grows,grass,tier,towers,wider,welfare,columns,alumni,descendants,interface,reserves,banking,colonies,manufacturers,magnetic,closure,pitched,vocalist,preserve,enrolled,cancelled,equation,
2000s,nickname,bulgaria,heroes,exile,mathematical,demands,input,structural,tube,stem,approaches,argentine,axis,manuscript,inherited,depicted,targets,visits,veterans,regard,removal,efficiency,organisations,concepts,lebanon,manga,petersburg,rally,supplied,amounts,yale,tournaments,broadcasts,signals,pilots,azerbaijan,architects,enzyme,literacy,declaration,placing,batting,incumbent,bulgarian,consistent,poll,defended,landmark,southwestern,raid,resignation,travels,casualties,prestigious,namely,aims,recipient,warfare,readers,collapse,coached,controls,volleyball,coup,lesser,verse,pairs,exhibited,proteins,molecular,abilities,integration,consist,aspect,advocate,administered,governing,hospitals,commenced,coins,lords,variation,resumed,canton,artificial,elevated,palm,difficulty,civic,efficient,northeastern,inducted,radiation,affiliate,boards,stakes,byzantine,consumption,freight,interaction,oblast,numbered,seminary,contracts,extinct,predecessor,bearing,cultures,functional,neighboring,revised,cylinder,grants,narrative,reforms,athlete,tales,reflect,presidency,compositions,specialist,cricketer,founders,sequel,widow,disbanded,associations,backed,thereby,pitcher,commanding,boulevard,singers,crops,militia,reviewed,centres,waves,consequently,fortress,tributary,portions,bombing,excellence,nest,payment,mars,plaza,unity,victories,scotia,farms,nominations,variant,attacking,suspension,installation,graphics,estates,comments,acoustic,destination,venues,surrender,retreat,libraries,quarterback,customs,berkeley,collaborated,gathered,syndrome,dialogue,recruited,shanghai,neighbouring,psychological,saudi,moderate,exhibit,innovation,depot,binding,brunswick,situations,certificate,actively,shakespeare,editorial,presentation,ports,relay,nationalist,methodist,archives,experts,maintains,collegiate,bishops,maintaining,temporarily,embassy,essex,wellington,connects,reformed,bengal,recalled,inches,doctrine,deemed,legendary,reconstruction,statements,palestinian,meter,achievements,riders,interchange,spots,auto,accurate,chorus,dissolved,missionary,thai,operators,e.g.,generations,failing,delayed,cork,nashville,perceived,venezuela,cult,emerging,tomb,abolished,documented,gaining,canyon,episcopal,stored,assists,compiled,kerala,kilometers,mosque,grammy,theorem,unions,segments,glacier,arrives,theatrical,circulation,conferences,chapters,displays,circular,authored,conductor,fewer,dimensional,nationwide,liga,yugoslavia,peer,vietnamese,fellowship,armies,regardless,relating,dynamic,politicians,mixture,serie,somerset,imprisoned,posts,beliefs,beta,layout,independently,electronics,provisions,fastest,logic,headquartered,creates,challenged,beaten,appeals,plains,protocol,graphic,accommodate,iraqi,midfielder,span,commentary,freestyle,reflected,palestine,lighting,burial,virtually,backing,prague,tribal,heir,identification,prototype,criteria,dame,arch,tissue,footage,extending,procedures,predominantly,updated,rhythm,preliminary,cafe,disorder,prevented,suburbs,discontinued,retiring,oral,followers,extends,massacre,journalists,conquest,larvae,pronounced,behaviour,diversity,sustained,addressed,geographic,restrictions,voiced,milwaukee,dialect,quoted,grid,nationally,nearest,roster,twentieth,separation,indies,manages,citing,intervention,guidance,severely,migration,artwork,focusing,rivals,trustees,varied,enabled,committees,centered,skating,slavery,cardinals,forcing,tasks,auckland,youtube,argues,colored,advisor,mumbai,requiring,theological,registration,refugees,nineteenth,survivors,runners,colleagues,priests,contribute,variants,workshop,concentrated,creator,lectures,temples,exploration,requirement,interactive,navigation,companion,perth,allegedly,releasing,citizenship,observation,stationed,ph.d.,sheep,breed,discovers,encourage,kilometres,journals,performers,isle,saskatchewan,hybrid,hotels,lancashire,dubbed,airfield,anchor,suburban,theoretical,sussex,anglican,stockholm,permanently,upcoming,privately,receiver,optical,highways,congo,colours,aggregate,authorized,repeatedly,varies,fluid,innovative,transformed,praise,convoy,demanded,discography,attraction,export,audiences,ordained,enlisted,occasional,westminster,syrian,heavyweight,bosnia,consultant,eventual,improving,aires,wickets,epic,reactions,scandal,i.e.,discrimination,buenos,patron,investors,conjunction,testament,construct,encountered,celebrity,expanding,georgian,brands,retain,underwent,algorithm,foods,provision,orbit,transformation,associates,tactical,compact,varieties,stability,refuge,gathering,moreover,manila,configuration,gameplay,discipline,entity,comprising,composers,skill,monitoring,ruins,museums,sustainable,aerial,altered,codes,voyage,friedrich,conflicts,storyline,travelling,conducting,merit,indicating,referendum,currency,encounter,particles,automobile,workshops,acclaimed,inhabited,doctorate,cuban,phenomenon,dome,enrollment,tobacco,governance,trend,equally,manufacture,hydrogen,grande,compensation,download,pianist,grain,shifted,neutral,evaluation,define,cycling,seized,array,relatives,motors,firms,varying,automatically,restore,nicknamed,findings,governed,investigate,manitoba,administrator,vital,integral,indonesian,confusion,publishers,enable,geographical,inland,naming,civilians,reconnaissance,indianapolis,lecturer,deer,tourists,exterior,rhode,bassist,symbols,scope,ammunition,yuan,poets,punjab,nursing,cent,developers,estimates,presbyterian,nasa,holdings,generate,renewed,computing,cyprus,arabia,duration,compounds,gastropod,permit,valid,touchdowns,facade,interactions,mineral,practiced,allegations,consequence,goalkeeper,baronet,copyright,uprising,carved,targeted,competitors,mentions,sanctuary,fees,pursued,tampa,chronicle,capabilities,specified,specimens,toll,accounting,limestone,staged,upgraded,philosophical,streams,guild,revolt,rainfall,supporter,princeton,terrain,hometown,probability,assembled,paulo,surrey,voltage,developer,destroyer,floors,lineup,curve,prevention,potentially,onwards,trips,imposed,hosting,striking,strict,admission,apartments,solely,utility,proceeded,observations,euro,incidents,vinyl,profession,haven,distant,expelled,rivalry,runway,torpedo,zones,shrine,dimensions,investigations,lithuania,idaho,pursuit,copenhagen,considerably,locality,wireless,decrease,genes,thermal,deposits,hindi,habitats,withdrawn,biblical,monuments,casting,plateau,thesis,managers,flooding,assassination,acknowledged,interim,inscription,guided,pastor,finale,insects,transported,activists,marshal,intensity,airing,cardiff,proposals,lifestyle,prey,herald,capitol,aboriginal,measuring,lasting,interpreted,occurring,desired,drawings,healthcare,panels,elimination,oslo,ghana,blog,sabha,intent,superintendent,governors,bankruptcy,p.m.,equity,disk,layers,slovenia,prussia,quartet,mechanics,graduates,politically,monks,screenplay,nato,absorbed,topped,petition,bold,morocco,exhibits,canterbury,publish,rankings,crater,dominican,enhanced,planes,lutheran,governmental,joins,collecting,brussels,unified,streak,strategies,flagship,surfaces,oval,archive,etymology,imprisonment,instructor,noting,remix,opposing,servant,rotation,width,trans,maker,synthesis,excess,tactics,snail,ltd.,lighthouse,sequences,cornwall,plantation,mythology,performs,foundations,populated,horizontal,speedway,activated,performer,diving,conceived,edmonton,subtropical,environments,prompted,semifinals,caps,bulk,treasury,recreational,telegraph,continent,portraits,relegation,catholics,graph,velocity,rulers,endangered,secular,observer,learns,inquiry,idol,dictionary,certification,estimate,cluster,armenia,observatory,revived,nadu,consumers,hypothesis,manuscripts,contents,arguments,editing,trails,arctic,essays,belfast,acquire,promotional,undertaken,corridor,proceedings,antarctic,millennium,labels,delegates,vegetation,acclaim,directing,substance,outcome,diploma,philosopher,malta,albanian,vicinity,degc,legends,regiments,consent,terrorist,scattered,presidents,gravity,orientation,deployment,duchy,refuses,estonia,crowned,separately,renovation,rises,wilderness,objectives,agreements,empress,slopes,inclusion,equality,decree,ballot,criticised,rochester,recurring,struggled,disabled,henri,poles,prussian,convert,bacteria,poorly,sudan,geological,wyoming,consistently,minimal,withdrawal,interviewed,proximity,repairs,initiatives,pakistani,republicans,propaganda,viii,abstract,commercially,availability,mechanisms,naples,discussions,underlying,lens,proclaimed,advised,spelling,auxiliary,attract,lithuanian,editors,o'brien,accordance,measurement,novelist,ussr,formats,councils,contestants,indie,facebook,parishes,barrier,battalions,sponsor,consulting,terrorism,implement,uganda,crucial,unclear,notion,distinguish,collector,attractions,filipino,ecology,investments,capability,renovated,iceland,albania,accredited,scouts,armor,sculptor,cognitive,errors,gaming,condemned,successive,consolidated,baroque,entries,regulatory,reserved,treasurer,variables,arose,technological,rounded,provider,rhine,agrees,accuracy,genera,decreased,frankfurt,ecuador,edges,particle,rendered,calculated,careers,faction,rifles,americas,gaelic,portsmouth,resides,merchants,fiscal,premises,coin,draws,presenter,acceptance,ceremonies,pollution,consensus,membrane,brigadier,nonetheless,genres,supervision,predicted,magnitude,finite,differ,ancestry,vale,delegation,removing,proceeds,placement,emigrated,siblings,molecules,payments,considers,demonstration,proportion,newer,valve,achieving,confederation,continuously,luxury,notre,introducing,coordinates,charitable,squadrons,disorders,geometry,winnipeg,ulster,loans,longtime,receptor,preceding,belgrade,mandate,wrestler,neighbourhood,factories,buddhism,imported,sectors,protagonist,steep,elaborate,prohibited,artifacts,prizes,pupil,cooperative,sovereign,subspecies,carriers,allmusic,nationals,settings,autobiography,neighborhoods,analog,facilitate,voluntary,jointly,newfoundland,organizing,raids,exercises,nobel,machinery,baltic,crop,granite,dense,websites,mandatory,seeks,surrendered,anthology,comedian,bombs,slot,synopsis,critically,arcade,marking,equations,halls,indo,inaugurated,embarked,speeds,clause,invention,premiership,likewise,presenting,demonstrate,designers,organize,examined,km/h,bavaria,troop,referee,detection,zurich,prairie,rapper,wingspan,eurovision,luxembourg,slovakia,inception,disputed,mammals,entrepreneur,makers,evangelical,yield,clergy,trademark,defunct,allocated,depicting,volcanic,batted,conquered,sculptures,providers,reflects,armoured,locals,walt,herzegovina,contracted,entities,sponsorship,prominence,flowing,ethiopia,marketed,corporations,withdraw,carnegie,induced,investigated,portfolio,flowering,opinions,viewing,classroom,donations,bounded,perception,leicester,fruits,charleston,academics,statute,complaints,smallest,deceased,petroleum,resolved,commanders,algebra,southampton,modes,cultivation,transmitter,spelled,obtaining,sizes,acre,pageant,bats,abbreviated,correspondence,barracks,feast,tackles,raja,derives,geology,disputes,translations,counted,constantinople,seating,macedonia,preventing,accommodation,homeland,explored,invaded,provisional,transform,sphere,unsuccessfully,missionaries,conservatives,highlights,traces,organisms,openly,dancers,fossils,absent,monarchy,combining,lanes,stint,dynamics,chains,missiles,screening,module,tribune,generating,miners,nottingham,seoul,unofficial,owing,linking,rehabilitation,citation,louisville,mollusk,depicts,differential,zimbabwe,kosovo,recommendations,responses,pottery,scorer,aided,exceptions,dialects,telecommunications,defines,elderly,lunar,coupled,flown,
25th,espn,formula_1,bordered,fragments,guidelines,gymnasium,valued,complexity,papal,presumably,maternal,challenging,reunited,advancing,comprised,uncertain,favorable,twelfth,correspondent,nobility,livestock,expressway,chilean,tide,researcher,emissions,profits,lengths,accompanying,witnessed,itunes,drainage,slope,reinforced,feminist,sanskrit,develops,physicians,outlets,isbn,coordinator,averaged,termed,occupy,diagnosed,yearly,humanitarian,prospect,spacecraft,stems,enacted,linux,ancestors,karnataka,constitute,immigrant,thriller,ecclesiastical,generals,celebrations,enhance,heating,advocated,evident,advances,bombardment,watershed,shuttle,wicket,twitter,adds,branded,teaches,schemes,pension,advocacy,conservatory,cairo,varsity,freshwater,providence,seemingly,shells,cuisine,specially,peaks,intensive,publishes,trilogy,skilled,nacional,unemployment,destinations,parameters,verses,trafficking,determination,infinite,savings,alignment,linguistic,countryside,dissolution,measurements,advantages,licence,subfamily,highlands,modest,regent,algeria,crest,teachings,knockout,brewery,combine,conventions,descended,chassis,primitive,fiji,explicitly,cumberland,uruguay,laboratories,bypass,elect,informal,preceded,holocaust,tackle,minneapolis,quantity,securities,console,doctoral,religions,commissioners,expertise,unveiled,precise,diplomat,standings,infant,disciplines,sicily,endorsed,systematic,charted,armored,mild,lateral,townships,hurling,prolific,invested,wartime,compatible,galleries,moist,battlefield,decoration,convent,tubes,terrestrial,nominee,requests,delegate,leased,dubai,polar,applying,addresses,munster,sings,commercials,teamed,dances,eleventh,midland,cedar,flee,sandstone,snails,inspection,divide,asset,themed,comparable,paramount,dairy,archaeology,intact,institutes,rectangular,instances,phases,reflecting,substantially,applies,vacant,lacked,copa,coloured,encounters,sponsors,encoded,possess,revenues,ucla,chaired,a.m.,enabling,playwright,stoke,sociology,tibetan,frames,motto,financing,illustrations,gibraltar,chateau,bolivia,transmitted,enclosed,persuaded,urged,folded,suffolk,regulated,bros.,submarines,myth,oriental,malaysian,effectiveness,narrowly,acute,sunk,replied,utilized,tasmania,consortium,quantities,gains,parkway,enlarged,sided,employers,adequate,accordingly,assumption,ballad,mascot,distances,peaking,saxony,projected,affiliation,limitations,metals,guatemala,scots,theaters,kindergarten,verb,employer,differs,discharge,controller,seasonal,marching,guru,campuses,avoided,vatican,maori,excessive,chartered,modifications,caves,monetary,sacramento,mixing,institutional,celebrities,irrigation,shapes,broadcaster,anthem,attributes,demolition,offshore,specification,surveys,yugoslav,contributor,auditorium,lebanese,capturing,airports,classrooms,chennai,paths,tendency,determining,lacking,upgrade,sailors,detected,kingdoms,sovereignty,freely,decorative,momentum,scholarly,georges,gandhi,speculation,transactions,undertook,interact,similarities,cove,teammate,constituted,painters,tends,madagascar,partnerships,afghan,personalities,attained,rebounds,masses,synagogue,reopened,asylum,embedded,imaging,catalogue,defenders,taxonomy,fiber,afterward,appealed,communists,lisbon,rica,judaism,adviser,batsman,ecological,commands,lgbt,cooling,accessed,wards,shiva,employs,thirds,scenic,worcester,tallest,contestant,humanities,economist,textile,constituencies,motorway,tram,percussion,cloth,leisure,
1880s,baden,flags,resemble,riots,coined,sitcom,composite,implies,daytime,tanzania,penalties,optional,competitor,excluded,steering,reversed,autonomy,reviewer,breakthrough,professionally,damages,pomeranian,deputies,valleys,ventures,highlighted,electorate,mapping,shortened,executives,tertiary,specimen,launching,bibliography,sank,pursuing,binary,descendant,marched,natives,ideology,turks,adolf,archdiocese,tribunal,exceptional,nigerian,preference,fails,loading,comeback,vacuum,favored,alter,remnants,consecrated,spectators,trends,patriarch,feedback,paved,sentences,councillor,astronomy,advocates,broader,commentator,commissions,identifying,revealing,theatres,incomplete,enables,constituent,reformation,tract,haiti,atmospheric,screened,explosive,czechoslovakia,acids,symbolic,subdivision,liberals,incorporate,challenger,erie,filmmaker,laps,kazakhstan,organizational,evolutionary,chemicals,dedication,riverside,fauna,moths,maharashtra,annexed,gen.,resembles,underwater,garnered,timeline,remake,suited,educator,hectares,automotive,feared,latvia,finalist,narrator,portable,airways,plaque,designing,villagers,licensing,flank,statues,struggles,deutsche,migrated,cellular,jacksonville,wimbledon,defining,highlight,preparatory,planets,cologne,employ,frequencies,detachment,readily,libya,resign,halt,helicopters,reef,landmarks,collaborative,irregular,retaining,helsinki,folklore,weakened,viscount,interred,professors,memorable,mega,repertoire,rowing,dorsal,albeit,progressed,operative,coronation,liner,telugu,domains,philharmonic,detect,bengali,synthetic,tensions,atlas,dramatically,paralympics,xbox,shire,kiev,lengthy,sued,notorious,seas,screenwriter,transfers,aquatic,pioneers,unesco,radius,abundant,tunnels,syndicated,inventor,accreditation,janeiro,exeter,ceremonial,omaha,cadet,predators,resided,prose,slavic,precision,abbot,deity,engaging,cambodia,estonian,compliance,demonstrations,protesters,reactor,commodore,successes,chronicles,mare,extant,listings,minerals,tonnes,parody,cultivated,traders,pioneering,supplement,slovak,preparations,collision,partnered,vocational,atoms,malayalam,welcomed,documentation,curved,functioning,presently,formations,incorporates,nazis,botanical,nucleus,ethical,greeks,metric,automated,whereby,stance,europeans,duet,disability,purchasing,email,telescope,displaced,sodium,comparative,processor,inning,precipitation,aesthetic,import,coordination,feud,alternatively,mobility,tibet,regained,succeeding,hierarchy,apostolic,catalog,reproduction,inscriptions,vicar,clusters,posthumously,rican,loosely,additions,photographic,nowadays,selective,derivative,keyboards,guides,collectively,affecting,combines,operas,networking,decisive,terminated,continuity,finishes,ancestor,consul,heated,simulation,leipzig,incorporating,georgetown,formula_2,circa,forestry,portrayal,councillors,advancement,complained,forewings,confined,transaction,definitions,reduces,televised,
1890s,rapids,phenomena,belarus,alps,landscapes,quarterly,specifications,commemorate,continuation,isolation,antenna,downstream,patents,ensuing,tended,saga,lifelong,columnist,labeled,gymnastics,papua,anticipated,demise,encompasses,madras,antarctica,interval,icon,rams,midlands,ingredients,priory,strengthen,rouge,explicit,gaza,aging,securing,anthropology,listeners,adaptations,underway,vista,malay,fortified,lightweight,violations,concerto,financed,jesuit,observers,trustee,descriptions,nordic,resistant,opted,accepts,prohibition,andhra,inflation,negro,wholly,imagery,spur,instructed,gloucester,cycles,middlesex,destroyers,statewide,evacuated,hyderabad,peasants,mice,shipyard,coordinate,pitching,colombian,exploring,numbering,compression,countess,hiatus,exceed,raced,archipelago,traits,soils,o'connor,vowel,android,facto,angola,amino,holders,logistics,circuits,emergence,kuwait,partition,emeritus,outcomes,submission,promotes,barack,negotiated,loaned,stripped,
50th,excavations,treatments,fierce,participant,exports,decommissioned,cameo,remarked,residences,fuselage,mound,undergo,quarry,node,midwest,specializing,occupies,etc.,showcase,molecule,offs,modules,salon,exposition,revision,peers,positioned,hunters,competes,algorithms,reside,zagreb,calcium,uranium,silicon,airs,counterpart,outlet,collectors,sufficiently,canberra,inmates,anatomy,ensuring,curves,aviv,firearms,basque,volcano,thrust,sheikh,extensions,installations,aluminum,darker,sacked,emphasized,aligned,asserted,pseudonym,spanning,decorations,eighteenth,orbital,spatial,subdivided,notation,decay,macedonian,amended,declining,cyclist,feat,unusually,commuter,birthplace,latitude,activation,overhead,
30th,finalists,whites,encyclopedia,tenor,qatar,survives,complement,concentrations,uncommon,astronomical,bangalore,pius,genome,memoir,recruit,prosecutor,modification,paired,container,basilica,arlington,displacement,germanic,mongolia,proportional,debates,matched,calcutta,rows,tehran,aerospace,prevalent,arise,lowland,
24th,spokesman,supervised,advertisements,clash,tunes,revelation,wanderers,quarterfinals,fisheries,steadily,memoirs,pastoral,renewable,confluence,acquiring,strips,slogan,upstream,scouting,analyst,practitioners,turbine,strengthened,heavier,prehistoric,plural,excluding,isles,persecution,turin,rotating,villain,hemisphere,unaware,arabs,corpus,relied,singular,unanimous,schooling,passive,angles,dominance,instituted,aria,outskirts,balanced,beginnings,financially,structured,parachute,viewer,attitudes,subjected,escapes,derbyshire,erosion,addressing,styled,declaring,originating,colts,adjusted,stained,occurrence,fortifications,baghdad,nitrogen,localities,yemen,galway,debris,lodz,victorious,pharmaceutical,substances,unnamed,dwelling,atop,developmental,activism,voter,refugee,forested,relates,overlooking,genocide,kannada,insufficient,oversaw,partisan,dioxide,recipients,factions,mortality,capped,expeditions,receptors,reorganized,prominently,atom,flooded,flute,orchestral,scripts,mathematician,airplay,detached,rebuilding,dwarf,brotherhood,salvation,expressions,arabian,cameroon,poetic,recruiting,bundesliga,inserted,scrapped,disabilities,evacuation,pasha,undefeated,crafts,rituals,aluminium,norm,pools,submerged,occupying,pathway,exams,prosperity,wrestlers,promotions,basal,permits,nationalism,trim,merge,gazette,tributaries,transcription,caste,porto,emerge,modeled,adjoining,counterparts,paraguay,redevelopment,renewal,unreleased,equilibrium,similarity,minorities,soviets,comprise,nodes,tasked,unrelated,expired,johan,precursor,examinations,electrons,socialism,exiled,admiralty,floods,wigan,nonprofit,lacks,brigades,screens,repaired,hanover,fascist,labs,osaka,delays,judged,statutory,colt,col.,offspring,solving,bred,assisting,retains,somalia,grouped,corresponds,tunisia,chaplain,eminent,chord,
22nd,spans,viral,innovations,possessions,mikhail,kolkata,icelandic,implications,introduces,racism,workforce,alto,compulsory,admits,censorship,onset,reluctant,inferior,iconic,progression,liability,turnout,satellites,behavioral,coordinated,exploitation,posterior,averaging,fringe,krakow,mountainous,greenwich,para,plantations,reinforcements,offerings,famed,intervals,constraints,individually,nutrition,
1870s,taxation,threshold,tomatoes,fungi,contractor,ethiopian,apprentice,diabetes,wool,gujarat,honduras,norse,bucharest,
23rd,arguably,accompany,prone,teammates,perennial,vacancy,polytechnic,deficit,okinawa,functionality,reminiscent,tolerance,transferring,myanmar,concludes,neighbours,hydraulic,economically,slower,plots,charities,synod,investor,catholicism,identifies,bronx,interpretations,adverse,judiciary,hereditary,nominal,sensor,symmetry,cubic,triangular,tenants,divisional,outreach,representations,passages,undergoing,cartridge,testified,exceeded,impacts,limiting,railroads,defeats,regain,rendering,humid,retreated,reliability,governorate,antwerp,infamous,implied,packaging,lahore,trades,billed,extinction,ecole,rejoined,recognizes,projection,qualifications,stripes,forts,socially,lexington,accurately,sexuality,westward,wikipedia,pilgrimage,abolition,choral,stuttgart,nests,expressing,strikeouts,assessed,monasteries,reconstructed,humorous,marxist,fertile,consort,urdu,patronage,peruvian,devised,lyric,baba,nassau,communism,extraction,popularly,markings,inability,litigation,accounted,processed,emirates,tempo,cadets,eponymous,contests,broadly,oxide,courtyard,frigate,directory,apex,outline,regency,chiefly,patrols,secretariat,cliffs,residency,privy,armament,australians,dorset,geometric,genetics,scholarships,fundraising,flats,demographic,multimedia,captained,documentaries,updates,canvas,blockade,guerrilla,songwriting,administrators,intake,drought,implementing,fraction,cannes,refusal,inscribed,meditation,announcing,exported,ballots,formula_3,curator,basel,arches,flour,subordinate,confrontation,gravel,simplified,berkshire,patriotic,tuition,employing,servers,castile,posting,combinations,discharged,miniature,mutations,constellation,incarnation,ideals,necessity,granting,ancestral,crowds,pioneered,mormon,methodology,rama,indirect,complexes,bavarian,patrons,uttar,skeleton,bollywood,flemish,viable,bloc,breeds,triggered,sustainability,tailed,referenced,comply,takeover,latvian,homestead,platoon,communal,nationality,excavated,targeting,sundays,posed,physicist,turret,endowment,marginal,dispatched,commentators,renovations,attachment,collaborations,ridges,barriers,obligations,shareholders,prof.,defenses,presided,rite,backgrounds,arbitrary,affordable,gloucestershire,thirteenth,inlet,miniseries,possesses,detained,pressures,subscription,realism,solidarity,proto,postgraduate,noun,burmese,abundance,homage,reasoning,anterior,robust,fencing,shifting,vowels,garde,profitable,loch,anchored,coastline,samoa,terminology,prostitution,magistrate,venezuelan,speculated,regulate,fixture,colonists,digit,induction,manned,expeditionary,computational,centennial,principally,vein,preserving,engineered,numerical,cancellation,conferred,continually,borne,seeded,advertisement,unanimously,treaties,infections,ions,sensors,lowered,amphibious,lava,fourteenth,bahrain,niagara,nicaragua,squares,congregations,
26th,periodic,proprietary,
1860s,contributors,seller,overs,emission,procession,presumed,illustrator,zinc,gases,tens,applicable,stretches,reproductive,sixteenth,apparatus,accomplishments,canoe,guam,oppose,recruitment,accumulated,limerick,namibia,staging,remixes,ordnance,uncertainty,pedestrian,temperate,treason,deposited,registry,cerambycidae,attracting,lankan,reprinted,shipbuilding,homosexuality,neurons,eliminating,
1900s,resume,ministries,beneficial,blackpool,surplus,northampton,licenses,constructing,announcer,standardized,alternatives,taipei,inadequate,failures,yields,medalist,titular,obsolete,torah,burlington,predecessors,lublin,retailers,castles,depiction,issuing,gubernatorial,propulsion,tiles,damascus,discs,alternating,pomerania,peasant,tavern,redesignated,
27th,illustration,focal,mans,codex,specialists,productivity,antiquity,controversies,promoter,pits,companions,behaviors,lyrical,prestige,creativity,swansea,dramas,approximate,feudal,tissues,crude,campaigned,unprecedented,chancel,amendments,surroundings,allegiance,exchanges,align,firmly,optimal,commenting,reigning,landings,obscure,
1850s,contemporaries,paternal,devi,endurance,communes,incorporation,denominations,exchanged,routing,resorts,amnesty,slender,explores,suppression,heats,pronunciation,centred,coupe,stirling,freelance,treatise,linguistics,laos,informs,discovering,pillars,encourages,halted,robots,definitive,maturity,tuberculosis,venetian,silesian,unchanged,originates,mali,lincolnshire,quotes,seniors,premise,contingent,distribute,danube,gorge,logging,dams,curling,seventeenth,specializes,wetlands,deities,assess,thickness,rigid,culminated,utilities,substrate,insignia,nile,assam,shri,currents,suffrage,canadians,mortar,asteroid,bosnian,discoveries,enzymes,sanctioned,replica,hymn,investigators,tidal,dominate,derivatives,converting,leinster,verbs,honoured,criticisms,dismissal,discrete,masculine,reorganization,unlimited,wurttemberg,sacks,allocation,bahn,jurisdictions,participates,lagoon,famine,communion,culminating,surveyed,shortage,cables,intersects,cassette,foremost,adopting,solicitor,outright,bihar,reissued,farmland,dissertation,turnpike,baton,photographed,christchurch,kyoto,finances,rails,histories,linebacker,kilkenny,accelerated,dispersed,handicap,absorption,rancho,ceramic,captivity,cites,font,weighed,mater,utilize,bravery,extract,validity,slovenian,seminars,discourse,ranged,duel,ironically,warships,sega,temporal,surpassed,prolonged,recruits,northumberland,greenland,contributes,patented,eligibility,unification,discusses,reply,translates,beirut,relies,torque,northward,reviewers,monastic,accession,neural,tramway,heirs,sikh,subscribers,amenities,taliban,audit,rotterdam,wagons,kurdish,favoured,combustion,meanings,persia,browser,diagnostic,niger,formula_4,denomination,dividing,parameter,branding,badminton,leningrad,sparked,hurricanes,beetles,propeller,mozambique,refined,diagram,exhaust,vacated,readings,markers,reconciliation,determines,concurrent,imprint,primera,organism,demonstrating,filmmakers,vanderbilt,affiliates,traction,evaluated,defendants,megachile,investigative,zambia,assassinated,rewarded,probable,staffordshire,foreigners,directorate,nominees,consolidation,commandant,reddish,differing,unrest,drilling,bohemia,resembling,instrumentation,considerations,haute,promptly,variously,dwellings,clans,tablet,enforced,cockpit,semifinal,hussein,prisons,ceylon,emblem,monumental,phrases,correspond,crossover,outlined,characterised,acceleration,caucus,crusade,protested,composing,rajasthan,habsburg,rhythmic,interception,inherent,cooled,ponds,spokesperson,gradual,consultation,kuala,globally,suppressed,builders,avengers,suffix,integer,enforce,fibers,unionist,proclamation,uncovered,infrared,adapt,eisenhower,utilizing,captains,stretched,observing,assumes,prevents,analyses,saxophone,caucasus,notices,villains,dartmouth,mongol,hostilities,stretching,veterinary,lenses,texture,prompting,overthrow,excavation,islanders,masovian,battleship,biographer,replay,degradation,departing,luftwaffe,fleeing,oversight,immigrated,serbs,fishermen,strengthening,respiratory,italians,denotes,radial,escorted,motif,wiltshire,expresses,accessories,reverted,establishments,inequality,protocols,charting,famously,satirical,entirety,trench,friction,atletico,sampling,subset,weekday,upheld,sharply,correlation,incorrect,mughal,travelers,hasan,earnings,offset,evaluate,specialised,recognizing,flexibility,nagar,postseason,algebraic,capitalism,crystals,melodies,polynomial,racecourse,defences,austro,wembley,attracts,anarchist,resurrection,reviewing,decreasing,prefix,ratified,mutation,displaying,separating,restoring,assemblies,ordinance,priesthood,cruisers,appoint,moldova,imports,directive,epidemic,militant,senegal,signaling,restriction,critique,retrospective,nationalists,undertake,sioux,canals,algerian,redesigned,philanthropist,depict,conceptual,turbines,intellectuals,eastward,applicants,contractors,vendors,undergone,namesake,ensured,tones,substituted,hindwings,arrests,tombs,transitional,principality,reelection,taiwanese,cavity,manifesto,broadcasters,spawned,thoroughbred,identities,generators,proposes,hydroelectric,johannesburg,cortex,scandinavian,killings,aggression,boycott,catalyst,physiology,fifteenth,waterfront,chromosome,organist,costly,calculation,cemeteries,flourished,recognise,juniors,merging,disciples,ashore,workplace,enlightenment,diminished,debated,hailed,podium,educate,mandated,distributor,litre,electromagnetic,flotilla,estuary,peterborough,staircase,selections,melodic,confronts,wholesale,integrate,intercepted,catalonia,unite,immense,palatinate,switches,earthquakes,occupational,successors,praising,concluding,faculties,firstly,overhaul,empirical,metacritic,inauguration,evergreen,laden,winged,philosophers,amalgamated,geoff,centimeters,napoleonic,upright,planting,brewing,fined,sensory,migrants,wherein,inactive,headmaster,warwickshire,siberia,terminals,denounced,academia,divinity,bilateral,clive,omitted,peerage,relics,apartheid,syndicate,fearing,fixtures,desirable,dismantled,ethnicity,valves,biodiversity,aquarium,ideological,visibility,creators,analyzed,tenant,balkan,postwar,supplier,smithsonian,risen,morphology,digits,bohemian,wilmington,vishnu,demonstrates,aforementioned,biographical,mapped,khorasan,phosphate,presentations,ecosystem,processors,calculations,mosaic,clashes,penned,recalls,coding,angular,lattice,macau,accountability,extracted,pollen,therapeutic,overlap,violinist,deposed,candidacy,infants,covenant,bacterial,restructuring,dungeons,ordination,conducts,builds,invasive,customary,concurrently,relocation,cello,statutes,borneo,entrepreneurs,sanctions,packet,rockefeller,piedmont,comparisons,waterfall,receptions,glacial,surge,signatures,alterations,advertised,enduring,somali,botanist,
100th,canonical,motifs,longitude,circulated,alloy,indirectly,margins,preserves,internally,besieged,shale,peripheral,drained,baseman,reassigned,tobago,soloist,socio,grazing,contexts,roofs,portraying,ottomans,shrewsbury,noteworthy,lamps,supplying,beams,qualifier,portray,greenhouse,stronghold,hitter,rites,cretaceous,urging,derive,nautical,aiming,fortunes,verde,donors,reliance,exceeding,exclusion,exercised,simultaneous,continents,guiding,pillar,gradient,poznan,eruption,clinics,moroccan,indicator,trams,piers,parallels,fragment,teatro,potassium,satire,compressed,businessmen,influx,seine,perspectives,shelters,decreases,mounting,formula_5,confederacy,equestrian,expulsion,mayors,liberia,resisted,affinity,shrub,unexpectedly,stimulus,amtrak,deported,perpendicular,statesman,wharf,storylines,romanesque,weights,surfaced,interceptions,dhaka,crambidae,orchestras,rwanda,conclude,constitutes,subsidiaries,admissions,prospective,shear,bilingual,campaigning,presiding,domination,commemorative,trailing,confiscated,petrol,acquisitions,polymer,onlyinclude,chloride,elevations,resolutions,hurdles,pledged,likelihood,objected,erect,encoding,databases,aristotle,hindus,marshes,bowled,ministerial,grange,acronym,annexation,squads,ambient,pilgrims,botany,sofla,astronomer,planetary,descending,bestowed,ceramics,diplomacy,metabolism,colonization,potomac,africans,engraved,recycling,commitments,resonance,disciplinary,jamaican,narrated,spectral,tipperary,waterford,stationary,arbitration,transparency,threatens,crossroads,slalom,oversee,centenary,incidence,economies,livery,moisture,newsletter,autobiographical,bhutan,propelled,dependence,moderately,adobe,barrels,subdivisions,outlook,labelled,stratford,arising,diaspora,barony,automobiles,ornamental,slated,norms,primetime,generalized,analysts,vectors,libyan,yielded,certificates,rooted,vernacular,belarusian,marketplace,prediction,fairfax,malawi,viruses,wooded,demos,mauritius,prosperous,coincided,liberties,huddersfield,ascent,warnings,hinduism,glucose,pulitzer,unused,filters,illegitimate,acquitted,protestants,canopy,staple,psychedelic,winding,abbas,pathways,cheltenham,lagos,niche,invaders,proponents,barred,conversely,doncaster,recession,embraced,rematch,concession,emigration,upgrades,bowls,tablets,remixed,loops,kensington,shootout,monarchs,organizers,harmful,punjabi,broadband,exempt,neolithic,profiles,portrays,parma,cyrillic,quasi,attested,regimental,revive,torpedoes,heidelberg,rhythms,spherical,denote,hymns,icons,theologian,qaeda,exceptionally,reinstated,comune,playhouse,lobbying,grossing,viceroy,delivers,visually,armistice,utrecht,syllable,vertices,analogous,annex,refurbished,entrants,knighted,disciple,rhetoric,detailing,inactivated,ballads,algae,intensified,favourable,sanitation,receivers,pornography,commemorated,cannons,entrusted,manifold,photographers,pueblo,textiles,steamer,myths,marquess,onward,liturgical,romney,uzbekistan,consistency,denoted,hertfordshire,convex,hearings,sulfur,universidad,podcast,selecting,emperors,arises,justices,
1840s,mongolian,exploited,termination,digitally,infectious,sedan,symmetric,penal,illustrate,formulation,attribute,problematic,modular,inverse,berth,searches,rutgers,leicestershire,enthusiasts,lockheed,upwards,transverse,accolades,backward,archaeologists,crusaders,nuremberg,defects,ferries,vogue,containers,openings,transporting,separates,lumpur,purchases,attain,wichita,topology,woodlands,deleted,periodically,syntax,overturned,musicals,corp.,strasbourg,instability,nationale,prevailing,cache,marathi,versailles,unmarried,grains,straits,antagonist,segregation,assistants,d'etat,contention,dictatorship,unpopular,motorcycles,criterion,analytical,salzburg,militants,hanged,worcestershire,emphasize,paralympic,erupted,convinces,offences,oxidation,nouns,populace,atari,spanned,hazardous,educators,playable,births,baha'i,preseason,generates,invites,meteorological,handbook,foothills,enclosure,diffusion,mirza,convergence,geelong,coefficient,connector,formula_6,cylindrical,disasters,pleaded,knoxville,contamination,compose,libertarian,arrondissement,franciscan,intercontinental,susceptible,initiation,malaria,unbeaten,consonants,waived,saloon,popularized,estadio,pseudo,interdisciplinary,transports,transformers,carriages,bombings,revolves,ceded,collaborator,celestial,exemption,colchester,maltese,oceanic,ligue,crete,shareholder,routed,depictions,ridden,advisors,calculate,lending,guangzhou,simplicity,newscast,scheduling,snout,eliot,undertaking,armenians,nottinghamshire,whitish,consulted,deficiency,salle,cinemas,superseded,rigorous,kerman,convened,landowners,modernization,evenings,pitches,conditional,scandinavia,differed,formulated,cyclists,swami,guyana,dunes,electrified,appalachian,abdomen,scenarios,prototypes,sindh,consonant,adaptive,boroughs,wolverhampton,modelling,cylinders,amounted,minimize,ambassadors,lenin,settler,coincide,approximation,grouping,murals,bullying,registers,rumours,engagements,energetic,vertex,annals,bordering,geologic,yellowish,runoff,converts,allegheny,facilitated,saturdays,colliery,monitored,rainforest,interfaces,geographically,impaired,prevalence,joachim,paperback,slowed,shankar,distinguishing,seminal,categorized,authorised,auspices,bandwidth,asserts,rebranded,balkans,supplemented,seldom,weaving,capsule,apostles,populous,monmouth,payload,symphonic,densely,shoreline,managerial,masonry,antioch,averages,textbooks,royalist,coliseum,tandem,brewers,diocesan,posthumous,walled,incorrectly,distributions,ensued,reasonably,graffiti,propagation,automation,harmonic,augmented,middleweight,limbs,elongated,landfall,comparatively,literal,grossed,koppen,wavelength,
1830s,cerebral,boasts,congestion,physiological,practitioner,coasts,cartoonist,undisclosed,frontal,launches,burgundy,qualifiers,imposing,stade,flanked,assyrian,raided,multiplayer,montane,chesapeake,pathology,drains,vineyards,intercollegiate,semiconductor,grassland,convey,citations,predominant,rejects,benefited,yahoo,graphs,busiest,encompassing,hamlets,explorers,suppress,minors,graphical,calculus,sediment,intends,diverted,mainline,unopposed,cottages,initiate,alumnus,towed,autism,forums,darlington,modernist,oxfordshire,lectured,capitalist,suppliers,panchayat,actresses,foundry,southbound,commodity,wesleyan,divides,palestinians,luton,caretaker,nobleman,mutiny,organizer,preferences,nomenclature,splits,unwilling,offenders,timor,relying,halftime,semitic,arithmetic,milestone,jesuits,arctiidae,retrieved,consuming,contender,edged,plagued,inclusive,transforming,khmer,federally,insurgents,distributing,amherst,rendition,prosecutors,viaduct,disqualified,kabul,liturgy,prevailed,reelected,instructors,swimmers,aperture,churchyard,interventions,totals,darts,metropolis,fuels,fluent,northbound,correctional,inflicted,barrister,realms,culturally,aristocratic,collaborating,emphasizes,choreographer,inputs,ensembles,humboldt,practised,endowed,strains,infringement,archaeologist,congregational,magna,relativity,efficiently,proliferation,mixtape,abruptly,regeneration,commissioning,yukon,archaic,reluctantly,retailer,northamptonshire,universally,crossings,boilers,nickelodeon,revue,abbreviation,retaliation,scripture,routinely,medicinal,benedictine,kenyan,retention,deteriorated,glaciers,apprenticeship,coupling,researched,topography,entrances,anaheim,pivotal,compensate,arched,modify,reinforce,dusseldorf,journeys,motorsport,conceded,sumatra,spaniards,quantitative,loire,cinematography,discarded,botswana,morale,engined,zionist,philanthropy,sainte,fatalities,cypriot,motorsports,indicators,pricing,institut,bethlehem,implicated,gravitational,differentiation,rotor,thriving,precedent,ambiguous,concessions,forecast,conserved,fremantle,asphalt,landslide,middlesbrough,formula_7,humidity,overseeing,chronological,diaries,multinational,crimean,turnover,improvised,youths,declares,tasmanian,canadiens,fumble,refinery,weekdays,unconstitutional,upward,guardians,brownish,imminent,hamas,endorsement,naturalist,martyrs,caledonia,chords,yeshiva,reptiles,severity,mitsubishi,fairs,installment,substitution,repertory,keyboardist,interpreter,silesia,noticeable,rhineland,transmit,inconsistent,booklet,academies,epithet,pertaining,progressively,aquatics,scrutiny,prefect,toxicity,rugged,consume,o'donnell,evolve,uniquely,cabaret,mediated,landowner,transgender,palazzo,compilations,albuquerque,induce,sinai,remastered,efficacy,underside,analogue,specify,possessing,advocating,compatibility,liberated,greenville,mecklenburg,header,memorials,sewage,rhodesia,
1800s,salaries,atoll,coordinating,partisans,repealed,amidst,subjective,optimization,nectar,evolving,exploits,madhya,styling,accumulation,raion,postage,responds,buccaneers,frontman,brunei,choreography,coated,kinetic,sampled,inflammatory,complementary,eclectic,norte,vijay,a.k.a,mainz,casualty,connectivity,laureate,franchises,yiddish,reputed,unpublished,economical,periodicals,vertically,bicycles,brethren,capacities,unitary,archeological,tehsil,domesday,wehrmacht,justification,angered,mysore,fielded,abuses,nutrients,ambitions,taluk,battleships,symbolism,superiority,neglect,attendees,commentaries,collaborators,predictions,yorker,breeders,investing,libretto,informally,coefficients,memorandum,pounder,collingwood,tightly,envisioned,arbor,mistakenly,captures,nesting,conflicting,enhancing,streetcar,manufactures,buckinghamshire,rewards,commemorating,stony,expenditure,tornadoes,semantic,relocate,weimar,iberian,sighted,intending,ensign,beverages,expectation,differentiate,centro,utilizes,saxophonist,catchment,transylvania,ecosystems,shortest,sediments,socialists,ineffective,kapoor,formidable,heroine,guantanamo,prepares,scattering,pamphlet,verified,elector,barons,totaling,shrubs,pyrenees,amalgamation,mutually,longitudinal,comte,negatively,masonic,envoy,sexes,akbar,mythical,tonga,bishopric,assessments,malaya,warns,interiors,reefs,reflections,neutrality,musically,nomadic,waterways,provence,collaborate,scaled,adulthood,emerges,euros,optics,incentives,overland,periodical,liege,awarding,realization,slang,affirmed,schooner,hokkaido,czechoslovak,protectorate,undrafted,disagreed,commencement,electors,spruce,swindon,fueled,equatorial,inventions,suites,slovene,backdrop,adjunct,energies,remnant,inhabit,alliances,simulcast,reactors,mosques,travellers,outfielder,plumage,migratory,benin,experimented,fibre,projecting,drafting,laude,evidenced,northernmost,indicted,directional,replication,croydon,comedies,jailed,organizes,devotees,reservoirs,turrets,originate,economists,songwriters,junta,trenches,mounds,proportions,comedic,apostle,azerbaijani,farmhouse,resembled,disrupted,playback,mixes,diagonal,relevance,govern,programmer,gdansk,maize,soundtracks,tendencies,mastered,impacted,believers,kilometre,intervene,chairperson,aerodrome,sails,subsidies,ensures,aesthetics,congresses,ratios,sardinia,southernmost,functioned,controllers,downward,randomly,distortion,regents,palatine,disruption,spirituality,vidhan,tracts,compiler,ventilation,anchorage,symposium,assert,pistols,excelled,avenues,convoys,moniker,constructions,proponent,phased,spines,organising,schleswig,policing,campeonato,mined,hourly,croix,lucrative,authenticity,haitian,stimulation,burkina,espionage,midfield,manually,staffed,awakening,metabolic,biographies,entrepreneurship,conspicuous,guangdong,preface,subgroup,mythological,adjutant,feminism,vilnius,oversees,honourable,tripoli,stylized,kinase,societe,notoriety,altitudes,configurations,outward,transmissions,announces,auditor,ethanol,clube,nanjing,mecca,haifa,blogs,postmaster,paramilitary,depart,positioning,potent,recognizable,spire,brackets,remembrance,overlapping,turkic,articulated,scientology,operatic,deploy,readiness,biotechnology,restrict,cinematographer,inverted,synonymous,administratively,westphalia,commodities,replaces,downloads,centralized,munitions,preached,sichuan,fashionable,implementations,matrices,hiv/aids,loyalist,luzon,celebrates,hazards,heiress,mercenaries,synonym,creole,ljubljana,technician,auditioned,technicians,viewpoint,wetland,mongols,princely,sharif,coating,dynasties,southward,doubling,formula_8,mayoral,harvesting,conjecture,goaltender,oceania,spokane,welterweight,bracket,gatherings,weighted,newscasts,mussolini,affiliations,disadvantage,vibrant,spheres,sultanate,distributors,disliked,establishes,marches,drastically,yielding,jewellery,yokohama,vascular,airlift,canons,subcommittee,repression,strengths,graded,outspoken,fused,pembroke,filmography,redundant,fatigue,repeal,threads,reissue,pennant,edible,vapor,corrections,stimuli,commemoration,dictator,anand,secession,amassed,orchards,pontifical,experimentation,greeted,bangor,forwards,decomposition,quran,trolley,chesterfield,traverse,sermons,burials,skier,climbs,consultants,petitioned,reproduce,parted,illuminated,kurdistan,reigned,occupants,packaged,geometridae,woven,regulating,protagonists,crafted,affluent,clergyman,consoles,migrant,supremacy,attackers,caliph,defect,convection,rallies,huron,resin,segunda,quota,warship,overseen,criticizing,shrines,glamorgan,lowering,beaux,hampered,invasions,conductors,collects,bluegrass,surrounds,substrates,perpetual,chronology,pulmonary,executions,crimea,compiling,noctuidae,battled,tumors,minsk,novgorod,serviced,yeast,computation,swamps,theodor,baronetcy,salford,uruguayan,shortages,odisha,siberian,novelty,cinematic,invitational,decks,dowager,oppression,bandits,appellate,state-of-the-art,clade,palaces,signalling,galaxies,industrialist,tensor,learnt,incurred,magistrates,binds,orbits,ciudad,willingness,peninsular,basins,biomedical,shafts,marlborough,bournemouth,withstand,fitzroy,dunedin,variance,steamship,integrating,muscular,fines,akron,bulbophyllum,malmo,disclosed,cornerstone,runways,medicines,twenty20,gettysburg,progresses,frigates,bodied,transformations,transforms,helens,modelled,versatile,regulator,pursuits,legitimacy,amplifier,scriptures,voyages,examines,presenters,octagonal,poultry,formula_9,anatolia,computed,migrate,directorial,hybrids,localized,preferring,guggenheim,persisted,grassroots,inflammation,fishery,otago,vigorous,professions,instructional,inexpensive,insurgency,legislators,sequels,surnames,agrarian,stainless,nairobi,minas,forerunner,aristocracy,transitions,sicilian,showcased,doses,hiroshima,summarized,gearbox,emancipation,limitation,nuclei,seismic,abandonment,dominating,appropriations,occupations,electrification,hilly,contracting,exaggerated,entertainer,kazan,oricon,cartridges,characterization,parcel,maharaja,exceeds,aspiring,obituary,flattened,contrasted,narration,replies,oblique,outpost,fronts,arranger,talmud,keynes,doctrines,endured,confesses,fortification,supervisors,kilometer,academie,jammu,bathurst,piracy,prostitutes,navarre,cumulative,cruises,lifeboat,twinned,radicals,interacting,expenditures,wexford,libre,futsal,curated,clockwise,colloquially,procurement,immaculate,lyricist,enhancement,porcelain,alzheimer,highlighting,judah,disagreements,storytelling,sheltered,wroclaw,vaudeville,contrasts,neoclassical,compares,contrasting,deciduous,francaise,descriptive,cyclic,reactive,antiquities,meiji,repeats,creditors,forcibly,newmarket,picturesque,impending,uneven,bison,raceway,solvent,ecumenical,optic,professorship,harvested,waterway,banjo,pharaoh,geologist,scanning,dissent,recycled,unmanned,retreating,gospels,aqueduct,branched,tallinn,groundbreaking,syllables,hangar,designations,procedural,craters,cabins,encryption,anthropologist,montevideo,outgoing,inverness,chattanooga,fascism,calais,chapels,groundwater,downfall,misleading,robotic,tortricidae,pixel,handel,prohibit,crewe,renaming,reprised,kickoff,leftist,spaced,integers,causeway,pines,authorship,organise,ptolemy,accessibility,virtues,lesions,iroquois,qur'an,atheist,synthesized,biennial,confederates,dietary,skaters,stresses,tariff,koreans,intercity,republics,quintet,baroness,naive,amplitude,insistence,tbilisi,residues,grammatical,diversified,egyptians,accompaniment,vibration,repository,mandal,topological,distinctions,coherent,invariant,batters,nuevo,internationals,implements,follower,bahia,widened,independents,cantonese,totaled,guadalajara,wolverines,befriended,muzzle,surveying,hungarians,medici,deportation,rayon,approx,recounts,attends,clerical,hellenic,furnished,alleging,soluble,systemic,gallantry,bolshevik,intervened,hostel,gunpowder,specialising,stimulate,leiden,removes,thematic,floral,bafta,printers,conglomerate,eroded,analytic,successively,lehigh,thessaloniki,kilda,clauses,ascended,nehru,scripted,tokugawa,competence,diplomats,exclude,consecration,freedoms,assaults,revisions,blacksmith,textual,sparse,concacaf,slain,uploaded,enraged,whaling,guise,stadiums,debuting,dormitory,cardiovascular,yunnan,dioceses,consultancy,notions,lordship,archdeacon,collided,medial,airfields,garment,wrestled,adriatic,reversal,refueling,verification,jakob,horseshoe,intricate,veracruz,sarawak,syndication,synthesizer,anthologies,stature,feasibility,guillaume,narratives,publicized,antrim,intermittent,constituents,grimsby,filmmaking,doping,unlawful,nominally,transmitting,documenting,seater,internationale,ejected,steamboat,alsace,boise,ineligible,geared,vassal,mustered,ville,inline,pairing,eurasian,kyrgyzstan,barnsley,reprise,stereotypes,rushes,conform,firefighters,deportivo,revolutionaries,rabbis,concurrency,charters,sustaining,aspirations,algiers,chichester,falkland,morphological,systematically,volcanoes,designate,artworks,reclaimed,jurist,anglia,resurrected,chaotic,feasible,circulating,simulated,environmentally,confinement,adventist,harrisburg,laborers,ostensibly,universiade,pensions,influenza,bratislava,octave,refurbishment,gothenburg,putin,barangay,annapolis,breaststroke,illustrates,distorted,choreographed,promo,emphasizing,stakeholders,descends,exhibiting,intrinsic,invertebrates,evenly,roundabout,salts,formula_10,strata,inhibition,branching,stylistic,rumored,realises,mitochondrial,commuted,adherents,logos,bloomberg,telenovela,guineas,charcoal,engages,winery,reflective,siena,cambridgeshire,ventral,flashback,installing,engraving,grasses,traveller,rotated,proprietor,nationalities,precedence,sourced,trainers,cambodian,reductions,depleted,saharan,classifications,biochemistry,plaintiffs,arboretum,humanist,fictitious,aleppo,climates,bazaar,his/her,homogeneous,multiplication,moines,indexed,linguist,skeletal,foliage,societal,differentiated,informing,mammal,infancy,archival,cafes,malls,graeme,musee,schizophrenia,fargo,pronouns,derivation,descend,ascending,terminating,deviation,recaptured,confessions,weakening,tajikistan,bahadur,pasture,b/hip,donegal,supervising,sikhs,thinkers,euclidean,reinforcement,friars,portage,fuscous,lucknow,synchronized,assertion,choirs,privatization,corrosion,multitude,skyscraper,royalties,ligament,usable,spores,directs,clashed,stockport,fronted,dependency,contiguous,biologist,backstroke,powerhouse,frescoes,phylogenetic,welding,kildare,gabon,conveyed,augsburg,severn,continuum,sahib,lille,injuring,passeriformesfamily,succeeds,translating,unitarian,startup,turbulent,outlying,philanthropic,stanislaw,idols,claremont,conical,haryana,armagh,blended,implicit,conditioned,modulation,rochdale,labourers,coinage,shortstop,potsdam,gears,obesity,bestseller,advisers,bouts,comedians,jozef,lausanne,taxonomic,correlated,columbian,marne,indications,psychologists,libel,edict,beaufort,disadvantages,renal,finalized,racehorse,unconventional,disturbances,falsely,zoology,adorned,redesign,executing,narrower,commended,appliances,stalls,resurgence,saskatoon,miscellaneous,permitting,epoch,formula_11,cumbria,forefront,vedic,eastenders,disposed,supermarkets,rower,inhibitor,magnesium,colourful,yusuf,harrow,formulas,centrally,balancing,ionic,nocturnal,consolidate,ornate,raiding,charismatic,accelerate,nominate,residual,dhabi,commemorates,attribution,uninhabited,mindanao,atrocities,genealogical,romani,applicant,enactment,abstraction,trough,pulpit,minuscule,misconduct,grenades,timely,supplements,messaging,curvature,ceasefire,telangana,susquehanna,braking,redistribution,shreveport,neighbourhoods,gregorian,widowed,khuzestan,empowerment,scholastic,evangelist,peptide,topical,theorist,historia,thence,sudanese,museo,jurisprudence,masurian,frankish,headlined,recounted,netball,petitions,tolerant,hectare,truncated,southend,methane,captives,reigns,massif,subunit,acidic,weightlifting,footballers,sabah,britannia,tunisian,segregated,sawmill,withdrawing,unpaid,weaponry,somme,perceptions,unicode,alcoholism,durban,wrought,waterfalls,jihad,auschwitz,upland,eastbound,adjective,anhalt,evaluating,regimes,guildford,reproduced,pamphlets,hierarchical,maneuvers,hanoi,fabricated,repetition,enriched,arterial,replacements,tides,globalization,adequately,westbound,satisfactory,fleets,phosphorus,lastly,neuroscience,anchors,xinjiang,membranes,improvisation,shipments,orthodoxy,submissions,bolivian,mahmud,ramps,leyte,pastures,outlines,flees,transmitters,fares,sequential,stimulated,novice,alternately,symmetrical,breakaway,layered,baronets,lizards,blackish,edouard,horsepower,penang,principals,mercantile,maldives,overwhelmingly,hawke,rallied,prostate,conscription,juveniles,maccabi,carvings,strikers,sudbury,spurred,improves,lombardy,macquarie,parisian,elastic,distillery,shetland,humane,brentford,wrexham,warehouses,routines,encompassed,introductory,isfahan,instituto,palais,revolutions,sporadic,impoverished,portico,fellowships,speculative,enroll,dormant,adhere,fundamentally,sculpted,meritorious,template,upgrading,reformer,rectory,uncredited,indicative,creeks,galveston,radically,hezbollah,firearm,educating,prohibits,trondheim,locus,refit,headwaters,screenings,lowlands,wasps,coarse,attaining,sedimentary,perished,pitchfork,interned,cerro,stagecoach,aeronautical,liter,transitioned,haydn,inaccurate,legislatures,bromwich,knesset,spectroscopy,butte,asiatic,degraded,concordia,catastrophic,lobes,wellness,pensacola,periphery,hapoel,theta,horizontally,freiburg,liberalism,pleas,durable,warmian,offenses,mesopotamia,shandong,unsuitable,hospitalized,appropriately,phonetic,encompass,conversions,observes,illnesses,breakout,assigns,crowns,inhibitors,nightly,manifestation,fountains,maximize,alphabetical,sloop,expands,newtown,widening,gaddafi,commencing,camouflage,footprint,tyrol,barangays,universite,highlanders,budgets,query,lobbied,westchester,equator,stipulated,pointe,distinguishes,allotted,embankment,advises,storing,loyalists,fourier,rehearsals,starvation,gland,rihanna,tubular,expressive,baccalaureate,intersections,revered,carbonate,eritrea,craftsmen,cosmopolitan,sequencing,corridors,shortlisted,bangladeshi,persians,mimic,parades,repetitive,recommends,flanks,promoters,incompatible,teaming,ammonia,greyhound,solos,improper,legislator,newsweek,recurrent,vitro,cavendish,eireann,crises,prophets,mandir,strategically,guerrillas,formula_12,ghent,contenders,equivalence,drone,sociological,hamid,castes,statehood,aland,clinched,relaunched,tariffs,simulations,williamsburg,rotate,mediation,smallpox,harmonica,lodges,lavish,restrictive,o'sullivan,detainees,polynomials,echoes,intersecting,learners,elects,charlemagne,defiance,epsom,liszt,facilitating,absorbing,revelations,padua,pieter,pious,penultimate,mammalian,montenegrin,supplementary,widows,aromatic,croats,roanoke,trieste,legions,subdistrict,babylonian,grasslands,volga,violently,sparsely,oldies,telecommunication,respondents,quarries,downloadable,commandos,taxpayer,catalytic,malabar,afforded,copying,declines,nawab,junctions,assessing,filtering,classed,disused,compliant,christoph,gottingen,civilizations,hermitage,caledonian,whereupon,ethnically,springsteen,mobilization,terraces,indus,excel,zoological,enrichment,simulate,guitarists,registrar,cappella,invoked,reused,manchu,configured,uppsala,genealogy,mergers,casts,curricular,rebelled,subcontinent,horticultural,parramatta,orchestrated,dockyard,claudius,decca,prohibiting,turkmenistan,brahmin,clandestine,obligatory,elaborated,parasitic,helix,constraint,spearheaded,rotherham,eviction,adapting,albans,rescues,sociologist,guiana,convicts,occurrences,kamen,antennas,asturias,wheeled,sanitary,deterioration,trier,theorists,baseline,announcements,valea,planners,factual,serialized,serials,bilbao,demoted,fission,jamestown,cholera,alleviate,alteration,indefinite,sulfate,paced,climatic,valuation,artisans,proficiency,aegean,regulators,fledgling,sealing,influencing,servicemen,frequented,cancers,tambon,narayan,bankers,clarified,embodied,engraver,reorganisation,dissatisfied,dictated,supplemental,temperance,ratification,puget,nutrient,pretoria,papyrus,uniting,ascribed,cores,coptic,schoolhouse,barrio,
1910s,armory,defected,transatlantic,regulates,ported,artefacts,specifies,boasted,scorers,mollusks,emitted,navigable,quakers,projective,dialogues,reunification,exponential,vastly,banners,unsigned,dissipated,halves,coincidentally,leasing,purported,escorting,estimation,foxes,lifespan,inflorescence,assimilation,showdown,staunch,prologue,ligand,superliga,telescopes,northwards,keynote,heaviest,taunton,redeveloped,vocalists,podlaskie,soyuz,rodents,azores,moravian,outset,parentheses,apparel,domestically,authoritative,polymers,monterrey,inhibit,launcher,jordanian,folds,taxis,mandates,singled,liechtenstein,subsistence,marxism,ousted,governorship,servicing,offseason,modernism,prism,devout,translators,islamist,chromosomes,pitted,bedfordshire,fabrication,authoritarian,javanese,leaflets,transient,substantive,predatory,sigismund,assassinate,diagrams,arrays,rediscovered,reclamation,spawning,fjord,peacekeeping,strands,fabrics,highs,regulars,tirana,ultraviolet,athenian,filly,barnet,naacp,nueva,favourites,terminates,showcases,clones,inherently,interpreting,bjorn,finely,lauded,unspecified,chola,pleistocene,insulation,antilles,donetsk,funnel,nutritional,biennale,reactivated,southport,primate,cavaliers,austrians,interspersed,restarted,suriname,amplifiers,wladyslaw,blockbuster,sportsman,minogue,brightness,benches,bridgeport,initiating,israelis,orbiting,newcomers,externally,scaling,transcribed,impairment,luxurious,longevity,impetus,temperament,ceilings,tchaikovsky,spreads,pantheon,bureaucracy,
1820s,heraldic,villas,formula_13,galician,meath,avoidance,corresponded,headlining,connacht,seekers,rappers,solids,monograph,scoreless,opole,isotopes,himalayas,parodies,garments,microscopic,republished,havilland,orkney,demonstrators,pathogen,saturated,hellenistic,facilitates,aerodynamic,relocating,indochina,laval,astronomers,bequeathed,administrations,extracts,nagoya,torquay,demography,medicare,ambiguity,renumbered,pursuant,concave,syriac,electrode,dispersal,henan,bialystok,walsall,crystalline,puebla,janata,illumination,tianjin,enslaved,coloration,championed,defamation,grille,johor,rejoin,caspian,fatally,planck,workings,appointing,institutionalized,wessex,modernized,exemplified,regatta,jacobite,parochial,programmers,blending,eruptions,insurrection,regression,indices,sited,dentistry,mobilized,furnishings,levant,primaries,ardent,nagasaki,conqueror,dorchester,opined,heartland,amman,mortally,wellesley,bowlers,outputs,coveted,orthography,immersion,disrepair,disadvantaged,curate,childless,condensed,codice_1,remodeled,resultant,bolsheviks,superfamily,saxons,
2010s,contractual,rivalries,malacca,oaxaca,magnate,vertebrae,quezon,olympiad,yucatan,tyres,macro,specialization,commendation,caliphate,gunnery,exiles,excerpts,fraudulent,adjustable,aramaic,interceptor,drumming,standardization,reciprocal,adolescents,federalist,aeronautics,favorably,enforcing,reintroduced,zhejiang,refining,biplane,banknotes,accordion,intersect,illustrating,summits,classmate,militias,biomass,massacres,epidemiology,reworked,wrestlemania,nantes,auditory,taxon,elliptical,chemotherapy,asserting,avoids,proficient,airmen,yellowstone,multicultural,alloys,utilization,seniority,kuyavian,huntsville,orthogonal,bloomington,cultivars,casimir,internment,repulsed,impedance,revolving,fermentation,parana,shutout,partnering,empowered,islamabad,polled,classify,amphibians,greyish,obedience,
4x100,projectile,khyber,halfback,relational,d'ivoire,synonyms,endeavour,padma,customized,mastery,defenceman,berber,purge,interestingly,covent,promulgated,restricting,condemnation,hillsborough,walkers,privateer,intra,captaincy,naturalized,huffington,detecting,hinted,migrating,bayou,counterattack,anatomical,foraging,unsafe,swiftly,outdated,paraguayan,attire,masjid,endeavors,jerseys,triassic,quechua,growers,axial,accumulate,wastewater,cognition,fungal,animator,pagoda,kochi,uniformly,antibody,yerevan,hypotheses,combatants,italianate,draining,fragmentation,snowfall,formative,inversion,kitchener,identifier,additive,lucha,selects,ashland,cambrian,racetrack,trapping,congenital,primates,wavelengths,expansions,yeomanry,harcourt,wealthiest,awaited,punta,intervening,aggressively,vichy,piloted,midtown,tailored,heyday,metadata,guadalcanal,inorganic,hadith,pulses,francais,tangent,scandals,erroneously,tractors,pigment,constabulary,jiangsu,landfill,merton,basalt,astor,forbade,debuts,collisions,exchequer,stadion,roofed,flavour,sculptors,conservancy,dissemination,electrically,undeveloped,existent,surpassing,pentecostal,manifested,amend,formula_14,superhuman,barges,tunis,analytics,argyll,liquids,mechanized,domes,mansions,himalayan,indexing,reuters,nonlinear,purification,exiting,timbers,triangles,decommissioning,departmental,causal,fonts,americana,sept.,seasonally,incomes,razavi,sheds,memorabilia,rotational,terre,sutra,protege,yarmouth,grandmaster,annum,looted,imperialism,variability,liquidation,baptised,isotope,showcasing,milling,rationale,hammersmith,austen,streamlined,acknowledging,contentious,qaleh,breadth,turing,referees,feral,toulon,unofficially,identifiable,standout,labeling,dissatisfaction,jurgen,angrily,featherweight,cantons,constrained,dominates,standalone,relinquished,theologians,markedly,italics,downed,nitrate,likened,gules,craftsman,singaporean,pixels,mandela,moray,parity,departement,antigen,academically,burgh,brahma,arranges,wounding,triathlon,nouveau,vanuatu,banded,acknowledges,unearthed,stemming,authentication,byzantines,converge,nepali,commonplace,deteriorating,recalling,palette,mathematicians,greenish,pictorial,ahmedabad,rouen,validation,u.s.a.,'best,malvern,archers,converter,undergoes,fluorescent,logistical,notification,transvaal,illicit,symphonies,stabilization,worsened,fukuoka,decrees,enthusiast,seychelles,blogger,louvre,dignitaries,burundi,wreckage,signage,pinyin,bursts,federer,polarization,urbana,lazio,schism,nietzsche,venerable,administers,seton,kilograms,invariably,kathmandu,farmed,disqualification,earldom,appropriated,fluctuations,kermanshah,deployments,deformation,wheelbase,maratha,psalm,bytes,methyl,engravings,skirmish,fayette,vaccines,ideally,astrology,breweries,botanic,opposes,harmonies,irregularities,contended,gaulle,prowess,constants,aground,filipinos,fresco,ochreous,jaipur,willamette,quercus,eastwards,mortars,champaign,braille,reforming,horned,hunan,spacious,agitation,draught,specialties,flourishing,greensboro,necessitated,swedes,elemental,whorls,hugely,structurally,plurality,synthesizers,embassies,assad,contradictory,inference,discontent,recreated,inspectors,unicef,commuters,embryo,modifying,stints,numerals,communicated,boosted,trumpeter,brightly,adherence,remade,leases,restrained,eucalyptus,dwellers,planar,grooves,gainesville,daimler,anzac,szczecin,cornerback,prized,peking,mauritania,khalifa,motorized,lodging,instrumentalist,fortresses,cervical,formula_15,passerine,sectarian,researches,apprenticed,reliefs,disclose,gliding,repairing,queue,kyushu,literate,canoeing,sacrament,separatist,calabria,parkland,flowed,investigates,statistically,visionary,commits,dragoons,scrolls,premieres,revisited,subdued,censored,patterned,elective,outlawed,orphaned,leyland,richly,fujian,miniatures,heresy,plaques,countered,nonfiction,exponent,moravia,dispersion,marylebone,midwestern,enclave,ithaca,federated,electronically,handheld,microscopy,tolls,arrivals,climbers,continual,cossacks,moselle,deserts,ubiquitous,gables,forecasts,deforestation,vertebrates,flanking,drilled,superstructure,inspected,consultative,bypassed,ballast,subsidy,socioeconomic,relic,grenada,journalistic,administering,accommodated,collapses,appropriation,reclassified,foreword,porte,assimilated,observance,fragmented,arundel,thuringia,gonzaga,shenzhen,shipyards,sectional,ayrshire,sloping,dependencies,promenade,ecuadorian,mangrove,constructs,goalscorer,heroism,iteration,transistor,omnibus,hampstead,cochin,overshadowed,chieftain,scalar,finishers,ghanaian,abnormalities,monoplane,encyclopaedia,characterize,travancore,baronetage,bearers,biking,distributes,paving,christened,inspections,banco,humber,corinth,quadratic,albanians,lineages,majored,roadside,inaccessible,inclination,darmstadt,fianna,epilepsy,propellers,papacy,montagu,bhutto,sugarcane,optimized,pilasters,contend,batsmen,brabant,housemates,sligo,ascot,aquinas,supervisory,accorded,gerais,echoed,nunavut,conservatoire,carniola,quartermaster,gminas,impeachment,aquitaine,reformers,quarterfinal,karlsruhe,accelerator,coeducational,archduke,gelechiidae,seaplane,dissident,frenchman,palau,depots,hardcover,aachen,darreh,denominational,groningen,parcels,reluctance,drafts,elliptic,counters,decreed,airship,devotional,contradiction,formula_16,undergraduates,qualitative,guatemalan,slavs,southland,blackhawks,detrimental,abolish,chechen,manifestations,arthritis,perch,fated,hebei,peshawar,palin,immensely,havre,totalling,rampant,ferns,concourse,triples,elites,olympian,larva,herds,lipid,karabakh,distal,monotypic,vojvodina,batavia,multiplied,spacing,spellings,pedestrians,parchment,glossy,industrialization,dehydrogenase,patriotism,abolitionist,mentoring,elizabethan,figurative,dysfunction,abyss,constantin,middletown,stigma,mondays,gambia,gaius,israelites,renounced,nepalese,overcoming,buren,sulphur,divergence,predation,looting,iberia,futuristic,shelved,anthropological,innsbruck,escalated,clermont,entrepreneurial,benchmark,mechanically,detachments,populist,apocalyptic,exited,embryonic,stanza,readership,chiba,landlords,expansive,boniface,therapies,perpetrators,whitehall,kassel,masts,carriageway,clinch,pathogens,mazandaran,undesirable,teutonic,miocene,nagpur,juris,cantata,compile,diffuse,dynastic,reopening,comptroller,o'neal,flourish,electing,scientifically,departs,welded,modal,cosmology,fukushima,libertadores,chang'an,asean,generalization,localization,afrikaans,cricketers,accompanies,emigrants,esoteric,southwards,shutdown,prequel,fittings,innate,wrongly,equitable,dictionaries,senatorial,bipolar,flashbacks,semitism,walkway,lyrically,legality,sorbonne,vigorously,durga,samoan,karel,interchanges,patna,decider,registering,electrodes,anarchists,excursion,overthrown,gilan,recited,michelangelo,advertiser,kinship,taboo,cessation,formula_17,premiers,traversed,madurai,poorest,torneo,exerted,replicate,spelt,sporadically,horde,landscaping,razed,hindered,esperanto,manchuria,propellant,jalan,baha'is,sikkim,linguists,pandit,racially,ligands,dowry,francophone,escarpment,behest,magdeburg,mainstay,villiers,yangtze,grupo,conspirators,martyrdom,noticeably,lexical,kazakh,unrestricted,utilised,sired,inhabits,proofs,joseon,pliny,minted,buddhists,cultivate,interconnected,reuse,viability,australasian,derelict,resolving,overlooks,menon,stewardship,playwrights,thwarted,filmfare,disarmament,protections,bundles,sidelined,hypothesized,singer/songwriter,forage,netted,chancery,townshend,restructured,quotation,hyperbolic,succumbed,parliaments,shenandoah,apical,kibbutz,storeys,pastors,lettering,ukrainians,hardships,chihuahua,avail,aisles,taluka,antisemitism,assent,ventured,banksia,seamen,hospice,faroe,fearful,woreda,outfield,chlorine,transformer,tatar,panoramic,pendulum,haarlem,styria,cornice,importing,catalyzes,subunits,enamel,bakersfield,realignment,sorties,subordinates,deanery,townland,gunmen,tutelage,evaluations,allahabad,thrace,veneto,mennonite,sharia,subgenus,satisfies,puritan,unequal,gastrointestinal,ordinances,bacterium,horticulture,argonauts,adjectives,arable,duets,visualization,woolwich,revamped,euroleague,thorax,completes,originality,vasco,freighter,sardar,oratory,sects,extremes,signatories,exporting,arisen,exacerbated,departures,saipan,furlongs,d'italia,goring,dakar,conquests,docked,offshoot,okrug,referencing,disperse,netting,summed,rewritten,articulation,humanoid,spindle,competitiveness,preventive,facades,westinghouse,wycombe,synthase,emulate,fostering,abdel,hexagonal,myriad,caters,arjun,dismay,axiom,psychotherapy,colloquial,complemented,martinique,fractures,culmination,erstwhile,atrium,electronica,anarchism,nadal,montpellier,algebras,submitting,adopts,stemmed,overcame,internacional,asymmetric,gallipoli,gliders,flushing,extermination,hartlepool,tesla,interwar,patriarchal,hitherto,ganges,combatant,marred,philology,glastonbury,reversible,isthmus,undermined,southwark,gateshead,andalusia,remedies,hastily,optimum,smartphone,evade,patrolled,beheaded,dopamine,waivers,ugandan,gujarati,densities,predicting,intestinal,tentative,interstellar,kolonia,soloists,penetrated,rebellions,qeshlaq,prospered,colegio,deficits,konigsberg,deficient,accessing,relays,kurds,politburo,codified,incarnations,occupancy,cossack,metaphysical,deprivation,chopra,piccadilly,formula_18,makeshift,protestantism,alaskan,frontiers,faiths,tendon,dunkirk,durability,autobots,bonuses,coinciding,emails,gunboat,stucco,magma,neutrons,vizier,subscriptions,visuals,envisaged,carpets,smoky,schema,parliamentarian,immersed,domesticated,parishioners,flinders,diminutive,mahabharata,ballarat,falmouth,vacancies,gilded,twigs,mastering,clerics,dalmatia,islington,slogans,compressor,iconography,congolese,sanction,blends,bulgarians,moderator,outflow,textures,safeguard,trafalgar,tramways,skopje,colonialism,chimneys,jazeera,organisers,denoting,motivations,ganga,longstanding,deficiencies,gwynedd,palladium,holistic,fascia,preachers,embargo,sidings,busan,ignited,artificially,clearwater,cemented,northerly,salim,equivalents,crustaceans,oberliga,quadrangle,historiography,romanians,vaults,fiercely,incidental,peacetime,tonal,bhopal,oskar,radha,pesticides,timeslot,westerly,cathedrals,roadways,aldershot,connectors,brahmins,paler,aqueous,gustave,chromatic,linkage,lothian,specialises,aggregation,tributes,insurgent,enact,hampden,ghulam,federations,instigated,lyceum,fredrik,chairmanship,floated,consequent,antagonists,intimidation,patriarchate,warbler,heraldry,entrenched,expectancy,habitation,partitions,widest,launchers,nascent,ethos,wurzburg,lycee,chittagong,mahatma,merseyside,asteroids,yokosuka,cooperatives,quorum,redistricting,bureaucratic,yachts,deploying,rustic,phonology,chorale,cellist,stochastic,crucifixion,surmounted,confucian,portfolios,geothermal,crested,calibre,tropics,deferred,nasir,iqbal,persistence,essayist,chengdu,aborigines,fayetteville,bastion,interchangeable,burlesque,kilmarnock,specificity,tankers,colonels,fijian,quotations,enquiry,quito,palmerston,delle,multidisciplinary,polynesian,iodine,antennae,emphasised,manganese,baptists,galilee,jutland,latent,excursions,skepticism,tectonic,precursors,negligible,musique,misuse,vitoria,expressly,veneration,sulawesi,footed,mubarak,chongqing,chemically,midday,ravaged,facets,varma,yeovil,ethnographic,discounted,physicists,attache,disbanding,essen,shogunate,cooperated,waikato,realising,motherwell,pharmacology,sulfide,inward,expatriate,devoid,cultivar,monde,andean,groupings,goran,unaffected,moldovan,postdoctoral,coleophora,delegated,pronoun,conductivity,coleridge,disapproval,reappeared,microbial,campground,olsztyn,fostered,vaccination,rabbinical,champlain,milestones,viewership,caterpillar,effected,eupithecia,financier,inferred,uzbek,bundled,bandar,balochistan,mysticism,biosphere,holotype,symbolizes,lovecraft,photons,abkhazia,swaziland,subgroups,measurable,falkirk,valparaiso,ashok,discriminatory,rarity,tabernacle,flyweight,jalisco,westernmost,antiquarian,extracellular,margrave,colspan=
9,midsummer,digestive,reversing,burgeoning,substitutes,medallist,khrushchev,guerre,folio,detonated,partido,plentiful,aggregator,medallion,infiltration,shaded,santander,fared,auctioned,permian,ramakrishna,andorra,mentors,diffraction,bukit,potentials,translucent,feminists,tiers,protracted,coburg,wreath,guelph,adventurer,he/she,vertebrate,pipelines,celsius,outbreaks,australasia,deccan,garibaldi,unionists,buildup,biochemical,reconstruct,boulders,stringent,barbed,wording,furnaces,pests,befriends,organises,popes,rizal,tentacles,cadre,tallahassee,punishments,occidental,formatted,mitigation,rulings,rubens,cascades,inducing,choctaw,volta,synagogues,movable,altarpiece,mitigate,practise,intermittently,encountering,memberships,earns,signify,retractable,amounting,pragmatic,wilfrid,dissenting,divergent,kanji,reconstituted,devonian,constitutions,levied,hendrik,starch,costal,honduran,ditches,polygon,eindhoven,superstars,salient,argus,punitive,purana,alluvial,flaps,inefficient,retracted,advantageous,quang,andersson,danville,binghamton,symbolize,conclave,shaanxi,silica,interpersonal,adept,frans,pavilions,lubbock,equip,sunken,limburg,activates,prosecutions,corinthian,venerated,shootings,retreats,parapet,orissa,riviere,animations,parodied,offline,metaphysics,bluffs,plume,piety,fruition,subsidized,steeplechase,shanxi,eurasia,angled,forecasting,suffragan,ashram,larval,labyrinth,chronicler,summaries,trailed,merges,thunderstorms,filtered,formula_19,advertisers,alpes,informatics,parti,constituting,undisputed,certifications,javascript,molten,sclerosis,rumoured,boulogne,hmong,lewes,breslau,notts,bantu,ducal,messengers,radars,nightclubs,bantamweight,carnatic,kaunas,fraternal,triggering,controversially,londonderry,visas,scarcity,offaly,uprisings,repelled,corinthians,pretext,kuomintang,kielce,empties,matriculated,pneumatic,expos,agile,treatises,midpoint,prehistory,oncology,subsets,hydra,hypertension,axioms,wabash,reiterated,swapped,achieves,premio,ageing,overture,curricula,challengers,subic,selangor,liners,frontline,shutter,validated,normalized,entertainers,molluscs,maharaj,allegation,youngstown,synth,thoroughfare,regionally,pillai,transcontinental,pedagogical,riemann,colonia,easternmost,tentatively,profiled,herefordshire,nativity,meuse,nucleotide,inhibits,huntingdon,throughput,recorders,conceding,domed,homeowners,centric,gabled,canoes,fringes,breeder,subtitled,fluoride,haplogroup,zionism,izmir,phylogeny,kharkiv,romanticism,adhesion,usaaf,delegations,lorestan,whalers,biathlon,vaulted,mathematically,pesos,skirmishes,heisman,kalamazoo,gesellschaft,launceston,interacts,quadruple,kowloon,psychoanalysis,toothed,ideologies,navigational,valence,induces,lesotho,frieze,rigging,undercarriage,explorations,spoof,eucharist,profitability,virtuoso,recitals,subterranean,sizeable,herodotus,subscriber,huxley,pivot,forewing,warring,boleslaw,bharatiya,suffixes,trois,percussionist,downturn,garrisons,philosophies,chants,mersin,mentored,dramatist,guilds,frameworks,thermodynamic,venomous,mehmed,assembling,rabbinic,hegemony,replicas,enlargement,claimant,retitled,utica,dumfries,metis,deter,assortment,tubing,afflicted,weavers,rupture,ornamentation,transept,salvaged,upkeep,callsign,rajput,stevenage,trimmed,intracellular,synchronization,consular,unfavorable,royalists,goldwyn,fasting,hussars,doppler,obscurity,currencies,amiens,acorn,tagore,townsville,gaussian,migrations,porta,anjou,graphite,seaport,monographs,gladiators,metrics,calligraphy,sculptural,swietokrzyskie,tolombeh,eredivisie,shoals,queries,carts,exempted,fiberglass,mirrored,bazar,progeny,formalized,mukherjee,professed,amazon.com,cathode,moreton,removable,mountaineers,nagano,transplantation,augustinian,steeply,epilogue,adapter,decisively,accelerating,mediaeval,substituting,tasman,devonshire,litres,enhancements,himmler,nephews,bypassing,imperfect,argentinian,reims,integrates,sochi,ascii,licences,niches,surgeries,fables,versatility,indra,footpath,afonso,crore,evaporation,encodes,shelling,conformity,simplify,updating,quotient,overt,firmware,umpires,architectures,eocene,conservatism,secretion,embroidery,f.c..,tuvalu,mosaics,shipwreck,prefectural,cohort,grievances,garnering,centerpiece,apoptosis,djibouti,bethesda,formula_20,shonen,richland,justinian,dormitories,meteorite,reliably,obtains,pedagogy,hardness,cupola,manifolds,amplification,steamers,familial,dumbarton,jerzy,genital,maidstone,salinity,grumman,signifies,presbytery,meteorology,procured,aegis,streamed,deletion,nuestra,mountaineering,accords,neuronal,khanate,grenoble,axles,dispatches,tokens,turku,auctions,propositions,planters,proclaiming,recommissioned,stravinsky,obverse,bombarded,waged,saviour,massacred,reformist,purportedly,resettlement,ravenna,embroiled,minden,revitalization,hikers,bridging,torpedoed,depletion,nizam,affectionately,latitudes,lubeck,spore,polymerase,aarhus,nazism,
101st,buyout,galerie,diets,overflow,motivational,renown,brevet,deriving,melee,goddesses,demolish,amplified,tamworth,retake,brokerage,beneficiaries,henceforth,reorganised,silhouette,browsers,pollutants,peron,lichfield,encircled,defends,bulge,dubbing,flamenco,coimbatore,refinement,enshrined,grizzlies,capacitor,usefulness,evansville,interscholastic,rhodesian,bulletins,diamondbacks,rockers,platted,medalists,formosa,transporter,slabs,guadeloupe,disparate,concertos,violins,regaining,mandible,untitled,agnostic,issuance,hamiltonian,brampton,srpska,homology,downgraded,florentine,epitaph,kanye,rallying,analysed,grandstand,infinitely,antitrust,plundered,modernity,colspan=
3|total,amphitheatre,doric,motorists,yemeni,carnivorous,probabilities,prelate,struts,scrapping,bydgoszcz,pancreatic,signings,predicts,compendium,ombudsman,apertura,appoints,rebbe,stereotypical,valladolid,clustered,touted,plywood,inertial,kettering,curving,d'honneur,housewives,grenadier,vandals,barbarossa,necked,waltham,reputedly,jharkhand,cistercian,pursues,viscosity,organiser,cloister,islet,stardom,moorish,himachal,strives,scripps,staggered,blasts,westwards,millimeters,angolan,hubei,agility,admirals,mordellistena,coincides,platte,vehicular,cordillera,riffs,schoolteacher,canaan,acoustics,tinged,reinforcing,concentrates,daleks,monza,selectively,musik,polynesia,exporter,reviving,macclesfield,bunkers,ballets,manors,caudal,microbiology,primes,unbroken,outcry,flocks,pakhtunkhwa,abelian,toowoomba,luminous,mould,appraisal,leuven,experimentally,interoperability,hideout,perak,specifying,knighthood,vasily,excerpt,computerized,niels,networked,byzantium,reaffirmed,geographer,obscured,fraternities,mixtures,allusion,accra,lengthened,inquest,panhandle,pigments,revolts,bluetooth,conjugate,overtaken,foray,coils,breech,streaks,impressionist,mendelssohn,intermediary,panned,suggestive,nevis,upazila,rotunda,mersey,linnaeus,anecdotes,gorbachev,viennese,exhaustive,moldavia,arcades,irrespective,orator,diminishing,predictive,cohesion,polarized,montage,avian,alienation,conus,jaffna,urbanization,seawater,extremity,editorials,scrolling,dreyfus,traverses,topographic,gunboats,extratropical,normans,correspondents,recognises,millennia,filtration,ammonium,voicing,complied,prefixes,diplomas,figurines,weakly,gated,oscillator,lucerne,embroidered,outpatient,airframe,fractional,disobedience,quarterbacks,formula_21,shinto,chiapas,epistle,leakage,pacifist,avignon,penrith,renders,mantua,screenplays,gustaf,tesco,alphabetically,rations,discharges,headland,tapestry,manipur,boolean,mediator,ebenezer,subchannel,fable,bestselling,ateneo,trademarks,recurrence,dwarfs,britannica,signifying,vikram,mediate,condensation,censuses,verbandsgemeinde,cartesian,sprang,surat,britons,chelmsford,courtenay,statistic,retina,abortions,liabilities,closures,mississauga,skyscrapers,saginaw,compounded,aristocrat,msnbc,stavanger,septa,interpretive,hinder,visibly,seeding,shutouts,irregularly,quebecois,footbridge,hydroxide,implicitly,lieutenants,simplex,persuades,midshipman,heterogeneous,officiated,crackdown,lends,tartu,altars,fractions,dissidents,tapered,modernisation,scripting,blazon,aquaculture,thermodynamics,sistan,hasidic,bellator,pavia,propagated,theorized,bedouin,transnational,mekong,chronicled,declarations,kickstarter,quotas,runtime,duquesne,broadened,clarendon,brownsville,saturation,tatars,electorates,malayan,replicated,observable,amphitheater,endorsements,referral,allentown,mormons,pantomime,eliminates,typeface,allegorical,varna,conduction,evoke,interviewer,subordinated,uyghur,landscaped,conventionally,ascend,edifice,postulated,hanja,whitewater,embarking,musicologist,tagalog,frontage,paratroopers,hydrocarbons,transliterated,nicolae,viewpoints,surrealist,asheville,falklands,hacienda,glide,opting,zimbabwean,discal,mortgages,nicaraguan,yadav,ghosh,abstracted,castilian,compositional,cartilage,intergovernmental,forfeited,importation,rapping,artes,republika,narayana,condominium,frisian,bradman,duality,marche,extremist,phosphorylation,genomes,allusions,valencian,habeas,ironworks,multiplex,harpsichord,emigrate,alternated,breda,waffen,smartphones,familiarity,regionalliga,herbaceous,piping,dilapidated,carboniferous,xviii,critiques,carcinoma,sagar,chippewa,postmodern,neapolitan,excludes,notoriously,distillation,tungsten,richness,installments,monoxide,chand,privatisation,molded,maths,projectiles,luoyang,epirus,lemma,concentric,incline,erroneous,sideline,gazetted,leopards,fibres,renovate,corrugated,unilateral,repatriation,orchestration,saeed,rockingham,loughborough,formula_22,bandleader,appellation,openness,nanotechnology,massively,tonnage,dunfermline,exposes,moored,ridership,motte,eurobasket,majoring,feats,silla,laterally,playlist,downwards,methodologies,eastbourne,daimyo,cellulose,leyton,norwalk,oblong,hibernian,opaque,insular,allegory,camogie,inactivation,favoring,masterpieces,rinpoche,serotonin,portrayals,waverley,airliner,longford,minimalist,outsourcing,excise,meyrick,qasim,organisational,synaptic,farmington,gorges,scunthorpe,zoned,tohoku,librarians,davao,decor,theatrically,brentwood,pomona,acquires,planter,capacitors,synchronous,skateboarding,coatings,turbocharged,ephraim,capitulation,scoreboard,hebrides,ensues,cereals,ailing,counterpoint,duplication,antisemitic,clique,aichi,oppressive,transcendental,incursions,rename,renumbering,powys,vestry,bitterly,neurology,supplanted,affine,susceptibility,orbiter,activating,overlaps,ecoregion,raman,canoer,darfur,microorganisms,precipitated,protruding,torun,anthropologists,rennes,kangaroos,parliamentarians,edits,littoral,archived,begum,rensselaer,microphones,ypres,empower,etruscan,wisden,montfort,calibration,isomorphic,rioting,kingship,verbally,smyrna,cohesive,canyons,fredericksburg,rahul,relativistic,micropolitan,maroons,industrialized,henchmen,uplift,earthworks,mahdi,disparity,cultured,transliteration,spiny,fragmentary,extinguished,atypical,inventors,biosynthesis,heralded,curacao,anomalies,aeroplane,surya,mangalore,maastricht,ashkenazi,fusiliers,hangzhou,emitting,monmouthshire,schwarzenegger,ramayana,peptides,thiruvananthapuram,alkali,coimbra,budding,reasoned,epithelial,harbors,rudimentary,classically,parque,ealing,crusades,rotations,riparian,pygmy,inertia,revolted,microprocessor,calendars,solvents,kriegsmarine,accademia,cheshmeh,yoruba,ardabil,mitra,genomic,notables,propagate,narrates,univision,outposts,polio,birkenhead,urinary,crocodiles,pectoral,barrymore,deadliest,rupees,chaim,protons,comical,astrophysics,unifying,formula_23,vassals,cortical,audubon,pedals,tenders,resorted,geophysical,lenders,recognising,tackling,lanarkshire,doctrinal,annan,combating,guangxi,estimating,selectors,tribunals,chambered,inhabiting,exemptions,curtailed,abbasid,kandahar,boron,bissau,
150th,codenamed,wearer,whorl,adhered,subversive,famer,smelting,inserting,mogadishu,zoologist,mosul,stumps,almanac,olympiacos,stamens,participatory,cults,honeycomb,geologists,dividend,recursive,skiers,reprint,pandemic,liber,percentages,adversely,stoppage,chieftains,tubingen,southerly,overcrowding,unorganized,hangars,fulfil,hails,cantilever,woodbridge,pinus,wiesbaden,fertilization,fluorescence,enhances,plenary,troublesome,episodic,thrissur,kickboxing,allele,staffing,garda,televisions,philatelic,spacetime,bullpen,oxides,leninist,enrolling,inventive,truro,compatriot,ruskin,normative,assay,gotha,murad,illawarra,gendarmerie,strasse,mazraeh,rebounded,fanfare,liaoning,rembrandt,iranians,emirate,governs,latency,waterfowl,chairmen,katowice,aristocrats,eclipsed,sentient,sonatas,interplay,sacking,decepticons,dynamical,arbitrarily,resonant,petar,velocities,alludes,wastes,prefectures,belleville,sensibility,salvadoran,consolidating,medicaid,trainees,vivekananda,molar,porous,upload,youngster,infused,doctorates,wuhan,annihilation,enthusiastically,gamespot,kanpur,accumulating,monorail,operetta,tiling,sapporo,finns,calvinist,hydrocarbon,sparrows,orienteering,cornelis,minster,vuelta,plebiscite,embraces,panchayats,focussed,remediation,brahman,olfactory,reestablished,uniqueness,northumbria,rwandan,predominately,abode,ghats,balances,californian,uptake,bruges,inert,westerns,reprints,cairn,yarra,resurfaced,audible,rossini,regensburg,italiana,fleshy,irrigated,alerts,yahya,varanasi,marginalized,expatriates,cantonment,normandie,sahitya,directives,rounder,hulls,fictionalized,constables,inserts,hipped,potosi,navies,biologists,canteen,husbandry,augment,fortnight,assamese,kampala,o'keefe,paleolithic,bluish,promontory,consecutively,striving,niall,reuniting,dipole,friendlies,disapproved,thrived,netflix,liberian,dielectric,medway,strategist,sankt,pickups,hitters,encode,rerouted,claimants,anglesey,partitioned,cavan,flutes,reared,repainted,armaments,bowed,thoracic,balliol,piero,chaplains,dehestan,sender,junkers,sindhi,sickle,dividends,metallurgy,honorific,berths,namco,springboard,resettled,gansu,copyrighted,criticizes,utopian,bendigo,ovarian,binomial,spaceflight,oratorio,proprietors,supergroup,duplicated,foreground,strongholds,revolved,optimize,layouts,westland,hurler,anthropomorphic,excelsior,merchandising,reeds,vetoed,cryptography,hollyoaks,monash,flooring,ionian,resilience,johnstown,resolves,lawmakers,alegre,wildcards,intolerance,subculture,selector,slums,formulate,bayonet,istvan,restitution,interchangeably,awakens,rostock,serpentine,oscillation,reichstag,phenotype,recessed,piotr,annotated,preparedness,consultations,clausura,preferential,euthanasia,genoese,outcrops,freemasonry,geometrical,genesee,islets,prometheus,panamanian,thunderbolt,terraced,stara,shipwrecks,futebol,faroese,sharqi,aldermen,zeitung,unify,formula_24,humanism,syntactic,earthen,blyth,taxed,rescinded,suleiman,cymru,dwindled,vitality,superieure,resupply,adolphe,ardennes,rajiv,profiling,olympique,gestation,interfaith,milosevic,tagline,funerary,druze,silvery,plough,shrubland,relaunch,disband,nunatak,minimizing,excessively,waned,attaching,luminosity,bugle,encampment,electrostatic,minesweeper,dubrovnik,rufous,greenock,hochschule,assyrians,extracting,malnutrition,priya,attainment,anhui,connotations,predicate,seabirds,deduced,pseudonyms,gopal,plovdiv,refineries,imitated,kwazulu,terracotta,tenets,discourses,brandeis,whigs,dominions,pulmonate,landslides,tutors,determinant,richelieu,farmstead,tubercles,technicolor,hegel,redundancy,greenpeace,shortening,mules,distilled,xxiii,fundamentalist,acrylic,outbuildings,lighted,corals,signaled,transistors,cavite,austerity,
76ers,exposures,dionysius,outlining,commutative,permissible,knowledgeable,howrah,assemblage,inhibited,crewmen,mbit/s,pyramidal,aberdeenshire,bering,rotates,atheism,howitzer,saone,lancet,fermented,contradicted,materiel,ofsted,numeric,uniformity,josephus,nazarene,kuwaiti,noblemen,pediment,emergent,campaigner,akademi,murcia,perugia,gallen,allsvenskan,finned,cavities,matriculation,rosters,twickenham,signatory,propel,readable,contends,artisan,flamboyant,reggio,italo,fumbles,widescreen,rectangle,centimetres,collaborates,envoys,rijeka,phonological,thinly,refractive,civilisation,reductase,cognate,dalhousie,monticello,lighthouses,jitsu,luneburg,socialite,fermi,collectible,optioned,marquee,jokingly,architecturally,kabir,concubine,nationalisation,watercolor,wicklow,acharya,pooja,leibniz,rajendra,nationalized,stalemate,bloggers,glutamate,uplands,shivaji,carolingian,bucuresti,dasht,reappears,muscat,functionally,formulations,hinged,hainan,catechism,autosomal,incremental,asahi,coeur,diversification,multilateral,fewest,recombination,finisher,harrogate,hangul,feasts,photovoltaic,paget,liquidity,alluded,incubation,applauded,choruses,malagasy,hispanics,bequest,underparts,cassava,kazimierz,gastric,eradication,mowtowr,tyrosine,archbishopric,e9e9e9,unproductive,uxbridge,hydrolysis,harbours,officio,deterministic,devonport,kanagawa,breaches,freetown,rhinoceros,chandigarh,janos,sanatorium,liberator,inequalities,agonist,hydrophobic,constructors,nagorno,snowboarding,welcomes,subscribed,iloilo,resuming,catalysts,stallions,jawaharlal,harriers,definitively,roughriders,hertford,inhibiting,elgar,randomized,incumbents,episcopate,rainforests,yangon,improperly,kemal,interpreters,diverged,uttarakhand,umayyad,phnom,panathinaikos,shabbat,diode,jiangxi,forbidding,nozzle,artistry,licensee,processions,staffs,decimated,expressionism,shingle,palsy,ontology,mahayana,maribor,sunil,hostels,edwardian,jetty,freehold,overthrew,eukaryotic,schuylkill,rawalpindi,sheath,recessive,ferenc,mandibles,berlusconi,confessor,convergent,ababa,slugging,rentals,sephardic,equivalently,collagen,markov,dynamically,hailing,depressions,sprawling,fairgrounds,indistinguishable,plutarch,pressurized,banff,coldest,braunschweig,mackintosh,sociedad,wittgenstein,tromso,airbase,lecturers,subtitle,attaches,purified,contemplated,dreamworks,telephony,prophetic,rockland,aylesbury,biscay,coherence,aleksandar,judoka,pageants,theses,homelessness,luthor,sitcoms,hinterland,fifths,derwent,privateers,enigmatic,nationalistic,instructs,superimposed,conformation,tricycle,dusan,attributable,unbeknownst,laptops,etching,archbishops,ayatollah,cranial,gharbi,interprets,lackawanna,abingdon,saltwater,tories,lender,minaj,ancillary,ranching,pembrokeshire,topographical,plagiarism,murong,marque,chameleon,assertions,infiltrated,guildhall,reverence,schenectady,formula_25,kollam,notary,mexicana,initiates,abdication,basra,theorems,ionization,dismantling,eared,censors,budgetary,numeral,verlag,excommunicated,distinguishable,quarried,cagliari,hindustan,symbolizing,watertown,descartes,relayed,enclosures,militarily,sault,devolved,dalian,djokovic,filaments,staunton,tumour,curia,villainous,decentralized,galapagos,moncton,quartets,onscreen,necropolis,brasileiro,multipurpose,alamos,comarca,jorgen,concise,mercia,saitama,billiards,entomologist,montserrat,lindbergh,commuting,lethbridge,phoenician,deviations,anaerobic,denouncing,redoubt,fachhochschule,principalities,negros,announcers,seconded,parrots,konami,revivals,approving,devotee,riyadh,overtook,morecambe,lichen,expressionist,waterline,silverstone,geffen,sternites,aspiration,behavioural,grenville,tripura,mediums,genders,pyotr,charlottesville,sacraments,programmable,ps100,shackleton,garonne,sumerian,surpass,authorizing,interlocking,lagoons,voiceless,advert,steeple,boycotted,alouettes,yosef,oxidative,sassanid,benefiting,sayyid,nauru,predetermined,idealism,maxillary,polymerization,semesters,munchen,conor,outfitted,clapham,progenitor,gheorghe,observational,recognitions,numerically,colonized,hazrat,indore,contaminants,fatality,eradicate,assyria,convocation,cameos,skillful,skoda,corfu,confucius,overtly,ramadan,wollongong,placements,d.c..,permutation,contemporaneous,voltages,elegans,universitat,samar,plunder,dwindling,neuter,antonin,sinhala,campania,solidified,stanzas,fibrous,marburg,modernize,sorcery,deutscher,florets,thakur,disruptive,infielder,disintegration,internazionale,vicariate,effigy,tripartite,corrective,klamath,environs,leavenworth,sandhurst,workmen,compagnie,hoseynabad,strabo,palisades,ordovician,sigurd,grandsons,defection,viacom,sinhalese,innovator,uncontrolled,slavonic,indexes,refrigeration,aircrew,superbike,resumption,neustadt,confrontations,arras,hindenburg,ripon,embedding,isomorphism,dwarves,matchup,unison,lofty,argos,louth,constitutionally,transitive,newington,facelift,degeneration,perceptual,aviators,enclosing,igneous,symbolically,academician,constitutionality,iso/iec,sacrificial,maturation,apprentices,enzymology,naturalistic,hajji,arthropods,abbess,vistula,scuttled,gradients,pentathlon,etudes,freedmen,melaleuca,thrice,conductive,sackville,franciscans,stricter,golds,kites,worshiped,monsignor,trios,orally,tiered,primacy,bodywork,castleford,epidemics,alveolar,chapelle,chemists,hillsboro,soulful,warlords,ngati,huguenot,diurnal,remarking,luger,motorways,gauss,jahan,cutoff,proximal,bandai,catchphrase,jonubi,ossetia,codename,codice_2,throated,itinerant,chechnya,riverfront,leela,evoked,entailed,zamboanga,rejoining,circuitry,haymarket,khartoum,feuds,braced,miyazaki,mirren,lubusz,caricature,buttresses,attrition,characterizes,widnes,evanston,materialism,contradictions,marist,midrash,gainsborough,ulithi,turkmen,vidya,escuela,patrician,inspirations,reagent,premierships,humanistic,euphrates,transitioning,belfry,zedong,adaption,kaliningrad,lobos,epics,waiver,coniferous,polydor,inductee,refitted,moraine,unsatisfactory,worsening,polygamy,rajya,nested,subgenre,broadside,stampeders,lingua,incheon,pretender,peloton,persuading,excitation,multan,predates,tonne,brackish,autoimmune,insulated,podcasts,iraqis,bodybuilding,condominiums,midlothian,delft,debtor,asymmetrical,lycaenidae,forcefully,pathogenic,tamaulipas,andaman,intravenous,advancements,senegalese,chronologically,realigned,inquirer,eusebius,dekalb,additives,shortlist,goldwater,hindustani,auditing,caterpillars,pesticide,nakhon,ingestion,lansdowne,traditionalist,northland,thunderbirds,josip,nominating,locale,ventricular,animators,verandah,epistles,surveyors,anthems,dredd,upheaval,passaic,anatolian,svalbard,associative,floodplain,taranaki,estuaries,irreducible,beginners,hammerstein,allocate,coursework,secreted,counteract,handwritten,foundational,passover,discoverer,decoding,wares,bourgeoisie,playgrounds,nazionale,abbreviations,seanad,golan,mishra,godavari,rebranding,attendances,backstory,interrupts,lettered,hasbro,ultralight,hormozgan,armee,moderne,subdue,disuse,improvisational,enrolment,persists,moderated,carinthia,hatchback,inhibitory,capitalized,anatoly,abstracts,albemarle,bergamo,insolvency,sentai,cellars,walloon,joked,kashmiri,dirac,materialized,renomination,homologous,gusts,eighteens,centrifugal,storied,baluchestan,formula_26,poincare,vettel,infuriated,gauges,streetcars,vedanta,stately,liquidated,goguryeo,swifts,accountancy,levee,acadian,hydropower,eustace,comintern,allotment,designating,torsion,molding,irritation,aerobic,halen,concerted,plantings,garrisoned,gramophone,cytoplasm,onslaught,requisitioned,relieving,genitive,centrist,jeong,espanola,dissolving,chatterjee,sparking,connaught,varese,arjuna,carpathian,empowering,meteorologist,decathlon,opioid,hohenzollern,fenced,ibiza,avionics,footscray,scrum,discounts,filament,directories,a.f.c,stiffness,quaternary,adventurers,transmits,harmonious,taizong,radiating,germantown,ejection,projectors,gaseous,nahuatl,vidyalaya,nightlife,redefined,refuted,destitute,arista,potters,disseminated,distanced,jamboree,kaohsiung,tilted,lakeshore,grained,inflicting,kreis,novelists,descendents,mezzanine,recast,fatah,deregulation,ac/dc,australis,kohgiluyeh,boreal,goths,authoring,intoxicated,nonpartisan,theodosius,pyongyang,shree,boyhood,sanfl,plenipotentiary,photosynthesis,presidium,sinaloa,honshu,texan,avenida,transmembrane,malays,acropolis,catalunya,vases,inconsistencies,methodists,quell,suisse,banat,simcoe,cercle,zealanders,discredited,equine,sages,parthian,fascists,interpolation,classifying,spinoff,yehuda,cruised,gypsum,foaled,wallachia,saraswati,imperialist,seabed,footnotes,nakajima,locales,schoolmaster,drosophila,bridgehead,immanuel,courtier,bookseller,niccolo,stylistically,portmanteau,superleague,konkani,millimetres,arboreal,thanjavur,emulation,sounders,decompression,commoners,infusion,methodological,osage,rococo,anchoring,bayreuth,formula_27,abstracting,symbolized,bayonne,electrolyte,rowed,corvettes,traversing,editorship,sampler,presidio,curzon,adirondack,swahili,rearing,bladed,lemur,pashtun,behaviours,bottling,zaire,recognisable,systematics,leeward,formulae,subdistricts,smithfield,vijaya,buoyancy,boosting,cantonal,rishi,airflow,kamakura,adana,emblems,aquifer,clustering,husayn,woolly,wineries,montessori,turntable,exponentially,caverns,espoused,pianists,vorpommern,vicenza,latterly,o'rourke,williamstown,generale,kosice,duisburg,poirot,marshy,mismanagement,mandalay,dagenham,universes,chiral,radiated,stewards,vegan,crankshaft,kyrgyz,amphibian,cymbals,infrequently,offenbach,environmentalist,repatriated,permutations,midshipmen,loudoun,refereed,bamberg,ornamented,nitric,selim,translational,dorsum,annunciation,gippsland,reflector,informational,regia,reactionary,ahmet,weathering,erlewine,legalized,berne,occupant,divas,manifests,analyzes,disproportionate,mitochondria,totalitarian,paulista,interscope,anarcho,correlate,brookfield,elongate,brunel,ordinal,precincts,volatility,equaliser,hittite,somaliland,ticketing,monochrome,ubuntu,chhattisgarh,titleholder,ranches,referendums,blooms,accommodates,merthyr,religiously,ryukyu,tumultuous,checkpoints,anode,mi'kmaq,cannonball,punctuation,remodelled,assassinations,criminology,alternates,yonge,pixar,namibian,piraeus,trondelag,hautes,lifeboats,shoal,atelier,vehemently,sadat,postcode,jainism,lycoming,undisturbed,lutherans,genomics,popmatters,tabriz,isthmian,notched,autistic,horsham,mites,conseil,bloomsbury,seung,cybertron,idris,overhauled,disbandment,idealized,goldfields,worshippers,lobbyist,ailments,paganism,herbarium,athenians,messerschmitt,faraday,entangled,'olya,untreated,criticising,howitzers,parvati,lobed,debussy,atonement,tadeusz,permeability,mueang,sepals,degli,optionally,fuelled,follies,asterisk,pristina,lewiston,congested,overpass,affixed,pleads,telecasts,stanislaus,cryptographic,friesland,hamstring,selkirk,antisubmarine,inundated,overlay,aggregates,fleur,trolleybus,sagan,ibsen,inductees,beltway,tiled,ladders,cadbury,laplace,ascetic,micronesia,conveying,bellingham,cleft,batches,usaid,conjugation,macedon,assisi,reappointed,brine,jinnah,prairies,screenwriting,oxidized,despatches,linearly,fertilizers,brazilians,absorbs,wagga,modernised,scorsese,ashraf,charlestown,esque,habitable,nizhny,lettres,tuscaloosa,esplanade,coalitions,carbohydrates,legate,vermilion,standardised,galleria,psychoanalytic,rearrangement,substation,competency,nationalised,reshuffle,reconstructions,mehdi,bougainville,receivership,contraception,enlistment,conducive,aberystwyth,solicitors,dismisses,fibrosis,montclair,homeowner,surrealism,s.h.i.e.l.d,peregrine,compilers,
1790s,parentage,palmas,rzeszow,worldview,eased,svenska,housemate,bundestag,originator,enlisting,outwards,reciprocity,formula_28,carbohydrate,democratically,firefighting,romagna,acknowledgement,khomeini,carbide,quests,vedas,characteristically,guwahati,brixton,unintended,brothels,parietal,namur,sherbrooke,moldavian,baruch,milieu,undulating,laurier,entre,dijon,ethylene,abilene,heracles,paralleling,ceres,dundalk,falun,auspicious,chisinau,polarity,foreclosure,templates,ojibwe,punic,eriksson,biden,bachchan,glaciation,spitfires,norsk,nonviolent,heidegger,algonquin,capacitance,cassettes,balconies,alleles,airdate,conveys,replays,classifies,infrequent,amine,cuttings,rarer,woking,olomouc,amritsar,rockabilly,illyrian,maoist,poignant,tempore,stalinist,segmented,bandmate,mollusc,muhammed,totalled,byrds,tendered,endogenous,kottayam,aisne,oxidase,overhears,illustrators,verve,commercialization,purplish,directv,moulded,lyttelton,baptismal,captors,saracens,georgios,shorten,polity,grids,fitzwilliam,sculls,impurities,confederations,akhtar,intangible,oscillations,parabolic,harlequin,maulana,ovate,tanzanian,singularity,confiscation,qazvin,speyer,phonemes,overgrown,vicarage,gurion,undocumented,niigata,thrones,preamble,stave,interment,liiga,ataturk,aphrodite,groupe,indentured,habsburgs,caption,utilitarian,ozark,slovenes,reproductions,plasticity,serbo,dulwich,castel,barbuda,salons,feuding,lenape,wikileaks,swamy,breuning,shedding,afield,superficially,operationally,lamented,okanagan,hamadan,accolade,furthering,adolphus,fyodor,abridged,cartoonists,pinkish,suharto,cytochrome,methylation,debit,colspan=
9|,refine,taoist,signalled,herding,leaved,bayan,fatherland,rampart,sequenced,negation,storyteller,occupiers,barnabas,pelicans,nadir,conscripted,railcars,prerequisite,furthered,columba,carolinas,markup,gwalior,franche,chaco,eglinton,ramparts,rangoon,metabolites,pollination,croat,televisa,holyoke,testimonial,setlist,safavid,sendai,georgians,shakespearean,galleys,regenerative,krzysztof,overtones,estado,barbary,cherbourg,obispo,sayings,composites,sainsbury,deliberation,cosmological,mahalleh,embellished,ascap,biala,pancras,calumet,grands,canvases,antigens,marianas,defenseman,approximated,seedlings,soren,stele,nuncio,immunology,testimonies,glossary,recollections,suitability,tampere,venous,cohomology,methanol,echoing,ivanovich,warmly,sterilization,imran,multiplying,whitechapel,undersea,xuanzong,tacitus,bayesian,roundhouse,correlations,rioters,molds,fiorentina,bandmates,mezzo,thani,guerilla,
200th,premiums,tamils,deepwater,chimpanzees,tribesmen,selwyn,globo,turnovers,punctuated,erode,nouvelle,banbury,exponents,abolishing,helical,maimonides,endothelial,goteborg,infield,encroachment,cottonwood,mazowiecki,parable,saarbrucken,reliever,epistemology,artistes,enrich,rationing,formula_29,palmyra,subfamilies,kauai,zoran,fieldwork,arousal,creditor,friuli,celts,comoros,equated,escalation,negev,tallied,inductive,anion,netanyahu,mesoamerican,lepidoptera,aspirated,remit,westmorland,italic,crosse,vaclav,fuego,owain,balmain,venetians,ethnicities,deflected,ticino,apulia,austere,flycatcher,reprising,repressive,hauptbahnhof,subtype,ophthalmology,summarizes,eniwetok,colonisation,subspace,nymphalidae,earmarked,tempe,burnet,crests,abbots,norwegians,enlarge,ashoka,frankfort,livorno,malware,renters,singly,iliad,moresby,rookies,gustavus,affirming,alleges,legume,chekhov,studded,abdicated,suzhou,isidore,townsite,repayment,quintus,yankovic,amorphous,constructor,narrowing,industrialists,tanganyika,capitalization,connective,mughals,rarities,aerodynamics,worthing,antalya,diagnostics,shaftesbury,thracian,obstetrics,benghazi,multiplier,orbitals,livonia,roscommon,intensify,ravel,oaths,overseer,locomotion,necessities,chickasaw,strathclyde,treviso,erfurt,aortic,contemplation,accrington,markazi,predeceased,hippocampus,whitecaps,assemblyman,incursion,ethnography,extraliga,reproducing,directorship,benzene,byway,stupa,taxable,scottsdale,onondaga,favourably,countermeasures,lithuanians,thatched,deflection,tarsus,consuls,annuity,paralleled,contextual,anglian,klang,hoisted,multilingual,enacting,samaj,taoiseach,carthaginian,apologised,hydrology,entrant,seamless,inflorescences,mugabe,westerners,seminaries,wintering,penzance,mitre,sergeants,unoccupied,delimitation,discriminate,upriver,abortive,nihon,bessarabia,calcareous,buffaloes,patil,daegu,streamline,berks,chaparral,laity,conceptions,typified,kiribati,threaded,mattel,eccentricity,signified,patagonia,slavonia,certifying,adnan,astley,sedition,minimally,enumerated,nikos,goalless,walid,narendra,causa,missoula,coolant,dalek,outcrop,hybridization,schoolchildren,peasantry,afghans,confucianism,shahr,gallic,tajik,kierkegaard,sauvignon,commissar,patriarchs,tuskegee,prussians,laois,ricans,talmudic,officiating,aesthetically,baloch,antiochus,separatists,suzerainty,arafat,shading,u.s.c,chancellors,inc..,toolkit,nepenthes,erebidae,solicited,pratap,kabbalah,alchemist,caltech,darjeeling,biopic,spillway,kaiserslautern,nijmegen,bolstered,neath,pahlavi,eugenics,bureaus,retook,northfield,instantaneous,deerfield,humankind,selectivity,putative,boarders,cornhuskers,marathas,raikkonen,aliabad,mangroves,garages,gulch,karzai,poitiers,chernobyl,thane,alexios,belgrano,scion,solubility,urbanized,executable,guizhou,nucleic,tripled,equalled,harare,houseguests,potency,ghazi,repeater,overarching,regrouped,broward,ragtime,d'art,nandi,regalia,campsites,mamluk,plating,wirral,presumption,zenit,archivist,emmerdale,decepticon,carabidae,kagoshima,franconia,guarani,formalism,diagonally,submarginal,denys,walkways,punts,metrolink,hydrographic,droplets,upperside,martyred,hummingbird,antebellum,curiously,mufti,friary,chabad,czechs,shaykh,reactivity,berklee,turbonilla,tongan,sultans,woodville,unlicensed,enmity,dominicans,operculum,quarrying,watercolour,catalyzed,gatwick,'what,mesozoic,auditors,shizuoka,footballing,haldane,telemundo,appended,deducted,disseminate,o'shea,pskov,abrasive,entente,gauteng,calicut,lemurs,elasticity,suffused,scopula,staining,upholding,excesses,shostakovich,loanwords,naidu,championnat,chromatography,boasting,goaltenders,engulfed,salah,kilogram,morristown,shingles,shi'a,labourer,renditions,frantisek,jekyll,zonal,nanda,sheriffs,eigenvalues,divisione,endorsing,ushered,auvergne,cadres,repentance,freemasons,utilising,laureates,diocletian,semiconductors,o'grady,vladivostok,sarkozy,trackage,masculinity,hydroxyl,mervyn,muskets,speculations,gridiron,opportunistic,mascots,aleutian,fillies,sewerage,excommunication,borrowers,capillary,trending,sydenham,synthpop,rajah,cagayan,deportes,kedah,faure,extremism,michoacan,levski,culminates,occitan,bioinformatics,unknowingly,inciting,emulated,footpaths,piacenza,dreadnought,viceroyalty,oceanographic,scouted,combinatorial,ornithologist,cannibalism,mujahideen,independiente,cilicia,hindwing,minimized,odeon,gyorgy,rubles,purchaser,collieries,kickers,interurban,coiled,lynchburg,respondent,plzen,detractors,etchings,centering,intensification,tomography,ranjit,warblers,retelling,reinstatement,cauchy,modulus,redirected,evaluates,beginner,kalateh,perforated,manoeuvre,scrimmage,internships,megawatts,mottled,haakon,tunbridge,kalyan,summarised,sukarno,quetta,canonized,henryk,agglomeration,coahuila,diluted,chiropractic,yogyakarta,talladega,sheik,cation,halting,reprisals,sulfuric,musharraf,sympathizers,publicised,arles,lectionary,fracturing,startups,sangha,latrobe,rideau,ligaments,blockading,cremona,lichens,fabaceae,modulated,evocative,embodies,battersea,indistinct,altai,subsystem,acidity,somatic,formula_30,tariq,rationality,sortie,ashlar,pokal,cytoplasmic,valour,bangla,displacing,hijacking,spectrometry,westmeath,weill,charing,goias,revolvers,individualized,tenured,nawaz,piquet,chanted,discard,bernd,phalanx,reworking,unilaterally,subclass,yitzhak,piloting,circumvent,disregarded,semicircular,viscous,tibetans,endeavours,retaliated,cretan,vienne,workhouse,sufficiency,aurangzeb,legalization,lipids,expanse,eintracht,sanjak,megas,
125th,bahraini,yakima,eukaryotes,thwart,affirmation,peloponnese,retailing,carbonyl,chairwoman,macedonians,dentate,rockaway,correctness,wealthier,metamorphic,aragonese,fermanagh,pituitary,schrodinger,evokes,spoiler,chariots,akita,genitalia,combe,confectionery,desegregation,experiential,commodores,persepolis,viejo,restorations,virtualization,hispania,printmaking,stipend,yisrael,theravada,expended,radium,tweeted,polygonal,lippe,charente,leveraged,cutaneous,fallacy,fragrant,bypasses,elaborately,rigidity,majid,majorca,kongo,plasmodium,skits,audiovisual,eerste,staircases,prompts,coulthard,northwestward,riverdale,beatrix,copyrights,prudential,communicates,mated,obscenity,asynchronous,analyse,hansa,searchlight,farnborough,patras,asquith,qarah,contours,fumbled,pasteur,redistributed,almeria,sanctuaries,jewry,israelite,clinicians,koblenz,bookshop,affective,goulburn,panelist,sikorsky,cobham,mimics,ringed,portraiture,probabilistic,girolamo,intelligible,andalusian,jalal,athenaeum,eritrean,auxiliaries,pittsburg,devolution,sangam,isolating,anglers,cronulla,annihilated,kidderminster,synthesize,popularised,theophilus,bandstand,innumerable,chagrin,retroactively,weser,multiples,birdlife,goryeo,pawnee,grosser,grappling,tactile,ahmadinejad,turboprop,erdogan,matchday,proletarian,adhering,complements,austronesian,adverts,luminaries,archeology,impressionism,conifer,sodomy,interracial,platoons,lessen,postings,pejorative,registrations,cookery,persecutions,microbes,audits,idiosyncratic,subsp,suspensions,restricts,colouring,ratify,instrumentals,nucleotides,sulla,posits,bibliotheque,diameters,oceanography,instigation,subsumed,submachine,acceptor,legation,borrows,sedge,discriminated,loaves,insurers,highgate,detectable,abandons,kilns,sportscaster,harwich,iterations,preakness,arduous,tensile,prabhu,shortwave,philologist,shareholding,vegetative,complexities,councilors,distinctively,revitalize,automaton,amassing,montreux,khanh,surabaya,nurnberg,pernambuco,cuisines,charterhouse,firsts,tercera,inhabitant,homophobia,naturalism,einar,powerplant,coruna,entertainments,whedon,rajputs,raton,democracies,arunachal,oeuvre,wallonia,jeddah,trolleybuses,evangelism,vosges,kiowa,minimise,encirclement,undertakes,emigrant,beacons,deepened,grammars,publius,preeminent,seyyed,repechage,crafting,headingley,osteopathic,lithography,hotly,bligh,inshore,betrothed,olympians,formula_31,dissociation,trivandrum,arran,petrovic,stettin,disembarked,simplification,bronzes,philo,acrobatic,jonsson,conjectured,supercharged,kanto,detects,cheeses,correlates,harmonics,lifecycle,sudamericana,reservists,decayed,elitserien,parametric,
113th,dusky,hogarth,modulo,symbiotic,monopolies,discontinuation,converges,southerners,tucuman,eclipses,enclaves,emits,famicom,caricatures,artistically,levelled,mussels,erecting,mouthparts,cunard,octaves,crucible,guardia,unusable,lagrangian,droughts,ephemeral,pashto,canis,tapering,sasebo,silurian,metallurgical,outscored,evolves,reissues,sedentary,homotopy,greyhawk,reagents,inheriting,onshore,tilting,rebuffed,reusable,naturalists,basingstoke,insofar,offensives,dravidian,curators,planks,rajan,isoforms,flagstaff,preside,globular,egalitarian,linkages,biographers,goalscorers,molybdenum,centralised,nordland,jurists,ellesmere,rosberg,hideyoshi,restructure,biases,borrower,scathing,redress,tunnelling,workflow,magnates,mahendra,dissenters,plethora,transcriptions,handicrafts,keyword,xi'an,petrograd,unser,prokofiev,
90deg,madan,bataan,maronite,kearny,carmarthen,termini,consulates,disallowed,rockville,bowery,fanzine,docklands,bests,prohibitions,yeltsin,selassie,naturalization,realisation,dispensary,tribeca,abdulaziz,pocahontas,stagnation,pamplona,cuneiform,propagating,subsurface,christgau,epithelium,schwerin,lynching,routledge,hanseatic,upanishad,glebe,yugoslavian,complicity,endowments,girona,mynetworktv,entomology,plinth,ba'ath,supercup,torus,akkadian,salted,englewood,commandery,belgaum,prefixed,colorless,dartford,enthroned,caesarea,nominative,sandown,safeguards,hulled,formula_32,leamington,dieppe,spearhead,generalizations,demarcation,llanelli,masque,brickwork,recounting,sufism,strikingly,petrochemical,onslow,monologues,emigrating,anderlecht,sturt,hossein,sakhalin,subduction,novices,deptford,zanjan,airstrikes,coalfield,reintroduction,timbaland,hornby,messianic,stinging,universalist,situational,radiocarbon,strongman,rowling,saloons,traffickers,overran,fribourg,cambrai,gravesend,discretionary,finitely,archetype,assessor,pilipinas,exhumed,invocation,interacted,digitized,timisoara,smelter,teton,sexism,precepts,srinagar,pilsudski,carmelite,hanau,scoreline,hernando,trekking,blogging,fanbase,wielded,vesicles,nationalization,banja,rafts,motoring,luang,takeda,girder,stimulates,histone,sunda,nanoparticles,attains,jumpers,catalogued,alluding,pontus,ancients,examiners,shinkansen,ribbentrop,reimbursement,pharmacological,ramat,stringed,imposes,cheaply,transplanted,taiping,mizoram,looms,wallabies,sideman,kootenay,encased,sportsnet,revolutionized,tangier,benthic,runic,pakistanis,heatseekers,shyam,mishnah,presbyterians,stadt,sutras,straddles,zoroastrian,infer,fueling,gymnasts,ofcom,gunfight,journeyman,tracklist,oshawa,ps500,pa'in,mackinac,xiongnu,mississippian,breckinridge,freemason,bight,autoroute,liberalization,distantly,thrillers,solomons,presumptive,romanization,anecdotal,bohemians,unpaved,milder,concurred,spinners,alphabets,strenuous,rivieres,kerrang,mistreatment,dismounted,intensively,carlist,dancehall,shunting,pluralism,trafficked,brokered,bonaventure,bromide,neckar,designates,malian,reverses,sotheby,sorghum,serine,environmentalists,languedoc,consulship,metering,bankstown,handlers,militiamen,conforming,regularity,pondicherry,armin,capsized,consejo,capitalists,drogheda,granular,purged,acadians,endocrine,intramural,elicit,terns,orientations,miklos,omitting,apocryphal,slapstick,brecon,pliocene,affords,typography,emigre,tsarist,tomasz,beset,nishi,necessitating,encyclical,roleplaying,journeyed,inflow,sprints,progressives,novosibirsk,cameroonian,ephesus,speckled,kinshasa,freiherr,burnaby,dalmatian,torrential,rigor,renegades,bhakti,nurburgring,cosimo,convincingly,reverting,visayas,lewisham,charlottetown,charadriiformesfamily,transferable,jodhpur,converters,deepening,camshaft,underdeveloped,protease,polonia,uterine,quantify,tobruk,dealerships,narasimha,fortran,inactivity,
1780s,victors,categorised,naxos,workstation,skink,sardinian,chalice,precede,dammed,sondheim,phineas,tutored,sourcing,uncompromising,placer,tyneside,courtiers,proclaims,pharmacies,hyogo,booksellers,sengoku,kursk,spectrometer,countywide,wielkopolski,bobsleigh,shetty,llywelyn,consistory,heretics,guinean,cliches,individualism,monolithic,imams,usability,bursa,deliberations,railings,torchwood,inconsistency,balearic,stabilizer,demonstrator,facet,radioactivity,outboard,educates,d'oyly,heretical,handover,jurisdictional,shockwave,hispaniola,conceptually,routers,unaffiliated,trentino,formula_33,cypriots,intervenes,neuchatel,formulating,maggiore,delisted,alcohols,thessaly,potable,estimator,suborder,fluency,mimicry,clergymen,infrastructures,rivals.com,baroda,subplot,majlis,plano,clinching,connotation,carinae,savile,intercultural,transcriptional,sandstones,ailerons,annotations,impresario,heinkel,scriptural,intermodal,astrological,ribbed,northeastward,posited,boers,utilise,kalmar,phylum,breakwater,skype,textured,guideline,azeri,rimini,massed,subsidence,anomalous,wolfsburg,polyphonic,accrediting,vodacom,kirov,captaining,kelantan,logie,fervent,eamon,taper,bundeswehr,disproportionately,divination,slobodan,pundits,hispano,kinetics,reunites,makati,ceasing,statistician,amending,chiltern,eparchy,riverine,melanoma,narragansett,pagans,raged,toppled,breaching,zadar,holby,dacian,ochre,velodrome,disparities,amphoe,sedans,webpage,williamsport,lachlan,groton,baring,swastika,heliport,unwillingness,razorbacks,exhibitors,foodstuffs,impacting,tithe,appendages,dermot,subtypes,nurseries,balinese,simulating,stary,remakes,mundi,chautauqua,geologically,stockade,hakka,dilute,kalimantan,pahang,overlapped,fredericton,baha'u'llah,jahangir,damping,benefactors,shomali,triumphal,cieszyn,paradigms,shielded,reggaeton,maharishi,zambian,shearing,golestan,mirroring,partitioning,flyover,songbook,incandescent,merrimack,huguenots,sangeet,vulnerabilities,trademarked,drydock,tantric,honoris,queenstown,labelling,iterative,enlists,statesmen,anglicans,herge,qinghai,burgundian,islami,delineated,zhuge,aggregated,banknote,qatari,suitably,tapestries,asymptotic,charleroi,majorities,pyramidellidae,leanings,climactic,tahir,ramsar,suppressor,revisionist,trawler,ernakulam,penicillium,categorization,slits,entitlement,collegium,earths,benefice,pinochet,puritans,loudspeaker,stockhausen,eurocup,roskilde,alois,jaroslav,rhondda,boutiques,vigor,neurotransmitter,ansar,malden,ferdinando,sported,relented,intercession,camberwell,wettest,thunderbolts,positional,oriel,cloverleaf,penalized,shoshone,rajkumar,completeness,sharjah,chromosomal,belgians,woolen,ultrasonic,sequentially,boleyn,mordella,microsystems,initiator,elachista,mineralogy,rhododendron,integrals,compostela,hamza,sawmills,stadio,berlioz,maidens,stonework,yachting,tappeh,myocardial,laborer,workstations,costumed,nicaea,lanark,roundtable,mashhad,nablus,algonquian,stuyvesant,sarkar,heroines,diwan,laments,intonation,intrigues,almaty,feuded,grandes,algarve,rehabilitate,macrophages,cruciate,dismayed,heuristic,eliezer,kozhikode,covalent,finalised,dimorphism,yaroslavl,overtaking,leverkusen,middlebury,feeders,brookings,speculates,insoluble,lodgings,jozsef,cysteine,shenyang,habilitation,spurious,brainchild,mtdna,comique,albedo,recife,partick,broadening,shahi,orientated,himalaya,swabia,palme,mennonites,spokeswoman,conscripts,sepulchre,chartres,eurozone,scaffold,invertebrate,parishad,bagan,heian,watercolors,basse,supercomputer,commences,tarragona,plainfield,arthurian,functor,identically,murex,chronicling,pressings,burrowing,histoire,guayaquil,goalkeeping,differentiable,warburg,machining,aeneas,kanawha,holocene,ramesses,reprisal,qingdao,avatars,turkestan,cantatas,besieging,repudiated,teamsters,equipping,hydride,ahmadiyya,euston,bottleneck,computations,terengganu,kalinga,stela,rediscovery,'this,azhar,stylised,karelia,polyethylene,kansai,motorised,lounges,normalization,calculators,
1700s,goalkeepers,unfolded,commissary,cubism,vignettes,multiverse,heaters,briton,sparingly,childcare,thorium,plock,riksdag,eunuchs,catalysis,limassol,perce,uncensored,whitlam,ulmus,unites,mesopotamian,refraction,biodiesel,forza,fulda,unseated,mountbatten,shahrak,selenium,osijek,mimicking,antimicrobial,axons,simulcasting,donizetti,swabian,sportsmen,hafiz,neared,heraclius,locates,evaded,subcarpathian,bhubaneswar,negeri,jagannath,thaksin,aydin,oromo,lateran,goldsmiths,multiculturalism,cilia,mihai,evangelists,lorient,qajar,polygons,vinod,mechanised,anglophone,prefabricated,mosses,supervillain,airliners,biofuels,iodide,innovators,valais,wilberforce,logarithm,intelligentsia,dissipation,sanctioning,duchies,aymara,porches,simulators,mostar,telepathic,coaxial,caithness,burghs,fourths,stratification,joaquim,scribes,meteorites,monarchist,germination,vries,desiring,replenishment,istria,winemaking,tammany,troupes,hetman,lanceolate,pelagic,triptych,primeira,scant,outbound,hyphae,denser,bentham,basie,normale,executes,ladislaus,kontinental,herat,cruiserweight,activision,customization,manoeuvres,inglewood,northwood,waveform,investiture,inpatient,alignments,kiryat,rabat,archimedes,ustad,monsanto,archetypal,kirkby,sikhism,correspondingly,catskill,overlaid,petrels,widowers,unicameral,federalists,metalcore,gamerankings,mussel,formula_34,lymphocytes,cystic,southgate,vestiges,immortals,kalam,strove,amazons,pocono,sociologists,sopwith,adheres,laurens,caregivers,inspecting,transylvanian,rebroadcast,rhenish,miserables,pyrams,blois,newtonian,carapace,redshirt,gotland,nazir,unilever,distortions,linebackers,federalism,mombasa,lumen,bernoulli,favouring,aligarh,denounce,steamboats,dnieper,stratigraphic,synths,bernese,umass,icebreaker,guanajuato,heisenberg,boldly,diodes,ladakh,dogmatic,scriptwriter,maritimes,battlestar,symposia,adaptable,toluca,bhavan,nanking,ieyasu,picardy,soybean,adalbert,brompton,deutsches,brezhnev,glandular,laotian,hispanicized,ibadan,personification,dalit,yamuna,regio,dispensed,yamagata,zweibrucken,revising,fandom,stances,participle,flavours,khitan,vertebral,crores,mayaguez,dispensation,guntur,undefined,harpercollins,unionism,meena,leveling,philippa,refractory,telstra,judea,attenuation,pylons,elaboration,elegy,edging,gracillariidae,residencies,absentia,reflexive,deportations,dichotomy,stoves,sanremo,shimon,menachem,corneal,conifers,mordellidae,facsimile,diagnoses,cowper,citta,viticulture,divisive,riverview,foals,mystics,polyhedron,plazas,airspeed,redgrave,motherland,impede,multiplicity,barrichello,airships,pharmacists,harvester,clays,payloads,differentiating,popularize,caesars,tunneling,stagnant,circadian,indemnity,sensibilities,musicology,prefects,serfs,metra,lillehammer,carmarthenshire,kiosks,welland,barbican,alkyl,tillandsia,gatherers,asociacion,showings,bharati,brandywine,subversion,scalable,pfizer,dawla,barium,dardanelles,nsdap,konig,ayutthaya,hodgkin,sedimentation,completions,purchasers,sponsorships,maximizing,banked,taoism,minot,enrolls,fructose,aspired,capuchin,outages,artois,carrollton,totality,osceola,pawtucket,fontainebleau,converged,queretaro,competencies,botha,allotments,sheaf,shastri,obliquely,banding,catharines,outwardly,monchengladbach,driest,contemplative,cassini,ranga,pundit,kenilworth,tiananmen,disulfide,formula_35,townlands,codice_3,looping,caravans,rachmaninoff,segmentation,fluorine,anglicised,gnostic,dessau,discern,reconfigured,altrincham,rebounding,battlecruiser,ramblers,
1770s,convective,triomphe,miyagi,mourners,instagram,aloft,breastfeeding,courtyards,folkestone,changsha,kumamoto,saarland,grayish,provisionally,appomattox,uncial,classicism,mahindra,elapsed,supremes,monophyletic,cautioned,formula_36,noblewoman,kernels,sucre,swaps,bengaluru,grenfell,epicenter,rockhampton,worshipful,licentiate,metaphorical,malankara,amputated,wattle,palawan,tankobon,nobunaga,polyhedra,transduction,jilin,syrians,affinities,fluently,emanating,anglicized,sportscar,botanists,altona,dravida,chorley,allocations,kunming,luanda,premiering,outlived,mesoamerica,lingual,dissipating,impairments,attenborough,balustrade,emulator,bakhsh,cladding,increments,ascents,workington,qal'eh,winless,categorical,petrel,emphasise,dormer,toros,hijackers,telescopic,solidly,jankovic,cession,gurus,madoff,newry,subsystems,northside,talib,englishmen,farnese,holographic,electives,argonne,scrivener,predated,brugge,nauvoo,catalyses,soared,siddeley,graphically,powerlifting,funicular,sungai,coercive,fusing,uncertainties,locos,acetic,diverge,wedgwood,dressings,tiebreaker,didactic,vyacheslav,acreage,interplanetary,battlecruisers,sunbury,alkaloids,hairpin,automata,wielkie,interdiction,plugins,monkees,nudibranch,esporte,approximations,disabling,powering,characterisation,ecologically,martinsville,termen,perpetuated,lufthansa,ascendancy,motherboard,bolshoi,athanasius,prunus,dilution,invests,nonzero,mendocino,charan,banque,shaheed,counterculture,unita,voivode,hospitalization,vapour,supermarine,resistor,steppes,osnabruck,intermediates,benzodiazepines,sunnyside,privatized,geopolitical,ponta,beersheba,kievan,embody,theoretic,sangh,cartographer,blige,rotors,thruway,battlefields,discernible,demobilized,broodmare,colouration,sagas,policymakers,serialization,augmentation,hoare,frankfurter,transnistria,kinases,detachable,generational,converging,antiaircraft,khaki,bimonthly,coadjutor,arkhangelsk,kannur,buffers,livonian,northwich,enveloped,cysts,yokozuna,herne,beeching,enron,virginian,woollen,excepting,competitively,outtakes,recombinant,hillcrest,clearances,pathe,cumbersome,brasov,u.s.a,likud,christiania,cruciform,hierarchies,wandsworth,lupin,resins,voiceover,sitar,electrochemical,mediacorp,typhus,grenadiers,hepatic,pompeii,weightlifter,bosniak,oxidoreductase,undersecretary,rescuers,ranji,seleucid,analysing,exegesis,tenancy,toure,kristiansand,
110th,carillon,minesweepers,poitou,acceded,palladian,redevelop,naismith,rifled,proletariat,shojo,hackensack,harvests,endpoint,kuban,rosenborg,stonehenge,authorisation,jacobean,revocation,compatriots,colliding,undetermined,okayama,acknowledgment,angelou,fresnel,chahar,ethereal,mg/kg,emmet,mobilised,unfavourable,cultura,characterizing,parsonage,skeptics,expressways,rabaul,medea,guardsmen,visakhapatnam,caddo,homophobic,elmwood,encircling,coexistence,contending,seljuk,mycologist,infertility,moliere,insolvent,covenants,underpass,holme,landesliga,workplaces,delinquency,methamphetamine,contrived,tableau,tithes,overlying,usurped,contingents,spares,oligocene,molde,beatification,mordechai,balloting,pampanga,navigators,flowered,debutant,codec,orogeny,newsletters,solon,ambivalent,ubisoft,archdeaconry,harpers,kirkus,jabal,castings,kazhagam,sylhet,yuwen,barnstaple,amidships,causative,isuzu,watchtower,granules,canaveral,remuneration,insurer,payout,horizonte,integrative,attributing,kiwis,skanderbeg,asymmetry,gannett,urbanism,disassembled,unaltered,precluded,melodifestivalen,ascends,plugin,gurkha,bisons,stakeholder,industrialisation,abbotsford,sextet,bustling,uptempo,slavia,choreographers,midwives,haram,javed,gazetteer,subsection,natively,weighting,lysine,meera,redbridge,muchmusic,abruzzo,adjoins,unsustainable,foresters,kbit/s,cosmopterigidae,secularism,poetics,causality,phonograph,estudiantes,ceausescu,universitario,adjoint,applicability,gastropods,nagaland,kentish,mechelen,atalanta,woodpeckers,lombards,gatineau,romansh,avraham,acetylcholine,perturbation,galois,wenceslaus,fuzhou,meandering,dendritic,sacristy,accented,katha,therapeutics,perceives,unskilled,greenhouses,analogues,chaldean,timbre,sloped,volodymyr,sadiq,maghreb,monogram,rearguard,caucuses,mures,metabolite,uyezd,determinism,theosophical,corbet,gaels,disruptions,bicameral,ribosomal,wolseley,clarksville,watersheds,tarsi,radon,milanese,discontinuous,aristotelian,whistleblower,representational,hashim,modestly,localised,atrial,hazara,ravana,troyes,appointees,rubus,morningside,amity,aberdare,ganglia,wests,zbigniew,aerobatic,depopulated,corsican,introspective,twinning,hardtop,shallower,cataract,mesolithic,emblematic,graced,lubrication,republicanism,voronezh,bastions,meissen,irkutsk,oboes,hokkien,sprites,tenet,individualist,capitulated,oakville,dysentery,orientalist,hillsides,keywords,elicited,incised,lagging,apoel,lengthening,attractiveness,marauders,sportswriter,decentralization,boltzmann,contradicts,draftsman,precipitate,solihull,norske,consorts,hauptmann,riflemen,adventists,syndromes,demolishing,customize,continuo,peripherals,seamlessly,linguistically,bhushan,orphanages,paraul,lessened,devanagari,quarto,responders,patronymic,riemannian,altoona,canonization,honouring,geodetic,exemplifies,republica,enzymatic,porters,fairmount,pampa,sufferers,kamchatka,conjugated,coachella,uthman,repositories,copious,headteacher,awami,phoneme,homomorphism,franconian,moorland,davos,quantified,kamloops,quarks,mayoralty,weald,peacekeepers,valerian,particulate,insiders,perthshire,caches,guimaraes,piped,grenadines,kosciuszko,trombonist,artemisia,covariance,intertidal,soybeans,beatified,ellipse,fruiting,deafness,dnipropetrovsk,accrued,zealous,mandala,causation,junius,kilowatt,bakeries,montpelier,airdrie,rectified,bungalows,toleration,debian,pylon,trotskyist,posteriorly,two-and-a-half,herbivorous,islamists,poetical,donne,wodehouse,frome,allium,assimilate,phonemic,minaret,unprofitable,darpa,untenable,leaflet,bitcoin,zahir,thresholds,argentino,jacopo,bespoke,stratified,wellbeing,shiite,basaltic,timberwolves,secrete,taunts,marathons,isomers,carre,consecrators,penobscot,pitcairn,sakha,crosstown,inclusions,impassable,fenders,indre,uscgc,jordi,retinue,logarithmic,pilgrimages,railcar,cashel,blackrock,macroscopic,aligning,tabla,trestle,certify,ronson,palps,dissolves,thickened,silicate,taman,walsingham,hausa,lowestoft,rondo,oleksandr,cuyahoga,retardation,countering,cricketing,holborn,identifiers,hells,geophysics,infighting,sculpting,balaji,webbed,irradiation,runestone,trusses,oriya,sojourn,forfeiture,colonize,exclaimed,eucharistic,lackluster,glazing,northridge,gutenberg,stipulates,macroeconomic,priori,outermost,annular,udinese,insulating,headliner,godel,polytope,megalithic,salix,sharapova,derided,muskegon,braintree,plateaus,confers,autocratic,isomer,interstitial,stamping,omits,kirtland,hatchery,evidences,intifada,
111th,podgorica,capua,motivating,nuneaton,jakub,korsakov,amitabh,mundial,monrovia,gluten,predictor,marshalling,d'orleans,levers,touchscreen,brantford,fricative,banishment,descendent,antagonism,ludovico,loudspeakers,formula_37,livelihoods,manassas,steamships,dewsbury,uppermost,humayun,lures,pinnacles,dependents,lecce,clumps,observatories,paleozoic,dedicating,samiti,draughtsman,gauls,incite,infringing,nepean,pythagorean,convents,triumvirate,seigneur,gaiman,vagrant,fossa,byproduct,serrated,renfrewshire,sheltering,achaemenid,dukedom,catchers,sampdoria,platelet,bielefeld,fluctuating,phenomenology,strikeout,ethnology,prospectors,woodworking,tatra,wildfires,meditations,agrippa,fortescue,qureshi,wojciech,methyltransferase,accusative,saatchi,amerindian,volcanism,zeeland,toyama,vladimirovich,allege,polygram,redox,budgeted,advisories,nematode,chipset,starscream,tonbridge,hardening,shales,accompanist,paraded,phonographic,whitefish,sportive,audiobook,kalisz,hibernation,latif,duels,ps200,coxeter,nayak,safeguarding,cantabria,minesweeping,zeiss,dunams,catholicos,sawtooth,ontological,nicobar,bridgend,unclassified,intrinsically,hanoverian,rabbitohs,kenseth,alcalde,northumbrian,raritan,septuagint,presse,sevres,origen,dandenong,peachtree,intersected,impeded,usages,hippodrome,novara,trajectories,customarily,yardage,inflected,yanow,kalan,taverns,liguria,librettist,intermarriage,
1760s,courant,gambier,infanta,ptolemaic,ukulele,haganah,sceptical,manchukuo,plexus,implantation,hilal,intersex,efficiencies,arbroath,hagerstown,adelphi,diario,marais,matti,lifes,coining,modalities,divya,bletchley,conserving,ivorian,mithridates,generative,strikeforce,laymen,toponymy,pogrom,satya,meticulously,agios,dufferin,yaakov,fortnightly,cargoes,deterrence,prefrontal,przemysl,mitterrand,commemorations,chatsworth,gurdwara,abuja,chakraborty,badajoz,geometries,artiste,diatonic,ganglion,presides,marymount,nanak,cytokines,feudalism,storks,rowers,widens,politico,evangelicals,assailants,pittsfield,allowable,bijapur,telenovelas,dichomeris,glenelg,herbivores,keita,inked,radom,fundraisers,constantius,boheme,portability,komnenos,crystallography,derrida,moderates,tavistock,fateh,spacex,disjoint,bristles,commercialized,interwoven,empirically,regius,bulacan,newsday,showa,radicalism,yarrow,pleura,sayed,structuring,cotes,reminiscences,acetyl,edicts,escalators,aomori,encapsulated,legacies,bunbury,placings,fearsome,postscript,powerfully,keighley,hildesheim,amicus,crevices,deserters,benelux,aurangabad,freeware,ioannis,carpathians,chirac,seceded,prepaid,landlocked,naturalised,yanukovych,soundscan,blotch,phenotypic,determinants,twente,dictatorial,giessen,composes,recherche,pathophysiology,inventories,ayurveda,elevating,gravestone,degeneres,vilayet,popularizing,spartanburg,bloemfontein,previewed,renunciation,genotype,ogilvy,tracery,blacklisted,emissaries,diploid,disclosures,tupolev,shinjuku,antecedents,pennine,braganza,bhattacharya,countable,spectroscopic,ingolstadt,theseus,corroborated,compounding,thrombosis,extremadura,medallions,hasanabad,lambton,perpetuity,glycol,besancon,palaiologos,pandey,caicos,antecedent,stratum,laserdisc,novitiate,crowdfunding,palatal,sorceress,dassault,toughness,celle,cezanne,vientiane,tioga,hander,crossbar,gisborne,cursor,inspectorate,serif,praia,sphingidae,nameplate,psalter,ivanovic,sitka,equalised,mutineers,sergius,outgrowth,creationism,haredi,rhizomes,predominate,undertakings,vulgate,hydrothermal,abbeville,geodesic,kampung,physiotherapy,unauthorised,asteraceae,conservationist,minoan,supersport,mohammadabad,cranbrook,mentorship,legitimately,marshland,datuk,louvain,potawatomi,carnivores,levies,lyell,hymnal,regionals,tinto,shikoku,conformal,wanganui,beira,lleida,standstill,deloitte,formula_40,corbusier,chancellery,mixtapes,airtime,muhlenberg,formula_39,bracts,thrashers,prodigious,gironde,chickamauga,uyghurs,substitutions,pescara,batangas,gregarious,gijon,paleo,mathura,pumas,proportionally,hawkesbury,yucca,kristiania,funimation,fluted,eloquence,mohun,aftermarket,chroniclers,futurist,nonconformist,branko,mannerisms,lesnar,opengl,altos,retainers,ashfield,shelbourne,sulaiman,divisie,gwent,locarno,lieder,minkowski,bivalve,redeployed,cartography,seaway,bookings,decays,ostend,antiquaries,pathogenesis,formula_38,chrysalis,esperance,valli,motogp,homelands,bridged,bloor,ghazal,vulgaris,baekje,prospector,calculates,debtors,hesperiidae,titian,returner,landgrave,frontenac,kelowna,pregame,castelo,caius,canoeist,watercolours,winterthur,superintendents,dissonance,dubstep,adorn,matic,salih,hillel,swordsman,flavoured,emitter,assays,monongahela,deeded,brazzaville,sufferings,babylonia,fecal,umbria,astrologer,gentrification,frescos,phasing,zielona,ecozone,candido,manoj,quadrilateral,gyula,falsetto,prewar,puntland,infinitive,contraceptive,bakhtiari,ohrid,socialization,tailplane,evoking,havelock,macapagal,plundering,
104th,keynesian,templars,phrasing,morphologically,czestochowa,humorously,catawba,burgas,chiswick,ellipsoid,kodansha,inwards,gautama,katanga,orthopaedic,heilongjiang,sieges,outsourced,subterminal,vijayawada,hares,oration,leitrim,ravines,manawatu,cryogenic,tracklisting,about.com,ambedkar,degenerated,hastened,venturing,lobbyists,shekhar,typefaces,northcote,rugen,'good,ornithology,asexual,hemispheres,unsupported,glyphs,spoleto,epigenetic,musicianship,donington,diogo,kangxi,bisected,polymorphism,megawatt,salta,embossed,cheetahs,cruzeiro,unhcr,aristide,rayleigh,maturing,indonesians,noire,llano,ffffff,camus,purges,annales,convair,apostasy,algol,phage,apaches,marketers,aldehyde,pompidou,kharkov,forgeries,praetorian,divested,retrospectively,gornji,scutellum,bitumen,pausanias,magnification,imitations,nyasaland,geographers,floodlights,athlone,hippolyte,expositions,clarinetist,razak,neutrinos,rotax,sheykh,plush,interconnect,andalus,cladogram,rudyard,resonator,granby,blackfriars,placido,windscreen,sahel,minamoto,haida,cations,emden,blackheath,thematically,blacklist,pawel,disseminating,academical,undamaged,raytheon,harsher,powhatan,ramachandran,saddles,paderborn,capping,zahra,prospecting,glycine,chromatin,profane,banska,helmand,okinawan,dislocation,oscillators,insectivorous,foyle,gilgit,autonomic,tuareg,sluice,pollinated,multiplexed,granary,narcissus,ranchi,staines,nitra,goalscoring,midwifery,pensioners,algorithmic,meetinghouse,biblioteca,besar,narva,angkor,predate,lohan,cyclical,detainee,occipital,eventing,faisalabad,dartmoor,kublai,courtly,resigns,radii,megachilidae,cartels,shortfall,xhosa,unregistered,benchmarks,dystopian,bulkhead,ponsonby,jovanovic,accumulates,papuan,bhutanese,intuitively,gotaland,headliners,recursion,dejan,novellas,diphthongs,imbued,withstood,analgesic,amplify,powertrain,programing,maidan,alstom,affirms,eradicated,summerslam,videogame,molla,severing,foundered,gallium,atmospheres,desalination,shmuel,howmeh,catolica,bossier,reconstructing,isolates,lyase,tweets,unconnected,tidewater,divisible,cohorts,orebro,presov,furnishing,folklorist,simplifying,centrale,notations,factorization,monarchies,deepen,macomb,facilitation,hennepin,declassified,redrawn,microprocessors,preliminaries,enlarging,timeframe,deutschen,shipbuilders,patiala,ferrous,aquariums,genealogies,vieux,unrecognized,bridgwater,tetrahedral,thule,resignations,gondwana,registries,agder,dataset,felled,parva,analyzer,worsen,coleraine,columella,blockaded,polytechnique,reassembled,reentry,narvik,greys,nigra,knockouts,bofors,gniezno,slotted,hamasaki,ferrers,conferring,thirdly,domestication,photojournalist,universality,preclude,ponting,halved,thereupon,photosynthetic,ostrava,mismatch,pangasinan,intermediaries,abolitionists,transited,headings,ustase,radiological,interconnection,dabrowa,invariants,honorius,preferentially,chantilly,marysville,dialectical,antioquia,abstained,gogol,dirichlet,muricidae,symmetries,reproduces,brazos,fatwa,bacillus,ketone,paribas,chowk,multiplicative,dermatitis,mamluks,devotes,adenosine,newbery,meditative,minefields,inflection,oxfam,conwy,bystrica,imprints,pandavas,infinitesimal,conurbation,amphetamine,reestablish,furth,edessa,injustices,frankston,serjeant,
4x200,khazar,sihanouk,longchamp,stags,pogroms,coups,upperparts,endpoints,infringed,nuanced,summing,humorist,pacification,ciaran,jamaat,anteriorly,roddick,springboks,faceted,hypoxia,rigorously,cleves,fatimid,ayurvedic,tabled,ratna,senhora,maricopa,seibu,gauguin,holomorphic,campgrounds,amboy,coordinators,ponderosa,casemates,ouachita,nanaimo,mindoro,zealander,rimsky,cluny,tomaszow,meghalaya,caetano,tilak,roussillon,landtag,gravitation,dystrophy,cephalopods,trombones,glens,killarney,denominated,anthropogenic,pssas,roubaix,carcasses,montmorency,neotropical,communicative,rabindranath,ordinated,separable,overriding,surged,sagebrush,conciliation,codice_4,durrani,phosphatase,qadir,votive,revitalized,taiyuan,tyrannosaurus,graze,slovaks,nematodes,environmentalism,blockhouse,illiteracy,schengen,ecotourism,alternation,conic,wields,hounslow,blackfoot,kwame,ambulatory,volhynia,hordaland,croton,piedras,rohit,drava,conceptualized,birla,illustrative,gurgaon,barisal,tutsi,dezong,nasional,polje,chanson,clarinets,krasnoyarsk,aleksandrovich,cosmonaut,d'este,palliative,midseason,silencing,wardens,durer,girders,salamanders,torrington,supersonics,lauda,farid,circumnavigation,embankments,funnels,bajnoksag,lorries,cappadocia,jains,warringah,retirees,burgesses,equalization,cusco,ganesan,algal,amazonian,lineups,allocating,conquerors,usurper,mnemonic,predating,brahmaputra,ahmadabad,maidenhead,numismatic,subregion,encamped,reciprocating,freebsd,irgun,tortoises,governorates,zionists,airfoil,collated,ajmer,fiennes,etymological,polemic,chadian,clerestory,nordiques,fluctuated,calvados,oxidizing,trailhead,massena,quarrels,dordogne,tirunelveli,pyruvate,pulsed,athabasca,sylar,appointee,serer,japonica,andronikos,conferencing,nicolaus,chemin,ascertained,incited,woodbine,helices,hospitalised,emplacements,to/from,orchestre,tyrannical,pannonia,methodism,pop/rock,shibuya,berbers,despot,seaward,westpac,separator,perpignan,alamein,judeo,publicize,quantization,ethniki,gracilis,menlo,offside,oscillating,unregulated,succumbing,finnmark,metrical,suleyman,raith,sovereigns,bundesstrasse,kartli,fiduciary,darshan,foramen,curler,concubines,calvinism,larouche,bukhara,sophomores,mohanlal,lutheranism,monomer,eamonn,'black,uncontested,immersive,tutorials,beachhead,bindings,permeable,postulates,comite,transformative,indiscriminate,hofstra,associacao,amarna,dermatology,lapland,aosta,babur,unambiguous,formatting,schoolboys,gwangju,superconducting,replayed,adherent,aureus,compressors,forcible,spitsbergen,boulevards,budgeting,nossa,annandale,perumal,interregnum,sassoon,kwajalein,greenbrier,caldas,triangulation,flavius,increment,shakhtar,nullified,pinfall,nomen,microfinance,depreciation,cubist,steeper,splendour,gruppe,everyman,chasers,campaigners,bridle,modality,percussive,darkly,capes,velar,picton,triennial,factional,padang,toponym,betterment,norepinephrine,
112th,estuarine,diemen,warehousing,morphism,ideologically,pairings,immunization,crassus,exporters,sefer,flocked,bulbous,deseret,booms,calcite,bohol,elven,groot,pulau,citigroup,wyeth,modernizing,layering,pastiche,complies,printmaker,condenser,theropod,cassino,oxyrhynchus,akademie,trainings,lowercase,coxae,parte,chetniks,pentagonal,keselowski,monocoque,morsi,reticulum,meiosis,clapboard,recoveries,tinge,an/fps,revista,sidon,livre,epidermis,conglomerates,kampong,congruent,harlequins,tergum,simplifies,epidemiological,underwriting,tcp/ip,exclusivity,multidimensional,mysql,columbine,ecologist,hayat,sicilies,levees,handset,aesop,usenet,pacquiao,archiving,alexandrian,compensatory,broadsheet,annotation,bahamian,d'affaires,interludes,phraya,shamans,marmara,customizable,immortalized,ambushes,chlorophyll,diesels,emulsion,rheumatoid,voluminous,screenwriters,tailoring,sedis,runcorn,democratization,bushehr,anacostia,constanta,antiquary,sixtus,radiate,advaita,antimony,acumen,barristers,reichsbahn,ronstadt,symbolist,pasig,cursive,secessionist,afrikaner,munnetra,inversely,adsorption,syllabic,moltke,idioms,midline,olimpico,diphosphate,cautions,radziwill,mobilisation,copelatus,trawlers,unicron,bhaskar,financiers,minimalism,derailment,marxists,oireachtas,abdicate,eigenvalue,zafar,vytautas,ganguly,chelyabinsk,telluride,subordination,ferried,dived,vendee,pictish,dimitrov,expiry,carnation,cayley,magnitudes,lismore,gretna,sandwiched,unmasked,sandomierz,swarthmore,tetra,nanyang,pevsner,dehradun,mormonism,rashi,complying,seaplanes,ningbo,cooperates,strathcona,mornington,mestizo,yulia,edgbaston,palisade,ethno,polytopes,espirito,tymoshenko,pronunciations,paradoxical,taichung,chipmunks,erhard,maximise,accretion,kanda,`abdu'l,narrowest,umpiring,mycenaean,divisor,geneticist,ceredigion,barque,hobbyists,equates,auxerre,spinose,cheil,sweetwater,guano,carboxylic,archiv,tannery,cormorant,agonists,fundacion,anbar,tunku,hindrance,meerut,concordat,secunderabad,kachin,achievable,murfreesboro,comprehensively,forges,broadest,synchronised,speciation,scapa,aliyev,conmebol,tirelessly,subjugated,pillaged,udaipur,defensively,lakhs,stateless,haasan,headlamps,patterning,podiums,polyphony,mcmurdo,mujer,vocally,storeyed,mucosa,multivariate,scopus,minimizes,formalised,certiorari,bourges,populate,overhanging,gaiety,unreserved,borromeo,woolworths,isotopic,bashar,purify,vertebra,medan,juxtaposition,earthwork,elongation,chaudhary,schematic,piast,steeped,nanotubes,fouls,achaea,legionnaires,abdur,qmjhl,embraer,hardback,centerville,ilocos,slovan,whitehorse,mauritian,moulding,mapuche,donned,provisioning,gazprom,jonesboro,audley,lightest,calyx,coldwater,trigonometric,petroglyphs,psychoanalyst,congregate,zambezi,fissure,supervises,bexley,etobicoke,wairarapa,tectonics,emphasises,formula_41,debugging,linfield,spatially,ionizing,ungulates,orinoco,clades,erlangen,news/talk,vols.,ceara,yakovlev,finsbury,entanglement,fieldhouse,graphene,intensifying,grigory,keyong,zacatecas,ninian,allgemeine,keswick,societa,snorri,femininity,najib,monoclonal,guyanese,postulate,huntly,abbeys,machinist,yunus,emphasising,ishaq,urmia,bremerton,pretenders,lumiere,thoroughfares,chikara,dramatized,metathorax,taiko,transcendence,wycliffe,retrieves,umpired,steuben,racehorses,taylors,kuznetsov,montezuma,precambrian,canopies,gaozong,propodeum,disestablished,retroactive,shoreham,rhizome,doubleheader,clinician,diwali,quartzite,shabaab,agassiz,despatched,stormwater,luxemburg,callao,universidade,courland,skane,glyph,dormers,witwatersrand,curacy,qualcomm,nansen,entablature,lauper,hausdorff,lusaka,ruthenian,
360deg,cityscape,douai,vaishnava,spars,vaulting,rationalist,gygax,sequestration,typology,pollinates,accelerators,leben,colonials,cenotaph,imparted,carthaginians,equaled,rostrum,gobind,bodhisattva,oberst,bicycling,arabi,sangre,biophysics,hainaut,vernal,lunenburg,apportioned,finches,lajos,nenad,repackaged,zayed,nikephoros,r.e.m,swaminarayan,gestalt,unplaced,crags,grohl,sialkot,unsaturated,gwinnett,linemen,forays,palakkad,writs,instrumentalists,aircrews,badged,terrapins,
180deg,oneness,commissariat,changi,pupation,circumscribed,contador,isotropic,administrated,fiefs,nimes,intrusions,minoru,geschichte,nadph,tainan,changchun,carbondale,frisia,swapo,evesham,hawai'i,encyclopedic,transporters,dysplasia,formula_42,onsite,jindal,guetta,judgements,narbonne,permissions,paleogene,rationalism,vilna,isometric,subtracted,chattahoochee,lamina,missa,greville,pervez,lattices,persistently,crystallization,timbered,hawaiians,fouling,interrelated,masood,ripening,stasi,gamal,visigothic,warlike,cybernetics,tanjung,forfar,cybernetic,karelian,brooklands,belfort,greifswald,campeche,inexplicably,refereeing,understory,uninterested,prius,collegiately,sefid,sarsfield,categorize,biannual,elsevier,eisteddfod,declension,autonoma,procuring,misrepresentation,novelization,bibliographic,shamanism,vestments,potash,eastleigh,ionized,turan,lavishly,scilly,balanchine,importers,parlance,'that,kanyakumari,synods,mieszko,crossovers,serfdom,conformational,legislated,exclave,heathland,sadar,differentiates,propositional,konstantinos,photoshop,manche,vellore,appalachia,orestes,taiga,exchanger,grozny,invalidated,baffin,spezia,staunchly,eisenach,robustness,virtuosity,ciphers,inlets,bolagh,understandings,bosniaks,parser,typhoons,sinan,luzerne,webcomic,subtraction,jhelum,businessweek,ceske,refrained,firebox,mitigated,helmholtz,dilip,eslamabad,metalwork,lucan,apportionment,provident,gdynia,schooners,casement,danse,hajjiabad,benazir,buttress,anthracite,newsreel,wollaston,dispatching,cadastral,riverboat,provincetown,nantwich,missal,irreverent,juxtaposed,darya,ennobled,electropop,stereoscopic,maneuverability,laban,luhansk,udine,collectibles,haulage,holyrood,materially,supercharger,gorizia,shkoder,townhouses,pilate,layoffs,folkloric,dialectic,exuberant,matures,malla,ceuta,citizenry,crewed,couplet,stopover,transposition,tradesmen,antioxidant,amines,utterance,grahame,landless,isere,diction,appellant,satirist,urbino,intertoto,subiaco,antonescu,nehemiah,ubiquitin,emcee,stourbridge,fencers,
103rd,wranglers,monteverdi,watertight,expounded,xiamen,manmohan,pirie,threefold,antidepressant,sheboygan,grieg,cancerous,diverging,bernini,polychrome,fundamentalism,bihari,critiqued,cholas,villers,tendulkar,dafydd,vastra,fringed,evangelization,episcopalian,maliki,sana'a,ashburton,trianon,allegany,heptathlon,insufficiently,panelists,pharrell,hexham,amharic,fertilized,plumes,cistern,stratigraphy,akershus,catalans,karoo,rupee,minuteman,quantification,wigmore,leutnant,metanotum,weeknights,iridescent,extrasolar,brechin,deuterium,kuching,lyricism,astrakhan,brookhaven,euphorbia,hradec,bhagat,vardar,aylmer,positron,amygdala,speculators,unaccompanied,debrecen,slurry,windhoek,disaffected,rapporteur,mellitus,blockers,fronds,yatra,sportsperson,precession,physiologist,weeknight,pidgin,pharma,condemns,standardize,zetian,tibor,glycoprotein,emporia,cormorants,amalie,accesses,leonhard,denbighshire,roald,
116th,will.i.am,symbiosis,privatised,meanders,chemnitz,jabalpur,shing,secede,ludvig,krajina,homegrown,snippets,sasanian,euripides,peder,cimarron,streaked,graubunden,kilimanjaro,mbeki,middleware,flensburg,bukovina,lindwall,marsalis,profited,abkhaz,polis,camouflaged,amyloid,morgantown,ovoid,bodleian,morte,quashed,gamelan,juventud,natchitoches,storyboard,freeview,enumeration,cielo,preludes,bulawayo,
1600s,olympiads,multicast,faunal,asura,reinforces,puranas,ziegfeld,handicraft,seamount,kheil,noche,hallmarks,dermal,colorectal,encircle,hessen,umbilicus,sunnis,leste,unwin,disclosing,superfund,montmartre,refuelling,subprime,kolhapur,etiology,bismuth,laissez,vibrational,mazar,alcoa,rumsfeld,recurve,ticonderoga,lionsgate,onlookers,homesteads,filesystem,barometric,kingswood,biofuel,belleza,moshav,occidentalis,asymptomatic,northeasterly,leveson,huygens,numan,kingsway,primogeniture,toyotomi,yazoo,limpets,greenbelt,booed,concurrence,dihedral,ventrites,raipur,sibiu,plotters,kitab,
109th,trackbed,skilful,berthed,effendi,fairing,sephardi,mikhailovich,lockyer,wadham,invertible,paperbacks,alphabetic,deuteronomy,constitutive,leathery,greyhounds,estoril,beechcraft,poblacion,cossidae,excreted,flamingos,singha,olmec,neurotransmitters,ascoli,nkrumah,forerunners,dualism,disenchanted,benefitted,centrum,undesignated,noida,o'donoghue,collages,egrets,egmont,wuppertal,cleave,montgomerie,pseudomonas,srinivasa,lymphatic,stadia,resold,minima,evacuees,consumerism,ronde,biochemist,automorphism,hollows,smuts,improvisations,vespasian,bream,pimlico,eglin,colne,melancholic,berhad,ousting,saale,notaulices,ouest,hunslet,tiberias,abdomina,ramsgate,stanislas,donbass,pontefract,sucrose,halts,drammen,chelm,l'arc,taming,trolleys,konin,incertae,licensees,scythian,giorgos,dative,tanglewood,farmlands,o'keeffe,caesium,romsdal,amstrad,corte,oglethorpe,huntingdonshire,magnetization,adapts,zamosc,shooto,cuttack,centrepiece,storehouse,winehouse,morbidity,woodcuts,ryazan,buddleja,buoyant,bodmin,estero,austral,verifiable,periyar,christendom,curtail,shura,kaifeng,cotswold,invariance,seafaring,gorica,androgen,usman,seabird,forecourt,pekka,juridical,audacious,yasser,cacti,qianlong,polemical,d'amore,espanyol,distrito,cartographers,pacifism,serpents,backa,nucleophilic,overturning,duplicates,marksman,oriente,vuitton,oberleutnant,gielgud,gesta,swinburne,transfiguration,
1750s,retaken,celje,fredrikstad,asuka,cropping,mansard,donates,blacksmiths,vijayanagara,anuradhapura,germinate,betis,foreshore,jalandhar,bayonets,devaluation,frazione,ablaze,abidjan,approvals,homeostasis,corollary,auden,superfast,redcliffe,luxembourgish,datum,geraldton,printings,ludhiana,honoree,synchrotron,invercargill,hurriedly,
108th,three-and-a-half,colonist,bexar,limousin,bessemer,ossetian,nunataks,buddhas,rebuked,thais,tilburg,verdicts,interleukin,unproven,dordrecht,solent,acclamation,muammar,dahomey,operettas,
4x400,arrears,negotiators,whitehaven,apparitions,armoury,psychoactive,worshipers,sculptured,elphinstone,airshow,kjell,o'callaghan,shrank,professorships,predominance,subhash,coulomb,sekolah,retrofitted,samos,overthrowing,vibrato,resistors,palearctic,datasets,doordarshan,subcutaneous,compiles,immorality,patchwork,trinidadian,glycogen,pronged,zohar,visigoths,freres,akram,justo,agora,intakes,craiova,playwriting,bukhari,militarism,iwate,petitioners,harun,wisla,inefficiency,vendome,ledges,schopenhauer,kashi,entombed,assesses,tenn.,noumea,baguio,carex,o'donovan,filings,hillsdale,conjectures,blotches,annuals,lindisfarne,negated,vivek,angouleme,trincomalee,cofactor,verkhovna,backfield,twofold,automaker,rudra,freighters,darul,gharana,busway,formula_43,plattsburgh,portuguesa,showrunner,roadmap,valenciennes,erdos,biafra,spiritualism,transactional,modifies,carne,
107th,cocos,gcses,tiverton,radiotherapy,meadowlands,gunma,srebrenica,foxtel,authenticated,enslavement,classicist,klaipeda,minstrels,searchable,infantrymen,incitement,shiga,nadp+,urals,guilders,banquets,exteriors,counterattacks,visualized,diacritics,patrimony,svensson,transepts,prizren,telegraphy,najaf,emblazoned,coupes,effluent,ragam,omani,greensburg,taino,flintshire,cd/dvd,lobbies,narrating,cacao,seafarers,bicolor,collaboratively,suraj,floodlit,sacral,puppetry,tlingit,malwa,login,motionless,thien,overseers,vihar,golem,specializations,bathhouse,priming,overdubs,winningest,archetypes,uniao,acland,creamery,slovakian,lithographs,maryborough,confidently,excavating,stillborn,ramallah,audiencia,alava,ternary,hermits,rostam,bauxite,gawain,lothair,captions,gulfstream,timelines,receded,mediating,petain,bastia,rudbar,bidders,disclaimer,shrews,tailings,trilobites,yuriy,jamil,demotion,gynecology,rajinikanth,madrigals,ghazni,flycatchers,vitebsk,bizet,computationally,kashgar,refinements,frankford,heralds,europe/africa,levante,disordered,sandringham,queues,ransacked,trebizond,verdes,comedie,primitives,figurine,organists,culminate,gosport,coagulation,ferrying,hoyas,polyurethane,prohibitive,midfielders,ligase,progesterone,defectors,sweetened,backcountry,diodorus,waterside,nieuport,khwaja,jurong,decried,gorkha,ismaili,
300th,octahedral,kindergartens,paseo,codification,notifications,disregarding,risque,reconquista,shortland,atolls,texarkana,perceval,d'etudes,kanal,herbicides,tikva,nuova,gatherer,dissented,soweto,dexterity,enver,bacharach,placekicker,carnivals,automate,maynooth,symplectic,chetnik,militaire,upanishads,distributive,strafing,championing,moiety,miliband,blackadder,enforceable,maung,dimer,stadtbahn,diverges,obstructions,coleophoridae,disposals,shamrocks,aural,banca,bahru,coxed,grierson,vanadium,watermill,radiative,ecoregions,berets,hariri,bicarbonate,evacuations,mallee,nairn,rushden,loggia,slupsk,satisfactorily,milliseconds,cariboo,reine,cyclo,pigmentation,postmodernism,aqueducts,vasari,bourgogne,dilemmas,liquefied,fluminense,alloa,ibaraki,tenements,kumasi,humerus,raghu,labours,putsch,soundcloud,bodybuilder,rakyat,domitian,pesaro,translocation,sembilan,homeric,enforcers,tombstones,lectureship,rotorua,salamis,nikolaos,inferences,superfortress,lithgow,surmised,undercard,tarnow,barisan,stingrays,federacion,coldstream,haverford,ornithological,heerenveen,eleazar,jyoti,murali,bamako,riverbed,subsidised,theban,conspicuously,vistas,conservatorium,madrasa,kingfishers,arnulf,credential,syndicalist,sheathed,discontinuity,prisms,tsushima,coastlines,escapees,vitis,optimizing,megapixel,overground,embattled,halide,sprinters,buoys,mpumalanga,peculiarities,
106th,roamed,menezes,macao,prelates,papyri,freemen,dissertations,irishmen,pooled,sverre,reconquest,conveyance,subjectivity,asturian,circassian,formula_45,comdr,thickets,unstressed,monro,passively,harmonium,moveable,dinar,carlsson,elysees,chairing,b'nai,confusingly,kaoru,convolution,godolphin,facilitator,saxophones,eelam,jebel,copulation,anions,livres,licensure,pontypridd,arakan,controllable,alessandria,propelling,stellenbosch,tiber,wolka,liberators,yarns,d'azur,tsinghua,semnan,amhara,ablation,melies,tonality,historique,beeston,kahne,intricately,sonoran,robespierre,gyrus,boycotts,defaulted,infill,maranhao,emigres,framingham,paraiba,wilhelmshaven,tritium,skyway,labial,supplementation,possessor,underserved,motets,maldivian,marrakech,quays,wikimedia,turbojet,demobilization,petrarch,encroaching,sloops,masted,karbala,corvallis,agribusiness,seaford,stenosis,hieronymus,irani,superdraft,baronies,cortisol,notability,veena,pontic,cyclin,archeologists,newham,culled,concurring,aeolian,manorial,shouldered,fords,philanthropists,
105th,siddharth,gotthard,halim,rajshahi,jurchen,detritus,practicable,earthenware,discarding,travelogue,neuromuscular,elkhart,raeder,zygmunt,metastasis,internees,
102nd,vigour,upmarket,summarizing,subjunctive,offsets,elizabethtown,udupi,pardubice,repeaters,instituting,archaea,substandard,technische,linga,anatomist,flourishes,velika,tenochtitlan,evangelistic,fitchburg,springbok,cascading,hydrostatic,avars,occasioned,filipina,perceiving,shimbun,africanus,consternation,tsing,optically,beitar,
45deg,abutments,roseville,monomers,huelva,lotteries,hypothalamus,internationalist,electromechanical,hummingbirds,fibreglass,salaried,dramatists,uncovers,invokes,earners,excretion,gelding,ancien,aeronautica,haverhill,stour,ittihad,abramoff,yakov,ayodhya,accelerates,industrially,aeroplanes,deleterious,dwelt,belvoir,harpalus,atpase,maluku,alasdair,proportionality,taran,epistemological,interferometer,polypeptide,adjudged,villager,metastatic,marshalls,madhavan,archduchess,weizmann,kalgoorlie,balan,predefined,sessile,sagaing,brevity,insecticide,psychosocial,africana,steelworks,aether,aquifers,belem,mineiro,almagro,radiators,cenozoic,solute,turbocharger,invicta,guested,buccaneer,idolatry,unmatched,paducah,sinestro,dispossessed,conforms,responsiveness,cyanobacteria,flautist,procurator,complementing,semifinalist,rechargeable,permafrost,cytokine,refuges,boomed,gelderland,franchised,jinan,burnie,doubtless,randomness,colspan=
12,angra,ginebra,famers,nuestro,declarative,roughness,lauenburg,motile,rekha,issuer,piney,interceptors,napoca,gipsy,formulaic,formula_44,viswanathan,ebrahim,thessalonica,galeria,muskogee,unsold,html5,taito,mobutu,icann,carnarvon,fairtrade,morphisms,upsilon,nozzles,fabius,meander,murugan,strontium,episcopacy,sandinista,parasol,attenuated,bhima,primeval,panay,ordinator,negara,osteoporosis,glossop,ebook,paradoxically,grevillea,modoc,equating,phonetically,legumes,covariant,dorje,quatre,bruxelles,pyroclastic,shipbuilder,zhaozong,obscuring,sveriges,tremolo,extensible,barrack,multnomah,hakon,chaharmahal,parsing,volumetric,astrophysical,glottal,combinatorics,freestanding,encoder,paralysed,cavalrymen,taboos,heilbronn,orientalis,lockport,marvels,ozawa,dispositions,waders,incurring,saltire,modulate,papilio,phenol,intermedia,rappahannock,plasmid,fortify,phenotypes,transiting,correspondences,leaguer,larnaca,incompatibility,mcenroe,deeming,endeavoured,aboriginals,helmed,salar,arginine,werke,ferrand,expropriated,delimited,couplets,phoenicians,petioles,ouster,anschluss,protectionist,plessis,urchins,orquesta,castleton,juniata,bittorrent,fulani,donji,mykola,rosemont,chandos,scepticism,signer,chalukya,wicketkeeper,coquitlam,programmatic,o'brian,carteret,urology,steelhead,paleocene,konkan,bettered,venkatesh,surfacing,longitudinally,centurions,popularization,yazid,douro,widths,premios,leonards,gristmill,fallujah,arezzo,leftists,ecliptic,glycerol,inaction,disenfranchised,acrimonious,depositing,parashah,cockatoo,marechal,bolzano,chios,cablevision,impartiality,pouches,thickly,equities,bentinck,emotive,boson,ashdown,conquistadors,parsi,conservationists,reductive,newlands,centerline,ornithologists,waveguide,nicene,philological,hemel,setanta,masala,aphids,convening,casco,matrilineal,chalcedon,orthographic,hythe,replete,damming,bolivarian,admixture,embarks,borderlands,conformed,nagarjuna,blenny,chaitanya,suwon,shigeru,tatarstan,lingayen,rejoins,grodno,merovingian,hardwicke,puducherry,prototyping,laxmi,upheavals,headquarter,pollinators,bromine,transom,plantagenet,arbuthnot,chidambaram,woburn,osamu,panelling,coauthored,zhongshu,hyaline,omissions,aspergillus,offensively,electrolytic,woodcut,sodom,intensities,clydebank,piotrkow,supplementing,quipped,focke,harbinger,positivism,parklands,wolfenbuttel,cauca,tryptophan,taunus,curragh,tsonga,remand,obscura,ashikaga,eltham,forelimbs,analogs,trnava,observances,kailash,antithesis,ayumi,abyssinia,dorsally,tralee,pursuers,misadventures,padova,perot,mahadev,tarim,granth,licenced,compania,patuxent,baronial,korda,cochabamba,codices,karna,memorialized,semaphore,playlists,mandibular,halal,sivaji,scherzinger,stralsund,foundries,ribosome,mindfulness,nikolayevich,paraphyletic,newsreader,catalyze,ioannina,thalamus,gbit/s,paymaster,sarab,
500th,replenished,gamepro,cracow,formula_46,gascony,reburied,lessing,easement,transposed,meurthe,satires,proviso,balthasar,unbound,cuckoos,durbar,louisbourg,cowes,wholesalers,manet,narita,xiaoping,mohamad,illusory,cathal,reuptake,alkaloid,tahrir,mmorpg,underlies,anglicanism,repton,aharon,exogenous,buchenwald,indigent,odostomia,milled,santorum,toungoo,nevsky,steyr,urbanisation,darkseid,subsonic,canaanite,akiva,eglise,dentition,mediators,cirencester,peloponnesian,malmesbury,durres,oerlikon,tabulated,saens,canaria,ischemic,esterhazy,ringling,centralization,walthamstow,nalanda,lignite,takht,leninism,expiring,circe,phytoplankton,promulgation,integrable,breeches,aalto,menominee,borgo,scythians,skrull,galleon,reinvestment,raglan,reachable,liberec,airframes,electrolysis,geospatial,rubiaceae,interdependence,symmetrically,simulcasts,keenly,mauna,adipose,zaidi,fairport,vestibular,actuators,monochromatic,literatures,congestive,sacramental,atholl,skytrain,tycho,tunings,jamia,catharina,modifier,methuen,tapings,infiltrating,colima,grafting,tauranga,halides,pontificate,phonetics,koper,hafez,grooved,kintetsu,extrajudicial,linkoping,cyberpunk,repetitions,laurentian,parnu,bretton,darko,sverdlovsk,foreshadowed,akhenaten,rehnquist,gosford,coverts,pragmatism,broadleaf,ethiopians,instated,mediates,sodra,opulent,descriptor,enugu,shimla,leesburg,officership,giffard,refectory,lusitania,cybermen,fiume,corus,tydfil,lawrenceville,ocala,leviticus,burghers,ataxia,richthofen,amicably,acoustical,watling,inquired,tiempo,multiracial,parallelism,trenchard,tokyopop,germanium,usisl,philharmonia,shapur,jacobites,latinized,sophocles,remittances,o'farrell,adder,dimitrios,peshwa,dimitar,orlov,outstretched,musume,satish,dimensionless,serialised,baptisms,pagasa,antiviral,
1740s,quine,arapaho,bombardments,stratosphere,ophthalmic,injunctions,carbonated,nonviolence,asante,creoles,sybra,boilermakers,abington,bipartite,permissive,cardinality,anheuser,carcinogenic,hohenlohe,surinam,szeged,infanticide,generically,floorball,'white,automakers,cerebellar,homozygous,remoteness,effortlessly,allude,'great,headmasters,minting,manchurian,kinabalu,wemyss,seditious,widgets,marbled,almshouses,bards,subgenres,tetsuya,faulting,kickboxer,gaulish,hoseyn,malton,fluvial,questionnaires,mondale,downplayed,traditionalists,vercelli,sumatran,landfills,gamesradar,exerts,franciszek,unlawfully,huesca,diderot,libertarians,professorial,laane,piecemeal,conidae,taiji,curatorial,perturbations,abstractions,szlachta,watercraft,mullah,zoroastrianism,segmental,khabarovsk,rectors,affordability,scuola,diffused,stena,cyclonic,workpiece,romford,'little,jhansi,stalag,zhongshan,skipton,maracaibo,bernadotte,thanet,groening,waterville,encloses,sahrawi,nuffield,moorings,chantry,annenberg,islay,marchers,tenses,wahid,siegen,furstenberg,basques,resuscitation,seminarians,tympanum,gentiles,vegetarianism,tufted,venkata,fantastical,pterophoridae,machined,superposition,glabrous,kaveri,chicane,executors,phyllonorycter,bidirectional,jasta,undertones,touristic,majapahit,navratilova,unpopularity,barbadian,tinian,webcast,hurdler,rigidly,jarrah,staphylococcus,igniting,irrawaddy,stabilised,airstrike,ragas,wakayama,energetically,ekstraklasa,minibus,largemouth,cultivators,leveraging,waitangi,carnaval,weaves,turntables,heydrich,sextus,excavate,govind,ignaz,pedagogue,uriah,borrowings,gemstones,infractions,mycobacterium,batavian,massing,praetor,subalpine,massoud,passers,geostationary,jalil,trainsets,barbus,impair,budejovice,denbigh,pertain,historicity,fortaleza,nederlandse,lamenting,masterchef,doubs,gemara,conductance,ploiesti,cetaceans,courthouses,bhagavad,mihailovic,occlusion,bremerhaven,bulwark,morava,kaine,drapery,maputo,conquistador,kaduna,famagusta,first-past-the-post,erudite,galton,undated,tangential,filho,dismembered,dashes,criterium,darwen,metabolized,blurring,everard,randwick,mohave,impurity,acuity,ansbach,chievo,surcharge,plantain,algoma,porosity,zirconium,selva,sevenoaks,venizelos,gwynne,golgi,imparting,separatism,courtesan,idiopathic,gravestones,hydroelectricity,babar,orford,purposeful,acutely,shard,ridgewood,viterbo,manohar,expropriation,placenames,brevis,cosine,unranked,richfield,newnham,recoverable,flightless,dispersing,clearfield,abu'l,stranraer,kempe,streamlining,goswami,epidermal,pieta,conciliatory,distilleries,electrophoresis,bonne,tiago,curiosities,candidature,picnicking,perihelion,lintel,povoa,gullies,configure,excision,facies,signers,
1730s,insufficiency,semiotics,streatham,deactivation,entomological,skippers,albacete,parodying,escherichia,honorees,singaporeans,counterterrorism,tiruchirappalli,omnivorous,metropole,globalisation,athol,unbounded,codice_5,landforms,classifier,farmhouses,reaffirming,reparation,yomiuri,technologists,mitte,medica,viewable,steampunk,konya,kshatriya,repelling,edgewater,lamiinae,devas,potteries,llandaff,engendered,submits,virulence,uplifted,educationist,metropolitans,frontrunner,dunstable,forecastle,frets,methodius,exmouth,linnean,bouchet,repulsion,computable,equalling,liceo,tephritidae,agave,hydrological,azarenka,fairground,l'homme,enforces,xinhua,cinematographers,cooperstown,sa'id,paiute,christianization,tempos,chippenham,insulator,kotor,stereotyped,dello,cours,hisham,d'souza,eliminations,supercars,passau,rebrand,natures,coote,persephone,rededicated,cleaved,plenum,blistering,indiscriminately,cleese,safed,recursively,compacted,revues,hydration,shillong,echelons,garhwal,pedimented,grower,zwolle,wildflower,annexing,methionine,petah,valens,famitsu,petiole,specialities,nestorian,shahin,tokaido,shearwater,barberini,kinsmen,experimenter,alumnae,cloisters,alumina,pritzker,hardiness,soundgarden,julich,ps300,watercourse,cementing,wordplay,olivet,demesne,chasseurs,amide,zapotec,gaozu,porphyry,absorbers,indium,analogies,devotions,engravers,limestones,catapulted,surry,brickworks,gotra,rodham,landline,paleontologists,shankara,islip,raucous,trollope,arpad,embarkation,morphemes,recites,picardie,nakhchivan,tolerances,formula_47,khorramabad,nichiren,adrianople,kirkuk,assemblages,collider,bikaner,bushfires,roofline,coverings,reredos,bibliotheca,mantras,accentuated,commedia,rashtriya,fluctuation,serhiy,referential,fittipaldi,vesicle,geeta,iraklis,immediacy,chulalongkorn,hunsruck,bingen,dreadnoughts,stonemason,meenakshi,lebesgue,undergrowth,baltistan,paradoxes,parlement,articled,tiflis,dixieland,meriden,tejano,underdogs,barnstable,exemplify,venter,tropes,wielka,kankakee,iskandar,zilina,pharyngeal,spotify,materialised,picts,atlantique,theodoric,prepositions,paramilitaries,pinellas,attlee,actuated,piedmontese,grayling,thucydides,multifaceted,unedited,autonomously,universelle,utricularia,mooted,preto,incubated,underlie,brasenose,nootka,bushland,sensu,benzodiazepine,esteghlal,seagoing,amenhotep,azusa,sappers,culpeper,smokeless,thoroughbreds,dargah,gorda,alumna,mankato,zdroj,deleting,culvert,formula_49,punting,wushu,hindering,immunoglobulin,standardisation,birger,oilfield,quadrangular,ulama,recruiters,netanya,
1630s,communaute,istituto,maciej,pathan,meher,vikas,characterizations,playmaker,interagency,intercepts,assembles,horthy,introspection,narada,matra,testes,radnicki,estonians,csiro,instar,mitford,adrenergic,crewmembers,haaretz,wasatch,lisburn,rangefinder,ordre,condensate,reforestation,corregidor,spvgg,modulator,mannerist,faulted,aspires,maktoum,squarepants,aethelred,piezoelectric,mulatto,dacre,progressions,jagiellonian,norge,samaria,sukhoi,effingham,coxless,hermetic,humanists,centrality,litters,stirlingshire,beaconsfield,sundanese,geometrically,caretakers,habitually,bandra,pashtuns,bradenton,arequipa,laminar,brickyard,hitchin,sustains,shipboard,ploughing,trechus,wheelers,bracketed,ilyushin,subotica,d'hondt,reappearance,bridgestone,intermarried,fulfilment,aphasia,birkbeck,transformational,strathmore,hornbill,millstone,lacan,voids,solothurn,gymnasiums,laconia,viaducts,peduncle,teachta,edgware,shinty,supernovae,wilfried,exclaim,parthia,mithun,flashpoint,moksha,cumbia,metternich,avalanches,militancy,motorist,rivadavia,chancellorsville,federals,gendered,bounding,footy,gauri,caliphs,lingam,watchmaker,unrecorded,riverina,unmodified,seafloor,droit,pfalz,chrysostom,gigabit,overlordship,besiege,espn2,oswestry,anachronistic,ballymena,reactivation,duchovny,ghani,abacetus,duller,legio,watercourses,nord-pas-de-calais,leiber,optometry,swarms,installer,sancti,adverbs,iheartmedia,meiningen,zeljko,kakheti,notional,circuses,patrilineal,acrobatics,infrastructural,sheva,oregonian,adjudication,aamir,wloclawek,overfishing,obstructive,subtracting,aurobindo,archeologist,newgate,'cause,secularization,tehsils,abscess,fingal,janacek,elkhorn,trims,kraftwerk,mandating,irregulars,faintly,congregationalist,sveti,kasai,mishaps,kennebec,provincially,durkheim,scotties,aicte,rapperswil,imphal,surrenders,morphs,nineveh,hoxha,cotabato,thuringian,metalworking,retold,shogakukan,anthers,proteasome,tippeligaen,disengagement,mockumentary,palatial,erupts,flume,corrientes,masthead,jaroslaw,rereleased,bharti,labors,distilling,tusks,varzim,refounded,enniskillen,melkite,semifinalists,vadodara,bermudian,capstone,grasse,origination,populus,alesi,arrondissements,semigroup,verein,opossum,messrs.,portadown,bulbul,tirupati,mulhouse,tetrahedron,roethlisberger,nonverbal,connexion,warangal,deprecated,gneiss,octet,vukovar,hesketh,chambre,despatch,claes,kargil,hideo,gravelly,tyndale,aquileia,tuners,defensible,tutte,theotokos,constructivist,ouvrage,dukla,polisario,monasticism,proscribed,commutation,testers,nipissing,codon,mesto,olivine,concomitant,exoskeleton,purports,coromandel,eyalet,dissension,hippocrates,purebred,yaounde,composting,oecophoridae,procopius,o'day,angiogenesis,sheerness,intelligencer,articular,felixstowe,aegon,endocrinology,trabzon,licinius,pagodas,zooplankton,hooghly,satie,drifters,sarthe,mercian,neuilly,tumours,canal+,scheldt,inclinations,counteroffensive,roadrunners,tuzla,shoreditch,surigao,predicates,carnot,algeciras,militaries,generalize,bulkheads,gawler,pollutant,celta,rundgren,microrna,gewog,olimpija,placental,lubelski,roxburgh,discerned,verano,kikuchi,musicale,l'enfant,ferocity,dimorphic,antigonus,erzurum,prebendary,recitative,discworld,cyrenaica,stigmella,totnes,sutta,pachuca,ulsan,downton,landshut,castellan,pleural,siedlce,siecle,catamaran,cottbus,utilises,trophic,freeholders,holyhead,u.s.s,chansons,responder,waziristan,suzuka,birding,shogi,asker,acetone,beautification,cytotoxic,dixit,hunterdon,cobblestone,formula_48,kossuth,devizes,sokoto,interlaced,shuttered,kilowatts,assiniboine,isaak,salto,alderney,sugarloaf,franchising,aggressiveness,toponyms,plaintext,antimatter,henin,equidistant,salivary,bilingualism,mountings,obligate,extirpated,irenaeus,misused,pastoralists,aftab,immigrating,warping,tyrolean,seaforth,teesside,soundwave,oligarchy,stelae,pairwise,iupac,tezuka,posht,orchestrations,landmass,ironstone,gallia,hjalmar,carmelites,strafford,elmhurst,palladio,fragility,teleplay,gruffudd,karoly,yerba,potok,espoo,inductance,macaque,nonprofits,pareto,rock'n'roll,spiritualist,shadowed,skateboarder,utterances,generality,congruence,prostrate,deterred,yellowknife,albarn,maldon,battlements,mohsen,insecticides,khulna,avellino,menstruation,glutathione,springdale,parlophone,confraternity,korps,countrywide,bosphorus,preexisting,damodar,astride,alexandrovich,sprinting,crystallized,botev,leaching,interstates,veers,angevin,undaunted,yevgeni,nishapur,northerners,alkmaar,bethnal,grocers,sepia,tornus,exemplar,trobe,charcot,gyeonggi,larne,tournai,lorain,voided,genji,enactments,maxilla,adiabatic,eifel,nazim,transducer,thelonious,pyrite,deportiva,dialectal,bengt,rosettes,labem,sergeyevich,synoptic,conservator,statuette,biweekly,adhesives,bifurcation,rajapaksa,mammootty,republique,yusef,waseda,marshfield,yekaterinburg,minnelli,fundy,fenian,matchups,dungannon,supremacist,panelled,drenthe,iyengar,fibula,narmada,homeport,oceanside,precept,antibacterial,altarpieces,swath,ospreys,lillooet,legnica,lossless,formula_50,galvatron,iorga,stormont,rsfsr,loggers,kutno,phenomenological,medallists,cuatro,soissons,homeopathy,bituminous,injures,syndicates,typesetting,displacements,dethroned,makassar,lucchese,abergavenny,targu,alborz,akb48,boldface,gastronomy,sacra,amenity,accumulator,myrtaceae,cornices,mourinho,denunciation,oxbow,diddley,aargau,arbitrage,bedchamber,gruffydd,zamindar,klagenfurt,caernarfon,slowdown,stansted,abrasion,tamaki,suetonius,dukakis,individualistic,ventrally,hotham,perestroika,ketones,fertilisation,sobriquet,couplings,renderings,misidentified,rundfunk,sarcastically,braniff,concours,dismissals,elegantly,modifiers,crediting,combos,crucially,seafront,lieut,ischemia,manchus,derivations,proteases,aristophanes,adenauer,porting,hezekiah,sante,trulli,hornblower,foreshadowing,ypsilanti,dharwad,khani,hohenstaufen,distillers,cosmodrome,intracranial,turki,salesian,gorzow,jihlava,yushchenko,leichhardt,venables,cassia,eurogamer,airtel,curative,bestsellers,timeform,sortied,grandview,massillon,ceding,pilbara,chillicothe,heredity,elblag,rogaland,ronne,millennial,batley,overuse,bharata,fille,campbelltown,abeyance,counterclockwise,
250cc,neurodegenerative,consigned,electromagnetism,sunnah,saheb,exons,coxswain,gleaned,bassoons,worksop,prismatic,immigrate,pickets,takeo,bobsledder,stosur,fujimori,merchantmen,stiftung,forli,endorses,taskforce,thermally,atman,gurps,floodplains,enthalpy,extrinsic,setubal,kennesaw,grandis,scalability,durations,showrooms,prithvi,outro,overruns,andalucia,amanita,abitur,hipper,mozambican,sustainment,arsene,chesham,palaeolithic,reportage,criminality,knowsley,haploid,atacama,shueisha,ridgefield,astern,getafe,lineal,timorese,restyled,hollies,agincourt,unter,justly,tannins,mataram,industrialised,tarnovo,mumtaz,mustapha,stretton,synthetase,condita,allround,putra,stjepan,troughs,aechmea,specialisation,wearable,kadokawa,uralic,aeros,messiaen,existentialism,jeweller,effigies,gametes,fjordane,cochlear,interdependent,demonstrative,unstructured,emplacement,famines,spindles,amplitudes,actuator,tantalum,psilocybe,apnea,monogatari,expulsions,seleucus,tsuen,hospitaller,kronstadt,eclipsing,olympiakos,clann,canadensis,inverter,helio,egyptologist,squamous,resonate,munir,histology,torbay,khans,jcpenney,veterinarians,aintree,microscopes,colonised,reflectors,phosphorylated,pristimantis,tulare,corvinus,multiplexing,midweek,demosthenes,transjordan,ecija,tengku,vlachs,anamorphic,counterweight,radnor,trinitarian,armidale,maugham,njsiaa,futurism,stairways,avicenna,montebello,bridgetown,wenatchee,lyonnais,amass,surinamese,streptococcus,m*a*s*h,hydrogenation,frazioni,proscenium,kalat,pennsylvanian,huracan,tallying,kralove,nucleolar,phrygian,seaports,hyacinthe,ignace,donning,instalment,regnal,fonds,prawn,carell,folktales,goaltending,bracknell,vmware,patriarchy,mitsui,kragujevac,pythagoras,soult,thapa,disproved,suwalki,secures,somoza,l'ecole,divizia,chroma,herders,technologist,deduces,maasai,rampur,paraphrase,raimi,imaged,magsaysay,ivano,turmeric,formula_51,subcommittees,axillary,ionosphere,organically,indented,refurbishing,pequot,violinists,bearn,colle,contralto,silverton,mechanization,etruscans,wittelsbach,pasir,redshirted,marrakesh,scarp,plein,wafers,qareh,teotihuacan,frobenius,sinensis,rehoboth,bundaberg,newbridge,hydrodynamic,traore,abubakar,adjusts,storytellers,dynamos,verbandsliga,concertmaster,exxonmobil,appreciable,sieradz,marchioness,chaplaincy,rechristened,cunxu,overpopulation,apolitical,sequencer,beaked,nemanja,binaries,intendant,absorber,filamentous,indebtedness,nusra,nashik,reprises,psychedelia,abwehr,ligurian,isoform,resistive,pillaging,mahathir,reformatory,lusatia,allerton,ajaccio,tepals,maturin,njcaa,abyssinian,objector,fissures,sinuous,ecclesiastic,dalits,caching,deckers,phosphates,wurlitzer,navigated,trofeo,berea,purefoods,solway,unlockable,grammys,kostroma,vocalizations,basilan,rebuke,abbasi,douala,helsingborg,ambon,bakar,runestones,cenel,tomislav,pigmented,northgate,excised,seconda,kirke,determinations,dedicates,vilas,pueblos,reversion,unexploded,overprinted,ekiti,deauville,masato,anaesthesia,endoplasmic,transponders,aguascalientes,hindley,celluloid,affording,bayeux,piaget,rickshaws,eishockey,camarines,zamalek,undersides,hardwoods,hermitian,mutinied,monotone,blackmails,affixes,jpmorgan,habermas,mitrovica,paleontological,polystyrene,thana,manas,conformist,turbofan,decomposes,logano,castration,metamorphoses,patroness,herbicide,mikolaj,rapprochement,macroeconomics,barranquilla,matsudaira,lintels,femina,hijab,spotsylvania,morpheme,bitola,baluchistan,kurukshetra,otway,extrusion,waukesha,menswear,helder,trung,bingley,protester,boars,overhang,differentials,exarchate,hejaz,kumara,unjustified,timings,sharpness,nuovo,taisho,sundar,etc..,jehan,unquestionably,muscovy,daltrey,canute,paneled,amedeo,metroplex,elaborates,telus,tetrapods,dragonflies,epithets,saffir,parthenon,lucrezia,refitting,pentateuch,hanshin,montparnasse,lumberjacks,sanhedrin,erectile,odors,greenstone,resurgent,leszek,amory,substituents,prototypical,viewfinder,monck,universiteit,joffre,revives,chatillon,seedling,scherzo,manukau,ashdod,gympie,homolog,stalwarts,ruinous,weibo,tochigi,wallenberg,gayatri,munda,satyagraha,storefronts,heterogeneity,tollway,sportswriters,binocular,gendarmes,ladysmith,tikal,ortsgemeinde,ja'far,osmotic,linlithgow,bramley,telecoms,pugin,repose,rupaul,sieur,meniscus,garmisch,reintroduce,
400th,shoten,poniatowski,drome,kazakhstani,changeover,astronautics,husserl,herzl,hypertext,katakana,polybius,antananarivo,seong,breguet,reliquary,utada,aggregating,liangshan,sivan,tonawanda,audiobooks,shankill,coulee,phenolic,brockton,bookmakers,handsets,boaters,wylde,commonality,mappings,silhouettes,pennines,maurya,pratchett,singularities,eschewed,pretensions,vitreous,ibero,totalitarianism,poulenc,lingered,directx,seasoning,deputation,interdict,illyria,feedstock,counterbalance,muzik,buganda,parachuted,violist,homogeneity,comix,fjords,corsairs,punted,verandahs,equilateral,laoghaire,magyars,
117th,alesund,televoting,mayotte,eateries,refurbish,nswrl,yukio,caragiale,zetas,dispel,codecs,inoperable,outperformed,rejuvenation,elstree,modernise,contributory,pictou,tewkesbury,chechens,ashina,psionic,refutation,medico,overdubbed,nebulae,sandefjord,personages,eccellenza,businessperson,placename,abenaki,perryville,threshing,reshaped,arecibo,burslem,colspan=
3|turnout,rebadged,lumia,erinsborough,interactivity,bitmap,indefatigable,theosophy,excitatory,gleizes,edsel,bermondsey,korce,saarinen,wazir,diyarbakir,cofounder,liberalisation,onsen,nighthawks,siting,retirements,semyon,d'histoire,
114th,redditch,venetia,praha,'round,valdosta,hieroglyphic,postmedial,edirne,miscellany,savona,cockpits,minimization,coupler,jacksonian,appeasement,argentines,saurashtra,arkwright,hesiod,folios,fitzalan,publica,rivaled,civitas,beermen,constructivism,ribeira,zeitschrift,solanum,todos,deformities,chilliwack,verdean,meagre,bishoprics,gujrat,yangzhou,reentered,inboard,mythologies,virtus,unsurprisingly,rusticated,museu,symbolise,proportionate,thesaban,symbian,aeneid,mitotic,veliki,compressive,cisterns,abies,winemaker,massenet,bertolt,ahmednagar,triplemania,armorial,administracion,tenures,smokehouse,hashtag,fuerza,regattas,gennady,kanazawa,mahmudabad,crustal,asaph,valentinian,ilaiyaraaja,honeyeater,trapezoidal,cooperatively,unambiguously,mastodon,inhospitable,harnesses,riverton,renewables,djurgardens,haitians,airings,humanoids,boatswain,shijiazhuang,faints,veera,punjabis,steepest,narain,karlovy,serre,sulcus,collectives,
1500m,arion,subarctic,liberally,apollonius,ostia,droplet,headstones,norra,robusta,maquis,veronese,imola,primers,luminance,escadrille,mizuki,irreconcilable,stalybridge,temur,paraffin,stuccoed,parthians,counsels,fundamentalists,vivendi,polymath,sugababes,mikko,yonne,fermions,vestfold,pastoralist,kigali,unseeded,glarus,cusps,amasya,northwesterly,minorca,astragalus,verney,trevelyan,antipathy,wollstonecraft,bivalves,boulez,royle,divisao,quranic,bareilly,coronal,deviates,lulea,erectus,petronas,chandan,proxies,aeroflot,postsynaptic,memoriam,moyne,gounod,kuznetsova,pallava,ordinating,reigate,'first,lewisburg,exploitative,danby,academica,bailiwick,brahe,injective,stipulations,aeschylus,computes,gulden,hydroxylase,liveries,somalis,underpinnings,muscovite,kongsberg,domus,overlain,shareware,variegated,jalalabad,agence,ciphertext,insectivores,dengeki,menuhin,cladistic,baerum,betrothal,tokushima,wavelet,expansionist,pottsville,siyuan,prerequisites,carpi,nemzeti,nazar,trialled,eliminator,irrorated,homeward,redwoods,undeterred,strayed,lutyens,multicellular,aurelian,notated,lordships,alsatian,idents,foggia,garros,chalukyas,lillestrom,podlaski,pessimism,hsien,demilitarized,whitewashed,willesden,kirkcaldy,sanctorum,lamia,relaying,escondido,paediatric,contemplates,demarcated,bluestone,betula,penarol,capitalise,kreuznach,kenora,
115th,hold'em,reichswehr,vaucluse,m.i.a,windings,boys/girls,cajon,hisar,predictably,flemington,ysgol,mimicked,clivina,grahamstown,ionia,glyndebourne,patrese,aquaria,sleaford,dayal,sportscenter,malappuram,m.b.a.,manoa,carbines,solvable,designator,ramanujan,linearity,academicians,sayid,lancastrian,factorial,strindberg,vashem,delos,comyn,condensing,superdome,merited,kabaddi,intransitive,bideford,neuroimaging,duopoly,scorecards,ziggler,heriot,boyars,virology,marblehead,microtubules,westphalian,anticipates,hingham,searchers,harpist,rapides,morricone,convalescent,mises,nitride,metrorail,matterhorn,bicol,drivetrain,marketer,snippet,winemakers,muban,scavengers,halberstadt,herkimer,peten,laborious,stora,montgomeryshire,booklist,shamir,herault,eurostar,anhydrous,spacewalk,ecclesia,calliostoma,highschool,d'oro,suffusion,imparts,overlords,tagus,rectifier,counterinsurgency,ministered,eilean,milecastle,contre,micromollusk,okhotsk,bartoli,matroid,hasidim,thirunal,terme,tarlac,lashkar,presque,thameslink,flyby,troopship,renouncing,fatih,messrs,vexillum,bagration,magnetite,bornholm,androgynous,vehement,tourette,philosophic,gianfranco,tuileries,codice_6,radially,flexion,hants,reprocessing,setae,burne,palaeographically,infantryman,shorebirds,tamarind,moderna,threading,militaristic,crohn,norrkoping,
125cc,stadtholder,troms,klezmer,alphanumeric,brome,emmanuelle,tiwari,alchemical,formula_52,onassis,bleriot,bipedal,colourless,hermeneutics,hosni,precipitating,turnstiles,hallucinogenic,panhellenic,wyandotte,elucidated,chita,ehime,generalised,hydrophilic,biota,niobium,rnzaf,gandhara,longueuil,logics,sheeting,bielsko,cuvier,kagyu,trefoil,docent,pancrase,stalinism,postures,encephalopathy,monckton,imbalances,epochs,leaguers,anzio,diminishes,pataki,nitrite,amuro,nabil,maybach,l'aquila,babbler,bacolod,thutmose,evora,gaudi,breakage,recur,preservative,
60deg,mendip,functionaries,columnar,maccabiah,chert,verden,bromsgrove,clijsters,dengue,pastorate,phuoc,principia,viareggio,kharagpur,scharnhorst,anyang,bosons,l'art,criticises,ennio,semarang,brownian,mirabilis,asperger,calibers,typographical,cartooning,minos,disembark,supranational,undescribed,etymologically,alappuzha,vilhelm,lanao,pakenham,bhagavata,rakoczi,clearings,astrologers,manitowoc,bunuel,acetylene,scheduler,defamatory,trabzonspor,leaded,scioto,pentathlete,abrahamic,minigames,aldehydes,peerages,legionary,
1640s,masterworks,loudness,bryansk,likeable,genocidal,vegetated,towpath,declination,pyrrhus,divinely,vocations,rosebery,associazione,loaders,biswas,oeste,tilings,xianzong,bhojpuri,annuities,relatedness,idolator,psers,constriction,chuvash,choristers,hanafi,fielders,grammarian,orpheum,asylums,millbrook,gyatso,geldof,stabilise,tableaux,diarist,kalahari,panini,cowdenbeath,melanin,
4x100m,resonances,pinar,atherosclerosis,sheringham,castlereagh,aoyama,larks,pantograph,protrude,natak,gustafsson,moribund,cerevisiae,cleanly,polymeric,holkar,cosmonauts,underpinning,lithosphere,firuzabad,languished,mingled,citrate,spadina,lavas,daejeon,fibrillation,porgy,pineville,ps1000,cobbled,emamzadeh,mukhtar,dampers,indelible,salonika,nanoscale,treblinka,eilat,purporting,fluctuate,mesic,hagiography,cutscenes,fondation,barrens,comically,accrue,ibrox,makerere,defections,'there,hollandia,skene,grosseto,reddit,objectors,inoculation,rowdies,playfair,calligrapher,namor,sibenik,abbottabad,propellants,hydraulically,chloroplasts,tablelands,tecnico,schist,klasse,shirvan,bashkortostan,bullfighting,north/south,polski,hanns,woodblock,kilmore,ejecta,ignacy,nanchang,danubian,commendations,snohomish,samaritans,argumentation,vasconcelos,hedgehogs,vajrayana,barents,kulkarni,kumbakonam,identifications,hillingdon,weirs,nayanar,beauvoir,messe,divisors,atlantiques,broods,affluence,tegucigalpa,unsuited,autodesk,akash,princeps,culprits,kingstown,unassuming,goole,visayan,asceticism,blagojevich,irises,paphos,unsound,maurier,pontchartrain,desertification,sinfonietta,latins,especial,limpet,valerenga,glial,brainstem,mitral,parables,sauropod,judean,iskcon,sarcoma,venlo,justifications,zhuhai,blavatsky,alleviated,usafe,steppenwolf,inversions,janko,chagall,secretory,basildon,saguenay,pergamon,hemispherical,harmonized,reloading,franjo,domaine,extravagance,relativism,metamorphosed,labuan,baloncesto,gmail,byproducts,calvinists,counterattacked,vitus,bubonic,
120th,strachey,ritually,brookwood,selectable,savinja,incontinence,meltwater,jinja,
1720s,brahmi,morgenthau,sheaves,sleeved,stratovolcano,wielki,utilisation,avoca,fluxus,panzergrenadier,philately,deflation,podlaska,prerogatives,kuroda,theophile,zhongzong,gascoyne,magus,takao,arundell,fylde,merdeka,prithviraj,venkateswara,liepaja,daigo,dreamland,reflux,sunnyvale,coalfields,seacrest,soldering,flexor,structuralism,alnwick,outweighed,unaired,mangeshkar,batons,glaad,banshees,irradiated,organelles,biathlete,cabling,chairlift,lollapalooza,newsnight,capacitive,succumbs,flatly,miramichi,burwood,comedienne,charteris,biotic,workspace,aficionados,sokolka,chatelet,o'shaughnessy,prosthesis,neoliberal,refloated,oppland,hatchlings,econometrics,loess,thieu,androids,appalachians,jenin,pterostichinae,downsized,foils,chipsets,stencil,danza,narrate,maginot,yemenite,bisects,crustacean,prescriptive,melodious,alleviation,empowers,hansson,autodromo,obasanjo,osmosis,daugava,rheumatism,moraes,leucine,etymologies,chepstow,delaunay,bramall,bajaj,flavoring,approximates,marsupials,incisive,microcomputer,tactically,waals,wilno,fisichella,ursus,hindmarsh,mazarin,lomza,xenophobia,lawlessness,annecy,wingers,gornja,gnaeus,superieur,tlaxcala,clasps,symbolises,slats,rightist,effector,blighted,permanence,divan,progenitors,kunsthalle,anointing,excelling,coenzyme,indoctrination,dnipro,landholdings,adriaan,liturgies,cartan,ethmia,attributions,sanctus,trichy,chronicon,tancred,affinis,kampuchea,gantry,pontypool,membered,distrusted,fissile,dairies,hyposmocoma,craigie,adarsh,martinsburg,taxiway,
30deg,geraint,vellum,bencher,khatami,formula_53,zemun,teruel,endeavored,palmares,pavements,u.s..,internationalization,satirized,carers,attainable,wraparound,muang,parkersburg,extinctions,birkenfeld,wildstorm,payers,cohabitation,unitas,culloden,capitalizing,clwyd,daoist,campinas,emmylou,orchidaceae,halakha,orientales,fealty,domnall,chiefdom,nigerians,ladislav,dniester,avowed,ergonomics,newsmagazine,kitsch,cantilevered,benchmarking,remarriage,alekhine,coldfield,taupo,almirante,substations,apprenticeships,seljuq,levelling,eponym,symbolising,salyut,opioids,underscore,ethnologue,mohegan,marikina,libro,bassano,parse,semantically,disjointed,dugdale,padraig,tulsi,modulating,xfinity,headlands,mstislav,earthworms,bourchier,lgbtq,embellishments,pennants,rowntree,betel,motet,mulla,catenary,washoe,mordaunt,dorking,colmar,girardeau,glentoran,grammatically,samad,recreations,technion,staccato,mikoyan,spoilers,lyndhurst,victimization,chertsey,belafonte,tondo,tonsberg,narrators,subcultures,malformations,edina,augmenting,attests,euphemia,cabriolet,disguising,
1650s,navarrese,demoralized,cardiomyopathy,welwyn,wallachian,smoothness,planktonic,voles,issuers,sardasht,survivability,cuauhtemoc,thetis,extruded,signet,raghavan,lombok,eliyahu,crankcase,dissonant,stolberg,trencin,desktops,bursary,collectivization,charlottenburg,triathlete,curvilinear,involuntarily,mired,wausau,invades,sundaram,deletions,bootstrap,abellio,axiomatic,noguchi,setups,malawian,visalia,materialist,kartuzy,wenzong,plotline,yeshivas,parganas,tunica,citric,conspecific,idlib,superlative,reoccupied,blagoevgrad,masterton,immunological,hatta,courbet,vortices,swallowtail,delves,haridwar,diptera,boneh,bahawalpur,angering,mardin,equipments,deployable,guanine,normality,rimmed,artisanal,boxset,chandrasekhar,jools,chenar,tanakh,carcassonne,belatedly,millville,anorthosis,reintegration,velde,surfactant,kanaan,busoni,glyphipterix,personas,fullness,rheims,tisza,stabilizers,bharathi,joost,spinola,mouldings,perching,esztergom,afzal,apostate,lustre,s.league,motorboat,monotheistic,armature,barat,asistencia,bloomsburg,hippocampal,fictionalised,defaults,broch,hexadecimal,lusignan,ryanair,boccaccio,breisgau,southbank,bskyb,adjoined,neurobiology,aforesaid,sadhu,langue,headship,wozniacki,hangings,regulus,prioritized,dynamism,allier,hannity,shimin,antoninus,gymnopilus,caledon,preponderance,melayu,electrodynamics,syncopated,ibises,krosno,mechanistic,morpeth,harbored,albini,monotheism,'real,hyperactivity,haveli,writer/director,minato,nimoy,caerphilly,chitral,amirabad,fanshawe,l'oreal,lorde,mukti,authoritarianism,valuing,spyware,hanbury,restarting,stato,embed,suiza,empiricism,stabilisation,stari,castlemaine,orbis,manufactory,mauritanian,shoji,taoyuan,prokaryotes,oromia,ambiguities,embodying,slims,frente,innovate,ojibwa,powdery,gaeltacht,argentinos,quatermass,detergents,fijians,adaptor,tokai,chileans,bulgars,oxidoreductases,bezirksliga,conceicao,myosin,nellore,
500cc,supercomputers,approximating,glyndwr,polypropylene,haugesund,cockerell,tudman,ashbourne,hindemith,bloodlines,rigveda,etruria,romanos,steyn,oradea,deceleration,manhunter,laryngeal,fraudulently,janez,wendover,haplotype,janaki,naoki,belizean,mellencamp,cartographic,sadhana,tricolour,pseudoscience,satara,bytow,s.p.a.,jagdgeschwader,arcot,omagh,sverdrup,masterplan,surtees,apocrypha,ahvaz,d'amato,socratic,leumit,unnumbered,nandini,witold,marsupial,coalesced,interpolated,gimnasia,karadzic,keratin,mamoru,aldeburgh,speculator,escapement,irfan,kashyap,satyajit,haddington,solver,rothko,ashkelon,kickapoo,yeomen,superbly,bloodiest,greenlandic,lithic,autofocus,yardbirds,poona,keble,javan,sufis,expandable,tumblr,ursuline,swimwear,winwood,counsellors,aberrations,marginalised,befriending,workouts,predestination,varietal,siddhartha,dunkeld,judaic,esquimalt,shabab,ajith,telefonica,stargard,hoysala,radhakrishnan,sinusoidal,strada,hiragana,cebuano,monoid,independencia,floodwaters,mildura,mudflats,ottokar,translit,radix,wigner,philosophically,tephritid,synthesizing,castletown,installs,stirner,resettle,bushfire,choirmaster,kabbalistic,shirazi,lightship,rebus,colonizers,centrifuge,leonean,kristofferson,thymus,clackamas,ratnam,rothesay,municipally,centralia,thurrock,gulfport,bilinear,desirability,merite,psoriasis,macaw,erigeron,consignment,mudstone,distorting,karlheinz,ramen,tailwheel,vitor,reinsurance,edifices,superannuation,dormancy,contagion,cobden,rendezvoused,prokaryotic,deliberative,patricians,feigned,degrades,starlings,sopot,viticultural,beaverton,overflowed,convener,garlands,michiel,ternopil,naturelle,biplanes,bagot,gamespy,ventspils,disembodied,flattening,profesional,londoners,arusha,scapular,forestall,pyridine,ulema,eurodance,aruna,callus,periodontal,coetzee,immobilized,o'meara,maharani,katipunan,reactants,zainab,microgravity,saintes,britpop,carrefour,constrain,adversarial,firebirds,brahmo,kashima,simca,surety,surpluses,superconductivity,gipuzkoa,cumans,tocantins,obtainable,humberside,roosting,'king,formula_54,minelayer,bessel,sulayman,cycled,biomarkers,annealing,shusha,barda,cassation,djing,polemics,tuple,directorates,indomitable,obsolescence,wilhelmine,pembina,bojan,tambo,dioecious,pensioner,magnificat,
1660s,estrellas,southeasterly,immunodeficiency,railhead,surreptitiously,codeine,encores,religiosity,tempera,camberley,efendi,boardings,malleable,hagia,input/output,lucasfilm,ujjain,polymorphisms,creationist,berners,mickiewicz,irvington,linkedin,endures,kinect,munition,apologetics,fairlie,predicated,reprinting,ethnographer,variances,levantine,mariinsky,jadid,jarrow,asia/oceania,trinamool,waveforms,bisexuality,preselection,pupae,buckethead,hieroglyph,lyricists,marionette,dunbartonshire,restorer,monarchical,pazar,kickoffs,cabildo,savannas,gliese,dench,spoonbills,novelette,diliman,hypersensitivity,authorising,montefiore,mladen,qu'appelle,theistic,maruti,laterite,conestoga,saare,californica,proboscis,carrickfergus,imprecise,hadassah,baghdadi,jolgeh,deshmukh,amusements,heliopolis,berle,adaptability,partenkirchen,separations,baikonur,cardamom,southeastward,southfield,muzaffar,adequacy,metropolitana,rajkot,kiyoshi,metrobus,evictions,reconciles,librarianship,upsurge,knightley,badakhshan,proliferated,spirituals,burghley,electroacoustic,professing,featurette,reformists,skylab,descriptors,oddity,greyfriars,injects,salmond,lanzhou,dauntless,subgenera,underpowered,transpose,mahinda,gatos,aerobatics,seaworld,blocs,waratahs,joris,giggs,perfusion,koszalin,mieczyslaw,ayyubid,ecologists,modernists,sant'angelo,quicktime,him/her,staves,sanyo,melaka,acrocercops,qigong,iterated,generalizes,recuperation,vihara,circassians,psychical,chavo,memoires,infiltrates,notaries,pelecaniformesfamily,strident,chivalric,pierrepont,alleviating,broadsides,centipede,b.tech,reinterpreted,sudetenland,hussite,covenanters,radhika,ironclads,gainsbourg,testis,penarth,plantar,azadegan,beano,espn.com,leominster,autobiographies,nbcuniversal,eliade,khamenei,montferrat,undistinguished,ethnological,wenlock,fricatives,polymorphic,biome,joule,sheaths,astrophysicist,salve,neoclassicism,lovat,downwind,belisarius,forma,usurpation,freie,depopulation,backbench,ascenso,'high,aagpbl,gdanski,zalman,mouvement,encapsulation,bolshevism,statny,voyageurs,hywel,vizcaya,mazra'eh,narthex,azerbaijanis,cerebrospinal,mauretania,fantail,clearinghouse,bolingbroke,pequeno,ansett,remixing,microtubule,wrens,jawahar,palembang,gambian,hillsong,fingerboard,repurposed,sundry,incipient,veolia,theologically,ulaanbaatar,atsushi,foundling,resistivity,myeloma,factbook,mazowiecka,diacritic,urumqi,clontarf,provokes,intelsat,professes,materialise,portobello,benedictines,panionios,introverted,reacquired,bridport,mammary,kripke,oratorios,vlore,stoning,woredas,unreported,antti,togolese,fanzines,heuristics,conservatories,carburetors,clitheroe,cofounded,formula_57,erupting,quinnipiac,bootle,ghostface,sittings,aspinall,sealift,transferase,boldklub,siskiyou,predominated,francophonie,ferruginous,castrum,neogene,sakya,madama,precipitous,'love,posix,bithynia,uttara,avestan,thrushes,seiji,memorably,septimius,libri,cibernetico,hyperinflation,dissuaded,cuddalore,peculiarity,vaslui,grojec,albumin,thurles,casks,fasteners,fluidity,buble,casals,terek,gnosticism,cognates,ulnar,radwanska,babylonians,majuro,oxidizer,excavators,rhythmically,liffey,gorakhpur,eurydice,underscored,arborea,lumumba,tuber,catholique,grama,galilei,scrope,centreville,jacobin,bequests,ardeche,polygamous,montauban,terai,weatherboard,readability,attainder,acraea,transversely,rivets,winterbottom,reassures,bacteriology,vriesea,chera,andesite,dedications,homogenous,reconquered,bandon,forrestal,ukiyo,gurdjieff,tethys,sparc,muscogee,grebes,belchatow,mansa,blantyre,palliser,sokolow,fibroblasts,exmoor,misaki,soundscapes,housatonic,middelburg,convenor,leyla,antipope,histidine,okeechobee,alkenes,sombre,alkene,rubik,macaques,calabar,trophee,pinchot,'free,frusciante,chemins,falaise,vasteras,gripped,schwarzenberg,cumann,kanchipuram,acoustically,silverbacks,fangio,inset,plympton,kuril,vaccinations,recep,theropods,axils,stavropol,encroached,apoptotic,papandreou,wailers,moonstone,assizes,micrometers,hornchurch,truncation,annapurna,egyptologists,rheumatic,promiscuity,satiric,fleche,caloptilia,anisotropy,quaternions,gruppo,viscounts,awardees,aftershocks,sigint,concordance,oblasts,gaumont,stent,commissars,kesteven,hydroxy,vijayanagar,belorussian,fabricius,watermark,tearfully,mamet,leukaemia,sorkh,milepost,tattooing,vosta,abbasids,uncompleted,hedong,woodwinds,extinguishing,malus,multiplexes,francoist,pathet,responsa,bassists,'most,postsecondary,ossory,grampian,saakashvili,alito,strasberg,impressionistic,volador,gelatinous,vignette,underwing,campanian,abbasabad,albertville,hopefuls,nieuwe,taxiways,reconvened,recumbent,pathologists,unionized,faversham,asymptotically,romulo,culling,donja,constricted,annesley,duomo,enschede,lovech,sharpshooter,lansky,dhamma,papillae,alanine,mowat,delius,wrest,mcluhan,podkarpackie,imitators,bilaspur,stunting,pommel,casemate,handicaps,nagas,testaments,hemings,necessitate,rearward,locative,cilla,klitschko,lindau,merion,consequential,antic,soong,copula,berthing,chevrons,rostral,sympathizer,budokan,ranulf,beria,stilt,replying,conflated,alcibiades,painstaking,yamanashi,calif.,arvid,ctesiphon,xizong,rajas,caxton,downbeat,resurfacing,rudders,miscegenation,deathmatch,foregoing,arthropod,attestation,karts,reapportionment,harnessing,eastlake,schola,dosing,postcolonial,imtiaz,formula_55,insulators,gunung,accumulations,pampas,llewelyn,bahnhof,cytosol,grosjean,teaneck,briarcliff,arsenio,canara,elaborating,passchendaele,searchlights,holywell,mohandas,preventable,gehry,mestizos,ustinov,cliched,'national,heidfeld,tertullian,jihadist,tourer,miletus,semicircle,outclassed,bouillon,cardinalate,clarifies,dakshina,bilayer,pandyan,unrwa,chandragupta,formula_56,portola,sukumaran,lactation,islamia,heikki,couplers,misappropriation,catshark,montt,ploughs,carib,stator,leaderboard,kenrick,dendrites,scape,tillamook,molesworth,mussorgsky,melanesia,restated,troon,glycoside,truckee,headwater,mashup,sectoral,gangwon,docudrama,skirting,psychopathology,dramatised,ostroleka,infestations,thabo,depolarization,wideroe,eisenbahn,thomond,kumaon,upendra,foreland,acronyms,yaqui,retaking,raphaelite,specie,dupage,villars,lucasarts,chloroplast,werribee,balsa,ascribe,havant,flava,khawaja,tyumen,subtract,interrogators,reshaping,buzzcocks,eesti,campanile,potemkin,apertures,snowboarder,registrars,handbooks,boyar,contaminant,depositors,proximate,jeunesse,zagora,pronouncements,mists,nihilism,deified,margraviate,pietersen,moderators,amalfi,adjectival,copepods,magnetosphere,pallets,clemenceau,castra,perforation,granitic,troilus,grzegorz,luthier,dockyards,antofagasta,ffestiniog,subroutine,afterword,waterwheel,druce,nitin,undifferentiated,emacs,readmitted,barneveld,tapers,hittites,infomercials,infirm,braathens,heligoland,carpark,geomagnetic,musculoskeletal,nigerien,machinima,harmonize,repealing,indecency,muskoka,verite,steubenville,suffixed,cytoskeleton,surpasses,harmonia,imereti,ventricles,heterozygous,envisions,otsego,ecoles,warrnambool,burgenland,seria,rawat,capistrano,welby,kirin,enrollments,caricom,dragonlance,schaffhausen,expanses,photojournalism,brienne,etude,referent,jamtland,schemas,xianbei,cleburne,bicester,maritima,shorelines,diagonals,bjelke,nonpublic,aliasing,m.f.a,ovals,maitreya,skirmishing,grothendieck,sukhothai,angiotensin,bridlington,durgapur,contras,gakuen,skagit,rabbinate,tsunamis,haphazard,tyldesley,microcontroller,discourages,hialeah,compressing,septimus,larvik,condoleezza,psilocybin,protectionism,songbirds,clandestinely,selectmen,wargame,cinemascope,khazars,agronomy,melzer,latifah,cherokees,recesses,assemblymen,basescu,banaras,bioavailability,subchannels,adenine,o'kelly,prabhakar,leonese,dimethyl,testimonials,geoffroy,oxidant,universiti,gheorghiu,bohdan,reversals,zamorin,herbivore,jarre,sebastiao,infanterie,dolmen,teddington,radomsko,spaceships,cuzco,recapitulation,mahoning,bainimarama,myelin,aykroyd,decals,tokelau,nalgonda,rajasthani,
121st,quelled,tambov,illyrians,homilies,illuminations,hypertrophy,grodzisk,inundation,incapacity,equilibria,combats,elihu,steinitz,berengar,gowda,canwest,khosrau,maculata,houten,kandinsky,onside,leatherhead,heritable,belvidere,federative,chukchi,serling,eruptive,patan,entitlements,suffragette,evolutions,migrates,demobilisation,athleticism,trope,sarpsborg,kensal,translink,squamish,concertgebouw,energon,timestamp,competences,zalgiris,serviceman,codice_7,spoofing,assange,mahadevan,skien,suceava,augustan,revisionism,unconvincing,hollande,drina,gottlob,lippi,broglie,darkening,tilapia,eagerness,nacht,kolmogorov,photometric,leeuwarden,jrotc,haemorrhage,almanack,cavalli,repudiation,galactose,zwickau,cetinje,houbraken,heavyweights,gabonese,ordinals,noticias,museveni,steric,charaxes,amjad,resection,joinville,leczyca,anastasius,purbeck,subtribe,dalles,leadoff,monoamine,jettisoned,kaori,anthologized,alfreton,indic,bayezid,tottori,colonizing,assassinating,unchanging,eusebian,d'estaing,tsingtao,toshio,transferases,peronist,metrology,equus,mirpur,libertarianism,kovil,indole,'green,abstention,quantitatively,icebreakers,tribals,mainstays,dryandra,eyewear,nilgiri,chrysanthemum,inositol,frenetic,merchantman,hesar,physiotherapist,transceiver,dancefloor,rankine,neisse,marginalization,lengthen,unaided,rework,pageantry,savio,striated,funen,witton,illuminates,frass,hydrolases,akali,bistrita,copywriter,firings,handballer,tachinidae,dmytro,coalesce,neretva,menem,moraines,coatbridge,crossrail,spoofed,drosera,ripen,protour,kikuyu,boleslav,edwardes,troubadours,haplogroups,wrasse,educationalist,sroda,khaneh,dagbladet,apennines,neuroscientist,deplored,terje,maccabees,daventry,spaceport,lessening,ducats,singer/guitarist,chambersburg,yeong,configurable,ceremonially,unrelenting,caffe,graaf,denizens,kingsport,ingush,panhard,synthesised,tumulus,homeschooled,bozorg,idiomatic,thanhouser,queensway,radek,hippolytus,inking,banovina,peacocks,piaui,handsworth,pantomimes,abalone,thera,kurzweil,bandura,augustinians,bocelli,ferrol,jiroft,quadrature,contravention,saussure,rectification,agrippina,angelis,matanzas,nidaros,palestrina,latium,coriolis,clostridium,ordain,uttering,lanchester,proteolytic,ayacucho,merseburg,holbein,sambalpur,algebraically,inchon,ostfold,savoia,calatrava,lahiri,judgeship,ammonite,masaryk,meyerbeer,hemorrhagic,superspeedway,ningxia,panicles,encircles,khmelnytsky,profusion,esher,babol,inflationary,anhydride,gaspe,mossy,periodicity,nacion,meteorologists,mahjong,interventional,sarin,moult,enderby,modell,palgrave,warners,montcalm,siddha,functionalism,rilke,politicized,broadmoor,kunste,orden,brasileira,araneta,eroticism,colquhoun,mamba,blacktown,tubercle,seagrass,manoel,camphor,neoregelia,llandudno,annexe,enplanements,kamien,plovers,statisticians,iturbide,madrasah,nontrivial,publican,landholders,manama,uninhabitable,revivalist,trunkline,friendliness,gurudwara,rocketry,unido,tripos,besant,braque,evolutionarily,abkhazian,staffel,ratzinger,brockville,bohemond,intercut,djurgarden,utilitarianism,deploys,sastri,absolutism,subhas,asghar,fictions,sepinwall,proportionately,titleholders,thereon,foursquare,machinegun,knightsbridge,siauliai,aqaba,gearboxes,castaways,weakens,phallic,strzelce,buoyed,ruthenia,pharynx,intractable,neptunes,koine,leakey,netherlandish,preempted,vinay,terracing,instigating,alluvium,prosthetics,vorarlberg,politiques,joinery,reduplication,nebuchadnezzar,lenticular,banka,seaborne,pattinson,helpline,aleph,beckenham,californians,namgyal,franziska,aphid,branagh,transcribe,appropriateness,surakarta,takings,propagates,juraj,b0d3fb,brera,arrayed,tailback,falsehood,hazleton,prosody,egyptology,pinnate,tableware,ratan,camperdown,ethnologist,tabari,classifiers,biogas,
126th,kabila,arbitron,apuestas,membranous,kincardine,oceana,glories,natick,populism,synonymy,ghalib,mobiles,motherboards,stationers,germinal,patronised,formula_58,gaborone,torts,jeezy,interleague,novaya,batticaloa,offshoots,wilbraham,filename,nswrfl,'well,trilobite,pythons,optimally,scientologists,rhesus,pilsen,backdrops,batang,unionville,hermanos,shrikes,fareham,outlawing,discontinuing,boisterous,shamokin,scanty,southwestward,exchangers,unexpired,mewar,h.m.s,saldanha,pawan,condorcet,turbidity,donau,indulgences,coincident,cliques,weeklies,bardhaman,violators,kenai,caspase,xperia,kunal,fistula,epistemic,cammell,nephi,disestablishment,rotator,germaniawerft,pyaar,chequered,jigme,perlis,anisotropic,popstars,kapil,appendices,berat,defecting,shacks,wrangel,panchayath,gorna,suckling,aerosols,sponheim,talal,borehole,encodings,enlai,subduing,agong,nadar,kitsap,syrmia,majumdar,pichilemu,charleville,embryology,booting,literati,abutting,basalts,jussi,repubblica,hertogenbosch,digitization,relents,hillfort,wiesenthal,kirche,bhagwan,bactrian,oases,phyla,neutralizing,helsing,ebooks,spearheading,margarine,'golden,phosphor,picea,stimulants,outliers,timescale,gynaecology,integrator,skyrocketed,bridgnorth,senecio,ramachandra,suffragist,arrowheads,aswan,inadvertent,microelectronics,
118th,sofer,kubica,melanesian,tuanku,balkh,vyborg,crystallographic,initiators,metamorphism,ginzburg,looters,unimproved,finistere,newburyport,norges,immunities,franchisees,asterism,kortrijk,camorra,komsomol,fleurs,draughts,patagonian,voracious,artin,collaborationist,revolucion,revitalizing,xaver,purifying,antipsychotic,disjunct,pompeius,dreamwave,juvenal,beinn,adiyaman,antitank,allama,boletus,melanogaster,dumitru,caproni,aligns,athabaskan,stobart,phallus,veikkausliiga,hornsey,buffering,bourbons,dobruja,marga,borax,electrics,gangnam,motorcyclist,whidbey,draconian,lodger,galilean,sanctification,imitates,boldness,underboss,wheatland,cantabrian,terceira,maumee,redefining,uppercase,ostroda,characterise,universalism,equalized,syndicalism,haringey,masovia,deleuze,funkadelic,conceals,thuan,minsky,pluralistic,ludendorff,beekeeping,bonfires,endoscopic,abuts,prebend,jonkoping,amami,tribunes,yup'ik,awadh,gasification,pforzheim,reforma,antiwar,vaishnavism,maryville,inextricably,margrethe,empresa,neutrophils,sanctified,ponca,elachistidae,curiae,quartier,mannar,hyperplasia,wimax,busing,neologism,florins,underrepresented,digitised,nieuw,cooch,howards,frege,hughie,plied,swale,kapellmeister,vajpayee,quadrupled,aeronautique,dushanbe,custos,saltillo,kisan,tigray,manaus,epigrams,shamanic,peppered,frosts,promotion/relegation,concedes,zwingli,charentes,whangarei,hyung,spring/summer,sobre,eretz,initialization,sawai,ephemera,grandfathered,arnaldo,customised,permeated,parapets,growths,visegrad,estudios,altamont,provincia,apologises,stoppard,carburettor,rifts,kinematic,zhengzhou,eschatology,prakrit,folate,yvelines,scapula,stupas,rishon,reconfiguration,flutist,
1680s,apostolate,proudhon,lakshman,articulating,stortford,faithfull,bitterns,upwelling,qur'anic,lidar,interferometry,waterlogged,koirala,ditton,wavefunction,fazal,babbage,antioxidants,lemberg,deadlocked,tolled,ramapo,mathematica,leiria,topologies,khali,photonic,balti,
1080p,corrects,recommenced,polyglot,friezes,tiebreak,copacabana,cholmondeley,armband,abolishment,sheamus,buttes,glycolysis,cataloged,warrenton,sassari,kishan,foodservice,cryptanalysis,holmenkollen,cosplay,machi,yousuf,mangal,allying,fertiliser,otomi,charlevoix,metallurg,parisians,bottlenose,oakleigh,debug,cidade,accede,ligation,madhava,pillboxes,gatefold,aveyron,sorin,thirsk,immemorial,menelik,mehra,domingos,underpinned,fleshed,harshness,diphthong,crestwood,miskolc,dupri,pyrausta,muskingum,tuoba,prodi,incidences,waynesboro,marquesas,heydar,artesian,calinescu,nucleation,funders,covalently,compaction,derbies,seaters,sodor,tabular,amadou,peckinpah,o'halloran,zechariah,libyans,kartik,daihatsu,chandran,erzhu,heresies,superheated,yarder,dorde,tanjore,abusers,xuanwu,juniperus,moesia,trusteeship,birdwatching,beatz,moorcock,harbhajan,sanga,choreographic,photonics,boylston,amalgamate,prawns,electrifying,sarath,inaccurately,exclaims,powerpoint,chaining,cpusa,adulterous,saccharomyces,glogow,vfl/afl,syncretic,simla,persisting,functors,allosteric,euphorbiaceae,juryo,mlada,moana,gabala,thornycroft,kumanovo,ostrovsky,sitio,tutankhamun,sauropods,kardzhali,reinterpretation,sulpice,rosyth,originators,halesowen,delineation,asesoria,abatement,gardai,elytra,taillights,overlays,monsoons,sandpipers,ingmar,henrico,inaccuracy,irwell,arenabowl,elche,pressburg,signalman,interviewees,sinkhole,pendle,ecommerce,cellos,nebria,organometallic,surrealistic,propagandist,interlaken,canandaigua,aerials,coutinho,pascagoula,tonopah,letterkenny,gropius,carbons,hammocks,childe,polities,hosiery,donitz,suppresses,diaghilev,stroudsburg,bagram,pistoia,regenerating,unitarians,takeaway,offstage,vidin,glorification,bakunin,yavapai,lutzow,sabercats,witney,abrogated,gorlitz,validating,dodecahedron,stubbornly,telenor,glaxosmithkline,solapur,undesired,jellicoe,dramatization,four-and-a-half,seawall,waterpark,artaxerxes,vocalization,typographic,byung,sachsenhausen,shepparton,kissimmee,konnan,belsen,dhawan,khurd,mutagenesis,vejle,perrot,estradiol,formula_60,saros,chiloe,misiones,lamprey,terrains,speke,miasto,eigenvectors,haydock,reservist,corticosteroids,savitri,shinawatra,developmentally,yehudi,berates,janissaries,recapturing,rancheria,subplots,gresley,nikkatsu,oryol,cosmas,boavista,formula_59,playfully,subsections,commentated,kathakali,dorid,vilaine,seepage,hylidae,keiji,kazakhs,triphosphate,
1620s,supersede,monarchists,falla,miyako,notching,bhumibol,polarizing,secularized,shingled,bronislaw,lockerbie,soleyman,bundesbahn,latakia,redoubts,boult,inwardly,invents,ondrej,minangkabau,newquay,permanente,alhaji,madhav,malini,ellice,bookmaker,mankiewicz,etihad,o'dea,interrogative,mikawa,wallsend,canisius,bluesy,vitruvius,noord,ratifying,mixtec,gujranwala,subprefecture,keelung,goiania,nyssa,shi'ite,semitone,ch'uan,computerised,pertuan,catapults,nepomuk,shruti,millstones,buskerud,acolytes,tredegar,sarum,armia,dell'arte,devises,custodians,upturned,gallaudet,disembarking,thrashed,sagrada,myeon,undeclared,qumran,gaiden,tepco,janesville,showground,condense,chalon,unstaffed,pasay,undemocratic,hauts,viridis,uninjured,escutcheon,gymkhana,petaling,hammam,dislocations,tallaght,rerum,shias,indios,guaranty,simplicial,benares,benediction,tajiri,prolifically,huawei,onerous,grantee,ferencvaros,otranto,carbonates,conceit,digipak,qadri,masterclasses,swamiji,cradock,plunket,helmsman,
119th,salutes,tippecanoe,murshidabad,intelligibility,mittal,diversifying,bidar,asansol,crowdsourcing,rovere,karakoram,grindcore,skylights,tulagi,furrows,ligne,stuka,sumer,subgraph,amata,regionalist,bulkeley,teletext,glorify,readied,lexicographer,sabadell,predictability,quilmes,phenylalanine,bandaranaike,pyrmont,marksmen,quisling,viscountess,sociopolitical,afoul,pediments,swazi,martyrology,nullify,panagiotis,superconductors,veldenz,jujuy,l'isle,hematopoietic,shafi,subsea,hattiesburg,jyvaskyla,kebir,myeloid,landmine,derecho,amerindians,birkenau,scriabin,milhaud,mucosal,nikaya,freikorps,theoretician,proconsul,o'hanlon,clerked,bactria,houma,macular,topologically,shrubby,aryeh,ghazali,afferent,magalhaes,moduli,ashtabula,vidarbha,securitate,ludwigsburg,adoor,varun,shuja,khatun,chengde,bushels,lascelles,professionnelle,elfman,rangpur,unpowered,citytv,chojnice,quaternion,stokowski,aschaffenburg,commutes,subramaniam,methylene,satrap,gharb,namesakes,rathore,helier,gestational,heraklion,colliers,giannis,pastureland,evocation,krefeld,mahadeva,churchmen,egret,yilmaz,galeazzo,pudukkottai,artigas,generalitat,mudslides,frescoed,enfeoffed,aphorisms,melilla,montaigne,gauliga,parkdale,mauboy,linings,prema,sapir,xylophone,kushan,rockne,sequoyah,vasyl,rectilinear,vidyasagar,microcosm,san'a,carcinogen,thicknesses,aleut,farcical,moderating,detested,hegemonic,instalments,vauban,verwaltungsgemeinschaft,picayune,razorback,magellanic,moluccas,pankhurst,exportation,waldegrave,sufferer,bayswater,
1up.com,rearmament,orangutans,varazdin,b.o.b,elucidate,harlingen,erudition,brankovic,lapis,slipway,urraca,shinde,unwell,elwes,euboea,colwyn,srivijaya,grandstands,hortons,generalleutnant,fluxes,peterhead,gandhian,reals,alauddin,maximized,fairhaven,endow,ciechanow,perforations,darters,panellist,manmade,litigants,exhibitor,tirol,caracalla,conformance,hotelier,stabaek,hearths,borac,frisians,ident,veliko,emulators,schoharie,uzbeks,samarra,prestwick,wadia,universita,tanah,bucculatrix,predominates,genotypes,denounces,roadsides,ganassi,keokuk,philatelist,tomic,ingots,conduits,samplers,abdus,johar,allegories,timaru,wolfpacks,secunda,smeaton,sportivo,inverting,contraindications,whisperer,moradabad,calamities,bakufu,soundscape,smallholders,nadeem,crossroad,xenophobic,zakir,nationalliga,glazes,retroflex,schwyz,moroder,rubra,quraysh,theodoros,endemol,infidels,km/hr,repositioned,portraitist,lluis,answerable,arges,mindedness,coarser,eyewall,teleported,scolds,uppland,vibraphone,ricoh,isenburg,bricklayer,cuttlefish,abstentions,communicable,cephalopod,stockyards,balto,kinston,armbar,bandini,elphaba,maxims,bedouins,sachsen,friedkin,tractate,pamir,ivanovo,mohini,kovalainen,nambiar,melvyn,orthonormal,matsuyama,cuernavaca,veloso,overstated,streamer,dravid,informers,analyte,sympathized,streetscape,gosta,thomasville,grigore,futuna,depleting,whelks,kiedis,armadale,earner,wynyard,dothan,animating,tridentine,sabri,immovable,rivoli,ariege,parley,clinker,circulates,junagadh,fraunhofer,congregants,
180th,buducnost,formula_62,olmert,dedekind,karnak,bayernliga,mazes,sandpiper,ecclestone,yuvan,smallmouth,decolonization,lemmy,adjudicated,retiro,legia,benue,posit,acidification,wahab,taconic,floatplane,perchlorate,atria,wisbech,divestment,dallara,phrygia,palustris,cybersecurity,rebates,facie,mineralogical,substituent,proteges,fowey,mayenne,smoothbore,cherwell,schwarzschild,junin,murrumbidgee,smalltalk,d'orsay,emirati,calaveras,titusville,theremin,vikramaditya,wampanoag,burra,plaines,onegin,emboldened,whampoa,langa,soderbergh,arnaz,sowerby,arendal,godunov,pathanamthitta,damselfly,bestowing,eurosport,iconoclasm,outfitters,acquiesced,badawi,hypotension,ebbsfleet,annulus,sohrab,thenceforth,chagatai,necessitates,aulus,oddities,toynbee,uniontown,innervation,populaire,indivisible,rossellini,minuet,cyrene,gyeongju,chania,cichlids,harrods,
1690s,plunges,abdullahi,gurkhas,homebuilt,sortable,bangui,rediff,incrementally,demetrios,medaille,sportif,svend,guttenberg,tubules,carthusian,pleiades,torii,hoppus,phenyl,hanno,conyngham,teschen,cronenberg,wordless,melatonin,distinctiveness,autos,freising,xuanzang,dunwich,satanism,sweyn,predrag,contractually,pavlovic,malaysians,micrometres,expertly,pannonian,abstaining,capensis,southwesterly,catchphrases,commercialize,frankivsk,normanton,hibernate,verso,deportees,dubliners,codice_8,condors,zagros,glosses,leadville,conscript,morrisons,usury,ossian,oulton,vaccinium,civet,ayman,codrington,hadron,nanometers,geochemistry,extractor,grigori,tyrrhenian,neocollyris,drooping,falsification,werft,courtauld,brigantine,orhan,chapultepec,supercopa,federalized,praga,havering,encampments,infallibility,sardis,pawar,undirected,reconstructionist,ardrossan,varuna,pastimes,archdiocesan,fledging,shenhua,molise,secondarily,stagnated,replicates,ciencias,duryodhana,marauding,ruislip,ilyich,intermixed,ravenswood,shimazu,mycorrhizal,icosahedral,consents,dunblane,follicular,pekin,suffield,muromachi,kinsale,gauche,businesspeople,thereto,watauga,exaltation,chelmno,gorse,proliferate,drainages,burdwan,kangra,transducers,inductor,duvalier,maguindanao,moslem,uncaf,givenchy,plantarum,liturgics,telegraphs,lukashenko,chenango,andante,novae,ironwood,faubourg,torme,chinensis,ambala,pietermaritzburg,virginians,landform,bottlenecks,o'driscoll,darbhanga,baptistery,ameer,needlework,naperville,auditoriums,mullingar,starrer,animatronic,topsoil,madura,cannock,vernet,santurce,catocala,ozeki,pontevedra,multichannel,sundsvall,strategists,medio,
135th,halil,afridi,trelawny,caloric,ghraib,allendale,hameed,ludwigshafen,spurned,pavlo,palmar,strafed,catamarca,aveiro,harmonization,surah,predictors,solvay,mande,omnipresent,parenthesis,echolocation,equaling,experimenters,acyclic,lithographic,sepoys,katarzyna,sridevi,impoundment,khosrow,caesarean,nacogdoches,rockdale,lawmaker,caucasians,bahman,miyan,rubric,exuberance,bombastic,ductile,snowdonia,inlays,pinyon,anemones,hurries,hospitallers,tayyip,pulleys,treme,photovoltaics,testbed,polonium,ryszard,osgoode,profiting,ironwork,unsurpassed,nepticulidae,makai,lumbini,preclassic,clarksburg,egremont,videography,rehabilitating,ponty,sardonic,geotechnical,khurasan,solzhenitsyn,henna,phoenicia,rhyolite,chateaux,retorted,tomar,deflections,repressions,harborough,renan,brumbies,vandross,storia,vodou,clerkenwell,decking,universo,salon.com,imprisoning,sudwest,ghaziabad,subscribing,pisgah,sukhumi,econometric,clearest,pindar,yildirim,iulia,atlases,cements,remaster,dugouts,collapsible,resurrecting,batik,unreliability,thiers,conjunctions,colophon,marcher,placeholder,flagella,wolds,kibaki,viviparous,twelver,screenshots,aroostook,khadr,iconographic,itasca,jaume,basti,propounded,varro,be'er,jeevan,exacted,shrublands,creditable,brocade,boras,bittern,oneonta,attentional,herzliya,comprehensible,lakeville,discards,caxias,frankland,camerata,satoru,matlab,commutator,interprovincial,yorkville,benefices,nizami,edwardsville,amigaos,cannabinoid,indianola,amateurliga,pernicious,ubiquity,anarchic,novelties,precondition,zardari,symington,sargodha,headphone,thermopylae,mashonaland,zindagi,thalberg,loewe,surfactants,dobro,crocodilians,samhita,diatoms,haileybury,berwickshire,supercritical,sofie,snorna,slatina,intramolecular,agung,osteoarthritis,obstetric,teochew,vakhtang,connemara,deformations,diadem,ferruccio,mainichi,qualitatively,refrigerant,rerecorded,methylated,karmapa,krasinski,restatement,rouvas,cubitt,seacoast,schwarzkopf,homonymous,shipowner,thiamine,approachable,xiahou,
160th,ecumenism,polistes,internazionali,fouad,berar,biogeography,texting,inadequately,'when,
4kids,hymenoptera,emplaced,cognomen,bellefonte,supplant,michaelmas,uriel,tafsir,morazan,schweinfurt,chorister,ps400,nscaa,petipa,resolutely,ouagadougou,mascarene,supercell,konstanz,bagrat,harmonix,bergson,shrimps,resonators,veneta,camas,mynydd,rumford,generalmajor,khayyam,web.com,pappus,halfdan,tanana,suomen,yutaka,bibliographical,traian,silat,noailles,contrapuntal,agaricus,'special,minibuses,
1670s,obadiah,deepa,rorschach,malolos,lymington,valuations,imperials,caballeros,ambroise,judicature,elegiac,sedaka,shewa,checksum,gosforth,legionaries,corneille,microregion,friedrichshafen,antonis,surnamed,mycelium,cantus,educations,topmost,outfitting,ivica,nankai,gouda,anthemic,iosif,supercontinent,antifungal,belarusians,mudaliar,mohawks,caversham,glaciated,basemen,stevan,clonmel,loughton,deventer,positivist,manipuri,tensors,panipat,changeup,impermeable,dubbo,elfsborg,maritimo,regimens,bikram,bromeliad,substratum,norodom,gaultier,queanbeyan,pompeo,redacted,eurocopter,mothballed,centaurs,borno,copra,bemidji,'home,sopron,neuquen,passo,cineplex,alexandrov,wysokie,mammoths,yossi,sarcophagi,congreve,petkovic,extraneous,waterbirds,slurs,indias,phaeton,discontented,prefaced,abhay,prescot,interoperable,nordisk,bicyclists,validly,sejong,litovsk,zanesville,kapitanleutnant,kerch,changeable,mcclatchy,celebi,attesting,maccoll,sepahan,wayans,veined,gaudens,markt,dansk,soane,quantized,petersham,forebears,nayarit,frenzied,queuing,bygone,viggo,ludwik,tanka,hanssen,brythonic,cornhill,primorsky,stockpiles,conceptualization,lampeter,hinsdale,mesoderm,bielsk,rosenheim,ultron,joffrey,stanwyck,khagan,tiraspol,pavelic,ascendant,empoli,metatarsal,descentralizado,masada,ligier,huseyin,ramadi,waratah,tampines,ruthenium,statoil,mladost,liger,grecian,multiparty,digraph,maglev,reconsideration,radiography,cartilaginous,taizu,wintered,anabaptist,peterhouse,shoghi,assessors,numerator,paulet,painstakingly,halakhic,rocroi,motorcycling,gimel,kryptonian,emmeline,cheeked,drawdown,lelouch,dacians,brahmana,reminiscence,disinfection,optimizations,golders,extensor,tsugaru,tolling,liman,gulzar,unconvinced,crataegus,oppositional,dvina,pyrolysis,mandan,alexius,prion,stressors,loomed,moated,dhivehi,recyclable,relict,nestlings,sarandon,kosovar,solvers,czeslaw,kenta,maneuverable,middens,berkhamsted,comilla,folkways,loxton,beziers,batumi,petrochemicals,optimised,sirjan,rabindra,musicality,rationalisation,drillers,subspaces,'live,bbwaa,outfielders,tsung,danske,vandalised,norristown,striae,kanata,gastroenterology,steadfastly,equalising,bootlegging,mannerheim,notodontidae,lagoa,commentating,peninsulas,chishti,seismology,modigliani,preceptor,canonically,awardee,boyaca,hsinchu,stiffened,nacelle,bogor,dryness,unobstructed,yaqub,scindia,peeters,irritant,ammonites,ferromagnetic,speechwriter,oxygenated,walesa,millais,canarian,faience,calvinistic,discriminant,rasht,inker,annexes,howth,allocates,conditionally,roused,regionalism,regionalbahn,functionary,nitrates,bicentenary,recreates,saboteurs,koshi,plasmids,thinned,
124th,plainview,kardashian,neuville,victorians,radiates,
127th,vieques,schoolmates,petru,tokusatsu,keying,sunaina,flamethrower,'bout,demersal,hosokawa,corelli,omniscient,o'doherty,niksic,reflectivity,transdev,cavour,metronome,temporally,gabba,nsaids,geert,mayport,hematite,boeotia,vaudreuil,torshavn,sailplane,mineralogist,eskisehir,practises,gallifrey,takumi,unease,slipstream,hedmark,paulinus,ailsa,wielkopolska,filmworks,adamantly,vinaya,facelifted,franchisee,augustana,toppling,velvety,crispa,stonington,histological,genealogist,tactician,tebow,betjeman,nyingma,overwinter,oberoi,rampal,overwinters,petaluma,lactarius,stanmore,balikpapan,vasant,inclines,laminate,munshi,sociedade,rabbah,septal,boyband,ingrained,faltering,inhumans,nhtsa,affix,l'ordre,kazuki,rossendale,mysims,latvians,slaveholders,basilicata,neuburg,assize,manzanillo,scrobipalpa,formula_61,belgique,pterosaurs,privateering,vaasa,veria,northport,pressurised,hobbyist,austerlitz,sahih,bhadra,siliguri,bistrica,bursaries,wynton,corot,lepidus,lully,libor,libera,olusegun,choline,mannerism,lymphocyte,chagos,duxbury,parasitism,ecowas,morotai,cancion,coniston,aggrieved,sputnikmusic,parle,ammonian,civilisations,malformation,cattaraugus,skyhawks,d'arc,demerara,bronfman,midwinter,piscataway,jogaila,threonine,matins,kohlberg,hubli,pentatonic,camillus,nigam,potro,unchained,chauvel,orangeville,cistercians,redeployment,xanthi,manju,carabinieri,pakeha,nikolaevich,kantakouzenos,sesquicentennial,gunships,symbolised,teramo,ballo,crusading,l'oeil,bharatpur,lazier,gabrovo,hysteresis,rothbard,chaumont,roundel,ma'mun,sudhir,queried,newts,shimane,presynaptic,playfield,taxonomists,sensitivities,freleng,burkinabe,orfeo,autovia,proselytizing,bhangra,pasok,jujutsu,heung,pivoting,hominid,commending,formula_64,epworth,christianized,oresund,hantuchova,rajputana,hilversum,masoretic,dayak,bakri,assen,magog,macromolecules,waheed,qaida,spassky,rumped,protrudes,preminger,misogyny,glencairn,salafi,lacunae,grilles,racemes,areva,alighieri,inari,epitomized,photoshoot,one-of-a-kind,tring,muralist,tincture,backwaters,weaned,yeasts,analytically,smaland,caltrans,vysocina,jamuna,mauthausen,
175th,nouvelles,censoring,reggina,christology,gilad,amplifying,mehmood,johnsons,redirects,eastgate,sacrum,meteoric,riverbanks,guidebooks,ascribes,scoparia,iconoclastic,telegraphic,chine,merah,mistico,lectern,sheung,aethelstan,capablanca,anant,uspto,albatrosses,mymensingh,antiretroviral,clonal,coorg,vaillant,liquidator,gigas,yokai,eradicating,motorcyclists,waitakere,tandon,nears,montenegrins,
250th,tatsuya,yassin,atheistic,syncretism,nahum,berisha,transcended,owensboro,lakshmana,abteilung,unadorned,nyack,overflows,harrisonburg,complainant,uematsu,frictional,worsens,sangguniang,abutment,bulwer,sarma,apollinaire,shippers,lycia,alentejo,porpoises,optus,trawling,augustow,blackwall,workbench,westmount,leaped,sikandar,conveniences,stornoway,culverts,zoroastrians,hristo,ansgar,assistive,reassert,fanned,compasses,delgada,maisons,arima,plonsk,verlaine,starstruck,rakhine,befell,spirally,wyclef,expend,colloquium,formula_63,albertus,bellarmine,handedness,holon,introns,movimiento,profitably,lohengrin,discoverers,awash,erste,pharisees,dwarka,oghuz,hashing,heterodox,uloom,vladikavkaz,linesman,rehired,nucleophile,germanicus,gulshan,songz,bayerische,paralympian,crumlin,enjoined,khanum,prahran,penitent,amersfoort,saranac,semisimple,vagrants,compositing,tualatin,oxalate,lavra,ironi,ilkeston,umpqua,calum,stretford,zakat,guelders,hydrazine,birkin,spurring,modularity,aspartate,sodermanland,hopital,bellary,legazpi,clasico,cadfael,hypersonic,volleys,pharmacokinetics,carotene,orientale,pausini,bataille,lunga,retailed,m.phil,mazowieckie,vijayan,rawal,sublimation,promissory,estimators,ploughed,conflagration,penda,segregationist,otley,amputee,coauthor,sopra,pellew,wreckers,tollywood,circumscription,permittivity,strabane,landward,articulates,beaverbrook,rutherglen,coterminous,whistleblowers,colloidal,surbiton,atlante,oswiecim,bhasa,lampooned,chanter,saarc,landkreis,tribulation,tolerates,daiichi,hatun,cowries,dyschirius,abercromby,attock,aldwych,inflows,absolutist,l'histoire,committeeman,vanbrugh,headstock,westbourne,appenzell,hoxton,oculus,westfalen,roundabouts,nickelback,trovatore,quenching,summarises,conservators,transmutation,talleyrand,barzani,unwillingly,axonal,'blue,opining,enveloping,fidesz,rafah,colborne,flickr,lozenge,dulcimer,ndebele,swaraj,oxidize,gonville,resonated,gilani,superiore,endeared,janakpur,shepperton,solidifying,memoranda,sochaux,kurnool,rewari,emirs,kooning,bruford,unavailability,kayseri,judicious,negating,pterosaur,cytosolic,chernihiv,variational,sabretooth,seawolves,devalued,nanded,adverb,volunteerism,sealers,nemours,smederevo,kashubian,bartin,animax,vicomte,polotsk,polder,archiepiscopal,acceptability,quidditch,tussock,seminaire,immolation,belge,coves,wellingborough,khaganate,mckellen,nayaka,brega,kabhi,pontoons,bascule,newsreels,injectors,cobol,weblog,diplo,biggar,wheatbelt,erythrocytes,pedra,showgrounds,bogdanovich,eclecticism,toluene,elegies,formalize,andromedae,airworthiness,springville,mainframes,overexpression,magadha,bijelo,emlyn,glutamine,accenture,uhuru,metairie,arabidopsis,patanjali,peruvians,berezovsky,accion,astrolabe,jayanti,earnestly,sausalito,recurved,
1500s,ramla,incineration,galleons,laplacian,shiki,smethwick,isomerase,dordevic,janow,jeffersonville,internationalism,penciled,styrene,ashur,nucleoside,peristome,horsemanship,sedges,bachata,medes,kristallnacht,schneerson,reflectance,invalided,strutt,draupadi,destino,partridges,tejas,quadrennial,aurel,halych,ethnomusicology,autonomist,radyo,rifting,shi'ar,crvena,telefilm,zawahiri,plana,sultanates,theodorus,subcontractors,pavle,seneschal,teleports,chernivtsi,buccal,brattleboro,stankovic,safar,dunhuang,electrocution,chastised,ergonomic,midsomer,
130th,zomba,nongovernmental,escapist,localize,xuzhou,kyrie,carinthian,karlovac,nisan,kramnik,pilipino,digitisation,khasi,andronicus,highwayman,maior,misspelling,sebastopol,socon,rhaetian,archimandrite,partway,positivity,otaku,dingoes,tarski,geopolitics,disciplinarian,zulfikar,kenzo,globose,electrophilic,modele,storekeeper,pohang,wheldon,washers,interconnecting,digraphs,intrastate,campy,helvetic,frontispiece,ferrocarril,anambra,petraeus,midrib,endometrial,dwarfism,mauryan,endocytosis,brigs,percussionists,furtherance,synergistic,apocynaceae,krona,berthier,circumvented,casal,siltstone,precast,ethnikos,realists,geodesy,zarzuela,greenback,tripathi,persevered,interments,neutralization,olbermann,departements,supercomputing,demobilised,cassavetes,dunder,ministering,veszprem,barbarism,'world,pieve,apologist,frentzen,sulfides,firewalls,pronotum,staatsoper,hachette,makhachkala,oberland,phonon,yoshihiro,instars,purnima,winslet,mutsu,ergative,sajid,nizamuddin,paraphrased,ardeidae,kodagu,monooxygenase,skirmishers,sportiva,o'byrne,mykolaiv,ophir,prieta,gyllenhaal,kantian,leche,copan,herero,ps250,gelsenkirchen,shalit,sammarinese,chetwynd,wftda,travertine,warta,sigmaringen,concerti,namespace,ostergotland,biomarker,universals,collegio,embarcadero,wimborne,fiddlers,likening,ransomed,stifled,unabated,kalakaua,khanty,gongs,goodrem,countermeasure,publicizing,geomorphology,swedenborg,undefended,catastrophes,diverts,storyboards,amesbury,contactless,placentia,festivity,authorise,terrane,thallium,stradivarius,antonine,consortia,estimations,consecrate,supergiant,belichick,pendants,butyl,groza,univac,afire,kavala,studi,teletoon,paucity,gonbad,koninklijke,
128th,stoichiometric,multimodal,facundo,anatomic,melamine,creuse,altan,brigands,mcguinty,blomfield,tsvangirai,protrusion,lurgan,warminster,tenzin,russellville,discursive,definable,scotrail,lignin,reincorporated,o'dell,outperform,redland,multicolored,evaporates,dimitrie,limbic,patapsco,interlingua,surrogacy,cutty,potrero,masud,cahiers,jintao,ardashir,centaurus,plagiarized,minehead,musings,statuettes,logarithms,seaview,prohibitively,downforce,rivington,tomorrowland,microbiologist,ferric,morag,capsid,kucinich,clairvaux,demotic,seamanship,cicada,painterly,cromarty,carbonic,tupou,oconee,tehuantepec,typecast,anstruther,internalized,underwriters,tetrahedra,flagrant,quakes,pathologies,ulrik,nahal,tarquini,dongguan,parnassus,ryoko,senussi,seleucia,airasia,einer,sashes,d'amico,matriculating,arabesque,honved,biophysical,hardinge,kherson,mommsen,diels,icbms,reshape,brasiliensis,palmach,netaji,oblate,functionalities,grigor,blacksburg,recoilless,melanchthon,reales,astrodome,handcrafted,memes,theorizes,isma'il,aarti,pirin,maatschappij,stabilizes,honiara,ashbury,copts,rootes,defensed,queiroz,mantegna,galesburg,coraciiformesfamily,cabrillo,tokio,antipsychotics,kanon,
173rd,apollonia,finial,lydian,hadamard,rangi,dowlatabad,monolingual,platformer,subclasses,chiranjeevi,mirabeau,newsgroup,idmanyurdu,kambojas,walkover,zamoyski,generalist,khedive,flanges,knowle,bande,
157th,alleyn,reaffirm,pininfarina,zuckerberg,hakodate,
131st,aditi,bellinzona,vaulter,planking,boscombe,colombians,lysis,toppers,metered,nahyan,queensryche,minho,nagercoil,firebrand,foundress,bycatch,mendota,freeform,antena,capitalisation,martinus,overijssel,purists,interventionist,zgierz,burgundians,hippolyta,trompe,umatilla,moroccans,dictionnaire,hydrography,changers,chota,rimouski,aniline,bylaw,grandnephew,neamt,lemnos,connoisseurs,tractive,rearrangements,fetishism,finnic,apalachicola,landowning,calligraphic,circumpolar,mansfeld,legible,orientalism,tannhauser,blamey,maximization,noinclude,blackbirds,angara,ostersund,pancreatitis,glabra,acleris,juried,jungian,triumphantly,singlet,plasmas,synesthesia,yellowhead,unleashes,choiseul,quanzhong,brookville,kaskaskia,igcse,skatepark,jatin,jewellers,scaritinae,techcrunch,tellurium,lachaise,azuma,codeshare,dimensionality,unidirectional,scolaire,macdill,camshafts,unassisted,verband,kahlo,eliya,prelature,chiefdoms,saddleback,sockers,iommi,coloratura,llangollen,biosciences,harshest,maithili,k'iche,plical,multifunctional,andreu,tuskers,confounding,sambre,quarterdeck,ascetics,berdych,transversal,tuolumne,sagami,petrobras,brecker,menxia,instilling,stipulating,korra,oscillate,deadpan,v/line,pyrotechnic,stoneware,prelims,intracoastal,retraining,ilija,berwyn,encrypt,achievers,zulfiqar,glycoproteins,khatib,farmsteads,occultist,saman,fionn,derulo,khilji,obrenovic,argosy,toowong,dementieva,sociocultural,iconostasis,craigslist,festschrift,taifa,intercalated,tanjong,penticton,sharad,marxian,extrapolation,guises,wettin,prabang,exclaiming,kosta,famas,conakry,wanderings,'aliabad,macleay,exoplanet,bancorp,besiegers,surmounting,checkerboard,rajab,vliet,tarek,operable,wargaming,haldimand,fukuyama,uesugi,aggregations,erbil,brachiopods,tokyu,anglais,unfavorably,ujpest,escorial,armagnac,nagara,funafuti,ridgeline,cocking,o'gorman,compactness,retardant,krajowa,barua,coking,bestows,thampi,chicagoland,variably,o'loughlin,minnows,schwa,shaukat,polycarbonate,chlorinated,godalming,gramercy,delved,banqueting,enlil,sarada,prasanna,domhnall,decadal,regressive,lipoprotein,collectable,surendra,zaporizhia,cycliste,suchet,offsetting,formula_65,pudong,d'arte,blyton,quonset,osmania,tientsin,manorama,proteomics,bille,jalpaiguri,pertwee,barnegat,inventiveness,gollancz,euthanized,henricus,shortfalls,wuxia,chlorides,cerrado,polyvinyl,folktale,straddled,bioengineering,eschewing,greendale,recharged,olave,ceylonese,autocephalous,peacebuilding,wrights,guyed,rosamund,abitibi,bannockburn,gerontology,scutari,souness,seagram,codice_9,'open,xhtml,taguig,purposed,darbar,orthopedics,unpopulated,kisumu,tarrytown,feodor,polyhedral,monadnock,gottorp,priam,redesigning,gasworks,elfin,urquiza,homologation,filipovic,bohun,manningham,gornik,soundness,shorea,lanus,gelder,darke,sandgate,criticality,paranaense,
153rd,vieja,lithograph,trapezoid,tiebreakers,convalescence,yan'an,actuaries,balad,altimeter,thermoelectric,trailblazer,previn,tenryu,ancaster,endoscopy,nicolet,discloses,fracking,plaine,salado,americanism,placards,absurdist,propylene,breccia,jirga,documenta,ismailis,
161st,brentano,dallas/fort,embellishment,calipers,subscribes,mahavidyalaya,wednesbury,barnstormers,miwok,schembechler,minigame,unterberger,dopaminergic,inacio,nizamabad,overridden,monotype,cavernous,stichting,sassafras,sotho,argentinean,myrrh,rapidity,flatts,gowrie,dejected,kasaragod,cyprinidae,interlinked,arcseconds,degeneracy,infamously,incubate,substructure,trigeminal,sectarianism,marshlands,hooliganism,hurlers,isolationist,urania,burrard,switchover,lecco,wilts,interrogator,strived,ballooning,volterra,raciborz,relegating,gilding,cybele,dolomites,parachutist,lochaber,orators,raeburn,backend,benaud,rallycross,facings,banga,nuclides,defencemen,futurity,emitters,yadkin,eudonia,zambales,manasseh,sirte,meshes,peculiarly,mcminnville,roundly,boban,decrypt,icelanders,sanam,chelan,jovian,grudgingly,penalised,subscript,gambrinus,poaceae,infringements,maleficent,runciman,
148th,supersymmetry,granites,liskeard,eliciting,involution,hallstatt,kitzbuhel,shankly,sandhills,inefficiencies,yishuv,psychotropic,nightjars,wavell,sangamon,vaikundar,choshu,retrospectives,pitesti,gigantea,hashemi,bosna,gakuin,siochana,arrangers,baronetcies,narayani,temecula,creston,koscierzyna,autochthonous,wyandot,anniston,igreja,mobilise,buzau,dunster,musselburgh,wenzhou,khattak,detoxification,decarboxylase,manlius,campbells,coleoptera,copyist,sympathisers,suisun,eminescu,defensor,transshipment,thurgau,somerton,fluctuates,ambika,weierstrass,lukow,giambattista,volcanics,romanticized,innovated,matabeleland,scotiabank,garwolin,purine,d'auvergne,borderland,maozhen,pricewaterhousecoopers,testator,pallium,scout.com,mv/pi,nazca,curacies,upjohn,sarasvati,monegasque,ketrzyn,malory,spikelets,biomechanics,haciendas,rapped,dwarfed,stews,nijinsky,subjection,matsu,perceptible,schwarzburg,midsection,entertains,circuitous,epiphytic,wonsan,alpini,bluefield,sloths,transportable,braunfels,dictum,szczecinek,jukka,wielun,wejherowo,hucknall,grameen,duodenum,ribose,deshpande,shahar,nexstar,injurious,dereham,lithographer,dhoni,structuralist,progreso,deschutes,christus,pulteney,quoins,yitzchak,gyeongsang,breviary,makkah,chiyoda,jutting,vineland,angiosperms,necrotic,novelisation,redistribute,tirumala,
140th,featureless,mafic,rivaling,toyline,
2/
1st,martius,saalfeld,monthan,texian,kathak,melodramas,mithila,regierungsbezirk,
509th,fermenting,schoolmate,virtuosic,briain,kokoda,heliocentric,handpicked,kilwinning,sonically,dinars,kasim,parkways,bogdanov,luxembourgian,halland,avesta,bardic,daugavpils,excavator,qwest,frustrate,physiographic,majoris,'ndrangheta,unrestrained,firmness,montalban,abundances,preservationists,adare,executioners,guardsman,bonnaroo,neglects,nazrul,pro12,hoorn,abercorn,refuting,kabud,cationic,parapsychology,troposphere,venezuelans,malignancy,khoja,unhindered,accordionist,medak,visby,ejercito,laparoscopic,dinas,umayyads,valmiki,o'dowd,saplings,stranding,incisions,illusionist,avocets,buccleuch,amazonia,fourfold,turboprops,roosts,priscus,turnstile,areal,certifies,pocklington,spoofs,viseu,commonalities,dabrowka,annam,homesteaders,daredevils,mondrian,negotiates,fiestas,perennials,maximizes,lubavitch,ravindra,scrapers,finials,kintyre,violas,snoqualmie,wilders,openbsd,mlawa,peritoneal,devarajan,congke,leszno,mercurial,fakir,joannes,bognor,overloading,unbuilt,gurung,scuttle,temperaments,bautzen,jardim,tradesman,visitations,barbet,sagamore,graaff,forecasters,wilsons,assis,l'air,shariah,sochaczew,russa,dirge,biliary,neuve,heartbreakers,strathearn,jacobian,overgrazing,edrich,anticline,parathyroid,petula,lepanto,decius,channelled,parvathi,puppeteers,communicators,francorchamps,kahane,longus,panjang,intron,traite,xxvii,matsuri,amrit,katyn,disheartened,cacak,omonia,alexandrine,partaking,wrangling,adjuvant,haskovo,tendrils,greensand,lammermoor,otherworld,volusia,stabling,one-and-a-half,bresson,zapatista,eotvos,ps150,webisodes,stepchildren,microarray,braganca,quanta,dolne,superoxide,bellona,delineate,ratha,lindenwood,bruhl,cingulate,tallies,bickerton,helgi,bevin,takoma,tsukuba,statuses,changeling,alister,bytom,dibrugarh,magnesia,duplicating,outlier,abated,goncalo,strelitz,shikai,mardan,musculature,ascomycota,springhill,tumuli,gabaa,odenwald,reformatted,autocracy,theresienstadt,suplex,chattopadhyay,mencken,congratulatory,weatherfield,systema,solemnity,projekt,quanzhou,kreuzberg,postbellum,nobuo,mediaworks,finisterre,matchplay,bangladeshis,kothen,oocyte,hovered,aromas,afshar,browed,teases,chorlton,arshad,cesaro,backbencher,iquique,vulcans,padmini,unabridged,cyclase,despotic,kirilenko,achaean,queensberry,debre,octahedron,iphigenia,curbing,karimnagar,sagarmatha,smelters,surrealists,sanada,shrestha,turridae,leasehold,jiedushi,eurythmics,appropriating,correze,thimphu,amery,musicomh,cyborgs,sandwell,pushcart,retorts,ameliorate,deteriorates,stojanovic,spline,entrenchments,bourse,chancellorship,pasolini,lendl,personage,reformulated,pubescens,loiret,metalurh,reinvention,nonhuman,eilema,tarsal,complutense,magne,broadview,metrodome,outtake,stouffville,seinen,bataillon,phosphoric,ostensible,opatow,aristides,beefheart,glorifying,banten,romsey,seamounts,fushimi,prophylaxis,sibylla,ranjith,goslar,balustrades,georgiev,caird,lafitte,peano,canso,bankura,halfpenny,segregate,caisson,bizerte,jamshedpur,euromaidan,philosophie,ridged,cheerfully,reclassification,aemilius,visionaries,samoans,wokingham,chemung,wolof,unbranched,cinerea,bhosle,ourense,immortalised,cornerstones,sourcebook,khufu,archimedean,universitatea,intermolecular,fiscally,suffices,metacomet,adjudicator,stablemate,specks,glace,inowroclaw,patristic,muharram,agitating,ashot,neurologic,didcot,gamla,ilves,putouts,siraj,laski,coaling,diarmuid,ratnagiri,rotulorum,liquefaction,morbihan,harel,aftershock,gruiformesfamily,bonnier,falconiformesfamily,adorns,wikis,maastrichtian,stauffenberg,bishopsgate,fakhr,sevenfold,ponders,quantifying,castiel,opacity,depredations,lenten,gravitated,o'mahony,modulates,inuktitut,paston,kayfabe,vagus,legalised,balked,arianism,tendering,sivas,birthdate,awlaki,khvajeh,shahab,samtgemeinde,bridgeton,amalgamations,biogenesis,recharging,tsukasa,mythbusters,chamfered,enthronement,freelancers,maharana,constantia,sutil,messines,monkton,okanogan,reinvigorated,apoplexy,tanahashi,neues,valiants,harappan,russes,carding,volkoff,funchal,statehouse,imitative,intrepidity,mellotron,samaras,turkana,besting,longitudes,exarch,diarrhoea,transcending,zvonareva,darna,ramblin,disconnection,
137th,refocused,diarmait,agricole,ba'athist,turenne,contrabass,communis,daviess,fatimids,frosinone,fittingly,polyphyletic,qanat,theocratic,preclinical,abacha,toorak,marketplaces,conidia,seiya,contraindicated,retford,bundesautobahn,rebuilds,climatology,seaworthy,starfighter,qamar,categoria,malai,hellinsia,newstead,airworthy,catenin,avonmouth,arrhythmias,ayyavazhi,downgrade,ashburnham,ejector,kinematics,petworth,rspca,filmation,accipitridae,chhatrapati,g/mol,bacau,agama,ringtone,yudhoyono,orchestrator,arbitrators,
138th,powerplants,cumbernauld,alderley,misamis,hawai`i,cuando,meistriliiga,jermyn,alans,pedigrees,ottavio,approbation,omnium,purulia,prioress,rheinland,lymphoid,lutsk,oscilloscope,ballina,iliac,motorbikes,modernising,uffizi,phylloxera,kalevala,bengalis,amravati,syntheses,interviewers,inflectional,outflank,maryhill,unhurt,profiler,nacelles,heseltine,personalised,guarda,herpetologist,airpark,pigot,margaretha,dinos,peleliu,breakbeat,kastamonu,shaivism,delamere,kingsville,epigram,khlong,phospholipids,journeying,lietuvos,congregated,deviance,celebes,subsoil,stroma,kvitova,lubricating,layoff,alagoas,olafur,doron,interuniversity,raycom,agonopterix,uzice,nanna,springvale,raimundo,wrested,pupal,talat,skinheads,vestige,unpainted,handan,odawara,ammar,attendee,lapped,myotis,gusty,ciconiiformesfamily,traversal,subfield,vitaphone,prensa,hasidism,inwood,carstairs,kropotkin,turgenev,dobra,remittance,purim,tannin,adige,tabulation,lethality,pacha,micronesian,dhruva,defensemen,tibeto,siculus,radioisotope,sodertalje,phitsanulok,euphonium,oxytocin,overhangs,skinks,fabrica,reinterred,emulates,bioscience,paragliding,raekwon,perigee,plausibility,frolunda,erroll,aznar,vyasa,albinus,trevally,confederacion,terse,sixtieth,
1530s,kendriya,skateboarders,frontieres,muawiyah,easements,shehu,conservatively,keystones,kasem,brutalist,peekskill,cowry,orcas,syllabary,paltz,elisabetta,denticles,hampering,dolni,eidos,aarau,lermontov,yankton,shahbaz,barrages,kongsvinger,reestablishment,acetyltransferase,zulia,mrnas,slingsby,eucalypt,efficacious,weybridge,gradation,cinematheque,malthus,bampton,coexisted,cisse,hamdi,cupertino,saumarez,chionodes,libertine,formers,sakharov,pseudonymous,vol
.1,mcduck,gopalakrishnan,amberley,jorhat,grandmasters,rudiments,dwindle,param,bukidnon,menander,americanus,multipliers,pulawy,homoerotic,pillbox,cd+dvd,epigraph,aleksandrow,extrapolated,horseshoes,contemporain,angiography,hasselt,shawinigan,memorization,legitimized,cyclades,outsold,rodolphe,kelis,powerball,dijkstra,analyzers,incompressible,sambar,orangeburg,osten,reauthorization,adamawa,sphagnum,hypermarket,millipedes,zoroaster,madea,ossuary,murrayfield,pronominal,gautham,resellers,ethers,quarrelled,dolna,stragglers,asami,tangut,passos,educacion,sharaf,texel,berio,bethpage,bezalel,marfa,noronha,
36ers,genteel,avram,shilton,compensates,sweetener,reinstalled,disables,noether,
1590s,balakrishnan,kotaro,northallerton,cataclysm,gholam,cancellara,schiphol,commends,longinus,albinism,gemayel,hamamatsu,volos,islamism,sidereal,pecuniary,diggings,townsquare,neosho,lushan,chittoor,akhil,disputation,desiccation,cambodians,thwarting,deliberated,ellipsis,bahini,susumu,separators,kohneh,plebeians,kultur,ogaden,pissarro,trypeta,latur,liaodong,vetting,datong,sohail,alchemists,lengthwise,unevenly,masterly,microcontrollers,occupier,deviating,farringdon,baccalaureat,theocracy,chebyshev,archivists,jayaram,ineffectiveness,scandinavians,jacobins,encomienda,nambu,g/cm3,catesby,paavo,heeded,rhodium,idealised,
10deg,infective,mecyclothorax,halevy,sheared,minbari,audax,lusatian,rebuffs,hitfix,fastener,subjugate,tarun,binet,compuserve,synthesiser,keisuke,amalric,ligatures,tadashi,ignazio,abramovich,groundnut,otomo,maeve,mortlake,ostrogoths,antillean,todor,recto,millimetre,espousing,inaugurate,paracetamol,galvanic,harpalinae,jedrzejow,reassessment,langlands,civita,mikan,stikine,bijar,imamate,istana,kaiserliche,erastus,federale,cytosine,expansionism,hommes,norrland,smriti,snapdragon,gulab,taleb,lossy,khattab,urbanised,sesto,rekord,diffuser,desam,morganatic,silting,pacts,extender,beauharnais,purley,bouches,halfpipe,discontinuities,houthi,farmville,animism,horni,saadi,interpretative,blockades,symeon,biogeographic,transcaucasian,jetties,landrieu,astrocytes,conjunto,stumpings,weevils,geysers,redux,arching,romanus,tazeh,marcellinus,casein,opava,misrata,anare,sattar,declarer,dreux,oporto,venta,vallis,icosahedron,cortona,lachine,mohammedan,sandnes,zynga,clarin,diomedes,tsuyoshi,pribram,gulbarga,chartist,superettan,boscawen,altus,subang,gating,epistolary,vizianagaram,ogdensburg,panna,thyssen,tarkovsky,dzogchen,biograph,seremban,unscientific,nightjar,legco,deism,n.w.a,sudha,siskel,sassou,flintlock,jovial,montbeliard,pallida,formula_66,tranquillity,nisei,adornment,'people,yamhill,hockeyallsvenskan,adopters,appian,lowicz,haplotypes,succinctly,starogard,presidencies,kheyrabad,sobibor,kinesiology,cowichan,militum,cromwellian,leiningen,ps1.5,concourses,dalarna,goldfield,brzeg,faeces,aquarii,matchless,harvesters,
181st,numismatics,korfball,sectioned,transpires,facultative,brandishing,kieron,forages,menai,glutinous,debarge,heathfield,
1580s,malang,photoelectric,froome,semiotic,alwar,grammophon,chiaroscuro,mentalist,maramures,flacco,liquors,aleutians,marvell,sutlej,patnaik,qassam,flintoff,bayfield,haeckel,sueno,avicii,exoplanets,hoshi,annibale,vojislav,honeycombs,celebrant,rendsburg,veblen,quails,
141st,carronades,savar,narrations,jeeva,ontologies,hedonistic,marinette,godot,munna,bessarabian,outrigger,thame,gravels,hoshino,falsifying,stereochemistry,nacionalista,medially,radula,ejecting,conservatorio,odile,ceiba,jaina,essonne,isometry,allophones,recidivism,iveco,ganda,grammarians,jagan,signposted,uncompressed,facilitators,constancy,ditko,propulsive,impaling,interbank,botolph,amlaib,intergroup,sorbus,cheka,debye,praca,adorning,presbyteries,dormition,strategos,qarase,pentecostals,beehives,hashemite,goldust,euronext,egress,arpanet,soames,jurchens,slovenska,copse,kazim,appraisals,marischal,mineola,sharada,caricaturist,sturluson,galba,faizabad,overwintering,grete,uyezds,didsbury,libreville,ablett,microstructure,anadolu,belenenses,elocution,cloaks,timeslots,halden,rashidun,displaces,sympatric,germanus,tuples,ceska,equalize,disassembly,krautrock,babangida,memel,deild,gopala,hematology,underclass,sangli,wawrinka,assur,toshack,refrains,nicotinic,bhagalpur,badami,racetracks,pocatello,walgreens,nazarbayev,occultation,spinnaker,geneon,josias,hydrolyzed,dzong,corregimiento,waistcoat,thermoplastic,soldered,anticancer,lactobacillus,shafi'i,carabus,adjournment,schlumberger,triceratops,despotate,mendicant,krishnamurti,bahasa,earthworm,lavoisier,noetherian,kalki,fervently,bhawan,saanich,coquille,gannet,motagua,kennels,mineralization,fitzherbert,svein,bifurcated,hairdressing,felis,abounded,dimers,fervour,hebdo,bluffton,aetna,corydon,clevedon,carneiro,subjectively,deutz,gastropoda,overshot,concatenation,varman,carolla,maharshi,mujib,inelastic,riverhead,initialized,safavids,rohini,caguas,bulges,fotbollforbund,hefei,spithead,westville,maronites,lytham,americo,gediminas,stephanus,chalcolithic,hijra,gnu/linux,predilection,rulership,sterility,haidar,scarlatti,saprissa,sviatoslav,pointedly,sunroof,guarantor,thevar,airstrips,pultusk,sture,
129th,divinities,daizong,dolichoderus,cobourg,maoists,swordsmanship,uprated,bohme,tashi,largs,chandi,bluebeard,householders,richardsonian,drepanidae,antigonish,elbasan,occultism,marca,hypergeometric,oirat,stiglitz,ignites,dzungar,miquelon,pritam,d'automne,ulidiid,niamey,vallecano,fondo,billiton,incumbencies,raceme,chambery,cadell,barenaked,kagame,summerside,haussmann,hatshepsut,apothecaries,criollo,feint,nasals,timurid,feltham,plotinus,oxygenation,marginata,officinalis,salat,participations,ising,downe,izumo,unguided,pretence,coursed,haruna,viscountcy,mainstage,justicia,powiat,takara,capitoline,implacable,farben,stopford,cosmopterix,tuberous,kronecker,galatians,kweli,dogmas,exhorted,trebinje,skanda,newlyn,ablative,basidia,bhiwani,encroachments,stranglers,regrouping,tubal,shoestring,wawel,anionic,mesenchymal,creationists,pyrophosphate,moshi,despotism,powerbook,fatehpur,rupiah,segre,ternate,jessore,b.i.g,shevardnadze,abounds,gliwice,densest,memoria,suborbital,vietcong,ratepayers,karunanidhi,toolbar,descents,rhymney,exhortation,zahedan,carcinomas,hyperbaric,botvinnik,billets,neuropsychological,tigranes,hoards,chater,biennially,thistles,scotus,wataru,flotillas,hungama,monopolistic,payouts,vetch,generalissimo,caries,naumburg,piran,blizzards,escalates,reactant,shinya,theorize,rizzoli,transitway,ecclesiae,streptomyces,cantal,nisibis,superconductor,unworkable,thallus,roehampton,scheckter,viceroys,makuuchi,ilkley,superseding,takuya,klodzko,borbon,raspberries,operand,w.a.k.o,sarabande,factionalism,egalitarianism,temasek,torbat,unscripted,jorma,westerner,perfective,vrije,underlain,goldfrapp,blaenau,jomon,barthes,drivetime,bassa,bannock,umaga,fengxiang,zulus,sreenivasan,farces,codice_10,freeholder,poddebice,imperialists,deregulated,wingtip,o'hagan,pillared,overtone,hofstadter,
149th,kitano,saybrook,standardizing,aldgate,staveley,o'flaherty,hundredths,steerable,soltan,empted,cruyff,intramuros,taluks,cotonou,marae,karur,figueres,barwon,lucullus,niobe,zemlya,lathes,homeported,chaux,amyotrophic,opines,exemplars,bhamo,homomorphisms,gauleiter,ladin,mafiosi,airdrieonians,b/soul,decal,transcaucasia,solti,defecation,deaconess,numidia,sampradaya,normalised,wingless,schwaben,alnus,cinerama,yakutsk,ketchikan,orvieto,unearned,monferrato,rotem,aacsb,loong,decoders,skerries,cardiothoracic,repositioning,pimpernel,yohannan,tenebrionoidea,nargis,nouvel,costliest,interdenominational,noize,redirecting,zither,morcha,radiometric,frequenting,irtysh,gbagbo,chakri,litvinenko,infotainment,ravensbruck,harith,corbels,maegashira,jousting,natan,novus,falcao,minis,railed,decile,rauma,ramaswamy,cavitation,paranaque,berchtesgaden,reanimated,schomberg,polysaccharides,exclusionary,cleon,anurag,ravaging,dhanush,mitchells,granule,contemptuous,keisei,rolleston,atlantean,yorkist,daraa,wapping,micrometer,keeneland,comparably,baranja,oranje,schlafli,yogic,dinajpur,unimpressive,masashi,recreativo,alemannic,petersfield,naoko,vasudeva,autosport,rajat,marella,busko,wethersfield,ssris,soulcalibur,kobani,wildland,rookery,hoffenheim,kauri,aliphatic,balaclava,ferrite,publicise,victorias,theism,quimper,chapbook,functionalist,roadbed,ulyanovsk,cupen,purpurea,calthorpe,teofilo,mousavi,cochlea,linotype,detmold,ellerslie,gakkai,telkom,southsea,subcontractor,inguinal,philatelists,zeebrugge,piave,trochidae,dempo,spoilt,saharanpur,mihrab,parasympathetic,barbarous,chartering,antiqua,katsina,bugis,categorizes,altstadt,kandyan,pambansa,overpasses,miters,assimilating,finlandia,uneconomic,am/fm,harpsichordist,dresdner,luminescence,authentically,overpowers,magmatic,cliftonville,oilfields,skirted,berthe,cuman,oakham,frelimo,glockenspiel,confection,saxophonists,piaseczno,multilevel,antipater,levying,maltreatment,velho,opoczno,harburg,pedophilia,unfunded,palettes,plasterwork,breve,dharmendra,auchinleck,nonesuch,blackmun,libretti,rabbani,
145th,hasselbeck,kinnock,malate,vanden,cloverdale,ashgabat,nares,radians,steelworkers,sabor,possums,catterick,hemispheric,ostra,outpaced,dungeness,almshouse,penryn,texians,
1000m,franchitti,incumbency,texcoco,newar,tramcars,toroidal,meitetsu,spellbound,agronomist,vinifera,riata,bunko,pinas,ba'al,github,vasilyevich,obsolescent,geodesics,ancestries,tujue,capitalised,unassigned,throng,unpaired,psychometric,skegness,exothermic,buffered,kristiansund,tongued,berenger,basho,alitalia,prolongation,archaeologically,fractionation,cyprinid,echinoderms,agriculturally,justiciar,sonam,ilium,baits,danceable,grazer,ardahan,grassed,preemption,glassworks,hasina,ugric,umbra,wahhabi,vannes,tinnitus,capitaine,tikrit,lisieux,scree,hormuz,despenser,jagiellon,maisonneuve,gandaki,santarem,basilicas,lancing,landskrona,weilburg,fireside,elysian,isleworth,krishnamurthy,filton,cynon,tecmo,subcostal,scalars,triglycerides,hyperplane,farmingdale,unione,meydan,pilings,mercosur,reactivate,akiba,fecundity,jatra,natsume,zarqawi,preta,masao,presbyter,oakenfold,rhodri,ferran,ruizong,cloyne,nelvana,epiphanius,borde,scutes,strictures,troughton,whitestone,sholom,toyah,shingon,kutuzov,abelard,passant,lipno,cafeterias,residuals,anabaptists,paratransit,criollos,pleven,radiata,destabilizing,hadiths,bazaars,mannose,taiyo,crookes,welbeck,baoding,archelaus,nguesso,alberni,wingtips,herts,viasat,lankans,evreux,wigram,fassbinder,ryuichi,storting,reducible,olesnica,znojmo,hyannis,theophanes,flatiron,mustering,rajahmundry,kadir,wayang,prome,lethargy,zubin,illegality,conall,dramedy,beerbohm,hipparchus,ziarat,ryuji,shugo,glenorchy,microarchitecture,morne,lewinsky,cauvery,battenberg,hyksos,wayanad,hamilcar,buhari,brazo,bratianu,solms,aksaray,elamite,chilcotin,bloodstock,sagara,dolny,reunified,umlaut,proteaceae,camborne,calabrian,dhanbad,vaxjo,cookware,potez,rediffusion,semitones,lamentations,allgau,guernica,suntory,pleated,stationing,urgell,gannets,bertelsmann,entryway,raphitomidae,acetaldehyde,nephrology,categorizing,beiyang,permeate,tourney,geosciences,khana,masayuki,crucis,universitaria,slaskie,khaimah,finno,advani,astonishingly,tubulin,vampiric,jeolla,sociale,cleethorpes,badri,muridae,suzong,debater,decimation,kenyans,mutualism,pontifex,middlemen,insee,halevi,lamentation,psychopathy,brassey,wenders,kavya,parabellum,prolactin,inescapable,apses,malignancies,rinzai,stigmatized,menahem,comox,ateliers,welshpool,setif,centimetre,truthfulness,downfield,drusus,woden,glycosylation,emanated,agulhas,dalkeith,jazira,nucky,unifil,jobim,operon,oryzomys,heroically,seances,supernumerary,backhouse,hashanah,tatler,imago,invert,hayato,clockmaker,kingsmill,swiecie,analogously,golconda,poste,tacitly,decentralised,ge'ez,diplomatically,fossiliferous,linseed,mahavira,pedestals,archpriest,byelection,domiciled,jeffersonian,bombus,winegrowing,waukegan,uncultivated,haverfordwest,saumur,communally,disbursed,cleeve,zeljeznicar,speciosa,vacationers,sigur,vaishali,zlatko,iftikhar,cropland,transkei,incompleteness,bohra,subantarctic,slieve,physiologic,similis,klerk,replanted,'right,chafee,reproducible,bayburt,regicide,muzaffarpur,plurals,hanyu,orthologs,diouf,assailed,kamui,tarik,dodecanese,gorne,on/off,
179th,shimoga,granaries,carlists,valar,tripolitania,sherds,simmern,dissociated,isambard,polytechnical,yuvraj,brabazon,antisense,pubmed,glans,minutely,masaaki,raghavendra,savoury,podcasting,tachi,bienville,gongsun,ridgely,deform,yuichi,binders,canna,carcetti,llobregat,implored,berri,njegos,intermingled,offload,athenry,motherhouse,corpora,kakinada,dannebrog,imperio,prefaces,musicologists,aerospatiale,shirai,nagapattinam,servius,cristoforo,pomfret,reviled,entebbe,stane,east/west,thermometers,matriarchal,siglo,bodil,legionnaire,ze'ev,theorizing,sangeetha,horticulturist,uncountable,lookalike,anoxic,ionospheric,genealogists,chicopee,imprinting,popish,crematoria,diamondback,cyathea,hanzhong,cameramen,halogaland,naklo,waclaw,storehouses,flexed,comuni,frits,glauca,nilgiris,compresses,nainital,continuations,albay,hypoxic,samajwadi,dunkerque,nanticoke,sarwar,interchanged,jubal,corba,jalgaon,derleth,deathstroke,magny,vinnytsia,hyphenated,rimfire,sawan,boehner,disrepute,normalize,aromanian,dualistic,approximant,chama,karimabad,barnacles,sanok,stipends,dyfed,rijksmuseum,reverberation,suncorp,fungicides,reverie,spectrograph,stereophonic,niazi,ordos,alcan,karaite,lautrec,tableland,lamellar,rieti,langmuir,russula,webern,tweaks,hawick,southerner,morphy,naturalisation,enantiomer,michinoku,barbettes,relieves,carburettors,redruth,oblates,vocabularies,mogilev,bagmati,galium,reasserted,extolled,symon,eurosceptic,inflections,tirtha,recompense,oruro,roping,gouverneur,pared,yayoi,watermills,retooled,leukocytes,jubilant,mazhar,nicolau,manheim,touraine,bedser,hambledon,kohat,powerhouses,tlemcen,reuven,sympathetically,afrikaners,interes,handcrafts,etcher,baddeley,wodonga,amaury,
155th,vulgarity,pompadour,automorphisms,
1540s,oppositions,prekmurje,deryni,fortifying,arcuate,mahila,bocage,uther,nozze,slashes,atlantica,hadid,rhizomatous,azeris,'with,osmena,lewisville,innervated,bandmaster,outcropping,parallelogram,dominicana,twang,ingushetia,extensional,ladino,sastry,zinoviev,relatable,nobilis,cbeebies,hitless,eulima,sporangia,synge,longlisted,criminalized,penitential,weyden,tubule,volyn,priestesses,glenbrook,kibbutzim,windshaft,canadair,falange,zsolt,bonheur,meine,archangels,safeguarded,jamaicans,malarial,teasers,badging,merseyrail,operands,pulsars,gauchos,biotin,bambara,necaxa,egmond,tillage,coppi,anxiolytic,preah,mausoleums,plautus,feroz,debunked,
187th,belediyespor,mujibur,wantage,carboxyl,chettiar,murnau,vagueness,racemic,backstretch,courtland,municipio,palpatine,dezful,hyperbola,sreekumar,chalons,altay,arapahoe,tudors,sapieha,quilon,burdensome,kanya,xxviii,recension,generis,siphuncle,repressor,bitrate,mandals,midhurst,dioxin,democratique,upholds,rodez,cinematographic,epoque,jinping,rabelais,zhytomyr,glenview,rebooted,khalidi,reticulata,
122nd,monnaie,passersby,ghazals,europaea,lippmann,earthbound,tadic,andorran,artvin,angelicum,banksy,epicentre,resemblances,shuttled,rathaus,bernt,stonemasons,balochi,siang,tynemouth,cygni,biosynthetic,precipitates,sharecroppers,d'annunzio,softbank,shiji,apeldoorn,polycyclic,wenceslas,wuchang,samnites,tamarack,silmarillion,madinah,palaeontology,kirchberg,sculpin,rohtak,aquabats,oviparous,thynne,caney,blimps,minimalistic,whatcom,palatalization,bardstown,direct3d,paramagnetic,kamboja,khash,globemaster,lengua,matej,chernigov,swanage,arsenals,cascadia,cundinamarca,tusculum,leavers,organics,warplanes,'three,exertions,arminius,gandharva,inquires,comercio,kuopio,chabahar,plotlines,mersenne,anquetil,paralytic,buckminster,ambit,acrolophus,quantifiers,clacton,ciliary,ansaldo,fergana,egoism,thracians,chicoutimi,northbrook,analgesia,brotherhoods,hunza,adriaen,fluoridation,snowfalls,soundboard,fangoria,cannibalistic,orthogonius,chukotka,dindigul,manzoni,chainz,macromedia,beltline,muruga,schistura,provable,litex,initio,pneumoniae,infosys,cerium,boonton,cannonballs,d'une,solvency,mandurah,houthis,dolmens,apologists,radioisotopes,blaxploitation,poroshenko,stawell,coosa,maximilien,tempelhof,espouse,declaratory,hambro,xalapa,outmoded,mihiel,benefitting,desirous,archeparchy,repopulated,telescoping,captor,mackaye,disparaged,ramanathan,crowne,tumbled,technetium,silted,chedi,nievre,hyeon,cartoonish,interlock,infocom,rediff.com,dioramas,timekeeping,concertina,kutaisi,cesky,lubomirski,unapologetic,epigraphic,stalactites,sneha,biofilm,falconry,miraflores,catena,'outstanding,prospekt,apotheosis,o'odham,pacemakers,arabica,gandhinagar,reminisces,iroquoian,ornette,tilling,neoliberalism,chameleons,pandava,prefontaine,haiyan,gneisenau,utama,bando,reconstitution,azaria,canola,paratroops,ayckbourn,manistee,stourton,manifestos,lympne,denouement,tractatus,rakim,bellflower,nanometer,sassanids,turlough,presbyterianism,varmland,
20deg,phool,nyerere,almohad,manipal,vlaanderen,quickness,removals,makow,circumflex,eatery,morane,fondazione,alkylation,unenforceable,galliano,silkworm,junior/senior,abducts,phlox,konskie,lofoten,buuren,glyphosate,faired,naturae,cobbles,taher,skrulls,dostoevsky,walkout,wagnerian,orbited,methodically,denzil,sarat,extraterritorial,kohima,d'armor,brinsley,rostropovich,fengtian,comitatus,aravind,moche,wrangell,giscard,vantaa,viljandi,hakoah,seabees,muscatine,ballade,camanachd,sothern,mullioned,durad,margraves,maven,arete,chandni,garifuna,
142nd,reading/literature,thickest,intensifies,trygve,khaldun,perinatal,asana,powerline,acetylation,nureyev,omiya,montesquieu,riverwalk,marly,correlating,intermountain,bulgar,hammerheads,underscores,wiretapping,quatrain,ruisseau,newsagent,tuticorin,polygyny,hemsworth,partisanship,banna,istrian,evaporator".split(","),
40836 female_names:"mary,patricia,linda,barbara,elizabeth,jennifer,maria,susan,margaret,dorothy,lisa,nancy,karen,betty,helen,sandra,donna,carol,ruth,sharon,michelle,laura,sarah,kimberly,deborah,jessica,shirley,cynthia,angela,melissa,brenda,amy,anna,rebecca,virginia,kathleen,pamela,martha,debra,amanda,stephanie,carolyn,christine,marie,janet,catherine,frances,ann,joyce,diane,alice,julie,heather,teresa,doris,gloria,evelyn,jean,cheryl,mildred,katherine,joan,ashley,judith,rose,janice,kelly,nicole,judy,christina,kathy,theresa,beverly,denise,tammy,irene,jane,lori,rachel,marilyn,andrea,kathryn,louise,sara,anne,jacqueline,wanda,bonnie,julia,ruby,lois,tina,phyllis,norma,paula,diana,annie,lillian,emily,robin,peggy,crystal,gladys,rita,dawn,connie,florence,tracy,edna,tiffany,carmen,rosa,cindy,grace,wendy,victoria,edith,kim,sherry,sylvia,josephine,thelma,shannon,sheila,ethel,ellen,elaine,marjorie,carrie,charlotte,monica,esther,pauline,emma,juanita,anita,rhonda,hazel,amber,eva,debbie,april,leslie,clara,lucille,jamie,joanne,eleanor,valerie,danielle,megan,alicia,suzanne,michele,gail,bertha,darlene,veronica,jill,erin,geraldine,lauren,cathy,joann,lorraine,lynn,sally,regina,erica,beatrice,dolores,bernice,audrey,yvonne,annette,marion,dana,stacy,ana,renee,ida,vivian,roberta,holly,brittany,melanie,loretta,yolanda,jeanette,laurie,katie,kristen,vanessa,alma,sue,elsie,beth,jeanne,vicki,carla,tara,rosemary,eileen,terri,gertrude,lucy,tonya,ella,stacey,wilma,gina,kristin,jessie,natalie,agnes,vera,charlene,bessie,delores,melinda,pearl,arlene,maureen,colleen,allison,tamara,joy,georgia,constance,lillie,claudia,jackie,marcia,tanya,nellie,minnie,marlene,heidi,glenda,lydia,viola,courtney,marian,stella,caroline,dora,vickie,mattie,maxine,irma,mabel,marsha,myrtle,lena,christy,deanna,patsy,hilda,gwendolyn,jennie,nora,margie,nina,cassandra,leah,penny,kay,priscilla,naomi,carole,olga,billie,dianne,tracey,leona,jenny,felicia,sonia,miriam,velma,becky,bobbie,violet,kristina,toni,misty,mae,shelly,daisy,ramona,sherri,erika,katrina,claire,lindsey,lindsay,geneva,guadalupe,belinda,margarita,sheryl,cora,faye,ada,sabrina,isabel,marguerite,hattie,harriet,molly,cecilia,kristi,brandi,blanche,sandy,rosie,joanna,iris,eunice,angie,inez,lynda,madeline,amelia,alberta,genevieve,monique,jodi,janie,kayla,sonya,jan,kristine,candace,fannie,maryann,opal,alison,yvette,melody,luz,susie,olivia,flora,shelley,kristy,mamie,lula,lola,verna,beulah,antoinette,candice,juana,jeannette,pam,kelli,whitney,bridget,karla,celia,latoya,patty,shelia,gayle,della,vicky,lynne,sheri,marianne,kara,jacquelyn,erma,blanca,myra,leticia,pat,krista,roxanne,angelica,robyn,adrienne,rosalie,alexandra,brooke,bethany,sadie,bernadette,traci,jody,kendra,nichole,rachael,mable,ernestine,muriel,marcella,elena,krystal,angelina,nadine,kari,estelle,dianna,paulette,lora,mona,doreen,rosemarie,desiree,antonia,janis,betsy,christie,freda,meredith,lynette,teri,cristina,eula,leigh,meghan,sophia,eloise,rochelle,gretchen,cecelia,raquel,henrietta,alyssa,jana,gwen,jenna,tricia,laverne,olive,tasha,silvia,elvira,delia,kate,patti,lorena,kellie,sonja,lila,lana,darla,mindy,essie,mandy,lorene,elsa,josefina,jeannie,miranda,dixie,lucia,marta,faith,lela,johanna,shari,camille,tami,shawna,elisa,ebony,melba,ora,nettie,tabitha,ollie,winifred,kristie,alisha,aimee,rena,myrna,marla,tammie,latasha,bonita,patrice,ronda,sherrie,addie,francine,deloris,stacie,adriana,cheri,abigail,celeste,jewel,cara,adele,rebekah,lucinda,dorthy,effie,trina,reba,sallie,aurora,lenora,etta,lottie,kerri,trisha,nikki,estella,francisca,josie,tracie,marissa,karin,brittney,janelle,lourdes,laurel,helene,fern,elva,corinne,kelsey,ina,bettie,elisabeth,aida,caitlin,ingrid,iva,eugenia,christa,goldie,maude,jenifer,therese,dena,lorna,janette,latonya,candy,consuelo,tamika,rosetta,debora,cherie,polly,dina,jewell,fay,jillian,dorothea,nell,trudy,esperanza,patrica,kimberley,shanna,helena,cleo,stefanie,rosario,ola,janine,mollie,lupe,alisa,lou,maribel,susanne,bette,susana,elise,cecile,isabelle,lesley,jocelyn,paige,joni,rachelle,leola,daphne,alta,ester,petra,graciela,imogene,jolene,keisha,lacey,glenna,gabriela,keri,ursula,lizzie,kirsten,shana,adeline,mayra,jayne,jaclyn,gracie,sondra,carmela,marisa,rosalind,charity,tonia,beatriz,marisol,clarice,jeanine,sheena,angeline,frieda,lily,shauna,millie,claudette,cathleen,angelia,gabrielle,autumn,katharine,jodie,staci,lea,christi,justine,elma,luella,margret,dominique,socorro,martina,margo,mavis,callie,bobbi,maritza,lucile,leanne,jeannine,deana,aileen,lorie,ladonna,willa,manuela,gale,selma,dolly,sybil,abby,ivy,dee,winnie,marcy,luisa,jeri,magdalena,ofelia,meagan,audra,matilda,leila,cornelia,bianca,simone,bettye,randi,virgie,latisha,barbra,georgina,eliza,leann,bridgette,rhoda,haley,adela,nola,bernadine,flossie,ila,greta,ruthie,nelda,minerva,lilly,terrie,letha,hilary,estela,valarie,brianna,rosalyn,earline,catalina,ava,mia,clarissa,lidia,corrine,alexandria,concepcion,tia,sharron,rae,dona,ericka,jami,elnora,chandra,lenore,neva,marylou,melisa,tabatha,serena,avis,allie,sofia,jeanie,odessa,nannie,harriett,loraine,penelope,milagros,emilia,benita,allyson,ashlee,tania,esmeralda,eve,pearlie,zelma,malinda,noreen,tameka,saundra,hillary,amie,althea,rosalinda,lilia,alana,clare,alejandra,elinor,lorrie,jerri,darcy,earnestine,carmella,noemi,marcie,liza,annabelle,louisa,earlene,mallory,carlene,nita,selena,tanisha,katy,julianne,lakisha,edwina,maricela,margery,kenya,dollie,roxie,roslyn,kathrine,nanette,charmaine,lavonne,ilene,tammi,suzette,corine,kaye,chrystal,lina,deanne,lilian,juliana,aline,luann,kasey,maryanne,evangeline,colette,melva,lawanda,yesenia,nadia,madge,kathie,ophelia,valeria,nona,mitzi,mari,georgette,claudine,fran,alissa,roseann,lakeisha,susanna,reva,deidre,chasity,sheree,elvia,alyce,deirdre,gena,briana,araceli,katelyn,rosanne,wendi,tessa,berta,marva,imelda,marietta,marci,leonor,arline,sasha,madelyn,janna,juliette,deena,aurelia,josefa,augusta,liliana,lessie,amalia,savannah,anastasia,vilma,natalia,rosella,lynnette,corina,alfreda,leanna,amparo,coleen,tamra,aisha,wilda,karyn,maura,mai,evangelina,rosanna,hallie,erna,enid,mariana,lacy,juliet,jacklyn,freida,madeleine,mara,cathryn,lelia,casandra,bridgett,angelita,jannie,dionne,annmarie,katina,beryl,millicent,katheryn,diann,carissa,maryellen,liz,lauri,helga,gilda,rhea,marquita,hollie,tisha,tamera,angelique,francesca,kaitlin,lolita,florine,rowena,reyna,twila,fanny,janell,ines,concetta,bertie,alba,brigitte,alyson,vonda,pansy,elba,noelle,letitia,deann,brandie,louella,leta,felecia,sharlene,lesa,beverley,isabella,herminia,terra,celina,tori,octavia,jade,denice,germaine,michell,cortney,nelly,doretha,deidra,monika,lashonda,judi,chelsey,antionette,margot,adelaide,leeann,elisha,dessie,libby,kathi,gayla,latanya,mina,mellisa,kimberlee,jasmin,renae,zelda,elda,justina,gussie,emilie,camilla,abbie,rocio,kaitlyn,edythe,ashleigh,selina,lakesha,geri,allene,pamala,michaela,dayna,caryn,rosalia,jacquline,rebeca,marybeth,krystle,iola,dottie,belle,griselda,ernestina,elida,adrianne,demetria,delma,jaqueline,arleen,virgina,retha,fatima,tillie,eleanore,cari,treva,wilhelmina,rosalee,maurine,latrice,jena,taryn,elia,debby,maudie,jeanna,delilah,catrina,shonda,hortencia,theodora,teresita,robbin,danette,delphine,brianne,nilda,danna,cindi,bess,iona,winona,vida,rosita,marianna,racheal,guillermina,eloisa,celestine,caren,malissa,lona,chantel,shellie,marisela,leora,agatha,soledad,migdalia,ivette,christen,athena,janel,veda,pattie,tessie,tera,marilynn,lucretia,karrie,dinah,daniela,alecia,adelina,vernice,shiela,portia,merry,lashawn,dara,tawana,verda,alene,zella,sandi,rafaela,maya,kira,candida,alvina,suzan,shayla,lettie,samatha,oralia,matilde,larissa,vesta,renita,delois,shanda,phillis,lorri,erlinda,cathrine,barb,isabell,ione,gisela,roxanna,mayme,kisha,ellie,mellissa,dorris,dalia,bella,annetta,zoila,reta,reina,lauretta,kylie,christal,pilar,charla,elissa,tiffani,tana,paulina,leota,breanna,jayme,carmel,vernell,tomasa,mandi,dominga,santa,melodie,lura,alexa,tamela,mirna,kerrie,venus,felicita,cristy,carmelita,berniece,annemarie,tiara,roseanne,missy,cori,roxana,pricilla,kristal,jung,elyse,haydee,aletha,bettina,marge,gillian,filomena,zenaida,harriette,caridad,vada,aretha,pearline,marjory,marcela,flor,evette,elouise,alina,damaris,catharine,belva,nakia,marlena,luanne,lorine,karon,dorene,danita,brenna,tatiana,louann,julianna,andria,philomena,lucila,leonora,dovie,romona,mimi,jacquelin,gaye,tonja,misti,chastity,stacia,roxann,micaela,velda,marlys,johnna,aura,ivonne,hayley,nicki,majorie,herlinda,yadira,perla,gregoria,antonette,shelli,mozelle,mariah,joelle,cordelia,josette,chiquita,trista,laquita,georgiana,candi,shanon,hildegard,stephany,magda,karol,gabriella,tiana,roma,richelle,oleta,jacque,idella,alaina,suzanna,jovita,tosha,nereida,marlyn,kyla,delfina,tena,stephenie,sabina,nathalie,marcelle,gertie,darleen,thea,sharonda,shantel,belen,venessa,rosalina,genoveva,clementine,rosalba,renate,renata,georgianna,floy,dorcas,ariana,tyra,theda,mariam,juli,jesica,vikki,verla,roselyn,melvina,jannette,ginny,debrah,corrie,violeta,myrtis,latricia,collette,charleen,anissa,viviana,twyla,nedra,latonia,hellen,fabiola,annamarie,adell,sharyn,chantal,niki,maud,lizette,lindy,kesha,jeana,danelle,charline,chanel,valorie,dortha,cristal,sunny,leone,leilani,gerri,debi,andra,keshia,eulalia,easter,dulce,natividad,linnie,kami,georgie,catina,brook,alda,winnifred,sharla,ruthann,meaghan,magdalene,lissette,adelaida,venita,trena,shirlene,shameka,elizebeth,dian,shanta,latosha,carlotta,windy,rosina,mariann,leisa,jonnie,dawna,cathie,astrid,laureen,janeen,holli,fawn,vickey,teressa,shante,rubye,marcelina,chanda,terese,scarlett,marnie,lulu,lisette,jeniffer,elenor,dorinda,donita,carman,bernita,altagracia,aleta,adrianna,zoraida,lyndsey,janina,starla,phylis,phuong,kyra,charisse,blanch,sanjuanita,rona,nanci,marilee,maranda,brigette,sanjuana,marita,kassandra,joycelyn,felipa,chelsie,bonny,mireya,lorenza,kyong,ileana,candelaria,sherie,lucie,leatrice,lakeshia,gerda,edie,bambi,marylin,lavon,hortense,garnet,evie,tressa,shayna,lavina,kyung,jeanetta,sherrill,shara,phyliss,mittie,anabel,alesia,thuy,tawanda,joanie,tiffanie,lashanda,karissa,enriqueta,daria,daniella,corinna,alanna,abbey,roxane,roseanna,magnolia,lida,joellen,coral,carleen,tresa,peggie,novella,nila,maybelle,jenelle,carina,nova,melina,marquerite,margarette,josephina,evonne,cinthia,albina,toya,tawnya,sherita,myriam,lizabeth,lise,keely,jenni,giselle,cheryle,ardith,ardis,alesha,adriane,shaina,linnea,karolyn,felisha,dori,darci,artie,armida,zola,xiomara,vergie,shamika,nena,nannette,maxie,lovie,jeane,jaimie,inge,farrah,elaina,caitlyn,felicitas,cherly,caryl,yolonda,yasmin,teena,prudence,pennie,nydia,mackenzie,orpha,marvel,lizbeth,laurette,jerrie,hermelinda,carolee,tierra,mirian,meta,melony,kori,jennette,jamila,yoshiko,susannah,salina,rhiannon,joleen,cristine,ashton,aracely,tomeka,shalonda,marti,lacie,kala,jada,ilse,hailey,brittani,zona,syble,sherryl,nidia,marlo,kandice,kandi,alycia,ronna,norene,mercy,ingeborg,giovanna,gemma,christel,audry,zora,vita,trish,stephaine,shirlee,shanika,melonie,mazie,jazmin,inga,hettie,geralyn,fonda,estrella,adella,sarita,rina,milissa,maribeth,golda,evon,ethelyn,enedina,cherise,chana,velva,tawanna,sade,mirta,karie,jacinta,elna,davina,cierra,ashlie,albertha,tanesha,nelle,mindi,lorinda,larue,florene,demetra,dedra,ciara,chantelle,ashly,suzy,rosalva,noelia,lyda,leatha,krystyna,kristan,karri,darline,darcie,cinda,cherrie,awilda,almeda,rolanda,lanette,jerilyn,gisele,evalyn,cyndi,cleta,carin,zina,zena,velia,tanika,charissa,talia,margarete,lavonda,kaylee,kathlene,jonna,irena,ilona,idalia,candis,candance,brandee,anitra,alida,sigrid,nicolette,maryjo,linette,hedwig,christiana,alexia,tressie,modesta,lupita,lita,gladis,evelia,davida,cherri,cecily,ashely,annabel,agustina,wanita,shirly,rosaura,hulda,yetta,verona,thomasina,sibyl,shannan,mechelle,leandra,lani,kylee,kandy,jolynn,ferne,eboni,corene,alysia,zula,nada,moira,lyndsay,lorretta,jammie,hortensia,gaynell,adria,vina,vicenta,tangela,stephine,norine,nella,liana,leslee,kimberely,iliana,glory,felica,emogene,elfriede,eden,eartha,carma,ocie,lennie,kiara,jacalyn,carlota,arielle,otilia,kirstin,kacey,johnetta,joetta,jeraldine,jaunita,elana,dorthea,cami,amada,adelia,vernita,tamar,siobhan,renea,rashida,ouida,nilsa,meryl,kristyn,julieta,danica,breanne,aurea,anglea,sherron,odette,malia,lorelei,leesa,kenna,kathlyn,fiona,charlette,suzie,shantell,sabra,racquel,myong,mira,martine,lucienne,lavada,juliann,elvera,delphia,christiane,charolette,carri,asha,angella,paola,ninfa,leda,stefani,shanell,palma,machelle,lissa,kecia,kathryne,karlene,julissa,jettie,jenniffer,corrina,carolann,alena,rosaria,myrtice,marylee,liane,kenyatta,judie,janey,elmira,eldora,denna,cristi,cathi,zaida,vonnie,viva,vernie,rosaline,mariela,luciana,lesli,karan,felice,deneen,adina,wynona,tarsha,sheron,shanita,shani,shandra,randa,pinkie,nelida,marilou,lyla,laurene,laci,janene,dorotha,daniele,dani,carolynn,carlyn,berenice,ayesha,anneliese,alethea,thersa,tamiko,rufina,oliva,mozell,marylyn,kristian,kathyrn,kasandra,kandace,janae,domenica,debbra,dannielle,chun,arcelia,zenobia,sharen,sharee,lavinia,kacie,jackeline,huong,felisa,emelia,eleanora,cythia,cristin,claribel,anastacia,zulma,zandra,yoko,tenisha,susann,sherilyn,shay,shawanda,romana,mathilda,linsey,keiko,joana,isela,gretta,georgetta,eugenie,desirae,delora,corazon,antonina,anika,willene,tracee,tamatha,nichelle,mickie,maegan,luana,lanita,kelsie,edelmira,bree,afton,teodora,tamie,shena,linh,keli,kaci,danyelle,arlette,albertine,adelle,tiffiny,simona,nicolasa,nichol,nakisha,maira,loreen,kizzy,fallon,christene,bobbye,ying,vincenza,tanja,rubie,roni,queenie,margarett,kimberli,irmgard,idell,hilma,evelina,esta,emilee,dennise,dania,carie,risa,rikki,particia,masako,luvenia,loree,loni,lien,gigi,florencia,denita,billye,tomika,sharita,rana,nikole,neoma,margarite,madalyn,lucina,laila,kali,jenette,gabriele,evelyne,elenora,clementina,alejandrina,zulema,violette,vannessa,thresa,retta,patience,noella,nickie,jonell,chaya,camelia,bethel,anya,suzann,mila,lilla,laverna,keesha,kattie,georgene,eveline,estell,elizbeth,vivienne,vallie,trudie,stephane,magaly,madie,kenyetta,karren,janetta,hermine,drucilla,debbi,celestina,candie,britni,beckie,amina,zita,yolande,vivien,vernetta,trudi,pearle,patrina,ossie,nicolle,loyce,letty,katharina,joselyn,jonelle,jenell,iesha,heide,florinda,florentina,elodia,dorine,brunilda,brigid,ashli,ardella,twana,tarah,shavon,serina,rayna,ramonita,margurite,lucrecia,kourtney,kati,jesenia,crista,ayana,alica,alia,vinnie,suellen,romelia,rachell,olympia,michiko,kathaleen,jolie,jessi,janessa,hana,elease,carletta,britany,shona,salome,rosamond,regena,raina,ngoc,nelia,louvenia,lesia,latrina,laticia,larhonda,jina,jacki,emmy,deeann,coretta,arnetta,thalia,shanice,neta,mikki,micki,lonna,leana,lashunda,kiley,joye,jacqulyn,ignacia,hyun,hiroko,henriette,elayne,delinda,dahlia,coreen,consuela,conchita,babette,ayanna,anette,albertina,shawnee,shaneka,quiana,pamelia,merri,merlene,margit,kiesha,kiera,kaylene,jodee,jenise,erlene,emmie,dalila,daisey,casie,belia,babara,versie,vanesa,shelba,shawnda,nikia,naoma,marna,margeret,madaline,lawana,kindra,jutta,jazmine,janett,hannelore,glendora,gertrud,garnett,freeda,frederica,florance,flavia,carline,beverlee,anjanette,valda,tamala,shonna,sarina,oneida,merilyn,marleen,lurline,lenna,katherin,jeni,gracia,glady,farah,enola,dominque,devona,delana,cecila,caprice,alysha,alethia,vena,theresia,tawny,shakira,samara,sachiko,rachele,pamella,marni,mariel,maren,malisa,ligia,lera,latoria,larae,kimber,kathern,karey,jennefer,janeth,halina,fredia,delisa,debroah,ciera,angelika,andree,altha,vivan,terresa,tanna,sudie,signe,salena,ronni,rebbecca,myrtie,malika,maida,leonarda,kayleigh,ethyl,ellyn,dayle,cammie,brittni,birgit,avelina,asuncion,arianna,akiko,venice,tyesha,tonie,tiesha,takisha,steffanie,sindy,meghann,manda,macie,kellye,kellee,joslyn,inger,indira,glinda,glennis,fernanda,faustina,eneida,elicia,digna,dell,arletta,willia,tammara,tabetha,sherrell,sari,rebbeca,pauletta,natosha,nakita,mammie,kenisha,kazuko,kassie,earlean,daphine,corliss,clotilde,carolyne,bernetta,augustina,audrea,annis,annabell,tennille,tamica,selene,rosana,regenia,qiana,markita,macy,leeanne,laurine,jessenia,janita,georgine,genie,emiko,elvie,deandra,dagmar,corie,collen,cherish,romaine,porsha,pearlene,micheline,merna,margorie,margaretta,lore,jenine,hermina,fredericka,elke,drusilla,dorathy,dione,celena,brigida,allegra,tamekia,synthia,sook,slyvia,rosann,reatha,raye,marquetta,margart,ling,layla,kymberly,kiana,kayleen,katlyn,karmen,joella,emelda,eleni,detra,clemmie,cheryll,chantell,cathey,arnita,arla,angle,angelic,alyse,zofia,thomasine,tennie,sherly,sherley,sharyl,remedios,petrina,nickole,myung,myrle,mozella,louanne,lisha,latia,krysta,julienne,jeanene,jacqualine,isaura,gwenda,earleen,cleopatra,carlie,audie,antonietta,alise,verdell,tomoko,thao,talisha,shemika,savanna,santina,rosia,raeann,odilia,nana,minna,magan,lynelle,karma,joeann,ivana,inell,ilana,gudrun,dreama,crissy,chante,carmelina,arvilla,annamae,alvera,aleida,yanira,vanda,tianna,stefania,shira,nicol,nancie,monserrate,melynda,melany,lovella,laure,kacy,jacquelynn,hyon,gertha,eliana,christena,christeen,charise,caterina,carley,candyce,arlena,ammie,willette,vanita,tuyet,syreeta,penney,nyla,maryam,marya,magen,ludie,loma,livia,lanell,kimberlie,julee,donetta,diedra,denisha,deane,dawne,clarine,cherryl,bronwyn,alla,valery,tonda,sueann,soraya,shoshana,shela,sharleen,shanelle,nerissa,meridith,mellie,maye,maple,magaret,lili,leonila,leonie,leeanna,lavonia,lavera,kristel,kathey,kathe,jann,ilda,hildred,hildegarde,genia,fumiko,evelin,ermelinda,elly,dung,doloris,dionna,danae,berneice,annice,alix,verena,verdie,shawnna,shawana,shaunna,rozella,randee,ranae,milagro,lynell,luise,loida,lisbeth,karleen,junita,jona,isis,hyacinth,hedy,gwenn,ethelene,erline,donya,domonique,delicia,dannette,cicely,branda,blythe,bethann,ashlyn,annalee,alline,yuko,vella,trang,towanda,tesha,sherlyn,narcisa,miguelina,meri,maybell,marlana,marguerita,madlyn,lory,loriann,leonore,leighann,laurice,latesha,laronda,katrice,kasie,kaley,jadwiga,glennie,gearldine,francina,epifania,dyan,dorie,diedre,denese,demetrice,delena,cristie,cleora,catarina,carisa,barbera,almeta,trula,tereasa,solange,sheilah,shavonne,sanora,rochell,mathilde,margareta,maia,lynsey,lawanna,launa,kena,keena,katia,glynda,gaylene,elvina,elanor,danuta,danika,cristen,cordie,coletta,clarita,carmon,brynn,azucena,aundrea,angele,verlie,verlene,tamesha,silvana,sebrina,samira,reda,raylene,penni,norah,noma,mireille,melissia,maryalice,laraine,kimbery,karyl,karine,jolanda,johana,jesusa,jaleesa,jacquelyne,iluminada,hilaria,hanh,gennie,francie,floretta,exie,edda,drema,delpha,barbar,assunta,ardell,annalisa,alisia,yukiko,yolando,wonda,waltraud,veta,temeka,tameika,shirleen,shenita,piedad,ozella,mirtha,marilu,kimiko,juliane,jenice,janay,jacquiline,hilde,elois,echo,devorah,chau,brinda,betsey,arminda,aracelis,apryl,annett,alishia,veola,usha,toshiko,theola,tashia,talitha,shery,renetta,reiko,rasheeda,obdulia,mika,melaine,meggan,marlen,marget,marceline,mana,magdalen,librada,lezlie,latashia,lasandra,kelle,isidra,inocencia,gwyn,francoise,erminia,erinn,dimple,devora,criselda,armanda,arie,ariane,angelena,aliza,adriene,adaline,xochitl,twanna,tomiko,tamisha,taisha,susy,rutha,rhona,noriko,natashia,merrie,marinda,mariko,margert,loris,lizzette,leisha,kaila,joannie,jerrica,jene,jannet,janee,jacinda,herta,elenore,doretta,delaine,daniell,claudie,britta,apolonia,amberly,alease,yuri,waneta,tomi,sharri,sandie,roselle,reynalda,raguel,phylicia,patria,olimpia,odelia,mitzie,minda,mignon,mica,mendy,marivel,maile,lynetta,lavette,lauryn,latrisha,lakiesha,kiersten,kary,josphine,jolyn,jetta,janise,jacquie,ivelisse,glynis,gianna,gaynelle,danyell,danille,dacia,coralee,cher,ceola,arianne,aleshia,yung,williemae,trinh,thora,sherika,shemeka,shaunda,roseline,ricki,melda,mallie,lavonna,latina,laquanda,lala,lachelle,klara,kandis,johna,jeanmarie,jaye,grayce,gertude,emerita,ebonie,clorinda,ching,chery,carola,breann,blossom,bernardine,becki,arletha,argelia,alita,yulanda,yessenia,tobi,tasia,sylvie,shirl,shirely,shella,shantelle,sacha,rebecka,providencia,paulene,misha,miki,marline,marica,lorita,latoyia,lasonya,kerstin,kenda,keitha,kathrin,jaymie,gricelda,ginette,eryn,elina,elfrieda,danyel,cheree,chanelle,barrie,aurore,annamaria,alleen,ailene,aide,yasmine,vashti,treasa,tiffaney,sheryll,sharie,shanae,raisa,neda,mitsuko,mirella,milda,maryanna,maragret,mabelle,luetta,lorina,letisha,latarsha,lanelle,lajuana,krissy,karly,karena,jessika,jerica,jeanelle,jalisa,jacelyn,izola,euna,etha,domitila,dominica,daina,creola,carli,camie,brittny,ashanti,anisha,aleen,adah,yasuko,valrie,tona,tinisha,terisa,taneka,simonne,shalanda,serita,ressie,refugia,olene,margherita,mandie,maire,lyndia,luci,lorriane,loreta,leonia,lavona,lashawnda,lakia,kyoko,krystina,krysten,kenia,kelsi,jeanice,isobel,georgiann,genny,felicidad,eilene,deloise,deedee,conception,clora,cherilyn,calandra,armandina,anisa,tiera,theressa,stephania,sima,shyla,shonta,shera,shaquita,shala,rossana,nohemi,nery,moriah,melita,melida,melani,marylynn,marisha,mariette,malorie,madelene,ludivina,loria,lorette,loralee,lianne,lavenia,laurinda,lashon,kimi,keila,katelynn,jone,joane,jayna,janella,hertha,francene,elinore,despina,delsie,deedra,clemencia,carolin,bulah,brittanie,blondell,bibi,beaulah,beata,annita,agripina,virgen,valene,twanda,tommye,tarra,tari,tammera,shakia,sadye,ruthanne,rochel,rivka,pura,nenita,natisha,ming,merrilee,melodee,marvis,lucilla,leena,laveta,larita,lanie,keren,ileen,georgeann,genna,frida,eufemia,emely,edyth,deonna,deadra,darlena,chanell,cathern,cassondra,cassaundra,bernarda,berna,arlinda,anamaria,vertie,valeri,torri,stasia,sherise,sherill,sanda,ruthe,rosy,robbi,ranee,quyen,pearly,palmira,onita,nisha,niesha,nida,merlyn,mayola,marylouise,marth,margene,madelaine,londa,leontine,leoma,leia,lauralee,lanora,lakita,kiyoko,keturah,katelin,kareen,jonie,johnette,jenee,jeanett,izetta,hiedi,heike,hassie,giuseppina,georgann,fidela,fernande,elwanda,ellamae,eliz,dusti,dotty,cyndy,coralie,celesta,alverta,xenia,wava,vanetta,torrie,tashina,tandy,tambra,tama,stepanie,shila,shaunta,sharan,shaniqua,shae,setsuko,serafina,sandee,rosamaria,priscila,olinda,nadene,muoi,michelina,mercedez,maryrose,marcene,magali,mafalda,lannie,kayce,karoline,kamilah,kamala,justa,joline,jennine,jacquetta,iraida,georgeanna,franchesca,emeline,elane,ehtel,earlie,dulcie,dalene,classie,chere,charis,caroyln,carmina,carita,bethanie,ayako,arica,alysa,alessandra,akilah,adrien,zetta,youlanda,yelena,yahaira,xuan,wendolyn,tijuana,terina,teresia,suzi,sherell,shavonda,shaunte,sharda,shakita,sena,ryann,rubi,riva,reginia,rachal,parthenia,pamula,monnie,monet,michaele,melia,malka,maisha,lisandra,lekisha,lean,lakendra,krystin,kortney,kizzie,kittie,kera,kendal,kemberly,kanisha,julene,jule,johanne,jamee,halley,gidget,fredricka,fleta,fatimah,eusebia,elza,eleonore,dorthey,doria,donella,dinorah,delorse,claretha,christinia,charlyn,bong,belkis,azzie,andera,aiko,adena,yajaira,vania,ulrike,toshia,tifany,stefany,shizue,shenika,shawanna,sharolyn,sharilyn,shaquana,shantay,rozanne,roselee,remona,reanna,raelene,phung,petronila,natacha,nancey,myrl,miyoko,miesha,merideth,marvella,marquitta,marhta,marchelle,lizeth,libbie,lahoma,ladawn,kina,katheleen,katharyn,karisa,kaleigh,junie,julieann,johnsie,janean,jaimee,jackqueline,hisako,herma,helaine,gwyneth,gita,eustolia,emelina,elin,edris,donnette,donnetta,dierdre,denae,darcel,clarisa,cinderella,chia,charlesetta,charita,celsa,cassy,cassi,carlee,bruna,brittaney,brande,billi,antonetta,angla,angelyn,analisa,alane,wenona,wendie,veronique,vannesa,tobie,tempie,sumiko,sulema,somer,sheba,sharice,shanel,shalon,rosio,roselia,renay,rema,reena,ozie,oretha,oralee,ngan,nakesha,milly,marybelle,margrett,maragaret,manie,lurlene,lillia,lieselotte,lavelle,lashaunda,lakeesha,kaycee,kalyn,joya,joette,jenae,janiece,illa,grisel,glayds,genevie,gala,fredda,eleonor,debera,deandrea,corrinne,cordia,contessa,colene,cleotilde,chantay,cecille,beatris,azalee,arlean,ardath,anjelica,anja,alfredia,aleisha,zada,yuonne,xiao,willodean,vennie,vanna,tyisha,tova,torie,tonisha,tilda,tien,sirena,sherril,shanti,shan,senaida,samella,robbyn,renda,reita,phebe,paulita,nobuko,nguyet,neomi,mikaela,melania,maximina,marg,maisie,lynna,lilli,lashaun,lakenya,lael,kirstie,kathline,kasha,karlyn,karima,jovan,josefine,jennell,jacqui,jackelyn,hien,grazyna,florrie,floria,eleonora,dwana,dorla,delmy,deja,dede,dann,crysta,clelia,claris,chieko,cherlyn,cherelle,charmain,chara,cammy,arnette,ardelle,annika,amiee,amee,allena,yvone,yuki,yoshie,yevette,yael,willetta,voncile,venetta,tula,tonette,timika,temika,telma,teisha,taren,stacee,shawnta,saturnina,ricarda,pasty,onie,nubia,marielle,mariella,marianela,mardell,luanna,loise,lisabeth,lindsy,lilliana,lilliam,lelah,leigha,leanora,kristeen,khalilah,keeley,kandra,junko,joaquina,jerlene,jani,jamika,hsiu,hermila,genevive,evia,eugena,emmaline,elfreda,elene,donette,delcie,deeanna,darcey,clarinda,cira,chae,celinda,catheryn,casimira,carmelia,camellia,breana,bobette,bernardina,bebe,basilia,arlyne,amal,alayna,zonia,zenia,yuriko,yaeko,wynell,willena,vernia,tora,terrilyn,terica,tenesha,tawna,tajuana,taina,stephnie,sona,sina,shondra,shizuko,sherlene,sherice,sharika,rossie,rosena,rima,rheba,renna,natalya,nancee,melodi,meda,matha,marketta,maricruz,marcelene,malvina,luba,louetta,leida,lecia,lauran,lashawna,laine,khadijah,katerine,kasi,kallie,julietta,jesusita,jestine,jessia,jeffie,janyce,isadora,georgianne,fidelia,evita,eura,eulah,estefana,elsy,eladia,dodie,denisse,deloras,delila,daysi,crystle,concha,claretta,charlsie,charlena,carylon,bettyann,asley,ashlea,amira,agueda,agnus,yuette,vinita,victorina,tynisha,treena,toccara,tish,thomasena,tegan,soila,shenna,sharmaine,shantae,shandi,saran,sarai,sana,rosette,rolande,regine,otelia,olevia,nicholle,necole,naida,myrta,myesha,mitsue,minta,mertie,margy,mahalia,madalene,loura,lorean,lesha,leonida,lenita,lavone,lashell,lashandra,lamonica,kimbra,katherina,karry,kanesha,jong,jeneva,jaquelyn,gilma,ghislaine,gertrudis,fransisca,fermina,ettie,etsuko,ellan,elidia,edra,dorethea,doreatha,denyse,deetta,daine,cyrstal,corrin,cayla,carlita,camila,burma,bula,buena,barabara,avril,alaine,zana,wilhemina,wanetta,verline,vasiliki,tonita,tisa,teofila,tayna,taunya,tandra,takako,sunni,suanne,sixta,sharell,seema,rosenda,robena,raymonde,pamila,ozell,neida,mistie,micha,merissa,maurita,maryln,maryetta,marcell,malena,makeda,lovetta,lourie,lorrine,lorilee,laurena,lashay,larraine,laree,lacresha,kristle,keva,keira,karole,joie,jinny,jeannetta,jama,heidy,gilberte,gema,faviola,evelynn,enda,elli,ellena,divina,dagny,collene,codi,cindie,chassidy,chasidy,catrice,catherina,cassey,caroll,carlena,candra,calista,bryanna,britteny,beula,bari,audrie,audria,ardelia,annelle,angila,alona,allyn".split(","),surnames:"smith,johnson,williams,jones,brown,davis,miller,wilson,moore,taylor,anderson,jackson,white,harris,martin,thompson,garcia,martinez,robinson,clark,rodriguez,lewis,lee,walker,hall,allen,young,hernandez,king,wright,lopez,hill,green,adams,baker,gonzalez,nelson,carter,mitchell,perez,roberts,turner,phillips,campbell,parker,evans,edwards,collins,stewart,sanchez,morris,rogers,reed,cook,morgan,bell,murphy,bailey,rivera,cooper,richardson,cox,howard,ward,torres,peterson,gray,ramirez,watson,brooks,sanders,price,bennett,wood,barnes,ross,henderson,coleman,jenkins,perry,powell,long,patterson,hughes,flores,washington,butler,simmons,foster,gonzales,bryant,alexander,griffin,diaz,hayes,myers,ford,hamilton,graham,sullivan,wallace,woods,cole,west,owens,reynolds,fisher,ellis,harrison,gibson,mcdonald,cruz,marshall,ortiz,gomez,murray,freeman,wells,webb,simpson,stevens,tucker,porter,hicks,crawford,boyd,mason,morales,kennedy,warren,dixon,ramos,reyes,burns,gordon,shaw,holmes,rice,robertson,hunt,black,daniels,palmer,mills,nichols,grant,knight,ferguson,stone,hawkins,dunn,perkins,hudson,spencer,gardner,stephens,payne,pierce,berry,matthews,arnold,wagner,willis,watkins,olson,carroll,duncan,snyder,hart,cunningham,lane,andrews,ruiz,harper,fox,riley,armstrong,carpenter,weaver,greene,elliott,chavez,sims,peters,kelley,franklin,lawson,fields,gutierrez,schmidt,carr,vasquez,castillo,wheeler,chapman,montgomery,richards,williamson,johnston,banks,meyer,bishop,mccoy,howell,alvarez,morrison,hansen,fernandez,garza,harvey,burton,nguyen,jacobs,reid,fuller,lynch,garrett,romero,welch,larson,frazier,burke,hanson,mendoza,moreno,bowman,medina,fowler,brewer,hoffman,carlson,silva,pearson,holland,fleming,jensen,vargas,byrd,davidson,hopkins,herrera,wade,soto,walters,neal,caldwell,lowe,jennings,barnett,graves,jimenez,horton,shelton,barrett,obrien,castro,sutton,mckinney,lucas,miles,rodriquez,chambers,holt,lambert,fletcher,watts,bates,hale,rhodes,pena,beck,newman,haynes,mcdaniel,mendez,bush,vaughn,parks,dawson,santiago,norris,hardy,steele,curry,powers,schultz,barker,guzman,page,munoz,ball,keller,chandler,weber,walsh,lyons,ramsey,wolfe,schneider,mullins,benson,sharp,bowen,barber,cummings,hines,baldwin,griffith,valdez,hubbard,salazar,reeves,warner,stevenson,burgess,santos,tate,cross,garner,mann,mack,moss,thornton,mcgee,farmer,delgado,aguilar,vega,glover,manning,cohen,harmon,rodgers,robbins,newton,blair,higgins,ingram,reese,cannon,strickland,townsend,potter,goodwin,walton,rowe,hampton,ortega,patton,swanson,goodman,maldonado,yates,becker,erickson,hodges,rios,conner,adkins,webster,malone,hammond,flowers,cobb,moody,quinn,pope,osborne,mccarthy,guerrero,estrada,sandoval,gibbs,gross,fitzgerald,stokes,doyle,saunders,wise,colon,gill,alvarado,greer,padilla,waters,nunez,ballard,schwartz,mcbride,houston,christensen,klein,pratt,briggs,parsons,mclaughlin,zimmerman,buchanan,moran,copeland,pittman,brady,mccormick,holloway,brock,poole,logan,bass,marsh,drake,wong,jefferson,morton,abbott,sparks,norton,huff,massey,figueroa,carson,bowers,roberson,barton,tran,lamb,harrington,boone,cortez,clarke,mathis,singleton,wilkins,cain,underwood,hogan,mckenzie,collier,luna,phelps,mcguire,bridges,wilkerson,nash,summers,atkins,wilcox,pitts,conley,marquez,burnett,cochran,chase,davenport,hood,gates,ayala,sawyer,vazquez,dickerson,hodge,acosta,flynn,espinoza,nicholson,monroe,wolf,morrow,whitaker,oconnor,skinner,ware,molina,kirby,huffman,gilmore,dominguez,oneal,lang,combs,kramer,hancock,gallagher,gaines,shaffer,wiggins,mathews,mcclain,fischer,wall,melton,hensley,bond,dyer,grimes,contreras,wyatt,baxter,snow,mosley,shepherd,larsen,hoover,beasley,petersen,whitehead,meyers,garrison,shields,horn,savage,olsen,schroeder,hartman,woodard,mueller,kemp,deleon,booth,patel,calhoun,wiley,eaton,cline,navarro,harrell,humphrey,parrish,duran,hutchinson,hess,dorsey,bullock,robles,beard,dalton,avila,rich,blackwell,johns,blankenship,trevino,salinas,campos,pruitt,callahan,montoya,hardin,guerra,mcdowell,stafford,gallegos,henson,wilkinson,booker,merritt,atkinson,orr,decker,hobbs,tanner,knox,pacheco,stephenson,glass,rojas,serrano,marks,hickman,sweeney,strong,mcclure,conway,roth,maynard,farrell,lowery,hurst,nixon,weiss,trujillo,ellison,sloan,juarez,winters,mclean,boyer,villarreal,mccall,gentry,carrillo,ayers,lara,sexton,pace,hull,leblanc,browning,velasquez,leach,chang,sellers,herring,noble,foley,bartlett,mercado,landry,durham,walls,barr,mckee,bauer,rivers,bradshaw,pugh,velez,rush,estes,dodson,morse,sheppard,weeks,camacho,bean,barron,livingston,middleton,spears,branch,blevins,chen,kerr,mcconnell,hatfield,harding,solis,frost,giles,blackburn,pennington,woodward,finley,mcintosh,koch,mccullough,blanchard,rivas,brennan,mejia,kane,benton,buckley,valentine,maddox,russo,mcknight,buck,moon,mcmillan,crosby,berg,dotson,mays,roach,chan,richmond,meadows,faulkner,oneill,knapp,kline,ochoa,jacobson,gay,hendricks,horne,shepard,hebert,cardenas,mcintyre,waller,holman,donaldson,cantu,morin,gillespie,fuentes,tillman,bentley,peck,key,salas,rollins,gamble,dickson,santana,cabrera,cervantes,howe,hinton,hurley,spence,zamora,yang,mcneil,suarez,petty,gould,mcfarland,sampson,carver,bray,macdonald,stout,hester,melendez,dillon,farley,hopper,galloway,potts,joyner,stein,aguirre,osborn,mercer,bender,franco,rowland,sykes,pickett,sears,mayo,dunlap,hayden,wilder,mckay,coffey,mccarty,ewing,cooley,vaughan,bonner,cotton,holder,stark,ferrell,cantrell,fulton,lott,calderon,pollard,hooper,burch,mullen,fry,riddle,levy,duke,odonnell,britt,daugherty,berger,dillard,alston,frye,riggs,chaney,odom,duffy,fitzpatrick,valenzuela,mayer,alford,mcpherson,acevedo,barrera,cote,reilly,compton,mooney,mcgowan,craft,clemons,wynn,nielsen,baird,stanton,snider,rosales,bright,witt,hays,holden,rutledge,kinney,clements,castaneda,slater,hahn,burks,delaney,pate,lancaster,sharpe,whitfield,talley,macias,burris,ratliff,mccray,madden,kaufman,beach,goff,cash,bolton,mcfadden,levine,byers,kirkland,kidd,workman,carney,mcleod,holcomb,finch,sosa,haney,franks,sargent,nieves,downs,rasmussen,bird,hewitt,foreman,valencia,oneil,delacruz,vinson,dejesus,hyde,forbes,gilliam,guthrie,wooten,huber,barlow,boyle,mcmahon,buckner,rocha,puckett,langley,knowles,cooke,velazquez,whitley,vang,shea,rouse,hartley,mayfield,elder,rankin,hanna,cowan,lucero,arroyo,slaughter,haas,oconnell,minor,boucher,archer,boggs,dougherty,andersen,newell,crowe,wang,friedman,bland,swain,holley,pearce,childs,yarbrough,galvan,proctor,meeks,lozano,mora,rangel,bacon,villanueva,schaefer,rosado,helms,boyce,goss,stinson,ibarra,hutchins,covington,crowley,hatcher,mackey,bunch,womack,polk,dodd,childress,childers,villa,springer,mahoney,dailey,belcher,lockhart,griggs,costa,brandt,walden,moser,tatum,mccann,akers,lutz,pryor,orozco,mcallister,lugo,davies,shoemaker,rutherford,newsome,magee,chamberlain,blanton,simms,godfrey,flanagan,crum,cordova,escobar,downing,sinclair,donahue,krueger,mcginnis,gore,farris,webber,corbett,andrade,starr,lyon,yoder,hastings,mcgrath,spivey,krause,harden,crabtree,kirkpatrick,arrington,ritter,mcghee,bolden,maloney,gagnon,dunbar,ponce,pike,mayes,beatty,mobley,kimball,butts,montes,eldridge,braun,hamm,gibbons,moyer,manley,herron,plummer,elmore,cramer,rucker,pierson,fontenot,rubio,goldstein,elkins,wills,novak,hickey,worley,gorman,katz,dickinson,broussard,woodruff,crow,britton,nance,lehman,bingham,zuniga,whaley,shafer,coffman,steward,delarosa,neely,mata,davila,mccabe,kessler,hinkle,welsh,pagan,goldberg,goins,crouch,cuevas,quinones,mcdermott,hendrickson,samuels,denton,bergeron,ivey,locke,haines,snell,hoskins,byrne,arias,corbin,beltran,chappell,downey,dooley,tuttle,couch,payton,mcelroy,crockett,groves,cartwright,dickey,mcgill,dubois,muniz,tolbert,dempsey,cisneros,sewell,latham,vigil,tapia,rainey,norwood,stroud,meade,tipton,kuhn,hilliard,bonilla,teague,gunn,greenwood,correa,reece,pineda,phipps,frey,kaiser,ames,gunter,schmitt,milligan,espinosa,bowden,vickers,lowry,pritchard,costello,piper,mcclellan,lovell,sheehan,hatch,dobson,singh,jeffries,hollingsworth,sorensen,meza,fink,donnelly,burrell,tomlinson,colbert,billings,ritchie,helton,sutherland,peoples,mcqueen,thomason,givens,crocker,vogel,robison,dunham,coker,swartz,keys,ladner,richter,hargrove,edmonds,brantley,albright,murdock,boswell,muller,quintero,padgett,kenney,daly,connolly,inman,quintana,lund,barnard,villegas,simons,huggins,tidwell,sanderson,bullard,mcclendon,duarte,draper,marrero,dwyer,abrams,stover,goode,fraser,crews,bernal,godwin,conklin,mcneal,baca,esparza,crowder,bower,brewster,mcneill,rodrigues,leal,coates,raines,mccain,mccord,miner,holbrook,swift,dukes,carlisle,aldridge,ackerman,starks,ricks,holliday,ferris,hairston,sheffield,lange,fountain,doss,betts,kaplan,carmichael,bloom,ruffin,penn,kern,bowles,sizemore,larkin,dupree,seals,metcalf,hutchison,henley,farr,mccauley,hankins,gustafson,curran,waddell,ramey,cates,pollock,cummins,messer,heller,funk,cornett,palacios,galindo,cano,hathaway,pham,enriquez,salgado,pelletier,painter,wiseman,blount,feliciano,houser,doherty,mead,mcgraw,swan,capps,blanco,blackmon,thomson,mcmanus,burkett,gleason,dickens,cormier,voss,rushing,rosenberg,hurd,dumas,benitez,arellano,marin,caudill,bragg,jaramillo,huerta,gipson,colvin,biggs,vela,platt,cassidy,tompkins,mccollum,dolan,daley,crump,sneed,kilgore,grove,grimm,davison,brunson,prater,marcum,devine,dodge,stratton,rosas,choi,tripp,ledbetter,hightower,feldman,epps,yeager,posey,scruggs,cope,stubbs,richey,overton,trotter,sprague,cordero,butcher,stiles,burgos,woodson,horner,bassett,purcell,haskins,akins,ziegler,spaulding,hadley,grubbs,sumner,murillo,zavala,shook,lockwood,driscoll,dahl,thorpe,redmond,putnam,mcwilliams,mcrae,romano,joiner,sadler,hedrick,hager,hagen,fitch,coulter,thacker,mansfield,langston,guidry,ferreira,corley,conn,rossi,lackey,baez,saenz,mcnamara,mcmullen,mckenna,mcdonough,link,engel,browne,roper,peacock,eubanks,drummond,stringer,pritchett,parham,mims,landers,grayson,schafer,egan,timmons,ohara,keen,hamlin,finn,cortes,mcnair,nadeau,moseley,michaud,rosen,oakes,kurtz,jeffers,calloway,beal,bautista,winn,suggs,stern,stapleton,lyles,laird,montano,dawkins,hagan,goldman,bryson,barajas,lovett,segura,metz,lockett,langford,hinson,eastman,hooks,smallwood,shapiro,crowell,whalen,triplett,chatman,aldrich,cahill,youngblood,ybarra,stallings,sheets,reeder,connelly,bateman,abernathy,winkler,wilkes,masters,hackett,granger,gillis,schmitz,sapp,napier,souza,lanier,gomes,weir,otero,ledford,burroughs,babcock,ventura,siegel,dugan,bledsoe,atwood,wray,varner,spangler,anaya,staley,kraft,fournier,belanger,wolff,thorne,bynum,burnette,boykin,swenson,purvis,pina,khan,duvall,darby,xiong,kauffman,healy,engle,benoit,valle,steiner,spicer,shaver,randle,lundy,chin,calvert,staton,neff,kearney,darden,oakley,medeiros,mccracken,crenshaw,perdue,dill,whittaker,tobin,washburn,hogue,goodrich,easley,bravo,dennison,shipley,kerns,jorgensen,crain,villalobos,maurer,longoria,keene,coon,witherspoon,staples,pettit,kincaid,eason,madrid,echols,lusk,stahl,currie,thayer,shultz,mcnally,seay,maher,gagne,barrow,nava,moreland,honeycutt,hearn,diggs,caron,whitten,westbrook,stovall,ragland,munson,meier,looney,kimble,jolly,hobson,goddard,culver,burr,presley,negron,connell,tovar,huddleston,ashby,salter,root,pendleton,oleary,nickerson,myrick,judd,jacobsen,bain,adair,starnes,matos,busby,herndon,hanley,bellamy,doty,bartley,yazzie,rowell,parson,gifford,cullen,christiansen,benavides,barnhart,talbot,mock,crandall,connors,bonds,whitt,gage,bergman,arredondo,addison,lujan,dowdy,jernigan,huynh,bouchard,dutton,rhoades,ouellette,kiser,herrington,hare,blackman,babb,allred,rudd,paulson,ogden,koenig,geiger,begay,parra,lassiter,hawk,esposito,waldron,ransom,prather,chacon,vick,sands,roark,parr,mayberry,greenberg,coley,bruner,whitman,skaggs,shipman,leary,hutton,romo,medrano,ladd,kruse,askew,schulz,alfaro,tabor,mohr,gallo,bermudez,pereira,bliss,reaves,flint,comer,woodall,naquin,guevara,delong,carrier,pickens,tilley,schaffer,knutson,fenton,doran,vogt,vann,prescott,mclain,landis,corcoran,zapata,hyatt,hemphill,faulk,dove,boudreaux,aragon,whitlock,trejo,tackett,shearer,saldana,hanks,mckinnon,koehler,bourgeois,keyes,goodson,foote,lunsford,goldsmith,flood,winslow,sams,reagan,mccloud,hough,esquivel,naylor,loomis,coronado,ludwig,braswell,bearden,huang,fagan,ezell,edmondson,cronin,nunn,lemon,guillory,grier,dubose,traylor,ryder,dobbins,coyle,aponte,whitmore,smalls,rowan,malloy,cardona,braxton,borden,humphries,carrasco,ruff,metzger,huntley,hinojosa,finney,madsen,ernst,dozier,burkhart,bowser,peralta,daigle,whittington,sorenson,saucedo,roche,redding,fugate,avalos,waite,lind,huston,hawthorne,hamby,boyles,boles,regan,faust,crook,beam,barger,hinds,gallardo,willoughby,willingham,eckert,busch,zepeda,worthington,tinsley,hoff,hawley,carmona,varela,rector,newcomb,kinsey,dube,whatley,ragsdale,bernstein,becerra,yost,mattson,felder,cheek,handy,grossman,gauthier,escobedo,braden,beckman,mott,hillman,flaherty,dykes,stockton,stearns,lofton,coats,cavazos,beavers,barrios,tang,mosher,cardwell,coles,burnham,weller,lemons,beebe,aguilera,parnell,harman,couture,alley,schumacher,redd,dobbs,blum,blalock,merchant,ennis,denson,cottrell,brannon,bagley,aviles,watt,sousa,rosenthal,rooney,dietz,blank,paquette,mcclelland,duff,velasco,lentz,grubb,burrows,barbour,ulrich,shockley,rader,beyer,mixon,layton,altman,weathers,stoner,squires,shipp,priest,lipscomb,cutler,caballero,zimmer,willett,thurston,storey,medley,epperson,shah,mcmillian,baggett,torrez,hirsch,dent,poirier,peachey,farrar,creech,barth,trimble,dupre,albrecht,sample,lawler,crisp,conroy,wetzel,nesbitt,murry,jameson,wilhelm,patten,minton,matson,kimbrough,guinn,croft,toth,pulliam,nugent,newby,littlejohn,dias,canales,bernier,baron,singletary,renteria,pruett,mchugh,mabry,landrum,brower,stoddard,cagle,stjohn,scales,kohler,kellogg,hopson,gant,tharp,gann,zeigler,pringle,hammons,fairchild,deaton,chavis,carnes,rowley,matlock,kearns,irizarry,carrington,starkey,lopes,jarrell,craven,baum,littlefield,linn,humphreys,etheridge,cuellar,chastain,bundy,speer,skelton,quiroz,pyle,portillo,ponder,moulton,machado,killian,hutson,hitchcock,dowling,cloud,burdick,spann,pedersen,levin,leggett,hayward,dietrich,beaulieu,barksdale,wakefield,snowden,briscoe,bowie,berman,ogle,mcgregor,laughlin,helm,burden,wheatley,schreiber,pressley,parris,alaniz,agee,swann,snodgrass,schuster,radford,monk,mattingly,harp,girard,cheney,yancey,wagoner,ridley,lombardo,hudgins,gaskins,duckworth,coburn,willey,prado,newberry,magana,hammonds,elam,whipple,slade,serna,ojeda,liles,dorman,diehl,upton,reardon,michaels,goetz,eller,bauman,baer,layne,hummel,brenner,amaya,adamson,ornelas,dowell,cloutier,castellanos,wellman,saylor,orourke,moya,montalvo,kilpatrick,durbin,shell,oldham,kang,garvin,foss,branham,bartholomew,templeton,maguire,holton,rider,monahan,mccormack,beaty,anders,streeter,nieto,nielson,moffett,lankford,keating,heck,gatlin,delatorre,callaway,adcock,worrell,unger,robinette,nowak,jeter,brunner,steen,parrott,overstreet,nobles,montanez,clevenger,brinkley,trahan,quarles,pickering,pederson,jansen,grantham,gilchrist,crespo,aiken,schell,schaeffer,lorenz,leyva,harms,dyson,wallis,pease,leavitt,cheng,cavanaugh,batts,warden,seaman,rockwell,quezada,paxton,linder,houck,fontaine,durant,caruso,adler,pimentel,mize,lytle,cleary,cason,acker,switzer,isaacs,higginbotham,waterman,vandyke,stamper,sisk,shuler,riddick,mcmahan,levesque,hatton,bronson,bollinger,arnett,okeefe,gerber,gannon,farnsworth,baughman,silverman,satterfield,mccrary,kowalski,grigsby,greco,cabral,trout,rinehart,mahon,linton,gooden,curley,baugh,wyman,weiner,schwab,schuler,morrissey,mahan,bunn,thrasher,spear,waggoner,qualls,purdy,mcwhorter,mauldin,gilman,perryman,newsom,menard,martino,graf,billingsley,artis,simpkins,salisbury,quintanilla,gilliland,fraley,foust,crouse,scarborough,grissom,fultz,marlow,markham,madrigal,lawton,barfield,whiting,varney,schwarz,gooch,arce,wheat,truong,poulin,hurtado,selby,gaither,fortner,culpepper,coughlin,brinson,boudreau,bales,stepp,holm,schilling,morrell,kahn,heaton,gamez,causey,turpin,shanks,schrader,meek,isom,hardison,carranza,yanez,scroggins,schofield,runyon,ratcliff,murrell,moeller,irby,currier,butterfield,ralston,pullen,pinson,estep,carbone,hawks,ellington,casillas,spurlock,sikes,motley,mccartney,kruger,isbell,houle,burk,tomlin,quigley,neumann,lovelace,fennell,cheatham,bustamante,skidmore,hidalgo,forman,culp,bowens,betancourt,aquino,robb,milner,martel,gresham,wiles,ricketts,dowd,collazo,bostic,blakely,sherrod,kenyon,gandy,ebert,deloach,allard,sauer,robins,olivares,gillette,chestnut,bourque,paine,hite,hauser,devore,crawley,chapa,talbert,poindexter,meador,mcduffie,mattox,kraus,harkins,choate,wren,sledge,sanborn,kinder,geary,cornwell,barclay,abney,seward,rhoads,howland,fortier,benner,vines,tubbs,troutman,rapp,mccurdy,deluca,westmoreland,havens,guajardo,clary,seal,meehan,herzog,guillen,ashcraft,waugh,renner,milam,elrod,churchill,breaux,bolin,asher,windham,tirado,pemberton,nolen,noland,knott,emmons,cornish,christenson,brownlee,barbee,waldrop,pitt,olvera,lombardi,gruber,gaffney,eggleston,banda,archuleta,slone,prewitt,pfeiffer,nettles,mena,mcadams,henning,gardiner,cromwell,chisholm,burleson,vest,oglesby,mccarter,lumpkin,wofford,vanhorn,thorn,teel,swafford,stclair,stanfield,ocampo,herrmann,hannon,arsenault,roush,mcalister,hiatt,gunderson,forsythe,duggan,delvalle,cintron,wilks,weinstein,uribe,rizzo,noyes,mclendon,gurley,bethea,winstead,maples,guyton,giordano,alderman,valdes,polanco,pappas,lively,grogan,griffiths,bobo,arevalo,whitson,sowell,rendon,fernandes,farrow,benavidez,ayres,alicea,stump,smalley,seitz,schulte,gilley,gallant,canfield,wolford,omalley,mcnutt,mcnulty,mcgovern,hardman,harbin,cowart,chavarria,brink,beckett,bagwell,armstead,anglin,abreu,reynoso,krebs,jett,hoffmann,greenfield,forte,burney,broome,sisson,trammell,partridge,mace,lomax,lemieux,gossett,frantz,fogle,cooney,broughton,pence,paulsen,muncy,mcarthur,hollins,beauchamp,withers,osorio,mulligan,hoyle,dockery,cockrell,begley,amador,roby,rains,lindquist,gentile,everhart,bohannon,wylie,sommers,purnell,fortin,dunning,breeden,vail,phelan,phan,marx,cosby,colburn,boling,biddle,ledesma,gaddis,denney,chow,bueno,berrios,wicker,tolliver,thibodeaux,nagle,lavoie,fisk,crist,barbosa,reedy,locklear,kolb,himes,behrens,beckwith,weems,wahl,shorter,shackelford,rees,muse,cerda,valadez,thibodeau,saavedra,ridgeway,reiter,mchenry,majors,lachance,keaton,ferrara,clemens,blocker,applegate,needham,mojica,kuykendall,hamel,escamilla,doughty,burchett,ainsworth,vidal,upchurch,thigpen,strauss,spruill,sowers,riggins,ricker,mccombs,harlow,buffington,sotelo,olivas,negrete,morey,macon,logsdon,lapointe,bigelow,bello,westfall,stubblefield,lindley,hein,hawes,farrington,breen,birch,wilde,steed,sepulveda,reinhardt,proffitt,minter,messina,mcnabb,maier,keeler,gamboa,donohue,basham,shinn,crooks,cota,borders,bills,bachman,tisdale,tavares,schmid,pickard,gulley,fonseca,delossantos,condon,batista,wicks,wadsworth,martell,littleton,ison,haag,folsom,brumfield,broyles,brito,mireles,mcdonnell,leclair,hamblin,gough,fanning,binder,winfield,whitworth,soriano,palumbo,newkirk,mangum,hutcherson,comstock,carlin,beall,bair,wendt,watters,walling,putman,otoole,morley,mares,lemus,keener,hundley,dial,damico,billups,strother,mcfarlane,lamm,eaves,crutcher,caraballo,canty,atwell,taft,siler,rust,rawls,rawlings,prieto,mcneely,mcafee,hulsey,hackney,galvez,escalante,delagarza,crider,bandy,wilbanks,stowe,steinberg,renfro,masterson,massie,lanham,haskell,hamrick,dehart,burdette,branson,bourne,babin,aleman,worthy,tibbs,smoot,slack,paradis,mull,luce,houghton,gantt,furman,danner,christianson,burge,ashford,arndt,almeida,stallworth,shade,searcy,sager,noonan,mclemore,mcintire,maxey,lavigne,jobe,ferrer,falk,coffin,byrnes,aranda,apodaca,stamps,rounds,peek,olmstead,lewandowski,kaminski,dunaway,bruns,brackett,amato,reich,mcclung,lacroix,koontz,herrick,hardesty,flanders,cousins,cato,cade,vickery,shank,nagel,dupuis,croteau,cotter,stuckey,stine,porterfield,pauley,moffitt,knudsen,hardwick,goforth,dupont,blunt,barrows,barnhill,shull,rash,loftis,lemay,kitchens,horvath,grenier,fuchs,fairbanks,culbertson,calkins,burnside,beattie,ashworth,albertson,wertz,vaught,vallejo,turk,tuck,tijerina,sage,peterman,marroquin,marr,lantz,hoang,demarco,cone,berube,barnette,wharton,stinnett,slocum,scanlon,sander,pinto,mancuso,lima,headley,epstein,counts,clarkson,carnahan,boren,arteaga,adame,zook,whittle,whitehurst,wenzel,saxton,reddick,puente,handley,haggerty,earley,devlin,chaffin,cady,acuna,solano,sigler,pollack,pendergrass,ostrander,janes,francois,crutchfield,chamberlin,brubaker,baptiste,willson,reis,neeley,mullin,mercier,lira,layman,keeling,higdon,espinal,chapin,warfield,toledo,pulido,peebles,nagy,montague,mello,lear,jaeger,hogg,graff,furr,soliz,poore,mendenhall,mclaurin,maestas,gable,barraza,tillery,snead,pond,neill,mcculloch,mccorkle,lightfoot,hutchings,holloman,harness,dorn,bock,zielinski,turley,treadwell,stpierre,starling,somers,oswald,merrick,easterling,bivens,truitt,poston,parry,ontiveros,olivarez,moreau,medlin,lenz,knowlton,fairley,cobbs,chisolm,bannister,woodworth,toler,ocasio,noriega,neuman,moye,milburn,mcclanahan,lilley,hanes,flannery,dellinger,danielson,conti,blodgett,beers,weatherford,strain,karr,hitt,denham,custer,coble,clough,casteel,bolduc,batchelor,ammons,whitlow,tierney,staten,sibley,seifert,schubert,salcedo,mattison,laney,haggard,grooms,dees,cromer,cooks,colson,caswell,zarate,swisher,shin,ragan,pridgen,mcvey,matheny,lafleur,franz,ferraro,dugger,whiteside,rigsby,mcmurray,lehmann,jacoby,hildebrand,hendrick,headrick,goad,fincher,drury,borges,archibald,albers,woodcock,trapp,soares,seaton,monson,luckett,lindberg,kopp,keeton,healey,garvey,gaddy,fain,burchfield,wentworth,strand,stack,spooner,saucier,ricci,plunkett,pannell,ness,leger,freitas,fong,elizondo,duval,beaudoin,urbina,rickard,partin,mcgrew,mcclintock,ledoux,forsyth,faison,devries,bertrand,wasson,tilton,scarbrough,leung,irvine,garber,denning,corral,colley,castleberry,bowlin,bogan,beale,baines,trice,rayburn,parkinson,nunes,mcmillen,leahy,kimmel,higgs,fulmer,carden,bedford,taggart,spearman,prichard,morrill,koonce,heinz,hedges,guenther,grice,findley,dover,creighton,boothe,bayer,arreola,vitale,valles,raney,osgood,hanlon,burley,bounds,worden,weatherly,vetter,tanaka,stiltner,nevarez,mosby,montero,melancon,harter,hamer,goble,gladden,gist,ginn,akin,zaragoza,tarver,sammons,royster,oreilly,muir,morehead,luster,kingsley,kelso,grisham,glynn,baumann,alves,yount,tamayo,paterson,oates,menendez,longo,hargis,gillen,desantis,conover,breedlove,sumpter,scherer,rupp,reichert,heredia,creel,cohn,clemmons,casas,bickford,belton,bach,williford,whitcomb,tennant,sutter,stull,mccallum,langlois,keel,keegan,dangelo,dancy,damron,clapp,clanton,bankston,oliveira,mintz,mcinnis,martens,mabe,laster,jolley,hildreth,hefner,glaser,duckett,demers,brockman,blais,alcorn,agnew,toliver,tice,seeley,najera,musser,mcfall,laplante,galvin,fajardo,doan,coyne,copley,clawson,cheung,barone,wynne,woodley,tremblay,stoll,sparrow,sparkman,schweitzer,sasser,samples,roney,legg,heim,farias,colwell,christman,bratcher,winchester,upshaw,southerland,sorrell,sells,mccloskey,martindale,luttrell,loveless,lovejoy,linares,latimer,embry,coombs,bratton,bostick,venable,tuggle,toro,staggs,sandlin,jefferies,heckman,griffis,crayton,clem,browder,thorton,sturgill,sprouse,royer,rousseau,ridenour,pogue,perales,peeples,metzler,mesa,mccutcheon,mcbee,hornsby,heffner,corrigan,armijo,plante,peyton,paredes,macklin,hussey,hodgson,granados,frias,becnel,batten,almanza,turney,teal,sturgeon,meeker,mcdaniels,limon,keeney,hutto,holguin,gorham,fishman,fierro,blanchette,rodrigue,reddy,osburn,oden,lerma,kirkwood,keefer,haugen,hammett,chalmers,brinkman,baumgartner,zhang,valerio,tellez,steffen,shumate,sauls,ripley,kemper,guffey,evers,craddock,carvalho,blaylock,banuelos,balderas,wheaton,turnbull,shuman,pointer,mosier,mccue,ligon,kozlowski,johansen,ingle,herr,briones,snipes,rickman,pipkin,pantoja,orosco,moniz,lawless,kunkel,hibbard,galarza,enos,bussey,schott,salcido,perreault,mcdougal,mccool,haight,garris,easton,conyers,atherton,wimberly,utley,spellman,smithson,slagle,ritchey,rand,petit,osullivan,oaks,nutt,mcvay,mccreary,mayhew,knoll,jewett,harwood,cardoza,ashe,arriaga,zeller,wirth,whitmire,stauffer,rountree,redden,mccaffrey,martz,larose,langdon,humes,gaskin,faber,devito,cass,almond,wingfield,wingate,villareal,tyner,smothers,severson,reno,pennell,maupin,leighton,janssen,hassell,hallman,halcomb,folse,fitzsimmons,fahey,cranford,bolen,battles,battaglia,wooldridge,trask,rosser,regalado,mcewen,keefe,fuqua,echevarria,caro,boynton,andrus,viera,vanmeter,taber,spradlin,seibert,provost,prentice,oliphant,laporte,hwang,hatchett,hass,greiner,freedman,covert,chilton,byars,wiese,venegas,swank,shrader,roberge,mullis,mortensen,mccune,marlowe,kirchner,keck,isaacson,hostetler,halverson,gunther,griswold,fenner,durden,blackwood,ahrens,sawyers,savoy,nabors,mcswain,mackay,lavender,lash,labbe,jessup,fullerton,cruse,crittenden,correia,centeno,caudle,canady,callender,alarcon,ahern,winfrey,tribble,salley,roden,musgrove,minnick,fortenberry,carrion,bunting,batiste,whited,underhill,stillwell,rauch,pippin,perrin,messenger,mancini,lister,kinard,hartmann,fleck,wilt,treadway,thornhill,spalding,rafferty,pitre,patino,ordonez,linkous,kelleher,homan,galbraith,feeney,curtin,coward,camarillo,buss,bunnell,bolt,beeler,autry,alcala,witte,wentz,stidham,shively,nunley,meacham,martins,lemke,lefebvre,hynes,horowitz,hoppe,holcombe,dunne,derr,cochrane,brittain,bedard,beauregard,torrence,strunk,soria,simonson,shumaker,scoggins,oconner,moriarty,kuntz,ives,hutcheson,horan,hales,garmon,fitts,bohn,atchison,wisniewski,vanwinkle,sturm,sallee,prosser,moen,lundberg,kunz,kohl,keane,jorgenson,jaynes,funderburk,freed,durr,creamer,cosgrove,batson,vanhoose,thomsen,teeter,smyth,redmon,orellana,maness,heflin,goulet,frick,forney,bunker,asbury,aguiar,talbott,southard,mowery,mears,lemmon,krieger,hickson,elston,duong,delgadillo,dayton,dasilva,conaway,catron,bruton,bradbury,bordelon,bivins,bittner,bergstrom,beals,abell,whelan,tejada,pulley,pino,norfleet,nealy,maes,loper,gatewood,frierson,freund,finnegan,cupp,covey,catalano,boehm,bader,yoon,walston,tenney,sipes,rawlins,medlock,mccaskill,mccallister,marcotte,maclean,hughey,henke,harwell,gladney,gilson,chism,caskey,brandenburg,baylor,villasenor,veal,thatcher,stegall,petrie,nowlin,navarrete,lombard,loftin,lemaster,kroll,kovach,kimbrell,kidwell,hershberger,fulcher,cantwell,bustos,boland,bobbitt,binkley,wester,weis,verdin,tong,tiller,sisco,sharkey,seymore,rosenbaum,rohr,quinonez,pinkston,malley,logue,lessard,lerner,lebron,krauss,klinger,halstead,haller,getz,burrow,alger,shores,pfeifer,perron,nelms,munn,mcmaster,mckenney,manns,knudson,hutchens,huskey,goebel,flagg,cushman,click,castellano,carder,bumgarner,wampler,spinks,robson,neel,mcreynolds,mathias,maas,loera,jenson,florez,coons,buckingham,brogan,berryman,wilmoth,wilhite,thrash,shephard,seidel,schulze,roldan,pettis,obryan,maki,mackie,hatley,frazer,fiore,chesser,bottoms,bisson,benefield,allman,wilke,trudeau,timm,shifflett,mundy,milliken,mayers,leake,kohn,huntington,horsley,hermann,guerin,fryer,frizzell,foret,flemming,fife,criswell,carbajal,bozeman,boisvert,angulo,wallen,tapp,silvers,ramsay,oshea,orta,moll,mckeever,mcgehee,linville,kiefer,ketchum,howerton,groce,gass,fusco,corbitt,betz,bartels,amaral,aiello,weddle,sperry,seiler,runyan,raley,overby,osteen,olds,mckeown,matney,lauer,lattimore,hindman,hartwell,fredrickson,fredericks,espino,clegg,carswell,cambell,burkholder,woodbury,welker,totten,thornburg,theriault,stitt,stamm,stackhouse,scholl,saxon,rife,razo,quinlan,pinkerton,olivo,nesmith,nall,mattos,lafferty,justus,giron,geer,fielder,drayton,dortch,conners,conger,boatwright,billiot,barden,armenta,tibbetts,steadman,slattery,rinaldi,raynor,pinckney,pettigrew,milne,matteson,halsey,gonsalves,fellows,durand,desimone,cowley,cowles,brill,barham,barela,barba,ashmore,withrow,valenti,tejeda,spriggs,sayre,salerno,peltier,peel,merriman,matheson,lowman,lindstrom,hyland,giroux,earls,dugas,dabney,collado,briseno,baxley,whyte,wenger,vanover,vanburen,thiel,schindler,schiller,rigby,pomeroy,passmore,marble,manzo,mahaffey,lindgren,laflamme,greathouse,fite,calabrese,bayne,yamamoto,wick,townes,thames,reinhart,peeler,naranjo,montez,mcdade,mast,markley,marchand,leeper,kellum,hudgens,hennessey,hadden,gainey,coppola,borrego,bolling,beane,ault,slaton,pape,null,mulkey,lightner,langer,hillard,ethridge,enright,derosa,baskin,weinberg,turman,somerville,pardo,noll,lashley,ingraham,hiller,hendon,glaze,cothran,cooksey,conte,carrico,abner,wooley,swope,summerlin,sturgis,sturdivant,stott,spurgeon,spillman,speight,roussel,popp,nutter,mckeon,mazza,magnuson,lanning,kozak,jankowski,heyward,forster,corwin,callaghan,bays,wortham,usher,theriot,sayers,sabo,poling,loya,lieberman,laroche,labelle,howes,harr,garay,fogarty,everson,durkin,dominquez,chaves,chambliss,witcher,vieira,vandiver,terrill,stoker,schreiner,moorman,liddell,lawhorn,krug,irons,hylton,hollenbeck,herrin,hembree,goolsby,goodin,gilmer,foltz,dinkins,daughtry,caban,brim,briley,bilodeau,wyant,vergara,tallent,swearingen,stroup,scribner,quillen,pitman,mccants,maxfield,martinson,holtz,flournoy,brookins,brody,baumgardner,straub,sills,roybal,roundtree,oswalt,mcgriff,mcdougall,mccleary,maggard,gragg,gooding,godinez,doolittle,donato,cowell,cassell,bracken,appel,zambrano,reuter,perea,nakamura,monaghan,mickens,mcclinton,mcclary,marler,kish,judkins,gilbreath,freese,flanigan,felts,erdmann,dodds,chew,brownell,boatright,barreto,slayton,sandberg,saldivar,pettway,odum,narvaez,moultrie,montemayor,merrell,lees,keyser,hoke,hardaway,hannan,gilbertson,fogg,dumont,deberry,coggins,buxton,bucher,broadnax,beeson,araujo,appleton,amundson,aguayo,ackley,yocum,worsham,shivers,sanches,sacco,robey,rhoden,pender,ochs,mccurry,madera,luong,knotts,jackman,heinrich,hargrave,gault,comeaux,chitwood,caraway,boettcher,bernhardt,barrientos,zink,wickham,whiteman,thorp,stillman,settles,schoonover,roque,riddell,pilcher,phifer,novotny,macleod,hardee,haase,grider,doucette,clausen,bevins,beamon,badillo,tolley,tindall,soule,snook,seale,pinkney,pellegrino,nowell,nemeth,mondragon,mclane,lundgren,ingalls,hudspeth,hixson,gearhart,furlong,downes,dibble,deyoung,cornejo,camara,brookshire,boyette,wolcott,surratt,sellars,segal,salyer,reeve,rausch,labonte,haro,gower,freeland,fawcett,eads,driggers,donley,collett,bromley,boatman,ballinger,baldridge,volz,trombley,stonge,shanahan,rivard,rhyne,pedroza,matias,jamieson,hedgepeth,hartnett,estevez,eskridge,denman,chiu,chinn,catlett,carmack,buie,bechtel,beardsley,bard,ballou,ulmer,skeen,robledo,rincon,reitz,piazza,munger,moten,mcmichael,loftus,ledet,kersey,groff,fowlkes,crumpton,clouse,bettis,villagomez,timmerman,strom,santoro,roddy,penrod,musselman,macpherson,leboeuf,harless,haddad,guido,golding,fulkerson,fannin,dulaney,dowdell,cottle,ceja,cate,bosley,benge,albritton,voigt,trowbridge,soileau,seely,rohde,pearsall,paulk,orth,nason,mota,mcmullin,marquardt,madigan,hoag,gillum,gabbard,fenwick,danforth,cushing,cress,creed,cazares,bettencourt,barringer,baber,stansberry,schramm,rutter,rivero,oquendo,necaise,mouton,montenegro,miley,mcgough,marra,macmillan,lamontagne,jasso,horst,hetrick,heilman,gaytan,gall,fortney,dingle,desjardins,dabbs,burbank,brigham,breland,beaman,arriola,yarborough,wallin,toscano,stowers,reiss,pichardo,orton,michels,mcnamee,mccrory,leatherman,kell,keister,horning,hargett,guay,ferro,deboer,dagostino,carper,blanks,beaudry,towle,tafoya,stricklin,strader,soper,sonnier,sigmon,schenk,saddler,pedigo,mendes,lunn,lohr,lahr,kingsbury,jarman,hume,holliman,hofmann,haworth,harrelson,hambrick,flick,edmunds,dacosta,crossman,colston,chaplin,carrell,budd,weiler,waits,valentino,trantham,tarr,solorio,roebuck,powe,plank,pettus,pagano,mink,luker,leathers,joslin,hartzell,gambrell,cepeda,carty,caputo,brewington,bedell,ballew,applewhite,warnock,walz,urena,tudor,reel,pigg,parton,mickelson,meagher,mclellan,mcculley,mandel,leech,lavallee,kraemer,kling,kipp,kehoe,hochstetler,harriman,gregoire,grabowski,gosselin,gammon,fancher,edens,desai,brannan,armendariz,woolsey,whitehouse,whetstone,ussery,towne,testa,tallman,studer,strait,steinmetz,sorrells,sauceda,rolfe,paddock,mitchem,mcginn,mccrea,lovato,hazen,gilpin,gaynor,fike,devoe,delrio,curiel,burkhardt,bode,backus,zinn,watanabe,wachter,vanpelt,turnage,shaner,schroder,sato,riordan,quimby,portis,natale,mckoy,mccown,kilmer,hotchkiss,hesse,halbert,gwinn,godsey,delisle,chrisman,canter,arbogast,angell,acree,yancy,woolley,wesson,weatherspoon,trainor,stockman,spiller,sipe,rooks,reavis,propst,porras,neilson,mullens,loucks,llewellyn,kumar,koester,klingensmith,kirsch,kester,honaker,hodson,hennessy,helmick,garrity,garibay,drain,casarez,callis,botello,aycock,avant,wingard,wayman,tully,theisen,szymanski,stansbury,segovia,rainwater,preece,pirtle,padron,mincey,mckelvey,mathes,larrabee,kornegay,klug,ingersoll,hecht,germain,eggers,dykstra,deering,decoteau,deason,dearing,cofield,carrigan,bonham,bahr,aucoin,appleby,almonte,yager,womble,wimmer,weimer,vanderpool,stancil,sprinkle,romine,remington,pfaff,peckham,olivera,meraz,maze,lathrop,koehn,hazelton,halvorson,hallock,haddock,ducharme,dehaven,caruthers,brehm,bosworth,bost,bias,beeman,basile,bane,aikens,wold,walther,tabb,suber,strawn,stocker,shirey,schlosser,riedel,rembert,reimer,pyles,peele,merriweather,letourneau,latta,kidder,hixon,hillis,hight,herbst,henriquez,haygood,hamill,gabel,fritts,eubank,dawes,correll,bushey,buchholz,brotherton,botts,barnwell,auger,atchley,westphal,veilleux,ulloa,stutzman,shriver,ryals,pilkington,moyers,marrs,mangrum,maddux,lockard,laing,kuhl,harney,hammock,hamlett,felker,doerr,depriest,carrasquillo,carothers,bogle,bischoff,bergen,albanese,wyckoff,vermillion,vansickle,thibault,tetreault,stickney,shoemake,ruggiero,rawson,racine,philpot,paschal,mcelhaney,mathison,legrand,lapierre,kwan,kremer,jiles,hilbert,geyer,faircloth,ehlers,egbert,desrosiers,dalrymple,cotten,cashman,cadena,boardman,alcaraz,wyrick,therrien,tankersley,strickler,puryear,plourde,pattison,pardue,mcginty,mcevoy,landreth,kuhns,koon,hewett,giddens,emerick,eades,deangelis,cosme,ceballos,birdsong,benham,bemis,armour,anguiano,welborn,tsosie,storms,shoup,sessoms,samaniego,rood,rojo,rhinehart,raby,northcutt,myer,munguia,morehouse,mcdevitt,mallett,lozada,lemoine,kuehn,hallett,grim,gillard,gaylor,garman,gallaher,feaster,faris,darrow,dardar,coney,carreon,braithwaite,boylan,boyett,bixler,bigham,benford,barragan,barnum,zuber,wyche,westcott,vining,stoltzfus,simonds,shupe,sabin,ruble,rittenhouse,richman,perrone,mulholland,millan,lomeli,kite,jemison,hulett,holler,hickerson,herold,hazelwood,griffen,gause,forde,eisenberg,dilworth,charron,chaisson,bristow,breunig,brace,boutwell,bentz,belk,bayless,batchelder,baran,baeza,zimmermann,weathersby,volk,toole,theis,tedesco,searle,schenck,satterwhite,ruelas,rankins,partida,nesbit,morel,menchaca,levasseur,kaylor,johnstone,hulse,hollar,hersey,harrigan,harbison,guyer,gish,giese,gerlach,geller,geisler,falcone,elwell,doucet,deese,darr,corder,chafin,byler,bussell,burdett,brasher,bowe,bellinger,bastian,barner,alleyne,wilborn,weil,wegner,tatro,spitzer,smithers,schoen,resendez,parisi,overman,obrian,mudd,mahler,maggio,lindner,lalonde,lacasse,laboy,killion,kahl,jessen,jamerson,houk,henshaw,gustin,graber,durst,duenas,davey,cundiff,conlon,colunga,coakley,chiles,capers,buell,bricker,bissonnette,bartz,bagby,zayas,volpe,treece,toombs,thom,terrazas,swinney,skiles,silveira,shouse,senn,ramage,moua,langham,kyles,holston,hoagland,herd,feller,denison,carraway,burford,bickel,ambriz,abercrombie,yamada,weidner,waddle,verduzco,thurmond,swindle,schrock,sanabria,rosenberger,probst,peabody,olinger,nazario,mccafferty,mcbroom,mcabee,mazur,matherne,mapes,leverett,killingsworth,heisler,griego,gosnell,frankel,franke,ferrante,fenn,ehrlich,christopherso,chasse,caton,brunelle,bloomfield,babbitt,azevedo,abramson,ables,abeyta,youmans,wozniak,wainwright,stowell,smitherman,samuelson,runge,rothman,rosenfeld,peake,owings,olmos,munro,moreira,leatherwood,larkins,krantz,kovacs,kizer,kindred,karnes,jaffe,hubbell,hosey,hauck,goodell,erdman,dvorak,doane,cureton,cofer,buehler,bierman,berndt,banta,abdullah,warwick,waltz,turcotte,torrey,stith,seger,sachs,quesada,pinder,peppers,pascual,paschall,parkhurst,ozuna,oster,nicholls,lheureux,lavalley,kimura,jablonski,haun,gourley,gilligan,croy,cotto,cargill,burwell,burgett,buckman,booher,adorno,wrenn,whittemore,urias,szabo,sayles,saiz,rutland,rael,pharr,pelkey,ogrady,nickell,musick,moats,mather,massa,kirschner,kieffer,kellar,hendershot,gott,godoy,gadson,furtado,fiedler,erskine,dutcher,dever,daggett,chevalier,brake,ballesteros,amerson,wingo,waldon,trott,silvey,showers,schlegel,ritz,pepin,pelayo,parsley,palermo,moorehead,mchale,lett,kocher,kilburn,iglesias,humble,hulbert,huckaby,hartford,hardiman,gurney,grigg,grasso,goings,fillmore,farber,depew,dandrea,cowen,covarrubias,burrus,bracy,ardoin,thompkins,standley,radcliffe,pohl,persaud,parenteau,pabon,newson,newhouse,napolitano,mulcahy,malave,keim,hooten,hernandes,heffernan,hearne,greenleaf,glick,fuhrman,fetter,faria,dishman,dickenson,crites,criss,clapper,chenault,castor,casto,bugg,bove,bonney,anderton,allgood,alderson,woodman,warrick,toomey,tooley,tarrant,summerville,stebbins,sokol,searles,schutz,schumann,scheer,remillard,raper,proulx,palmore,monroy,messier,melo,melanson,mashburn,manzano,lussier,jenks,huneycutt,hartwig,grimsley,fulk,fielding,fidler,engstrom,eldred,dantzler,crandell,calder,brumley,breton,brann,bramlett,boykins,bianco,bancroft,almaraz,alcantar,whitmer,whitener,welton,vineyard,rahn,paquin,mizell,mcmillin,mckean,marston,maciel,lundquist,liggins,lampkin,kranz,koski,kirkham,jiminez,hazzard,harrod,graziano,grammer,gendron,garrido,fordham,englert,dryden,demoss,deluna,crabb,comeau,brummett,blume,benally,wessel,vanbuskirk,thorson,stumpf,stockwell,reams,radtke,rackley,pelton,niemi,newland,nelsen,morrissette,miramontes,mcginley,mccluskey,marchant,luevano,lampe,lail,jeffcoat,infante,hinman,gaona,eady,desmarais,decosta,dansby,cisco,choe,breckenridge,bostwick,borg,bianchi,alberts,wilkie,whorton,vargo,tait,soucy,schuman,ousley,mumford,lippert,leath,lavergne,laliberte,kirksey,kenner,johnsen,izzo,hiles,gullett,greenwell,gaspar,galbreath,gaitan,ericson,delapaz,croom,cottingham,clift,bushnell,bice,beason,arrowood,waring,voorhees,truax,shreve,shockey,schatz,sandifer,rubino,rozier,roseberry,pieper,peden,nester,nave,murphey,malinowski,macgregor,lafrance,kunkle,kirkman,hipp,hasty,haddix,gervais,gerdes,gamache,fouts,fitzwater,dillingham,deming,deanda,cedeno,cannady,burson,bouldin,arceneaux,woodhouse,whitford,wescott,welty,weigel,torgerson,toms,surber,sunderland,sterner,setzer,riojas,pumphrey,puga,metts,mcgarry,mccandless,magill,lupo,loveland,llamas,leclerc,koons,kahler,huss,holbert,heintz,haupt,grimmett,gaskill,ellingson,dorr,dingess,deweese,desilva,crossley,cordeiro,converse,conde,caldera,cairns,burmeister,burkhalter,brawner,bott,youngs,vierra,valladares,shrum,shropshire,sevilla,rusk,rodarte,pedraza,nino,merino,mcminn,markle,mapp,lajoie,koerner,kittrell,kato,hyder,hollifield,heiser,hazlett,greenwald,fant,eldredge,dreher,delafuente,cravens,claypool,beecher,aronson,alanis,worthen,wojcik,winger,whitacre,valverde,valdivia,troupe,thrower,swindell,suttles,stroman,spires,slate,shealy,sarver,sartin,sadowski,rondeau,rolon,rascon,priddy,paulino,nolte,munroe,molloy,mciver,lykins,loggins,lenoir,klotz,kempf,hupp,hollowell,hollander,haynie,harkness,harker,gottlieb,frith,eddins,driskell,doggett,densmore,charette,cassady,byrum,burcham,buggs,benn,whitted,warrington,vandusen,vaillancourt,steger,siebert,scofield,quirk,purser,plumb,orcutt,nordstrom,mosely,michalski,mcphail,mcdavid,mccraw,marchese,mannino,lefevre,largent,lanza,kress,isham,hunsaker,hoch,hildebrandt,guarino,grijalva,graybill,fick,ewell,ewald,cusick,crumley,coston,cathcart,carruthers,bullington,bowes,blain,blackford,barboza,yingling,wert,weiland,varga,silverstein,sievers,shuster,shumway,runnels,rumsey,renfroe,provencher,polley,mohler,middlebrooks,kutz,koster,groth,glidden,fazio,deen,chipman,chenoweth,champlin,cedillo,carrero,carmody,buckles,brien,boutin,bosch,berkowitz,altamirano,wilfong,wiegand,waites,truesdale,toussaint,tobey,tedder,steelman,sirois,schnell,robichaud,richburg,plumley,pizarro,piercy,ortego,oberg,neace,mertz,mcnew,matta,lapp,lair,kibler,howlett,hollister,hofer,hatten,hagler,falgoust,engelhardt,eberle,dombrowski,dinsmore,daye,casares,braud,balch,autrey,wendel,tyndall,strobel,stoltz,spinelli,serrato,reber,rathbone,palomino,nickels,mayle,mathers,mach,loeffler,littrell,levinson,leong,lemire,lejeune,lazo,lasley,koller,kennard,hoelscher,hintz,hagerman,greaves,fore,eudy,engler,corrales,cordes,brunet,bidwell,bennet,tyrrell,tharpe,swinton,stribling,southworth,sisneros,savoie,samons,ruvalcaba,ries,ramer,omara,mosqueda,millar,mcpeak,macomber,luckey,litton,lehr,lavin,hubbs,hoard,hibbs,hagans,futrell,exum,evenson,culler,carbaugh,callen,brashear,bloomer,blakeney,bigler,addington,woodford,unruh,tolentino,sumrall,stgermain,smock,sherer,rayner,pooler,oquinn,nero,mcglothlin,linden,kowal,kerrigan,ibrahim,harvell,hanrahan,goodall,geist,fussell,fung,ferebee,eley,eggert,dorsett,dingman,destefano,colucci,clemmer,burnell,brumbaugh,boddie,berryhill,avelar,alcantara,winder,winchell,vandenberg,trotman,thurber,thibeault,stlouis,stilwell,sperling,shattuck,sarmiento,ruppert,rumph,renaud,randazzo,rademacher,quiles,pearman,palomo,mercurio,lowrey,lindeman,lawlor,larosa,lander,labrecque,hovis,holifield,henninger,hawkes,hartfield,hann,hague,genovese,garrick,fudge,frink,eddings,dinh,cribbs,calvillo,bunton,brodeur,bolding,blanding,agosto,zahn,wiener,trussell,tello,teixeira,speck,sharma,shanklin,sealy,scanlan,santamaria,roundy,robichaux,ringer,rigney,prevost,polson,nord,moxley,medford,mccaslin,mcardle,macarthur,lewin,lasher,ketcham,keiser,heine,hackworth,grose,grizzle,gillman,gartner,frazee,fleury,edson,edmonson,derry,cronk,conant,burress,burgin,broom,brockington,bolick,boger,birchfield,billington,baily,bahena,armbruster,anson,yoho,wilcher,tinney,timberlake,thielen,sutphin,stultz,sikora,serra,schulman,scheffler,santillan,rego,preciado,pinkham,mickle,lomas,lizotte,lent,kellerman,keil,johanson,hernadez,hartsfield,haber,gorski,farkas,eberhardt,duquette,delano,cropper,cozart,cockerham,chamblee,cartagena,cahoon,buzzell,brister,brewton,blackshear,benfield,aston,ashburn,arruda,wetmore,weise,vaccaro,tucci,sudduth,stromberg,stoops,showalter,shears,runion,rowden,rosenblum,riffle,renfrow,peres,obryant,leftwich,lark,landeros,kistler,killough,kerley,kastner,hoggard,hartung,guertin,govan,gatling,gailey,fullmer,fulford,flatt,esquibel,endicott,edmiston,edelstein,dufresne,dressler,dickman,chee,busse,bonnett,berard,yoshida,velarde,veach,vanhouten,vachon,tolson,tolman,tennyson,stites,soler,shutt,ruggles,rhone,pegues,neese,muro,moncrief,mefford,mcphee,mcmorris,mceachern,mcclurg,mansour,mader,leija,lecompte,lafountain,labrie,jaquez,heald,hash,hartle,gainer,frisby,farina,eidson,edgerton,dyke,durrett,duhon,cuomo,cobos,cervantez,bybee,brockway,borowski,binion,beery,arguello,amaro,acton,yuen,winton,wigfall,weekley,vidrine,vannoy,tardiff,shoop,shilling,schick,safford,prendergast,pilgrim,pellerin,osuna,nissen,nalley,moller,messner,messick,merrifield,mcguinness,matherly,marcano,mahone,lemos,lebrun,jara,hoffer,herren,hecker,haws,haug,gwin,gober,gilliard,fredette,favela,echeverria,downer,donofrio,desrochers,crozier,corson,bechtold,argueta,aparicio,zamudio,westover,westerman,utter,troyer,thies,tapley,slavin,shirk,sandler,roop,rimmer,raymer,radcliff,otten,moorer,millet,mckibben,mccutchen,mcavoy,mcadoo,mayorga,mastin,martineau,marek,madore,leflore,kroeger,kennon,jimerson,hostetter,hornback,hendley,hance,guardado,granado,gowen,goodale,flinn,fleetwood,fitz,durkee,duprey,dipietro,dilley,clyburn,brawley,beckley,arana,weatherby,vollmer,vestal,tunnell,trigg,tingle,takahashi,sweatt,storer,snapp,shiver,rooker,rathbun,poisson,perrine,perri,parmer,parke,pare,papa,palmieri,midkiff,mecham,mccomas,mcalpine,lovelady,lillard,lally,knopp,kile,kiger,haile,gupta,goldsberry,gilreath,fulks,friesen,franzen,flack,findlay,ferland,dreyer,dore,dennard,deckard,debose,crim,coulombe,chancey,cantor,branton,bissell,barns,woolard,witham,wasserman,spiegel,shoffner,scholz,ruch,rossman,petry,palacio,paez,neary,mortenson,millsap,miele,menke,mckim,mcanally,martines,lemley,larochelle,klaus,klatt,kaufmann,kapp,helmer,hedge,halloran,glisson,frechette,fontana,eagan,distefano,danley,creekmore,chartier,chaffee,carillo,burg,bolinger,berkley,benz,basso,bash,zelaya,woodring,witkowski,wilmot,wilkens,wieland,verdugo,urquhart,tsai,timms,swiger,swaim,sussman,pires,molnar,mcatee,lowder,loos,linker,landes,kingery,hufford,higa,hendren,hammack,hamann,gillam,gerhardt,edelman,delk,deans,curl,constantine,cleaver,claar,casiano,carruth,carlyle,brophy,bolanos,bibbs,bessette,beggs,baugher,bartel,averill,andresen,amin,adames,valente,turnbow,swink,sublett,stroh,stringfellow,ridgway,pugliese,poteat,ohare,neubauer,murchison,mingo,lemmons,kwon,kellam,kean,jarmon,hyden,hudak,hollinger,henkel,hemingway,hasson,hansel,halter,haire,ginsberg,gillispie,fogel,flory,etter,elledge,eckman,deas,currin,crafton,coomer,colter,claxton,bulter,braddock,bowyer,binns,bellows,baskerville,barros,ansley,woolf,wight,waldman,wadley,tull,trull,tesch,stouffer,stadler,slay,shubert,sedillo,santacruz,reinke,poynter,neri,neale,mowry,moralez,monger,mitchum,merryman,manion,macdougall,litchfield,levitt,lepage,lasalle,khoury,kavanagh,karns,ivie,huebner,hodgkins,halpin,garica,eversole,dutra,dunagan,duffey,dillman,dillion,deville,dearborn,damato,courson,coulson,burdine,bousquet,bonin,bish,atencio,westbrooks,wages,vaca,toner,tillis,swett,struble,stanfill,solorzano,slusher,sipple,silvas,shults,schexnayder,saez,rodas,rager,pulver,penton,paniagua,meneses,mcfarlin,mcauley,matz,maloy,magruder,lohman,landa,lacombe,jaimes,holzer,holst,heil,hackler,grundy,gilkey,farnham,durfee,dunton,dunston,duda,dews,craver,corriveau,conwell,colella,chambless,bremer,boutte,bourassa,blaisdell,backman,babineaux,audette,alleman,towner,taveras,tarango,sullins,suiter,stallard,solberg,schlueter,poulos,pimental,owsley,okelley,moffatt,metcalfe,meekins,medellin,mcglynn,mccowan,marriott,marable,lennox,lamoureux,koss,kerby,karp,isenberg,howze,hockenberry,highsmith,hallmark,gusman,greeley,giddings,gaudet,gallup,fleenor,eicher,edington,dimaggio,dement,demello,decastro,bushman,brundage,brooker,bourg,blackstock,bergmann,beaton,banister,argo,appling,wortman,watterson,villalpando,tillotson,tighe,sundberg,sternberg,stamey,shipe,seeger,scarberry,sattler,sain,rothstein,poteet,plowman,pettiford,penland,partain,pankey,oyler,ogletree,ogburn,moton,merkel,lucier,lakey,kratz,kinser,kershaw,josephson,imhoff,hendry,hammon,frisbie,frawley,fraga,forester,eskew,emmert,drennan,doyon,dandridge,cawley,carvajal,bracey,belisle,batey,ahner,wysocki,weiser,veliz,tincher,sansone,sankey,sandstrom,rohrer,risner,pridemore,pfeffer,persinger,peery,oubre,nowicki,musgrave,murdoch,mullinax,mccary,mathieu,livengood,kyser,klink,kimes,kellner,kavanaugh,kasten,imes,hoey,hinshaw,hake,gurule,grube,grillo,geter,gatto,garver,garretson,farwell,eiland,dunford,decarlo,corso,colman,collard,cleghorn,chasteen,cavender,carlile,calvo,byerly,brogdon,broadwater,breault,bono,bergin,behr,ballenger,amick,tamez,stiffler,steinke,simmon,shankle,schaller,salmons,sackett,saad,rideout,ratcliffe,ranson,plascencia,petterson,olszewski,olney,olguin,nilsson,nevels,morelli,montiel,monge,michaelson,mertens,mcchesney,mcalpin,mathewson,loudermilk,lineberry,liggett,kinlaw,kight,jost,hereford,hardeman,halpern,halliday,hafer,gaul,friel,freitag,forsberg,evangelista,doering,dicarlo,dendy,delp,deguzman,dameron,curtiss,cosper,cauthen,bradberry,bouton,bonnell,bixby,bieber,beveridge,bedwell,barhorst,bannon,baltazar,baier,ayotte,attaway,arenas,abrego,turgeon,tunstall,thaxton,tenorio,stotts,sthilaire,shedd,seabolt,scalf,salyers,ruhl,rowlett,robinett,pfister,perlman,pepe,parkman,nunnally,norvell,napper,modlin,mckellar,mcclean,mascarenas,leibowitz,ledezma,kuhlman,kobayashi,hunley,holmquist,hinkley,hazard,hartsell,gribble,gravely,fifield,eliason,doak,crossland,carleton,bridgeman,bojorquez,boggess,auten,woosley,whiteley,wexler,twomey,tullis,townley,standridge,santoyo,rueda,riendeau,revell,pless,ottinger,nigro,nickles,mulvey,menefee,mcshane,mcloughlin,mckinzie,markey,lockridge,lipsey,knisley,knepper,kitts,kiel,jinks,hathcock,godin,gallego,fikes,fecteau,estabrook,ellinger,dunlop,dudek,countryman,chauvin,chatham,bullins,brownfield,boughton,bloodworth,bibb,baucom,barbieri,aubin,armitage,alessi,absher,abbate,zito,woolery,wiggs,wacker,tynes,tolle,telles,tarter,swarey,strode,stockdale,stalnaker,spina,schiff,saari,risley,rameriz,rakes,pettaway,penner,paulus,palladino,omeara,montelongo,melnick,mehta,mcgary,mccourt,mccollough,marchetti,manzanares,lowther,leiva,lauderdale,lafontaine,kowalczyk,knighton,joubert,jaworski,huth,hurdle,housley,hackman,gulick,gordy,gilstrap,gehrke,gebhart,gaudette,foxworth,endres,dunkle,cimino,caddell,brauer,braley,bodine,blackmore,belden,backer,ayer,andress,wisner,vuong,valliere,twigg,tavarez,strahan,steib,staub,sowder,seiber,schutt,scharf,schade,rodriques,risinger,renshaw,rahman,presnell,piatt,nieman,nevins,mcilwain,mcgaha,mccully,mccomb,massengale,macedo,lesher,kearse,jauregui,husted,hudnall,holmberg,hertel,hardie,glidewell,frausto,fassett,dalessandro,dahlgren,corum,constantino,conlin,colquitt,colombo,claycomb,cardin,buller,boney,bocanegra,biggers,benedetto,araiza,andino,albin,zorn,werth,weisman,walley,vanegas,ulibarri,towe,tedford,teasley,suttle,steffens,stcyr,squire,singley,sifuentes,shuck,schram,sass,rieger,ridenhour,rickert,richerson,rayborn,rabe,raab,pendley,pastore,ordway,moynihan,mellott,mckissick,mcgann,mccready,mauney,marrufo,lenhart,lazar,lafave,keele,kautz,jardine,jahnke,jacobo,hord,hardcastle,hageman,giglio,gehring,fortson,duque,duplessis,dicken,derosier,deitz,dalessio,cram,castleman,candelario,callison,caceres,bozarth,biles,bejarano,bashaw,avina,armentrout,alverez,acord,waterhouse,vereen,vanlandingham,strawser,shotwell,severance,seltzer,schoonmaker,schock,schaub,schaffner,roeder,rodrigez,riffe,rasberry,rancourt,railey,quade,pursley,prouty,perdomo,oxley,osterman,nickens,murphree,mounts,merida,maus,mattern,masse,martinelli,mangan,lutes,ludwick,loney,laureano,lasater,knighten,kissinger,kimsey,kessinger,honea,hollingshead,hockett,heyer,heron,gurrola,gove,glasscock,gillett,galan,featherstone,eckhardt,duron,dunson,dasher,culbreth,cowden,cowans,claypoole,churchwell,chabot,caviness,cater,caston,callan,byington,burkey,boden,beckford,atwater,archambault,alvey,alsup,whisenant,weese,voyles,verret,tsang,tessier,sweitzer,sherwin,shaughnessy,revis,remy,prine,philpott,peavy,paynter,parmenter,ovalle,offutt,nightingale,newlin,nakano,myatt,muth,mohan,mcmillon,mccarley,mccaleb,maxson,marinelli,maley,liston,letendre,kain,huntsman,hirst,hagerty,gulledge,greenway,grajeda,gorton,goines,gittens,frederickson,fanelli,embree,eichelberger,dunkin,dixson,dillow,defelice,chumley,burleigh,borkowski,binette,biggerstaff,berglund,beller,audet,arbuckle,allain,alfano,youngman,wittman,weintraub,vanzant,vaden,twitty,stollings,standifer,sines,shope,scalise,saville,posada,pisano,otte,nolasco,mier,merkle,mendiola,melcher,mejias,mcmurry,mccalla,markowitz,manis,mallette,macfarlane,lough,looper,landin,kittle,kinsella,kinnard,hobart,helman,hellman,hartsock,halford,hage,gordan,glasser,gayton,gattis,gastelum,gaspard,frisch,fitzhugh,eckstein,eberly,dowden,despain,crumpler,crotty,cornelison,chouinard,chamness,catlin,cann,bumgardner,budde,branum,bradfield,braddy,borst,birdwell,bazan,banas,bade,arango,ahearn,addis,zumwalt,wurth,wilk,widener,wagstaff,urrutia,terwilliger,tart,steinman,staats,sloat,rives,riggle,revels,reichard,prickett,poff,pitzer,petro,pell,northrup,nicks,moline,mielke,maynor,mallon,magness,lingle,lindell,lieb,lesko,lebeau,lammers,lafond,kiernan,ketron,jurado,holmgren,hilburn,hayashi,hashimoto,harbaugh,guillot,gard,froehlich,feinberg,falco,dufour,drees,doney,diep,delao,daves,dail,crowson,coss,congdon,carner,camarena,butterworth,burlingame,bouffard,bloch,bilyeu,barta,bakke,baillargeon,avent,aquilar,zeringue,yarber,wolfson,vogler,voelker,truss,troxell,thrift,strouse,spielman,sistrunk,sevigny,schuller,schaaf,ruffner,routh,roseman,ricciardi,peraza,pegram,overturf,olander,odaniel,millner,melchor,maroney,machuca,macaluso,livesay,layfield,laskowski,kwiatkowski,kilby,hovey,heywood,hayman,havard,harville,haigh,hagood,grieco,glassman,gebhardt,fleischer,fann,elson,eccles,cunha,crumb,blakley,bardwell,abshire,woodham,wines,welter,wargo,varnado,tutt,traynor,swaney,stricker,stoffel,stambaugh,sickler,shackleford,selman,seaver,sansom,sanmiguel,royston,rourke,rockett,rioux,puleo,pitchford,nardi,mulvaney,middaugh,malek,leos,lathan,kujawa,kimbro,killebrew,houlihan,hinckley,herod,hepler,hamner,hammel,hallowell,gonsalez,gingerich,gambill,funkhouser,fricke,fewell,falkner,endsley,dulin,drennen,deaver,dambrosio,chadwell,castanon,burkes,brune,brisco,brinker,bowker,boldt,berner,beaumont,beaird,bazemore,barrick,albano,younts,wunderlich,weidman,vanness,toland,theobald,stickler,steiger,stanger,spies,spector,sollars,smedley,seibel,scoville,saito,rummel,rowles,rouleau,roos,rogan,roemer,ream,raya,purkey,priester,perreira,penick,paulin,parkins,overcash,oleson,neves,muldrow,minard,midgett,michalak,melgar,mcentire,mcauliffe,marte,lydon,lindholm,leyba,langevin,lagasse,lafayette,kesler,kelton,kaminsky,jaggers,humbert,huck,howarth,hinrichs,higley,gupton,guimond,gravois,giguere,fretwell,fontes,feeley,faucher,eichhorn,ecker,earp,dole,dinger,derryberry,demars,deel,copenhaver,collinsworth,colangelo,cloyd,claiborne,caulfield,carlsen,calzada,caffey,broadus,brenneman,bouie,bodnar,blaney,blanc,beltz,behling,barahona,yockey,winkle,windom,wimer,villatoro,trexler,teran,taliaferro,sydnor,swinson,snelling,smtih,simonton,simoneaux,simoneau,sherrer,seavey,scheel,rushton,rupe,ruano,rippy,reiner,reiff,rabinowitz,quach,penley,odle,nock,minnich,mckown,mccarver,mcandrew,longley,laux,lamothe,lafreniere,kropp,krick,kates,jepson,huie,howse,howie,henriques,haydon,haught,hatter,hartzog,harkey,grimaldo,goshorn,gormley,gluck,gilroy,gillenwater,giffin,fluker,feder,eyre,eshelman,eakins,detwiler,delrosario,davisson,catalan,canning,calton,brammer,botelho,blakney,bartell,averett,askins,aker,witmer,winkelman,widmer,whittier,weitzel,wardell,wagers,ullman,tupper,tingley,tilghman,talton,simard,seda,scheller,sala,rundell,rost,ribeiro,rabideau,primm,pinon,peart,ostrom,ober,nystrom,nussbaum,naughton,murr,moorhead,monti,monteiro,melson,meissner,mclin,mcgruder,marotta,makowski,majewski,madewell,lunt,lukens,leininger,lebel,lakin,kepler,jaques,hunnicutt,hungerford,hoopes,hertz,heins,halliburton,grosso,gravitt,glasper,gallman,gallaway,funke,fulbright,falgout,eakin,dostie,dorado,dewberry,derose,cutshall,crampton,costanzo,colletti,cloninger,claytor,chiang,campagna,burd,brokaw,broaddus,bretz,brainard,binford,bilbrey,alpert,aitken,ahlers,zajac,woolfolk,witten,windle,wayland,tramel,tittle,talavera,suter,straley,specht,sommerville,soloman,skeens,sigman,sibert,shavers,schuck,schmit,sartain,sabol,rosenblatt,rollo,rashid,rabb,polston,nyberg,northrop,navarra,muldoon,mikesell,mcdougald,mcburney,mariscal,lozier,lingerfelt,legere,latour,lagunas,lacour,kurth,killen,kiely,kayser,kahle,isley,huertas,hower,hinz,haugh,gumm,galicia,fortunato,flake,dunleavy,duggins,doby,digiovanni,devaney,deltoro,cribb,corpuz,coronel,coen,charbonneau,caine,burchette,blakey,blakemore,bergquist,beene,beaudette,bayles,ballance,bakker,bailes,asberry,arwood,zucker,willman,whitesell,wald,walcott,vancleave,trump,strasser,simas,shick,schleicher,schaal,saleh,rotz,resnick,rainer,partee,ollis,oller,oday,noles,munday,mong,millican,merwin,mazzola,mansell,magallanes,llanes,lewellen,lepore,kisner,keesee,jeanlouis,ingham,hornbeck,hawn,hartz,harber,haffner,gutshall,guth,grays,gowan,finlay,finkelstein,eyler,enloe,dungan,diez,dearman,cull,crosson,chronister,cassity,campion,callihan,butz,breazeale,blumenthal,berkey,batty,batton,arvizu,alderete,aldana,albaugh,abernethy,wolter,wille,tweed,tollefson,thomasson,teter,testerman,sproul,spates,southwick,soukup,skelly,senter,sealey,sawicki,sargeant,rossiter,rosemond,repp,pifer,ormsby,nickelson,naumann,morabito,monzon,millsaps,millen,mcelrath,marcoux,mantooth,madson,macneil,mackinnon,louque,leister,lampley,kushner,krouse,kirwan,jessee,janson,jahn,jacquez,islas,hutt,holladay,hillyer,hepburn,hensel,harrold,gingrich,geis,gales,fults,finnell,ferri,featherston,epley,ebersole,eames,dunigan,drye,dismuke,devaughn,delorenzo,damiano,confer,collum,clower,clow,claussen,clack,caylor,cawthon,casias,carreno,bluhm,bingaman,bewley,belew,beckner,auld,amey,wolfenbarger,wilkey,wicklund,waltman,villalba,valero,valdovinos,ullrich,tyus,twyman,trost,tardif,tanguay,stripling,steinbach,shumpert,sasaki,sappington,sandusky,reinhold,reinert,quijano,placencia,pinkard,phinney,perrotta,pernell,parrett,oxendine,owensby,orman,nuno,mori,mcroberts,mcneese,mckamey,mccullum,markel,mardis,maines,lueck,lubin,lefler,leffler,larios,labarbera,kershner,josey,jeanbaptiste,izaguirre,hermosillo,haviland,hartshorn,hafner,ginter,getty,franck,fiske,dufrene,doody,davie,dangerfield,dahlberg,cuthbertson,crone,coffelt,chidester,chesson,cauley,caudell,cantara,campo,caines,bullis,bucci,brochu,bogard,bickerstaff,benning,arzola,antonelli,adkinson,zellers,wulf,worsley,woolridge,whitton,westerfield,walczak,vassar,truett,trueblood,trawick,townsley,topping,tobar,telford,steverson,stagg,sitton,sill,sergent,schoenfeld,sarabia,rutkowski,rubenstein,rigdon,prentiss,pomerleau,plumlee,philbrick,patnode,oloughlin,obregon,nuss,morell,mikell,mele,mcinerney,mcguigan,mcbrayer,lollar,kuehl,kinzer,kamp,joplin,jacobi,howells,holstein,hedden,hassler,harty,halle,greig,gouge,goodrum,gerhart,geier,geddes,gast,forehand,ferree,fendley,feltner,esqueda,encarnacion,eichler,egger,edmundson,eatmon,doud,donohoe,donelson,dilorenzo,digiacomo,diggins,delozier,dejong,danford,crippen,coppage,cogswell,clardy,cioffi,cabe,brunette,bresnahan,blomquist,blackstone,biller,bevis,bevan,bethune,benbow,baty,basinger,balcom,andes,aman,aguero,adkisson,yandell,wilds,whisenhunt,weigand,weeden,voight,villar,trottier,tillett,suazo,setser,scurry,schuh,schreck,schauer,samora,roane,rinker,reimers,ratchford,popovich,parkin,natal,melville,mcbryde,magdaleno,loehr,lockman,lingo,leduc,larocca,lamere,laclair,krall,korte,koger,jalbert,hughs,higbee,henton,heaney,haith,gump,greeson,goodloe,gholston,gasper,gagliardi,fregoso,farthing,fabrizio,ensor,elswick,elgin,eklund,eaddy,drouin,dorton,dizon,derouen,deherrera,davy,dampier,cullum,culley,cowgill,cardoso,cardinale,brodsky,broadbent,brimmer,briceno,branscum,bolyard,boley,bennington,beadle,baur,ballentine,azure,aultman,arciniega,aguila,aceves,yepez,woodrum,wethington,weissman,veloz,trusty,troup,trammel,tarpley,stivers,steck,sprayberry,spraggins,spitler,spiers,sohn,seagraves,schiffman,rudnick,rizo,riccio,rennie,quackenbush,puma,plott,pearcy,parada,paiz,munford,moskowitz,mease,mcnary,mccusker,lozoya,longmire,loesch,lasky,kuhlmann,krieg,koziol,kowalewski,konrad,kindle,jowers,jolin,jaco,horgan,hine,hileman,hepner,heise,heady,hawkinson,hannigan,haberman,guilford,grimaldi,garton,gagliano,fruge,follett,fiscus,ferretti,ebner,easterday,eanes,dirks,dimarco,depalma,deforest,cruce,craighead,christner,candler,cadwell,burchell,buettner,brinton,brazier,brannen,brame,bova,bomar,blakeslee,belknap,bangs,balzer,athey,armes,alvis,alverson,alvardo,yeung,wheelock,westlund,wessels,volkman,threadgill,thelen,tague,symons,swinford,sturtevant,straka,stier,stagner,segarra,seawright,rutan,roux,ringler,riker,ramsdell,quattlebaum,purifoy,poulson,permenter,peloquin,pasley,pagel,osman,obannon,nygaard,newcomer,munos,motta,meadors,mcquiston,mcniel,mcmann,mccrae,mayne,matte,legault,lechner,kucera,krohn,kratzer,koopman,jeske,horrocks,hock,hibbler,hesson,hersh,harvin,halvorsen,griner,grindle,gladstone,garofalo,frampton,forbis,eddington,diorio,dingus,dewar,desalvo,curcio,creasy,cortese,cordoba,connally,cluff,cascio,capuano,canaday,calabro,bussard,brayton,borja,bigley,arnone,arguelles,acuff,zamarripa,wooton,widner,wideman,threatt,thiele,templin,teeters,synder,swint,swick,sturges,stogner,stedman,spratt,siegfried,shetler,scull,savino,sather,rothwell,rook,rone,rhee,quevedo,privett,pouliot,poche,pickel,petrillo,pellegrini,peaslee,partlow,otey,nunnery,morelock,morello,meunier,messinger,mckie,mccubbin,mccarron,lerch,lavine,laverty,lariviere,lamkin,kugler,krol,kissel,keeter,hubble,hickox,hetzel,hayner,hagy,hadlock,groh,gottschalk,goodsell,gassaway,garrard,galligan,firth,fenderson,feinstein,etienne,engleman,emrick,ellender,drews,doiron,degraw,deegan,dart,crissman,corr,cookson,coil,cleaves,charest,chapple,chaparro,castano,carpio,byer,bufford,bridgewater,bridgers,brandes,borrero,bonanno,aube,ancheta,abarca,abad,wooster,wimbush,willhite,willams,wigley,weisberg,wardlaw,vigue,vanhook,unknow,torre,tasker,tarbox,strachan,slover,shamblin,semple,schuyler,schrimsher,sayer,salzman,rubalcava,riles,reneau,reichel,rayfield,rabon,pyatt,prindle,poss,polito,plemmons,pesce,perrault,pereyra,ostrowski,nilsen,niemeyer,munsey,mundell,moncada,miceli,meader,mcmasters,mckeehan,matsumoto,marron,marden,lizarraga,lingenfelter,lewallen,langan,lamanna,kovac,kinsler,kephart,keown,kass,kammerer,jeffreys,hysell,hosmer,hardnett,hanner,guyette,greening,glazer,ginder,fromm,fluellen,finkle,fessler,essary,eisele,duren,dittmer,crochet,cosentino,cogan,coelho,cavin,carrizales,campuzano,brough,bopp,bookman,bobb,blouin,beesley,battista,bascom,bakken,badgett,arneson,anselmo,albino,ahumada,woodyard,wolters,wireman,willison,warman,waldrup,vowell,vantassel,twombly,toomer,tennison,teets,tedeschi,swanner,stutz,stelly,sheehy,schermerhorn,scala,sandidge,salters,salo,saechao,roseboro,rolle,ressler,renz,renn,redford,raposa,rainbolt,pelfrey,orndorff,oney,nolin,nimmons,nardone,myhre,morman,menjivar,mcglone,mccammon,maxon,marciano,manus,lowrance,lorenzen,lonergan,lollis,littles,lindahl,lamas,lach,kuster,krawczyk,knuth,knecht,kirkendall,keitt,keever,kantor,jarboe,hoye,houchens,holter,holsinger,hickok,helwig,helgeson,hassett,harner,hamman,hames,hadfield,goree,goldfarb,gaughan,gaudreau,gantz,gallion,frady,foti,flesher,ferrin,faught,engram,donegan,desouza,degroot,cutright,crowl,criner,coan,clinkscales,chewning,chavira,catchings,carlock,bulger,buenrostro,bramblett,brack,boulware,bookout,bitner,birt,baranowski,baisden,allmon,acklin,yoakum,wilbourn,whisler,weinberger,washer,vasques,vanzandt,vanatta,troxler,tomes,tindle,tims,throckmorton,thach,stpeter,stlaurent,stenson,spry,spitz,songer,snavely,shroyer,shortridge,shenk,sevier,seabrook,scrivner,saltzman,rosenberry,rockwood,robeson,roan,reiser,ramires,raber,posner,popham,piotrowski,pinard,peterkin,pelham,peiffer,peay,nadler,musso,millett,mestas,mcgowen,marques,marasco,manriquez,manos,mair,lipps,leiker,krumm,knorr,kinslow,kessel,kendricks,kelm,irick,ickes,hurlburt,horta,hoekstra,heuer,helmuth,heatherly,hampson,hagar,haga,greenlaw,grau,godbey,gingras,gillies,gibb,gayden,gauvin,garrow,fontanez,florio,finke,fasano,ezzell,ewers,eveland,eckenrode,duclos,drumm,dimmick,delancey,defazio,dashiell,cusack,crowther,crigger,cray,coolidge,coldiron,cleland,chalfant,cassel,camire,cabrales,broomfield,brittingham,brisson,brickey,braziel,brazell,bragdon,boulanger,boman,bohannan,beem,barre,azar,ashbaugh,armistead,almazan,adamski,zendejas,winburn,willaims,wilhoit,westberry,wentzel,wendling,visser,vanscoy,vankirk,vallee,tweedy,thornberry,sweeny,spradling,spano,smelser,shim,sechrist,schall,scaife,rugg,rothrock,roesler,riehl,ridings,render,ransdell,radke,pinero,petree,pendergast,peluso,pecoraro,pascoe,panek,oshiro,navarrette,murguia,moores,moberg,michaelis,mcwhirter,mcsweeney,mcquade,mccay,mauk,mariani,marceau,mandeville,maeda,lunde,ludlow,loeb,lindo,linderman,leveille,leith,larock,lambrecht,kulp,kinsley,kimberlin,kesterson,hoyos,helfrich,hanke,grisby,goyette,gouveia,glazier,gile,gerena,gelinas,gasaway,funches,fujimoto,flynt,fenske,fellers,fehr,eslinger,escalera,enciso,duley,dittman,dineen,diller,devault,collings,clymer,clowers,chavers,charland,castorena,castello,camargo,bunce,bullen,boyes,borchers,borchardt,birnbaum,birdsall,billman,benites,bankhead,ange,ammerman,adkison,winegar,wickman,warr,warnke,villeneuve,veasey,vassallo,vannatta,vadnais,twilley,towery,tomblin,tippett,theiss,talkington,talamantes,swart,swanger,streit,stines,stabler,spurling,sobel,sine,simmers,shippy,shiflett,shearin,sauter,sanderlin,rusch,runkle,ruckman,rorie,roesch,richert,rehm,randel,ragin,quesenberry,puentes,plyler,plotkin,paugh,oshaughnessy,ohalloran,norsworthy,niemann,nader,moorefield,mooneyham,modica,miyamoto,mickel,mebane,mckinnie,mazurek,mancilla,lukas,lovins,loughlin,lotz,lindsley,liddle,levan,lederman,leclaire,lasseter,lapoint,lamoreaux,lafollette,kubiak,kirtley,keffer,kaczmarek,housman,hiers,hibbert,herrod,hegarty,hathorn,greenhaw,grafton,govea,futch,furst,franko,forcier,foran,flickinger,fairfield,eure,emrich,embrey,edgington,ecklund,eckard,durante,deyo,delvecchio,dade,currey,creswell,cottrill,casavant,cartier,cargile,capel,cammack,calfee,burse,burruss,brust,brousseau,bridwell,braaten,borkholder,bloomquist,bjork,bartelt,amburgey,yeary,whitefield,vinyard,vanvalkenburg,twitchell,timmins,tapper,stringham,starcher,spotts,slaugh,simonsen,sheffer,sequeira,rosati,rhymes,quint,pollak,peirce,patillo,parkerson,paiva,nilson,nevin,narcisse,mitton,merriam,merced,meiners,mckain,mcelveen,mcbeth,marsden,marez,manke,mahurin,mabrey,luper,krull,hunsicker,hornbuckle,holtzclaw,hinnant,heston,hering,hemenway,hegwood,hearns,halterman,guiterrez,grote,granillo,grainger,glasco,gilder,garren,garlock,garey,fryar,fredricks,fraizer,foshee,ferrel,felty,everitt,evens,esser,elkin,eberhart,durso,duguay,driskill,doster,dewall,deveau,demps,demaio,delreal,deleo,darrah,cumberbatch,culberson,cranmer,cordle,colgan,chesley,cavallo,castellon,castelli,carreras,carnell,carlucci,bontrager,blumberg,blasingame,becton,artrip,andujar,alkire,alder,zukowski,zuckerman,wroblewski,wrigley,woodside,wigginton,westman,westgate,werts,washam,wardlow,walser,waiters,tadlock,stringfield,stimpson,stickley,standish,spurlin,spindler,speller,spaeth,sotomayor,sluder,shryock,shepardson,shatley,scannell,santistevan,rosner,resto,reinhard,rathburn,prisco,poulsen,pinney,phares,pennock,pastrana,oviedo,ostler,nauman,mulford,moise,moberly,mirabal,metoyer,metheny,mentzer,meldrum,mcinturff,mcelyea,mcdougle,massaro,lumpkins,loveday,lofgren,lirette,lesperance,lefkowitz,ledger,lauzon,lachapelle,klassen,keough,kempton,kaelin,jeffords,hsieh,hoyer,horwitz,hoeft,hennig,haskin,gourdine,golightly,girouard,fulgham,fritsch,freer,frasher,foulk,firestone,fiorentino,fedor,ensley,englehart,eells,dunphy,donahoe,dileo,dibenedetto,dabrowski,crick,coonrod,conder,coddington,chunn,chaput,cerna,carreiro,calahan,braggs,bourdon,bollman,bittle,bauder,barreras,aubuchon,anzalone,adamo,zerbe,willcox,westberg,weikel,waymire,vroman,vinci,vallejos,truesdell,troutt,trotta,tollison,toles,tichenor,symonds,surles,strayer,stgeorge,sroka,sorrentino,solares,snelson,silvestri,sikorski,shawver,schumaker,schorr,schooley,scates,satterlee,satchell,rymer,roselli,robitaille,riegel,regis,reames,provenzano,priestley,plaisance,pettey,palomares,nowakowski,monette,minyard,mclamb,mchone,mccarroll,masson,magoon,maddy,lundin,licata,leonhardt,landwehr,kircher,kinch,karpinski,johannsen,hussain,houghtaling,hoskinson,hollaway,holeman,hobgood,hiebert,goggin,geissler,gadbois,gabaldon,fleshman,flannigan,fairman,eilers,dycus,dunmire,duffield,dowler,deloatch,dehaan,deemer,clayborn,christofferso,chilson,chesney,chatfield,carron,canale,brigman,branstetter,bosse,borton,bonar,biron,barroso,arispe,zacharias,zabel,yaeger,woolford,whetzel,weakley,veatch,vandeusen,tufts,troxel,troche,traver,townsel,talarico,swilley,sterrett,stenger,speakman,sowards,sours,souders,souder,soles,sobers,snoddy,smither,shute,shoaf,shahan,schuetz,scaggs,santini,rosson,rolen,robidoux,rentas,recio,pixley,pawlowski,pawlak,paull,overbey,orear,oliveri,oldenburg,nutting,naugle,mossman,misner,milazzo,michelson,mcentee,mccullar,mccree,mcaleer,mazzone,mandell,manahan,malott,maisonet,mailloux,lumley,lowrie,louviere,lipinski,lindemann,leppert,leasure,labarge,kubik,knisely,knepp,kenworthy,kennelly,kelch,kanter,houchin,hosley,hosler,hollon,holleman,heitman,haggins,gwaltney,goulding,gorden,geraci,gathers,frison,feagin,falconer,espada,erving,erikson,eisenhauer,ebeling,durgin,dowdle,dinwiddie,delcastillo,dedrick,crimmins,covell,cournoyer,coria,cohan,cataldo,carpentier,canas,campa,brode,brashears,blaser,bicknell,bednar,barwick,ascencio,althoff,almodovar,alamo,zirkle,zabala,wolverton,winebrenner,wetherell,westlake,wegener,weddington,tuten,trosclair,tressler,theroux,teske,swinehart,swensen,sundquist,southall,socha,sizer,silverberg,shortt,shimizu,sherrard,shaeffer,scheid,scheetz,saravia,sanner,rubinstein,rozell,romer,rheaume,reisinger,randles,pullum,petrella,payan,nordin,norcross,nicoletti,nicholes,newbold,nakagawa,monteith,milstead,milliner,mellen,mccardle,liptak,leitch,latimore,larrison,landau,laborde,koval,izquierdo,hymel,hoskin,holte,hoefer,hayworth,hausman,harrill,harrel,hardt,gully,groover,grinnell,greenspan,graver,grandberry,gorrell,goldenberg,goguen,gilleland,fuson,feldmann,everly,dyess,dunnigan,downie,dolby,deatherage,cosey,cheever,celaya,caver,cashion,caplinger,cansler,byrge,bruder,breuer,breslin,brazelton,botkin,bonneau,bondurant,bohanan,bogue,bodner,boatner,blatt,bickley,belliveau,beiler,beier,beckstead,bachmann,atkin,altizer,alloway,allaire,albro,abron,zellmer,yetter,yelverton,wiens,whidden,viramontes,vanwormer,tarantino,tanksley,sumlin,strauch,strang,stice,spahn,sosebee,sigala,shrout,seamon,schrum,schneck,schantz,ruddy,romig,roehl,renninger,reding,polak,pohlman,pasillas,oldfield,oldaker,ohanlon,ogilvie,norberg,nolette,neufeld,nellis,mummert,mulvihill,mullaney,monteleone,mendonca,meisner,mcmullan,mccluney,mattis,massengill,manfredi,luedtke,lounsbury,liberatore,lamphere,laforge,jourdan,iorio,iniguez,ikeda,hubler,hodgdon,hocking,heacock,haslam,haralson,hanshaw,hannum,hallam,haden,garnes,garces,gammage,gambino,finkel,faucett,ehrhardt,eggen,dusek,durrant,dubay,dones,depasquale,delucia,degraff,decamp,davalos,cullins,conard,clouser,clontz,cifuentes,chappel,chaffins,celis,carwile,byram,bruggeman,bressler,brathwaite,brasfield,bradburn,boose,bodie,blosser,bertsch,bernardi,bernabe,bengtson,barrette,astorga,alday,albee,abrahamson,yarnell,wiltse,wiebe,waguespack,vasser,upham,turek,traxler,torain,tomaszewski,tinnin,tiner,tindell,styron,stahlman,staab,skiba,sheperd,seidl,secor,schutte,sanfilippo,ruder,rondon,rearick,procter,prochaska,pettengill,pauly,neilsen,nally,mullenax,morano,meads,mcnaughton,mcmurtry,mcmath,mckinsey,matthes,massenburg,marlar,margolis,malin,magallon,mackin,lovette,loughran,loring,longstreet,loiselle,lenihan,kunze,koepke,kerwin,kalinowski,kagan,innis,innes,holtzman,heinemann,harshman,haider,haack,grondin,grissett,greenawalt,goudy,goodlett,goldston,gokey,gardea,galaviz,gafford,gabrielson,furlow,fritch,fordyce,folger,elizalde,ehlert,eckhoff,eccleston,ealey,dubin,diemer,deschamps,delapena,decicco,debolt,cullinan,crittendon,crase,cossey,coppock,coots,colyer,cluck,chamberland,burkhead,bumpus,buchan,borman,birkholz,berardi,benda,behnke,barter,amezquita,wotring,wirtz,wingert,wiesner,whitesides,weyant,wainscott,venezia,varnell,tussey,thurlow,tabares,stiver,stell,starke,stanhope,stanek,sisler,sinnott,siciliano,shehan,selph,seager,scurlock,scranton,santucci,santangelo,saltsman,rogge,rettig,renwick,reidy,reider,redfield,premo,parente,paolucci,palmquist,ohler,netherton,mutchler,morita,mistretta,minnis,middendorf,menzel,mendosa,mendelson,meaux,mcspadden,mcquaid,mcnatt,manigault,maney,mager,lukes,lopresti,liriano,letson,lechuga,lazenby,lauria,larimore,krupp,krupa,kopec,kinchen,kifer,kerney,kerner,kennison,kegley,karcher,justis,johson,jellison,janke,huskins,holzman,hinojos,hefley,hatmaker,harte,halloway,hallenbeck,goodwyn,glaspie,geise,fullwood,fryman,frakes,fraire,farrer,enlow,engen,ellzey,eckles,earles,dunkley,drinkard,dreiling,draeger,dinardo,dills,desroches,desantiago,curlee,crumbley,critchlow,coury,courtright,coffield,cleek,charpentier,cardone,caples,cantin,buntin,bugbee,brinkerhoff,brackin,bourland,blassingame,beacham,banning,auguste,andreasen,amann,almon,alejo,adelman,abston,yerger,wymer,woodberry,windley,whiteaker,westfield,weibel,wanner,waldrep,villani,vanarsdale,utterback,updike,triggs,topete,tolar,tigner,thoms,tauber,tarvin,tally,swiney,sweatman,studebaker,stennett,starrett,stannard,stalvey,sonnenberg,smithey,sieber,sickles,shinault,segars,sanger,salmeron,rothe,rizzi,restrepo,ralls,ragusa,quiroga,papenfuss,oropeza,okane,mudge,mozingo,molinaro,mcvicker,mcgarvey,mcfalls,mccraney,matus,magers,llanos,livermore,linehan,leitner,laymon,lawing,lacourse,kwong,kollar,kneeland,kennett,kellett,kangas,janzen,hutter,huling,hofmeister,hewes,harjo,habib,guice,grullon,greggs,grayer,granier,grable,gowdy,giannini,getchell,gartman,garnica,ganey,gallimore,fetters,fergerson,farlow,fagundes,exley,esteves,enders,edenfield,easterwood,drakeford,dipasquale,desousa,deshields,deeter,dedmon,debord,daughtery,cutts,courtemanche,coursey,copple,coomes,collis,cogburn,clopton,choquette,chaidez,castrejon,calhoon,burbach,bulloch,buchman,bruhn,bohon,blough,baynes,barstow,zeman,zackery,yardley,yamashita,wulff,wilken,wiliams,wickersham,wible,whipkey,wedgeworth,walmsley,walkup,vreeland,verrill,umana,traub,swingle,summey,stroupe,stockstill,steffey,stefanski,statler,stapp,speights,solari,soderberg,shunk,shorey,shewmaker,sheilds,schiffer,schank,schaff,sagers,rochon,riser,rickett,reale,raglin,polen,plata,pitcock,percival,palen,orona,oberle,nocera,navas,nault,mullings,montejano,monreal,minick,middlebrook,meece,mcmillion,mccullen,mauck,marshburn,maillet,mahaney,magner,maclin,lucey,litteral,lippincott,leite,leaks,lamarre,jurgens,jerkins,jager,hurwitz,hughley,hotaling,horstman,hohman,hocker,hively,hipps,hessler,hermanson,hepworth,helland,hedlund,harkless,haigler,gutierez,grindstaff,glantz,giardina,gerken,gadsden,finnerty,farnum,encinas,drakes,dennie,cutlip,curtsinger,couto,cortinas,corby,chiasson,carle,carballo,brindle,borum,bober,blagg,berthiaume,beahm,batres,basnight,backes,axtell,atterberry,alvares,alegria,woodell,wojciechowski,winfree,winbush,wiest,wesner,wamsley,wakeman,verner,truex,trafton,toman,thorsen,theus,tellier,tallant,szeto,strope,stills,simkins,shuey,shaul,servin,serio,serafin,salguero,ryerson,rudder,ruark,rother,rohrbaugh,rohrbach,rohan,rogerson,risher,reeser,pryce,prokop,prins,priebe,prejean,pinheiro,petrone,petri,penson,pearlman,parikh,natoli,murakami,mullikin,mullane,motes,morningstar,mcveigh,mcgrady,mcgaughey,mccurley,marchan,manske,lusby,linde,likens,licon,leroux,lemaire,legette,laskey,laprade,laplant,kolar,kittredge,kinley,kerber,kanagy,jetton,janik,ippolito,inouye,hunsinger,howley,howery,horrell,holthaus,hiner,hilson,hilderbrand,hartzler,harnish,harada,hansford,halligan,hagedorn,gwynn,gudino,greenstein,greear,gracey,goudeau,goodner,ginsburg,gerth,gerner,fujii,frier,frenette,folmar,fleisher,fleischmann,fetzer,eisenman,earhart,dupuy,dunkelberger,drexler,dillinger,dilbeck,dewald,demby,deford,craine,chesnut,casady,carstens,carrick,carino,carignan,canchola,bushong,burman,buono,brownlow,broach,britten,brickhouse,boyden,boulton,borland,bohrer,blubaugh,bever,berggren,benevides,arocho,arends,amezcua,almendarez,zalewski,witzel,winkfield,wilhoite,vangundy,vanfleet,vanetten,vandergriff,urbanski,troiano,thibodaux,straus,stoneking,stjean,stillings,stange,speicher,speegle,smeltzer,slawson,simmonds,shuttleworth,serpa,senger,seidman,schweiger,schloss,schimmel,schechter,sayler,sabatini,ronan,rodiguez,riggleman,richins,reamer,prunty,porath,plunk,piland,philbrook,pettitt,perna,peralez,pascale,padula,oboyle,nivens,nickols,mundt,munden,montijo,mcmanis,mcgrane,mccrimmon,manzi,mangold,malick,mahar,maddock,losey,litten,leedy,leavell,ladue,krahn,kluge,junker,iversen,imler,hurtt,huizar,hubbert,howington,hollomon,holdren,hoisington,heiden,hauge,hartigan,gutirrez,griffie,greenhill,gratton,granata,gottfried,gertz,gautreaux,furry,furey,funderburg,flippen,fitzgibbon,drucker,donoghue,dildy,devers,detweiler,despres,denby,degeorge,cueto,cranston,courville,clukey,cirillo,chivers,caudillo,butera,bulluck,buckmaster,braunstein,bracamonte,bourdeau,bonnette".split(","),
40837 us_tv_and_film:"you,i,to,that,it,me,what,this,know,i'm,no,have,my,don't,just,not,do,be,your,we,it's,so,but,all,well,oh,about,right,you're,get,here,out,going,like,yeah,if,can,up,want,think,that's,now,go,him,how,got,did,why,see,come,good,really,look,will,okay,back,can't,mean,tell,i'll,hey,he's,could,didn't,yes,something,because,say,take,way,little,make,need,gonna,never,we're,too,she's,i've,sure,our,sorry,what's,let,thing,maybe,down,man,very,there's,should,anything,said,much,any,even,off,please,doing,thank,give,thought,help,talk,god,still,wait,find,nothing,again,things,let's,doesn't,call,told,great,better,ever,night,away,believe,feel,everything,you've,fine,last,keep,does,put,around,stop,they're,i'd,guy,isn't,always,listen,wanted,guys,huh,those,big,lot,happened,thanks,won't,trying,kind,wrong,talking,guess,care,bad,mom,remember,getting,we'll,together,dad,leave,understand,wouldn't,actually,hear,baby,nice,father,else,stay,done,wasn't,course,might,mind,every,enough,try,hell,came,someone,you'll,whole,yourself,idea,ask,must,coming,looking,woman,room,knew,tonight,real,son,hope,went,hmm,happy,pretty,saw,girl,sir,friend,already,saying,next,job,problem,minute,thinking,haven't,heard,honey,matter,myself,couldn't,exactly,having,probably,happen,we've,hurt,boy,dead,gotta,alone,excuse,start,kill,hard,you'd,today,car,ready,without,wants,hold,wanna,yet,seen,deal,once,gone,morning,supposed,friends,head,stuff,worry,live,truth,face,forget,true,cause,soon,knows,telling,wife,who's,chance,run,move,anyone,person,bye,somebody,heart,miss,making,meet,anyway,phone,reason,damn,lost,looks,bring,case,turn,wish,tomorrow,kids,trust,check,change,anymore,least,aren't,working,makes,taking,means,brother,hate,ago,says,beautiful,gave,fact,crazy,sit,afraid,important,rest,fun,kid,word,watch,glad,everyone,sister,minutes,everybody,bit,couple,whoa,either,mrs,feeling,daughter,wow,gets,asked,break,promise,door,close,hand,easy,question,tried,far,walk,needs,mine,killed,hospital,anybody,alright,wedding,shut,able,die,perfect,stand,comes,hit,waiting,dinner,funny,husband,almost,pay,answer,cool,eyes,news,child,shouldn't,yours,moment,sleep,read,where's,sounds,sonny,pick,sometimes,bed,date,plan,hours,lose,hands,serious,shit,behind,inside,ahead,week,wonderful,fight,past,cut,quite,he'll,sick,it'll,eat,nobody,goes,save,seems,finally,lives,worried,upset,carly,met,brought,seem,sort,safe,weren't,leaving,front,shot,loved,asking,running,clear,figure,hot,felt,parents,drink,absolutely,how's,daddy,sweet,alive,sense,meant,happens,bet,blood,ain't,kidding,lie,meeting,dear,seeing,sound,fault,ten,buy,hour,speak,lady,jen,thinks,christmas,outside,hang,possible,worse,mistake,ooh,handle,spend,totally,giving,here's,marriage,realize,unless,sex,send,needed,scared,picture,talked,ass,hundred,changed,completely,explain,certainly,sign,boys,relationship,loves,hair,lying,choice,anywhere,future,weird,luck,she'll,turned,touch,kiss,crane,questions,obviously,wonder,pain,calling,somewhere,throw,straight,cold,fast,words,food,none,drive,feelings,they'll,marry,drop,cannot,dream,protect,twenty,surprise,sweetheart,poor,looked,mad,except,gun,y'know,dance,takes,appreciate,especially,situation,besides,pull,hasn't,worth,sheridan,amazing,expect,swear,piece,busy,happening,movie,we'd,catch,perhaps,step,fall,watching,kept,darling,dog,honor,moving,till,admit,problems,murder,he'd,evil,definitely,feels,honest,eye,broke,missed,longer,dollars,tired,evening,starting,entire,trip,niles,suppose,calm,imagine,fair,caught,blame,sitting,favor,apartment,terrible,clean,learn,frasier,relax,accident,wake,prove,smart,message,missing,forgot,interested,table,nbsp,mouth,pregnant,ring,careful,shall,dude,ride,figured,wear,shoot,stick,follow,angry,write,stopped,ran,standing,forgive,jail,wearing,ladies,kinda,lunch,cristian,greenlee,gotten,hoping,phoebe,thousand,ridge,paper,tough,tape,count,boyfriend,proud,agree,birthday,they've,share,offer,hurry,feet,wondering,decision,ones,finish,voice,herself,would've,mess,deserve,evidence,cute,dress,interesting,hotel,enjoy,quiet,concerned,staying,beat,sweetie,mention,clothes,fell,neither,mmm,fix,respect,prison,attention,holding,calls,surprised,bar,keeping,gift,hadn't,putting,dark,owe,ice,helping,normal,aunt,lawyer,apart,plans,jax,girlfriend,floor,whether,everything's,box,judge,upstairs,sake,mommy,possibly,worst,acting,accept,blow,strange,saved,conversation,plane,mama,yesterday,lied,quick,lately,stuck,difference,store,she'd,bought,doubt,listening,walking,cops,deep,dangerous,buffy,sleeping,chloe,rafe,join,card,crime,gentlemen,willing,window,walked,guilty,likes,fighting,difficult,soul,joke,favorite,uncle,promised,bother,seriously,cell,knowing,broken,advice,somehow,paid,losing,push,helped,killing,boss,liked,innocent,rules,learned,thirty,risk,letting,speaking,ridiculous,afternoon,apologize,nervous,charge,patient,boat,how'd,hide,detective,planning,huge,breakfast,horrible,awful,pleasure,driving,hanging,picked,sell,quit,apparently,dying,notice,congratulations,visit,could've,c'mon,letter,decide,forward,fool,showed,smell,seemed,spell,memory,pictures,slow,seconds,hungry,hearing,kitchen,ma'am,should've,realized,kick,grab,discuss,fifty,reading,idiot,suddenly,agent,destroy,bucks,shoes,peace,arms,demon,livvie,consider,papers,incredible,witch,drunk,attorney,tells,knock,ways,gives,nose,skye,turns,keeps,jealous,drug,sooner,cares,plenty,extra,outta,weekend,matters,gosh,opportunity,impossible,waste,pretend,jump,eating,proof,slept,arrest,breathe,perfectly,warm,pulled,twice,easier,goin,dating,suit,romantic,drugs,comfortable,finds,checked,divorce,begin,ourselves,closer,ruin,smile,laugh,treat,fear,what'd,otherwise,excited,mail,hiding,stole,pacey,noticed,fired,excellent,bringing,bottom,note,sudden,bathroom,honestly,sing,foot,remind,charges,witness,finding,tree,dare,hardly,that'll,steal,silly,contact,teach,shop,plus,colonel,fresh,trial,invited,roll,reach,dirty,choose,emergency,dropped,butt,credit,obvious,locked,loving,nuts,agreed,prue,goodbye,condition,guard,fuckin,grow,cake,mood,crap,crying,belong,partner,trick,pressure,dressed,taste,neck,nurse,raise,lots,carry,whoever,drinking,they'd,breaking,file,lock,wine,spot,paying,assume,asleep,turning,viki,bedroom,shower,nikolas,camera,fill,reasons,forty,bigger,nope,breath,doctors,pants,freak,movies,folks,cream,wild,truly,desk,convince,client,threw,hurts,spending,answers,shirt,chair,rough,doin,sees,ought,empty,wind,aware,dealing,pack,tight,hurting,guest,arrested,salem,confused,surgery,expecting,deacon,unfortunately,goddamn,bottle,beyond,whenever,pool,opinion,starts,jerk,secrets,falling,necessary,barely,dancing,tests,copy,cousin,ahem,twelve,tess,skin,fifteen,speech,orders,complicated,nowhere,escape,biggest,restaurant,grateful,usual,burn,address,someplace,screw,everywhere,regret,goodness,mistakes,details,responsibility,suspect,corner,hero,dumb,terrific,whoo,hole,memories,o'clock,teeth,ruined,bite,stenbeck,liar,showing,cards,desperate,search,pathetic,spoke,scare,marah,afford,settle,stayed,checking,hired,heads,concern,blew,alcazar,champagne,connection,tickets,happiness,saving,kissing,hated,personally,suggest,prepared,onto,downstairs,ticket,it'd,loose,holy,duty,convinced,throwing,kissed,legs,loud,saturday,babies,where'd,warning,miracle,carrying,blind,ugly,shopping,hates,sight,bride,coat,clearly,celebrate,brilliant,wanting,forrester,lips,custody,screwed,buying,toast,thoughts,reality,lexie,attitude,advantage,grandfather,sami,grandma,someday,roof,marrying,powerful,grown,grandmother,fake,must've,ideas,exciting,familiar,bomb,bout,harmony,schedule,capable,practically,correct,clue,forgotten,appointment,deserves,threat,bloody,lonely,shame,jacket,hook,scary,investigation,invite,shooting,lesson,criminal,victim,funeral,considering,burning,strength,harder,sisters,pushed,shock,pushing,heat,chocolate,miserable,corinthos,nightmare,brings,zander,crash,chances,sending,recognize,healthy,boring,feed,engaged,headed,treated,knife,drag,badly,hire,paint,pardon,behavior,closet,warn,gorgeous,milk,survive,ends,dump,rent,remembered,thanksgiving,rain,revenge,prefer,spare,pray,disappeared,aside,statement,sometime,meat,fantastic,breathing,laughing,stood,affair,ours,depends,protecting,jury,brave,fingers,murdered,explanation,picking,blah,stronger,handsome,unbelievable,anytime,shake,oakdale,wherever,pulling,facts,waited,lousy,circumstances,disappointed,weak,trusted,license,nothin,trash,understanding,slip,sounded,awake,friendship,stomach,weapon,threatened,mystery,vegas,understood,basically,switch,frankly,cheap,lifetime,deny,clock,garbage,why'd,tear,ears,indeed,changing,singing,tiny,decent,avoid,messed,filled,touched,disappear,exact,pills,kicked,harm,fortune,pretending,insurance,fancy,drove,cared,belongs,nights,lorelai,lift,timing,guarantee,chest,woke,burned,watched,heading,selfish,drinks,doll,committed,elevator,freeze,noise,wasting,ceremony,uncomfortable,staring,files,bike,stress,permission,thrown,possibility,borrow,fabulous,doors,screaming,bone,xander,what're,meal,apology,anger,honeymoon,bail,parking,fixed,wash,stolen,sensitive,stealing,photo,chose,lets,comfort,worrying,pocket,mateo,bleeding,shoulder,ignore,talent,tied,garage,dies,demons,dumped,witches,rude,crack,bothering,radar,soft,meantime,gimme,kinds,fate,concentrate,throat,prom,messages,intend,ashamed,somethin,manage,guilt,interrupt,guts,tongue,shoe,basement,sentence,purse,glasses,cabin,universe,repeat,mirror,wound,travers,tall,engagement,therapy,emotional,jeez,decisions,soup,thrilled,stake,chef,moves,extremely,moments,expensive,counting,shots,kidnapped,cleaning,shift,plate,impressed,smells,trapped,aidan,knocked,charming,attractive,argue,puts,whip,embarrassed,package,hitting,bust,stairs,alarm,pure,nail,nerve,incredibly,walks,dirt,stamp,terribly,friendly,damned,jobs,suffering,disgusting,stopping,deliver,riding,helps,disaster,bars,crossed,trap,talks,eggs,chick,threatening,spoken,introduce,confession,embarrassing,bags,impression,gate,reputation,presents,chat,suffer,argument,talkin,crowd,homework,coincidence,cancel,pride,solve,hopefully,pounds,pine,mate,illegal,generous,outfit,maid,bath,punch,freaked,begging,recall,enjoying,prepare,wheel,defend,signs,painful,yourselves,maris,that'd,suspicious,cooking,button,warned,sixty,pity,yelling,awhile,confidence,offering,pleased,panic,hers,gettin,refuse,grandpa,testify,choices,cruel,mental,gentleman,coma,cutting,proteus,guests,expert,benefit,faces,jumped,toilet,sneak,halloween,privacy,smoking,reminds,twins,swing,solid,options,commitment,crush,ambulance,wallet,gang,eleven,option,laundry,assure,stays,skip,fail,discussion,clinic,betrayed,sticking,bored,mansion,soda,sheriff,suite,handled,busted,load,happier,studying,romance,procedure,commit,assignment,suicide,minds,swim,yell,llanview,chasing,proper,believes,humor,hopes,lawyers,giant,latest,escaped,parent,tricks,insist,dropping,cheer,medication,flesh,routine,sandwich,handed,false,beating,warrant,awfully,odds,treating,thin,suggesting,fever,sweat,silent,clever,sweater,mall,sharing,assuming,judgment,goodnight,divorced,surely,steps,confess,math,listened,comin,answered,vulnerable,bless,dreaming,chip,zero,pissed,nate,kills,tears,knees,chill,brains,unusual,packed,dreamed,cure,lookin,grave,cheating,breaks,locker,gifts,awkward,thursday,joking,reasonable,dozen,curse,quartermaine,millions,dessert,rolling,detail,alien,delicious,closing,vampires,wore,tail,secure,salad,murderer,spit,offense,dust,conscience,bread,answering,lame,invitation,grief,smiling,pregnancy,prisoner,delivery,guards,virus,shrink,freezing,wreck,massimo,wire,technically,blown,anxious,cave,holidays,cleared,wishes,caring,candles,bound,charm,pulse,jumping,jokes,boom,occasion,silence,nonsense,frightened,slipped,dimera,blowing,relationships,kidnapping,spin,tool,roxy,packing,blaming,wrap,obsessed,fruit,torture,personality,there'll,fairy,necessarily,seventy,print,motel,underwear,grams,exhausted,believing,freaking,carefully,trace,touching,messing,recovery,intention,consequences,belt,sacrifice,courage,enjoyed,attracted,remove,testimony,intense,heal,defending,unfair,relieved,loyal,slowly,buzz,alcohol,surprises,psychiatrist,plain,attic,who'd,uniform,terrified,cleaned,zach,threaten,fella,enemies,satisfied,imagination,hooked,headache,forgetting,counselor,andie,acted,badge,naturally,frozen,sakes,appropriate,trunk,dunno,costume,sixteen,impressive,kicking,junk,grabbed,understands,describe,clients,owns,affect,witnesses,starving,instincts,happily,discussing,deserved,strangers,surveillance,admire,questioning,dragged,barn,deeply,wrapped,wasted,tense,hoped,fellas,roommate,mortal,fascinating,stops,arrangements,agenda,literally,propose,honesty,underneath,sauce,promises,lecture,eighty,torn,shocked,backup,differently,ninety,deck,biological,pheebs,ease,creep,waitress,telephone,ripped,raising,scratch,rings,prints,thee,arguing,ephram,asks,oops,diner,annoying,taggert,sergeant,blast,towel,clown,habit,creature,bermuda,snap,react,paranoid,handling,eaten,therapist,comment,sink,reporter,nurses,beats,priority,interrupting,warehouse,loyalty,inspector,pleasant,excuses,threats,guessing,tend,praying,motive,unconscious,mysterious,unhappy,tone,switched,rappaport,sookie,neighbor,loaded,swore,piss,balance,toss,misery,thief,squeeze,lobby,goa'uld,geez,exercise,forth,booked,sandburg,poker,eighteen,d'you,bury,everyday,digging,creepy,wondered,liver,hmmm,magical,fits,discussed,moral,helpful,searching,flew,depressed,aisle,cris,amen,vows,neighbors,darn,cents,arrange,annulment,useless,adventure,resist,fourteen,celebrating,inch,debt,violent,sand,teal'c,celebration,reminded,phones,paperwork,emotions,stubborn,pound,tension,stroke,steady,overnight,chips,beef,suits,boxes,cassadine,collect,tragedy,spoil,realm,wipe,surgeon,stretch,stepped,nephew,neat,limo,confident,perspective,climb,punishment,finest,springfield,hint,furniture,blanket,twist,proceed,fries,worries,niece,gloves,soap,signature,disappoint,crawl,convicted,flip,counsel,doubts,crimes,accusing,shaking,remembering,hallway,halfway,bothered,madam,gather,cameras,blackmail,symptoms,rope,ordinary,imagined,cigarette,supportive,explosion,trauma,ouch,furious,cheat,avoiding,whew,thick,oooh,boarding,approve,urgent,shhh,misunderstanding,drawer,phony,interfere,catching,bargain,tragic,respond,punish,penthouse,thou,rach,ohhh,insult,bugs,beside,begged,absolute,strictly,socks,senses,sneaking,reward,polite,checks,tale,physically,instructions,fooled,blows,tabby,bitter,adorable,y'all,tested,suggestion,jewelry,alike,jacks,distracted,shelter,lessons,constable,circus,audition,tune,shoulders,mask,helpless,feeding,explains,sucked,robbery,objection,behave,valuable,shadows,courtroom,confusing,talented,smarter,mistaken,customer,bizarre,scaring,motherfucker,alert,vecchio,reverend,foolish,compliment,bastards,worker,wheelchair,protective,gentle,reverse,picnic,knee,cage,wives,wednesday,voices,toes,stink,scares,pour,cheated,slide,ruining,filling,exit,cottage,upside,proves,parked,diary,complaining,confessed,pipe,merely,massage,chop,spill,prayer,betray,waiter,scam,rats,fraud,brush,tables,sympathy,pill,filthy,seventeen,employee,bracelet,pays,fairly,deeper,arrive,tracking,spite,shed,recommend,oughta,nanny,menu,diet,corn,roses,patch,dime,devastated,subtle,bullets,beans,pile,confirm,strings,parade,borrowed,toys,straighten,steak,premonition,planted,honored,exam,convenient,traveling,laying,insisted,dish,aitoro,kindly,grandson,donor,temper,teenager,proven,mothers,denial,backwards,tent,swell,noon,happiest,drives,thinkin,spirits,potion,holes,fence,whatsoever,rehearsal,overheard,lemme,hostage,bench,tryin,taxi,shove,moron,impress,needle,intelligent,instant,disagree,stinks,rianna,recover,groom,gesture,constantly,bartender,suspects,sealed,legally,hears,dresses,sheet,psychic,teenage,knocking,judging,accidentally,waking,rumor,manners,homeless,hollow,desperately,tapes,referring,item,genoa,gear,majesty,cried,tons,spells,instinct,quote,motorcycle,convincing,fashioned,aids,accomplished,grip,bump,upsetting,needing,invisible,forgiveness,feds,compare,bothers,tooth,inviting,earn,compromise,cocktail,tramp,jabot,intimate,dignity,dealt,souls,informed,gods,dressing,cigarettes,alistair,leak,fond,corky,seduce,liquor,fingerprints,enchantment,butters,stuffed,stavros,emotionally,transplant,tips,oxygen,nicely,lunatic,drill,complain,announcement,unfortunate,slap,prayers,plug,opens,oath,o'neill,mutual,yacht,remembers,fried,extraordinary,bait,warton,sworn,stare,safely,reunion,burst,might've,dive,aboard,expose,buddies,trusting,booze,sweep,sore,scudder,properly,parole,ditch,canceled,speaks,glow,wears,thirsty,skull,ringing,dorm,dining,bend,unexpected,pancakes,harsh,flattered,ahhh,troubles,fights,favourite,eats,rage,undercover,spoiled,sloane,shine,destroying,deliberately,conspiracy,thoughtful,sandwiches,plates,nails,miracles,fridge,drank,contrary,beloved,allergic,washed,stalking,solved,sack,misses,forgiven,bent,maciver,involve,dragging,cooked,pointing,foul,dull,beneath,heels,faking,deaf,stunt,jealousy,hopeless,fears,cuts,scenario,necklace,crashed,accuse,restraining,homicide,helicopter,firing,safer,auction,videotape,tore,reservations,pops,appetite,wounds,vanquish,ironic,fathers,excitement,anyhow,tearing,sends,rape,laughed,belly,dealer,cooperate,accomplish,wakes,spotted,sorts,reservation,ashes,tastes,supposedly,loft,intentions,integrity,wished,towels,suspected,investigating,inappropriate,lipstick,lawn,compassion,cafeteria,scarf,precisely,obsession,loses,lighten,infection,granddaughter,explode,balcony,this'll,spying,publicity,depend,cracked,conscious,ally,absurd,vicious,invented,forbid,directions,defendant,bare,announce,screwing,salesman,robbed,leap,lakeview,insanity,reveal,possibilities,kidnap,gown,chairs,wishing,setup,punished,criminals,regrets,raped,quarters,lamp,dentist,anyways,anonymous,semester,risks,owes,lungs,explaining,delicate,tricked,eager,doomed,adoption,stab,sickness,scum,floating,envelope,vault,sorel,pretended,potatoes,plea,photograph,payback,misunderstood,kiddo,healing,cascade,capeside,stabbed,remarkable,brat,privilege,passionate,nerves,lawsuit,kidney,disturbed,cozy,tire,shirts,oven,ordering,delay,risky,monsters,honorable,grounded,closest,breakdown,bald,abandon,scar,collar,worthless,sucking,enormous,disturbing,disturb,distract,deals,conclusions,vodka,dishes,crawling,briefcase,wiped,whistle,sits,roast,rented,pigs,flirting,deposit,bottles,topic,riot,overreacting,logical,hostile,embarrass,casual,beacon,amusing,altar,claus,survival,skirt,shave,porch,ghosts,favors,drops,dizzy,chili,advise,strikes,rehab,photographer,peaceful,leery,heavens,fortunately,fooling,expectations,cigar,weakness,ranch,practicing,examine,cranes,bribe,sail,prescription,hush,fragile,forensics,expense,drugged,cows,bells,visitor,suitcase,sorta,scan,manticore,insecure,imagining,hardest,clerk,wrist,what'll,starters,silk,pump,pale,nicer,haul,flies,boot,thumb,there'd,how're,elders,quietly,pulls,idiots,erase,denying,ankle,amnesia,accepting,heartbeat,devane,confront,minus,legitimate,fixing,arrogant,tuna,supper,slightest,sins,sayin,recipe,pier,paternity,humiliating,genuine,snack,rational,minded,guessed,weddings,tumor,humiliated,aspirin,spray,picks,eyed,drowning,contacts,ritual,perfume,hiring,hating,docks,creatures,visions,thanking,thankful,sock,nineteen,fork,throws,teenagers,stressed,slice,rolls,plead,ladder,kicks,detectives,assured,tellin,shallow,responsibilities,repay,howdy,girlfriends,deadly,comforting,ceiling,verdict,insensitive,spilled,respected,messy,interrupted,halliwell,blond,bleed,wardrobe,takin,murders,backs,underestimate,justify,harmless,frustrated,fold,enzo,communicate,bugging,arson,whack,salary,rumors,obligation,liking,dearest,congratulate,vengeance,rack,puzzle,fires,courtesy,caller,blamed,tops,quiz,prep,curiosity,circles,barbecue,sunnydale,spinning,psychotic,cough,accusations,resent,laughs,freshman,envy,drown,bartlet,asses,sofa,poster,highness,dock,apologies,theirs,stat,stall,realizes,psych,mmmm,fools,understandable,treats,succeed,stir,relaxed,makin,gratitude,faithful,accent,witter,wandering,locate,inevitable,gretel,deed,crushed,controlling,smelled,robe,gossip,gambling,cosmetics,accidents,surprising,stiff,sincere,rushed,refrigerator,preparing,nightmares,mijo,ignoring,hunch,fireworks,drowned,brass,whispering,sophisticated,luggage,hike,explore,emotion,crashing,contacted,complications,shining,rolled,righteous,reconsider,goody,geek,frightening,ethics,creeps,courthouse,camping,affection,smythe,haircut,essay,baked,apologized,vibe,respects,receipt,mami,hats,destructive,adore,adopt,tracked,shorts,reminding,dough,creations,cabot,barrel,snuck,slight,reporters,pressing,magnificent,madame,lazy,glorious,fiancee,bits,visitation,sane,kindness,shoulda,rescued,mattress,lounge,lifted,importantly,glove,enterprises,disappointment,condo,beings,admitting,yelled,waving,spoon,screech,satisfaction,reads,nailed,worm,tick,resting,marvelous,fuss,cortlandt,chased,pockets,luckily,lilith,filing,conversations,consideration,consciousness,worlds,innocence,forehead,aggressive,trailer,slam,quitting,inform,delighted,daylight,danced,confidential,aunts,washing,tossed,spectra,marrow,lined,implying,hatred,grill,corpse,clues,sober,offended,morgue,infected,humanity,distraction,cart,wired,violation,promising,harassment,glue,d'angelo,cursed,brutal,warlocks,wagon,unpleasant,proving,priorities,mustn't,lease,flame,disappearance,depressing,thrill,sitter,ribs,flush,earrings,deadline,corporal,collapsed,update,snapped,smack,melt,figuring,delusional,coulda,burnt,tender,sperm,realise,pork,popped,interrogation,esteem,choosing,undo,pres,prayed,plague,manipulate,insulting,detention,delightful,coffeehouse,betrayal,apologizing,adjust,wrecked,wont,whipped,rides,reminder,monsieur,faint,bake,distress,correctly,complaint,blocked,tortured,risking,pointless,handing,dumping,cups,alibi,struggling,shiny,risked,mummy,mint,hose,hobby,fortunate,fleischman,fitting,curtain,counseling,rode,puppet,modeling,memo,irresponsible,humiliation,hiya,freakin,felony,choke,blackmailing,appreciated,tabloid,suspicion,recovering,pledge,panicked,nursery,louder,jeans,investigator,homecoming,frustrating,buys,busting,buff,sleeve,irony,dope,declare,autopsy,workin,torch,prick,limb,hysterical,goddamnit,fetch,dimension,crowded,clip,climbing,bonding,woah,trusts,negotiate,lethal,iced,fantasies,deeds,bore,babysitter,questioned,outrageous,kiriakis,insulted,grudge,driveway,deserted,definite,beep,wires,suggestions,searched,owed,lend,drunken,demanding,costanza,conviction,bumped,weigh,touches,tempted,shout,resolve,relate,poisoned,meals,invitations,haunted,bogus,autograph,affects,tolerate,stepping,spontaneous,sleeps,probation,manny,fist,spectacular,hostages,heroin,havin,habits,encouraging,consult,burgers,boyfriends,bailed,baggage,watches,troubled,torturing,teasing,sweetest,qualities,postpone,overwhelmed,malkovich,impulse,classy,charging,amazed,policeman,hypocrite,humiliate,hideous,d'ya,costumes,bluffing,betting,bein,bedtime,alcoholic,vegetable,tray,suspicions,spreading,splendid,shrimp,shouting,pressed,nooo,grieving,gladly,fling,eliminate,cereal,aaah,sonofabitch,paralyzed,lotta,locks,guaranteed,dummy,despise,dental,briefing,bluff,batteries,whatta,sounding,servants,presume,handwriting,fainted,dried,allright,acknowledge,whacked,toxic,reliable,quicker,overwhelming,lining,harassing,fatal,endless,dolls,convict,whatcha,unlikely,shutting,positively,overcome,goddam,essence,dose,diagnosis,cured,bully,ahold,yearbook,tempting,shelf,prosecution,pouring,possessed,greedy,wonders,thorough,spine,rath,psychiatric,meaningless,latte,jammed,ignored,fiance,evidently,contempt,compromised,cans,weekends,urge,theft,suing,shipment,scissors,responding,proposition,noises,matching,hormones,hail,grandchildren,gently,smashed,sexually,sentimental,nicest,manipulated,intern,handcuffs,framed,errands,entertaining,crib,carriage,barge,spends,slipping,seated,rubbing,rely,reject,recommendation,reckon,headaches,float,embrace,corners,whining,sweating,skipped,mountie,motives,listens,cristobel,cleaner,cheerleader,balsom,unnecessary,stunning,scent,quartermaines,pose,montega,loosen,info,hottest,haunt,gracious,forgiving,errand,cakes,blames,abortion,sketch,shifts,plotting,perimeter,pals,mere,mattered,lonigan,interference,eyewitness,enthusiasm,diapers,strongest,shaken,punched,portal,catches,backyard,terrorists,sabotage,organs,needy,cuff,civilization,woof,who'll,prank,obnoxious,mates,hereby,gabby,faked,cellar,whitelighter,void,strangle,sour,muffins,interfering,demonic,clearing,boutique,barrington,terrace,smoked,righty,quack,petey,pact,knot,ketchup,disappearing,cordy,uptight,ticking,terrifying,tease,swamp,secretly,rejection,reflection,realizing,rays,mentally,marone,doubted,deception,congressman,cheesy,toto,stalling,scoop,ribbon,immune,expects,destined,bets,bathing,appreciation,accomplice,wander,shoved,sewer,scroll,retire,lasts,fugitive,freezer,discount,cranky,crank,clearance,bodyguard,anxiety,accountant,whoops,volunteered,talents,stinking,remotely,garlic,decency,cord,beds,altogether,uniforms,tremendous,popping,outa,observe,lung,hangs,feelin,dudes,donation,disguise,curb,bites,antique,toothbrush,realistic,predict,landlord,hourglass,hesitate,consolation,babbling,tipped,stranded,smartest,repeating,puke,psst,paycheck,overreacted,macho,juvenile,grocery,freshen,disposal,cuffs,caffeine,vanished,unfinished,ripping,pinch,flattering,expenses,dinners,colleague,ciao,belthazor,attorneys,woulda,whereabouts,waitin,truce,tripped,tasted,steer,poisoning,manipulative,immature,husbands,heel,granddad,delivering,condoms,addict,trashed,raining,pasta,needles,leaning,detector,coolest,batch,appointments,almighty,vegetables,spark,perfection,pains,momma,mole,meow,hairs,getaway,cracking,compliments,behold,verge,tougher,timer,tapped,taped,specialty,snooping,shoots,rendezvous,pentagon,leverage,jeopardize,janitor,grandparents,forbidden,clueless,bidding,ungrateful,unacceptable,tutor,serum,scuse,pajamas,mouths,lure,irrational,doom,cries,beautifully,arresting,approaching,traitor,sympathetic,smug,smash,rental,prostitute,premonitions,jumps,inventory,darlin,committing,banging,asap,worms,violated,vent,traumatic,traced,sweaty,shaft,overboard,insight,healed,grasp,experiencing,crappy,crab,chunk,awww,stain,shack,reacted,pronounce,poured,moms,marriages,jabez,handful,flipped,fireplace,embarrassment,disappears,concussion,bruises,brakes,twisting,swept,summon,splitting,sloppy,settling,reschedule,notch,hooray,grabbing,exquisite,disrespect,thornhart,straw,slapped,shipped,shattered,ruthless,refill,payroll,numb,mourning,manly,hunk,entertain,drift,dreadful,doorstep,confirmation,chops,appreciates,vague,tires,stressful,stashed,stash,sensed,preoccupied,predictable,noticing,madly,gunshot,dozens,dork,confuse,cleaners,charade,chalk,cappuccino,bouquet,amulet,addiction,who've,warming,unlock,satisfy,sacrificed,relaxing,lone,blocking,blend,blankets,addicted,yuck,hunger,hamburger,greeting,greet,gravy,gram,dreamt,dice,caution,backpack,agreeing,whale,taller,supervisor,sacrifices,phew,ounce,irrelevant,gran,felon,favorites,farther,fade,erased,easiest,convenience,compassionate,cane,backstage,agony,adores,veins,tweek,thieves,surgical,strangely,stetson,recital,proposing,productive,meaningful,immunity,hassle,goddamned,frighten,dearly,cease,ambition,wage,unstable,salvage,richer,refusing,raging,pumping,pressuring,mortals,lowlife,intimidated,intentionally,inspire,forgave,devotion,despicable,deciding,dash,comfy,breach,bark,aaaah,switching,swallowed,stove,screamed,scars,russians,pounding,poof,pipes,pawn,legit,invest,farewell,curtains,civilized,caviar,boost,token,superstition,supernatural,sadness,recorder,psyched,motivated,microwave,hallelujah,fraternity,dryer,cocoa,chewing,acceptable,unbelievably,smiled,smelling,simpler,respectable,remarks,khasinau,indication,gutter,grabs,fulfill,flashlight,ellenor,blooded,blink,blessings,beware,uhhh,turf,swings,slips,shovel,shocking,puff,mirrors,locking,heartless,fras,childish,cardiac,utterly,tuscany,ticked,stunned,statesville,sadly,purely,kiddin,jerks,hitch,flirt,fare,equals,dismiss,christening,casket,c'mere,breakup,biting,antibiotics,accusation,abducted,witchcraft,thread,runnin,punching,paramedics,newest,murdering,masks,lawndale,initials,grampa,choking,charms,careless,bushes,buns,bummed,shred,saves,saddle,rethink,regards,precinct,persuade,meds,manipulating,llanfair,leash,hearted,guarantees,fucks,disgrace,deposition,bookstore,boil,vitals,veil,trespassing,sidewalk,sensible,punishing,overtime,optimistic,obsessing,notify,mornin,jeopardy,jaffa,injection,hilarious,desires,confide,cautious,yada,where're,vindictive,vial,teeny,stroll,sittin,scrub,rebuild,posters,ordeal,nuns,intimacy,inheritance,exploded,donate,distracting,despair,crackers,wildwind,virtue,thoroughly,tails,spicy,sketches,sights,sheer,shaving,seize,scarecrow,refreshing,prosecute,platter,napkin,misplaced,merchandise,loony,jinx,heroic,frankenstein,ambitious,syrup,solitary,resemblance,reacting,premature,lavery,flashes,cheque,awright,acquainted,wrapping,untie,salute,realised,priceless,partying,lightly,lifting,kasnoff,insisting,glowing,generator,explosives,cutie,confronted,buts,blouse,ballistic,antidote,analyze,allowance,adjourned,unto,understatement,tucked,touchy,subconscious,screws,sarge,roommates,rambaldi,offend,nerd,knives,irresistible,incapable,hostility,goddammit,fuse,frat,curfew,blackmailed,walkin,starve,sleigh,sarcastic,recess,rebound,pinned,parlor,outfits,livin,heartache,haired,fundraiser,doorman,discreet,dilucca,cracks,considerate,climbed,catering,apophis,zoey,urine,strung,stitches,sordid,sark,protector,phoned,pets,hostess,flaw,flavor,deveraux,consumed,confidentiality,bourbon,straightened,specials,spaghetti,prettier,powerless,playin,playground,paranoia,instantly,havoc,exaggerating,eavesdropping,doughnuts,diversion,deepest,cutest,comb,bela,behaving,anyplace,accessory,workout,translate,stuffing,speeding,slime,royalty,polls,marital,lurking,lottery,imaginary,greetings,fairwinds,elegant,elbow,credibility,credentials,claws,chopped,bridal,bedside,babysitting,witty,unforgivable,underworld,tempt,tabs,sophomore,selfless,secrecy,restless,okey,movin,metaphor,messes,meltdown,lecter,incoming,gasoline,diefenbaker,buckle,admired,adjustment,warmth,throats,seduced,queer,parenting,noses,luckiest,graveyard,gifted,footsteps,dimeras,cynical,wedded,verbal,unpredictable,tuned,stoop,slides,sinking,rigged,plumbing,lingerie,hankey,greed,everwood,elope,dresser,chauffeur,bulletin,bugged,bouncing,temptation,strangest,slammed,sarcasm,pending,packages,orderly,obsessive,murderers,meteor,inconvenience,glimpse,froze,execute,courageous,consulate,closes,bosses,bees,amends,wuss,wolfram,wacky,unemployed,testifying,syringe,stew,startled,sorrow,sleazy,shaky,screams,rsquo,remark,poke,nutty,mentioning,mend,inspiring,impulsive,housekeeper,foam,fingernails,conditioning,baking,whine,thug,starved,sniffing,sedative,programmed,picket,paged,hound,homosexual,homo,hips,forgets,flipping,flea,flatter,dwell,dumpster,choo,assignments,ants,vile,unreasonable,tossing,thanked,steals,souvenir,scratched,psychopath,outs,obstruction,obey,lump,insists,harass,gloat,filth,edgy,didn,coroner,confessing,bruise,betraying,bailing,appealing,adebisi,wrath,wandered,waist,vain,traps,stepfather,poking,obligated,heavenly,dilemma,crazed,contagious,coaster,cheering,bundle,vomit,thingy,speeches,robbing,raft,pumped,pillows,peep,packs,neglected,m'kay,loneliness,intrude,helluva,gardener,forresters,drooling,betcha,vase,supermarket,squat,spitting,rhyme,relieve,receipts,racket,pictured,pause,overdue,motivation,morgendorffer,kidnapper,insect,horns,feminine,eyeballs,dumps,disappointing,crock,convertible,claw,clamp,canned,cambias,bathtub,avanya,artery,weep,warmer,suspense,summoned,spiders,reiber,raving,pushy,postponed,ohhhh,noooo,mold,laughter,incompetent,hugging,groceries,drip,communicating,auntie,adios,wraps,wiser,willingly,weirdest,timmih,thinner,swelling,swat,steroids,sensitivity,scrape,rehearse,prophecy,ledge,justified,insults,hateful,handles,doorway,chatting,buyer,buckaroo,bedrooms,askin,ammo,tutoring,subpoena,scratching,privileges,pager,mart,intriguing,idiotic,grape,enlighten,corrupt,brunch,bridesmaid,barking,applause,acquaintance,wretched,superficial,soak,smoothly,sensing,restraint,posing,pleading,payoff,oprah,nemo,morals,loaf,jumpy,ignorant,herbal,hangin,germs,generosity,flashing,doughnut,clumsy,chocolates,captive,behaved,apologise,vanity,stumbled,preview,poisonous,perjury,parental,onboard,mugged,minding,linen,knots,interviewing,humour,grind,greasy,goons,drastic,coop,comparing,cocky,clearer,bruised,brag,bind,worthwhile,whoop,vanquishing,tabloids,sprung,spotlight,sentencing,racist,provoke,pining,overly,locket,imply,impatient,hovering,hotter,fest,endure,dots,doren,debts,crawled,chained,brit,breaths,weirdo,warmed,wand,troubling,tok'ra,strapped,soaked,skipping,scrambled,rattle,profound,musta,mocking,misunderstand,limousine,kacl,hustle,forensic,enthusiastic,duct,drawers,devastating,conquer,clarify,chores,cheerleaders,cheaper,callin,blushing,barging,abused,yoga,wrecking,wits,waffles,virginity,vibes,uninvited,unfaithful,teller,strangled,scheming,ropes,rescuing,rave,postcard,o'reily,morphine,lotion,lads,kidneys,judgement,itch,indefinitely,grenade,glamorous,genetically,freud,discretion,delusions,crate,competent,bakery,argh,ahhhh,wedge,wager,unfit,tripping,torment,superhero,stirring,spinal,sorority,seminar,scenery,rabble,pneumonia,perks,override,ooooh,mija,manslaughter,mailed,lime,lettuce,intimidate,guarded,grieve,grad,frustration,doorbell,chinatown,authentic,arraignment,annulled,allergies,wanta,verify,vegetarian,tighter,telegram,stalk,spared,shoo,satisfying,saddam,requesting,pens,overprotective,obstacles,notified,nasedo,grandchild,genuinely,flushed,fluids,floss,escaping,ditched,cramp,corny,bunk,bitten,billions,bankrupt,yikes,wrists,ultrasound,ultimatum,thirst,sniff,shakes,salsa,retrieve,reassuring,pumps,neurotic,negotiating,needn't,monitors,millionaire,lydecker,limp,incriminating,hatchet,gracias,gordie,fills,feeds,doubting,decaf,biopsy,whiz,voluntarily,ventilator,unpack,unload,toad,spooked,snitch,schillinger,reassure,persuasive,mystical,mysteries,matrimony,mails,jock,headline,explanations,dispatch,curly,cupid,condolences,comrade,cassadines,bulb,bragging,awaits,assaulted,ambush,adolescent,abort,yank,whit,vaguely,undermine,tying,swamped,stabbing,slippers,slash,sincerely,sigh,setback,secondly,rotting,precaution,pcpd,melting,liaison,hots,hooking,headlines,haha,ganz,fury,felicity,fangs,encouragement,earring,dreidel,dory,donut,dictate,decorating,cocktails,bumps,blueberry,believable,backfired,backfire,apron,adjusting,vous,vouch,vitamins,ummm,tattoos,slimy,sibling,shhhh,renting,peculiar,parasite,paddington,marries,mailbox,magically,lovebirds,knocks,informant,exits,drazen,distractions,disconnected,dinosaurs,dashwood,crooked,conveniently,wink,warped,underestimated,tacky,shoving,seizure,reset,pushes,opener,mornings,mash,invent,indulge,horribly,hallucinating,festive,eyebrows,enjoys,desperation,dealers,darkest,daph,boragora,belts,bagel,authorization,auditions,agitated,wishful,wimp,vanish,unbearable,tonic,suffice,suction,slaying,safest,rocking,relive,puttin,prettiest,noisy,newlyweds,nauseous,misguided,mildly,midst,liable,judgmental,indy,hunted,givin,fascinated,elephants,dislike,deluded,decorate,crummy,contractions,carve,bottled,bonded,bahamas,unavailable,twenties,trustworthy,surgeons,stupidity,skies,remorse,preferably,pies,nausea,napkins,mule,mourn,melted,mashed,inherit,greatness,golly,excused,dumbo,drifting,delirious,damaging,cubicle,compelled,comm,chooses,checkup,boredom,bandages,alarms,windshield,who're,whaddya,transparent,surprisingly,sunglasses,slit,roar,reade,prognosis,probe,pitiful,persistent,peas,nosy,nagging,morons,masterpiece,martinis,limbo,liars,irritating,inclined,hump,hoynes,fiasco,eatin,cubans,concentrating,colorful,clam,cider,brochure,barto,bargaining,wiggle,welcoming,weighing,vanquished,stains,sooo,snacks,smear,sire,resentment,psychologist,pint,overhear,morality,landingham,kisser,hoot,holling,handshake,grilled,formality,elevators,depths,confirms,boathouse,accidental,westbridge,wacko,ulterior,thugs,thighs,tangled,stirred,snag,sling,sleaze,rumour,ripe,remarried,puddle,pins,perceptive,miraculous,longing,lockup,librarian,impressions,immoral,hypothetically,guarding,gourmet,gabe,faxed,extortion,downright,digest,cranberry,bygones,buzzing,burying,bikes,weary,taping,takeout,sweeping,stepmother,stale,senor,seaborn,pros,pepperoni,newborn,ludicrous,injected,geeks,forged,faults,drue,dire,dief,desi,deceiving,caterer,calmed,budge,ankles,vending,typing,tribbiani,there're,squared,snowing,shades,sexist,rewrite,regretted,raises,picky,orphan,mural,misjudged,miscarriage,memorize,leaking,jitters,invade,interruption,illegally,handicapped,glitch,gittes,finer,distraught,dispose,dishonest,digs,dads,cruelty,circling,canceling,butterflies,belongings,barbrady,amusement,alias,zombies,where've,unborn,swearing,stables,squeezed,sensational,resisting,radioactive,questionable,privileged,portofino,owning,overlook,orson,oddly,interrogate,imperative,impeccable,hurtful,hors,heap,graders,glance,disgust,devious,destruct,crazier,countdown,chump,cheeseburger,burglar,berries,ballroom,assumptions,annoyed,allergy,admirer,admirable,activate,underpants,twit,tack,strokes,stool,sham,scrap,retarded,resourceful,remarkably,refresh,pressured,precautions,pointy,nightclub,mustache,maui,lace,hunh,hubby,flare,dont,dokey,dangerously,crushing,clinging,choked,chem,cheerleading,checkbook,cashmere,calmly,blush,believer,amazingly,alas,what've,toilets,tacos,stairwell,spirited,sewing,rubbed,punches,protects,nuisance,motherfuckers,mingle,kynaston,knack,kinkle,impose,gullible,godmother,funniest,friggin,folding,fashions,eater,dysfunctional,drool,dripping,ditto,cruising,criticize,conceive,clone,cedars,caliber,brighter,blinded,birthdays,banquet,anticipate,annoy,whim,whichever,volatile,veto,vested,shroud,rests,reindeer,quarantine,pleases,painless,orphans,orphanage,offence,obliged,negotiation,narcotics,mistletoe,meddling,manifest,lookit,lilah,intrigued,injustice,homicidal,gigantic,exposing,elves,disturbance,disastrous,depended,demented,correction,cooped,cheerful,buyers,brownies,beverage,basics,arvin,weighs,upsets,unethical,swollen,sweaters,stupidest,sensation,scalpel,props,prescribed,pompous,objections,mushrooms,mulwray,manipulation,lured,internship,insignificant,inmate,incentive,fulfilled,disagreement,crypt,cornered,copied,brightest,beethoven,attendant,amaze,yogurt,wyndemere,vocabulary,tulsa,tactic,stuffy,respirator,pretends,polygraph,pennies,ordinarily,olives,necks,morally,martyr,leftovers,joints,hopping,homey,hints,heartbroken,forge,florist,firsthand,fiend,dandy,crippled,corrected,conniving,conditioner,clears,chemo,bubbly,bladder,beeper,baptism,wiring,wench,weaknesses,volunteering,violating,unlocked,tummy,surrogate,subid,stray,startle,specifics,slowing,scoot,robbers,rightful,richest,qfxmjrie,puffs,pierced,pencils,paralysis,makeover,luncheon,linksynergy,jerky,jacuzzi,hitched,hangover,fracture,flock,firemen,disgusted,darned,clams,borrowing,banged,wildest,weirder,unauthorized,stunts,sleeves,sixties,shush,shalt,retro,quits,pegged,painfully,paging,omelet,memorized,lawfully,jackets,intercept,ingredient,grownup,glued,fulfilling,enchanted,delusion,daring,compelling,carton,bridesmaids,bribed,boiling,bathrooms,bandage,awaiting,assign,arrogance,antiques,ainsley,turkeys,trashing,stockings,stalked,stabilized,skates,sedated,robes,respecting,psyche,presumptuous,prejudice,paragraph,mocha,mints,mating,mantan,lorne,loads,listener,itinerary,hepatitis,heave,guesses,fading,examining,dumbest,dishwasher,deceive,cunning,cripple,convictions,confided,compulsive,compromising,burglary,bumpy,brainwashed,benes,arnie,affirmative,adrenaline,adamant,watchin,waitresses,transgenic,toughest,tainted,surround,stormed,spree,spilling,spectacle,soaking,shreds,sewers,severed,scarce,scamming,scalp,rewind,rehearsing,pretentious,potions,overrated,obstacle,nerds,meems,mcmurphy,maternity,maneuver,loathe,fertility,eloping,ecstatic,ecstasy,divorcing,dignan,costing,clubhouse,clocks,candid,bursting,breather,braces,bending,arsonist,adored,absorb,valiant,uphold,unarmed,topolsky,thrilling,thigh,terminate,sustain,spaceship,snore,sneeze,smuggling,salty,quaint,patronize,patio,morbid,mamma,kettle,joyous,invincible,interpret,insecurities,impulses,illusions,holed,exploit,drivin,defenseless,dedicate,cradle,coupon,countless,conjure,cardboard,booking,backseat,accomplishment,wordsworth,wisely,valet,vaccine,urges,unnatural,unlucky,truths,traumatized,tasting,swears,strawberries,steaks,stats,skank,seducing,secretive,scumbag,screwdriver,schedules,rooting,rightfully,rattled,qualifies,puppets,prospects,pronto,posse,polling,pedestal,palms,muddy,morty,microscope,merci,lecturing,inject,incriminate,hygiene,grapefruit,gazebo,funnier,cuter,bossy,booby,aides,zende,winthrop,warrants,valentines,undressed,underage,truthfully,tampered,suffers,speechless,sparkling,sidelines,shrek,railing,puberty,pesky,outrage,outdoors,motions,moods,lunches,litter,kidnappers,itching,intuition,imitation,humility,hassling,gallons,drugstore,dosage,disrupt,dipping,deranged,debating,cuckoo,cremated,craziness,cooperating,circumstantial,chimney,blinking,biscuits,admiring,weeping,triad,trashy,soothing,slumber,slayers,skirts,siren,shindig,sentiment,rosco,riddance,quaid,purity,proceeding,pretzels,panicking,mckechnie,lovin,leaked,intruding,impersonating,ignorance,hamburgers,footprints,fluke,fleas,festivities,fences,feisty,evacuate,emergencies,deceived,creeping,craziest,corpses,conned,coincidences,bounced,bodyguards,blasted,bitterness,baloney,ashtray,apocalypse,zillion,watergate,wallpaper,telesave,sympathize,sweeter,startin,spades,sodas,snowed,sleepover,signor,seein,retainer,restroom,rested,repercussions,reliving,reconcile,prevail,preaching,overreact,o'neil,noose,moustache,manicure,maids,landlady,hypothetical,hopped,homesick,hives,hesitation,herbs,hectic,heartbreak,haunting,gangs,frown,fingerprint,exhausting,everytime,disregard,cling,chevron,chaperone,blinding,bitty,beads,battling,badgering,anticipation,upstanding,unprofessional,unhealthy,turmoil,truthful,toothpaste,tippin,thoughtless,tagataya,shooters,senseless,rewarding,propane,preposterous,pigeons,pastry,overhearing,obscene,negotiable,loner,jogging,itchy,insinuating,insides,hospitality,hormone,hearst,forthcoming,fists,fifties,etiquette,endings,destroys,despises,deprived,cuddy,crust,cloak,circumstance,chewed,casserole,bidder,bearer,artoo,applaud,appalling,vowed,virgins,vigilante,undone,throttle,testosterone,tailor,symptom,swoop,suitcases,stomp,sticker,stakeout,spoiling,snatched,smoochy,smitten,shameless,restraints,researching,renew,refund,reclaim,raoul,puzzles,purposely,punks,prosecuted,plaid,picturing,pickin,parasites,mysteriously,multiply,mascara,jukebox,interruptions,gunfire,furnace,elbows,duplicate,drapes,deliberate,decoy,cryptic,coupla,condemn,complicate,colossal,clerks,clarity,brushed,banished,argon,alarmed,worships,versa,uncanny,technicality,sundae,stumble,stripping,shuts,schmuck,satin,saliva,robber,relentless,reconnect,recipes,rearrange,rainy,psychiatrists,policemen,plunge,plugged,patched,overload,o'malley,mindless,menus,lullaby,lotte,leavin,killin,karinsky,invalid,hides,grownups,griff,flaws,flashy,flaming,fettes,evicted,dread,degrassi,dealings,dangers,cushion,bowel,barged,abide,abandoning,wonderfully,wait'll,violate,suicidal,stayin,sorted,slamming,sketchy,shoplifting,raiser,quizmaster,prefers,needless,motherhood,momentarily,migraine,lifts,leukemia,leftover,keepin,hinks,hellhole,gowns,goodies,gallon,futures,entertained,eighties,conspiring,cheery,benign,apiece,adjustments,abusive,abduction,wiping,whipping,welles,unspeakable,unidentified,trivial,transcripts,textbook,supervise,superstitious,stricken,stimulating,spielberg,slices,shelves,scratches,sabotaged,retrieval,repressed,rejecting,quickie,ponies,peeking,outraged,o'connell,moping,moaning,mausoleum,licked,kovich,klutz,interrogating,interfered,insulin,infested,incompetence,hyper,horrified,handedly,gekko,fraid,fractured,examiner,eloped,disoriented,dashing,crashdown,courier,cockroach,chipped,brushing,bombed,bolts,baths,baptized,astronaut,assurance,anemia,abuela,abiding,withholding,weave,wearin,weaker,suffocating,straws,straightforward,stench,steamed,starboard,sideways,shrinks,shortcut,scram,roasted,roaming,riviera,respectfully,repulsive,psychiatry,provoked,penitentiary,painkillers,ninotchka,mitzvah,milligrams,midge,marshmallows,looky,lapse,kubelik,intellect,improvise,implant,goa'ulds,giddy,geniuses,fruitcake,footing,fightin,drinkin,doork,detour,cuddle,crashes,combo,colonnade,cheats,cetera,bailiff,auditioning,assed,amused,alienate,aiding,aching,unwanted,topless,tongues,tiniest,superiors,soften,sheldrake,rawley,raisins,presses,plaster,nessa,narrowed,minions,merciful,lawsuits,intimidating,infirmary,inconvenient,imposter,hugged,honoring,holdin,hades,godforsaken,fumes,forgery,foolproof,folder,flattery,fingertips,exterminator,explodes,eccentric,dodging,disguised,crave,constructive,concealed,compartment,chute,chinpokomon,bodily,astronauts,alimony,accustomed,abdominal,wrinkle,wallow,valium,untrue,uncover,trembling,treasures,torched,toenails,timed,termites,telly,taunting,taransky,talker,succubus,smarts,sliding,sighting,semen,seizures,scarred,savvy,sauna,saddest,sacrificing,rubbish,riled,ratted,rationally,provenance,phonse,perky,pedal,overdose,nasal,nanites,mushy,movers,missus,midterm,merits,melodramatic,manure,knitting,invading,interpol,incapacitated,hotline,hauling,gunpoint,grail,ganza,framing,flannel,faded,eavesdrop,desserts,calories,breathtaking,bleak,blacked,batter,aggravated,yanked,wigand,whoah,unwind,undoubtedly,unattractive,twitch,trimester,torrance,timetable,taxpayers,strained,stared,slapping,sincerity,siding,shenanigans,shacking,sappy,samaritan,poorer,politely,paste,oysters,overruled,nightcap,mosquito,millimeter,merrier,manhood,lucked,kilos,ignition,hauled,harmed,goodwill,freshmen,fenmore,fasten,farce,exploding,erratic,drunks,ditching,d'artagnan,cramped,contacting,closets,clientele,chimp,bargained,arranging,anesthesia,amuse,altering,afternoons,accountable,abetting,wolek,waved,uneasy,toddy,tattooed,spauldings,sliced,sirens,schibetta,scatter,rinse,remedy,redemption,pleasures,optimism,oblige,mmmmm,masked,malicious,mailing,kosher,kiddies,judas,isolate,insecurity,incidentally,heals,headlights,growl,grilling,glazed,flunk,floats,fiery,fairness,exercising,excellency,disclosure,cupboard,counterfeit,condescending,conclusive,clicked,cleans,cholesterol,cashed,broccoli,brats,blueprints,blindfold,billing,attach,appalled,alrighty,wynant,unsolved,unreliable,toots,tighten,sweatshirt,steinbrenner,steamy,spouse,sonogram,slots,sleepless,shines,retaliate,rephrase,redeem,rambling,quilt,quarrel,prying,proverbial,priced,prescribe,prepped,pranks,possessive,plaintiff,pediatrics,overlooked,outcast,nightgown,mumbo,mediocre,mademoiselle,lunchtime,lifesaver,leaned,lambs,interns,hounding,hellmouth,hahaha,goner,ghoul,gardening,frenzy,foyer,extras,exaggerate,everlasting,enlightened,dialed,devote,deceitful,d'oeuvres,cosmetic,contaminated,conspired,conning,cavern,carving,butting,boiled,blurry,babysit,ascension,aaaaah,wildly,whoopee,whiny,weiskopf,walkie,vultures,vacations,upfront,unresolved,tampering,stockholders,snaps,sleepwalking,shrunk,sermon,seduction,scams,revolve,phenomenal,patrolling,paranormal,ounces,omigod,nightfall,lashing,innocents,infierno,incision,humming,haunts,gloss,gloating,frannie,fetal,feeny,entrapment,discomfort,detonator,dependable,concede,complication,commotion,commence,chulak,caucasian,casually,brainer,bolie,ballpark,anwar,analyzing,accommodations,youse,wring,wallowing,transgenics,thrive,tedious,stylish,strippers,sterile,squeezing,squeaky,sprained,solemn,snoring,shattering,shabby,seams,scrawny,revoked,residue,reeks,recite,ranting,quoting,predicament,plugs,pinpoint,petrified,pathological,passports,oughtta,nighter,navigate,kippie,intrigue,intentional,insufferable,hunky,how've,horrifying,hearty,hamptons,grazie,funerals,forks,fetched,excruciating,enjoyable,endanger,dumber,drying,diabolical,crossword,corry,comprehend,clipped,classmates,candlelight,brutally,brutality,boarded,bathrobe,authorize,assemble,aerobics,wholesome,whiff,vermin,trophies,trait,tragically,toying,testy,tasteful,stocked,spinach,sipping,sidetracked,scrubbing,scraping,sanctity,robberies,ridin,retribution,refrain,realities,radiant,protesting,projector,plutonium,payin,parting,o'reilly,nooooo,motherfucking,measly,manic,lalita,juggling,jerking,intro,inevitably,hypnosis,huddle,horrendous,hobbies,heartfelt,harlin,hairdresser,gonorrhea,fussing,furtwangler,fleeting,flawless,flashed,fetus,eulogy,distinctly,disrespectful,denies,crossbow,cregg,crabs,cowardly,contraction,contingency,confirming,condone,coffins,cleansing,cheesecake,certainty,cages,c'est,briefed,bravest,bosom,boils,binoculars,bachelorette,appetizer,ambushed,alerted,woozy,withhold,vulgar,utmost,unleashed,unholy,unhappiness,unconditional,typewriter,typed,twists,supermodel,subpoenaed,stringing,skeptical,schoolgirl,romantically,rocked,revoir,reopen,puncture,preach,polished,planetarium,penicillin,peacefully,nurturing,more'n,mmhmm,midgets,marklar,lodged,lifeline,jellyfish,infiltrate,hutch,horseback,heist,gents,frickin,freezes,forfeit,flakes,flair,fathered,eternally,epiphany,disgruntled,discouraged,delinquent,decipher,danvers,cubes,credible,coping,chills,cherished,catastrophe,bombshell,birthright,billionaire,ample,affections,admiration,abbotts,whatnot,watering,vinegar,unthinkable,unseen,unprepared,unorthodox,underhanded,uncool,timeless,thump,thermometer,theoretically,tapping,tagged,swung,stares,spiked,solves,smuggle,scarier,saucer,quitter,prudent,powdered,poked,pointers,peril,penetrate,penance,opium,nudge,nostrils,neurological,mockery,mobster,medically,loudly,insights,implicate,hypocritical,humanly,holiness,healthier,hammered,haldeman,gunman,gloom,freshly,francs,flunked,flawed,emptiness,drugging,dozer,derevko,deprive,deodorant,cryin,crocodile,coloring,colder,cognac,clocked,clippings,charades,chanting,certifiable,caterers,brute,brochures,botched,blinders,bitchin,banter,woken,ulcer,tread,thankfully,swine,swimsuit,swans,stressing,steaming,stamped,stabilize,squirm,snooze,shuffle,shredded,seafood,scratchy,savor,sadistic,rhetorical,revlon,realist,prosecuting,prophecies,polyester,petals,persuasion,paddles,o'leary,nuthin,neighbour,negroes,muster,meningitis,matron,lockers,letterman,legged,indictment,hypnotized,housekeeping,hopelessly,hallucinations,grader,goldilocks,girly,flask,envelopes,downside,doves,dissolve,discourage,disapprove,diabetic,deliveries,decorator,crossfire,criminally,containment,comrades,complimentary,chatter,catchy,cashier,cartel,caribou,cardiologist,brawl,booted,barbershop,aryan,angst,administer,zellie,wreak,whistles,vandalism,vamps,uterus,upstate,unstoppable,understudy,tristin,transcript,tranquilizer,toxins,tonsils,stempel,spotting,spectator,spatula,softer,snotty,slinging,showered,sexiest,sensual,sadder,rimbaud,restrain,resilient,remission,reinstate,rehash,recollection,rabies,popsicle,plausible,pediatric,patronizing,ostrich,ortolani,oooooh,omelette,mistrial,marseilles,loophole,laughin,kevvy,irritated,infidelity,hypothermia,horrific,groupie,grinding,graceful,goodspeed,gestures,frantic,extradition,echelon,disks,dawnie,dared,damsel,curled,collateral,collage,chant,calculating,bumping,bribes,boardwalk,blinds,blindly,bleeds,bickering,beasts,backside,avenge,apprehended,anguish,abusing,youthful,yells,yanking,whomever,when'd,vomiting,vengeful,unpacking,unfamiliar,undying,tumble,trolls,treacherous,tipping,tantrum,tanked,summons,straps,stomped,stinkin,stings,staked,squirrels,sprinkles,speculate,sorting,skinned,sicko,sicker,shootin,shatter,seeya,schnapps,s'posed,ronee,respectful,regroup,regretting,reeling,reckoned,ramifications,puddy,projections,preschool,plissken,platonic,permalash,outdone,outburst,mutants,mugging,misfortune,miserably,miraculously,medications,margaritas,manpower,lovemaking,logically,leeches,latrine,kneel,inflict,impostor,hypocrisy,hippies,heterosexual,heightened,hecuba,healer,gunned,grooming,groin,gooey,gloomy,frying,friendships,fredo,firepower,fathom,exhaustion,evils,endeavor,eggnog,dreaded,d'arcy,crotch,coughing,coronary,cookin,consummate,congrats,companionship,caved,caspar,bulletproof,brilliance,breakin,brash,blasting,aloud,airtight,advising,advertise,adultery,aches,wronged,upbeat,trillion,thingies,tending,tarts,surreal,specs,specialize,spade,shrew,shaping,selves,schoolwork,roomie,recuperating,rabid,quart,provocative,proudly,pretenses,prenatal,pharmaceuticals,pacing,overworked,originals,nicotine,murderous,mileage,mayonnaise,massages,losin,interrogated,injunction,impartial,homing,heartbreaker,hacks,glands,giver,fraizh,flips,flaunt,englishman,electrocuted,dusting,ducking,drifted,donating,cylon,crutches,crates,cowards,comfortably,chummy,chitchat,childbirth,businesswoman,brood,blatant,bethy,barring,bagged,awakened,asbestos,airplanes,worshipped,winnings,why're,visualize,unprotected,unleash,trays,thicker,therapists,takeoff,streisand,storeroom,stethoscope,stacked,spiteful,sneaks,snapping,slaughtered,slashed,simplest,silverware,shits,secluded,scruples,scrubs,scraps,ruptured,roaring,receptionist,recap,raditch,radiator,pushover,plastered,pharmacist,perverse,perpetrator,ornament,ointment,nineties,napping,nannies,mousse,moors,momentary,misunderstandings,manipulator,malfunction,laced,kivar,kickin,infuriating,impressionable,holdup,hires,hesitated,headphones,hammering,groundwork,grotesque,graces,gauze,gangsters,frivolous,freeing,fours,forwarding,ferrars,faulty,fantasizing,extracurricular,empathy,divorces,detonate,depraved,demeaning,deadlines,dalai,cursing,cufflink,crows,coupons,comforted,claustrophobic,casinos,camped,busboy,bluth,bennetts,baskets,attacker,aplastic,angrier,affectionate,zapped,wormhole,weaken,unrealistic,unravel,unimportant,unforgettable,twain,suspend,superbowl,stutter,stewardess,stepson,standin,spandex,souvenirs,sociopath,skeletons,shivering,sexier,selfishness,scrapbook,ritalin,ribbons,reunite,remarry,relaxation,rattling,rapist,psychosis,prepping,poses,pleasing,pisses,piling,persecuted,padded,operatives,negotiator,natty,menopause,mennihan,martimmys,loyalties,laynie,lando,justifies,intimately,inexperienced,impotent,immortality,horrors,hooky,hinges,heartbreaking,handcuffed,gypsies,guacamole,grovel,graziella,goggles,gestapo,fussy,ferragamo,feeble,eyesight,explosions,experimenting,enchanting,doubtful,dizziness,dismantle,detectors,deserving,defective,dangling,dancin,crumble,creamed,cramping,conceal,clockwork,chrissakes,chrissake,chopping,cabinets,brooding,bonfire,blurt,bloated,blackmailer,beforehand,bathed,bathe,barcode,banish,badges,babble,await,attentive,aroused,antibodies,animosity,ya'll,wrinkled,wonderland,willed,whisk,waltzing,waitressing,vigilant,upbringing,unselfish,uncles,trendy,trajectory,striped,stamina,stalled,staking,stacks,spoils,snuff,snooty,snide,shrinking,senora,secretaries,scoundrel,saline,salads,rundown,riddles,relapse,recommending,raspberry,plight,pecan,pantry,overslept,ornaments,niner,negligent,negligence,nailing,mucho,mouthed,monstrous,malpractice,lowly,loitering,logged,lingering,lettin,lattes,kamal,juror,jillefsky,jacked,irritate,intrusion,insatiable,infect,impromptu,icing,hmmmm,hefty,gasket,frightens,flapping,firstborn,faucet,estranged,envious,dopey,doesn,disposition,disposable,disappointments,dipped,dignified,deceit,dealership,deadbeat,curses,coven,counselors,concierge,clutches,casbah,callous,cahoots,brotherly,britches,brides,bethie,beige,autographed,attendants,attaboy,astonishing,appreciative,antibiotic,aneurysm,afterlife,affidavit,zoning,whats,whaddaya,vasectomy,unsuspecting,toula,topanga,tonio,toasted,tiring,terrorized,tenderness,tailing,sweats,suffocated,sucky,subconsciously,starvin,sprouts,spineless,sorrows,snowstorm,smirk,slicery,sledding,slander,simmer,signora,sigmund,seventies,sedate,scented,sandals,rollers,retraction,resigning,recuperate,receptive,racketeering,queasy,provoking,priors,prerogative,premed,pinched,pendant,outsiders,orbing,opportunist,olanov,neurologist,nanobot,mommies,molested,misread,mannered,laundromat,intercom,inspect,insanely,infatuation,indulgent,indiscretion,inconsiderate,hurrah,howling,herpes,hasta,harassed,hanukkah,groveling,groosalug,gander,galactica,futile,fridays,flier,fixes,exploiting,exorcism,evasive,endorse,emptied,dreary,dreamy,downloaded,dodged,doctored,disobeyed,disneyland,disable,dehydrated,contemplating,coconuts,cockroaches,clogged,chilling,chaperon,cameraman,bulbs,bucklands,bribing,brava,bracelets,bowels,bluepoint,appetizers,appendix,antics,anointed,analogy,almonds,yammering,winch,weirdness,wangler,vibrations,vendor,unmarked,unannounced,twerp,trespass,travesty,transfusion,trainee,towelie,tiresome,straightening,staggering,sonar,socializing,sinus,sinners,shambles,serene,scraped,scones,scepter,sarris,saberhagen,ridiculously,ridicule,rents,reconciled,radios,publicist,pubes,prune,prude,precrime,postponing,pluck,perish,peppermint,peeled,overdo,nutshell,nostalgic,mulan,mouthing,mistook,meddle,maybourne,martimmy,lobotomy,livelihood,lippman,likeness,kindest,kaffee,jocks,jerked,jeopardizing,jazzed,insured,inquisition,inhale,ingenious,holier,helmets,heirloom,heinous,haste,harmsway,hardship,hanky,gutters,gruesome,groping,goofing,godson,glare,finesse,figuratively,ferrie,endangerment,dreading,dozed,dorky,dmitri,divert,discredit,dialing,cufflinks,crutch,craps,corrupted,cocoon,cleavage,cannery,bystander,brushes,bruising,bribery,brainstorm,bolted,binge,ballistics,astute,arroway,adventurous,adoptive,addicts,addictive,yadda,whitelighters,wematanye,weeds,wedlock,wallets,vulnerability,vroom,vents,upped,unsettling,unharmed,trippin,trifle,tracing,tormenting,thats,syphilis,subtext,stickin,spices,sores,smacked,slumming,sinks,signore,shitting,shameful,shacked,septic,seedy,righteousness,relish,rectify,ravishing,quickest,phoebs,perverted,peeing,pedicure,pastrami,passionately,ozone,outnumbered,oregano,offender,nukes,nosed,nighty,nifty,mounties,motivate,moons,misinterpreted,mercenary,mentality,marsellus,lupus,lumbar,lovesick,lobsters,leaky,laundering,latch,jafar,instinctively,inspires,indoors,incarcerated,hundredth,handkerchief,gynecologist,guittierez,groundhog,grinning,goodbyes,geese,fullest,eyelashes,eyelash,enquirer,endlessly,elusive,disarm,detest,deluding,dangle,cotillion,corsage,conjugal,confessional,cones,commandment,coded,coals,chuckle,christmastime,cheeseburgers,chardonnay,celery,campfire,calming,burritos,brundle,broflovski,brighten,borderline,blinked,bling,beauties,bauers,battered,articulate,alienated,ahhhhh,agamemnon,accountants,y'see,wrongful,wrapper,workaholic,winnebago,whispered,warts,vacate,unworthy,unanswered,tonane,tolerated,throwin,throbbing,thrills,thorns,thereof,there've,tarot,sunscreen,stretcher,stereotype,soggy,sobbing,sizable,sightings,shucks,shrapnel,sever,senile,seaboard,scorned,saver,rebellious,rained,putty,prenup,pores,pinching,pertinent,peeping,paints,ovulating,opposites,occult,nutcracker,nutcase,newsstand,newfound,mocked,midterms,marshmallow,marbury,maclaren,leans,krudski,knowingly,keycard,junkies,juilliard,jolinar,irritable,invaluable,inuit,intoxicating,instruct,insolent,inexcusable,incubator,illustrious,hunsecker,houseguest,homosexuals,homeroom,hernia,harming,handgun,hallways,hallucination,gunshots,groupies,groggy,goiter,gingerbread,giggling,frigging,fledged,fedex,fairies,exchanging,exaggeration,esteemed,enlist,drags,dispense,disloyal,disconnect,desks,dentists,delacroix,degenerate,daydreaming,cushions,cuddly,corroborate,complexion,compensated,cobbler,closeness,chilled,checkmate,channing,carousel,calms,bylaws,benefactor,ballgame,baiting,backstabbing,artifact,airspace,adversary,actin,accuses,accelerant,abundantly,abstinence,zissou,zandt,yapping,witchy,willows,whadaya,vilandra,veiled,undress,undivided,underestimating,ultimatums,twirl,truckload,tremble,toasting,tingling,tents,tempered,sulking,stunk,sponges,spills,softly,snipers,scourge,rooftop,riana,revolting,revisit,refreshments,redecorating,recapture,raysy,pretense,prejudiced,precogs,pouting,poofs,pimple,piles,pediatrician,padre,packets,paces,orvelle,oblivious,objectivity,nighttime,nervosa,mexicans,meurice,melts,matchmaker,maeby,lugosi,lipnik,leprechaun,kissy,kafka,introductions,intestines,inspirational,insightful,inseparable,injections,inadvertently,hussy,huckabees,hittin,hemorrhaging,headin,haystack,hallowed,grudges,granilith,grandkids,grading,gracefully,godsend,gobbles,fragrance,fliers,finchley,farts,eyewitnesses,expendable,existential,dorms,delaying,degrading,deduction,darlings,danes,cylons,counsellor,contraire,consciously,conjuring,congratulating,cokes,buffay,brooch,bitching,bistro,bijou,bewitched,benevolent,bends,bearings,barren,aptitude,amish,amazes,abomination,worldly,whispers,whadda,wayward,wailing,vanishing,upscale,untouchable,unspoken,uncontrollable,unavoidable,unattended,trite,transvestite,toupee,timid,timers,terrorizing,swana,stumped,strolling,storybook,storming,stomachs,stoked,stationery,springtime,spontaneity,spits,spins,soaps,sentiments,scramble,scone,rooftops,retract,reflexes,rawdon,ragged,quirky,quantico,psychologically,prodigal,pounce,potty,pleasantries,pints,petting,perceive,onstage,notwithstanding,nibble,newmans,neutralize,mutilated,millionaires,mayflower,masquerade,mangy,macreedy,lunatics,lovable,locating,limping,lasagna,kwang,keepers,juvie,jaded,ironing,intuitive,intensely,insure,incantation,hysteria,hypnotize,humping,happenin,griet,grasping,glorified,ganging,g'night,focker,flunking,flimsy,flaunting,fixated,fitzwallace,fainting,eyebrow,exonerated,ether,electrician,egotistical,earthly,dusted,dignify,detonation,debrief,dazzling,dan'l,damnedest,daisies,crushes,crucify,contraband,confronting,collapsing,cocked,clicks,cliche,circled,chandelier,carburetor,callers,broads,breathes,bloodshed,blindsided,blabbing,bialystock,bashing,ballerina,aviva,arteries,anomaly,airstrip,agonizing,adjourn,aaaaa,yearning,wrecker,witnessing,whence,warhead,unsure,unheard,unfreeze,unfold,unbalanced,ugliest,troublemaker,toddler,tiptoe,threesome,thirties,thermostat,swipe,surgically,subtlety,stung,stumbling,stubs,stride,strangling,sprayed,socket,smuggled,showering,shhhhh,sabotaging,rumson,rounding,risotto,repairman,rehearsed,ratty,ragging,radiology,racquetball,racking,quieter,quicksand,prowl,prompt,premeditated,prematurely,prancing,porcupine,plated,pinocchio,peeked,peddle,panting,overweight,overrun,outing,outgrown,obsess,nursed,nodding,negativity,negatives,musketeers,mugger,motorcade,merrily,matured,masquerading,marvellous,maniacs,lovey,louse,linger,lilies,lawful,kudos,knuckle,juices,judgments,itches,intolerable,intermission,inept,incarceration,implication,imaginative,huckleberry,holster,heartburn,gunna,groomed,graciously,fulfillment,fugitives,forsaking,forgives,foreseeable,flavors,flares,fixation,fickle,fantasize,famished,fades,expiration,exclamation,erasing,eiffel,eerie,earful,duped,dulles,dissing,dissect,dispenser,dilated,detergent,desdemona,debriefing,damper,curing,crispina,crackpot,courting,cordial,conflicted,comprehension,commie,cleanup,chiropractor,charmer,chariot,cauldron,catatonic,bullied,buckets,brilliantly,breathed,booths,boardroom,blowout,blindness,blazing,biologically,bibles,biased,beseech,barbaric,balraj,audacity,anticipating,alcoholics,airhead,agendas,admittedly,absolution,youre,yippee,wittlesey,withheld,willful,whammy,weakest,washes,virtuous,videotapes,vials,unplugged,unpacked,unfairly,turbulence,tumbling,tricking,tremendously,traitors,torches,tinga,thyroid,teased,tawdry,taker,sympathies,swiped,sundaes,suave,strut,stepdad,spewing,spasm,socialize,slither,simulator,shutters,shrewd,shocks,semantics,schizophrenic,scans,savages,rya'c,runny,ruckus,royally,roadblocks,rewriting,revoke,repent,redecorate,recovers,recourse,ratched,ramali,racquet,quince,quiche,puppeteer,puking,puffed,problemo,praises,pouch,postcards,pooped,poised,piled,phoney,phobia,patching,parenthood,pardner,oozing,ohhhhh,numbing,nostril,nosey,neatly,nappa,nameless,mortuary,moronic,modesty,midwife,mcclane,matuka,maitre,lumps,lucid,loosened,loins,lawnmower,lamotta,kroehner,jinxy,jessep,jamming,jailhouse,jacking,intruders,inhuman,infatuated,indigestion,implore,implanted,hormonal,hoboken,hillbilly,heartwarming,headway,hatched,hartmans,harping,grapevine,gnome,forties,flyin,flirted,fingernail,exhilarating,enjoyment,embark,dumper,dubious,drell,docking,disillusioned,dishonor,disbarred,dicey,custodial,counterproductive,corned,cords,contemplate,concur,conceivable,cobblepot,chickened,checkout,carpe,cap'n,campers,buyin,bullies,braid,boxed,bouncy,blueberries,blubbering,bloodstream,bigamy,beeped,bearable,autographs,alarming,wretch,wimps,widower,whirlwind,whirl,warms,vandelay,unveiling,undoing,unbecoming,turnaround,touche,togetherness,tickles,ticker,teensy,taunt,sweethearts,stitched,standpoint,staffers,spotless,soothe,smothered,sickening,shouted,shepherds,shawl,seriousness,schooled,schoolboy,s'mores,roped,reminders,raggedy,preemptive,plucked,pheromones,particulars,pardoned,overpriced,overbearing,outrun,ohmigod,nosing,nicked,neanderthal,mosquitoes,mortified,milky,messin,mecha,markinson,marivellas,mannequin,manderley,madder,macready,lookie,locusts,lifetimes,lanna,lakhi,kholi,impersonate,hyperdrive,horrid,hopin,hogging,hearsay,harpy,harboring,hairdo,hafta,grasshopper,gobble,gatehouse,foosball,floozy,fished,firewood,finalize,felons,euphemism,entourage,elitist,elegance,drokken,drier,dredge,dossier,diseased,diarrhea,diagnose,despised,defuse,d'amour,contesting,conserve,conscientious,conjured,collars,clogs,chenille,chatty,chamomile,casing,calculator,brittle,breached,blurted,birthing,bikinis,astounding,assaulting,aroma,appliance,antsy,amnio,alienating,aliases,adolescence,xerox,wrongs,workload,willona,whistling,werewolves,wallaby,unwelcome,unseemly,unplug,undermining,ugliness,tyranny,tuesdays,trumpets,transference,ticks,tangible,tagging,swallowing,superheroes,studs,strep,stowed,stomping,steffy,sprain,spouting,sponsoring,sneezing,smeared,slink,shakin,sewed,seatbelt,scariest,scammed,sanctimonious,roasting,rightly,retinal,rethinking,resented,reruns,remover,racks,purest,progressing,presidente,preeclampsia,postponement,portals,poppa,pliers,pinning,pelvic,pampered,padding,overjoyed,ooooo,one'll,octavius,nonono,nicknames,neurosurgeon,narrows,misled,mislead,mishap,milltown,milking,meticulous,mediocrity,meatballs,machete,lurch,layin,knockin,khruschev,jurors,jumpin,jugular,jeweler,intellectually,inquiries,indulging,indestructible,indebted,imitate,ignores,hyperventilating,hyenas,hurrying,hermano,hellish,heheh,harshly,handout,grunemann,glances,giveaway,getup,gerome,furthest,frosting,frail,forwarded,forceful,flavored,flammable,flaky,fingered,fatherly,ethic,embezzlement,duffel,dotted,distressed,disobey,disappearances,dinky,diminish,diaphragm,deuces,creme,courteous,comforts,coerced,clots,clarification,chunks,chickie,chases,chaperoning,cartons,caper,calves,caged,bustin,bulging,bringin,boomhauer,blowin,blindfolded,biscotti,ballplayer,bagging,auster,assurances,aschen,arraigned,anonymity,alters,albatross,agreeable,adoring,abduct,wolfi,weirded,watchers,washroom,warheads,vincennes,urgency,understandably,uncomplicated,uhhhh,twitching,treadmill,thermos,tenorman,tangle,talkative,swarm,surrendering,summoning,strive,stilts,stickers,squashed,spraying,sparring,soaring,snort,sneezed,slaps,skanky,singin,sidle,shreck,shortness,shorthand,sharper,shamed,sadist,rydell,rusik,roulette,resumes,respiration,recount,reacts,purgatory,princesses,presentable,ponytail,plotted,pinot,pigtails,phillippe,peddling,paroled,orbed,offends,o'hara,moonlit,minefield,metaphors,malignant,mainframe,magicks,maggots,maclaine,loathing,leper,leaps,leaping,lashed,larch,larceny,lapses,ladyship,juncture,jiffy,jakov,invoke,infantile,inadmissible,horoscope,hinting,hideaway,hesitating,heddy,heckles,hairline,gripe,gratifying,governess,goebbels,freddo,foresee,fascination,exemplary,executioner,etcetera,escorts,endearing,eaters,earplugs,draped,disrupting,disagrees,dimes,devastate,detain,depositions,delicacy,darklighter,cynicism,cyanide,cutters,cronus,continuance,conquering,confiding,compartments,combing,cofell,clingy,cleanse,christmases,cheered,cheekbones,buttle,burdened,bruenell,broomstick,brained,bozos,bontecou,bluntman,blazes,blameless,bizarro,bellboy,beaucoup,barkeep,awaken,astray,assailant,appease,aphrodisiac,alleys,yesss,wrecks,woodpecker,wondrous,wimpy,willpower,wheeling,weepy,waxing,waive,videotaped,veritable,untouched,unlisted,unfounded,unforeseen,twinge,triggers,traipsing,toxin,tombstone,thumping,therein,testicles,telephones,tarmac,talby,tackled,swirling,suicides,suckered,subtitles,sturdy,strangler,stockbroker,stitching,steered,standup,squeal,sprinkler,spontaneously,splendor,spiking,spender,snipe,snagged,skimming,siddown,showroom,shovels,shotguns,shoelaces,shitload,shellfish,sharpest,shadowy,seizing,scrounge,scapegoat,sayonara,saddled,rummaging,roomful,renounce,reconsidered,recharge,realistically,radioed,quirks,quadrant,punctual,practising,pours,poolhouse,poltergeist,pocketbook,plainly,picnics,pesto,pawing,passageway,partied,oneself,numero,nostalgia,nitwit,neuro,mixer,meanest,mcbeal,matinee,margate,marce,manipulations,manhunt,manger,magicians,loafers,litvack,lightheaded,lifeguard,lawns,laughingstock,ingested,indignation,inconceivable,imposition,impersonal,imbecile,huddled,housewarming,horizons,homicides,hiccups,hearse,hardened,gushing,gushie,greased,goddamit,freelancer,forging,fondue,flustered,flung,flinch,flicker,fixin,festivus,fertilizer,farted,faggots,exonerate,evict,enormously,encrypted,emdash,embracing,duress,dupres,dowser,doormat,disfigured,disciplined,dibbs,depository,deathbed,dazzled,cuttin,cures,crowding,crepe,crammed,copycat,contradict,confidant,condemning,conceited,commute,comatose,clapping,circumference,chuppah,chore,choksondik,chestnuts,briault,bottomless,bonnet,blokes,berluti,beret,beggars,bankroll,bania,athos,arsenic,apperantly,ahhhhhh,afloat,accents,zipped,zeros,zeroes,zamir,yuppie,youngsters,yorkers,wisest,wipes,wield,whyn't,weirdos,wednesdays,vicksburg,upchuck,untraceable,unsupervised,unpleasantness,unhook,unconscionable,uncalled,trappings,tragedies,townie,thurgood,things'll,thine,tetanus,terrorize,temptations,tanning,tampons,swarming,straitjacket,steroid,startling,starry,squander,speculating,sollozzo,sneaked,slugs,skedaddle,sinker,silky,shortcomings,sellin,seasoned,scrubbed,screwup,scrapes,scarves,sandbox,salesmen,rooming,romances,revere,reproach,reprieve,rearranging,ravine,rationalize,raffle,punchy,psychobabble,provocation,profoundly,prescriptions,preferable,polishing,poached,pledges,pirelli,perverts,oversized,overdressed,outdid,nuptials,nefarious,mouthpiece,motels,mopping,mongrel,missin,metaphorically,mertin,memos,melodrama,melancholy,measles,meaner,mantel,maneuvering,mailroom,luring,listenin,lifeless,licks,levon,legwork,kneecaps,kippur,kiddie,kaput,justifiable,insistent,insidious,innuendo,innit,indecent,imaginable,horseshit,hemorrhoid,hella,healthiest,haywire,hamsters,hairbrush,grouchy,grisly,gratuitous,glutton,glimmer,gibberish,ghastly,gentler,generously,geeky,fuhrer,fronting,foolin,faxes,faceless,extinguisher,expel,etched,endangering,ducked,dodgeball,dives,dislocated,discrepancy,devour,derail,dementia,daycare,cynic,crumbling,cowardice,covet,cornwallis,corkscrew,cookbook,commandments,coincidental,cobwebs,clouded,clogging,clicking,clasp,chopsticks,chefs,chaps,cashing,carat,calmer,brazen,brainwashing,bradys,bowing,boned,bloodsucking,bleachers,bleached,bedpan,bearded,barrenger,bachelors,awwww,assures,assigning,asparagus,apprehend,anecdote,amoral,aggravation,afoot,acquaintances,accommodating,yakking,worshipping,wladek,willya,willies,wigged,whoosh,whisked,watered,warpath,volts,violates,valuables,uphill,unwise,untimely,unsavory,unresponsive,unpunished,unexplained,tubby,trolling,toxicology,tormented,toothache,tingly,timmiihh,thursdays,thoreau,terrifies,temperamental,telegrams,talkie,takers,symbiote,swirl,suffocate,stupider,strapping,steckler,springing,someway,sleepyhead,sledgehammer,slant,slams,showgirl,shoveling,shmoopy,sharkbait,shan't,scrambling,schematics,sandeman,sabbatical,rummy,reykjavik,revert,responsive,rescheduled,requisition,relinquish,rejoice,reckoning,recant,rebadow,reassurance,rattlesnake,ramble,primed,pricey,prance,pothole,pocus,persist,perpetrated,pekar,peeling,pastime,parmesan,pacemaker,overdrive,ominous,observant,nothings,noooooo,nonexistent,nodded,nieces,neglecting,nauseating,mutated,musket,mumbling,mowing,mouthful,mooseport,monologue,mistrust,meetin,masseuse,mantini,mailer,madre,lowlifes,locksmith,livid,liven,limos,liberating,lhasa,leniency,leering,laughable,lashes,lasagne,laceration,korben,katan,kalen,jittery,jammies,irreplaceable,intubate,intolerant,inhaler,inhaled,indifferent,indifference,impound,impolite,humbly,heroics,heigh,guillotine,guesthouse,grounding,grips,gossiping,goatee,gnomes,gellar,frutt,frobisher,freudian,foolishness,flagged,femme,fatso,fatherhood,fantasized,fairest,faintest,eyelids,extravagant,extraterrestrial,extraordinarily,escalator,elevate,drivel,dissed,dismal,disarray,dinnertime,devastation,dermatologist,delicately,defrost,debutante,debacle,damone,dainty,cuvee,culpa,crucified,creeped,crayons,courtship,convene,congresswoman,concocted,compromises,comprende,comma,coleslaw,clothed,clinically,chickenshit,checkin,cesspool,caskets,calzone,brothel,boomerang,bodega,blasphemy,bitsy,bicentennial,berlini,beatin,beards,barbas,barbarians,backpacking,arrhythmia,arousing,arbitrator,antagonize,angling,anesthetic,altercation,aggressor,adversity,acathla,aaahhh,wreaking,workup,wonderin,wither,wielding,what'm,what'cha,waxed,vibrating,veterinarian,venting,vasey,valor,validate,upholstery,untied,unscathed,uninterrupted,unforgiving,undies,uncut,twinkies,tucking,treatable,treasured,tranquility,townspeople,torso,tomei,tipsy,tinsel,tidings,thirtieth,tantrums,tamper,talky,swayed,swapping,suitor,stylist,stirs,standoff,sprinklers,sparkly,snobby,snatcher,smoother,sleepin,shrug,shoebox,sheesh,shackles,setbacks,sedatives,screeching,scorched,scanned,satyr,roadblock,riverbank,ridiculed,resentful,repellent,recreate,reconvene,rebuttal,realmedia,quizzes,questionnaire,punctured,pucker,prolong,professionalism,pleasantly,pigsty,penniless,paychecks,patiently,parading,overactive,ovaries,orderlies,oracles,oiled,offending,nudie,neonatal,neighborly,moops,moonlighting,mobilize,mmmmmm,milkshake,menial,meats,mayan,maxed,mangled,magua,lunacy,luckier,liters,lansbury,kooky,knowin,jeopardized,inkling,inhalation,inflated,infecting,incense,inbound,impractical,impenetrable,idealistic,i'mma,hypocrites,hurtin,humbled,hologram,hokey,hocus,hitchhiking,hemorrhoids,headhunter,hassled,harts,hardworking,haircuts,hacksaw,genitals,gazillion,gammy,gamesphere,fugue,footwear,folly,flashlights,fives,filet,extenuating,estrogen,entails,embezzled,eloquent,egomaniac,ducts,drowsy,drones,doree,donovon,disguises,diggin,deserting,depriving,defying,deductible,decorum,decked,daylights,daybreak,dashboard,damnation,cuddling,crunching,crickets,crazies,councilman,coughed,conundrum,complimented,cohaagen,clutching,clued,clader,cheques,checkpoint,chats,channeling,ceases,carasco,capisce,cantaloupe,cancelling,campsite,burglars,breakfasts,bra'tac,blueprint,bleedin,blabbed,beneficiary,basing,avert,atone,arlyn,approves,apothecary,antiseptic,aleikuum,advisement,zadir,wobbly,withnail,whattaya,whacking,wedged,wanders,vaginal,unimaginable,undeniable,unconditionally,uncharted,unbridled,tweezers,tvmegasite,trumped,triumphant,trimming,treading,tranquilizers,toontown,thunk,suture,suppressing,strays,stonewall,stogie,stepdaughter,stace,squint,spouses,splashed,speakin,sounder,sorrier,sorrel,sombrero,solemnly,softened,snobs,snippy,snare,smoothing,slump,slimeball,slaving,silently,shiller,shakedown,sensations,scrying,scrumptious,screamin,saucy,santoses,roundup,roughed,rosary,robechaux,retrospect,rescind,reprehensible,repel,remodeling,reconsidering,reciprocate,railroaded,psychics,promos,prob'ly,pristine,printout,priestess,prenuptial,precedes,pouty,phoning,peppy,pariah,parched,panes,overloaded,overdoing,nymphs,nother,notebooks,nearing,nearer,monstrosity,milady,mieke,mephesto,medicated,marshals,manilow,mammogram,m'lady,lotsa,loopy,lesion,lenient,learner,laszlo,kross,kinks,jinxed,involuntary,insubordination,ingrate,inflatable,incarnate,inane,hypoglycemia,huntin,humongous,hoodlum,honking,hemorrhage,helpin,hathor,hatching,grotto,grandmama,gorillas,godless,girlish,ghouls,gershwin,frosted,flutter,flagpole,fetching,fatter,faithfully,exert,evasion,escalate,enticing,enchantress,elopement,drills,downtime,downloading,dorks,doorways,divulge,dissociative,disgraceful,disconcerting,deteriorate,destinies,depressive,dented,denim,decruz,decidedly,deactivate,daydreams,curls,culprit,cruelest,crippling,cranberries,corvis,copped,commend,coastguard,cloning,cirque,churning,chock,chivalry,catalogues,cartwheels,carols,canister,buttered,bundt,buljanoff,bubbling,brokers,broaden,brimstone,brainless,bores,badmouthing,autopilot,ascertain,aorta,ampata,allenby,accosted,absolve,aborted,aaagh,aaaaaah,yonder,yellin,wyndham,wrongdoing,woodsboro,wigging,wasteland,warranty,waltzed,walnuts,vividly,veggie,unnecessarily,unloaded,unicorns,understated,unclean,umbrellas,twirling,turpentine,tupperware,triage,treehouse,tidbit,tickled,threes,thousandth,thingie,terminally,teething,tassel,talkies,swoon,switchboard,swerved,suspiciously,subsequentlyne,subscribe,strudel,stroking,strictest,stensland,starin,stannart,squirming,squealing,sorely,softie,snookums,sniveling,smidge,sloth,skulking,simian,sightseeing,siamese,shudder,shoppers,sharpen,shannen,semtex,secondhand,seance,scowl,scorn,safekeeping,russe,rummage,roshman,roomies,roaches,rinds,retrace,retires,resuscitate,rerun,reputations,rekall,refreshment,reenactment,recluse,ravioli,raves,raking,purses,punishable,punchline,puked,prosky,previews,poughkeepsie,poppins,polluted,placenta,pissy,petulant,perseverance,pears,pawns,pastries,partake,panky,palate,overzealous,orchids,obstructing,objectively,obituaries,obedient,nothingness,musty,motherly,mooning,momentous,mistaking,minutemen,milos,microchip,meself,merciless,menelaus,mazel,masturbate,mahogany,lysistrata,lillienfield,likable,liberate,leveled,letdown,larynx,lardass,lainey,lagged,klorel,kidnappings,keyed,karmic,jeebies,irate,invulnerable,intrusive,insemination,inquire,injecting,informative,informants,impure,impasse,imbalance,illiterate,hurled,hunts,hematoma,headstrong,handmade,handiwork,growling,gorky,getcha,gesundheit,gazing,galley,foolishly,fondness,floris,ferocious,feathered,fateful,fancies,fakes,faker,expire,ever'body,essentials,eskimos,enlightening,enchilada,emissary,embolism,elsinore,ecklie,drenched,drazi,doped,dogging,doable,dislikes,dishonesty,disengage,discouraging,derailed,deformed,deflect,defer,deactivated,crips,constellations,congressmen,complimenting,clubbing,clawing,chromium,chimes,chews,cheatin,chaste,cellblock,caving,catered,catacombs,calamari,bucking,brulee,brits,brisk,breezes,bounces,boudoir,binks,better'n,bellied,behrani,behaves,bedding,balmy,badmouth,backers,avenging,aromatherapy,armpit,armoire,anythin,anonymously,anniversaries,aftershave,affliction,adrift,admissible,adieu,acquittal,yucky,yearn,whitter,whirlpool,wendigo,watchdog,wannabes,wakey,vomited,voicemail,valedictorian,uttered,unwed,unrequited,unnoticed,unnerving,unkind,unjust,uniformed,unconfirmed,unadulterated,unaccounted,uglier,turnoff,trampled,tramell,toads,timbuktu,throwback,thimble,tasteless,tarantula,tamale,takeovers,swish,supposing,streaking,stargher,stanzi,stabs,squeamish,splattered,spiritually,spilt,speciality,smacking,skywire,skips,skaara,simpatico,shredding,showin,shortcuts,shite,shielding,shamelessly,serafine,sentimentality,seasick,schemer,scandalous,sainted,riedenschneider,rhyming,revel,retractor,retards,resurrect,remiss,reminiscing,remanded,reiben,regains,refuel,refresher,redoing,redheaded,reassured,rearranged,rapport,qumar,prowling,prejudices,precarious,powwow,pondering,plunger,plunged,pleasantville,playpen,phlegm,perfected,pancreas,paley,ovary,outbursts,oppressed,ooohhh,omoroca,offed,o'toole,nurture,nursemaid,nosebleed,necktie,muttering,munchies,mucking,mogul,mitosis,misdemeanor,miscarried,millionth,migraines,midler,manicurist,mandelbaum,manageable,malfunctioned,magnanimous,loudmouth,longed,lifestyles,liddy,lickety,leprechauns,komako,klute,kennel,justifying,irreversible,inventing,intergalactic,insinuate,inquiring,ingenuity,inconclusive,incessant,improv,impersonation,hyena,humperdinck,hubba,housework,hoffa,hither,hissy,hippy,hijacked,heparin,hellooo,hearth,hassles,hairstyle,hahahaha,hadda,guys'll,gutted,gulls,gritty,grievous,graft,gossamer,gooder,gambled,gadgets,fundamentals,frustrations,frolicking,frock,frilly,foreseen,footloose,fondly,flirtation,flinched,flatten,farthest,exposer,evading,escrow,empathize,embryos,embodiment,ellsberg,ebola,dulcinea,dreamin,drawbacks,doting,doose,doofy,disturbs,disorderly,disgusts,detox,denominator,demeanor,deliriously,decode,debauchery,croissant,cravings,cranked,coworkers,councilor,confuses,confiscate,confines,conduit,compress,combed,clouding,clamps,cinch,chinnery,celebratory,catalogs,carpenters,carnal,canin,bundys,bulldozer,buggers,bueller,brainy,booming,bookstores,bloodbath,bittersweet,bellhop,beeping,beanstalk,beady,baudelaire,bartenders,bargains,averted,armadillo,appreciating,appraised,antlers,aloof,allowances,alleyway,affleck,abject,zilch,youore,xanax,wrenching,wouldn,witted,wicca,whorehouse,whooo,whips,vouchers,victimized,vicodin,untested,unsolicited,unfocused,unfettered,unfeeling,unexplainable,understaffed,underbelly,tutorial,tryst,trampoline,towering,tirade,thieving,thang,swimmin,swayzak,suspecting,superstitions,stubbornness,streamers,strattman,stonewalling,stiffs,stacking,spout,splice,sonrisa,smarmy,slows,slicing,sisterly,shrill,shined,seeming,sedley,seatbelts,scour,scold,schoolyard,scarring,salieri,rustling,roxbury,rewire,revved,retriever,reputable,remodel,reins,reincarnation,rance,rafters,rackets,quail,pumbaa,proclaim,probing,privates,pried,prewedding,premeditation,posturing,posterity,pleasurable,pizzeria,pimps,penmanship,penchant,pelvis,overturn,overstepped,overcoat,ovens,outsmart,outed,ooohh,oncologist,omission,offhand,odour,nyazian,notarized,nobody'll,nightie,navel,nabbed,mystique,mover,mortician,morose,moratorium,mockingbird,mobsters,mingling,methinks,messengered,merde,masochist,martouf,martians,marinara,manray,majorly,magnifying,mackerel,lurid,lugging,lonnegan,loathsome,llantano,liberace,leprosy,latinos,lanterns,lamest,laferette,kraut,intestine,innocencia,inhibitions,ineffectual,indisposed,incurable,inconvenienced,inanimate,improbable,implode,hydrant,hustling,hustled,huevos,how'm,hooey,hoods,honcho,hinge,hijack,heimlich,hamunaptra,haladki,haiku,haggle,gutsy,grunting,grueling,gribbs,greevy,grandstanding,godparents,glows,glistening,gimmick,gaping,fraiser,formalities,foreigner,folders,foggy,fitty,fiends,fe'nos,favours,eyeing,extort,expedite,escalating,epinephrine,entitles,entice,eminence,eights,earthlings,eagerly,dunville,dugout,doublemeat,doling,dispensing,dispatcher,discoloration,diners,diddly,dictates,diazepam,derogatory,delights,defies,decoder,dealio,danson,cutthroat,crumbles,croissants,crematorium,craftsmanship,could'a,cordless,cools,conked,confine,concealing,complicates,communique,cockamamie,coasters,clobbered,clipping,clipboard,clemenza,cleanser,circumcision,chanukah,certainaly,cellmate,cancels,cadmium,buzzed,bumstead,bucko,browsing,broth,braver,boggling,bobbing,blurred,birkhead,benet,belvedere,bellies,begrudge,beckworth,banky,baldness,baggy,babysitters,aversion,astonished,assorted,appetites,angina,amiss,ambulances,alibis,airway,admires,adhesive,yoyou,xxxxxx,wreaked,wracking,woooo,wooing,wised,wilshire,wedgie,waging,violets,vincey,uplifting,untrustworthy,unmitigated,uneventful,undressing,underprivileged,unburden,umbilical,tweaking,turquoise,treachery,tosses,torching,toothpick,toasts,thickens,tereza,tenacious,teldar,taint,swill,sweatin,subtly,subdural,streep,stopwatch,stockholder,stillwater,stalkers,squished,squeegee,splinters,spliced,splat,spied,spackle,sophistication,snapshots,smite,sluggish,slithered,skeeters,sidewalks,sickly,shrugs,shrubbery,shrieking,shitless,settin,sentinels,selfishly,scarcely,sangria,sanctum,sahjhan,rustle,roving,rousing,rosomorf,riddled,responsibly,renoir,remoray,remedial,refundable,redirect,recheck,ravenwood,rationalizing,ramus,ramelle,quivering,pyjamas,psychos,provocations,prouder,protestors,prodded,proctologist,primordial,pricks,prickly,precedents,pentangeli,pathetically,parka,parakeet,panicky,overthruster,outsmarted,orthopedic,oncoming,offing,nutritious,nuthouse,nourishment,nibbling,newlywed,narcissist,mutilation,mundane,mummies,mumble,mowed,morvern,mortem,mopes,molasses,misplace,miscommunication,miney,midlife,menacing,memorizing,massaging,masking,magnets,luxuries,lounging,lothario,liposuction,lidocaine,libbets,levitate,leeway,launcelot,larek,lackeys,kumbaya,kryptonite,knapsack,keyhole,katarangura,juiced,jakey,ironclad,invoice,intertwined,interlude,interferes,injure,infernal,indeedy,incur,incorrigible,incantations,impediment,igloo,hysterectomy,hounded,hollering,hindsight,heebie,havesham,hasenfuss,hankering,hangers,hakuna,gutless,gusto,grubbing,grrrr,grazed,gratification,grandeur,gorak,godammit,gnawing,glanced,frostbite,frees,frazzled,fraulein,fraternizing,fortuneteller,formaldehyde,followup,foggiest,flunky,flickering,firecrackers,figger,fetuses,fates,eyeliner,extremities,extradited,expires,exceedingly,evaporate,erupt,epileptic,entrails,emporium,egregious,eggshells,easing,duwayne,droll,dreyfuss,dovey,doubly,doozy,donkeys,donde,distrust,distressing,disintegrate,discreetly,decapitated,dealin,deader,dashed,darkroom,dares,daddies,dabble,cushy,cupcakes,cuffed,croupier,croak,crapped,coursing,coolers,contaminate,consummated,construed,condos,concoction,compulsion,commish,coercion,clemency,clairvoyant,circulate,chesterton,checkered,charlatan,chaperones,categorically,cataracts,carano,capsules,capitalize,burdon,bullshitting,brewed,breathless,breasted,brainstorming,bossing,borealis,bonsoir,bobka,boast,blimp,bleep,bleeder,blackouts,bisque,billboards,beatings,bayberry,bashed,bamboozled,balding,baklava,baffled,backfires,babak,awkwardness,attest,attachments,apologizes,anyhoo,antiquated,alcante,advisable,aahhh,aaahh,zatarc,yearbooks,wuddya,wringing,womanhood,witless,winging,whatsa,wetting,waterproof,wastin,vogelman,vocation,vindicated,vigilance,vicariously,venza,vacuuming,utensils,uplink,unveil,unloved,unloading,uninhibited,unattached,tweaked,turnips,trinkets,toughen,toting,topside,terrors,terrify,technologically,tarnish,tagliati,szpilman,surly,supple,summation,suckin,stepmom,squeaking,splashmore,souffle,solitaire,solicitation,solarium,smokers,slugged,slobbering,skylight,skimpy,sinuses,silenced,sideburns,shrinkage,shoddy,shhhhhh,shelled,shareef,shangri,seuss,serenade,scuffle,scoff,scanners,sauerkraut,sardines,sarcophagus,salvy,rusted,russells,rowboat,rolfsky,ringside,respectability,reparations,renegotiate,reminisce,reimburse,regimen,raincoat,quibble,puzzled,purposefully,pubic,proofing,prescribing,prelim,poisons,poaching,personalized,personable,peroxide,pentonville,payphone,payoffs,paleontology,overflowing,oompa,oddest,objecting,o'hare,o'daniel,notches,nobody'd,nightstand,neutralized,nervousness,nerdy,needlessly,naquadah,nappy,nantucket,nambla,mountaineer,motherfuckin,morrie,monopolizing,mohel,mistreated,misreading,misbehave,miramax,minivan,milligram,milkshakes,metamorphosis,medics,mattresses,mathesar,matchbook,matata,marys,malucci,magilla,lymphoma,lowers,lordy,linens,lindenmeyer,limelight,leapt,laxative,lather,lapel,lamppost,laguardia,kindling,kegger,kawalsky,juries,jokin,jesminder,interning,innermost,injun,infallible,industrious,indulgence,incinerator,impossibility,impart,illuminate,iguanas,hypnotic,hyped,hospitable,hoses,homemaker,hirschmuller,helpers,headset,guardianship,guapo,grubby,granola,granddaddy,goren,goblet,gluttony,globes,giorno,getter,geritol,gassed,gaggle,foxhole,fouled,foretold,floorboards,flippers,flaked,fireflies,feedings,fashionably,farragut,fallback,facials,exterminate,excites,everything'll,evenin,ethically,ensue,enema,empath,eluded,eloquently,eject,edema,dumpling,droppings,dolled,distasteful,disputing,displeasure,disdain,deterrent,dehydration,defied,decomposing,dawned,dailies,custodian,crusts,crucifix,crowning,crier,crept,craze,crawls,couldn,correcting,corkmaster,copperfield,cooties,contraption,consumes,conspire,consenting,consented,conquers,congeniality,complains,communicator,commendable,collide,coladas,colada,clout,clooney,classifieds,clammy,civility,cirrhosis,chink,catskills,carvers,carpool,carelessness,cardio,carbs,capades,butabi,busmalis,burping,burdens,bunks,buncha,bulldozers,browse,brockovich,breakthroughs,bravado,boogety,blossoms,blooming,bloodsucker,blight,betterton,betrayer,belittle,beeps,bawling,barts,bartending,bankbooks,babish,atropine,assertive,armbrust,anyanka,annoyance,anemic,anago,airwaves,aimlessly,aaargh,aaand,yoghurt,writhing,workable,winking,winded,widen,whooping,whiter,whatya,wazoo,voila,virile,vests,vestibule,versed,vanishes,urkel,uproot,unwarranted,unscheduled,unparalleled,undergrad,tweedle,turtleneck,turban,trickery,transponder,toyed,townhouse,thyself,thunderstorm,thinning,thawed,tether,technicalities,tau'ri,tarnished,taffeta,tacked,systolic,swerve,sweepstakes,swabs,suspenders,superwoman,sunsets,succulent,subpoenas,stumper,stosh,stomachache,stewed,steppin,stepatech,stateside,spicoli,sparing,soulless,sonnets,sockets,snatching,smothering,slush,sloman,slashing,sitters,simpleton,sighs,sidra,sickens,shunned,shrunken,showbiz,shopped,shimmering,shagging,semblance,segue,sedation,scuzzlebutt,scumbags,screwin,scoundrels,scarsdale,scabs,saucers,saintly,saddened,runaways,runaround,rheya,resenting,rehashing,rehabilitated,regrettable,refreshed,redial,reconnecting,ravenous,raping,rafting,quandary,pylea,putrid,puffing,psychopathic,prunes,probate,prayin,pomegranate,plummeting,planing,plagues,pinata,pithy,perversion,personals,perched,peeps,peckish,pavarotti,pajama,packin,pacifier,overstepping,okama,obstetrician,nutso,nuance,normalcy,nonnegotiable,nomak,ninny,nines,nicey,newsflash,neutered,nether,negligee,necrosis,navigating,narcissistic,mylie,muses,momento,moisturizer,moderation,misinformed,misconception,minnifield,mikkos,methodical,mebbe,meager,maybes,matchmaking,masry,markovic,malakai,luzhin,lusting,lumberjack,loopholes,loaning,lightening,leotard,launder,lamaze,kubla,kneeling,kibosh,jumpsuit,joliet,jogger,janover,jakovasaurs,irreparable,innocently,inigo,infomercial,inexplicable,indispensable,impregnated,impossibly,imitating,hunches,hummus,houmfort,hothead,hostiles,hooves,hooligans,homos,homie,hisself,heyyy,hesitant,hangout,handsomest,handouts,hairless,gwennie,guzzling,guinevere,grungy,goading,glaring,gavel,gardino,gangrene,fruitful,friendlier,freckle,freakish,forthright,forearm,footnote,flops,fixer,firecracker,finito,figgered,fezzik,fastened,farfetched,fanciful,familiarize,faire,fahrenheit,extravaganza,exploratory,explanatory,everglades,eunuch,estas,escapade,erasers,emptying,embarassing,dweeb,dutiful,dumplings,dries,drafty,dollhouse,dismissing,disgraced,discrepancies,disbelief,disagreeing,digestion,didnt,deviled,deviated,demerol,delectable,decaying,decadent,dears,dateless,d'algout,cultivating,cryto,crumpled,crumbled,cronies,crease,craves,cozying,corduroy,congratulated,confidante,compressions,complicating,compadre,coerce,classier,chums,chumash,chivalrous,chinpoko,charred,chafing,celibacy,carted,carryin,carpeting,carotid,cannibals,candor,butterscotch,busts,busier,bullcrap,buggin,brookside,brodski,brassiere,brainwash,brainiac,botrelle,bonbon,boatload,blimey,blaring,blackness,bipartisan,bimbos,bigamist,biebe,biding,betrayals,bestow,bellerophon,bedpans,bassinet,basking,barzini,barnyard,barfed,backups,audited,asinine,asalaam,arouse,applejack,annoys,anchovies,ampule,alameida,aggravate,adage,accomplices,yokel,y'ever,wringer,witwer,withdrawals,windward,willfully,whorfin,whimsical,whimpering,weddin,weathered,warmest,wanton,volant,visceral,vindication,veggies,urinate,uproar,unwritten,unwrap,unsung,unsubstantiated,unspeakably,unscrupulous,unraveling,unquote,unqualified,unfulfilled,undetectable,underlined,unattainable,unappreciated,ummmm,ulcers,tylenol,tweak,turnin,tuatha,tropez,trellis,toppings,tootin,toodle,tinkering,thrives,thespis,theatrics,thatherton,tempers,tavington,tartar,tampon,swelled,sutures,sustenance,sunflowers,sublet,stubbins,strutting,strewn,stowaway,stoic,sternin,stabilizing,spiraling,spinster,speedometer,speakeasy,soooo,soiled,sneakin,smithereens,smelt,smacks,slaughterhouse,slacks,skids,sketching,skateboards,sizzling,sixes,sirree,simplistic,shouts,shorted,shoelace,sheeit,shards,shackled,sequestered,selmak,seduces,seclusion,seamstress,seabeas,scoops,scooped,scavenger,satch,s'more,rudeness,romancing,rioja,rifkin,rieper,revise,reunions,repugnant,replicating,repaid,renewing,relaxes,rekindle,regrettably,regenerate,reels,reciting,reappear,readin,ratting,rapes,rancher,rammed,rainstorm,railroading,queers,punxsutawney,punishes,pssst,prudy,proudest,protectors,procrastinating,proactive,priss,postmortem,pompoms,poise,pickings,perfectionist,peretti,people'll,pecking,patrolman,paralegal,paragraphs,paparazzi,pankot,pampering,overstep,overpower,outweigh,omnipotent,odious,nuwanda,nurtured,newsroom,neeson,needlepoint,necklaces,neato,muggers,muffler,mousy,mourned,mosey,mopey,mongolians,moldy,misinterpret,minibar,microfilm,mendola,mended,melissande,masturbating,masbath,manipulates,maimed,mailboxes,magnetism,m'lord,m'honey,lymph,lunge,lovelier,lefferts,leezak,ledgers,larraby,laloosh,kundun,kozinski,knockoff,kissin,kiosk,kennedys,kellman,karlo,kaleidoscope,jeffy,jaywalking,instructing,infraction,informer,infarction,impulsively,impressing,impersonated,impeach,idiocy,hyperbole,hurray,humped,huhuh,hsing,hordes,hoodlums,honky,hitchhiker,hideously,heaving,heathcliff,headgear,headboard,hazing,harem,handprint,hairspray,gutiurrez,goosebumps,gondola,glitches,gasping,frolic,freeways,frayed,fortitude,forgetful,forefathers,fonder,foiled,foaming,flossing,flailing,fitzgeralds,firehouse,finders,fiftieth,fellah,fawning,farquaad,faraway,fancied,extremists,exorcist,exhale,ethros,entrust,ennui,energized,encephalitis,embezzling,elster,elixir,electrolytes,duplex,dryers,drexl,dredging,drawback,don'ts,dobisch,divorcee,disrespected,disprove,disobeying,disinfectant,dingy,digress,dieting,dictating,devoured,devise,detonators,desist,deserter,derriere,deron,deceptive,debilitating,deathwok,daffodils,curtsy,cursory,cuppa,cumin,cronkite,cremation,credence,cranking,coverup,courted,countin,counselling,cornball,contentment,consensual,compost,cluett,cleverly,cleansed,cleanliness,chopec,chomp,chins,chime,cheswick,chessler,cheapest,chatted,cauliflower,catharsis,catchin,caress,camcorder,calorie,cackling,bystanders,buttoned,buttering,butted,buries,burgel,buffoon,brogna,bragged,boutros,bogeyman,blurting,blurb,blowup,bloodhound,blissful,birthmark,bigot,bestest,belted,belligerent,beggin,befall,beeswax,beatnik,beaming,barricade,baggoli,badness,awoke,artsy,artful,aroun,armpits,arming,annihilate,anise,angiogram,anaesthetic,amorous,ambiance,alligators,adoration,admittance,adama,abydos,zonked,zhivago,yorkin,wrongfully,writin,wrappers,worrywart,woops,wonderfalls,womanly,wickedness,whoopie,wholeheartedly,whimper,which'll,wheelchairs,what'ya,warranted,wallop,wading,wacked,virginal,vermouth,vermeil,verger,ventriss,veneer,vampira,utero,ushers,urgently,untoward,unshakable,unsettled,unruly,unlocks,ungodly,undue,uncooperative,uncontrollably,unbeatable,twitchy,tumbler,truest,triumphs,triplicate,tribbey,tortures,tongaree,tightening,thorazine,theres,testifies,teenaged,tearful,taxing,taldor,syllabus,swoops,swingin,suspending,sunburn,stuttering,stupor,strides,strategize,strangulation,stooped,stipulation,stingy,stapled,squeaks,squawking,spoilsport,splicing,spiel,spencers,spasms,spaniard,softener,sodding,soapbox,smoldering,smithbauer,skittish,sifting,sickest,sicilians,shuffling,shrivel,segretti,seeping,securely,scurrying,scrunch,scrote,screwups,schenkman,sawing,savin,satine,sapiens,salvaging,salmonella,sacrilege,rumpus,ruffle,roughing,rotted,rondall,ridding,rickshaw,rialto,rhinestone,restrooms,reroute,requisite,repress,rednecks,redeeming,rayed,ravell,raked,raincheck,raffi,racked,pushin,profess,prodding,procure,presuming,preppy,prednisone,potted,posttraumatic,poorhouse,podiatrist,plowed,pledging,playroom,plait,placate,pinback,picketing,photographing,pharoah,petrak,petal,persecuting,perchance,pellets,peeved,peerless,payable,pauses,pathologist,pagliacci,overwrought,overreaction,overqualified,overheated,outcasts,otherworldly,opinionated,oodles,oftentimes,occured,obstinate,nutritionist,numbness,nubile,nooooooo,nobodies,nepotism,neanderthals,mushu,mucus,mothering,mothballs,monogrammed,molesting,misspoke,misspelled,misconstrued,miscalculated,minimums,mince,mildew,mighta,middleman,mementos,mellowed,mayol,mauled,massaged,marmalade,mardi,makings,lundegaard,lovingly,loudest,lotto,loosing,loompa,looming,longs,loathes,littlest,littering,lifelike,legalities,laundered,lapdog,lacerations,kopalski,knobs,knitted,kittridge,kidnaps,kerosene,karras,jungles,jockeys,iranoff,invoices,invigorating,insolence,insincere,insectopia,inhumane,inhaling,ingrates,infestation,individuality,indeterminate,incomprehensible,inadequacy,impropriety,importer,imaginations,illuminating,ignite,hysterics,hypodermic,hyperventilate,hyperactive,humoring,honeymooning,honed,hoist,hoarding,hitching,hiker,hightail,hemoglobin,hell'd,heinie,growin,grasped,grandparent,granddaughters,gouged,goblins,gleam,glades,gigantor,get'em,geriatric,gatekeeper,gargoyles,gardenias,garcon,garbo,gallows,gabbing,futon,fulla,frightful,freshener,fortuitous,forceps,fogged,fodder,foamy,flogging,flaun,flared,fireplaces,feverish,favell,fattest,fattening,fallow,extraordinaire,evacuating,errant,envied,enchant,enamored,egocentric,dussander,dunwitty,dullest,dropout,dredged,dorsia,doornail,donot,dongs,dogged,dodgy,ditty,dishonorable,discriminating,discontinue,dings,dilly,dictation,dialysis,delly,delightfully,daryll,dandruff,cruddy,croquet,cringe,crimp,credo,crackling,courtside,counteroffer,counterfeiting,corrupting,copping,conveyor,contusions,contusion,conspirator,consoling,connoisseur,confetti,composure,compel,colic,coddle,cocksuckers,coattails,cloned,claustrophobia,clamoring,churn,chugga,chirping,chasin,chapped,chalkboard,centimeter,caymans,catheter,casings,caprica,capelli,cannolis,cannoli,camogli,camembert,butchers,butchered,busboys,bureaucrats,buckled,bubbe,brownstone,bravely,brackley,bouquets,botox,boozing,boosters,bodhi,blunders,blunder,blockage,biocyte,betrays,bested,beryllium,beheading,beggar,begbie,beamed,bastille,barstool,barricades,barbecues,barbecued,bandwagon,backfiring,bacarra,avenged,autopsies,aunties,associating,artichoke,arrowhead,appendage,apostrophe,antacid,ansel,annul,amuses,amped,amicable,amberg,alluring,adversaries,admirers,adlai,acupuncture,abnormality,aaaahhhh,zooming,zippity,zipping,zeroed,yuletide,yoyodyne,yengeese,yeahhh,wrinkly,wracked,withered,winks,windmills,whopping,wendle,weigart,waterworks,waterbed,watchful,wantin,wagging,waaah,vying,ventricle,varnish,vacuumed,unreachable,unprovoked,unmistakable,unfriendly,unfolding,underpaid,uncuff,unappealing,unabomber,typhoid,tuxedos,tushie,turds,tumnus,troubadour,trinium,treaters,treads,transpired,transgression,tought,thready,thins,thinners,techs,teary,tattaglia,tassels,tarzana,tanking,tablecloths,synchronize,symptomatic,sycophant,swimmingly,sweatshop,surfboard,superpowers,sunroom,sunblock,sugarplum,stupidly,strumpet,strapless,stooping,stools,stealthy,stalks,stairmaster,staffer,sshhh,squatting,squatters,spectacularly,sorbet,socked,sociable,snubbed,snorting,sniffles,snazzy,snakebite,smuggler,smorgasbord,smooching,slurping,slouch,slingshot,slaved,skimmed,sisterhood,silliest,sidarthur,sheraton,shebang,sharpening,shanghaied,shakers,sendoff,scurvy,scoliosis,scaredy,scagnetti,sawchuk,saugus,sasquatch,sandbag,saltines,s'pose,roston,rostle,riveting,ristle,rifling,revulsion,reverently,retrograde,restful,resents,reptilian,reorganize,renovating,reiterate,reinvent,reinmar,reibers,reechard,recuse,reconciling,recognizance,reclaiming,recitation,recieved,rebate,reacquainted,rascals,railly,quintuplets,quahog,pygmies,puzzling,punctuality,prosthetic,proms,probie,preys,preserver,preppie,poachers,plummet,plumbers,plannin,pitying,pitfalls,piqued,pinecrest,pinches,pillage,pigheaded,physique,pessimistic,persecute,perjure,percentile,pentothal,pensky,penises,peini,pazzi,pastels,parlour,paperweight,pamper,pained,overwhelm,overalls,outrank,outpouring,outhouse,outage,ouija,obstructed,obsessions,obeying,obese,o'riley,o'higgins,nosebleeds,norad,noooooooo,nononono,nonchalant,nippy,neurosis,nekhorvich,necronomicon,naquada,n'est,mystik,mystified,mumps,muddle,mothership,moped,monumentally,monogamous,mondesi,misogynistic,misinterpreting,mindlock,mending,megaphone,meeny,medicating,meanie,masseur,markstrom,marklars,margueritas,manifesting,maharajah,lukewarm,loveliest,loran,lizardo,liquored,lipped,lingers,limey,lemkin,leisurely,lathe,latched,lapping,ladle,krevlorneswath,kosygin,khakis,kenaru,keats,kaitlan,julliard,jollies,jaundice,jargon,jackals,invisibility,insipid,inflamed,inferiority,inexperience,incinerated,incinerate,incendiary,incan,inbred,implicating,impersonator,hunks,horsing,hooded,hippopotamus,hiked,hetson,hetero,hessian,henslowe,hendler,hellstrom,headstone,hayloft,harbucks,handguns,hallucinate,haldol,haggling,gynaecologist,gulag,guilder,guaranteeing,groundskeeper,grindstone,grimoir,grievance,griddle,gribbit,greystone,graceland,gooders,goeth,gentlemanly,gelatin,gawking,ganged,fukes,fromby,frenchmen,foursome,forsley,forbids,footwork,foothold,floater,flinging,flicking,fittest,fistfight,fireballs,fillings,fiddling,fennyman,felonious,felonies,feces,favoritism,fatten,fanatics,faceman,excusing,excepted,entwined,entree,ensconced,eladio,ehrlichman,easterland,dueling,dribbling,drape,downtrodden,doused,dosed,dorleen,dokie,distort,displeased,disown,dismount,disinherited,disarmed,disapproves,diperna,dined,diligent,dicaprio,depress,decoded,debatable,dealey,darsh,damsels,damning,dad'll,d'oeuvre,curlers,curie,cubed,crikey,crepes,countrymen,cornfield,coppers,copilot,copier,cooing,conspiracies,consigliere,condoning,commoner,commies,combust,comas,colds,clawed,clamped,choosy,chomping,chimps,chigorin,chianti,cheep,checkups,cheaters,celibate,cautiously,cautionary,castell,carpentry,caroling,carjacking,caritas,caregiver,cardiology,candlesticks,canasta,cain't,burro,burnin,bunking,bumming,bullwinkle,brummel,brooms,brews,breathin,braslow,bracing,botulism,boorish,bloodless,blayne,blatantly,blankie,bedbugs,becuase,barmaid,bared,baracus,banal,bakes,backpacks,attentions,atrocious,ativan,athame,asunder,astound,assuring,aspirins,asphyxiation,ashtrays,aryans,arnon,apprehension,applauding,anvil,antiquing,antidepressants,annoyingly,amputate,altruistic,alotta,alerting,afterthought,affront,affirm,actuality,abysmal,absentee,yeller,yakushova,wuzzy,wriggle,worrier,woogyman,womanizer,windpipe,windbag,willin,whisking,whimsy,wendall,weeny,weensy,weasels,watery,watcha,wasteful,waski,washcloth,waaay,vouched,viznick,ventriloquist,vendettas,veils,vayhue,vamanos,vadimus,upstage,uppity,unsaid,unlocking,unintentionally,undetected,undecided,uncaring,unbearably,tween,tryout,trotting,trini,trimmings,trickier,treatin,treadstone,trashcan,transcendent,tramps,townsfolk,torturous,torrid,toothpicks,tolerable,tireless,tiptoeing,timmay,tillinghouse,tidying,tibia,thumbing,thrusters,thrashing,these'll,thatos,testicular,teriyaki,tenors,tenacity,tellers,telemetry,tarragon,switchblade,swicker,swells,sweatshirts,swatches,surging,supremely,sump'n,succumb,subsidize,stumbles,stuffs,stoppin,stipulate,stenographer,steamroll,stasis,stagger,squandered,splint,splendidly,splashy,splashing,specter,sorcerers,somewheres,somber,snuggled,snowmobile,sniffed,snags,smugglers,smudged,smirking,smearing,slings,sleet,sleepovers,sleek,slackers,siree,siphoning,singed,sincerest,sickened,shuffled,shriveled,shorthanded,shittin,shish,shipwrecked,shins,sheetrock,shawshank,shamu,sha're,servitude,sequins,seascape,scrapings,scoured,scorching,sandpaper,saluting,salud,ruffled,roughnecks,rougher,rosslyn,rosses,roost,roomy,romping,revolutionize,reprimanded,refute,refrigerated,reeled,redundancies,rectal,recklessly,receding,reassignment,reapers,readout,ration,raring,ramblings,raccoons,quarantined,purging,punters,psychically,premarital,pregnancies,predisposed,precautionary,pollute,podunk,plums,plaything,pixilated,pitting,piranhas,pieced,piddles,pickled,photogenic,phosphorous,pffft,pestilence,pessimist,perspiration,perps,penticoff,passageways,pardons,panics,pancamo,paleontologist,overwhelms,overstating,overpaid,overdid,outlive,orthodontist,orgies,oreos,ordover,ordinates,ooooooh,oooohhh,omelettes,officiate,obtuse,obits,nymph,novocaine,noooooooooo,nipping,nilly,nightstick,negate,neatness,natured,narcotic,narcissism,namun,nakatomi,murky,muchacho,mouthwash,motzah,morsel,morph,morlocks,mooch,moloch,molest,mohra,modus,modicum,mockolate,misdemeanors,miscalculation,middies,meringue,mercilessly,meditating,mayakovsky,maximillian,marlee,markovski,maniacal,maneuvered,magnificence,maddening,lutze,lunged,lovelies,lorry,loosening,lookee,littered,lilac,lightened,laces,kurzon,kurtzweil,kind've,kimono,kenji,kembu,keanu,kazuo,jonesing,jilted,jiggling,jewelers,jewbilee,jacqnoud,jacksons,ivories,insurmountable,innocuous,innkeeper,infantery,indulged,indescribable,incoherent,impervious,impertinent,imperfections,hunnert,huffy,horsies,horseradish,hollowed,hogwash,hockley,hissing,hiromitsu,hidin,hereafter,helpmann,hehehe,haughty,happenings,hankie,handsomely,halliwells,haklar,haise,gunsights,grossly,grope,grocer,grits,gripping,grabby,glorificus,gizzard,gilardi,gibarian,geminon,gasses,garnish,galloping,gairwyn,futterman,futility,fumigated,fruitless,friendless,freon,foregone,forego,floored,flighty,flapjacks,fizzled,ficus,festering,farbman,fabricate,eyghon,extricate,exalted,eventful,esophagus,enterprising,entail,endor,emphatically,embarrasses,electroshock,easel,duffle,drumsticks,dissection,dissected,disposing,disparaging,disorientation,disintegrated,disarming,devoting,dessaline,deprecating,deplorable,delve,degenerative,deduct,decomposed,deathly,dearie,daunting,dankova,cyclotron,cyberspace,cutbacks,culpable,cuddled,crumpets,cruelly,crouching,cranium,cramming,cowering,couric,cordesh,conversational,conclusively,clung,clotting,cleanest,chipping,chimpanzee,chests,cheapen,chainsaws,censure,catapult,caravaggio,carats,captivating,calrissian,butlers,busybody,bussing,bunion,bulimic,budging,brung,browbeat,brokenhearted,brecher,breakdowns,bracebridge,boning,blowhard,blisters,blackboard,bigotry,bialy,bhamra,bended,begat,battering,baste,basquiat,barricaded,barometer,balled,baited,badenweiler,backhand,ascenscion,argumentative,appendicitis,apparition,anxiously,antagonistic,angora,anacott,amniotic,ambience,alonna,aleck,akashic,ageless,abouts,aawwww,aaaaarrrrrrggghhh,aaaaaa,zendi,yuppies,yodel,y'hear,wrangle,wombosi,wittle,withstanding,wisecracks,wiggling,wierd,whittlesley,whipper,whattya,whatsamatter,whatchamacallit,whassup,whad'ya,weakling,warfarin,waponis,wampum,wadn't,vorash,vizzini,virtucon,viridiana,veracity,ventilated,varicose,varcon,vandalized,vamos,vamoose,vaccinated,vacationing,usted,urinal,uppers,unwittingly,unsealed,unplanned,unhinged,unhand,unfathomable,unequivocally,unbreakable,unadvisedly,udall,tynacorp,tuxes,tussle,turati,tunic,tsavo,trussed,troublemakers,trollop,tremors,transsexual,transfusions,toothbrushes,toned,toddlers,tinted,tightened,thundering,thorpey,this'd,thespian,thaddius,tenuous,tenths,tenement,telethon,teleprompter,teaspoon,taunted,tattle,tardiness,taraka,tappy,tapioca,tapeworm,talcum,tacks,swivel,swaying,superpower,summarize,sumbitch,sultry,suburbia,styrofoam,stylings,strolls,strobe,stockpile,stewardesses,sterilized,sterilize,stealin,stakeouts,squawk,squalor,squabble,sprinkled,sportsmanship,spokes,spiritus,sparklers,spareribs,sowing,sororities,sonovabitch,solicit,softy,softness,softening,snuggling,snatchers,snarling,snarky,snacking,smears,slumped,slowest,slithering,sleazebag,slayed,slaughtering,skidded,skated,sivapathasundaram,sissies,silliness,silences,sidecar,sicced,shylock,shtick,shrugged,shriek,shoves,should'a,shortcake,shockingly,shirking,shaves,shatner,sharpener,shapely,shafted,sexless,septum,selflessness,seabea,scuff,screwball,scoping,scooch,scolding,schnitzel,schemed,scalper,santy,sankara,sanest,salesperson,sakulos,safehouse,sabers,runes,rumblings,rumbling,ruijven,ringers,righto,rhinestones,retrieving,reneging,remodelling,relentlessly,regurgitate,refills,reeking,reclusive,recklessness,recanted,ranchers,rafer,quaking,quacks,prophesied,propensity,profusely,problema,prided,prays,postmark,popsicles,poodles,pollyanna,polaroids,pokes,poconos,pocketful,plunging,plugging,pleeease,platters,pitied,pinetti,piercings,phooey,phonies,pestering,periscope,pentagram,pelts,patronized,paramour,paralyze,parachutes,pales,paella,paducci,owatta,overdone,overcrowded,overcompensating,ostracized,ordinate,optometrist,operandi,omens,okayed,oedipal,nuttier,nuptial,nunheim,noxious,nourish,notepad,nitroglycerin,nibblet,neuroses,nanosecond,nabbit,mythic,munchkins,multimillion,mulroney,mucous,muchas,mountaintop,morlin,mongorians,moneybags,mom'll,molto,mixup,misgivings,mindset,michalchuk,mesmerized,merman,mensa,meaty,mbwun,materialize,materialistic,masterminded,marginally,mapuhe,malfunctioning,magnify,macnamara,macinerney,machinations,macadamia,lysol,lurks,lovelorn,lopsided,locator,litback,litany,linea,limousines,limes,lighters,liebkind,levity,levelheaded,letterhead,lesabre,leron,lepers,lefts,leftenant,laziness,layaway,laughlan,lascivious,laryngitis,lapsed,landok,laminated,kurten,kobol,knucklehead,knowed,knotted,kirkeby,kinsa,karnovsky,jolla,jimson,jettison,jeric,jawed,jankis,janitors,jango,jalopy,jailbreak,jackers,jackasses,invalidate,intercepting,intercede,insinuations,infertile,impetuous,impaled,immerse,immaterial,imbeciles,imagines,idyllic,idolized,icebox,i'd've,hypochondriac,hyphen,hurtling,hurried,hunchback,hullo,horsting,hoooo,homeboys,hollandaise,hoity,hijinks,hesitates,herrero,herndorff,helplessly,heeyy,heathen,hearin,headband,harrassment,harpies,halstrom,hahahahaha,hacer,grumbling,grimlocks,grift,greets,grandmothers,grander,grafts,gordievsky,gondorff,godorsky,glscripts,gaudy,gardeners,gainful,fuses,fukienese,frizzy,freshness,freshening,fraught,frantically,foxbooks,fortieth,forked,foibles,flunkies,fleece,flatbed,fisted,firefight,fingerpaint,filibuster,fhloston,fenceline,femur,fatigues,fanucci,fantastically,familiars,falafel,fabulously,eyesore,expedient,ewwww,eviscerated,erogenous,epidural,enchante,embarassed,embarass,embalming,elude,elspeth,electrocute,eigth,eggshell,echinacea,eases,earpiece,earlobe,dumpsters,dumbshit,dumbasses,duloc,duisberg,drummed,drinkers,dressy,dorma,doily,divvy,diverting,dissuade,disrespecting,displace,disorganized,disgustingly,discord,disapproving,diligence,didja,diced,devouring,detach,destructing,desolate,demerits,delude,delirium,degrade,deevak,deemesa,deductions,deduce,debriefed,deadbeats,dateline,darndest,damnable,dalliance,daiquiri,d'agosta,cussing,cryss,cripes,cretins,crackerjack,cower,coveting,couriers,countermission,cotswolds,convertibles,conversationalist,consorting,consoled,consarn,confides,confidentially,commited,commiserate,comme,comforter,comeuppance,combative,comanches,colosseum,colling,coexist,coaxing,cliffside,chutes,chucked,chokes,childlike,childhoods,chickening,chenowith,charmingly,changin,catsup,captioning,capsize,cappucino,capiche,candlewell,cakewalk,cagey,caddie,buxley,bumbling,bulky,buggered,brussel,brunettes,brumby,brotha,bronck,brisket,bridegroom,braided,bovary,bookkeeper,bluster,bloodline,blissfully,blase,billionaires,bicker,berrisford,bereft,berating,berate,bendy,belive,belated,beikoku,beens,bedspread,bawdy,barreling,baptize,banya,balthazar,balmoral,bakshi,bails,badgered,backstreet,awkwardly,auras,attuned,atheists,astaire,assuredly,arrivederci,appetit,appendectomy,apologetic,antihistamine,anesthesiologist,amulets,albie,alarmist,aiight,adstream,admirably,acquaint,abound,abominable,aaaaaaah,zekes,zatunica,wussy,worded,wooed,woodrell,wiretap,windowsill,windjammer,windfall,whisker,whims,whatiya,whadya,weirdly,weenies,waunt,washout,wanto,waning,victimless,verdad,veranda,vandaley,vancomycin,valise,vaguest,upshot,unzip,unwashed,untrained,unstuck,unprincipled,unmentionables,unjustly,unfolds,unemployable,uneducated,unduly,undercut,uncovering,unconsciousness,unconsciously,tyndareus,turncoat,turlock,tulle,tryouts,trouper,triplette,trepkos,tremor,treeger,trapeze,traipse,tradeoff,trach,torin,tommorow,tollan,toity,timpani,thumbprint,thankless,tell'em,telepathy,telemarketing,telekinesis,teevee,teeming,tarred,tambourine,talentless,swooped,switcheroo,swirly,sweatpants,sunstroke,suitors,sugarcoat,subways,subterfuge,subservient,subletting,stunningly,strongbox,striptease,stravanavitch,stradling,stoolie,stodgy,stocky,stifle,stealer,squeezes,squatter,squarely,sprouted,spool,spindly,speedos,soups,soundly,soulmates,somebody'll,soliciting,solenoid,sobering,snowflakes,snowballs,snores,slung,slimming,skulk,skivvies,skewered,skewer,sizing,sistine,sidebar,sickos,shushing,shunt,shugga,shone,shol'va,sharpened,shapeshifter,shadowing,shadoe,selectman,sefelt,seared,scrounging,scribbling,scooping,scintillating,schmoozing,scallops,sapphires,sanitarium,sanded,safes,rudely,roust,rosebush,rosasharn,rondell,roadhouse,riveted,rewrote,revamp,retaliatory,reprimand,replicators,replaceable,remedied,relinquishing,rejoicing,reincarnated,reimbursed,reevaluate,redid,redefine,recreating,reconnected,rebelling,reassign,rearview,rayne,ravings,ratso,rambunctious,radiologist,quiver,quiero,queef,qualms,pyrotechnics,pulsating,psychosomatic,proverb,promiscuous,profanity,prioritize,preying,predisposition,precocious,precludes,prattling,prankster,povich,potting,postpartum,porridge,polluting,plowing,pistachio,pissin,pickpocket,physicals,peruse,pertains,personified,personalize,perjured,perfecting,pepys,pepperdine,pembry,peering,peels,pedophile,patties,passkey,paratrooper,paraphernalia,paralyzing,pandering,paltry,palpable,pagers,pachyderm,overstay,overestimated,overbite,outwit,outgrow,outbid,ooops,oomph,oohhh,oldie,obliterate,objectionable,nygma,notting,noches,nitty,nighters,newsstands,newborns,neurosurgery,nauseated,nastiest,narcolepsy,mutilate,muscled,murmur,mulva,mulling,mukada,muffled,morgues,moonbeams,monogamy,molester,molestation,molars,moans,misprint,mismatched,mirth,mindful,mimosas,millander,mescaline,menstrual,menage,mellowing,medevac,meddlesome,matey,manicures,malevolent,madmen,macaroons,lydell,lycra,lunchroom,lunching,lozenges,looped,litigious,liquidate,linoleum,lingk,limitless,limber,lilacs,ligature,liftoff,lemmiwinks,leggo,learnin,lazarre,lawyered,lactose,knelt,kenosha,kemosabe,jussy,junky,jordy,jimmies,jeriko,jakovasaur,issacs,isabela,irresponsibility,ironed,intoxication,insinuated,inherits,ingest,ingenue,inflexible,inflame,inevitability,inedible,inducement,indignant,indictments,indefensible,incomparable,incommunicado,improvising,impounded,illogical,ignoramus,hydrochloric,hydrate,hungover,humorless,humiliations,hugest,hoverdrone,hovel,hmmph,hitchhike,hibernating,henchman,helloooo,heirlooms,heartsick,headdress,hatches,harebrained,hapless,hanen,handsomer,hallows,habitual,guten,gummy,guiltier,guidebook,gstaad,gruff,griss,grieved,grata,gorignak,goosed,goofed,glowed,glitz,glimpses,glancing,gilmores,gianelli,geraniums,garroway,gangbusters,gamblers,galls,fuddy,frumpy,frowning,frothy,fro'tak,frere,fragrances,forgettin,follicles,flowery,flophouse,floatin,flirts,flings,flatfoot,fingerprinting,fingerprinted,fingering,finald,fillet,fianc,femoral,federales,fawkes,fascinates,farfel,fambly,falsified,fabricating,exterminators,expectant,excusez,excrement,excercises,evian,etins,esophageal,equivalency,equate,equalizer,entrees,enquire,endearment,empathetic,emailed,eggroll,earmuffs,dyslexic,duper,duesouth,drunker,druggie,dreadfully,dramatics,dragline,downplay,downers,dominatrix,doers,docket,docile,diversify,distracts,disloyalty,disinterested,discharging,disagreeable,dirtier,dinghy,dimwitted,dimoxinil,dimmy,diatribe,devising,deviate,detriment,desertion,depressants,depravity,deniability,delinquents,defiled,deepcore,deductive,decimate,deadbolt,dauthuille,dastardly,daiquiris,daggers,dachau,curiouser,curdled,cucamonga,cruller,cruces,crosswalk,crinkle,crescendo,cremate,counseled,couches,cornea,corday,copernicus,contrition,contemptible,constipated,conjoined,confounded,condescend,concoct,conch,compensating,committment,commandeered,comely,coddled,cockfight,cluttered,clunky,clownfish,cloaked,clenched,cleanin,civilised,circumcised,cimmeria,cilantro,chutzpah,chucking,chiseled,chicka,chattering,cervix,carrey,carpal,carnations,cappuccinos,candied,calluses,calisthenics,bushy,burners,budington,buchanans,brimming,braids,boycotting,bouncers,botticelli,botherin,bookkeeping,bogyman,bogged,bloodthirsty,blintzes,blanky,binturong,billable,bigboote,bewildered,betas,bequeath,behoove,befriend,bedpost,bedded,baudelaires,barreled,barboni,barbeque,bangin,baltus,bailout,backstabber,baccarat,awning,augie,arguillo,archway,apricots,apologising,annyong,anchorman,amenable,amazement,allspice,alannis,airfare,airbags,ahhhhhhhhh,ahhhhhhhh,ahhhhhhh,agitator,adrenal,acidosis,achoo,accessorizing,accentuate,abrasions,abductor,aaaahhh,aaaaaaaa,aaaaaaa,zeroing,zelner,zeldy,yevgeny,yeska,yellows,yeesh,yeahh,yamuri,wouldn't've,workmanship,woodsman,winnin,winked,wildness,whoring,whitewash,whiney,when're,wheezer,wheelman,wheelbarrow,westerburg,weeding,watermelons,washboard,waltzes,wafting,voulez,voluptuous,vitone,vigilantes,videotaping,viciously,vices,veruca,vermeer,verifying,vasculitis,valets,upholstered,unwavering,untold,unsympathetic,unromantic,unrecognizable,unpredictability,unmask,unleashing,unintentional,unglued,unequivocal,underrated,underfoot,unchecked,unbutton,unbind,unbiased,unagi,uhhhhh,tugging,triads,trespasses,treehorn,traviata,trappers,transplants,trannie,tramping,tracheotomy,tourniquet,tooty,toothless,tomarrow,toasters,thruster,thoughtfulness,thornwood,tengo,tenfold,telltale,telephoto,telephoned,telemarketer,tearin,tastic,tastefully,tasking,taser,tamed,tallow,taketh,taillight,tadpoles,tachibana,syringes,sweated,swarthy,swagger,surges,supermodels,superhighway,sunup,sun'll,sulfa,sugarless,sufficed,subside,strolled,stringy,strengthens,straightest,straightens,storefront,stopper,stockpiling,stimulant,stiffed,steyne,sternum,stepladder,stepbrother,steers,steelheads,steakhouse,stathis,stankylecartmankennymr,standoffish,stalwart,squirted,spritz,sprig,sprawl,spousal,sphincter,spenders,spearmint,spatter,spangled,southey,soured,sonuvabitch,somethng,snuffed,sniffs,smokescreen,smilin,slobs,sleepwalker,sleds,slays,slayage,skydiving,sketched,skanks,sixed,siphoned,siphon,simpering,sigfried,sidearm,siddons,sickie,shuteye,shuffleboard,shrubberies,shrouded,showmanship,shouldn't've,shoplift,shiatsu,sentries,sentance,sensuality,seething,secretions,searing,scuttlebutt,sculpt,scowling,scouring,scorecard,schoolers,schmucks,scepters,scaly,scalps,scaffolding,sauces,sartorius,santen,salivating,sainthood,saget,saddens,rygalski,rusting,ruination,rueland,rudabaga,rottweiler,roofies,romantics,rollerblading,roldy,roadshow,rickets,rible,rheza,revisiting,retentive,resurface,restores,respite,resounding,resorting,resists,repulse,repressing,repaying,reneged,refunds,rediscover,redecorated,reconstructive,recommitted,recollect,receptacle,reassess,reanimation,realtors,razinin,rationalization,ratatouille,rashum,rasczak,rancheros,rampler,quizzing,quips,quartered,purring,pummeling,puede,proximo,prospectus,pronouncing,prolonging,procreation,proclamations,principled,prides,preoccupation,prego,precog,prattle,pounced,potshots,potpourri,porque,pomegranates,polenta,plying,pluie,plesac,playmates,plantains,pillowcase,piddle,pickers,photocopied,philistine,perpetuate,perpetually,perilous,pawned,pausing,pauper,parter,parlez,parlay,pally,ovulation,overtake,overstate,overpowering,overpowered,overconfident,overbooked,ovaltine,outweighs,outings,ottos,orrin,orifice,orangutan,oopsy,ooooooooh,oooooo,ooohhhh,ocular,obstruct,obscenely,o'dwyer,nutjob,nunur,notifying,nostrand,nonny,nonfat,noblest,nimble,nikes,nicht,newsworthy,nestled,nearsighted,ne'er,nastier,narco,nakedness,muted,mummified,mudda,mozzarella,moxica,motivator,motility,mothafucka,mortmain,mortgaged,mores,mongers,mobbed,mitigating,mistah,misrepresented,mishke,misfortunes,misdirection,mischievous,mineshaft,millaney,microwaves,metzenbaum,mccovey,masterful,masochistic,marliston,marijawana,manya,mantumbi,malarkey,magnifique,madrona,madox,machida,m'hidi,lullabies,loveliness,lotions,looka,lompoc,litterbug,litigator,lithe,liquorice,linds,limericks,lightbulb,lewises,letch,lemec,layover,lavatory,laurels,lateness,laparotomy,laboring,kuato,kroff,krispy,krauts,knuckleheads,kitschy,kippers,kimbrow,keypad,keepsake,kebab,karloff,junket,judgemental,jointed,jezzie,jetting,jeeze,jeeter,jeesus,jeebs,janeane,jails,jackhammer,ixnay,irritates,irritability,irrevocable,irrefutable,irked,invoking,intricacies,interferon,intents,insubordinate,instructive,instinctive,inquisitive,inlay,injuns,inebriated,indignity,indecisive,incisors,incacha,inalienable,impresses,impregnate,impregnable,implosion,idolizes,hypothyroidism,hypoglycemic,huseni,humvee,huddling,honing,hobnobbing,hobnob,histrionics,histamine,hirohito,hippocratic,hindquarters,hikita,hikes,hightailed,hieroglyphics,heretofore,herbalist,hehey,hedriks,heartstrings,headmistress,headlight,hardheaded,happend,handlebars,hagitha,habla,gyroscope,guys'd,guy'd,guttersnipe,grump,growed,grovelling,groan,greenbacks,gravedigger,grating,grasshoppers,grandiose,grandest,grafted,gooood,goood,gooks,godsakes,goaded,glamorama,giveth,gingham,ghostbusters,germane,georgy,gazzo,gazelles,gargle,garbled,galgenstein,gaffe,g'day,fyarl,furnish,furies,fulfills,frowns,frowned,frighteningly,freebies,freakishly,forewarned,foreclose,forearms,fordson,fonics,flushes,flitting,flemmer,flabby,fishbowl,fidgeting,fevers,feigning,faxing,fatigued,fathoms,fatherless,fancier,fanatical,factored,eyelid,eyeglasses,expresso,expletive,expectin,excruciatingly,evidentiary,ever'thing,eurotrash,eubie,estrangement,erlich,epitome,entrap,enclose,emphysema,embers,emasculating,eighths,eardrum,dyslexia,duplicitous,dumpty,dumbledore,dufus,duddy,duchamp,drunkenness,drumlin,drowns,droid,drinky,drifts,drawbridge,dramamine,douggie,douchebag,dostoyevsky,doodling,don'tcha,domineering,doings,dogcatcher,doctoring,ditzy,dissimilar,dissecting,disparage,disliking,disintegrating,dishwalla,dishonored,dishing,disengaged,disavowed,dippy,diorama,dimmed,dilate,digitalis,diggory,dicing,diagnosing,devola,desolation,dennings,denials,deliverance,deliciously,delicacies,degenerates,degas,deflector,defile,deference,decrepit,deciphered,dawdle,dauphine,daresay,dangles,dampen,damndest,cucumbers,cucaracha,cryogenically,croaks,croaked,criticise,crisper,creepiest,creams,crackle,crackin,covertly,counterintelligence,corrosive,cordially,cops'll,convulsions,convoluted,conversing,conga,confrontational,confab,condolence,condiments,complicit,compiegne,commodus,comings,cometh,collusion,collared,cockeyed,clobber,clemonds,clarithromycin,cienega,christmasy,christmassy,chloroform,chippie,chested,cheeco,checklist,chauvinist,chandlers,chambermaid,chakras,cellophane,caveat,cataloguing,cartmanland,carples,carny,carded,caramels,cappy,caped,canvassing,callback,calibrated,calamine,buttermilk,butterfingers,bunsen,bulimia,bukatari,buildin,budged,brobich,bringer,brendell,brawling,bratty,braised,boyish,boundless,botch,boosh,bookies,bonbons,bodes,bobunk,bluntly,blossoming,bloomers,bloodstains,bloodhounds,blech,biter,biometric,bioethics,bijan,bigoted,bicep,bereaved,bellowing,belching,beholden,beached,batmobile,barcodes,barch,barbecuing,bandanna,backwater,backtrack,backdraft,augustino,atrophy,atrocity,atley,atchoo,asthmatic,assoc,armchair,arachnids,aptly,appetizing,antisocial,antagonizing,anorexia,anini,andersons,anagram,amputation,alleluia,airlock,aimless,agonized,agitate,aggravating,aerosol,acing,accomplishing,accidently,abuser,abstain,abnormally,aberration,aaaaahh,zlotys,zesty,zerzura,zapruder,zantopia,yelburton,yeess,y'knowwhati'msayin,wwhat,wussies,wrenched,would'a,worryin,wormser,wooooo,wookiee,wolchek,wishin,wiseguys,windbreaker,wiggy,wieners,wiedersehen,whoopin,whittled,wherefore,wharvey,welts,wellstone,wedges,wavered,watchit,wastebasket,wango,waken,waitressed,wacquiem,vrykolaka,voula,vitally,visualizing,viciousness,vespers,vertes,verily,vegetarians,vater,vaporize,vannacutt,vallens,ussher,urinating,upping,unwitting,untangle,untamed,unsanitary,unraveled,unopened,unisex,uninvolved,uninteresting,unintelligible,unimaginative,undeserving,undermines,undergarments,unconcerned,tyrants,typist,tykes,tybalt,twosome,twits,tutti,turndown,tularemia,tuberculoma,tsimshian,truffaut,truer,truant,trove,triumphed,tripe,trigonometry,trifled,trifecta,tribulations,tremont,tremoille,transcends,trafficker,touchin,tomfoolery,tinkered,tinfoil,tightrope,thousan,thoracotomy,thesaurus,thawing,thatta,tessio,temps,taxidermist,tator,tachycardia,t'akaya,swelco,sweetbreads,swatting,supercollider,sunbathing,summarily,suffocation,sueleen,succinct,subsided,submissive,subjecting,subbing,subatomic,stupendous,stunted,stubble,stubbed,streetwalker,strategizing,straining,straightaway,stoli,stiffer,stickup,stens,steamroller,steadwell,steadfast,stateroom,stans,sshhhh,squishing,squinting,squealed,sprouting,sprimp,spreadsheets,sprawled,spotlights,spooning,spirals,speedboat,spectacles,speakerphone,southglen,souse,soundproof,soothsayer,sommes,somethings,solidify,soars,snorted,snorkeling,snitches,sniping,snifter,sniffin,snickering,sneer,snarl,smila,slinking,slanted,slanderous,slammin,skimp,skilosh,siteid,sirloin,singe,sighing,sidekicks,sicken,showstopper,shoplifter,shimokawa,sherborne,shavadai,sharpshooters,sharking,shagged,shaddup,senorita,sesterces,sensuous,seahaven,scullery,scorcher,schotzie,schnoz,schmooze,schlep,schizo,scents,scalping,scalped,scallop,scalding,sayeth,saybrooke,sawed,savoring,sardine,sandstorm,sandalwood,salutations,sagman,s'okay,rsvp'd,rousted,rootin,romper,romanovs,rollercoaster,rolfie,robinsons,ritzy,ritualistic,ringwald,rhymed,rheingold,rewrites,revoking,reverts,retrofit,retort,retinas,respirations,reprobate,replaying,repaint,renquist,renege,relapsing,rekindled,rejuvenating,rejuvenated,reinstating,recriminations,rechecked,reassemble,rears,reamed,reacquaint,rayanne,ravish,rathole,raspail,rarest,rapists,rants,racketeer,quittin,quitters,quintessential,queremos,quellek,quelle,quasimodo,pyromaniac,puttanesca,puritanical,purer,puree,pungent,pummel,puedo,psychotherapist,prosecutorial,prosciutto,propositioning,procrastination,probationary,primping,preventative,prevails,preservatives,preachy,praetorians,practicality,powders,potus,postop,positives,poser,portolano,portokalos,poolside,poltergeists,pocketed,poach,plummeted,plucking,plimpton,playthings,plastique,plainclothes,pinpointed,pinkus,pinks,pigskin,piffle,pictionary,piccata,photocopy,phobias,perignon,perfumes,pecks,pecked,patently,passable,parasailing,paramus,papier,paintbrush,pacer,paaiint,overtures,overthink,overstayed,overrule,overestimate,overcooked,outlandish,outgrew,outdoorsy,outdo,orchestrate,oppress,opposable,oooohh,oomupwah,okeydokey,okaaay,ohashi,of'em,obscenities,oakie,o'gar,nurection,nostradamus,norther,norcom,nooch,nonsensical,nipped,nimbala,nervously,neckline,nebbleman,narwhal,nametag,n'n't,mycenae,muzak,muumuu,mumbled,mulvehill,muggings,muffet,mouthy,motivates,motaba,moocher,mongi,moley,moisturize,mohair,mocky,mmkay,mistuh,missis,misdeeds,mincemeat,miggs,miffed,methadone,messieur,menopausal,menagerie,mcgillicuddy,mayflowers,matrimonial,matick,masai,marzipan,maplewood,manzelle,mannequins,manhole,manhandle,malfunctions,madwoman,machiavelli,lynley,lynched,lurconis,lujack,lubricant,looove,loons,loofah,lonelyhearts,lollipops,lineswoman,lifers,lexter,lepner,lemony,leggy,leafy,leadeth,lazerus,lazare,lawford,languishing,lagoda,ladman,kundera,krinkle,krendler,kreigel,kowolski,knockdown,knifed,kneed,kneecap,kids'll,kennie,kenmore,keeled,kazootie,katzenmoyer,kasdan,karak,kapowski,kakistos,julyan,jockstrap,jobless,jiggly,jaunt,jarring,jabbering,irrigate,irrevocably,irrationally,ironies,invitro,intimated,intently,intentioned,intelligently,instill,instigator,instep,inopportune,innuendoes,inflate,infects,infamy,indiscretions,indiscreet,indio,indignities,indict,indecision,inconspicuous,inappropriately,impunity,impudent,impotence,implicates,implausible,imperfection,impatience,immutable,immobilize,idealist,iambic,hysterically,hyperspace,hygienist,hydraulics,hydrated,huzzah,husks,hunched,huffed,hubris,hubbub,hovercraft,houngan,hosed,horoscopes,hopelessness,hoodwinked,honorably,honeysuckle,homegirl,holiest,hippity,hildie,hieroglyphs,hexton,herein,heckle,heaping,healthilizer,headfirst,hatsue,harlot,hardwired,halothane,hairstyles,haagen,haaaaa,gutting,gummi,groundless,groaning,gristle,grills,graynamore,grabbin,goodes,goggle,glittering,glint,gleaming,glassy,girth,gimbal,giblets,gellers,geezers,geeze,garshaw,gargantuan,garfunkel,gangway,gandarium,gamut,galoshes,gallivanting,gainfully,gachnar,fusionlips,fusilli,furiously,frugal,fricking,frederika,freckling,frauds,fountainhead,forthwith,forgo,forgettable,foresight,foresaw,fondling,fondled,fondle,folksy,fluttering,fluffing,floundering,flirtatious,flexing,flatterer,flaring,fixating,finchy,figurehead,fiendish,fertilize,ferment,fending,fellahs,feelers,fascinate,fantabulous,falsify,fallopian,faithless,fairer,fainter,failings,facetious,eyepatch,exxon,extraterrestrials,extradite,extracurriculars,extinguish,expunged,expelling,exorbitant,exhilarated,exertion,exerting,excercise,everbody,evaporated,escargot,escapee,erases,epizootics,epithelials,ephrum,entanglements,enslave,engrossed,emphatic,emeralds,ember,emancipated,elevates,ejaculate,effeminate,eccentricities,easygoing,earshot,dunks,dullness,dulli,dulled,drumstick,dropper,driftwood,dregs,dreck,dreamboat,draggin,downsizing,donowitz,dominoes,diversions,distended,dissipate,disraeli,disqualify,disowned,dishwashing,disciplining,discerning,disappoints,dinged,digested,dicking,detonating,despising,depressor,depose,deport,dents,defused,deflecting,decryption,decoys,decoupage,decompress,decibel,decadence,deafening,dawning,dater,darkened,dappy,dallying,dagon,czechoslovakians,cuticles,cuteness,cupboards,culottes,cruisin,crosshairs,cronyn,criminalistics,creatively,creaming,crapping,cranny,cowed,contradicting,constipation,confining,confidences,conceiving,conceivably,concealment,compulsively,complainin,complacent,compels,communing,commode,comming,commensurate,columnists,colonoscopy,colchicine,coddling,clump,clubbed,clowning,cliffhanger,clang,cissy,choosers,choker,chiffon,channeled,chalet,cellmates,cathartic,caseload,carjack,canvass,canisters,candlestick,candlelit,camry,calzones,calitri,caldy,byline,butterball,bustier,burlap,bureaucrat,buffoons,buenas,brookline,bronzed,broiled,broda,briss,brioche,briar,breathable,brays,brassieres,boysenberry,bowline,boooo,boonies,booklets,bookish,boogeyman,boogey,bogas,boardinghouse,bluuch,blundering,bluer,blowed,blotchy,blossomed,bloodwork,bloodied,blithering,blinks,blathering,blasphemous,blacking,birdson,bings,bfmid,bfast,bettin,berkshires,benjamins,benevolence,benched,benatar,bellybutton,belabor,behooves,beddy,beaujolais,beattle,baxworth,baseless,barfing,bannish,bankrolled,banek,ballsy,ballpoint,baffling,badder,badda,bactine,backgammon,baako,aztreonam,authoritah,auctioning,arachtoids,apropos,aprons,apprised,apprehensive,anythng,antivenin,antichrist,anorexic,anoint,anguished,angioplasty,angio,amply,ampicillin,amphetamines,alternator,alcove,alabaster,airlifted,agrabah,affidavits,admonished,admonish,addled,addendum,accuser,accompli,absurdity,absolved,abrusso,abreast,aboot,abductions,abducting,aback,ababwa,aaahhhh,zorin,zinthar,zinfandel,zillions,zephyrs,zatarcs,zacks,youuu,yokels,yardstick,yammer,y'understand,wynette,wrung,wreaths,wowed,wouldn'ta,worming,wormed,workday,woodsy,woodshed,woodchuck,wojadubakowski,withering,witching,wiseass,wiretaps,wining,willoby,wiccaning,whupped,whoopi,whoomp,wholesaler,whiteness,whiner,whatchya,wharves,wenus,weirdoes,weaning,watusi,waponi,waistband,wackos,vouching,votre,vivica,viveca,vivant,vivacious,visor,visitin,visage,vicrum,vetted,ventriloquism,venison,varnsen,vaporized,vapid,vanstock,uuuuh,ushering,urologist,urination,upstart,uprooted,unsubtitled,unspoiled,unseat,unseasonably,unseal,unsatisfying,unnerve,unlikable,unleaded,uninsured,uninspired,unicycle,unhooked,unfunny,unfreezing,unflattering,unfairness,unexpressed,unending,unencumbered,unearth,undiscovered,undisciplined,understan,undershirt,underlings,underline,undercurrent,uncivilized,uncharacteristic,umpteenth,uglies,tuney,trumps,truckasaurus,trubshaw,trouser,tringle,trifling,trickster,trespassers,trespasser,traumas,trattoria,trashes,transgressions,trampling,tp'ed,toxoplasmosis,tounge,tortillas,topsy,topple,topnotch,tonsil,tions,timmuh,timithious,tilney,tighty,tightness,tightens,tidbits,ticketed,thyme,threepio,thoughtfully,thorkel,thommo,thing'll,thefts,that've,thanksgivings,tetherball,testikov,terraforming,tepid,tendonitis,tenboom,telex,teenybopper,tattered,tattaglias,tanneke,tailspin,tablecloth,swooping,swizzle,swiping,swindled,swilling,swerving,sweatshops,swaddling,swackhammer,svetkoff,supossed,superdad,sumptuous,sugary,sugai,subvert,substantiate,submersible,sublimating,subjugation,stymied,strychnine,streetlights,strassmans,stranglehold,strangeness,straddling,straddle,stowaways,stotch,stockbrokers,stifling,stepford,steerage,steena,statuary,starlets,staggeringly,ssshhh,squaw,spurt,spungeon,spritzer,sprightly,sprays,sportswear,spoonful,splittin,splitsville,speedily,specialise,spastic,sparrin,souvlaki,southie,sourpuss,soupy,soundstage,soothes,somebody'd,softest,sociopathic,socialized,snyders,snowmobiles,snowballed,snatches,smugness,smoothest,smashes,sloshed,sleight,skyrocket,skied,skewed,sixpence,sipowicz,singling,simulates,shyness,shuvanis,showoff,shortsighted,shopkeeper,shoehorn,shithouse,shirtless,shipshape,shifu,shelve,shelbyville,sheepskin,sharpens,shaquille,shanshu,servings,sequined,seizes,seashells,scrambler,scopes,schnauzer,schmo,schizoid,scampered,savagely,saudis,santas,sandovals,sanding,saleswoman,sagging,s'cuse,rutting,ruthlessly,runneth,ruffians,rubes,rosalita,rollerblades,rohypnol,roasts,roadies,ritten,rippling,ripples,rigoletto,richardo,rethought,reshoot,reserving,reseda,rescuer,reread,requisitions,repute,reprogram,replenish,repetitious,reorganizing,reinventing,reinvented,reheat,refrigerators,reenter,recruiter,recliner,rawdy,rashes,rajeski,raison,raisers,rages,quinine,questscape,queller,pygmalion,pushers,pusan,purview,pumpin,pubescent,prudes,provolone,propriety,propped,procrastinate,processional,preyed,pretrial,portent,pooling,poofy,polloi,policia,poacher,pluses,pleasuring,platitudes,plateaued,plaguing,pittance,pinheads,pincushion,pimply,pimped,piggyback,piecing,phillipe,philipse,philby,pharaohs,petyr,petitioner,peshtigo,pesaram,persnickety,perpetrate,percolating,pepto,penne,penell,pemmican,peeks,pedaling,peacemaker,pawnshop,patting,pathologically,patchouli,pasts,pasties,passin,parlors,paltrow,palamon,padlock,paddling,oversleep,overheating,overdosed,overcharge,overblown,outrageously,ornery,opportune,oooooooooh,oohhhh,ohhhhhh,ogres,odorless,obliterated,nyong,nymphomaniac,ntozake,novocain,nough,nonnie,nonissue,nodules,nightmarish,nightline,niceties,newsman,needra,nedry,necking,navour,nauseam,nauls,narim,namath,nagged,naboo,n'sync,myslexia,mutator,mustafi,musketeer,murtaugh,murderess,munching,mumsy,muley,mouseville,mortifying,morgendorffers,moola,montel,mongoloid,molestered,moldings,mocarbies,mo'ss,mixers,misrell,misnomer,misheard,mishandled,miscreant,misconceptions,miniscule,millgate,mettle,metricconverter,meteors,menorah,mengele,melding,meanness,mcgruff,mcarnold,matzoh,matted,mastectomy,massager,marveling,marooned,marmaduke,marick,manhandled,manatees,man'll,maltin,maliciously,malfeasance,malahide,maketh,makeovers,maiming,machismo,lumpectomy,lumbering,lucci,lording,lorca,lookouts,loogie,loners,loathed,lissen,lighthearted,lifer,lickin,lewen,levitation,lestercorp,lessee,lentils,legislate,legalizing,lederhosen,lawmen,lasskopf,lardner,lambeau,lamagra,ladonn,lactic,lacquer,labatier,krabappel,kooks,knickknacks,klutzy,kleynach,klendathu,kinross,kinkaid,kind'a,ketch,kesher,karikos,karenina,kanamits,junshi,jumbled,joust,jotted,jobson,jingling,jigalong,jerries,jellies,jeeps,javna,irresistable,internist,intercranial,inseminated,inquisitor,infuriate,inflating,infidelities,incessantly,incensed,incase,incapacitate,inasmuch,inaccuracies,imploding,impeding,impediments,immaturity,illegible,iditarod,icicles,ibuprofen,i'i'm,hymie,hydrolase,hunker,humps,humons,humidor,humdinger,humbling,huggin,huffing,housecleaning,hothouse,hotcakes,hosty,hootenanny,hootchie,hoosegow,honks,honeymooners,homily,homeopathic,hitchhikers,hissed,hillnigger,hexavalent,hewwo,hershe,hermey,hergott,henny,hennigans,henhouse,hemolytic,helipad,heifer,hebrews,hebbing,heaved,headlock,harrowing,harnessed,hangovers,handi,handbasket,halfrek,hacene,gyges,guys're,gundersons,gumption,gruntmaster,grubs,grossie,groped,grins,greaseball,gravesite,gratuity,granma,grandfathers,grandbaby,gradski,gracing,gossips,gooble,goners,golitsyn,gofer,godsake,goddaughter,gnats,gluing,glares,givers,ginza,gimmie,gimmee,gennero,gemme,gazpacho,gazed,gassy,gargling,gandhiji,galvanized,gallbladder,gaaah,furtive,fumigation,fucka,fronkonsteen,frills,freezin,freewald,freeloader,frailty,forger,foolhardy,fondest,fomin,followin,follicle,flotation,flopping,floodgates,flogged,flicked,flenders,fleabag,fixings,fixable,fistful,firewater,firelight,fingerbang,finalizing,fillin,filipov,fiderer,felling,feldberg,feign,faunia,fatale,farkus,fallible,faithfulness,factoring,eyeful,extramarital,exterminated,exhume,exasperated,eviscerate,estoy,esmerelda,escapades,epoxy,enticed,enthused,entendre,engrossing,endorphins,emptive,emmys,eminently,embezzler,embarressed,embarrassingly,embalmed,eludes,eling,elated,eirie,egotitis,effecting,eerily,eecom,eczema,earthy,earlobes,eally,dyeing,dwells,duvet,duncans,dulcet,droves,droppin,drools,drey'auc,downriver,domesticity,dollop,doesnt,dobler,divulged,diversionary,distancing,dispensers,disorienting,disneyworld,dismissive,disingenuous,disheveled,disfiguring,dinning,dimming,diligently,dilettante,dilation,dickensian,diaphragms,devastatingly,destabilize,desecrate,deposing,deniece,demony,delving,delicates,deigned,defraud,deflower,defibrillator,defiantly,defenceless,defacing,deconstruction,decompose,deciphering,decibels,deceptively,deceptions,decapitation,debutantes,debonair,deadlier,dawdling,davic,darwinism,darnit,darks,danke,danieljackson,dangled,cytoxan,cutout,cutlery,curveball,curfews,cummerbund,crunches,crouched,crisps,cripples,crilly,cribs,crewman,creepin,creeds,credenza,creak,crawly,crawlin,crawlers,crated,crackheads,coworker,couldn't've,corwins,coriander,copiously,convenes,contraceptives,contingencies,contaminating,conniption,condiment,concocting,comprehending,complacency,commendatore,comebacks,com'on,collarbone,colitis,coldly,coiffure,coffers,coeds,codependent,cocksucking,cockney,cockles,clutched,closeted,cloistered,cleve,cleats,clarifying,clapped,cinnabar,chunnel,chumps,cholinesterase,choirboy,chocolatey,chlamydia,chigliak,cheesie,chauvinistic,chasm,chartreuse,charo,charnier,chapil,chalked,chadway,certifiably,cellulite,celled,cavalcade,cataloging,castrated,cassio,cashews,cartouche,carnivore,carcinogens,capulet,captivated,capt'n,cancellations,campin,callate,callar,caffeinated,cadavers,cacophony,cackle,buzzes,buttoning,busload,burglaries,burbs,buona,bunions,bullheaded,buffs,bucyk,buckling,bruschetta,browbeating,broomsticks,broody,bromly,brolin,briefings,brewskies,breathalyzer,breakups,bratwurst,brania,braiding,brags,braggin,bradywood,bottomed,bossa,bordello,bookshelf,boogida,bondsman,bolder,boggles,bludgeoned,blowtorch,blotter,blips,blemish,bleaching,blainetologists,blading,blabbermouth,birdseed,bimmel,biloxi,biggly,bianchinni,betadine,berenson,belus,belloq,begets,befitting,beepers,beelzebub,beefed,bedridden,bedevere,beckons,beaded,baubles,bauble,battleground,bathrobes,basketballs,basements,barroom,barnacle,barkin,barked,baretta,bangles,bangler,banality,bambang,baltar,ballplayers,bagman,baffles,backroom,babysat,baboons,averse,audiotape,auctioneer,atten,atcha,astonishment,arugula,arroz,antihistamines,annoyances,anesthesiology,anatomically,anachronism,amiable,amaretto,allahu,alight,aimin,ailment,afterglow,affronte,advil,adrenals,actualization,acrost,ached,accursed,accoutrements,absconded,aboveboard,abetted,aargh,aaaahh,zuwicky,zolda,ziploc,zakamatak,youve,yippie,yesterdays,yella,yearns,yearnings,yearned,yawning,yalta,yahtzee,y'mean,y'are,wuthering,wreaks,worrisome,workiiing,wooooooo,wonky,womanizing,wolodarsky,wiwith,withdraws,wishy,wisht,wipers,wiper,winos,windthorne,windsurfing,windermere,wiggled,wiggen,whwhat,whodunit,whoaaa,whittling,whitesnake,whereof,wheezing,wheeze,whatd'ya,whataya,whammo,whackin,wellll,weightless,weevil,wedgies,webbing,weasly,wayside,waxes,waturi,washy,washrooms,wandell,waitaminute,waddya,waaaah,vornac,vishnoor,virulent,vindictiveness,vinceres,villier,vigeous,vestigial,ventilate,vented,venereal,veering,veered,veddy,vaslova,valosky,vailsburg,vaginas,vagas,urethra,upstaged,uploading,unwrapping,unwieldy,untapped,unsatisfied,unquenchable,unnerved,unmentionable,unlovable,unknowns,uninformed,unimpressed,unhappily,unguarded,unexplored,undergarment,undeniably,unclench,unclaimed,uncharacteristically,unbuttoned,unblemished,ululd,uhhhm,tweeze,tutsami,tushy,tuscarora,turkle,turghan,turbinium,tubers,trucoat,troxa,tropicana,triquetra,trimmers,triceps,trespassed,traya,traumatizing,transvestites,trainors,tradin,trackers,townies,tourelles,toucha,tossin,tortious,topshop,topes,tonics,tongs,tomsk,tomorrows,toiling,toddle,tizzy,tippers,timmi,thwap,thusly,ththe,thrusts,throwers,throwed,throughway,thickening,thermonuclear,thelwall,thataway,terrifically,tendons,teleportation,telepathically,telekinetic,teetering,teaspoons,tarantulas,tapas,tanned,tangling,tamales,tailors,tahitian,tactful,tachy,tablespoon,syrah,synchronicity,synch,synapses,swooning,switchman,swimsuits,sweltering,sweetly,suvolte,suslov,surfed,supposition,suppertime,supervillains,superfluous,superego,sunspots,sunning,sunless,sundress,suckah,succotash,sublevel,subbasement,studious,striping,strenuously,straights,stonewalled,stillness,stilettos,stevesy,steno,steenwyck,stargates,stammering,staedert,squiggly,squiggle,squashing,squaring,spreadsheet,spramp,spotters,sporto,spooking,splendido,spittin,spirulina,spiky,spate,spartacus,spacerun,soonest,something'll,someth,somepin,someone'll,sofas,soberly,sobered,snowmen,snowbank,snowballing,snivelling,sniffling,snakeskin,snagging,smush,smooter,smidgen,smackers,slumlord,slossum,slimmer,slighted,sleepwalk,sleazeball,skokie,skeptic,sitarides,sistah,sipped,sindell,simpletons,simony,silkwood,silks,silken,sightless,sideboard,shuttles,shrugging,shrouds,showy,shoveled,shouldn'ta,shoplifters,shitstorm,sheeny,shapetype,shaming,shallows,shackle,shabbily,shabbas,seppuku,senility,semite,semiautomatic,selznick,secretarial,sebacio,scuzzy,scummy,scrutinized,scrunchie,scribbled,scotches,scolded,scissor,schlub,scavenging,scarin,scarfing,scallions,scald,savour,savored,saute,sarcoidosis,sandbar,saluted,salish,saith,sailboats,sagittarius,sacre,saccharine,sacamano,rushdie,rumpled,rumba,rulebook,rubbers,roughage,rotisserie,rootie,roofy,roofie,romanticize,rittle,ristorante,rippin,rinsing,ringin,rincess,rickety,reveling,retest,retaliating,restorative,reston,restaurateur,reshoots,resetting,resentments,reprogramming,repossess,repartee,renzo,remore,remitting,remeber,relaxants,rejuvenate,rejections,regenerated,refocus,referrals,reeno,recycles,recrimination,reclining,recanting,reattach,reassigning,razgul,raved,rattlesnakes,rattles,rashly,raquetball,ransack,raisinettes,raheem,radisson,radishes,raban,quoth,qumari,quints,quilts,quilting,quien,quarreled,purty,purblind,punchbowl,publically,psychotics,psychopaths,psychoanalyze,pruning,provasik,protectin,propping,proportioned,prophylactic,proofed,prompter,procreate,proclivities,prioritizing,prinze,pricked,press'll,presets,prescribes,preocupe,prejudicial,prefex,preconceived,precipice,pralines,pragmatist,powerbar,pottie,pottersville,potsie,potholes,posses,posies,portkey,porterhouse,pornographers,poring,poppycock,poppers,pomponi,pokin,poitier,podiatry,pleeze,pleadings,playbook,platelets,plane'arium,placebos,place'll,pistachios,pirated,pinochle,pineapples,pinafore,pimples,piggly,piddling,picon,pickpockets,picchu,physiologically,physic,phobic,philandering,phenomenally,pheasants,pewter,petticoat,petronis,petitioning,perturbed,perpetuating,permutat,perishable,perimeters,perfumed,percocet,per'sus,pepperjack,penalize,pelting,pellet,peignoir,pedicures,peckers,pecans,pawning,paulsson,pattycake,patrolmen,patois,pathos,pasted,parishioner,parcheesi,parachuting,papayas,pantaloons,palpitations,palantine,paintballing,overtired,overstress,oversensitive,overnights,overexcited,overanxious,overachiever,outwitted,outvoted,outnumber,outlast,outlander,out've,orphey,orchestrating,openers,ooooooo,okies,ohhhhhhhhh,ohhhhhhhh,ogling,offbeat,obsessively,obeyed,o'hana,o'bannon,o'bannion,numpce,nummy,nuked,nuances,nourishing,nosedive,norbu,nomlies,nomine,nixed,nihilist,nightshift,newmeat,neglectful,neediness,needin,naphthalene,nanocytes,nanite,naivete,n'yeah,mystifying,myhnegon,mutating,musing,mulled,muggy,muerto,muckraker,muchachos,mountainside,motherless,mosquitos,morphed,mopped,moodoo,moncho,mollem,moisturiser,mohicans,mocks,mistresses,misspent,misinterpretation,miscarry,minuses,mindee,mimes,millisecond,milked,mightn't,mightier,mierzwiak,microchips,meyerling,mesmerizing,mershaw,meecrob,medicate,meddled,mckinnons,mcgewan,mcdunnough,mcats,mbien,matzah,matriarch,masturbated,masselin,martialed,marlboros,marksmanship,marinate,marchin,manicured,malnourished,malign,majorek,magnon,magnificently,macking,machiavellian,macdougal,macchiato,macaws,macanaw,m'self,lydells,lusts,lucite,lubricants,lopper,lopped,loneliest,lonelier,lomez,lojack,loath,liquefy,lippy,limps,likin,lightness,liesl,liebchen,licious,libris,libation,lhamo,leotards,leanin,laxatives,lavished,latka,lanyard,lanky,landmines,lameness,laddies,lacerated,labored,l'amour,kreskin,kovitch,kournikova,kootchy,konoss,knknow,knickety,knackety,kmart,klicks,kiwanis,kissable,kindergartners,kilter,kidnet,kid'll,kicky,kickbacks,kickback,kholokov,kewpie,kendo,katra,kareoke,kafelnikov,kabob,junjun,jumba,julep,jordie,jondy,jolson,jenoff,jawbone,janitorial,janiro,ipecac,invigorated,intruded,intros,intravenously,interruptus,interrogations,interject,interfacing,interestin,insuring,instilled,insensitivity,inscrutable,inroads,innards,inlaid,injector,ingratitude,infuriates,infra,infliction,indelicate,incubators,incrimination,inconveniencing,inconsolable,incestuous,incas,incarcerate,inbreeding,impudence,impressionists,impeached,impassioned,imipenem,idling,idiosyncrasies,icebergs,hypotensive,hydrochloride,hushed,humus,humph,hummm,hulking,hubcaps,hubald,howya,howbout,how'll,housebroken,hotwire,hotspots,hotheaded,horrace,hopsfield,honto,honkin,honeymoons,homewrecker,hombres,hollers,hollerin,hoedown,hoboes,hobbling,hobble,hoarse,hinky,highlighters,hexes,heru'ur,hernias,heppleman,hell're,heighten,heheheheheh,heheheh,hedging,heckling,heckled,heavyset,heatshield,heathens,heartthrob,headpiece,hayseed,haveo,hauls,hasten,harridan,harpoons,hardens,harcesis,harbouring,hangouts,halkein,haleh,halberstam,hairnet,hairdressers,hacky,haaaa,h'yah,gusta,gushy,gurgling,guilted,gruel,grudging,grrrrrr,grosses,groomsmen,griping,gravest,gratified,grated,goulash,goopy,goona,goodly,godliness,godawful,godamn,glycerin,glutes,glowy,globetrotters,glimpsed,glenville,glaucoma,girlscout,giraffes,gilbey,gigglepuss,ghora,gestating,gelato,geishas,gearshift,gayness,gasped,gaslighting,garretts,garba,gablyczyck,g'head,fumigating,fumbling,fudged,fuckwad,fuck're,fuchsia,fretting,freshest,frenchies,freezers,fredrica,fraziers,fraidy,foxholes,fourty,fossilized,forsake,forfeits,foreclosed,foreal,footsies,florists,flopped,floorshow,floorboard,flinching,flecks,flaubert,flatware,flatulence,flatlined,flashdance,flail,flagging,fiver,fitzy,fishsticks,finetti,finelli,finagle,filko,fieldstone,fibber,ferrini,feedin,feasting,favore,fathering,farrouhk,farmin,fairytale,fairservice,factoid,facedown,fabled,eyeballin,extortionist,exquisitely,expedited,exorcise,existentialist,execs,exculpatory,exacerbate,everthing,eventuality,evander,euphoric,euphemisms,estamos,erred,entitle,enquiries,enormity,enfants,endive,encyclopedias,emulating,embittered,effortless,ectopic,ecirc,easely,earphones,earmarks,dweller,durslar,durned,dunois,dunking,dunked,dumdum,dullard,dudleys,druthers,druggist,drossos,drooled,driveways,drippy,dreamless,drawstring,drang,drainpipe,dozing,dotes,dorkface,doorknobs,doohickey,donnatella,doncha,domicile,dokos,dobermans,dizzying,divola,ditsy,distaste,disservice,dislodged,dislodge,disinherit,disinformation,discounting,dinka,dimly,digesting,diello,diddling,dictatorships,dictators,diagnostician,devours,devilishly,detract,detoxing,detours,detente,destructs,desecrated,derris,deplore,deplete,demure,demolitions,demean,delish,delbruck,delaford,degaulle,deftly,deformity,deflate,definatly,defector,decrypted,decontamination,decapitate,decanter,dardis,dampener,damme,daddy'll,dabbling,dabbled,d'etre,d'argent,d'alene,d'agnasti,czechoslovakian,cymbal,cyberdyne,cutoffs,cuticle,curvaceous,curiousity,crowing,crowed,croutons,cropped,criminy,crescentis,crashers,cranwell,coverin,courtrooms,countenance,cosmically,cosign,corroboration,coroners,cornflakes,copperpot,copperhead,copacetic,coordsize,convulsing,consults,conjures,congenial,concealer,compactor,commercialism,cokey,cognizant,clunkers,clumsily,clucking,cloves,cloven,cloths,clothe,clods,clocking,clings,clavicle,classless,clashing,clanking,clanging,clamping,civvies,citywide,circulatory,circuited,chronisters,chromic,choos,chloroformed,chillun,cheesed,chatterbox,chaperoned,channukah,cerebellum,centerpieces,centerfold,ceecee,ccedil,cavorting,cavemen,cauterized,cauldwell,catting,caterine,cassiopeia,carves,cartwheel,carpeted,carob,caressing,carelessly,careening,capricious,capitalistic,capillaries,candidly,camaraderie,callously,calfskin,caddies,buttholes,busywork,busses,burps,burgomeister,bunkhouse,bungchow,bugler,buffets,buffed,brutish,brusque,bronchitis,bromden,brolly,broached,brewskis,brewin,brean,breadwinner,brana,bountiful,bouncin,bosoms,borgnine,bopping,bootlegs,booing,bombosity,bolting,boilerplate,bluey,blowback,blouses,bloodsuckers,bloodstained,bloat,bleeth,blackface,blackest,blackened,blacken,blackballed,blabs,blabbering,birdbrain,bipartisanship,biodegradable,biltmore,bilked,big'uns,bidet,besotted,bernheim,benegas,bendiga,belushi,bellboys,belittling,behinds,begone,bedsheets,beckoning,beaute,beaudine,beastly,beachfront,bathes,batak,baser,baseballs,barbella,bankrolling,bandaged,baerly,backlog,backin,babying,azkaban,awwwww,aviary,authorizes,austero,aunty,attics,atreus,astounded,astonish,artemus,arses,arintero,appraiser,apathetic,anybody'd,anxieties,anticlimactic,antar,anglos,angleman,anesthetist,androscoggin,andolini,andale,amway,amuck,amniocentesis,amnesiac,americano,amara,alvah,altruism,alternapalooza,alphabetize,alpaca,allus,allergist,alexandros,alaikum,akimbo,agoraphobia,agides,aggrhh,aftertaste,adoptions,adjuster,addictions,adamantium,activator,accomplishes,aberrant,aaaaargh,aaaaaaaaaaaaa,a'ight,zzzzzzz,zucchini,zookeeper,zirconia,zippers,zequiel,zellary,zeitgeist,zanuck,zagat,you'n,ylang,yes'm,yenta,yecchh,yecch,yawns,yankin,yahdah,yaaah,y'got,xeroxed,wwooww,wristwatch,wrangled,wouldst,worthiness,worshiping,wormy,wormtail,wormholes,woosh,wollsten,wolfing,woefully,wobbling,wintry,wingding,windstorm,windowtext,wiluna,wilting,wilted,willick,willenholly,wildflowers,wildebeest,whyyy,whoppers,whoaa,whizzing,whizz,whitest,whistled,whist,whinny,wheelies,whazzup,whatwhatwhaaat,whato,whatdya,what'dya,whacks,wewell,wetsuit,welluh,weeps,waylander,wavin,wassail,wasnt,warneford,warbucks,waltons,wallbanger,waiving,waitwait,vowing,voucher,vornoff,vorhees,voldemort,vivre,vittles,vindaloo,videogames,vichyssoise,vicarious,vesuvius,verguenza,ven't,velveteen,velour,velociraptor,vastness,vasectomies,vapors,vanderhof,valmont,validates,valiantly,vacuums,usurp,usernum,us'll,urinals,unyielding,unvarnished,unturned,untouchables,untangled,unsecured,unscramble,unreturned,unremarkable,unpretentious,unnerstand,unmade,unimpeachable,unfashionable,underwrite,underlining,underling,underestimates,underappreciated,uncouth,uncork,uncommonly,unclog,uncircumcised,unchallenged,uncas,unbuttoning,unapproved,unamerican,unafraid,umpteen,umhmm,uhwhy,ughuh,typewriters,twitches,twitched,twirly,twinkling,twinges,twiddling,turners,turnabout,tumblin,tryed,trowel,trousseau,trivialize,trifles,tribianni,trenchcoat,trembled,traumatize,transitory,transients,transfuse,transcribing,tranq,trampy,traipsed,trainin,trachea,traceable,touristy,toughie,toscanini,tortola,tortilla,torreon,toreador,tommorrow,tollbooth,tollans,toidy,togas,tofurkey,toddling,toddies,toasties,toadstool,to've,tingles,timin,timey,timetables,tightest,thuggee,thrusting,thrombus,throes,thrifty,thornharts,thinnest,thicket,thetas,thesulac,tethered,testaburger,tersenadine,terrif,terdlington,tepui,temping,tector,taxidermy,tastebuds,tartlets,tartabull,tar'd,tantamount,tangy,tangles,tamer,tabula,tabletops,tabithia,szechwan,synthedyne,svenjolly,svengali,survivalists,surmise,surfboards,surefire,suprise,supremacists,suppositories,superstore,supercilious,suntac,sunburned,summercliff,sullied,sugared,suckle,subtleties,substantiated,subsides,subliminal,subhuman,strowman,stroked,stroganoff,streetlight,straying,strainer,straighter,straightener,stoplight,stirrups,stewing,stereotyping,stepmommy,stephano,stashing,starshine,stairwells,squatsie,squandering,squalid,squabbling,squab,sprinkling,spreader,spongy,spokesmen,splintered,spittle,spitter,spiced,spews,spendin,spect,spearchucker,spatulas,southtown,soused,soshi,sorter,sorrowful,sooth,some'in,soliloquy,soiree,sodomized,sobriki,soaping,snows,snowcone,snitching,snitched,sneering,snausages,snaking,smoothed,smoochies,smarten,smallish,slushy,slurring,sluman,slithers,slippin,sleuthing,sleeveless,skinless,skillfully,sketchbook,skagnetti,sista,sinning,singularly,sinewy,silverlake,siguto,signorina,sieve,sidearms,shying,shunning,shtud,shrieks,shorting,shortbread,shopkeepers,shmancy,shizzit,shitheads,shitfaced,shipmates,shiftless,shelving,shedlow,shavings,shatters,sharifa,shampoos,shallots,shafter,sha'nauc,sextant,serviceable,sepsis,senores,sendin,semis,semanski,selflessly,seinfelds,seers,seeps,seductress,secaucus,sealant,scuttling,scusa,scrunched,scissorhands,schreber,schmancy,scamps,scalloped,savoir,savagery,sarong,sarnia,santangel,samool,sallow,salino,safecracker,sadism,sacrilegious,sabrini,sabath,s'aright,ruttheimer,rudest,rubbery,rousting,rotarian,roslin,roomed,romari,romanica,rolltop,rolfski,rockettes,roared,ringleader,riffing,ribcage,rewired,retrial,reting,resuscitated,restock,resale,reprogrammed,replicant,repentant,repellant,repays,repainting,renegotiating,rendez,remem,relived,relinquishes,relearn,relaxant,rekindling,rehydrate,refueled,refreshingly,refilling,reexamine,reeseman,redness,redeemable,redcoats,rectangles,recoup,reciprocated,reassessing,realy,realer,reachin,re'kali,rawlston,ravages,rappaports,ramoray,ramming,raindrops,rahesh,radials,racists,rabartu,quiches,quench,quarreling,quaintly,quadrants,putumayo,put'em,purifier,pureed,punitis,pullout,pukin,pudgy,puddings,puckering,pterodactyl,psychodrama,psats,protestations,protectee,prosaic,propositioned,proclivity,probed,printouts,prevision,pressers,preset,preposition,preempt,preemie,preconceptions,prancan,powerpuff,potties,potpie,poseur,porthole,poops,pooping,pomade,polyps,polymerized,politeness,polisher,polack,pocketknife,poatia,plebeian,playgroup,platonically,platitude,plastering,plasmapheresis,plaids,placemats,pizzazz,pintauro,pinstripes,pinpoints,pinkner,pincer,pimento,pileup,pilates,pigmen,pieeee,phrased,photocopies,phoebes,philistines,philanderer,pheromone,phasers,pfeffernuesse,pervs,perspire,personify,perservere,perplexed,perpetrating,perkiness,perjurer,periodontist,perfunctory,perdido,percodan,pentameter,pentacle,pensive,pensione,pennybaker,pennbrooke,penhall,pengin,penetti,penetrates,pegnoir,peeve,peephole,pectorals,peckin,peaky,peaksville,paxcow,paused,patted,parkishoff,parkers,pardoning,paraplegic,paraphrasing,paperers,papered,pangs,paneling,palooza,palmed,palmdale,palatable,pacify,pacified,owwwww,oversexed,overrides,overpaying,overdrawn,overcompensate,overcomes,overcharged,outmaneuver,outfoxed,oughtn't,ostentatious,oshun,orthopedist,or'derves,ophthalmologist,operagirl,oozes,oooooooh,onesie,omnis,omelets,oktoberfest,okeydoke,ofthe,ofher,obstetrical,obeys,obeah,o'henry,nyquil,nyanyanyanyah,nuttin,nutsy,nutball,nurhachi,numbskull,nullifies,nullification,nucking,nubbin,nourished,nonspecific,noing,noinch,nohoho,nobler,nitwits,newsprint,newspaperman,newscaster,neuropathy,netherworld,neediest,navasky,narcissists,napped,nafta,mache,mykonos,mutilating,mutherfucker,mutha,mutates,mutate,musn't,murchy,multitasking,mujeeb,mudslinging,muckraking,mousetrap,mourns,mournful,motherf,mostro,morphing,morphate,moralistic,moochy,mooching,monotonous,monopolize,monocle,molehill,moland,mofet,mockup,mobilizing,mmmmmmm,mitzvahs,mistreating,misstep,misjudge,misinformation,misdirected,miscarriages,miniskirt,mindwarped,minced,milquetoast,miguelito,mightily,midstream,midriff,mideast,microbe,methuselah,mesdames,mescal,men'll,memma,megaton,megara,megalomaniac,meeee,medulla,medivac,meaninglessness,mcnuggets,mccarthyism,maypole,may've,mauve,mateys,marshack,markles,marketable,mansiere,manservant,manse,manhandling,mallomars,malcontent,malaise,majesties,mainsail,mailmen,mahandra,magnolias,magnified,magev,maelstrom,machu,macado,m'boy,m'appelle,lustrous,lureen,lunges,lumped,lumberyard,lulled,luego,lucks,lubricated,loveseat,loused,lounger,loski,lorre,loora,looong,loonies,loincloth,lofts,lodgers,lobbing,loaner,livered,liqueur,ligourin,lifesaving,lifeguards,lifeblood,liaisons,let'em,lesbianism,lence,lemonlyman,legitimize,leadin,lazars,lazarro,lawyering,laugher,laudanum,latrines,lations,laters,lapels,lakefront,lahit,lafortunata,lachrymose,l'italien,kwaini,kruczynski,kramerica,kowtow,kovinsky,korsekov,kopek,knowakowski,knievel,knacks,kiowas,killington,kickball,keyworth,keymaster,kevie,keveral,kenyons,keggers,keepsakes,kechner,keaty,kavorka,karajan,kamerev,kaggs,jujyfruit,jostled,jonestown,jokey,joists,jocko,jimmied,jiggled,jests,jenzen,jenko,jellyman,jedediah,jealitosis,jaunty,jarmel,jankle,jagoff,jagielski,jackrabbits,jabbing,jabberjaw,izzat,irresponsibly,irrepressible,irregularity,irredeemable,inuvik,intuitions,intubated,intimates,interminable,interloper,intercostal,instyle,instigate,instantaneously,ining,ingrown,ingesting,infusing,infringe,infinitum,infact,inequities,indubitably,indisputable,indescribably,indentation,indefinable,incontrovertible,inconsequential,incompletes,incoherently,inclement,incidentals,inarticulate,inadequacies,imprudent,improprieties,imprison,imprinted,impressively,impostors,importante,imperious,impale,immodest,immobile,imbedded,imbecilic,illegals,idn't,hysteric,hypotenuse,hygienic,hyeah,hushpuppies,hunhh,humpback,humored,hummed,humiliates,humidifier,huggy,huggers,huckster,hotbed,hosing,hosers,horsehair,homebody,homebake,holing,holies,hoisting,hogwallop,hocks,hobbits,hoaxes,hmmmmm,hisses,hippest,hillbillies,hilarity,heurh,herniated,hermaphrodite,hennifer,hemlines,hemline,hemery,helplessness,helmsley,hellhound,heheheheh,heeey,hedda,heartbeats,heaped,healers,headstart,headsets,headlong,hawkland,havta,haulin,harvey'll,hanta,hansom,hangnail,handstand,handrail,handoff,hallucinogen,hallor,halitosis,haberdashery,gypped,guy'll,gumbel,guerillas,guava,guardrail,grunther,grunick,groppi,groomer,grodin,gripes,grinds,grifters,gretch,greevey,greasing,graveyards,grandkid,grainy,gouging,gooney,googly,goldmuff,goldenrod,goingo,godly,gobbledygook,gobbledegook,glues,gloriously,glengarry,glassware,glamor,gimmicks,giggly,giambetti,ghoulish,ghettos,ghali,gether,geriatrics,gerbils,geosynchronous,georgio,gente,gendarme,gelbman,gazillionth,gayest,gauging,gastro,gaslight,gasbag,garters,garish,garas,gantu,gangy,gangly,gangland,galling,gadda,furrowed,funnies,funkytown,fugimotto,fudging,fuckeen,frustrates,froufrou,froot,fromberge,frizzies,fritters,frightfully,friendliest,freeloading,freelancing,freakazoid,fraternization,framers,fornication,fornicating,forethought,footstool,foisting,focussing,focking,flurries,fluffed,flintstones,fledermaus,flayed,flawlessly,flatters,flashbang,flapped,fishies,firmer,fireproof,firebug,fingerpainting,finessed,findin,financials,finality,fillets,fiercest,fiefdom,fibbing,fervor,fentanyl,fenelon,fedorchuk,feckless,feathering,faucets,farewells,fantasyland,fanaticism,faltered,faggy,faberge,extorting,extorted,exterminating,exhumation,exhilaration,exhausts,exfoliate,excels,exasperating,exacting,everybody'd,evasions,espressos,esmail,errrr,erratically,eroding,ernswiler,epcot,enthralled,ensenada,enriching,enrage,enhancer,endear,encrusted,encino,empathic,embezzle,emanates,electricians,eking,egomaniacal,egging,effacing,ectoplasm,eavesdropped,dummkopf,dugray,duchaisne,drunkard,drudge,droop,droids,drips,dripped,dribbles,drazens,downy,downsize,downpour,dosages,doppelganger,dopes,doohicky,dontcha,doneghy,divining,divest,diuretics,diuretic,distrustful,disrupts,dismemberment,dismember,disinfect,disillusionment,disheartening,discourteous,discotheque,discolored,dirtiest,diphtheria,dinks,dimpled,didya,dickwad,diatribes,diathesis,diabetics,deviants,detonates,detests,detestable,detaining,despondent,desecration,derision,derailing,deputized,depressors,dependant,dentures,denominators,demur,demonology,delts,dellarte,delacour,deflated,defib,defaced,decorators,deaqon,davola,datin,darwinian,darklighters,dandelions,dampened,damaskinos,dalrimple,d'peshu,d'hoffryn,d'astier,cynics,cutesy,cutaway,curmudgeon,curdle,culpability,cuisinart,cuffing,crypts,cryptid,crunched,crumblers,crudely,crosscheck,croon,crissake,crevasse,creswood,creepo,creases,creased,creaky,cranks,crabgrass,coveralls,couple'a,coughs,coslaw,corporeal,cornucopia,cornering,corks,cordoned,coolly,coolin,cookbooks,contrite,contented,constrictor,confound,confit,confiscating,condoned,conditioners,concussions,comprendo,comers,combustible,combusted,collingswood,coldness,coitus,codicil,coasting,clydesdale,cluttering,clunker,clunk,clumsiness,clotted,clothesline,clinches,clincher,cleverness,clench,clein,cleanses,claymores,clammed,chugging,chronically,christsakes,choque,chompers,chiseling,chirpy,chirp,chinks,chingachgook,chickenpox,chickadee,chewin,chessboard,chargin,chanteuse,chandeliers,chamdo,chagrined,chaff,certs,certainties,cerreno,cerebrum,censured,cemetary,caterwauling,cataclysmic,casitas,cased,carvel,carting,carrear,carolling,carolers,carnie,cardiogram,carbuncle,capulets,canines,candaules,canape,caldecott,calamitous,cadillacs,cachet,cabeza,cabdriver,buzzards,butai,businesswomen,bungled,bumpkins,bummers,bulldoze,buffybot,bubut,bubbies,brrrrr,brownout,brouhaha,bronzing,bronchial,broiler,briskly,briefcases,bricked,breezing,breeher,breakable,breadstick,bravenet,braved,brandies,brainwaves,brainiest,braggart,bradlee,boys're,boys'll,boys'd,boutonniere,bossed,bosomy,borans,boosts,bookshelves,bookends,boneless,bombarding,bollo,boinked,boink,bluest,bluebells,bloodshot,blockhead,blockbusters,blithely,blather,blankly,bladders,blackbeard,bitte,bippy,biogenetics,bilge,bigglesworth,bicuspids,beususe,betaseron,besmirch,bernece,bereavement,bentonville,benchley,benching,bembe,bellyaching,bellhops,belie,beleaguered,behrle,beginnin,begining,beenie,beefs,beechwood,becau,beaverhausen,beakers,bazillion,baudouin,barrytown,barringtons,barneys,barbs,barbers,barbatus,bankrupted,bailiffs,backslide,baby'd,baaad,b'fore,awwwk,aways,awakes,automatics,authenticate,aught,aubyn,attired,attagirl,atrophied,asystole,astroturf,assertiveness,artichokes,arquillians,aright,archenemy,appraise,appeased,antin,anspaugh,anesthetics,anaphylactic,amscray,ambivalence,amalio,alriiight,alphabetized,alpena,alouette,allora,alliteration,allenwood,allegiances,algerians,alcerro,alastor,ahaha,agitators,aforethought,advertises,admonition,adirondacks,adenoids,acupuncturist,acula,actuarial,activators,actionable,achingly,accusers,acclimated,acclimate,absurdly,absorbent,absolvo,absolutes,absences,abdomenizer,aaaaaaaaah,aaaaaaaaaa,a'right".split(","),
40838 male_names:"james,john,robert,michael,william,david,richard,charles,joseph,thomas,christopher,daniel,paul,mark,donald,george,kenneth,steven,edward,brian,ronald,anthony,kevin,jason,matthew,gary,timothy,jose,larry,jeffrey,frank,scott,eric,stephen,andrew,raymond,gregory,joshua,jerry,dennis,walter,patrick,peter,harold,douglas,henry,carl,arthur,ryan,roger,joe,juan,jack,albert,jonathan,justin,terry,gerald,keith,samuel,willie,ralph,lawrence,nicholas,roy,benjamin,bruce,brandon,adam,harry,fred,wayne,billy,steve,louis,jeremy,aaron,randy,eugene,carlos,russell,bobby,victor,ernest,phillip,todd,jesse,craig,alan,shawn,clarence,sean,philip,chris,johnny,earl,jimmy,antonio,danny,bryan,tony,luis,mike,stanley,leonard,nathan,dale,manuel,rodney,curtis,norman,marvin,vincent,glenn,jeffery,travis,jeff,chad,jacob,melvin,alfred,kyle,francis,bradley,jesus,herbert,frederick,ray,joel,edwin,don,eddie,ricky,troy,randall,barry,bernard,mario,leroy,francisco,marcus,micheal,theodore,clifford,miguel,oscar,jay,jim,tom,calvin,alex,jon,ronnie,bill,lloyd,tommy,leon,derek,darrell,jerome,floyd,leo,alvin,tim,wesley,dean,greg,jorge,dustin,pedro,derrick,dan,zachary,corey,herman,maurice,vernon,roberto,clyde,glen,hector,shane,ricardo,sam,rick,lester,brent,ramon,tyler,gilbert,gene,marc,reginald,ruben,brett,nathaniel,rafael,edgar,milton,raul,ben,cecil,duane,andre,elmer,brad,gabriel,ron,roland,jared,adrian,karl,cory,claude,erik,darryl,neil,christian,javier,fernando,clinton,ted,mathew,tyrone,darren,lonnie,lance,cody,julio,kurt,allan,clayton,hugh,max,dwayne,dwight,armando,felix,jimmie,everett,ian,ken,bob,jaime,casey,alfredo,alberto,dave,ivan,johnnie,sidney,byron,julian,isaac,clifton,willard,daryl,virgil,andy,salvador,kirk,sergio,seth,kent,terrance,rene,eduardo,terrence,enrique,freddie,stuart,fredrick,arturo,alejandro,joey,nick,luther,wendell,jeremiah,evan,julius,donnie,otis,trevor,luke,homer,gerard,doug,kenny,hubert,angelo,shaun,lyle,matt,alfonso,orlando,rex,carlton,ernesto,pablo,lorenzo,omar,wilbur,blake,horace,roderick,kerry,abraham,rickey,ira,andres,cesar,johnathan,malcolm,rudolph,damon,kelvin,rudy,preston,alton,archie,marco,pete,randolph,garry,geoffrey,jonathon,felipe,bennie,gerardo,dominic,loren,delbert,colin,guillermo,earnest,benny,noel,rodolfo,myron,edmund,salvatore,cedric,lowell,gregg,sherman,devin,sylvester,roosevelt,israel,jermaine,forrest,wilbert,leland,simon,irving,owen,rufus,woodrow,sammy,kristopher,levi,marcos,gustavo,jake,lionel,marty,gilberto,clint,nicolas,laurence,ismael,orville,drew,ervin,dewey,wilfred,josh,hugo,ignacio,caleb,tomas,sheldon,erick,frankie,darrel,rogelio,terence,alonzo,elias,bert,elbert,ramiro,conrad,noah,grady,phil,cornelius,lamar,rolando,clay,percy,bradford,merle,darin,amos,terrell,moses,irvin,saul,roman,darnell,randal,tommie,timmy,darrin,brendan,toby,van,abel,dominick,emilio,elijah,cary,domingo,aubrey,emmett,marlon,emanuel,jerald,edmond,emil,dewayne,otto,teddy,reynaldo,bret,jess,trent,humberto,emmanuel,stephan,louie,vicente,lamont,garland,micah,efrain,heath,rodger,demetrius,ethan,eldon,rocky,pierre,eli,bryce,antoine,robbie,kendall,royce,sterling,grover,elton,cleveland,dylan,chuck,damian,reuben,stan,leonardo,russel,erwin,benito,hans,monte,blaine,ernie,curt,quentin,agustin,jamal,devon,adolfo,tyson,wilfredo,bart,jarrod,vance,denis,damien,joaquin,harlan,desmond,elliot,darwin,gregorio,kermit,roscoe,esteban,anton,solomon,norbert,elvin,nolan,carey,rod,quinton,hal,brain,rob,elwood,kendrick,darius,moises,marlin,fidel,thaddeus,cliff,marcel,ali,raphael,bryon,armand,alvaro,jeffry,dane,joesph,thurman,ned,sammie,rusty,michel,monty,rory,fabian,reggie,kris,isaiah,gus,avery,loyd,diego,adolph,millard,rocco,gonzalo,derick,rodrigo,gerry,rigoberto,alphonso,rickie,noe,vern,elvis,bernardo,mauricio,hiram,donovan,basil,nickolas,scot,vince,quincy,eddy,sebastian,federico,ulysses,heriberto,donnell,denny,gavin,emery,romeo,jayson,dion,dante,clement,coy,odell,jarvis,bruno,issac,dudley,sanford,colby,carmelo,nestor,hollis,stefan,donny,linwood,beau,weldon,galen,isidro,truman,delmar,johnathon,silas,frederic,irwin,merrill,charley,marcelino,carlo,trenton,kurtis,aurelio,winfred,vito,collin,denver,leonel,emory,pasquale,mohammad,mariano,danial,landon,dirk,branden,adan,numbers,clair,buford,bernie,wilmer,emerson,zachery,jacques,errol,josue,edwardo,wilford,theron,raymundo,daren,tristan,robby,lincoln,jame,genaro,octavio,cornell,hung,arron,antony,herschel,alva,giovanni,garth,cyrus,cyril,ronny,stevie,lon,kennith,carmine,augustine,erich,chadwick,wilburn,russ,myles,jonas,mitchel,mervin,zane,jamel,lazaro,alphonse,randell,johnie,jarrett,ariel,abdul,dusty,luciano,seymour,scottie,eugenio,mohammed,arnulfo,lucien,ferdinand,thad,ezra,aldo,rubin,mitch,earle,abe,marquis,lanny,kareem,jamar,boris,isiah,emile,elmo,aron,leopoldo,everette,josef,eloy,dorian,rodrick,reinaldo,lucio,jerrod,weston,hershel,lemuel,lavern,burt,jules,gil,eliseo,ahmad,nigel,efren,antwan,alden,margarito,refugio,dino,osvaldo,les,deandre,normand,kieth,ivory,trey,norberto,napoleon,jerold,fritz,rosendo,milford,sang,deon,christoper,alfonzo,lyman,josiah,brant,wilton,rico,jamaal,dewitt,brenton,yong,olin,faustino,claudio,judson,gino,edgardo,alec,jarred,donn,trinidad,tad,porfirio,odis,lenard,chauncey,tod,mel,marcelo,kory,augustus,keven,hilario,bud,sal,orval,mauro,dannie,zachariah,olen,anibal,milo,jed,thanh,amado,lenny,tory,richie,horacio,brice,mohamed,delmer,dario,mac,jonah,jerrold,robt,hank,sung,rupert,rolland,kenton,damion,chi,antone,waldo,fredric,bradly,kip,burl,tyree,jefferey,ahmed,willy,stanford,oren,moshe,mikel,enoch,brendon,quintin,jamison,florencio,darrick,tobias,minh,hassan,giuseppe,demarcus,cletus,tyrell,lyndon,keenan,werner,theo,geraldo,columbus,chet,bertram,markus,huey,hilton,dwain,donte,tyron,omer,isaias,hipolito,fermin,chung,adalberto,jamey,teodoro,mckinley,maximo,raleigh,lawerence,abram,rashad,emmitt,daron,chong,samual,otha,miquel,eusebio,dong,domenic,darron,wilber,renato,hoyt,haywood,ezekiel,chas,florentino,elroy,clemente,arden,neville,edison,deshawn,carrol,shayne,nathanial,jordon,danilo,claud,sherwood,raymon,rayford,cristobal,ambrose,titus,hyman,felton,ezequiel,erasmo,lonny,milan,lino,jarod,herb,andreas,rhett,jude,douglass,cordell,oswaldo,ellsworth,virgilio,toney,nathanael,benedict,mose,hong,isreal,garret,fausto,arlen,zack,modesto,francesco,manual,gaylord,gaston,filiberto,deangelo,michale,granville,malik,zackary,tuan,nicky,cristopher,antione,malcom,korey,jospeh,colton,waylon,hosea,shad,santo,rudolf,rolf,renaldo,marcellus,lucius,kristofer,harland,arnoldo,rueben,leandro,kraig,jerrell,jeromy,hobert,cedrick,arlie,winford,wally,luigi,keneth,jacinto,graig,franklyn,edmundo,leif,jeramy,willian,vincenzo,shon,michal,lynwood,jere,elden,darell,broderick,alonso".split(",")},module.exports=frequency_lists;
40840 },{}],
4:[function(require,module,exports){
40841 var feedback,matching,scoring,time,time_estimates,zxcvbn;matching=require("./matching"),scoring=require("./scoring"),time_estimates=require("./time_estimates"),feedback=require("./feedback"),time=function(){return(new Date).getTime()},zxcvbn=function(e,t){var i,n,c,s,a,r,m,o,u,g,_;for(null==t&&(t=[]),g=time(),u=[],c=
0,s=t.length;c
<s;c++)i=t[c],
"string"!=(m=typeof i)&&
"number"!==m&&
"boolean"!==m||u.push(i.toString().toLowerCase());matching.set_user_input_dictionary(u),a=matching.omnimatch(e),o=scoring.most_guessable_match_sequence(e,a),o.calc_time=time()-g,n=time_estimates.estimate_attack_times(o.guesses);for(r in n)_=n[r],o[r]=_;return o.feedback=feedback.get_feedback(o.score,o.sequence),o},module.exports=zxcvbn;
40843 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
40844 var DATE_MAX_YEAR,DATE_MIN_YEAR,DATE_SPLITS,GRAPHS,L33T_TABLE,RANKED_DICTIONARIES,REGEXEN,adjacency_graphs,build_ranked_dict,frequency_lists,lst,matching,name,scoring;frequency_lists=require(
"./frequency_lists"),adjacency_graphs=require(
"./adjacency_graphs"),scoring=require(
"./scoring"),build_ranked_dict=function(e){var t,n,r,i,a;for(i={},t=
1,r=
0,n=e.length;r
<n;r++)a=e[r],i[a]=t,t+=
1;return i},RANKED_DICTIONARIES={};for(name in frequency_lists)lst=frequency_lists[name],RANKED_DICTIONARIES[name]=build_ranked_dict(lst);GRAPHS={qwerty:adjacency_graphs.qwerty,dvorak:adjacency_graphs.dvorak,keypad:adjacency_graphs.keypad,mac_keypad:adjacency_graphs.mac_keypad},L33T_TABLE={a:[
"4",
"@"],b:[
"8"],c:[
"(",
"{",
"[",
"<"],e:[
"3"],g:[
"6",
"9"],i:[
"1",
"!",
"|"],l:[
"1",
"|",
"7"],o:[
"0"],s:[
"$",
"5"],t:[
"+",
"7"],x:[
"%"],z:[
"2"]},REGEXEN={recent_year:/
19\d\d|
200\d|
201\d/g},DATE_MAX_YEAR=
2050,DATE_MIN_YEAR=
1e3,DATE_SPLITS={
4:[[
1,
2],[
2,
3]],
5:[[
1,
3],[
2,
3]],
6:[[
1,
2],[
2,
4],[
4,
5]],
7:[[
1,
3],[
2,
3],[
4,
5],[
4,
6]],
8:[[
2,
4],[
4,
6]]},matching={empty:function(e){var t;return
0===function(){var n;n=[];for(t in e)n.push(t);return n}().length},extend:function(e,t){return e.push.apply(e,t)},translate:function(e,t){var n;return function(){var r,i,a,s;for(a=e.split(
""),s=[],i=
0,r=a.length;i
<r;i++)n=a[i],s.push(t[n]||n);return s}().join(
"")},mod:function(e,t){return(e%t+t)%t},sorted:function(e){return e.sort(function(e,t){return e.i-t.i||e.j-t.j})},omnimatch:function(e){var t,n,r,i,a;for(i=[],r=[this.dictionary_match,this.reverse_dictionary_match,this.l33t_match,this.spatial_match,this.repeat_match,this.sequence_match,this.regex_match,this.date_match],a=
0,t=r.length;a
<t;a++)n=r[a],this.extend(i,n.call(this,e));return this.sorted(i)},dictionary_match:function(e,t){var n,r,i,a,s,o,h,u,c,l,_,f,d,p;null==t&&(t=RANKED_DICTIONARIES),s=[],a=e.length,u=e.toLowerCase();for(n in t)for(l=t[n],r=o=
0,_=a;
0<=_?o
<_:o>_;r=
0<=_?++o:--o)for(i=h=f=r,d=a;f<=d?h
<d:h>d;i=f<=d?++h:--h)u.slice(r,+i+
1||
9e9)in l&&(p=u.slice(r,+i+
1||
9e9),c=l[p],s.push({pattern:"dictionary",i:r,j:i,token:e.slice(r,+i+
1||
9e9),matched_word:p,rank:c,dictionary_name:n,reversed:!
1,l33t:!
1}));return this.sorted(s)},reverse_dictionary_match:function(e,t){var n,r,i,a,s,o;for(null==t&&(t=RANKED_DICTIONARIES),o=e.split("").reverse().join(""),i=this.dictionary_match(o,t),a=
0,n=i.length;a
<n;a++)r=i[a],r.token=r.token.split(
"").reverse().join(
""),r.reversed=!
0,s=[e.length-
1-r.j,e.length-
1-r.i],r.i=s[
0],r.j=s[
1];return this.sorted(i)},set_user_input_dictionary:function(e){return RANKED_DICTIONARIES.user_inputs=build_ranked_dict(e.slice())},relevant_l33t_subtable:function(e,t){var n,r,i,a,s,o,h,u,c,l;for(s={},o=e.split(
""),a=
0,r=o.length;a
<r;a++)n=o[a],s[n]=!
0;l={};for(i in t)c=t[i],h=function(){var e,t,n;for(n=[],t=
0,e=c.length;t
<e;t++)u=c[t],u in s&&n.push(u);return n}(),h.length
>0&&(l[i]=h);return l},enumerate_l33t_subs:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;a=function(){var t;t=[];for(i in e)t.push(i);return t}(),p=[[]],n=function(e){var t,n,r,a,s,o,h,u;for(n=[],s={},o=
0,a=e.length;o
<a;o++)h=e[o],t=function(){var e,t,n;for(n=[],u=t=
0,e=h.length;t
<e;u=++t)i=h[u],n.push([i,u]);return n}(),t.sort(),r=function(){var e,n,r;for(r=[],u=n=
0,e=t.length;n
<e;u=++n)i=t[u],r.push(i+
","+u);return r}().join(
"-"),r in s||(s[r]=!
0,n.push(h));return n},r=function(t){var i,a,s,o,h,u,c,l,_,f,d,g,m,A,E,y;if(t.length){for(a=t[
0],m=t.slice(
1),c=[],d=e[a],l=
0,h=d.length;l
<h;l++)for(o=d[l],_=
0,u=p.length;_
<u;_++){for(A=p[_],i=-
1,s=f=
0,g=A.length;
0<=g?f
<g:f>g;s=
0<=g?++f:--f)if(A[s][
0]===o){i=s;break}i===-
1?(y=A.concat([[o,a]]),c.push(y)):(E=A.slice(
0),E.splice(i,
1),E.push([o,a]),c.push(A),c.push(E))}return p=n(c),r(m)}},r(a),d=[];for(u=
0,o=p.length;u
<o;u++){for(_=p[u],f={},c=
0,h=_.length;c
<h;c++)l=_[c],s=l[
0],t=l[
1],f[s]=t;d.push(f)}return d},l33t_match:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A;for(null==t&&(t=RANKED_DICTIONARIES),null==n&&(n=L33T_TABLE),u=[],_=this.enumerate_l33t_subs(this.relevant_l33t_subtable(e,n)),c=
0,a=_.length;c
<a&&(d=_[c],!this.empty(d));c++)for(g=this.translate(e,d),f=this.dictionary_match(g,t),l=
0,s=f.length;l
<s;l++)if(o=f[l],m=e.slice(o.i,+o.j+
1||
9e9),m.toLowerCase()!==o.matched_word){h={};for(p in d)r=d[p],m.indexOf(p)!==-
1&&(h[p]=r);o.l33t=!
0,o.token=m,o.sub=h,o.sub_display=function(){var e;e=[];for(i in h)A=h[i],e.push(i+
" -> "+A);return e}().join(
", "),u.push(o)}return this.sorted(u.filter(function(e){return e.token.length
>1}))},spatial_match:function(e,t){var n,r,i;null==t&&(t=GRAPHS),i=[];for(r in t)n=t[r],this.extend(i,this.spatial_match_helper(e,n,r));return this.sorted(i)},SHIFTED_RX:/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:
"ZXCVBNM<>?]/,spatial_match_helper:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m;for(f=[],u=0;u<e.length-1;)for(c=u+1,l=null,m=0,g="qwerty
"!==n&&"dvorak
"!==n||!this.SHIFTED_RX.exec(e.charAt(u))?0:1;;){if(p=e.charAt(c-1),o=!1,h=-1,s=-1,i=t[p]||[],c<e.length)for(a=e.charAt(c),d=0,_=i.length;d<_;d++)if(r=i[d],s+=1,r&&r.indexOf(a)!==-1){o=!0,h=s,1===r.indexOf(a)&&(g+=1),l!==h&&(m+=1,l=h);break}if(!o){c-u>2&&f.push({pattern:"spatial
",i:u,j:c-1,token:e.slice(u,c),graph:n,turns:m,shifted_count:g}),u=c;break}c+=1}return f},repeat_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;for(d=[],a=/(.+)\1+/g,c=/(.+?)\1+/g,l=/^(.+?)\1+$/,u=0;u<e.length&&(a.lastIndex=c.lastIndex=u,s=a.exec(e),_=c.exec(e),null!=s);)s[0].length>_[0].length?(f=s,i=l.exec(f[0])[1]):(f=_,i=f[1]),p=[f.index,f.index+f[0].length-1],o=p[0],h=p[1],t=scoring.most_guessable_match_sequence(i,this.omnimatch(i)),r=t.sequence,n=t.guesses,d.push({pattern:"repeat",i:o,j:h,token:f[
0],base_token:i,base_guesses:n,base_matches:r,repeat_count:f[
0].length/i.length}),u=h+
1;return d},MAX_DELTA:
5,sequence_match:function(e){var t,n,r,i,a,s,o,h,u;if(
1===e.length)return[];for(u=function(t){return function(n,r,i){var a,s,o,u;if((r-n
>1||
1===Math.abs(i))&&
0<(a=Math.abs(i))&&a<=t.MAX_DELTA)return u=e.slice(n,+r+
1||
9e9),/^[a-z]+$/.test(u)?(
s=
"lower",o=
26):/^[A-Z]+$/.test(u)?(
s=
"upper",o=
26):/^\d+$/.test(u)?(
s=
"digits",o=
10):(
s=
"unicode",o=
26),h.push({pattern:
"sequence",i:n,j:r,token:e.slice(n,+r+
1||
9e9),sequence_name:s,sequence_space:o,ascending:i
>0})}}(this),h=[],n=
0,a=null,i=s=
1,o=e.length;
1<=o?s
<o:s>o;i=
1<=o?++s:--s)t=e.charCodeAt(i)-e.charCodeAt(i-
1),null==a&&(a=t),t!==a&&(r=i-
1,u(n,r,a),n=r,a=t);return u(n,e.length-
1,a),h},regex_match:function(e,t){var n,r,i,a;null==t&&(t=REGEXEN),n=[];for(name in t)for(r=t[name],r.lastIndex=
0;i=r.exec(e);)a=i[
0],n.push({pattern:"regex",token:a,i:i.index,j:i.index+i[
0].length-
1,regex_name:name,regex_match:i});return this.sorted(n)},date_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A,E,y,v,I,R,T,D,k,x,j,b,N,S,q,L,M;for(_=[],f=/^\d{
4,
8}$/,d=/^(\d{
1,
4})([\s\/\\_.-])(\d{
1,
2})\
2(\d{
1,
4})$/,s=m=
0,v=e.length-
4;
0<=v?m<=v:m
>=v;s=
0<=v?++m:--m)for(o=A=I=s+
3,R=s+
7;(I<=R?A<=R:A
>=R)&&!(o
>=e.length);o=I<=R?++A:--A)if(M=e.slice(s,+o+
1||
9e9),f.exec(M)){for(r=[],T=DATE_SPLITS[M.length],E=
0,c=T.length;E
<c;E++)D=T[E],h=D[
0],u=D[
1],a=this.map_ints_to_dmy([parseInt(M.slice(
0,h)),parseInt(M.slice(h,u)),parseInt(M.slice(u))]),null!=a&&r.push(a);if(r.length
>0){for(t=r[
0],p=function(e){return Math.abs(e.year-scoring.REFERENCE_YEAR)},g=p(r[
0]),k=r.slice(
1),y=
0,l=k.length;y
<l;y++)n=k[y],i=p(n),i
<g&&(x=[n,i],t=x[
0],g=x[
1]);_.push({pattern:
"date",token:M,i:s,j:o,separator:
"",year:t.year,month:t.month,day:t.day})}}for(s=q=
0,j=e.length-
6;
0<=j?q<=j:q
>=j;s=
0<=j?++q:--q)for(o=L=b=s+
5,N=s+
9;(b<=N?L<=N:L
>=N)&&!(o
>=e.length);o=b<=N?++L:--L)M=e.slice(s,+o+
1||
9e9),S=d.exec(M),null!=S&&(a=this.map_ints_to_dmy([parseInt(S[
1]),parseInt(S[
3]),parseInt(S[
4])]),null!=a&&_.push({pattern:"date",token:M,i:s,j:o,separator:S[
2],year:a.year,month:a.month,day:a.day}));return this.sorted(_.filter(function(e){var t,n,r,i;for(t=!
1,i=
0,n=_.length;i
<n;i++)if(r=_[i],e!==r&&r.i<=e.i&&r.j
>=e.j){t=!
0;break}return!t}))},map_ints_to_dmy:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g;if(!(e[
1]
>31||e[
1]<=
0)){for(o=
0,h=
0,p=
0,s=
0,r=e.length;s
<r;s++){if(n=e[s],
99<n&&n
<DATE_MIN_YEAR||n
>DATE_MAX_YEAR)return;n
>31&&(h+=
1),n
>12&&(o+=
1),n<=
0&&(p+=
1)}if(!(h
>=
2||
3===o||p
>=
2)){for(c=[[e[
2],e.slice(
0,
2)],[e[
0],e.slice(
1,
3)]],u=
0,i=c.length;u
<i;u++)if(_=c[u],g=_[
0],d=_[
1],DATE_MIN_YEAR<=g&&g<=DATE_MAX_YEAR)return t=this.map_ints_to_dm(d),null!=t?{year:g,month:t.month,day:t.day}:void
0;for(l=
0,a=c.length;l
<a;l++)if(f=c[l],g=f[
0],d=f[
1],t=this.map_ints_to_dm(d),null!=t)return g=this.two_to_four_digit_year(g),{year:g,month:t.month,day:t.day}}}},map_ints_to_dm:function(e){var t,n,r,i,a,s;for(a=[e,e.slice().reverse()],i=
0,n=a.length;i
<n;i++)if(s=a[i],t=s[
0],r=s[
1],
1<=t&&t<=
31&&
1<=r&&r<=
12)return{day:t,month:r}},two_to_four_digit_year:function(e){return e
>99?e:e
>50?e+
1900:e+
2e3}},module.exports=matching;
40846 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
40847 var BRUTEFORCE_CARDINALITY,MIN_GUESSES_BEFORE_GROWING_SEQUENCE,MIN_SUBMATCH_GUESSES_MULTI_CHAR,MIN_SUBMATCH_GUESSES_SINGLE_CHAR,adjacency_graphs,calc_average_degree,k,scoring,v;adjacency_graphs=require(
"./adjacency_graphs"),calc_average_degree=function(e){var t,r,n,s,a,u;t=
0;for(n in e)a=e[n],t+=function(){var e,t,r;for(r=[],t=
0,e=a.length;t
<e;t++)s=a[t],s&&r.push(s);return r}().length;return t/=function(){var t;t=[];for(r in e)u=e[r],t.push(r);return t}().length},BRUTEFORCE_CARDINALITY=
10,MIN_GUESSES_BEFORE_GROWING_SEQUENCE=
1e4,MIN_SUBMATCH_GUESSES_SINGLE_CHAR=
10,MIN_SUBMATCH_GUESSES_MULTI_CHAR=
50,scoring={nCk:function(e,t){var r,n,s,a;if(t
>e)return
0;if(
0===t)return
1;for(s=
1,r=n=
1,a=t;
1<=a?n<=a:n
>=a;r=
1<=a?++n:--n)s*=e,s/=r,e-=
1;return s},log10:function(e){return Math.log(e)/Math.log(
10)},log2:function(e){return Math.log(e)/Math.log(
2)},factorial:function(e){var t,r,n,s;if(e
<2)return
1;for(t=
1,r=n=
2,s=e;
2<=s?n<=s:n
>=s;r=
2<=s?++n:--n)t*=r;return t},most_guessable_match_sequence:function(e,t,r){var n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S,R,v,I,M,N,C,U,T;for(null==r&&(r=!
1),l=e.length,f=function(){var e,t,r;for(r=[],n=e=
0,t=l;
0<=t?e
<t:e>t;n=
0<=t?++e:--e)r.push([]);return r}(),p=
0,_=t.length;p
<_;p++)c=t[p],f[c.j].push(c);for(v=
0,o=f.length;v
<o;v++)E=f[v],E.sort(function(e,t){return e.i-t.i});for(A={m:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),pi:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),g:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}()},U=function(t){return function(n,s){var a,u,i,_,o,h;_=n.j,o=t.estimate_guesses(n,e),s
>1&&(o*=A.pi[n.i-
1][s-
1]),i=t.factorial(s)*o,r||(i+=Math.pow(MIN_GUESSES_BEFORE_GROWING_SEQUENCE,s-
1)),h=A.g[_];for(u in h)if(a=h[u],!(u
>s)&&a<=i)return;return A.g[_][s]=i,A.m[_][s]=n,A.pi[_][s]=o}}(this),s=function(e){return function(e){var t,r,n,s,a,u;for(c=g(
0,e),U(c,
1),a=[],t=u=
1,s=e;
1<=s?u<=s:u
>=s;t=
1<=s?++u:--u)c=g(t,e),a.push(function(){var e,s;e=A.m[t-
1],s=[];for(r in e)n=e[r],r=parseInt(r),"bruteforce"!==n.pattern&&s.push(U(c,r+
1));return s}());return a}}(this),g=function(t){return function(t,r){return{pattern:"bruteforce",token:e.slice(t,+r+
1||
9e9),i:t,j:r}}}(this),C=function(e){return function(e){var t,r,n,s,a,u,i;u=[],s=e-
1,a=void
0,n=
1/
0,i=A.g[s];for(r in i)t=i[r],t
<n&&(a=r,n=t);for(;s
>=
0;)c=A.m[s][a],u.unshift(c),s=c.i-
1,a--;return u}}(this),u=N=
0,I=l;
0<=I?N
<I:N>I;u=
0<=I?++N:--N){for(M=f[u],T=
0,h=M.length;T
<h;T++)if(c=M[T],c.i
>0)for(i in A.m[c.i-
1])i=parseInt(i),U(c,i+
1);else U(c,
1);s(u)}return R=C(l),S=R.length,a=
0===e.length?
1:A.g[l-
1][S],{password:e,guesses:a,guesses_log10:this.log10(a),sequence:R}},estimate_guesses:function(e,t){var r,n,s;return null!=e.guesses?e.guesses:(s=
1,e.token.length
<t.length&&(s=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR:MIN_SUBMATCH_GUESSES_MULTI_CHAR),r={bruteforce:this.bruteforce_guesses,dictionary:this.dictionary_guesses,spatial:this.spatial_guesses,repeat:this.repeat_guesses,sequence:this.sequence_guesses,regex:this.regex_guesses,date:this.date_guesses},n=r[e.pattern].call(this,e),e.guesses=Math.max(n,s),e.guesses_log10=this.log10(e.guesses),e.guesses)},bruteforce_guesses:function(e){var t,r;return t=Math.pow(BRUTEFORCE_CARDINALITY,e.token.length),r=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR+
1:MIN_SUBMATCH_GUESSES_MULTI_CHAR+
1,Math.max(t,r)},repeat_guesses:function(e){return e.base_guesses*e.repeat_count},sequence_guesses:function(e){var t,r;return r=e.token.charAt(
0),
t=
"a"===r||
"A"===r||
"z"===r||
"Z"===r||
"0"===r||
"1"===r||
"9"===r?
4:r.match(/\d/)?
10:
26,e.ascending||(t*=
2),t*e.token.length},MIN_YEAR_SPACE:
20,REFERENCE_YEAR:
2016,regex_guesses:function(e){var t,r;if(t={alpha_lower:
26,alpha_upper:
26,alpha:
52,alphanumeric:
62,digits:
10,symbols:
33},e.regex_name in t)return Math.pow(t[e.regex_name],e.token.length);switch(e.regex_name){case
"recent_year":return r=Math.abs(parseInt(e.regex_match[
0])-this.REFERENCE_YEAR),r=Math.max(r,this.MIN_YEAR_SPACE)}},date_guesses:function(e){var t,r;return r=Math.max(Math.abs(e.year-this.REFERENCE_YEAR),this.MIN_YEAR_SPACE),t=
365*r,e.separator&&(t*=
4),t},KEYBOARD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.qwerty),KEYPAD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.keypad),KEYBOARD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.qwerty,t=[];for(k in e)v=e[k],t.push(k);return t}().length,KEYPAD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.keypad,t=[];for(k in e)v=e[k],t.push(k);return t}().length,spatial_guesses:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S;for(
"qwerty"===(E=e.graph)||
"dvorak"===E?(l=this.KEYBOARD_STARTING_POSITIONS,s=this.KEYBOARD_AVERAGE_DEGREE):(l=this.KEYPAD_STARTING_POSITIONS,s=this.KEYPAD_AVERAGE_DEGREE),a=
0,t=e.token.length,A=e.turns,u=_=
2,c=t;
2<=c?_<=c:_
>=c;u=
2<=c?++_:--_)for(o=Math.min(A,u-
1),i=h=
1,g=o;
1<=g?h<=g:h
>=g;i=
1<=g?++h:--h)a+=this.nCk(u-
1,i-
1)*l*Math.pow(s,i);if(e.shifted_count)if(r=e.shifted_count,n=e.token.length-e.shifted_count,
0===r||
0===n)a*=
2;else{for(p=
0,u=S=
1,f=Math.min(r,n);
1<=f?S<=f:S
>=f;u=
1<=f?++S:--S)p+=this.nCk(r+n,u);a*=p}return a},dictionary_guesses:function(e){var t;return e.base_guesses=e.rank,e.uppercase_variations=this.uppercase_variations(e),e.l33t_variations=this.l33t_variations(e),t=e.reversed&&
2||
1,e.base_guesses*e.uppercase_variations*e.l33t_variations*t},START_UPPER:/^[A-Z][^A-Z]+$/,END_UPPER:/^[^A-Z]+[A-Z]$/,ALL_UPPER:/^[^a-z]+$/,ALL_LOWER:/^[^A-Z]+$/,uppercase_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c;if(c=e.token,c.match(this.ALL_LOWER)||c.toLowerCase()===c)return
1;for(_=[this.START_UPPER,this.END_UPPER,this.ALL_UPPER],u=
0,a=_.length;u
<a;u++)if(h=_[u],c.match(h))return
2;for(r=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[A-Z]/)&&s.push(n);return s}().length,t=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[a-z]/)&&s.push(n);return s}().length,E=
0,s=i=
1,o=Math.min(r,t);
1<=o?i<=o:i
>=o;s=
1<=o?++i:--i)E+=this.nCk(r+t,s);return E},l33t_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g;if(!e.l33t)return
1;g=
1,o=e.sub;for(E in o)if(c=o[E],s=e.token.toLowerCase().split(""),t=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===E&&r.push(n);return r}().length,r=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===c&&r.push(n);return r}().length,
0===t||
0===r)g*=
2;else{for(i=Math.min(r,t),_=
0,a=u=
1,h=i;
1<=h?u<=h:u
>=h;a=
1<=h?++u:--u)_+=this.nCk(r+t,a);g*=_}return g}},module.exports=scoring;
40849 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
40850 var time_estimates;time_estimates={estimate_attack_times:function(e){var t,n,s,o;n={online_throttling_100_per_hour:e/(
100/
3600),online_no_throttling_10_per_second:e/
10,offline_slow_hashing_1e4_per_second:e/
1e4,offline_fast_hashing_1e10_per_second:e/
1e10},t={};for(s in n)o=n[s],t[s]=this.display_time(o);return{crack_times_seconds:n,crack_times_display:t,score:this.guesses_to_score(e)}},guesses_to_score:function(e){var t;return t=
5,e
<1e3+t?
0:e
<1e6+t?
1:e
<1e8+t?
2:e
<1e10+t?
3:
4},display_time:function(e){var t,n,s,o,_,r,i,a,u,c;return i=
60,r=
60*i,s=
24*r,a=
31*s,c=
12*a,n=
100*c,u=e
<1?[null,
"less than a second"]:e
<i?(t=Math.round(e),[t,t+
" second"]):e
<r?(t=Math.round(e/i),[t,t+
" minute"]):e
<s?(t=Math.round(e/r),[t,t+
" hour"]):e
<a?(t=Math.round(e/s),[t,t+
" day"]):e
<c?(t=Math.round(e/a),[t,t+
" month"]):e
<n?(t=Math.round(e/c),[t,t+
" year"]):[null,
"centuries"],o=u[
0],_=u[
1],null!=o&&
1!==o&&(_+=
"s"),_}},module.exports=time_estimates;
40854 //# sourceMappingURL=zxcvbn.js.map
40857 * Detects entropy from a string.
40864 * hexadecimal [
0-
9A-F]
40865 * card [A2-
9TJQK][CDHS]
40867 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
40868 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
40872 window.Entropy = new (function() {
40874 var TWO = new BigInteger(
2);
40876 // matchers returns an array of the matched events for each type of entropy.
40878 // matchers.binary("
010") returns ["
0", "
1", "
0"]
40879 // matchers.binary("a10") returns ["
1", "
0"]
40880 // matchers.hex("a10") returns ["a", "
1", "
0"]
40882 binary: function(str) {
40883 return str.match(/[
0-
1]/gi) || [];
40885 base6: function(str) {
40886 return str.match(/[
0-
5]/gi) || [];
40888 dice: function(str) {
40889 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
40891 base10: function(str) {
40892 return str.match(/[
0-
9]/gi) || [];
40894 hex: function(str) {
40895 return str.match(/[
0-
9A-F]/gi) || [];
40897 card: function(str) {
40898 // Format is NumberSuit, eg
40899 // AH ace of hearts
40900 //
8C eight of clubs
40901 // TD ten of diamonds
40902 // JS jack of spades
40903 // QH queen of hearts
40904 // KC king of clubs
40905 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
40909 // Convert array of cards from ["ac", "
4d", "ks"]
40910 // to numbers between
0 and
51 [
0,
16,
51]
40911 function convertCardsToInts(cards) {
40913 var values = "a23456789tjqk";
40914 var suits = "cdhs";
40915 for (var i=
0; i
<cards.length; i++) {
40916 var card = cards[i].toLowerCase();
40917 var value = card[
0];
40918 var suit = card[
1];
40919 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
40925 this.fromString = function(rawEntropyStr) {
40926 // Find type of entropy being used (binary, hex, dice etc)
40927 var base = getBase(rawEntropyStr);
40928 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
40929 // This is done by changing all
6s to
0s
40930 if (base.str ==
"dice") {
40933 for (var i=
0; i
<base.parts.length; i++) {
40934 var c = base.parts[i];
40935 if (
"12345".indexOf(c)
> -
1) {
40936 newParts[i] = base.parts[i];
40937 newInts[i] = base.ints[i];
40944 base.str = "base
6 (dice)";
40945 base.ints = newInts;
40946 base.parts = newParts;
40947 base.matcher = matchers.base6;
40949 // Detect empty entropy
40950 if (base.parts.length ==
0) {
40958 // Convert base.ints to BigInteger.
40959 // Due to using unusual bases, eg cards of base52, this is not as simple as
40960 // using BigInteger.parse()
40961 var entropyInt = BigInteger.ZERO;
40962 for (var i=base.ints.length-
1; i
>=
0; i--) {
40963 var thisInt = BigInteger.parse(base.ints[i]);
40964 var power = (base.ints.length -
1) - i;
40965 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
40966 entropyInt = entropyInt.add(additionalEntropy);
40968 // Convert entropy to binary
40969 var entropyBin = entropyInt.toString(
2);
40970 // If the first integer is small, it must be padded with zeros.
40971 // Otherwise the chance of the first bit being
1 is
100%, which is
40972 // obviously incorrect.
40973 // This is not perfect for non-
2^n bases.
40974 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
40975 while (entropyBin.length < expectedBits) {
40976 entropyBin = "
0" + entropyBin;
40978 // Calculate the number of bits per event
40979 var bitsPerEvent = Math.log2(base.asInt);
40980 // Cards binary must be handled differently, since they're not replaced
40981 if (base.asInt ==
52) {
40982 var cardEntropy = processCardEntropy(base.parts);
40983 entropyBin = cardEntropy.binaryStr;
40984 bitsPerEvent = cardEntropy.bitsPerEvent;
40986 // Supply a 'filtered' entropy string for display purposes
40987 var entropyClean = base.parts.join("");
40988 var entropyHtml = base.parts.join("");
40989 if (base.asInt ==
52) {
40990 entropyClean = base.parts.join(" ").toUpperCase();
40991 entropyClean = entropyClean.replace(/C/g, "\u2663");
40992 entropyClean = entropyClean.replace(/D/g, "\u2666");
40993 entropyClean = entropyClean.replace(/H/g, "\u2665");
40994 entropyClean = entropyClean.replace(/S/g, "\u2660");
40995 entropyHtml = base.parts.join(" ").toUpperCase();
40996 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
40997 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
40998 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
40999 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
41001 // Return the result
41003 binaryStr: entropyBin,
41004 cleanStr: entropyClean,
41005 cleanHtml: entropyHtml,
41006 bitsPerEvent: bitsPerEvent,
41012 function getSortedDeck() {
41014 var suits = "CDHS
";
41015 var values = "A23456789TJQK
";
41016 for (var i=0; i<suits.length; i++) {
41017 for (var j=0; j<values.length; j++) {
41018 s.push(values[j]+suits[i]);
41024 function getBase(str) {
41025 // Need to get the lowest base for the supplied entropy.
41026 // This prevents interpreting, say, dice rolls as hexadecimal.
41027 var binaryMatches = matchers.binary(str);
41028 var hexMatches = matchers.hex(str);
41029 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
41030 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
41031 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
41034 parts: binaryMatches,
41035 matcher: matchers.binary,
41040 var cardMatches = matchers.card(str);
41041 if (cardMatches.length >= hexMatches.length / 2) {
41042 var ints = convertCardsToInts(cardMatches);
41045 parts: cardMatches,
41046 matcher: matchers.card,
41051 var diceMatches = matchers.dice(str);
41052 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
41053 var ints = diceMatches.map(function(i) { return parseInt(i) });
41056 parts: diceMatches,
41057 matcher: matchers.dice,
41062 var base6Matches = matchers.base6(str);
41063 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
41064 var ints = base6Matches.map(function(i) { return parseInt(i) });
41067 parts: base6Matches,
41068 matcher: matchers.base6,
41073 var base10Matches = matchers.base10(str);
41074 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
41075 var ints = base10Matches.map(function(i) { return parseInt(i) });
41078 parts: base10Matches,
41079 matcher: matchers.base10,
41084 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
41088 matcher: matchers.hex,
41090 str:
"hexadecimal",
41094 // Assume cards are NOT replaced.
41095 // Additional entropy decreases as more cards are used. This means
41096 // total possible entropy is measured using n!, not base^n.
41097 // eg the second last card can be only one of two, not one of fifty two
41098 // so the added entropy for that card is only one bit at most
41099 function processCardEntropy(cards) {
41100 // Track how many instances of each card have been used, and thus
41101 // how many decks are in use.
41102 var cardCounts = {};
41103 var numberOfDecks =
0;
41104 // Work out number of decks by max(duplicates)
41105 for (var i=
0; i
<cards.length; i++) {
41106 // Get the card that was drawn
41107 var cardLower = cards[i];
41108 var card = cardLower.toUpperCase();
41109 // Initialize the count for this card if needed
41110 if (!(card in cardCounts)) {
41111 cardCounts[card] =
0;
41113 cardCounts[card] +=
1;
41114 // See if this is max(duplicates)
41115 if (cardCounts[card]
> numberOfDecks) {
41116 numberOfDecks = cardCounts[card];
41119 // Work out the total number of bits for this many decks
41120 // See http://crypto.stackexchange.com/q/
41886
41121 var gainedBits =
0;
41122 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
41123 // which becomes infinity for numberOfDecks
> 4
41124 for (var i=
1; i<=
52*numberOfDecks; i++) {
41125 gainedBits = gainedBits + Math.log2(i);
41127 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
41128 var maxBits = gainedBits - lostBits;
41129 // Convert the drawn cards to a binary representation.
41130 // The exact technique for doing this is unclear.
41132 // http://crypto.stackexchange.com/a/
41896
41133 //
"I even doubt that this is well defined (only the average entropy
41134 // is, I believe)."
41136 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
41137 //
"The binary representation can be the first log(permutations,2) bits
41138 // of the sha-2 hash of the normalized deck string."
41140 // In this specific implementation, the first N bits of the hash of the
41141 // normalized cards string is being used. Uppercase, no spaces; eg
41142 // sha256(
"AH8DQSTC2H")
41143 var totalCards = numberOfDecks *
52;
41144 var percentUsed = cards.length / totalCards;
41145 // Calculate the average number of bits of entropy for the number of
41147 var numberOfBits = Math.floor(maxBits * percentUsed);
41148 // Create a normalized string of the selected cards
41149 var normalizedCards = cards.join(
"").toUpperCase();
41150 // Convert to binary using the SHA256 hash of the normalized cards.
41151 // If the number of bits is more than
256, multiple hashes
41152 // are used until the required number of bits is reached.
41153 var entropyBin =
"";
41154 var iterations =
0;
41155 while (entropyBin.length < numberOfBits) {
41156 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
41157 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
41158 for (var i=
0; i
<hashHex.length; i++) {
41159 var decimal = parseInt(hashHex[i],
16);
41160 var binary = decimal.toString(
2);
41161 while (binary.length <
4) {
41162 binary =
"0" + binary;
41164 entropyBin = entropyBin + binary;
41166 iterations = iterations +
1;
41168 // Truncate to the appropriate number of bits.
41169 entropyBin = entropyBin.substring(
0, numberOfBits);
41170 // Get the number of bits per event
41171 bitsPerEvent = maxBits / totalCards;
41173 binaryStr: entropyBin,
41174 bitsPerEvent: bitsPerEvent,
41178 // Polyfill for Math.log2
41179 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
41180 Math.log2 = Math.log2 || function(x) {
41181 // The polyfill isn't good enough because of the poor accuracy of
41183 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
41184 // So instead use the BigInteger library to get it right.
41185 return BigInteger.log(x) / BigInteger.log(
2);
41188 // Depends on BigInteger
41189 function factorial(n) {
41193 f = BigInteger.ONE;
41194 for (var i=
1; i<=n; i++) {
41195 f = f.multiply(new BigInteger(i));
41202 <script>(function() {
41204 // mnemonics is populated as required by getLanguage
41205 var mnemonics = { "english": new Mnemonic("english") };
41206 var mnemonic = mnemonics["english"];
41208 var bip32RootKey = null;
41209 var bip32ExtendedKey = null;
41210 var network = bitcoin.networks.bitcoin;
41211 var addressRowTemplate = $("#address-row-template");
41213 var showIndex = true;
41214 var showAddress = true;
41215 var showPubKey = true;
41216 var showPrivKey = true;
41217 var showQr = false;
41219 var entropyChangeTimeoutEvent = null;
41220 var phraseChangeTimeoutEvent = null;
41221 var rootKeyChangedTimeoutEvent = null;
41223 var generationProcesses = [];
41226 DOM.network = $(".network");
41227 DOM.phraseNetwork = $("#network-phrase");
41228 DOM.useEntropy = $(".use-entropy");
41229 DOM.entropyContainer = $(".entropy-container");
41230 DOM.entropy = $(".entropy");
41231 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
41232 DOM.entropyType = DOM.entropyContainer.find(".type");
41233 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
41234 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
41235 DOM.entropyBits = DOM.entropyContainer.find(".bits");
41236 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
41237 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
41238 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
41239 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
41240 DOM.phrase = $(".phrase");
41241 DOM.passphrase = $(".passphrase");
41242 DOM.generateContainer = $(".generate-container");
41243 DOM.generate = $(".generate");
41244 DOM.seed = $(".seed");
41245 DOM.rootKey = $(".root-key");
41246 DOM.extendedPrivKey = $(".extended-priv-key");
41247 DOM.extendedPubKey = $(".extended-pub-key");
41248 DOM.bip32tab = $("#bip32-tab");
41249 DOM.bip44tab = $("#bip44-tab");
41250 DOM.bip32panel = $("#bip32");
41251 DOM.bip44panel = $("#bip44");
41252 DOM.bip32path = $("#bip32-path");
41253 DOM.bip44path = $("#bip44-path");
41254 DOM.bip44purpose = $("#bip44 .purpose");
41255 DOM.bip44coin = $("#bip44 .coin");
41256 DOM.bip44account = $("#bip44 .account");
41257 DOM.bip44accountXprv = $("#bip44 .account-xprv");
41258 DOM.bip44accountXpub = $("#bip44 .account-xpub");
41259 DOM.bip44change = $("#bip44 .change");
41260 DOM.generatedStrength = $(".generate-container .strength");
41261 DOM.hardenedAddresses = $(".hardened-addresses");
41262 DOM.addresses = $(".addresses");
41263 DOM.rowsToAdd = $(".rows-to-add");
41264 DOM.more = $(".more");
41265 DOM.feedback = $(".feedback");
41266 DOM.tab = $(".derivation-type a");
41267 DOM.indexToggle = $(".index-toggle");
41268 DOM.addressToggle = $(".address-toggle");
41269 DOM.publicKeyToggle = $(".public-key-toggle");
41270 DOM.privateKeyToggle = $(".private-key-toggle");
41271 DOM.languages = $(".languages a");
41272 DOM.qrContainer = $(".qr-container");
41273 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
41274 DOM.qrImage = DOM.qrContainer.find(".qr-image");
41275 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
41276 DOM.showQrEls = $("[data-show-qr]");
41280 DOM.network.on("change", networkChanged);
41281 DOM.useEntropy.on("change", setEntropyVisibility);
41282 DOM.entropy.on("input", delayedEntropyChanged);
41283 DOM.entropyMnemonicLength.on("change", entropyChanged);
41284 DOM.phrase.on("input", delayedPhraseChanged);
41285 DOM.passphrase.on("input", delayedPhraseChanged);
41286 DOM.generate.on("click", generateClicked);
41287 DOM.more.on("click", showMore);
41288 DOM.rootKey.on("input", delayedRootKeyChanged);
41289 DOM.bip32path.on("input", calcForDerivationPath);
41290 DOM.bip44purpose.on("input", calcForDerivationPath);
41291 DOM.bip44coin.on("input", calcForDerivationPath);
41292 DOM.bip44account.on("input", calcForDerivationPath);
41293 DOM.bip44change.on("input", calcForDerivationPath);
41294 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
41295 DOM.hardenedAddresses.on("change", calcForDerivationPath);
41296 DOM.indexToggle.on("click", toggleIndexes);
41297 DOM.addressToggle.on("click", toggleAddresses);
41298 DOM.publicKeyToggle.on("click", togglePublicKeys);
41299 DOM.privateKeyToggle.on("click", togglePrivateKeys);
41300 DOM.languages.on("click", languageChanged);
41301 setQrEvents(DOM.showQrEls);
41304 hideValidationError();
41305 populateNetworkSelect();
41310 function networkChanged(e) {
41311 var networkIndex = e.target.value;
41312 networks[networkIndex].onSelect();
41313 if (seed != null) {
41321 function setEntropyVisibility() {
41322 if (isUsingOwnEntropy()) {
41323 DOM.entropyContainer.removeClass("hidden");
41324 DOM.generateContainer.addClass("hidden");
41325 DOM.phrase.prop("readonly", true);
41326 DOM.entropy.focus();
41330 DOM.entropyContainer.addClass("hidden");
41331 DOM.generateContainer.removeClass("hidden");
41332 DOM.phrase.prop("readonly", false);
41337 function delayedPhraseChanged() {
41338 hideValidationError();
41340 if (phraseChangeTimeoutEvent != null) {
41341 clearTimeout(phraseChangeTimeoutEvent);
41343 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
41346 function phraseChanged() {
41348 hideValidationError();
41349 setMnemonicLanguage();
41350 // Get the mnemonic phrase
41351 var phrase = DOM.phrase.val();
41352 var errorText = findPhraseErrors(phrase);
41354 showValidationError(errorText);
41357 // Calculate and display
41358 var passphrase = DOM.passphrase.val();
41359 calcBip32RootKeyFromSeed(phrase, passphrase);
41360 calcForDerivationPath();
41364 function delayedEntropyChanged() {
41365 hideValidationError();
41367 if (entropyChangeTimeoutEvent != null) {
41368 clearTimeout(entropyChangeTimeoutEvent);
41370 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
41373 function entropyChanged() {
41374 // If blank entropy, clear mnemonic, addresses, errors
41375 if (DOM.entropy.val().trim().length ==
0) {
41377 clearEntropyFeedback();
41378 DOM.phrase.val("");
41379 showValidationError("Blank entropy");
41382 // Get the current phrase to detect changes
41383 var phrase = DOM.phrase.val();
41384 // Set the phrase from the entropy
41385 setMnemonicFromEntropy();
41386 // Recalc addresses if the phrase has changed
41387 var newPhrase = DOM.phrase.val();
41388 if (newPhrase != phrase) {
41389 if (newPhrase.length ==
0) {
41401 function delayedRootKeyChanged() {
41402 // Warn if there is an existing mnemonic or passphrase.
41403 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
41404 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
41405 DOM.rootKey.val(bip32RootKey);
41409 hideValidationError();
41411 // Clear existing mnemonic and passphrase
41412 DOM.phrase.val(
"");
41413 DOM.passphrase.val(
"");
41415 if (rootKeyChangedTimeoutEvent != null) {
41416 clearTimeout(rootKeyChangedTimeoutEvent);
41418 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
41421 function rootKeyChanged() {
41423 hideValidationError();
41424 // Validate the root key TODO
41425 var rootKeyBase58 = DOM.rootKey.val();
41426 var errorText = validateRootKey(rootKeyBase58);
41428 showValidationError(errorText);
41431 // Calculate and display
41432 calcBip32RootKeyFromBase58(rootKeyBase58);
41433 calcForDerivationPath();
41436 function calcForDerivationPath() {
41438 clearAddressesList();
41439 hideValidationError();
41440 // Get the derivation path
41441 var derivationPath = getDerivationPath();
41442 var errorText = findDerivationPathErrors(derivationPath);
41444 showValidationError(errorText);
41447 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
41448 if (bip44TabSelected()) {
41449 displayBip44Info();
41451 displayBip32Info();
41455 function generateClicked() {
41456 if (isUsingOwnEntropy()) {
41461 setTimeout(function() {
41462 setMnemonicLanguage();
41463 var phrase = generateRandomPhrase();
41471 function languageChanged() {
41472 setTimeout(function() {
41473 setMnemonicLanguage();
41474 if (DOM.phrase.val().length
> 0) {
41475 var newPhrase = convertPhraseToNewLanguage();
41476 DOM.phrase.val(newPhrase);
41480 DOM.generate.trigger(
"click");
41485 function toggleIndexes() {
41486 showIndex = !showIndex;
41487 $(
"td.index span").toggleClass(
"invisible");
41490 function toggleAddresses() {
41491 showAddress = !showAddress;
41492 $(
"td.address span").toggleClass(
"invisible");
41495 function togglePublicKeys() {
41496 showPubKey = !showPubKey;
41497 $(
"td.pubkey span").toggleClass(
"invisible");
41500 function togglePrivateKeys() {
41501 showPrivKey = !showPrivKey;
41502 $(
"td.privkey span").toggleClass(
"invisible");
41507 function generateRandomPhrase() {
41508 if (!hasStrongRandom()) {
41509 var errorText =
"This browser does not support strong randomness";
41510 showValidationError(errorText);
41513 var numWords = parseInt(DOM.generatedStrength.val());
41514 var strength = numWords /
3 *
32;
41515 var words = mnemonic.generate(strength);
41516 DOM.phrase.val(words);
41520 function calcBip32RootKeyFromSeed(phrase, passphrase) {
41521 seed = mnemonic.toSeed(phrase, passphrase);
41522 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
41525 function calcBip32RootKeyFromBase58(rootKeyBase58) {
41526 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
41529 function calcBip32ExtendedKey(path) {
41530 // Check there's a root key to derive from
41531 if (!bip32RootKey) {
41532 return bip32RootKey;
41534 var extendedKey = bip32RootKey;
41535 // Derive the key from the path
41536 var pathBits = path.split(
"/");
41537 for (var i=
0; i
<pathBits.length; i++) {
41538 var bit = pathBits[i];
41539 var index = parseInt(bit);
41540 if (isNaN(index)) {
41543 var hardened = bit[bit.length-
1] ==
"'";
41544 var isPriv =
"privKey" in extendedKey;
41545 var invalidDerivationPath = hardened && !isPriv;
41546 if (invalidDerivationPath) {
41547 extendedKey = null;
41549 else if (hardened) {
41550 extendedKey = extendedKey.deriveHardened(index);
41553 extendedKey = extendedKey.derive(index);
41559 function showValidationError(errorText) {
41565 function hideValidationError() {
41571 function findPhraseErrors(phrase) {
41572 // Preprocess the words
41573 phrase = mnemonic.normalizeString(phrase);
41574 var words = phraseToWordArray(phrase);
41575 // Detect blank phrase
41576 if (words.length ==
0) {
41577 return
"Blank mnemonic";
41580 for (var i=
0; i
<words.length; i++) {
41581 var word = words[i];
41582 var language = getLanguage();
41583 if (WORDLISTS[language].indexOf(word) == -
1) {
41584 console.log(
"Finding closest match to " + word);
41585 var nearestWord = findNearestWord(word);
41586 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
41589 // Check the words are valid
41590 var properPhrase = wordArrayToPhrase(words);
41591 var isValid = mnemonic.check(properPhrase);
41593 return
"Invalid mnemonic";
41598 function validateRootKey(rootKeyBase58) {
41600 bitcoin.HDNode.fromBase58(rootKeyBase58);
41603 return
"Invalid root key";
41608 function getDerivationPath() {
41609 if (bip44TabSelected()) {
41610 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
41611 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
41612 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
41613 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
41615 path += purpose +
"'/";
41616 path += coin +
"'/";
41617 path += account +
"'/";
41619 DOM.bip44path.val(path);
41620 var derivationPath = DOM.bip44path.val();
41621 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
41622 return derivationPath;
41624 else if (bip32TabSelected()) {
41625 var derivationPath = DOM.bip32path.val();
41626 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
41627 return derivationPath;
41630 console.log(
"Unknown derivation path");
41634 function findDerivationPathErrors(path) {
41635 // TODO is not perfect but is better than nothing
41637 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
41639 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
41640 var maxDepth =
255; // TODO verify this!!
41641 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
41642 if (path[
0] !=
"m") {
41643 return
"First character must be 'm'";
41645 if (path.length
> 1) {
41646 if (path[
1] !=
"/") {
41647 return
"Separator must be '/'";
41649 var indexes = path.split(
"/");
41650 if (indexes.length
> maxDepth) {
41651 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
41653 for (var depth =
1; depth
<indexes.length; depth++) {
41654 var index = indexes[depth];
41655 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
41656 if (invalidChars.length
> 0) {
41657 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
41659 var indexValue = parseInt(index.replace(
"'",
""));
41660 if (isNaN(depth)) {
41661 return
"Invalid number at depth " + depth;
41663 if (indexValue
> maxIndexValue) {
41664 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
41668 // Check root key exists or else derivation path is useless!
41669 if (!bip32RootKey) {
41670 return "No root key";
41672 // Check no hardened derivation path when using xpub keys
41673 var hardened = path.indexOf("'")
> -
1;
41674 var isXpubkey = !("privKey" in bip32RootKey);
41675 if (hardened && isXpubkey) {
41676 return "Hardened derivation path is invalid with xpub key";
41681 function displayBip44Info() {
41682 // Get the derivation path for the account
41683 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
41684 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
41685 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
41687 path += purpose + "'/";
41688 path += coin + "'/";
41689 path += account + "'/";
41690 // Calculate the account extended keys
41691 var accountExtendedKey = calcBip32ExtendedKey(path);
41692 var accountXprv = accountExtendedKey.toBase58();
41693 var accountXpub = accountExtendedKey.toBase58(false);
41694 // Display the extended keys
41695 DOM.bip44accountXprv.val(accountXprv);
41696 DOM.bip44accountXpub.val(accountXpub);
41699 function displayBip32Info() {
41701 DOM.seed.val(seed);
41702 var rootKey = bip32RootKey.toBase58();
41703 DOM.rootKey.val(rootKey);
41704 var xprvkeyB58 = "NA";
41705 if (bip32ExtendedKey.privKey) {
41706 xprvkeyB58 = bip32ExtendedKey.toBase58();
41708 var extendedPrivKey = xprvkeyB58;
41709 DOM.extendedPrivKey.val(extendedPrivKey);
41710 var extendedPubKey = bip32ExtendedKey.toBase58(false);
41711 DOM.extendedPubKey.val(extendedPubKey);
41712 // Display the addresses and privkeys
41713 clearAddressesList();
41714 displayAddresses(
0,
20);
41717 function displayAddresses(start, total) {
41718 generationProcesses.push(new (function() {
41722 this.stop = function() {
41723 for (var i=
0; i
<rows.length; i++) {
41724 rows[i].shouldGenerate = false;
41728 for (var i=
0; i
<total; i++) {
41729 var index = i + start;
41730 rows.push(new TableRow(index));
41736 function TableRow(index) {
41739 this.shouldGenerate = true;
41740 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
41746 function calculateValues() {
41747 setTimeout(function() {
41748 if (!self.shouldGenerate) {
41752 if (useHardenedAddresses) {
41753 key = bip32ExtendedKey.deriveHardened(index);
41756 key = bip32ExtendedKey.derive(index);
41758 var address = key.getAddress().toString();
41759 var privkey =
"NA";
41761 privkey = key.privKey.toWIF(network);
41763 var pubkey = key.pubKey.toHex();
41764 var indexText = getDerivationPath() +
"/" + index;
41765 if (useHardenedAddresses) {
41766 indexText = indexText +
"'";
41768 // Ethereum values are different
41769 if (networks[DOM.network.val()].name ==
"Ethereum") {
41770 var privKeyBuffer = key.privKey.d.toBuffer();
41771 privkey = privKeyBuffer.toString('hex');
41772 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
41773 var hexAddress = addressBuffer.toString('hex');
41774 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
41775 address = ethUtil.addHexPrefix(checksumAddress);
41777 addAddressToList(indexText, address, pubkey, privkey);
41785 function showMore() {
41786 var start = DOM.addresses.children().length;
41787 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
41788 if (isNaN(rowsToAdd)) {
41790 DOM.rowsToAdd.val(
"20");
41792 if (rowsToAdd
> 200) {
41793 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
41794 msg +=
"Do you want to continue?";
41795 if (!confirm(msg)) {
41799 displayAddresses(start, rowsToAdd);
41802 function clearDisplay() {
41803 clearAddressesList();
41805 hideValidationError();
41808 function clearAddressesList() {
41809 DOM.addresses.empty();
41813 function stopGenerating() {
41814 while (generationProcesses.length
> 0) {
41815 var generation = generationProcesses.shift();
41820 function clearKey() {
41821 DOM.rootKey.val(
"");
41822 DOM.extendedPrivKey.val(
"");
41823 DOM.extendedPubKey.val(
"");
41826 function addAddressToList(indexText, address, pubkey, privkey) {
41827 var row = $(addressRowTemplate.html());
41829 var indexCell = row.find(
".index span");
41830 var addressCell = row.find(
".address span");
41831 var pubkeyCell = row.find(
".pubkey span");
41832 var privkeyCell = row.find(
".privkey span");
41834 indexCell.text(indexText);
41835 addressCell.text(address);
41836 pubkeyCell.text(pubkey);
41837 privkeyCell.text(privkey);
41840 indexCell.addClass(
"invisible");
41842 if (!showAddress) {
41843 addressCell.addClass(
"invisible");
41846 pubkeyCell.addClass(
"invisible");
41848 if (!showPrivKey) {
41849 privkeyCell.addClass(
"invisible");
41851 DOM.addresses.append(row);
41852 var rowShowQrEls = row.find(
"[data-show-qr]");
41853 setQrEvents(rowShowQrEls);
41856 function hasStrongRandom() {
41857 return 'crypto' in window && window['crypto'] !== null;
41860 function disableForms() {
41861 $(
"form").on(
"submit", function(e) {
41862 e.preventDefault();
41866 function parseIntNoNaN(val, defaultVal) {
41867 var v = parseInt(val);
41874 function showPending() {
41876 .text(
"Calculating...")
41880 function findNearestWord(word) {
41881 var language = getLanguage();
41882 var words = WORDLISTS[language];
41883 var minDistance =
99;
41884 var closestWord = words[
0];
41885 for (var i=
0; i
<words.length; i++) {
41886 var comparedTo = words[i];
41887 if (comparedTo.indexOf(word) ==
0) {
41890 var distance = Levenshtein.get(word, comparedTo);
41891 if (distance < minDistance) {
41892 closestWord = comparedTo;
41893 minDistance = distance;
41896 return closestWord;
41899 function hidePending() {
41905 function populateNetworkSelect() {
41906 for (var i=
0; i
<networks.length; i++) {
41907 var network = networks[i];
41908 var option = $(
"<option>");
41909 option.attr(
"value", i);
41910 option.text(network.name);
41911 DOM.phraseNetwork.append(option);
41915 function getLanguage() {
41916 var defaultLanguage =
"english";
41917 // Try to get from existing phrase
41918 var language = getLanguageFromPhrase();
41919 // Try to get from url if not from phrase
41920 if (language.length ==
0) {
41921 language = getLanguageFromUrl();
41923 // Default to English if no other option
41924 if (language.length ==
0) {
41925 language = defaultLanguage;
41930 function getLanguageFromPhrase(phrase) {
41931 // Check if how many words from existing phrase match a language.
41934 phrase = DOM.phrase.val();
41936 if (phrase.length
> 0) {
41937 var words = phraseToWordArray(phrase);
41938 var languageMatches = {};
41939 for (l in WORDLISTS) {
41940 // Track how many words match in this language
41941 languageMatches[l] =
0;
41942 for (var i=
0; i
<words.length; i++) {
41943 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
41944 if (wordInLanguage) {
41945 languageMatches[l]++;
41948 // Find languages with most word matches.
41949 // This is made difficult due to commonalities between Chinese
41950 // simplified vs traditional.
41951 var mostMatches =
0;
41952 var mostMatchedLanguages = [];
41953 for (var l in languageMatches) {
41954 var numMatches = languageMatches[l];
41955 if (numMatches
> mostMatches) {
41956 mostMatches = numMatches;
41957 mostMatchedLanguages = [l];
41959 else if (numMatches == mostMatches) {
41960 mostMatchedLanguages.push(l);
41964 if (mostMatchedLanguages.length
> 0) {
41965 // Use first language and warn if multiple detected
41966 language = mostMatchedLanguages[
0];
41967 if (mostMatchedLanguages.length
> 1) {
41968 console.warn(
"Multiple possible languages");
41969 console.warn(mostMatchedLanguages);
41976 function getLanguageFromUrl() {
41977 for (var language in WORDLISTS) {
41978 if (window.location.hash.indexOf(language)
> -
1) {
41985 function setMnemonicLanguage() {
41986 var language = getLanguage();
41987 // Load the bip39 mnemonic generator for this language if required
41988 if (!(language in mnemonics)) {
41989 mnemonics[language] = new Mnemonic(language);
41991 mnemonic = mnemonics[language];
41994 function convertPhraseToNewLanguage() {
41995 var oldLanguage = getLanguageFromPhrase();
41996 var newLanguage = getLanguageFromUrl();
41997 var oldPhrase = DOM.phrase.val();
41998 var oldWords = phraseToWordArray(oldPhrase);
42000 for (var i=
0; i
<oldWords.length; i++) {
42001 var oldWord = oldWords[i];
42002 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
42003 var newWord = WORDLISTS[newLanguage][index];
42004 newWords.push(newWord);
42006 newPhrase = wordArrayToPhrase(newWords);
42010 // TODO look at jsbip39 - mnemonic.splitWords
42011 function phraseToWordArray(phrase) {
42012 var words = phrase.split(/\s/g);
42014 for (var i=
0; i
<words.length; i++) {
42015 var word = words[i];
42016 if (word.length
> 0) {
42017 noBlanks.push(word);
42023 // TODO look at jsbip39 - mnemonic.joinWords
42024 function wordArrayToPhrase(words) {
42025 var phrase = words.join(
" ");
42026 var language = getLanguageFromPhrase(phrase);
42027 if (language ==
"japanese") {
42028 phrase = words.join(
"\u3000");
42033 function isUsingOwnEntropy() {
42034 return DOM.useEntropy.prop(
"checked");
42037 function setMnemonicFromEntropy() {
42038 clearEntropyFeedback();
42039 // Get entropy value
42040 var entropyStr = DOM.entropy.val();
42041 // Work out minimum base for entropy
42042 var entropy = Entropy.fromString(entropyStr);
42043 if (entropy.binaryStr.length ==
0) {
42046 // Show entropy details
42047 showEntropyFeedback(entropy);
42048 // Use entropy hash if not using raw entropy
42049 var bits = entropy.binaryStr;
42050 var mnemonicLength = DOM.entropyMnemonicLength.val();
42051 if (mnemonicLength !=
"raw") {
42052 // Get bits by hashing entropy with SHA256
42053 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
42054 var hex = sjcl.codec.hex.fromBits(hash);
42055 bits = BigInteger.parse(hex,
16).toString(
2);
42056 while (bits.length %
256 !=
0) {
42059 // Truncate hash to suit number of words
42060 mnemonicLength = parseInt(mnemonicLength);
42061 var numberOfBits =
32 * mnemonicLength /
3;
42062 bits = bits.substring(
0, numberOfBits);
42064 // Discard trailing entropy
42065 var bitsToUse = Math.floor(bits.length /
32) *
32;
42066 var start = bits.length - bitsToUse;
42067 var binaryStr = bits.substring(start);
42068 // Convert entropy string to numeric array
42069 var entropyArr = [];
42070 for (var i=
0; i
<binaryStr.length /
8; i++) {
42071 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
42072 var entropyByte = parseInt(byteAsBits,
2);
42073 entropyArr.push(entropyByte)
42075 // Convert entropy array to mnemonic
42076 var phrase = mnemonic.toMnemonic(entropyArr);
42077 // Set the mnemonic in the UI
42078 DOM.phrase.val(phrase);
42081 function clearEntropyFeedback() {
42082 DOM.entropyStrength.text(
"...");
42083 DOM.entropyType.text(
"");
42084 DOM.entropyWordCount.text(
"0");
42085 DOM.entropyEventCount.text(
"0");
42086 DOM.entropyBitsPerEvent.text(
"0");
42087 DOM.entropyBits.text(
"0");
42088 DOM.entropyFiltered.html(
" ");
42089 DOM.entropyBinary.html(
" ");
42092 function showEntropyFeedback(entropy) {
42093 var numberOfBits = entropy.binaryStr.length;
42094 var strength =
"extremely weak";
42095 if (numberOfBits
>=
64) {
42096 strength = "very weak";
42098 if (numberOfBits
>=
96) {
42101 if (numberOfBits
>=
128) {
42102 strength = "strong";
42104 if (numberOfBits
>=
160) {
42105 strength = "very strong";
42107 if (numberOfBits
>=
192) {
42108 strength = "extremely strong";
42110 // If time to crack is less than one day, and password is considered
42111 // strong or better based on the number of bits, rename strength to
42112 // 'easily cracked'.
42114 var z = zxcvbn(entropy.base.parts.join(""));
42115 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
42116 if (timeToCrack <
86400 && entropy.binaryStr.length
>=
128) {
42117 strength = "easily cracked";
42118 if (z.feedback.warning != "") {
42119 strength = strength + " - " + z.feedback.warning;
42124 strength = "unknown";
42125 console.log("Error detecting entropy strength with zxcvbn:");
42128 var entropyTypeStr = getEntropyTypeStr(entropy);
42129 var wordCount = Math.floor(numberOfBits /
32) *
3;
42130 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
42131 DOM.entropyFiltered.html(entropy.cleanHtml);
42132 DOM.entropyType.text(entropyTypeStr);
42133 DOM.entropyStrength.text(strength);
42134 DOM.entropyEventCount.text(entropy.base.ints.length);
42135 DOM.entropyBits.text(numberOfBits);
42136 DOM.entropyWordCount.text(wordCount);
42137 DOM.entropyBinary.text(entropy.binaryStr);
42138 DOM.entropyBitsPerEvent.text(bitsPerEvent);
42141 function getEntropyTypeStr(entropy) {
42142 var typeStr = entropy.base.str;
42143 // Add some detail if these are cards
42144 if (entropy.base.asInt ==
52) {
42145 var cardDetail = []; // array of message strings
42146 // Detect duplicates
42148 var dupeTracker = {};
42149 for (var i=
0; i
<entropy.base.parts.length; i++) {
42150 var card = entropy.base.parts[i];
42151 var cardUpper = card.toUpperCase();
42152 if (cardUpper in dupeTracker) {
42155 dupeTracker[cardUpper] = true;
42157 if (dupes.length
> 0) {
42158 var dupeWord =
"duplicates";
42159 if (dupes.length ==
1) {
42160 dupeWord =
"duplicate";
42162 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
42163 if (dupes.length
> 3) {
42166 cardDetail.push(msg);
42168 // Detect full deck
42169 var uniqueCards = [];
42170 for (var uniqueCard in dupeTracker) {
42171 uniqueCards.push(uniqueCard);
42173 if (uniqueCards.length ==
52) {
42174 cardDetail.unshift(
"full deck");
42176 // Detect missing cards
42177 var values =
"A23456789TJQK";
42178 var suits =
"CDHS";
42179 var missingCards = [];
42180 for (var i=
0; i
<suits.length; i++) {
42181 for (var j=
0; j
<values.length; j++) {
42182 var card = values[j] + suits[i];
42183 if (!(card in dupeTracker)) {
42184 missingCards.push(card);
42188 // Display missing cards if six or less, ie clearly going for full deck
42189 if (missingCards.length
> 0 && missingCards.length <=
6) {
42190 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
42191 if (missingCards.length
> 3) {
42194 cardDetail.push(msg);
42196 // Add card details to typeStr
42197 if (cardDetail.length
> 0) {
42198 typeStr +=
" (" + cardDetail.join(
", ") +
")";
42204 function setQrEvents(els) {
42205 els.on(
"mouseenter", createQr);
42206 els.on(
"mouseleave", destroyQr);
42207 els.on(
"click", toggleQr);
42210 function createQr(e) {
42211 var content = e.target.textContent || e.target.value;
42214 DOM.qrImage.qrcode({width: size, height: size, text: content});
42216 DOM.qrHider.addClass(
"hidden");
42219 DOM.qrHider.removeClass(
"hidden");
42221 DOM.qrContainer.removeClass(
"hidden");
42225 function destroyQr() {
42226 DOM.qrImage.text(
"");
42227 DOM.qrContainer.addClass(
"hidden");
42230 function toggleQr() {
42232 DOM.qrHider.toggleClass(
"hidden");
42233 DOM.qrHint.toggleClass(
"hidden");
42236 function bip44TabSelected() {
42237 return DOM.bip44tab.hasClass(
"active");
42240 function bip32TabSelected() {
42241 return DOM.bip32tab.hasClass(
"active");
42247 onSelect: function() {
42248 network = bitcoin.networks.bitcoin;
42249 DOM.bip44coin.val(
0);
42253 name:
"Bitcoin Testnet",
42254 onSelect: function() {
42255 network = bitcoin.networks.testnet;
42256 DOM.bip44coin.val(
1);
42261 onSelect: function() {
42262 network = bitcoin.networks.litecoin;
42263 DOM.bip44coin.val(
2);
42268 onSelect: function() {
42269 network = bitcoin.networks.dogecoin;
42270 DOM.bip44coin.val(
3);
42274 name:
"ShadowCash",
42275 onSelect: function() {
42276 network = bitcoin.networks.shadow;
42277 DOM.bip44coin.val(
35);
42281 name:
"ShadowCash Testnet",
42282 onSelect: function() {
42283 network = bitcoin.networks.shadowtn;
42284 DOM.bip44coin.val(
1);
42289 onSelect: function() {
42290 network = bitcoin.networks.viacoin;
42291 DOM.bip44coin.val(
14);
42295 name:
"Viacoin Testnet",
42296 onSelect: function() {
42297 network = bitcoin.networks.viacointestnet;
42298 DOM.bip44coin.val(
1);
42303 onSelect: function() {
42304 network = bitcoin.networks.jumbucks;
42305 DOM.bip44coin.val(
26);
42310 onSelect: function() {
42311 network = bitcoin.networks.clam;
42312 DOM.bip44coin.val(
23);
42317 onSelect: function() {
42318 network = bitcoin.networks.dash;
42319 DOM.bip44coin.val(
5);
42324 onSelect: function() {
42325 network = bitcoin.networks.namecoin;
42326 DOM.bip44coin.val(
7);
42331 onSelect: function() {
42332 network = bitcoin.networks.peercoin;
42333 DOM.bip44coin.val(
6);
42338 onSelect: function() {
42339 network = bitcoin.networks.bitcoin;
42340 DOM.bip44coin.val(
60);